edu.cuny.tac.aa.policy
Class SmoothSpendingPolicy

java.lang.Object
  extended by edu.cuny.tac.aa.GameInfo
      extended by edu.cuny.tac.aa.strategy.StrategyModule
          extended by edu.cuny.tac.aa.policy.BiddingPolicy
              extended by edu.cuny.tac.aa.policy.SpendingPolicy
                  extended by edu.cuny.tac.aa.policy.FixedSpendingPolicy
                      extended by edu.cuny.tac.aa.policy.ValuationBasedSpendingPolicy
                          extended by edu.cuny.tac.aa.policy.CapacityBasedSpendingPolicy
                              extended by edu.cuny.tac.aa.policy.SmoothSpendingPolicy
All Implemented Interfaces:
edu.cuny.util.Parameterizable
Direct Known Subclasses:
ProfitabilityBasedSpendingPolicy

public class SmoothSpendingPolicy
extends CapacityBasedSpendingPolicy

A spending policy that dynamically adjusts the overall spending limit by examining how much the spendings over a sliding window fluctunate. If the daily spendings fluctunate very much, the overall spending limit may be too high; while if the daily spendings constantly reach the limit, the spending limit may be set too low.

Version:
$Revision: 1.14 $
Author:
Jinzhong Niu

Field Summary
protected  double alpha
          the percentage of the spending limit to increase or decrease at a time
protected  int daysToWait
           
static java.lang.String P_ALPHA
           
static java.lang.String P_WAITING
           
protected  int startDay
           
protected  int waitingDays
           
protected  int windowLen
           
 
Fields inherited from class edu.cuny.tac.aa.policy.CapacityBasedSpendingPolicy
hRatio, lRatio, P_HRATIO, P_LRATIO
 
Fields inherited from class edu.cuny.tac.aa.policy.ValuationBasedSpendingPolicy
boostRate, high, low, P_BOOSTRATE, P_HIGH, P_LOW
 
Fields inherited from class edu.cuny.tac.aa.policy.FixedSpendingPolicy
limit, P_LIMIT
 
Fields inherited from class edu.cuny.tac.aa.policy.BiddingPolicy
Formatter, strategy
 
Fields inherited from class edu.cuny.tac.aa.GameInfo
BL, CAPACITY, CLICKS, COMPONENT, COMPONENT_NAMES, CONVERSIONS, COST, CPC, CTR, CVR, DAY_DIFF, DV, ERROR, GAME_LENGTH, HIGH_CAPACITY, IMPRESSIONS, INCOME, INDIV_POPULATION_SIZE, LIMIT, LOW_CAPACITY, MANUFACTURER, MANUFACTURER_NAMES, MED_CAPACITY, NUM_OF_COMPONENTS, NUM_OF_MANUFACTURERS, NUM_OF_PRODUCTS, NUM_OF_USER_STAETS, P_AA, POSITION, PR_BST_NStoIS, PR_BST_NStoNS, PR_BURST, PR_F0toF0, PR_F0toF1, PR_F0toNS, PR_F1toF1, PR_F1toF2, PR_F1toNS, PR_F2toF2, PR_F2toNS, PR_IStoF0, PR_IStoF1, PR_IStoF2, PR_IStoIS, PR_IStoNS, PR_STD_NStoIS, PR_STD_NStoNS, PR_TtoNS, PR_TtoT, PROFIT_RATE, PROFIT_UNIT_RATE, PROMOTED, PROMOTED_IMPRESSIONS, REGULAR, REGULAR_IMPRESSIONS, REVENUE, USER_STATE_NAMES, USP
 
Constructor Summary
SmoothSpendingPolicy()
           
 
Method Summary
protected  void adjustBaseLimit()
           
 void handleAdvertiserInfo(edu.umich.eecs.tac.props.AdvertiserInfo advertiserInfo)
           
 void prepareSpendingLimits(edu.umich.eecs.tac.props.BidBundle bidBundle, edu.umich.eecs.tac.props.BidBundle valueBundle)
          sets the spending limits in the bid bundle.
 void setup(edu.cuny.util.ParameterDatabase parameters, edu.cuny.util.Parameter base)
           
 java.lang.String toString()
           
 
Methods inherited from class edu.cuny.tac.aa.policy.CapacityBasedSpendingPolicy
calculateLimit
 
Methods inherited from class edu.cuny.tac.aa.policy.FixedSpendingPolicy
getLimit, setLimit
 
Methods inherited from class edu.cuny.tac.aa.policy.BiddingPolicy
getStrategy, handleBankStatus, handleQueryReport, handleSalesReport, handleSimulationStatus, handleStartInfo, processDailyRecord, setStrategy
 
Methods inherited from class edu.cuny.tac.aa.GameInfo
isHighCapacity, isLowCapacity, isMedCapacity
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

P_ALPHA

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

P_WAITING

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

alpha

protected double alpha
the percentage of the spending limit to increase or decrease at a time


startDay

protected int startDay

windowLen

protected int windowLen

waitingDays

protected int waitingDays

daysToWait

protected int daysToWait
Constructor Detail

SmoothSpendingPolicy

public SmoothSpendingPolicy()
Method Detail

setup

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

handleAdvertiserInfo

public void handleAdvertiserInfo(edu.umich.eecs.tac.props.AdvertiserInfo advertiserInfo)
Overrides:
handleAdvertiserInfo in class BiddingPolicy

prepareSpendingLimits

public void prepareSpendingLimits(edu.umich.eecs.tac.props.BidBundle bidBundle,
                                  edu.umich.eecs.tac.props.BidBundle valueBundle)
Description copied from class: SpendingPolicy
sets the spending limits in the bid bundle.

Overrides:
prepareSpendingLimits in class ValuationBasedSpendingPolicy

adjustBaseLimit

protected void adjustBaseLimit()

toString

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