org.jacop.examples.fd.muca

Class MUCA

• ```public class MUCA
extends ExampleFD```
It solves the Mixed Multi-Unit Combinatorial Auctions.

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

Version:
4.8
Author:
• Field Summary

Fields
Modifier and Type Field and Description
`List<IntVar>` `bidCosts`
For each bidder it specifies variable representing the cost of the chosen xor bid.
`List<List<List<org.jacop.examples.fd.muca.MUCA.Transformation>>>` `bids`
ArrayList of bids issued by different bidders.
`List<List<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.
`String` `filename`
It reads auction problem description from the file.
`List<Integer>` `finalQuantity`
It specifies the minimal quantities of items seeked to achieve.
`List<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 org.jacop.examples.fd.ExampleFD

`cost, search, store, vars`
• Constructor Summary

Constructors
Constructor and Description
`MUCA()`
• Method Summary

All Methods
Modifier and Type Method and Description
`static void` `main(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(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 org.jacop.examples.fd.ExampleFD

`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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• Field Detail

• bids

`public List<List<List<org.jacop.examples.fd.muca.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 List<List<Integer>> costs`
For each bidder and each xor bid there is an integer representing a cost of the xor bid.
• initialQuantity

`public List<Integer> initialQuantity`
It specifies the initial quantities of goods.
• finalQuantity

`public List<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 List<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 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(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: `ExampleFD`
It specifies a standard way of modeling the problem.
Specified by:
`model` in class `ExampleFD`
• 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.
`public void readAuction(String filename)`
`filename` - file describing the auction problem.