FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
Loading...
Searching...
No Matches
frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > > Class Template Reference

The UTIL propagation phase for O-DPOP. More...

Inheritance diagram for frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >:

Classes

class  VariableInfo
 Convenience class that contains information for a specific variable. More...
class  OptUtilMessage
 Message sent by roots containing the optimal utility value of their DFS tree. More...
class  GoodsTreeMessage
 Message used to give the pointer to the goods tree to the VALUE propagation module. More...
class  StatsMessage
 Message containing statistics. More...

Public Member Functions

 UTILpropagationFullDomain (Element parameters, DCOPProblemInterface< Val, U > problem)
 Constructor for the statsreporter.
 UTILpropagationFullDomain (DCOPProblemInterface< Val, U > problem, Element parameters)
 Constructor.
 UTILpropagationFullDomain (DCOPProblemInterface< Val, U > problem)
 Alternative constructor not using XML.
void getStatsFromQueue (Queue queue)
getOptUtil ()
long getFinalTime ()
 Returns the time at which this module has finished, determined by looking at the timestamp of the stat messages.
void setSilent (boolean silent)
Integer getMaxMsgDim ()
Collection< MessageTypegetMsgTypes ()
void notifyIn (Message msg)
 The algorithm.
VariableInfo newVariableInfoInstanceInnerNode (String var, List< String > children, String parent, Val[] ownVariableDomain, List< UtilitySolutionSpace< Val, U > > usedSpaces, int numberOfChildren, U zeroUtility)
 Method to be used when var is an innernode.
VariableInfo newVariableInfoInstanceLeafNode (String var, List< String > children, String parent, Val[] ownVariableDomain, List< UtilitySolutionSpace< Val, U > > usedSpaces, int numberOfChildren, U zeroUtility)
 Method to be used when var is an leafnode.
void setQueue (Queue queue)
void startProcess (VariableInfo variable, int varIndex)
 This method starts the algorithm for the specified variable, i.e.
void reset ()
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 MessageType START_MSG_TYPE = AgentInterface.START_AGENT
 The type of the message telling the module to start.
static final MessageType UTIL_MSG = new MessageType ("O-DPOP", "UTILpropagation", "UTIL")
 The type of the UTIL message.
static final MessageType UTIL_MSG_VARS = new MessageType ("O-DPOP", "UTILpropagation", "UTIL_VARS")
 The type of a UTIL message with variables.
static final MessageType UTIL_MSG_DOM = new MessageType ("O-DPOP", "UTILpropagation", "UTIL_DOM")
 The type of the UTIL message with domain information.
static final MessageType UTIL_MSG_DOM_VARS = new MessageType ("O-DPOP", "UTILpropagation", "UTIL_DOM_VARS")
 The type of the UTIL message with domain information.
static final MessageType ASK_MSG = new MessageType ("O-DPOP", "UTILpropagation", "ASK")
 The type of the ASK message.
static final MessageType DONE_MSG = new MessageType ("O-DPOP", "UTILpropagation", "Done")
 The type of the DONE message.
static final MessageType OPT_UTIL_MSG_TYPE = new MessageType ("O-DPOP", "UTILpropagation", "OptUtil")
 The type of the messages containing optimal utility values sent by roots.
static final MessageType VALUE_PROP_START_MSG_TYPE = new MessageType ("O-DPOP", "UTILpropagation", "Start VALUE propagation")
 The type of the message used to start the value propagation.
static final MessageType GOODS_TREE_MSG_TYPE = new MessageType ("O-DPOP", "UTILpropagation", "Goods tree")
 The type of the message used to send the GoodsTree to the VALUE propagation module.
static final MessageType UTIL_STATS_MSG_TYPE = new MessageType ("O-DPOP", "UTILpropagation", "UTILstats")
 The type of messages sent to the statistics monitor.

Protected Member Functions

leafNodeInstance ()
void init ()
 Method used to initialize the agents fields.
void processGOOD (VariableInfo variable, Good< Val, U > g, String sender, HashMap< String, Val[]> domains)
 Method used to process the GOOD messages received by this agent.
void processASK (VariableInfo variable)
 Method to process the ASK messages received by this agent.
void processDONE (VariableInfo variable, String sender)
 Method sets the entry for the corresponding agent of the done array in variable to true.
void sendMessageToVariable (String receiver, Message msg, String variableID)
 Send a message to a variable.
void log (String variableID, String message)
 Log function used to print the variables state during debugging.
void utilPropagationFinished (String variableID, GoodsTree< Val, U, L > tree, U utility, int inducedWidth)
 Method called when util propagation phase for a certain variable has finished.

Protected Attributes

