Reactive Agents

Reactive Agents choose their next action based on their current percepts, using a set of rules (known as a 'policy') that are simple to apply.

They are incapable of planning, memory or logical reasoning.

Braitenberg Vehicles

Braitenberg showed how simple arrangements of motors and sensors can lead to surprisingly sophisticated behaviour.

At its simplest his robots had two wheels and two (light) sensors whose response was (naturally) inversely proportional to distance.

The wheel-sensor connections could be straight or crossed over (i.e. left-to-left or left-to-right), and the connection could be excitatory (higher percept=faster wheels) or inhibitory (higher percept=slower wheels).

Types of Braitenberg Vehicles

This allowed for four types of robot:

  • Hate: Straight + Excitatory (would smash into the light)
  • Love: Straight + Inhibitory (would go up to the light, but slow down)
  • Curiosity: Crossed + Inhibtory (would head away from it, slowly)
  • Fear: Crossed + Excitor (would run away from the light)

Chemotaxis

Chemotaxis is the directing of movement towards areas that are high or low in some substance.

Many organisms do this when searching for food, or to keep away from toxins.

Bacteria use flagella to propel themselves, and swap between tumbling (spinning around randomly) and linear movement (in one direction) depending on whether they sense a lot of food or not much. If they sense a lot they stay linear for a longer time.

Behaviour-Based Robotics

Rodney Brooks thought that robots should be based on insects rather than humans; starting from scratch and then building up (i.e. our main focusses should be walking rather than playing chess).

This belief goes hand in hand with Vertical Decomposition.

Horizontal vs Vertical Decomposition

An established way of constructing agents is called 'horizontal decomposition'. Some argue that 'vertical decomposition' is better as it allows us to build up in stages, like in extreme programming.

Horizontal Decomposition

Essentially the AI has a set of steps, or 'layers' that it must go through to perform an action, starting from the sensory input and ending at the actuators.

(1)
\begin{align} sensors \rightarrow percepts \rightarrow modelling \rightarrow planning \rightarrow task execution \rightarrow motor control \rightarrow actuators \end{align}

Vertical Decomposition (Subsumption Architecture)

In the vertical approach there are also a set of steps, or 'layers' of behaviour, but each layer is distinct from the others, meaning that a simple agent doesn't need to go through a complicated thought process to move a wheel.

(2)
\begin{align} sensor \rightarrow \begin {matrix} manipulate world \\ build maps \\ explore \\ avoid hitting things \\ locomote \\ \end {matrix} \rightarrow actuators \end{align}

Each layer is a behaviour, and each layer builds on the ones below it. Low level behaviour is reactive, middle (e.g. map building) uses a world model and the highest level uses planning.

Taking Control

Both the higher and lower levels can take control from each other depending on the situation.

  • e.g. If the wheels are spinning in a puddle (the lower level is stuck) the higher level can use some planning to get out of it
  • e.g. If the higher level is exploring the world but about to fall down some stairs, the lower level can take over with 'avoid hitting things' and prevent this.