Structure of Agents - Yousef's Notes
Structure of Agents

Structure of Agents

  • Agent = Architecture + Program
  • Agent architecture: computing device with physical/software sensors and actuators
  • Job of AI: design an agent program

Basic agent Program: take an input from the sensors and return an action to the actuators.

Agent function can be explicitly represented as a table-driven agent

function TABLE-DRIVEN-AGENT(percept) returns an action
	persistent: percepts, a sequence, initially empty
		table, a table of actions, indexed by percept sequences, initially fully specified

append percept to the end of percepts
action ← LOOKUP(percepts, table)
return action

Table-driven approach does not work in practice:

  • The table will be potentially infinite, but even in a limited lifetime agent, will likely be massive
  • Filling in the table is by no means trivial, taking infinite time potentially
  • Does not allow for learning, as the table is set from the start E.g. for chess, there would be $10^{123}$ entries. For go, that number is $10^{360}$

Key challenge: Write minimal programs that, to the extent possible, produce rational behavior

#Vacuum Agent Example

sensors: current position, dirtiness actions: suck, right, left

function REFLEX-VACUUM-AGENT([location,status]) returns an action
	if status = Dirty then return Suck
	else if location = A then return Right
	else if location = B then return Left