[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:9 Dec 2004 13:30:57 -0000 
Subject:Re: agents 
From:Aaron Sloman 
Volume-ID: 

On Wed, 8 Dec 2004, english tutor wrote:

> whats the simplest and  best starting point for a
> beginner at agent programming.

A lot depends on what sorts of agents you are aiming at.

A simple sort of agent programming technique is illustrated (rather
briefly) in HELP ACTOR and HELP NEWQUEUE

But that does not say anything about how to give individual agents
any sort of intelligence, which could require separate prior
learning about language processing, planning, reasoning, learning,
vision, motor control, motivation, etc. depending on what sort
of agent you are after.

Another relatively simple introduction to agent programming uses
the Objectclass library. namely
	TEACH ADVENT_OBJECTCLASS

This is included in the bham linux poplog package,and also here
	http://www.cs.bham.ac.uk/research/poplog/teach/advent_objectclass

> tried the simagent
> but seems a bit beyound me at the moment... dont know
> how to apply it.

It presupposes that you have a fairly good grasp of

	list processing, including pattern matching on lists

	rule-based programming as supported by poprulebase
		An introduction can be found in TEACH RULEBASE,
		but there are many additional facilities summarised
		in HELP POPRULEBASE
	
	objectclass

and if you want to use graphical displays
	rclib

The simplest example becomes available after
	uses newkit
namely

	TEACH SIM_DEMO

This file can be compiled, in which case it prints out instructions
to start a world where red movers head for the red target and blue
movers head for the blue target and obstacles just get in the way.

While things are moving around you can also use the mouse to move them
or the obstacles or targets, and the moving agents react accordingly.

But those are agents with no communication, no reasoning, no learning.

On a modern computer it may run too fast.

You can slow it down by changing this line (line 1410)
from
            2 ->> my_speed -> team_speed(agent);

to something like

            0.2 ->> my_speed -> team_speed(agent);
	
A bigger number will make it go faster.

In that case, instead of the instruction
run_demo(all_agents, 250, false, alltracevars,
        [demo_cycle_trace GRAPHIC_TRACE], false);');

you could change the 250 to 25000 to make it keep going for a long
time.

Aaron