Now let's talk about the different approaches to action selection.  We can arrange most action-selection schemes along two rough dimensions. 

Zero-lookahead Single-step Full
Activation-based Utility
Behavior trees
The Sims
Versu Monte-Carlo tree search
Effect-based The Sims 3 (sort of)
Some storylet systems
GPS
Reactive planning
Planning/GOAP

The first dimension is whether they choose actions based on the action's activation or its effects:

  • Activation-based: every action has some way of reporting whether it “wants” to run
  • Effect-based: select actions based on whether they achieve some effect that we want

The other dimension is the degree to which they consider future actions in addition to the next action:

  • Zero-lookahead systems chosoe the next action without considering future actions
  • Single-step lookahead systems consider the ending state of the action (usually to compute an activation level) but not future actions
  • Full lookahead systems consider whole sequences of actions

That said, this classification scheme is only approximate.  Some systems blur boundaries.  Some systems, like HTN planners don't quite fit into the classification system at all.  Others, like behavior trees can be seen as several different things.

We'll discuss different techniques in more detail and provide (very) simple implementations you can experiment with.

Previous: Describing objectives
Next: Activation-based methods