uchicago.src.repastdemos.genetic
Class GeneticChangeModel
java.lang.Object
uchicago.src.sim.engine.SimModelImpl
uchicago.src.sim.engine.SimpleModel
uchicago.src.repastdemos.genetic.GeneticChangeModel
- All Implemented Interfaces:
- DescriptorContainer, SimEventProducer, SimModel
public class GeneticChangeModel
- extends SimpleModel
This demo illustrates the use of the genetic algorithm package in an agent. The
premise of this model is that there is a simple competition where the competitors
must make a particular amount of change with the least amount of coins possible.
Each step a judge will judge the competitors based on the number of coins they
used and the total change they have. For example, if the goal amount is
$0.79, an agent should have 3 quarters and 4 pennies.
The number of coins the competitor has is determined by a genetic algorithm.
This is a simple example, but shows the way in which the GA can be incorporated
into an agent, and the procedures neccessary to have the GA work. Even with a
small initial genetic pool the GA finds the correct solution usually in the
first few ticks.
When a competitor performs the correct action she moves towards the center of
the display.
- Version:
- $Revision: 1.1 $ $Date: 2005/08/12 20:04:55 $
- Author:
- Jerry Vos
| Methods inherited from class uchicago.src.sim.engine.SimpleModel |
atEnd, atPause, buildModel, buildSchedule, getNextDoubleFromTo, getNextIntFromTo, getSchedule, run, runAutoStep, setRngSeed, setStoppingTime, setStoppingTime |
| Methods inherited from class uchicago.src.sim.engine.SimModelImpl |
addPropertyListener, addSimEventListener, clearMediaProducers, clearPropertyListeners, fireBooleanPropertyEvent, fireEndSim, fireNumericPropertyEvent, fireObjectPropertyEvent, firePauseSim, fireSimEvent, fireStopSim, fireStringPropertyEvent, generateNewSeed, getController, getMediaProducers, getModelManipulator, getParameterDescriptors, getPropertiesValues, getRngSeed, getTickCount, pause, registerDisplaySurface, registerMediaProducer, removePropertyListener, removeSimEventListener, setController, stop |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
space
protected CompetitionSpace space
GeneticChangeModel
public GeneticChangeModel()
getInitParam
public java.lang.String[] getInitParam()
- Description copied from interface:
SimModel
- Gets the names of the initial model parameters to set. These names must
have get and set methods supplied by the model. For example, for the
parameter maxAge, the model must have getMaxAge and setMaxAge methods.
- Specified by:
getInitParam in interface SimModel- Overrides:
getInitParam in class SimpleModel
- Returns:
- a String[] of the initial parameter names
begin
public void begin()
- Description copied from interface:
SimModel
- Begins a simulation run. All initialization, building the model, diplay,
etc. should take place here. This method is called whenever the start
button (or the step button if the run has not yet begun) is clicked. If
running in batch mode this is called to kick off a new simulation run.
- Specified by:
begin in interface SimModel- Overrides:
begin in class SimpleModel
buildDisplay
protected void buildDisplay()
- This builds the display surface for the competition
setup
public void setup()
- Sets up the model for the next run, clears out all the old employees
and the old displays
- Specified by:
setup in interface SimModel- Overrides:
setup in class SimpleModel
preStep
protected void preStep()
- Overrides:
preStep in class SimpleModel
step
protected void step()
- Overrides:
step in class SimpleModel
postStep
protected void postStep()
- Overrides:
postStep in class SimpleModel
getName
public java.lang.String getName()
- Description copied from class:
SimpleModel
- Gets the name of this model.
- Specified by:
getName in interface SimModel- Overrides:
getName in class SimpleModel
- Returns:
- the name of the model/simulation
getCompetitorCount
public int getCompetitorCount()
- Returns:
- Returns the number of employees in the office.
setCompetitorCount
public void setCompetitorCount(int employeeCount)
- Parameters:
employeeCount - The number of employees in the office.
getSpaceHeight
public int getSpaceHeight()
- Returns:
- returns the officeHeight
setSpaceHeight
public void setSpaceHeight(int officeHeight)
- Parameters:
officeHeight - the officeHeight
getSpaceWidth
public int getSpaceWidth()
- Returns:
- returns the officeWidth
setSpaceWidth
public void setSpaceWidth(int officeWidth)
- Parameters:
officeWidth - the officeWidth
getGoalAmountInDollars
public double getGoalAmountInDollars()
- Returns:
- Returns the goalAmountInDollars.
setGoalAmountInDollars
public void setGoalAmountInDollars(double goalAmountInDollars)
- Parameters:
goalAmountInDollars - The amount the agents are going for.
main
public static void main(java.lang.String[] args)