boolean reportStats = true
 Whether to report stats.
optTotalUtil
 The optimal, total utility reported to the stats gatherer.
Queue queue
 The queue through which all communication flows.
DCOPProblemInterface< Val, U > problem
 The agent's problem.
HashMap< String, Integer > variablePointer
 Gives the variables' indexes in the arrays.
VariableInfo[] infos
 The VariableInfo for each variable.
boolean[] ready
 Tells one when a variable is ready to start the algorithm.
Map< String, String > owners
 For each variable the agent that owns it.
boolean started = false
 Whether the algorithm has been started.
boolean[] receivedASK
 For each variable it stores whether an ASK message has been received.
HashMap< String, BufferedWriter > loggers
 A list of buffered writers used to log information during debugging.
infeasibleUtil
 The minus infinty object.
boolean agentFinished
 true when the agent has finished, and false otherwise
Integer maxMsgDim = 0
 In stats gatherer mode, the maximum number of variables in a UTIL message.
long finalTime
 The time at which all UTIL propagation modules are finished.
boolean maximize
 true when solving a maximization problem, and false otherwise
boolean collectStats
 true when statistics should be collected in the tree, and false otherwise

Static Protected Attributes

static final boolean LOG = false
 To log or not to log.

Detailed Description

The UTIL propagation phase for O-DPOP.

Author
brammert
Parameters
<Val>type used for variable values
<U>type used for utility values
<L>class used for the leaf node
Todo
make it work for minimisation problems as well!

Constructor & Destructor Documentation

◆ UTILpropagationFullDomain() [1/3]

frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.UTILpropagationFullDomain ( Element parameters,
DCOPProblemInterface< Val, U > problem )

Constructor for the statsreporter.

Parameters
problemthe overall problem
parametersthe description of what statistics should be reported (currently unused)

References problem.

◆ UTILpropagationFullDomain() [2/3]

frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.UTILpropagationFullDomain ( DCOPProblemInterface< Val, U > problem,
Element parameters )

Constructor.

Parameters
problemThe problem description
parametersThe parameters

References problem.

◆ UTILpropagationFullDomain() [3/3]

frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.UTILpropagationFullDomain ( DCOPProblemInterface< Val, U > problem)

Alternative constructor not using XML.

Parameters
problemThe problem description

References problem.

Member Function Documentation

◆ getFinalTime()

long frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.getFinalTime ( )

Returns the time at which this module has finished, determined by looking at the timestamp of the stat messages.

Author
Brammert Ottens, 22 feb 2010
Returns
the time at which this module has finished

References finalTime.

◆ getMaxMsgDim()

Integer frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.getMaxMsgDim ( )
Returns
the maximum number of variables in a UTIL message (in stats gatherer mode only)

◆ getMsgTypes()

◆ getOptUtil()

U frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.getOptUtil ( )

◆ getStatsFromQueue()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.getStatsFromQueue ( Queue queue)

◆ init()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.init ( )
protected

Method used to initialize the agents fields.

References infos, init(), LOG, loggers, maximize, owners, problem, ready, receivedASK, started, and variablePointer.

Referenced by init().

Here is the call graph for this function:

◆ leafNodeInstance()

L frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.leafNodeInstance ( )
protected
Author
Brammert Ottens, 10 feb. 2011
Returns
a new instance of a leafnode

References leafNodeInstance().

Referenced by leafNodeInstance(), and newVariableInfoInstanceInnerNode().

Here is the call graph for this function:

◆ log()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.log ( String variableID,
String message )
protected

Log function used to print the variables state during debugging.

Parameters
variableIDThe ID of the variable that is logging
messageThe message that must be logged

References LOG, and loggers.

Referenced by processASK(), processDONE(), processGOOD(), sendMessageToVariable(), startProcess(), and frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.VariableInfo().

◆ newVariableInfoInstanceInnerNode()

VariableInfo frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.newVariableInfoInstanceInnerNode ( String var,
List< String > children,
String parent,
Val[] ownVariableDomain,
List< UtilitySolutionSpace< Val, U > > usedSpaces,
int numberOfChildren,
U zeroUtility )

Method to be used when var is an innernode.

Author
Brammert Ottens, 9 feb. 2011
Parameters
varthe variable name
childrenthe DFS children of the variable
parentthe DFS parent of the variable
ownVariableDomainthe domain of the variable
usedSpacesthe spaces owned by the variable
numberOfChildrenthe number of DFS children of the variable
zeroUtilitythe zero utility
Returns
A new instance of the VariableInfo class

References collectStats, infeasibleUtil, leafNodeInstance(), maximize, and problem.

Here is the call graph for this function:

