jadex.bdi.planlib.protocols
Class LinearPriceCalculator

java.lang.Object
  extended by jadex.bdi.planlib.protocols.LinearPriceCalculator
All Implemented Interfaces:
IOfferGenerator

public class LinearPriceCalculator
extends java.lang.Object
implements IOfferGenerator

A sample implementation of the IPriceCalculator. Calculates the price for the rounds of an english auction.


Field Summary
protected  boolean increasing
          Flag indicating if increasing or decreasing prices are calculated.
protected  double limitprice
          The limit price.
protected  double minstepwidth
          The minimum step width.
protected  java.util.List prices
          The prices.
protected  int round
          The negotiation round.
protected  double startprice
          The start price.
protected  double stepwidth
          The base (base^round).
protected  double variation
          The variance.
 
Constructor Summary
LinearPriceCalculator(double startprice, double limitprice, double base)
          Create a new linear price calculator.
LinearPriceCalculator(double startprice, double limitprice, double stepwidth, double variation, double minstepwidth)
          Create a new linear price calculator.
 
Method Summary
 java.lang.Comparable getCurrentOffer()
          Get the current price.
 java.lang.Comparable getLastOffer()
          Returns the offer for the last round.
 java.lang.Comparable getLimitOffer()
          Get the min price.
 int getRound()
          Get the round.
 java.lang.Comparable getStartOffer()
          Get the start price.
static void main(java.lang.String[] args)
          Main for testing.
 void setNextRound()
          Increase the round.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

round

protected int round
The negotiation round.


startprice

protected double startprice
The start price.


limitprice

protected double limitprice
The limit price.


prices

protected java.util.List prices
The prices.


variation

protected double variation
The variance.


stepwidth

protected double stepwidth
The base (base^round).


minstepwidth

protected double minstepwidth
The minimum step width.


increasing

protected boolean increasing
Flag indicating if increasing or decreasing prices are calculated.

Constructor Detail

LinearPriceCalculator

public LinearPriceCalculator(double startprice,
                             double limitprice,
                             double base)
Create a new linear price calculator.

Parameters:
startprice - The start price.
limitprice - The minimal price for a successful auction.
base - The base for the exponential function, should be positive for english and negative for dutch auctions.

LinearPriceCalculator

public LinearPriceCalculator(double startprice,
                             double limitprice,
                             double stepwidth,
                             double variation,
                             double minstepwidth)
Create a new linear price calculator.

Parameters:
startprice - the start price
limitprice - the minimal price for a successful auction
stepwidth - The normal increment/decrement value.
variation - The variation in percentage (0->1) for the increment. The increment will be used to adapt the increment by multiplying it with (+/-) a random value that has maximal the variation percentage influence, e.g. setting 0.1 will cause the increment being maximally +/-10% changed.
Method Detail

getCurrentOffer

public java.lang.Comparable getCurrentOffer()
Get the current price.

Specified by:
getCurrentOffer in interface IOfferGenerator
Returns:
The current price.

getLastOffer

public java.lang.Comparable getLastOffer()
Returns the offer for the last round.

Specified by:
getLastOffer in interface IOfferGenerator
Returns:
The last offer.

getLimitOffer

public java.lang.Comparable getLimitOffer()
Get the min price.

Specified by:
getLimitOffer in interface IOfferGenerator
Returns:
The minprice.

getStartOffer

public java.lang.Comparable getStartOffer()
Get the start price.

Specified by:
getStartOffer in interface IOfferGenerator
Returns:
The startprice

getRound

public int getRound()
Get the round.

Specified by:
getRound in interface IOfferGenerator
Returns:
The round.

setNextRound

public void setNextRound()
Increase the round.

Specified by:
setNextRound in interface IOfferGenerator

main

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



Copyright © 2010. All Rights Reserved.