swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Parameter Managers and all that...


From: Sven N. Thommesen
Subject: Re: Parameter Managers and all that...
Date: Tue, 01 Apr 1997 12:10:58 -0600

-- Warning: also a long post --

I'll contribute my 2 cents' worth to Ginger's excellent discussion:

1. My own stuff:

My own implementation is much simpler than Ginger's. I use ObjectLoader-
like code to read a disk file and stuff values into the instance vars of
a parameterAgent, who turns around and fills those values into a Struct.

The address of this struct is then passed to every object/agent as it is
created, allowing it to retrieve the relevant parameters.

I've used Drone to explore parameter space, having the application first
set most parameters from the disk file then (re-)setting the parameters
being varied from the command line.

(As an aside, I use parameters to specify where on the screen to put the
various graph and raster windows -- this varies between my 1600x1200 
machine @work and my 1280x1024 machine @home. Windows now automagically
place themselves in an orderly manner within the virtual desk top.)

2. On Ginger's stuff:

One thing I particularly like is the way she allows an arbitrary set of
Grandma agents be created, depending on the content of the disk file. My 
own implementation is much more restricted, essentially assuming the 
exact number and nature of agents to be created.

I agree that we need a way to specify valid sub-ranges for parameters,
and/or that parameters depend on each other (simple case: offset off
each other) in specifiable ways. In the full-blown case, we're looking at
some kind of script language here. Is there any handy candidate available,
or would we have to invent our own wheel for this purpose?

Ginger says she'd like to see the ability to plug in different search
engines -- this begs the question of whether the search engine is 
conceived of as part of the simulation, or (a la Drone) behaves more like
an 'outer wrapper' to the simulation. If it is a variable part of the sim,
then the choice of search engine becomes one of the variable parameters,
etc. etc. ...

I have one question for Ginger: are all your Grandma objects created at
'the same level', so to speak? How would you deal with a situation where
there's a hierarchy? (E.g. A-agents create B-agents, who create C-agents
and so on.)

3. Extensions:

I have two suggestions for extending Ginger's model:

a) (this may actually be in Ginger's implementation) there needs to be a
way to specify that we want 100 Boids created, and for those Boids certain
parameters are distributed Uniformly[a,b] or Normally(c,d) over the 
population;

b) I take Ginger's discussion of 'observePop' to mean this is the name of
a message being sent rather than a data value being set. I'd like to extend
this concept: the 'parameter' file should be capable of holding arbitrary
messages to be scheduled for execution at specified moments after the
simulation has started! Motivation #1: like many, I have implemented an 
object whose main function is to have message probe buttons on the screen,
the function of which is to send specified messages to specified objects
when pressed. For example, I can add a given number of new agents to the
simulation whenever I like. The execution of such messages ought to be 
recorded in the experiment-run log file, so that I can document what was
done. From there it is not a big step to suggesting that the parameter-
setting functionality be expanded to being able to 'play back' such a log
file so as to replicate the previous experiment. Motivation #2: if your
model is one in which you explore possible histories of a given 'society', 
you definitely want to be able to schedule events that'll happen at given
times. (Think SimCity: at t=200, a fire breaks out at city hall ...)

The generalization is this: the Parameter Manager concept is kind of
static, in that it envisions everything being applied at t=0. Now just
add the ability to specify the time parameter!


Cheers,
Sven



reply via email to

[Prev in Thread] Current Thread [Next in Thread]