Invited Talks

Date: 24th June 2003
Time: 9.30-10.30am
Room: CC00.13 (James France Building)
Speaker: Professor Peter Ross, Napier University, Edinburgh
Title: Solving problems with evolutionary algorithms

Summary: Evolutionary algorithms such as GAs and evolution strategies
have been applied successfully to many kinds of real-world
problems. But much of the published literature is still
somewhat academic: typically a neat, fully-specified problem
is described, some benchmark problems are solved and victory
is declared. Industrial and commercial users often seem to
prefer to use something simpler, such as a straightforward
heuristic method. After all, a GA is often seen as a black
box: you don't know how good the result will be, you don't
know quite how long it will take to find, you often don't get
the same result twice for the same problem and you don't
really understand where the result came from in the first place.
This talk is about how one might deal with these sensible
objections. The main idea is that, instead of solving just
one specific problem, evolutionary algorithms or other search
methods can be used to generate an effective and efficient
method of solving many problems of a given type. The talk
includes examples.

Date: 25th June 2003
Time: 9.00-10.00am
Room: CC00.13 (James France Building)
Speaker: Professor Keith Clark, Imperial College, University of London

Title: Go! for multi-threaded deliberative agents

Summary: Go! is a multi-paradigm programming language that is oriented to the needs of programming secure, production quality, agent based applications. It is multi-threaded, strongly typed and higher order (in the functional programming sense). It has relation, function and action procedure definitions. Threads execute action procedures, calling functions and querying relations as need be.  Threads in different agents communicate and coordinate using asynchronous messages. Threads within the same agent can also use shared dynamic relations acting as Linda style memory stores.
In this talk we introduce the essential features of Go! illustrating them by showing how it can be used to:
emulate many of the features of Nilsson's Teleo Reactive robot control programs,
implement  a simple multi-agent application comprising hybrid reactive/deliberative agents interacting in a simulated ballroom.
In the ballroom simulation dancer agents arrive asynchronously over a period of time and negotiate to enter into joint commitments to dance a particular dance (e.g. polka) when it is next announced.  Each agent has a model of the other agent's initial desires obtained from a match maker with which all register on arrival at the dance. This model, and the dancers own unsatisfied desires and current commitments, constrain the negotiation.  This is the deliberative component of each dancer. They only begin a negotiation when the band is not playing.
When a dance is announced, by a band agent that cycles through a repertoire of dances, dancers with a joint commitment to dance do so to discharge the commitment. This is the reactive component.
Each dancer's reactive and deliberative components  are concurrently executing  threads which communicate and coordinate using belief, desire  and intention memory stores.  We believe such a multi-threaded agent architecture represents a powerful and natural style of agent implementation, for which Go! is well suited.