|
FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
|

Public Member Functions | |
| LeafNodeTree (String ownVariable, Val[] ownVariableDomain, UtilitySolutionSpace< Val, U > space, U zero, U infeasible, boolean maximize, boolean collectStats) | |
| A constructor. | |
| LeafNodeTree (String ownVariable, Val[] ownVariableDomain, List< UtilitySolutionSpace< Val, U > > spaces, U zero, U infeasible, boolean maximize, boolean collectStats) | |
| A constructor. | |
| Good< Val, U > | getAmax () |
| void | getBestAssignmentForOwnVariable (HashMap< String, Val > context) |
| int[] | getFinalDomainSize () |
| Val[][] | getDomains () |
| boolean | hasFullInfo () |
| boolean | hasMore () |
| boolean | isValuationSufficient () |
| boolean | knowsVariable (String variable) |
| boolean | notEnoughInfo () |
| boolean | pathExists (Val[] values) |
| void | removeAMax () |
| This function is not used in this class. | |
| void | setFinalDomainSize (String[] variables, int[] domainSize) |
| This function is not used in this class. | |
| boolean | stillToSend () |
| String[] | getChildSeparatorReportingOrder (int child) |
| void | setChildrenSeparator (int child, String[] variables) |
| boolean | add (Good< Val, U > g, int sender, HashMap< String, Val[]> domains) |
| boolean | setChildDone (int child) |
| HashMap< String, Val > | getChildValues (HashMap< String, Val > parentContext, int child) |
| Public Member Functions inherited from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > > | |
| GoodsTree (String ownVariable, Val[] ownVariableDomain, UtilitySolutionSpace< Val, U > space, U zero, int numberOfChildren, U infeasibleUtil, boolean maximize, boolean collectStats) | |
| A constructor. | |
| GoodsTree (String ownVariable, Val[] ownVariableDomain, List< UtilitySolutionSpace< Val, U > > spaces, U zero, int numberOfChildren, U infeasibleUtil, boolean maximize, boolean collectStats) | |
| A constructor. | |
| double | getTreeFillPercentage () |
| long | getNumberOfDummies () |
| double | getDummiesFillPercentage () |
| boolean | greaterThanOrEqual (U u1, U u2) |
| Compares two values. | |
| boolean | greaterThan (U u1, U u2) |
| Compares two values. | |
| U | getMaximalCut () |
| long | getNumberOfGoodsSent () |
| long | getSizeOfSpace () |
Protected Member Functions | |
| void | addToTree (Val[] assignment, int depth, Node currentNode) |
| Adds a reported value to the goods tree. | |
| void | getOwnAssignment (HashMap< String, Val > assignment, Node currentNode, int depth) |
| Given an assignment to all the variables in the variables separator, this method finds and returns the optimal value of the tree's own variable. | |
| boolean | pathExists (Val[] values, int finalDepth) |
| Checks whether a path exists up until a certain depth. | |
| Protected Member Functions inherited from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > > | |
| void | solveLocalProblem () |
| Method used to solve the local problem and create an ordered list of all feasible assignments. | |
| void | countLeafNode () |
| Method used to count the number of leaf nodes created (includes the dummy nodes). | |
| void | countLeafNode (boolean real) |
| Method used to count the number of leaf nodes created (includes the dummy nodes). | |
| void | countGoodsProduced () |
| Count rhe number of goods produced. | |
Protected Attributes | |
| Node | root |
| The root of the tree. | |
| boolean | hasMore |
true when orderedAssignments is not empty, and false otherwise | |
| String[] | separatorVariables |
The variables in ownVariable's separator. | |
| int[] | domainSize |
| For each variable the size of its domain. | |
| HashMap< String, HashMap< Val, Integer > > | valuePointers |
| for each variables, the child index of their values | |
| Val[] | localAssignment |
| The currently optimal assignment to the local problem. | |
| boolean | singleton |
true when the variable that owns this tree is a singleton, i.e. | |
| Protected Attributes inherited from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > > | |
| UtilitySolutionSpace< Val, U > | localProblem |
| The list of spaces this variable is responsible for. | |
| int | numberOfLocalVariables |
| The number of local variables in the local problem. | |
| IteratorBestFirst< Val, U > | localProblemIterator |
| Iterator that returns solutions to the local problem in a best first order. | |
| final U | infeasibleUtil |
| The -infinite utility. | |
| final U | zero |
| The zero utility. | |
| int | numberOfSpaces |
| The number of spaces that together comprise the local problem. | |
| Class<?> | domainElementClass |
| domain element used for reflection | |
| int | numberOfVariables |
| The number of variables in the local problem. | |
| String[] | depthToVariable |
| Links a level in the tree with its corresponding variable. | |
| String | ownVariable |
| The variable that controls this LeafNodeTree. | |
| int | depthFinalVariable |
| The depth of the last variable in the tree. | |
| Val[] | ownVarDomain |
The domain of ownVariable. | |
| String[] | outsideVariables |
| The variables as they should be communicated with the outside world. | |
| int[] | valuesToBeRemoved |
| Contains the indices of the values that need to be removed from the assigment before being send upwards. | |
| int | depthOfFirstToBeRemovedVariables |
| All variables below this depth must be removed when sending a good. | |
| HashMap< String, Integer > | outsideVariablesMapping |
| A mapping from outside variables to inside variables. | |
| final boolean | maximize |
true when we are maximizing, and false otherwise | |
| long | totalSeparatorSpaceSize = 1 |
| The size of the separator space. | |
Private Member Functions | |
| void | init (U zero) |
| Method to initialize all the variables. | |
Private Attributes | |
| HashMap< String, Integer > | variableToDepth |
The index of every variable in variables. | |
| boolean | stillToSend |
true when the final domain size information has not yet been requested, and false otherwise | |
Static Private Attributes | |
| static final long | serialVersionUID = -4372313666234992912L |
| Used for serialisation. | |
Additional Inherited Members | |
| Public Attributes inherited from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > > | |
| final boolean | COLLECT_STATISTICS |
true when statistics should be collected, and false otherwise | |
| <Val> | type used for variable values |
| <U> | type used for utility values |
| <L> | type used for the leaf node |
| frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.LeafNodeTree | ( | String | ownVariable, |
| Val[] | ownVariableDomain, | ||
| UtilitySolutionSpace< Val, U > | space, | ||
| U | zero, | ||
| U | infeasible, | ||
| boolean | maximize, | ||
| boolean | collectStats ) |
A constructor.
| ownVariable | The variable ID |
| ownVariableDomain | The domain of ownVariable |
| space | The hypercube representing the local problem |
| zero | The zero utility |
| infeasible | The infeasible utility |
| maximize | when true we are maximizing, when false we are minimizing |
| collectStats | true when statistics should be collected, and false otherwise |
References init(), frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.maximize, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.numberOfSpaces, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.ownVariable, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.solveLocalProblem(), and frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.zero.

| frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.LeafNodeTree | ( | String | ownVariable, |
| Val[] | ownVariableDomain, | ||
| List< UtilitySolutionSpace< Val, U > > | spaces, | ||
| U | zero, | ||
| U | infeasible, | ||
| boolean | maximize, | ||
| boolean | collectStats ) |
A constructor.
| ownVariable | The variable ID |
| ownVariableDomain | The domain of ownVariable |
| spaces | The hypercubes representing the local problem |
| zero | The zero utility |
| infeasible | The infeasible utility |
| maximize | when true we are maximizing, when false we are minimizing |
| collectStats | true when statistics should be collected, and false otherwise |
References init(), frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.maximize, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.numberOfSpaces, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.ownVariable, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.solveLocalProblem(), and frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.zero.

| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.add | ( | Good< Val, U > | g, |
| int | sender, | ||
| HashMap< String, Val[]> | domains ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
|
protected |
Adds a reported value to the goods tree.
| assignment | The reported assignment |
| depth | The current depth in the tree |
| currentNode | The current node being visited |
References frodo2.algorithms.odpop.goodsTree.leafNodeTree.Node.addChild(), addToTree(), frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.COLLECT_STATISTICS, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.countLeafNode(), frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthFinalVariable, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthToVariable, domainSize, frodo2.algorithms.odpop.goodsTree.leafNodeTree.Node.getChild(), and valuePointers.
Referenced by addToTree().

| Good< Val, U > frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.getAmax | ( | ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
References getAmax(), and frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.localProblemIterator.
Referenced by getAmax().

| void frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.getBestAssignmentForOwnVariable | ( | HashMap< String, Val > | context | ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
References getOwnAssignment(), and root.

| String[] frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.getChildSeparatorReportingOrder | ( | int | child | ) |
| HashMap< String, Val > frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.getChildValues | ( | HashMap< String, Val > | parentContext, |
| int | child ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
| Val[][] frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.getDomains | ( | ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
References frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthToVariable, getDomains(), frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.localProblem, and frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.numberOfVariables.
Referenced by getDomains().

| int[] frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.getFinalDomainSize | ( | ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
References frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthFinalVariable, domainSize, frodo2.output, and stillToSend.
|
protected |
Given an assignment to all the variables in the variables separator, this method finds and returns the optimal value of the tree's own variable.
| assignment | The partial assignment |
| currentNode | The current node being visited |
| depth | The current depth in the tree |
References frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthFinalVariable, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthToVariable, frodo2.algorithms.odpop.goodsTree.leafNodeTree.Node.getChild(), getOwnAssignment(), frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNode< Val extends Addable< Val > >.getValue(), localAssignment, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.numberOfVariables, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.ownVariable, and valuePointers.
Referenced by getBestAssignmentForOwnVariable(), and getOwnAssignment().

| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.hasFullInfo | ( | ) |
| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.hasMore | ( | ) |
|
private |
Method to initialize all the variables.
| zero | The zero utility |
References frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthFinalVariable, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthToVariable, domainSize, hasMore, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.localProblem, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.numberOfVariables, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.ownVarDomain, root, separatorVariables, singleton, stillToSend, frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.totalSeparatorSpaceSize, valuePointers, variableToDepth, and frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.zero.
Referenced by LeafNodeTree(), and LeafNodeTree().
| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.isValuationSufficient | ( | ) |
| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.knowsVariable | ( | String | variable | ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
References valuePointers.
| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.notEnoughInfo | ( | ) |
| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.pathExists | ( | Val[] | values | ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
References frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthToVariable, frodo2.algorithms.odpop.goodsTree.leafNodeTree.Node.getChild(), frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.numberOfVariables, root, and valuePointers.

|
protected |
Checks whether a path exists up until a certain depth.
| values | the path to be checked |
| finalDepth | the maximal depth |
true when the path exists, and false otherwise References frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.depthToVariable, frodo2.algorithms.odpop.goodsTree.leafNodeTree.Node.getChild(), root, and valuePointers.

| void frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.removeAMax | ( | ) |
This function is not used in this class.
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.setChildDone | ( | int | child | ) |
| void frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.setChildrenSeparator | ( | int | child, |
| String[] | variables ) |
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
| void frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.setFinalDomainSize | ( | String[] | variables, |
| int[] | domainSize ) |
This function is not used in this class.
Reimplemented from frodo2.algorithms.odpop.goodsTree.GoodsTree< Val extends Addable< Val >, U extends Addable< U >, L extends Node< U > >.
References domainSize.
| boolean frodo2.algorithms.odpop.goodsTree.leafNodeTree.LeafNodeTree< Val extends Addable< Val >, U extends Addable< U >, L extends frodo2.algorithms.odpop.goodsTree.InnerNodeTreeFullDomain.Node< U > >.stillToSend | ( | ) |
|
protected |
For each variable the size of its domain.
Referenced by addToTree(), getFinalDomainSize(), init(), and setFinalDomainSize().
|
protected |
true when orderedAssignments is not empty, and false otherwise
Referenced by hasFullInfo(), hasMore(), and init().
|
protected |
The currently optimal assignment to the local problem.
Referenced by getOwnAssignment().
|
protected |
The root of the tree.
Referenced by getBestAssignmentForOwnVariable(), init(), pathExists(), and pathExists().
|
protected |
The variables in ownVariable's separator.
Referenced by init().
|
staticprivate |
Used for serialisation.
|
protected |
true when the variable that owns this tree is a singleton, i.e.
has no parents or children
Referenced by init().
|
private |
true when the final domain size information has not yet been requested, and false otherwise
Referenced by getFinalDomainSize(), init(), and stillToSend().
|
protected |
for each variables, the child index of their values
Referenced by addToTree(), getOwnAssignment(), init(), knowsVariable(), pathExists(), and pathExists().
|
private |
The index of every variable in variables.
Referenced by init().