<tt>psbug1</tt>


next up previous contents
Next: Bug's vision and the sensory predicates
Up: Production systems and Eden
Previous: Production systems and Eden
Back: to main list of student notes

psbug1

To start answering these questions, have a look at the code in figure 3, below:

resolve [p,s,r].

stm [].

holding(+)      => exec([use]).
over(+)         => exec([grab]).
can_see(+)      => move_towards(+).

Figure The source of psbug1.

 

If you know how to use the editor, you can display this code on your screen via the Ved showlib command. This is described near the end of my editor handout. If you want to try, give the Ved command

showlib psbug1
either from Prolog, or as a Ved ENTER command.

What is going on in the above code? It's in three parts. The first, resolve [p,s,r], specifies the resolution strategies to be used. These letters stand for priority, specificity and recency respectively, and the methods are applied in this order. Priority is irrelevant here. It's possible, when writing rules, to give some of them higher priority than others. But I haven't done this. Specificity refers to the complexity of conditions. This doesn't matter here either, since all the conditions are equally complex.

So the resolve stage first looks for the rules with the highest priority. Since they all have the same priority, this doesn't help. It then looks for the rule with the most specific - most complex - condition. This doesn't help either. Finally it sorts the rules by recency, choosing the least recently fired. You will see this process reflected in the view diagnostics, and if you know how to use the v control command, you can move around the view window and inspect it in more detail.

The second part of the code, stm [], specifies the initial contents of short-term memory. The brackets with nothing between them mean that it's empty. It's actually going to stay empty throughout the life, since this bug reacts directly to its perceptions, and doesn't build up any memory structures. This is why the view window repeatedly displays the line

1 PS STM is
meaning there's nothing in STM.

The third part is the most important - the rules. Each rule is separated into two parts, a condition and an action. Before explaining these further, it's necessary to explain a bit about the bug's sense of ``vision''.


next up previous contents
Next: Bug's vision and the sensory predicates
Up: Production systems and Eden
Previous: Production systems and Eden
Back: to main list of student notes



Jocelyn Ireson-Paine
Thu Feb 15 00:10:39 GMT 1996