Holidays


next up previous contents
Next: Another example
Up: Production systems and working memory
Previous: Production systems and working memory
Back: to main list of student notes

Holidays

In order to think, you need something to think about. In the context of Eden, this means that you must be able to gather data before being able to use it. This introduces issues of learning, navigation, and so on, which I don't want to complicate matters with. I'm therefore going to start with an example that has very little to do with Eden.

Please look at the rules below, in figure 1.

resolve [r].


stm [ mp,
      hot
    ].


stm_predicates all.


computer_hacker => rich.
management_consultant => rich.
mp => rich.

hairdresser => poor.
teacher => poor.
toilet_cleaner => poor.

poor => near.
rich => far.

near, hot => costa_del_sol, done.
near, cold => aberdeen, done.
far, hot => egypt, done.
far, cold => switzerland, done.

done => exec([forward]), exec([wait]).

Figure Where to go for holiday.

 

In this program, we have the statement stm_predicates all. Like the resolve statement, this is something that programmers call a declaration - a statement that isn't itself obeyed as the program runs, but that alters the way other symbols are interpreted or other statements are executed. The declaration stm_predicates all tells Eden that all the names in rules refer to symbols in STM and not to perceptual predicates or motor commands. Actually, there is one exception to this: this is exec which is always taken as obeying an action.

The initial contents of STM is given by the symbols after stm: that is, mp and hot.

What do these symbols mean? The production system does not care, and would work equally well if they were all meaningless names. However, you can see that they have something to do with choosing holidays. The idea is that you start the STM off by telling it what your job is, and whether you like hot or cold weather. The job must be one of computer_hacker, hairdresser, management_consultant, mp, teacher, or toilet_cleaner. The weather must be either hot or cold. The production system then runs a few rules, and eventually comes up with the name of a country or resort, which it puts into STM. It then obeys the bug-actions forward and wait.

You can test the production system for yourself by doing

eps( holidays, psworld0 ).
psworld0 is set up so that the bug is standing just in front of a quicksand. Once it has reached a conclusion, the rules make it obey the forward and wait actions. These cause it to move onto the quicksand and turn left: as described in the table of objects in How to run Eden, this kills it! That's really just a nasty trick for ending the life once a country has been chosen.

How do the rules work? I hope this is clear from my original discussion of production systems. If not, you can follow it in Eden by looking at the view window. This time, the diagnostics are quite long, so you will almost certainly want to scroll through them with the editor, or to print the window. How to do this was described in the Editing the view window section in my editor handout. Briefly, you type the Eden control command v, and then give the editing command ENTER ctcprint RETURN. This will print the window on the printer on the first floor of CTC. To help with following the rules, the figure below, figure 2, shows successive snapshots of the bug's STM. Next to each fact is an annotation showing when it was added. The number before the point identifies the production-system cycle; the number after it shows when during that cycle.

hot (0.2)
mp (0.1)

rich (1.1)
hot (0.2)
mp (0.1)

far (2.1)
rich (1.1)
hot (0.2)
mp (0.1)

done (3.2)
egypt (3.1)
far (2.1)
rich (1.1)
hot (0.2)
mp (0.1)

Figure The holiday-bug's STM.

 

If you want to experiment with changing these rules, or the initial contents of STM, you may, provided you know how to edit and run your own programs. For instructions on how to do this, see my handout on Editing your own programs.


next up previous contents
Next: Another example
Up: Production systems and working memory
Previous: Production systems and working memory
Back: to main list of student notes



Jocelyn Paine
Thu Feb 15 00:10:41 GMT 1996