edu.cuny.cat.stat
Class DistributionBasedScoreDaysCondition

java.lang.Object
  extended by edu.cuny.cat.stat.AbstractScoreDaysCondition
      extended by edu.cuny.cat.stat.DistributionBasedScoreDaysCondition
All Implemented Interfaces:
AuctionEventListener, ScoreDaysCondition, edu.cuny.config.param.Parameterizable, edu.cuny.obj.Resetable

public class DistributionBasedScoreDaysCondition
extends AbstractScoreDaysCondition

A ScoreDaysCondition defines that game days are chosen for scoring with probabilities according to the cumulative distribution function of a certain distribution. Since some distributions are defined only on a certain range, a linear transformation is used to map its output to a desired range.

Suppose the length of a game is x days and as the time moves on, the probability of counting a day for scoring is hoped to increase, then the following lists parameter suggestions when different distributions are used:

The following gives a list of examples to configure various distributions:

  cat.server.report.5 = edu.cuny.cat.stat.ScoreReport
  cat.server.report.5.condition = edu.cuny.cat.stat.DistributionBasedScoreDaysCondition 
  
  # lambda = 1/gamelen
  cat.server.report.5.condition.distribution = edu.cuny.random.Exponential
  cat.server.report.5.condition.distribution.lambda = 0.0025
  cat.server.report.5.condition.a = 1
  cat.server.report.5.condition.b = 0
 
  # a = gamelen/10
  cat.server.report.5.condition.distribution = edu.cuny.random.ChiSquare
  cat.server.report.5.condition.distribution.freedom = 6
  cat.server.report.5.condition.a = 40
  cat.server.report.5.condition.b = 0
 
  # a = gamelen/10; b = gamelen/5
  cat.server.report.5.condition.distribution = edu.cuny.random.Binomial
  cat.server.report.5.condition.distribution.n = 10
  cat.server.report.5.condition.distribution.p = 0.5
  cat.server.report.5.condition.a = 40
  cat.server.report.5.condition.b = 80
  
  # a = gamelen/10; b = gamelen/2
  cat.server.report.5.condition.distribution = edu.cuny.random.StudentT
  cat.server.report.5.condition.distribution.mean = 1
  cat.server.report.5.condition.a = 40
  cat.server.report.5.condition.b = 200
  
  # a = gamelen/10; b = - 2*gamelen/5
  cat.server.report.5.condition.distribution = edu.cuny.random.Poisson
  cat.server.report.5.condition.distribution.mean = 10
  cat.server.report.5.condition.a = 40
  cat.server.report.5.condition.b = -160
  
  # a = gamelen
  cat.server.report.5.condition.distribution = edu.cuny.random.Beta
  cat.server.report.5.condition.distribution.alpha = 0.5
  cat.server.report.5.condition.distribution.beta = 0.5
  cat.server.report.5.condition.a = &cat.server.gamelen;
  cat.server.report.5.condition.b = 0
 

Parameters

base.distribution
full name of class inheriting cern.jet.random.AbstractDistribution
(the distribution used for choosing scoring days, e.g. ChiSquare)
base.a
double (1 by default)
(slope of the linear transformation)
base.b
double (0 by default)
(y-intercept of the linear transformation)

Version:
$Revision: 1.9 $
Author:
Jinzhong Niu

Field Summary
protected  double a
           
protected  double b
           
static double DEFAULT_A
           
static double DEFAULT_B
           
protected  cern.jet.random.AbstractDistribution distribution
           
static java.lang.String P_A
           
static java.lang.String P_B
           
static java.lang.String P_DEBUG
           
static java.lang.String P_DISTRIBUTION
           
 
Fields inherited from class edu.cuny.cat.stat.AbstractScoreDaysCondition
day, debug, taken
 
Constructor Summary
DistributionBasedScoreDaysCondition()
           
 
Method Summary
 void setup(edu.cuny.config.param.ParameterDatabase parameters, edu.cuny.config.param.Parameter base)
           
 java.lang.String toString()
           
protected  boolean updateTaken(int day)
          determines whether the day is a scoring day or not.
 
Methods inherited from class edu.cuny.cat.stat.AbstractScoreDaysCondition
count, eventOccurred, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

P_DISTRIBUTION

public static final java.lang.String P_DISTRIBUTION
See Also:
Constant Field Values

P_A

public static final java.lang.String P_A
See Also:
Constant Field Values

P_B

public static final java.lang.String P_B
See Also:
Constant Field Values

P_DEBUG

public static final java.lang.String P_DEBUG
See Also:
Constant Field Values

DEFAULT_A

public static final double DEFAULT_A
See Also:
Constant Field Values

DEFAULT_B

public static final double DEFAULT_B
See Also:
Constant Field Values

distribution

protected cern.jet.random.AbstractDistribution distribution

a

protected double a

b

protected double b
Constructor Detail

DistributionBasedScoreDaysCondition

public DistributionBasedScoreDaysCondition()
Method Detail

setup

public void setup(edu.cuny.config.param.ParameterDatabase parameters,
                  edu.cuny.config.param.Parameter base)
Specified by:
setup in interface edu.cuny.config.param.Parameterizable
Overrides:
setup in class AbstractScoreDaysCondition

updateTaken

protected boolean updateTaken(int day)
Description copied from class: AbstractScoreDaysCondition
determines whether the day is a scoring day or not.

Specified by:
updateTaken in class AbstractScoreDaysCondition

toString

public java.lang.String toString()
Overrides:
toString in class AbstractScoreDaysCondition