Class 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 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

      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.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.
      • main

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