Class TGameQController

java.lang.Object
  extended by TGameController
      extended by TGameQController

public class TGameQController
extends TGameController

This applet demonstrates a simple game. It isn't designed to be general or reusable.

Copyright (C) 2006 David Poole.

This program gives core of the simulation. The GUI is in SGameGUI.java. The environment code is at SGameEnv.java. This controller is at SGameQController.java.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


Field Summary
 
Fields inherited from class TGameController
sarsa, tracing
 
Method Summary
 void doreset(double initVal)
          resets the Q-values.
 void dostep(int action)
          does one step.
 void doSteps(int count, double greedyProb)
          does count number of steps This is where you would put your controller
 double qvalue(int xval, int yval, int action)
          The GUI uses qvalue(x,y,a) to display values and for the arrows.
 double value(int xval, int yval)
          determines the value of a state the value is the maximum, for all actions, of the q-value
 
Methods inherited from class TGameController
getAlpha, getAlphaFixed, getDiscount, getEnvironment, getTitle, setAlpha, setAlphaFixed, setDiscount, toDisplay
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

qvalue

public double qvalue(int xval,
                     int yval,
                     int action)
The GUI uses qvalue(x,y,a) to display values and for the arrows.

Overrides:
qvalue in class TGameController

doreset

public void doreset(double initVal)
resets the Q-values.

Overrides:
doreset in class TGameController
Parameters:
initVal - the initial value given by a box in the GUI

dostep

public void dostep(int action)
does one step. carries out the action in the environment. This may be a place to record what the agent has learned from its experience.

The actions are

Overrides:
dostep in class TGameController
Parameters:
action - the action that the agent does

value

public double value(int xval,
                    int yval)
determines the value of a state the value is the maximum, for all actions, of the q-value

Parameters:
xval - the x-coordinate
yval - the y-coordinate
Returns:
the value of the (xval,yval) position

doSteps

public void doSteps(int count,
                    double greedyProb)
does count number of steps This is where you would put your controller

Overrides:
doSteps in class TGameController
Parameters:
count - the number of steps to do
greedyProb - the probability that is step is chosen greedily