edu.stanford.multiagent.gamer
Class BertrandOligopoly

java.lang.Object
  |
  +--edu.stanford.multiagent.gamer.ParameterizedObject
        |
        +--edu.stanford.multiagent.gamer.Game
              |
              +--edu.stanford.multiagent.gamer.BertrandOligopoly

public class BertrandOligopoly
extends Game

Returns an instance of the Bertrand Oligopoly. Set-up is similar to that of the Timing Games, but functions used to determine payoffs are arbitrarily more complicated.


Field Summary
 
Fields inherited from class edu.stanford.multiagent.gamer.Game
actions, DEFAULT_HIGH, DEFAULT_LOW, intMult, intPayoffs, players, pMaxPayoff, pMinPayoff, pNormalize, symActions
 
Fields inherited from class edu.stanford.multiagent.gamer.ParameterizedObject
parameters
 
Constructor Summary
BertrandOligopoly()
           
 
Method Summary
protected  void checkParameters()
          Checks if Parameter values are consistent.
 void doGenerate()
          Generates the demand and cost functions which are needed to determine payoffs.
protected  java.lang.String getGameHelp()
          Return help screen information about the given game class.
 double getPayoff(int[] outcome, int player)
          Return the payoff for the given player in the given outcome using the parameterized cost and demand functions.
 void initialize()
          Initializes using preset parameter values
 void randomizeParameters()
          Sets values of any unset parameters randomly.
 void setParameters(edu.stanford.multiagent.gamer.ParamParser p, boolean randomize)
          Sets the parameters for the game itself, and parse and set the parameters for the cost and demand functions and set those respectively.
 
Methods inherited from class edu.stanford.multiagent.gamer.Game
generate, getAutoNormPayoff, getDescription, getHelp, getName, getNormPayoff, getNumActions, getNumActions, getNumPlayers, getOutputPayoff, getOutputPayoff, getPayoff, getRangeHelp, parseActions, parsePlayersActions, parsePlayersSameNumberActions, parseSameNumberActions, setDescription, setName, setNormMinAndMax, setNumActions, setNumActions, setNumPlayers, writeGame
 
Methods inherited from class edu.stanford.multiagent.gamer.ParameterizedObject
getBooleanParameter, getDoubleParameter, getLongParameter, getParamDescription, getParameter, getParameters, getStringParameter, setParameter, setParameter, setParameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BertrandOligopoly

public BertrandOligopoly()
                  throws java.lang.Exception
Method Detail

setParameters

public void setParameters(edu.stanford.multiagent.gamer.ParamParser p,
                          boolean randomize)
                   throws java.lang.Exception
Sets the parameters for the game itself, and parse and set the parameters for the cost and demand functions and set those respectively.

Overrides:
setParameters in class ParameterizedObject
Parameters:
p - the ParamParser containing the parameters and their values
randomize - should be set to true if it is desired that any unset parameters be randomized
Throws:
java.lang.Exception

initialize

public void initialize()
                throws java.lang.Exception
Description copied from class: Game
Initializes using preset parameter values

Overrides:
initialize in class Game
Throws:
java.lang.Exception

randomizeParameters

public void randomizeParameters()
Description copied from class: ParameterizedObject
Sets values of any unset parameters randomly. Can and should be overridden in subclasses to handle a non-uniform distribution and for constraints on parameters.

Overrides:
randomizeParameters in class ParameterizedObject

checkParameters

protected void checkParameters()
                        throws java.lang.Exception
Description copied from class: ParameterizedObject
Checks if Parameter values are consistent. Must be implemented by every non-abstract subclass of ParameterizedObject.

Specified by:
checkParameters in class ParameterizedObject
Throws:
java.lang.Exception - if anything is wrong with the parameter values

getGameHelp

protected java.lang.String getGameHelp()
Description copied from class: Game
Return help screen information about the given game class.

Specified by:
getGameHelp in class Game

getPayoff

public double getPayoff(int[] outcome,
                        int player)
Return the payoff for the given player in the given outcome using the parameterized cost and demand functions. If a firm is one of the m firms with the lowest price (action) then payoff is given by p * (D(p)/m) - C(D(p)/m) Otherwise the payoff is 0.

Specified by:
getPayoff in class Game
Parameters:
outcome - array of integers representing which actions have been chosen by each player
player - the player whose payoff to return

doGenerate

public void doGenerate()
Generates the demand and cost functions which are needed to determine payoffs.

Specified by:
doGenerate in class ParameterizedObject