ExamplesJaCoP
Class MUCA

java.lang.Object
  extended by ExamplesJaCoP.Example
      extended by ExamplesJaCoP.MUCA

public class MUCA
extends Example

It solves the Mixed Multi-Unit Combinatorial Auctions.

Version:
3.0 The idea originated from reading the following paper where the first attempt to use CP was presented. Comparing Winner Determination Algorithms for Mixed Multi-Unit Combinatorial Auctions by Brammert Ottens Ulle Endriss
Author:
Radoslaw Szymanek

Field Summary
 java.util.ArrayList<IntVar> bidCosts
          For each bidder it specifies variable representing the cost of the chosen xor bid.
 java.util.ArrayList<java.util.ArrayList<java.util.ArrayList<ExamplesJaCoP.MUCA.Transformation>>> bids
          ArrayList of bids issued by different bidders.
 java.util.ArrayList<java.util.ArrayList<java.lang.Integer>> costs
          For each bidder and each xor bid there is an integer representing a cost of the xor bid.
 IntVar[][] deltasI
          For each transition and each good it specifies the delta change of that good before the transition takes place.
 IntVar[][] deltasO
          For each transition and each good it specifies the delta change of that good after the transition takes place.
 java.lang.String filename
          It reads auction problem description from the file.
 java.util.ArrayList<java.lang.Integer> finalQuantity
          It specifies the minimal quantities of items seeked to achieve.
 java.util.ArrayList<java.lang.Integer> initialQuantity
          It specifies the initial quantities of goods.
 int maxCost
          It specifies the maximal value for the cost.
 int maxDelta
          It specifies the maximal possible delta of goods for any transformation.
 int maxNoTransformations
          It specifies the maximal number of transformations used by the auctioneer.
 int maxProducts
          The maximal number of products.
 int minCost
          It specifies the minimal value for the cost.
 int minDelta
          It specifies the minimal possible delta of goods for any transformation.
 int noGoods
          It specifies number of goods which are in the focus of the auction.
 IntVar[] sum
          It specifies the number of goods after the last transition.
 IntVar[] transitions
          It specifies the sequence of transitions used by an auctioneer.
 
Fields inherited from class ExamplesJaCoP.Example
cost, search, store, vars
 
Constructor Summary
MUCA()
           
 
Method Summary
static void main(java.lang.String[] args)
          It executes the program which solve the supplied auction problem or solves three problems available within the files.
 void model()
          It specifies a standard way of modeling the problem.
 void readAuction(java.lang.String filename)
          It reads the auction problem from the file.
 boolean searchSpecial()
          It executes special master-slave search.
 void setupProblem1()
          It creates an instance of the auction problem.
 void setupProblem2()
          It creates an instance of the auction problem.
 void setupProblem3()
          It creates an instance of the auction problem.
 void setupProblem4()
          It creates an instance of the auction problem.
 
Methods inherited from class ExamplesJaCoP.Example
creditSearch, getSearch, getSearchVariables, getStore, printMatrix, search, searchAllAtOnce, searchAllOptimal, searchLDS, searchMasterSlave, searchMaxRegretOptimal, searchMiddle, searchMostConstrainedStatic, searchOptimal, searchSmallestDomain, searchSmallestMedian, searchSmallestMiddle, searchSmallestMin, searchWeightedDegree, searchWithMaxRegret, searchWithRestarts, shavingSearch
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bids

public java.util.ArrayList<java.util.ArrayList<java.util.ArrayList<ExamplesJaCoP.MUCA.Transformation>>> bids
ArrayList of bids issued by different bidders. Each bidder issues an ArrayList of xor bids. Each Xor bid is a list of transformations.


costs

public java.util.ArrayList<java.util.ArrayList<java.lang.Integer>> costs
For each bidder and each xor bid there is an integer representing a cost of the xor bid.


initialQuantity

public java.util.ArrayList<java.lang.Integer> initialQuantity
It specifies the initial quantities of goods.


finalQuantity

public java.util.ArrayList<java.lang.Integer> finalQuantity
It specifies the minimal quantities of items seeked to achieve.


noGoods

public int noGoods
It specifies number of goods which are in the focus of the auction.


minDelta

public int minDelta
It specifies the minimal possible delta of goods for any transformation.


maxDelta

public int maxDelta
It specifies the maximal possible delta of goods for any transformation.


minCost

public int minCost
It specifies the minimal value for the cost.


maxCost

public int maxCost
It specifies the maximal value for the cost.


maxProducts

public int maxProducts
The maximal number of products.


bidCosts

public java.util.ArrayList<IntVar> bidCosts
For each bidder it specifies variable representing the cost of the chosen xor bid.


transitions

public IntVar[] transitions
It specifies the sequence of transitions used by an auctioneer.


maxNoTransformations

public int maxNoTransformations
It specifies the maximal number of transformations used by the auctioneer.


deltasI

public IntVar[][] deltasI
For each transition and each good it specifies the delta change of that good before the transition takes place.


deltasO

public IntVar[][] deltasO
For each transition and each good it specifies the delta change of that good after the transition takes place.


sum

public IntVar[] sum
It specifies the number of goods after the last transition.


filename

public java.lang.String filename
It reads auction problem description from the file.

Constructor Detail

MUCA

public MUCA()
Method Detail

setupProblem1

public void setupProblem1()
It creates an instance of the auction problem.


setupProblem2

public void setupProblem2()
It creates an instance of the auction problem.


setupProblem3

public void setupProblem3()
It creates an instance of the auction problem.


setupProblem4

public void setupProblem4()
It creates an instance of the auction problem.


main

public static void main(java.lang.String[] args)
It executes the program which solve the supplied auction problem or solves three problems available within the files.

Parameters:
args - the first argument specifies the name of the file containing the problem description.

model

public void model()
Description copied from class: Example
It specifies a standard way of modeling the problem.

Specified by:
model in class Example

searchSpecial

public boolean searchSpecial()
It executes special master-slave search. The master search uses costs variables and maxregret criteria to choose an interesting bids. The second search (slave) looks for the sequence of chosen transactions such as that all constraints concerning goods quantity (deltas of transitions) are respected.

Returns:
true if there is a solution, false otherwise.

readAuction

public void readAuction(java.lang.String filename)
It reads the auction problem from the file.

Parameters:
filename - file describing the auction problem.