Catalogue of Artificial Intelligence Techniques
Keywords: agent, agents, fsm, games, state, states
Categories: Computer Architecture
Author(s): Peter Sandilands
A state-driven agent is an agent that performs an action based on its current state. States can change depending on its percept of the environment. Its state updates regularly by an algorithm that takes into account its sensory readings or knowledge about the world it is in and then comparing it to a state transition table.
The state changes are implemented as a deterministic finite-state machine (FSM), so that when a condition is satisfied it knows exactly which state to change to.
There are advantages to using state-driven agents:
1)Quick to code: There are many documented ways of programming a representation of a FSM and so you can accurately predict how long it will take to code.
2)Simple to debug: If whilst in a state the agent starts to act strangely you can already narrow it down to the code inside that one state that has the bug.
3)Fast: The deterministic FSM is very fast, generally utilising a lookup table. Much of the slowdown comes from the tests you do on the sensory data to choose the correct next state.
4)Simple to understand: Following a FSM is very easy; it can even be understood by non-programmers or programmers with no experience in your system.
5)Expandable: By just adding another state in the table and the rules to get to it you can get a large change in the agent’s behaviour.
Some limitations of this technique are:
1)Limited intelligence: The intelligence comes from the programmer predicting the correct response to stimuli, so it can only be as clever as the programmer that made the agent. If this technique is the sole of used then this also prevents it from ‘learning’ as it goes along. If it is in a state and sees a certain set of stimuli it will always do the same thing. It will not take into account past experiences.
For these reasons, state-driven agents are often used in programs where only the impression of intelligence is needed, for example the opponent in games, or as part of a larger solution incorporating other techniques such as neural nets.
- Matt Buckland, Programming Game AI by Example, Wordware Publishing Inc.,U.S., 2004.