|
FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
|
Implements an adaptation of the QDisCSP approach by Yokoo (DCR'09). More...

Classes | |
| class | RandVarsProjMsg |
| Message telling what random variables should be projected out at given decision variable. More... | |
Public Member Functions | |
| CompleteUTIL (Element parameters, DCOPProblemInterface< Val, U > problem) | |
| The constructor called in "statistics gatherer" mode. | |
| CompleteUTIL (DCOPProblemInterface< Val, U > problem, Element parameters) throws ClassNotFoundException | |
| Constructor from XML descriptions. | |
| void | getStatsFromQueue (Queue queue) |
| U | getWorstUtil () |
| U | getExpectedUtil () |
| U | getProbOfOptimality () |
| double | getCentralization () |
| HashMap< String, Val > | getSolution () |
| void | notifyIn (Message msg) |
| Public Member Functions inherited from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > > | |
| MessageType | getStartMsgType () |
| MessageType | getDFSMsgType () |
| UTILpropagation () | |
| Default constructor. | |
| UTILpropagation (DCOPProblemInterface< Val, U > problem) | |
| Constructor. | |
| UTILpropagation (DCOPProblemInterface< Val, U > problem, Element parameters) | |
| Constructor from XML descriptions. | |
| void | reset () |
| UTILpropagation (Element parameters, DCOPProblemInterface< Val, U > problem) | |
| The constructor called in "statistics gatherer" mode. | |
| Collection< MessageType > | getMsgTypes () |
| void | setQueue (Queue queue) |
| void | setSilent (boolean silent) |
| Integer | getMaxMsgDim () |
| U | getOptUtil () |
| long | getFinalTime () |
| Returns the time at which this module has finished, determined by looking at the timestamp of the stat messages. | |
| Public Member Functions inherited from frodo2.communication.IncomingMsgPolicyInterface< T > | |
| default void | notifyIn (Message msg, Object toAgent) |
| Notifies the listener of an incoming message. | |
Static Public Attributes | |
| static final MessageType | RAND_VARS_PROJ_MSG_TYPE = new MessageType ("E[DPOP]", "CompleteUTIL", "Where to project random variables") |
| The type of the messages telling what random variables should be projected out at given decision variable. | |
| Static Public Attributes inherited from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > > | |
| static MessageType | START_MSG_TYPE = AgentInterface.START_AGENT |
| The type of the message telling the module to start. | |
| static MessageType | FINISH_MSG_TYPE = AgentInterface.AGENT_FINISHED |
| The type of the message telling the agent finished. | |
| static MessageType | DFS_MSG_TYPE = DFSgeneration.OUTPUT_MSG_TYPE |
| The type of the messages containing information about the DFS. | |
| static final MessageType | UTIL_MSG_TYPE = new MessageType ("DPOP", "UTILpropagation", "UTIL") |
| The type of the messages containing utilities. | |
| static final MessageType | OUTPUT_MSG_TYPE = new MessageType ("DPOP", "UTILpropagation", "UTILoutput") |
| The type of the messages containing conditional optimal assignments. | |
| static final MessageType | SEPARATOR_MSG_TYPE = new MessageType ("DPOP", "UTILpropagation", "Separator") |
| The type of the messages containing separators. | |
| static final MessageType | OPT_UTIL_MSG_TYPE = new MessageType ("DPOP", "UTILpropagation", "OptUtil") |
| The type of the messages containing optimal utility values sent by roots. | |
| static final MessageType | UTIL_STATS_MSG_TYPE = new MessageType ("DPOP", "UTILpropagation", "UTILstats") |
| The type of messages sent to the statistics monitor. | |
Protected Member Functions | |
| void | init () |
| void | record (String senderVar, UtilitySolutionSpace< Val, U > space, ClusterInfo info) |
| void | projectAndSend (ClusterInfo info) |
| Protected Member Functions inherited from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > > | |
| ClusterInfo | newClusterInfo () |
| void | sendSeparator (String senderVar, String senderAgent, String dest, String[] separator) |
| Sends a message to the VALUEpropagation module containing the separator of a variable. | |
| ProjOutput< Val, U > | project (UtilitySolutionSpace< Val, U > space, String[] vars) |
| Projects the input variable from the input space. | |
| void | sendToParent (String var, String parentVar, String parentAgent, UtilitySolutionSpace< Val, U > space) |
| Sends a UTIL message. | |
| void | sendOutput (UtilitySolutionSpace< Val, U > space, String root) |
| Sends the output optimal utility to itself (i.e. | |
Private Member Functions | |
| void | centralization () |
| Computes the level of centralization. | |
| ProjOutput< Val, U > | project (UtilitySolutionSpace< Val, U > space, ArrayList< String > randVars, String myVar) |
| Projects out the input variables. | |
| String | dfsToString () |
Private Attributes | |
| HashMap< String, ArrayList< String > > | randVarsToProject = new HashMap< String, ArrayList<String> > () |
| What random variables each decision variable is responsible for projecting. | |
| HashMap< String, ArrayList< String > > | randVarsToIgnore = new HashMap< String, ArrayList<String> > () |
| What random variables each decision variable is linked to but not responsible for projecting. | |
| HashMap< String, Val > | solution = new HashMap<String, Val> () |
| For each variable, its optimal value. | |
| int | remainingVars |
| The number of variables owned by this agents that still have not sent VALUE messages to all their children. | |
| U | worstUtil |
| The worst-case utility. | |
| U | expectedUtil |
| The expected utility. | |
| final U | zero |
| A utility of 0. | |
| final U | one |
| A utility of 1. | |
| boolean | measureProbOfOpt = false |
| Whether to measure the probability of optimality. | |
| U | probOfOptimality |
| The total probability of the scenarios for which the chosen solution is optimal. | |
| double | centralization = -1.0 |
| The percentage of centralization imposed by the consistent DFS. | |
| HashMap< String, DFSview< Val, U > > | relationships |
| For every variable this agent owns, its view of the DFS. | |
| int | nbrStatsMsgs |
| The total number messages to expect in "statistics gatherer" mode. | |
| String | dotRendererClass = null |
| Renderer to display DOT code. | |
| final Method | method |
| The method to use. | |
| final int | nbrSamples |
| The number of samples for the random variables. | |
Additional Inherited Members | |
| Protected Attributes inherited from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > > | |
| boolean | withAnonymVars = false |
| Whether the parser should consider variables with no specified owner. | |
| DCOPProblemInterface< Val, U > | problem |
| The problem. | |
| boolean | started = false |
| Whether the execution of the algorithm has been started. | |
| boolean | maximize = true |
true if we want to maximize utility, false if we want to minimize cost | |
| Queue | queue |
| The queue on which it should call sendMessage(). | |
| Map< String, ClusterInfo > | infos |
| For each variable this agent owns, its relevant information. | |
| String | myID |
| This agent's name. | |
| U | optUtil |
| The optimal utility found to the problem. | |
| boolean | reportStats = true |
| Whether to report stats. | |
Implements an adaptation of the QDisCSP approach by Yokoo (DCR'09).
Assigns each random variable to its lowest neighbor in the DFS, which is responsible for minimizing over it.
| <Val> | type used for variable values |
| <U> | type used for utility values |
| frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.CompleteUTIL | ( | Element | parameters, |
| DCOPProblemInterface< Val, U > | problem ) |
The constructor called in "statistics gatherer" mode.
| parameters | the description of what statistics should be reported |
| problem | the overall problem |
References dotRendererClass, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.problem, relationships, and zero.
| frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.CompleteUTIL | ( | DCOPProblemInterface< Val, U > | problem, |
| Element | parameters ) throws ClassNotFoundException |
Constructor from XML descriptions.
| problem | description of the problem |
| parameters | description of the parameters of CompleteUTIL |
| ClassNotFoundException | if the module parameters specify an unknown class for utility values |
References frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.CONSENSUS, frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.CONSENSUS_ALL_SOLS, frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.EXPECTATION, frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.EXPECTATION_MONOTONE, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.problem, frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.ROBUST, and zero.
|
private |
Computes the level of centralization.
References frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getMyVars(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getSolutionSpaces(), and frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.problem.

|
private |
References frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.problem, randVarsToProject, and relationships.
Referenced by notifyIn().
| double frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.getCentralization | ( | ) |
References centralization.
| U frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.getExpectedUtil | ( | ) |
References expectedUtil.
| U frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.getProbOfOptimality | ( | ) |
References probOfOptimality.
| HashMap< String, Val > frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.getSolution | ( | ) |
References solution.
Referenced by frodo2.algorithms.dpop.stochastic.Complete_E_DPOPsolver< V extends Addable< V >, U extends Addable< U > >.buildSolution().
| void frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.getStatsFromQueue | ( | Queue | queue | ) |
Reimplemented from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.
References frodo2.algorithms.SolutionCollector< V extends Addable< V >, U extends Addable< U > >.ASSIGNMENTS_MSG_TYPE, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.queue, RAND_VARS_PROJ_MSG_TYPE, and frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.STATS_MSG_TYPE.
| U frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.getWorstUtil | ( | ) |
References worstUtil.
|
protected |
| void frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.notifyIn | ( | Message | msg | ) |
Reimplemented from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.
References frodo2.algorithms.SolutionCollector< V extends Addable< V >, U extends Addable< U > >.ASSIGNMENTS_MSG_TYPE, frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.blindProjectAll(), centralization, dfsToString(), dotRendererClass, frodo2.communication.MessageType.equals(), expectedUtil, frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.DFSview< V extends Addable< V >, U extends Addable< U > >.getAllPseudoChildren(), frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.DFSview< V extends Addable< V >, U extends Addable< U > >.getChildren(), frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.MessageDFSoutput< V extends Addable< V >, U extends Addable< U > >.getNeighbors(), frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.RandVarsProjMsg.getRandVars(), frodo2.communication.Message.getType(), frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.OptUtilMessage< U extends Addable< U > >.getUtility(), frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.MessageDFSoutput< V extends Addable< V >, U extends Addable< U > >.getVar(), frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.RandVarsProjMsg.getVariable(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.iterator(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.join(), frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.maximize, measureProbOfOpt, frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.multiply(), one, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.OPT_UTIL_MSG_TYPE, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.optUtil, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.problem, probOfOptimality, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.queue, RAND_VARS_PROJ_MSG_TYPE, randVarsToIgnore, randVarsToProject, relationships, remainingVars, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.reportStats, frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.slice(), solution, frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.sparseIter(), frodo2.algorithms.AgentInterface< V extends Addable< V > >.STATS_MONITOR, frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.STATS_MSG_TYPE, worstUtil, and zero.

|
private |
Projects out the input variables.
| space | the space |
| randVars | the random variables |
| myVar | the decision variable |
References frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.blindProject(), frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.CONSENSUS, frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.CONSENSUS_ALL_SOLS, frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.consensusAllSolsExpect(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.consensusExpect(), frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.EXPECTATION, frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.expectation(), frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.EXPECTATION_MONOTONE, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.maximize, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.problem, frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.project(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.projExpectMonotone(), and frodo2.algorithms.dpop.stochastic.ExpectedUTIL< Val extends Addable< Val >, U extends Addable< U > >.Method.ROBUST.
Referenced by projectAndSend().

|
protected |
Reimplemented from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.
References frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.ProjOutput< V extends Addable< V >, U extends Addable< U > >.getAssignments(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.ProjOutput< V extends Addable< V >, U extends Addable< U > >.getSpace(), frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.ClusterInfo.parent, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.ClusterInfo.parentAgent, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.problem, project(), frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.queue, randVarsToProject, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.ClusterInfo.spaces, frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.ClusterInfo.vars, and frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.ProjOutput< V extends Addable< V >, U extends Addable< U > >.varsOut.

|
protected |
Reimplemented from frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.
References randVarsToIgnore, and frodo2.algorithms.dpop.UTILpropagation< Val extends Addable< Val >, U extends Addable< U > >.ClusterInfo.vars.
|
private |
The percentage of centralization imposed by the consistent DFS.
Referenced by getCentralization(), and notifyIn().
|
private |
Renderer to display DOT code.
Referenced by CompleteUTIL(), and notifyIn().
|
private |
The expected utility.
Referenced by getExpectedUtil(), and notifyIn().
|
private |
Whether to measure the probability of optimality.
Referenced by notifyIn().
|
private |
The method to use.
|
private |
The number of samples for the random variables.
Referenced by init().
|
private |
The total number messages to expect in "statistics gatherer" mode.
|
private |
A utility of 1.
Referenced by notifyIn().
|
private |
The total probability of the scenarios for which the chosen solution is optimal.
Referenced by getProbOfOptimality(), and notifyIn().
|
static |
The type of the messages telling what random variables should be projected out at given decision variable.
Referenced by getStatsFromQueue(), notifyIn(), and frodo2.algorithms.dpop.stochastic.CompleteUTIL< Val extends Addable< Val >, U extends Addable< U > >.RandVarsProjMsg.RandVarsProjMsg().
|
private |
What random variables each decision variable is linked to but not responsible for projecting.
Referenced by notifyIn(), and record().
|
private |
What random variables each decision variable is responsible for projecting.
Referenced by dfsToString(), notifyIn(), and projectAndSend().
|
private |
For every variable this agent owns, its view of the DFS.
Used only in stats gatherer mode.
Referenced by CompleteUTIL(), dfsToString(), and notifyIn().
|
private |
The number of variables owned by this agents that still have not sent VALUE messages to all their children.
Referenced by notifyIn().
|
private |
For each variable, its optimal value.
Referenced by getSolution(), and notifyIn().
|
private |
The worst-case utility.
Referenced by getWorstUtil(), and notifyIn().
|
private |
A utility of 0.
Referenced by CompleteUTIL(), CompleteUTIL(), and notifyIn().