edu.iastate.jrelm.demo.bandit
Class BanditModel

java.lang.Object
  extended by uchicago.src.sim.engine.SimModelImpl
      extended by uchicago.src.sim.engine.SimpleModel
          extended by edu.iastate.jrelm.demo.bandit.BanditModel
All Implemented Interfaces:
uchicago.src.reflector.DescriptorContainer, uchicago.src.sim.engine.SimEventProducer, uchicago.src.sim.engine.SimModel

public class BanditModel
extends uchicago.src.sim.engine.SimpleModel

This is a demonstration model showing the use of an agent with behavior driven by the core components. A GamblerAgent, an agent powered by a RothErevLearner, is placed before a FiveArmedBandit, a mechanism with five levers. Each of the levers yields one of three reward values with different probabilities. The reward distribution also differs over each arm and thus each arm has a different expected return. The task for the GamblerAgent is to learn, by repeatedly pulling arms, which arm yields the highest expected value and so is the best to keep pulling to maximize reward. The last arm has the highest expected reward, so we expect to see the history of arm choices converge to arm 4.

Author:
Charles Gieseler

Field Summary
 
Fields inherited from class uchicago.src.sim.engine.SimpleModel
agentList, autoStep, isGui, name, params, schedule, seed, shuffle, startAt
 
Fields inherited from class uchicago.src.sim.engine.SimModelImpl
descriptors, modelManipulator
 
Constructor Summary
BanditModel()
           
 
Method Summary
 void buildModel()
           
static void main(java.lang.String[] args)
           
 void setup()
           
protected  void step()
           
 
Methods inherited from class uchicago.src.sim.engine.SimpleModel
atEnd, atPause, begin, buildSchedule, getInitParam, getName, getNextDoubleFromTo, getNextIntFromTo, getSchedule, postStep, preStep, 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
 

Constructor Detail

BanditModel

public BanditModel()
Method Detail

setup

public void setup()
Specified by:
setup in interface uchicago.src.sim.engine.SimModel
Overrides:
setup in class uchicago.src.sim.engine.SimpleModel

buildModel

public void buildModel()
Overrides:
buildModel in class uchicago.src.sim.engine.SimpleModel

step

protected void step()
Overrides:
step in class uchicago.src.sim.engine.SimpleModel

main

public static void main(java.lang.String[] args)