Another sophisticated approach is that of Rosenschein and Kaelbling [Kaelbling, 1991][Kaelbling and Rosenschein, 1990][Rosenschein and Kaelbling, 1986][Rosenschein, 1985]. In their situated automata paradigm, an agent is specified in declarative terms. This specification is then compiled down to a digital machine, which satisfies the declarative specification. This digital machine can operate in a provably time-bounded fashion; it does not do any symbol manipulation, and in fact no symbolic expressions are represented in the machine at all. The logic used to specify an agent is essentially a modal logic of knowledge (see above). The technique depends upon the possibility of giving the worlds in possible worlds semantics a concrete interpretation in terms of the states of an automaton:
`[An agent] ... is said to carry the information that in world state , written , if for all world states in which has the same value as it does in , the proposition is true.' [Kaelbling and Rosenschein, 1990]An agent is specified in terms of two components: perception and action. Two programs are then used to synthesise agents: RULER is used to specify the perception component of an agent; GAPPS is used to specify the action component.
RULER takes as its input three components:
`[A] specification of the semantics of the [agent's] inputs (``whenever bit 1 is on, it is raining''); a set of static facts (``whenever it is raining, the ground is wet''); and a specification of the state transitions of the world (``if the ground is wet, it stays wet until the sun comes out''). The programmer then specifies the desired semantics for the output (``if this bit is on, the ground is wet''), and the compiler ... [synthesises] a circuit whose output will have the correct semantics. ... All that declarative ``knowledge'' has been reduced to a very simple circuit.'' [Kaelbling, 1991]
The GAPPS program takes as its input a set of goal reduction rules, (essentially rules that encode information about how goals can be achieved), and a top level goal, and generates a program that can be translated into a digital circuit in order to realise the goal. Once again, the generated circuit does not represent or manipulate symbolic expressions; all symbolic manipulation is done at compile time.
The situated automata paradigm has attracted much interest, as it appears to combine the best elements of both reactive and symbolic, declarative systems. However, at the time of writing, the theoretical limitations of the approach are not well understood; there are similarities with the automatic synthesis of programs from temporal logic specifications, a complex area of much ongoing work in mainstream computer science (see the comments in [Emerson, 1990]).