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
|