Package jadex.bdi.planlib.protocols
Class LinearPriceCalculator
- java.lang.Object
-
- 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
Fields Modifier and Type Field Description protected booleanincreasingFlag indicating if increasing or decreasing prices are calculated.protected doublelimitpriceThe limit price.protected doubleminstepwidthThe minimum step width.protected java.util.ListpricesThe prices.protected introundThe negotiation round.protected doublestartpriceThe start price.protected doublestepwidthThe base (base^round).protected doublevariationThe variance.
-
Constructor Summary
Constructors Constructor Description 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ComparablegetCurrentOffer()Get the current price.java.lang.ComparablegetLastOffer()Returns the offer for the last round.java.lang.ComparablegetLimitOffer()Get the min price.intgetRound()Get the round.java.lang.ComparablegetStartOffer()Get the start price.static voidmain(java.lang.String[] args)Main for testing.voidsetNextRound()Increase the round.
-
-
-
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 pricelimitprice- the minimal price for a successful auctionstepwidth- 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:
getCurrentOfferin interfaceIOfferGenerator- Returns:
- The current price.
-
getLastOffer
public java.lang.Comparable getLastOffer()
Returns the offer for the last round.- Specified by:
getLastOfferin interfaceIOfferGenerator- Returns:
- The last offer.
-
getLimitOffer
public java.lang.Comparable getLimitOffer()
Get the min price.- Specified by:
getLimitOfferin interfaceIOfferGenerator- Returns:
- The minprice.
-
getStartOffer
public java.lang.Comparable getStartOffer()
Get the start price.- Specified by:
getStartOfferin interfaceIOfferGenerator- Returns:
- The startprice
-
getRound
public int getRound()
Get the round.- Specified by:
getRoundin interfaceIOfferGenerator- Returns:
- The round.
-
setNextRound
public void setNextRound()
Increase the round.- Specified by:
setNextRoundin interfaceIOfferGenerator
-
main
public static void main(java.lang.String[] args)
Main for testing.
-
-