Skip to main content
added 34 characters in body
Source Link

So did the robot break the second law? Some people might say "The robot acted contrary to the plain English definition of the law antand therefore it was broken." while some other people might say "The laws are just functions. Law1 was executed. Law2 was not. The robot obeyed its programming and the second law simply did not apply because the first took precedence."

So did the robot break the second law? Some people might say "The robot acted contrary to the plain English definition of the law ant therefore it was broken." while some other people might say "The laws are just functions. Law1 was executed. Law2 was not. The robot obeyed its programming and the second law simply did not apply."

So did the robot break the second law? Some people might say "The robot acted contrary to the plain English definition of the law and therefore it was broken." while some other people might say "The laws are just functions. Law1 was executed. Law2 was not. The robot obeyed its programming and the second law simply did not apply because the first took precedence."

added 14 characters in body
Source Link

The below logic may be a bit buggy and/or inefficient but is an interpretation of how the first 'law' that could explainwork while explaining the behaviour of the robot in question.

The below logic may be a bit buggy and/or inefficient but is an interpretation of the first 'law' that could explain the behaviour of the robot in question.

The below logic may be a bit buggy and/or inefficient but is an interpretation of how the first 'law' could work while explaining the behaviour of the robot in question.

Source Link

Is the second law 'broken'?

Maybe that's just where computational logic and the English language don't mix?

The below logic may be a bit buggy and/or inefficient but is an interpretation of the first 'law' that could explain the behaviour of the robot in question.

When the Law1 function is called, the robot analyses the conditions of all humans in some list (all humans that it's aware of maybe); It assesses the severity of danger that they are in and compares those; then if there are multiple humans in similar (highest found) severities of danger, it compares each of those humans and determines which is most likely to be successfully helped; And so long as at least one human needs to be protected from harm, law2 is not executed.

Private Sub UpdateBehavior (ByVal humans As List(Of Human), _
            ByVal humanOrders As List(Of Order), ByVal pDangers As List(Of pDanger))
  Dim bBusy as boolean
  bBusy = False
  Law1(humans)
  If Not bBusy Then Law2(humanOrders)
  if Not bBusy Then Law3(pDangers)
Exit Sub

Private Function Law1 (ByVal humans As List(Of Human)) As Boolean
Dim human as Human
Dim targetHuman as Human
  Try
    Set targetHuman = Nothing
    'loop listed humans
    For Each human In humans 
      If human.IsInDanger() Then
        'Enumerate 'danger' into predetermined severities/urgencies
        '(eg. Danger of going-hungry > falling-over > being-stabbed)
        'and compare
        If targetHuman.DangerQuantification() < human.DangerQuantificationThen()
          'If the comparison human's amount of danger is discernibly greater
          'make that human the new target
          Set targetHuman = human
        'Where both humans are in equal quantifiable amounts of danger
        Else If targetHuman.DangerQuantification() = human.DangerQuantification() then 
          'CompareValueOfHumanLife() 'Can-Of-Worms INTENTIONALLY REMOVED!
          If rescueSuccessRate(human) > rescueSuccessRate(targetHuman)
            'Target the human where rate of successful harm prevention is higher
            Set targetHuman = human
          End If
        End If
      Else
        'Set the first human found to be in danger as the initial target
        targetHuman = human
      End If
    Next human
    If Not targetHuman Is Nothing then
      Law1 = True
      Rescue(TargetHuman)
    else
      Law1 = False
    End If
    AvoidHarmingHumans()
  catch
    initiateSelfDestruct()
  end try
End Function

So did the robot break the second law? Some people might say "The robot acted contrary to the plain English definition of the law ant therefore it was broken." while some other people might say "The laws are just functions. Law1 was executed. Law2 was not. The robot obeyed its programming and the second law simply did not apply."