◆ newVariableInfoInstanceLeafNode()

VariableInfo frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.newVariableInfoInstanceLeafNode ( String var,
List< String > children,
String parent,
Val[] ownVariableDomain,
List< UtilitySolutionSpace< Val, U > > usedSpaces,
int numberOfChildren,
U zeroUtility )

Method to be used when var is an leafnode.

Author
Brammert Ottens, 9 feb. 2011
Parameters
varthe variable name
childrenthe DFS children of the variable
parentthe DFS parent of the variable
ownVariableDomainthe domain of the variable
usedSpacesthe spaces owned by the variable
numberOfChildrenthe number of DFS children of the variable
zeroUtilitythe zero utility
Returns
A new instance of the VariableInfo class

References collectStats, infeasibleUtil, maximize, and problem.

◆ notifyIn()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.notifyIn ( Message msg)

The algorithm.

See also
StatsReporter.notifyIn(Message)

Implements frodo2.communication.IncomingMsgPolicyInterface< T >.

References frodo2.communication.MessageType.equals(), finalTime, notifyIn(), OPT_UTIL_MSG_TYPE, and queue.

Referenced by notifyIn().

Here is the call graph for this function:

◆ processASK()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.processASK ( VariableInfo variable)
protected

Method to process the ASK messages received by this agent.

Parameters
variableThe variable information
Todo
Reusing messages is no longer useful

References frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.children, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.done, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.getAskMessage(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.getNewVariable(), frodo2.algorithms.odpop.Good< Val extends Addable< Val >, U extends Addable< U > >.getUtility(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.infeasible, LOG, log(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.parent, queue, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.root, sendMessageToVariable(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.setNewVariable(), frodo2.algorithms.AgentInterface< V extends Addable< V > >.STATS_MONITOR, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.toString(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.tree, and frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.variableID.

Referenced by processDONE(), and startProcess().

Here is the call graph for this function:

◆ processDONE()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.processDONE ( VariableInfo variable,
String sender )
protected

Method sets the entry for the corresponding agent of the done array in variable to true.

Parameters
variableThe variables to whom this message has been sent
senderThe sender of the message

References frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.childrenPointer, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.done, frodo2.algorithms.odpop.Good< Val extends Addable< Val >, U extends Addable< U > >.getUtility(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.infeasible, LOG, log(), processASK(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.responded, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.root, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.terminated, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.toString(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.tree, utilPropagationFinished(), and frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.variableID.

Here is the call graph for this function:

◆ processGOOD()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.processGOOD ( VariableInfo variable,
Good< Val, U > g,
String sender,
HashMap< String, Val[]> domains )
protected

Method used to process the GOOD messages received by this agent.

Parameters
variableThe variable information
gThe good received
senderThe sender of the good
domainsthe domains of the children variables
Todo
Reusing messages is no longer useful

References frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.childrenPointer, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.done, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.getAskMessage(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.getNewVariable(), frodo2.algorithms.odpop.Good< Val extends Addable< Val >, U extends Addable< U > >.getUtility(), LOG, log(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.parent, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.responded, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.root, sendMessageToVariable(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.setNewVariable(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.terminated, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.tree, utilPropagationFinished(), and frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.variableID.

Here is the call graph for this function:

◆ reset()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.reset ( )

◆ sendMessageToVariable()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.sendMessageToVariable ( String receiver,
Message msg,
String variableID )
protected

Send a message to a variable.

Parameters
receiverThe recipient of the message
msgThe message to be send
variableIDTHe ID of the recipient of the message

References frodo2.communication.Message.getType(), LOG, log(), owners, and queue.

Referenced by processASK(), processGOOD(), and startProcess().

Here is the call graph for this function:

◆ setQueue()

◆ setSilent()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.setSilent ( boolean silent)

◆ startProcess()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.startProcess ( VariableInfo variable,
int varIndex )

This method starts the algorithm for the specified variable, i.e.

if the variable is the root an ASK message is sent. If not an ASK message is sent if an ASK message has been received

Parameters
variableThe variable info
varIndexThe index of the variable
Todo
Reusing messages is no longer useful

References frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.children, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.done, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.getAskMessage(), frodo2.algorithms.odpop.Good< Val extends Addable< Val >, U extends Addable< U > >.getUtility(), LOG, log(), frodo2.output, processASK(), queue, receivedASK, frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.root, sendMessageToVariable(), frodo2.algorithms.AgentInterface< V extends Addable< V > >.STATS_MONITOR, frodo2.algorithms.odpop.Good< Val extends Addable< Val >, U extends Addable< U > >.toString(), frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.tree, and frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VariableInfo.variableID.

Here is the call graph for this function:

◆ utilPropagationFinished()

void frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.utilPropagationFinished ( String variableID,
GoodsTree< Val, U, L > tree,
U utility,
int inducedWidth )
protected

Method called when util propagation phase for a certain variable has finished.

Author
Brammert Ottens, 8 feb. 2011
Parameters
variableIDthe ID of the variable that is finished
treethe goods tree
utilitythe optimal utility
inducedWidththe induced with of the DFS tree used

References queue, and frodo2.algorithms.AgentInterface< V extends Addable< V > >.STATS_MONITOR.

Referenced by processDONE(), and processGOOD().

Member Data Documentation

◆ agentFinished

boolean frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.agentFinished
protected

true when the agent has finished, and false otherwise

◆ ASK_MSG

final MessageType frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.ASK_MSG = new MessageType ("O-DPOP", "UTILpropagation", "ASK")
static

◆ collectStats

boolean frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.collectStats
protected

true when statistics should be collected in the tree, and false otherwise

Referenced by newVariableInfoInstanceInnerNode(), and newVariableInfoInstanceLeafNode().

◆ DONE_MSG

final MessageType frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.DONE_MSG = new MessageType ("O-DPOP", "UTILpropagation", "Done")
static

◆ finalTime

long frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.finalTime
protected

The time at which all UTIL propagation modules are finished.

Referenced by getFinalTime(), and notifyIn().

◆ GOODS_TREE_MSG_TYPE

◆ infeasibleUtil

U frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.infeasibleUtil
protected

The minus infinty object.

Referenced by newVariableInfoInstanceInnerNode(), and newVariableInfoInstanceLeafNode().

◆ infos

VariableInfo [] frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.infos
protected

The VariableInfo for each variable.

Referenced by init().

◆ LOG

◆ loggers

HashMap<String, BufferedWriter> frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.loggers
protected

A list of buffered writers used to log information during debugging.

Referenced by init(), and log().

◆ maximize

boolean frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.maximize
protected

true when solving a maximization problem, and false otherwise

Referenced by init(), newVariableInfoInstanceInnerNode(), and newVariableInfoInstanceLeafNode().

◆ maxMsgDim

Integer frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.maxMsgDim = 0
protected

In stats gatherer mode, the maximum number of variables in a UTIL message.

◆ OPT_UTIL_MSG_TYPE

◆ optTotalUtil

U frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.optTotalUtil
protected

The optimal, total utility reported to the stats gatherer.

◆ owners

Map<String, String> frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.owners
protected

For each variable the agent that owns it.

Referenced by init(), and sendMessageToVariable().

◆ problem

◆ queue

Queue frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.queue
protected

The queue through which all communication flows.

Referenced by getStatsFromQueue(), notifyIn(), processASK(), sendMessageToVariable(), setQueue(), startProcess(), and utilPropagationFinished().

◆ ready

boolean [] frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.ready
protected

Tells one when a variable is ready to start the algorithm.

Referenced by init().

◆ receivedASK

boolean [] frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.receivedASK
protected

For each variable it stores whether an ASK message has been received.

Referenced by init(), and startProcess().

◆ reportStats

boolean frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.reportStats = true
protected

Whether to report stats.

◆ START_MSG_TYPE

MessageType frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.START_MSG_TYPE = AgentInterface.START_AGENT
static

The type of the message telling the module to start.

Referenced by getMsgTypes().

◆ started

boolean frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.started = false
protected

Whether the algorithm has been started.

Referenced by init().

◆ UTIL_MSG

◆ UTIL_MSG_DOM

final MessageType frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.UTIL_MSG_DOM = new MessageType ("O-DPOP", "UTILpropagation", "UTIL_DOM")
static

◆ UTIL_MSG_DOM_VARS

◆ UTIL_MSG_VARS

◆ UTIL_STATS_MSG_TYPE

final MessageType frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.UTIL_STATS_MSG_TYPE = new MessageType ("O-DPOP", "UTILpropagation", "UTILstats")
static

◆ VALUE_PROP_START_MSG_TYPE

final MessageType frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.VALUE_PROP_START_MSG_TYPE = new MessageType ("O-DPOP", "UTILpropagation", "Start VALUE propagation")
static

The type of the message used to start the value propagation.

◆ variablePointer

HashMap<String, Integer> frodo2.algorithms.odpop.UTILpropagationFullDomain< Val extends Addable< Val >, U extends Addable< U >, L extends LeafNode< U > >.variablePointer
protected

Gives the variables' indexes in the arrays.

Referenced by init().


The documentation for this class was generated from the following file: