FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
Loading...
Searching...
No Matches
frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > > Class Template Reference

The AFB algorithm by Gershman, Meisels, and Zivan (JAIR'09). More...

Inheritance diagram for frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >:

Classes

class  ConvergenceMessage
 A message reporting the convergence for a given component. More...
class  ClusterInfo
 Information about a cluster of variables owned by this agent. More...
class  ComponentInfo
 The information about a particular component of the constraint graph. More...

Public Member Functions

 AFB ()
 Empty constructor.
 AFB (Element parameters, DCOPProblemInterface< V, U > problem)
 The constructor called in "statistics gatherer" mode.
 AFB (DCOPProblemInterface< V, U > problem, Element parameters)
 Constructor.
void reset ()
Collection< MessageTypegetMsgTypes ()
void getStatsFromQueue (Queue queue)
void setSilent (boolean silent)
void setQueue (Queue queue)
void notifyIn (Message msg)
HashMap< String, ArrayList< CurrentAssignment< V > > > getAssignmentHistories ()
Map< String, V > getCurrentSolution ()
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 AFB to start.
static MessageType ORDER_MSG_TYPE = OrderMsg.ORDER_MSG_TYPE
 The types of the messages containing the chosen linear order of clusters of variables.
static MessageType ORDER_STATS_MSG_TYPE = OrderMsg.STATS_MSG_TYPE
 The types of the messages containing the chosen linear order of clusters of variables sent to the stats gatherer.
static final MessageType FB_CPA_TYPE = new MessageType ("AFB", "FB_CPA")
 The type of the FB_CPA messages, sent to request estimations from unassigned agents.
static final MessageType CPA_MSG_TYPE = new MessageType ("AFB", "CPA")
 The type of the CPA messages, sent to the next variable in the ordering.
static final MessageType FB_ESTIMATE_TYPE = new MessageType ("AFB", "FB_ESTIMATE")
 The type of the FB_ESTIMATE messages, sent as response to a FB_CPA message.
static final MessageType OUTPUT_MSG_TYPE = new MessageType ("AFB", "Solution")
 The type of the message containing the optimal solution found.
static final MessageType UB_MSG_TYPE = new MessageType ("AFB", "UB")
 The type of the messages broadcast by the last variable containing the current upper bound.
static final MessageType STATS_MSG_TYPE = new MessageType ("AFB", "SolutionStats")
 The type of the message containing the optimal solution found sent to the stats gatherer.

Private Member Functions

void start ()
 Parses the problem.
boolean checkAllCostsNonNeg ()
void processCpaMsg (CPAmsg< V, U > msgCast, Comparable<?> componentID, ComponentInfo compInfo, int clusterIndex, ClusterInfo info)
void processFbEstimate (FbEstimateMsg< V, U > msgCast, Comparable<?> componentID, ComponentInfo compInfo, int clusterIndex, ClusterInfo info)
void processFbCpa (FbCpaMsg< V, U > msgCast, ComponentInfo compInfo, int clusterIndex, ClusterInfo info)
void processLinearOrdering (OrderMsg< V, U > msg, List< String > agents, Comparable<?> componentID, List< List< String > > order, ComponentInfo compInfo)
void initiate (Comparable<?> compID, ComponentInfo compInfo)
 Chooses a first value for the first variable and starts the algorithm.
UtilitySolutionSpace< V, U > h (final int i, ComponentInfo compInfo)
UtilitySolutionSpace< V, U > f (int clusterIndex, ComponentInfo compInfo, PA< V, U > pa)
 Method to compute the value f for a given cluster and some assigned value.
UtilitySolutionSpace< V, U > getLocalSpace (ComponentInfo compInfo, int clusterIndex, PA< V, U > pa, final boolean groundClusterVars)
 Method to compute the local space for a given cluster of variables and an assigned values, as a function of the variables in the current cluster.
void assign_CPA (Comparable<?> compID, ComponentInfo compInfo, final int clusterIndex)
 Method to assign a value to a variable.
void backtrack (Comparable<?> componentID, ComponentInfo compInfo, ClusterInfo info, int clusterIndex)
void terminate (Comparable<?> compID, ComponentInfo compInfo)
 Sends output and termination messages.

Private Attributes

final boolean verbose = false
 If set to true, information about each sent and received message will be printed to the console.
final boolean convergence
 true when the convergence history is to be stored
HashMap< String, ArrayList< CurrentAssignment< V > > > assignmentHistoriesMap
 For each variable, its assignment history.
HashMap< Comparable<?>, ComponentInfocompInfos
 The information about each component in the constraint graph.
HashMap< String, Comparable<?> > compOfCluster
 For each cluster of variables, its component ID.
Queue queue
 This module's queue.
DCOPProblemInterface< V, U > problem
 The problem.
boolean started = false
 Whether the module has already started the algorithm.
boolean finished = false
 Whether the module has already finished the algorithm.
zero
 The 0 cost.
HashMap< String, V > solution
 The solution.
Class< V > valClass
 The class of V.
Class< V[]> valArrayClass
 The class of V[].
LinkedList< SolutionMsg< V, U > > pendingSolMsgs
 Used to store solution messages received before their corresponding linear order.
LinkedList< ConvergenceMessage< V > > pendingConvMsgs
 Used to store convergence messages received by the stats gatherer before their corresponding linear order.
LinkedList< FbCpaMsg< V, U > > pendingFbCpaMsgs
 For some clusters, a FbCpaMsg that was received before the var order message.
HashMap< String, CPAmsg< V, U > > pendingCPAmsgs
 For some clusters, a CPAmsg that was received before the var order message.

Static Private Attributes

static final MessageType CONV_STATS_MSG_TYPE = new MessageType ("AFB", "Convergence")
 The type of the message reporting the convergence for a given component.

Detailed Description

The AFB algorithm by Gershman, Meisels, and Zivan (JAIR'09).

Author
Alexandra Olteanu, Thomas Leaute
Parameters
<V>the type used for variable values
<U>the type used for utility values

Constructor & Destructor Documentation

◆ AFB() [1/3]

frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.AFB ( )

Empty constructor.

◆ AFB() [2/3]

frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.AFB ( Element parameters,
DCOPProblemInterface< V, U > problem )

The constructor called in "statistics gatherer" mode.

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

References problem.

◆ AFB() [3/3]

frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.AFB ( DCOPProblemInterface< V, U > problem,
Element parameters )

Constructor.

Parameters
problemthis agent's problem
parametersthe parameters for AFB

References problem.

Member Function Documentation

◆ assign_CPA()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.assign_CPA ( Comparable<?> compID,
ComponentInfo compInfo,
final int clusterIndex )
private

Method to assign a value to a variable.

Parameters
compIDthe ID of the component in the constraint graph
compInfothe information about the component in the constraint graph
clusterIndexthe index of the cluster for which we are assigning values

References frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.agents, assign_CPA(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.assignmentCounter, frodo2.algorithms.afb.PA< V extends Addable< V >, U extends Addable< U > >.assignments, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.B, backtrack(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.bestSol, frodo2.algorithms.afb.PA< V extends Addable< V >, U extends Addable< U > >.c, frodo2.algorithms.afb.PA< V extends Addable< V >, U extends Addable< U > >.clone(), frodo2.algorithms.afb.Timestamp.clone(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.clone(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.clusterAgents, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.clusterInfos, convergence, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.cpa, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.domains, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.estimates, f(), frodo2.communication.Queue.getCurrentTime(), frodo2.solutionSpaces.ProblemInterface< V extends Addable< V >, U extends Addable< U > >.getMinInfUtility(), frodo2.solutionSpaces.ProblemInterface< V extends Addable< V >, U extends Addable< U > >.getPlusInfUtility(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.h, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.history, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.iterator, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.nextAgent, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.order, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.prevCost, frodo2.communication.Queue.sendMessage(), frodo2.communication.Queue.sendMessageToMulti(), frodo2.algorithms.afb.Timestamp.setCounter(), terminate(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.timestamp, UB_MSG_TYPE, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.vars, and verbose.

Referenced by assign_CPA(), initiate(), processCpaMsg(), and processFbEstimate().

Here is the call graph for this function:

◆ backtrack()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.backtrack ( Comparable<?> componentID,
ComponentInfo compInfo,
ClusterInfo info,
int clusterIndex )
private
Parameters
componentIDthe ID of the component in the constraint graph
compInfothe information about the component in the constraint graph
infothe CLusterInfo of the cluster for which we are assigning a value
clusterIndexthe index of the cluster for which we are assigning values
Todo
Backtrack messages don't need to contain the CPA.

References frodo2.algorithms.afb.PA< V extends Addable< V >, U extends Addable< U > >.assignments, frodo2.algorithms.afb.PA< V extends Addable< V >, U extends Addable< U > >.clone(), frodo2.algorithms.afb.Timestamp.clone(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.cpa, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.estimates, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.iterator, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.order, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.prevAgent, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.prevCost, frodo2.communication.Queue.sendMessage(), frodo2.algorithms.afb.Timestamp.setCounter(), terminate(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.timestamp, frodo2.algorithms.afb.PA< V extends Addable< V >, U extends Addable< U > >.toString(), and verbose.

Referenced by assign_CPA(), and processCpaMsg().

Here is the call graph for this function:

◆ checkAllCostsNonNeg()

boolean frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.checkAllCostsNonNeg ( )
private
Returns
true if all utilities in all spaces are non-negative, false otherwise

References frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getSolutionSpaces(), frodo2.solutionSpaces.SolutionSpace< V extends Addable< V > >.Iterator< V >.hasNext(), and zero.

Referenced by start().

Here is the call graph for this function:

◆ f()

UtilitySolutionSpace< V, U > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.f ( int clusterIndex,
ComponentInfo compInfo,
PA< V, U > pa )
private

Method to compute the value f for a given cluster and some assigned value.

Parameters
clusterIndexIndex of the cluster for which we want to compute f
compInfoThe ComponentInfo of the component the variable belongs to
paCurrent partial assignment.
Returns
f = The sum of the cost that i has with variables already in the CPA + h(v) at the same value.

References getLocalSpace(), and frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.h.

Referenced by assign_CPA(), and processFbCpa().

Here is the call graph for this function:

◆ getAssignmentHistories()

◆ getCurrentSolution()

Map< String, V > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.getCurrentSolution ( )

◆ getLocalSpace()

UtilitySolutionSpace< V, U > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.getLocalSpace ( ComponentInfo compInfo,
int clusterIndex,
PA< V, U > pa,
final boolean groundClusterVars )
private

Method to compute the local space for a given cluster of variables and an assigned values, as a function of the variables in the current cluster.

Parameters
compInfoThe ComponentInfo of the current component.
clusterIndexIndex of the cluster for which we want to get the local space
paThe PA
groundClusterVarsWhether the variables in the current cluster should also be grounded
Returns
The local space associated with this cluster and PA index

References getLocalSpace(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.join(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.slice(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.spaces, and frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.vars.

Referenced by f(), and getLocalSpace().

Here is the call graph for this function:

◆ getMsgTypes()

◆ getStatsFromQueue()

◆ h()

UtilitySolutionSpace< V, U > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.h ( final int i,
ComponentInfo compInfo )
private
Parameters
iThe index of the cluster to compute h for
compInfothe ComponentInfo of the component this variable belongs to
Returns
h for each possible value from the variable domain. The indexing of this array is the same as the indexing of the variable domain.

References frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getSolutionSpaces(), h(), frodo2.solutionSpaces.UtilitySolutionSpace< V extends Addable< V >, U extends Addable< U > >.join(), problem, valArrayClass, and valClass.

Referenced by h().

Here is the call graph for this function:

◆ initiate()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.initiate ( Comparable<?> compID,
ComponentInfo compInfo )
private

Chooses a first value for the first variable and starts the algorithm.

Parameters
compIDthe ID of the component in the constraint graph
compInfothe information about the component in the constraint graph

References assign_CPA(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.clusterInfos, frodo2.solutionSpaces.ProblemInterface< V extends Addable< V >, U extends Addable< U > >.getPlusInfUtility(), and frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.order.

Referenced by processLinearOrdering().

Here is the call graph for this function:

◆ notifyIn()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.notifyIn ( Message msg)

◆ processCpaMsg()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.processCpaMsg ( CPAmsg< V, U > msgCast,
Comparable<?> componentID,
ComponentInfo compInfo,
int clusterIndex,
ClusterInfo info )
private

◆ processFbCpa()

◆ processFbEstimate()

◆ processLinearOrdering()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.processLinearOrdering ( OrderMsg< V, U > msg,
List< String > agents,
Comparable<?> componentID,
List< List< String > > order,
ComponentInfo compInfo )
private
Parameters
msgA message of type ORDER_MSG_TYPE
agentsThe agent list received.
componentIDThe componentID of the component for which we received the linear ordering.
orderThe variable ordering received.
compInfoThe ComponentInfo corresponding to componentID

References frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.bestSol, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.clusterAgents, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.clusterInfos, frodo2.algorithms.afb.SolutionMsg< V extends Addable< V >, U extends Addable< U > >.getCompID(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getMyVars(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getSolutionSpaces(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getVariables(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.h, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.infoForCluster, initiate(), notifyIn(), frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.order, problem, frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ClusterInfo.spaces, valArrayClass, valClass, and frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ComponentInfo.varIndexes.

Here is the call graph for this function:

◆ reset()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.reset ( )

◆ setQueue()

void frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.setQueue ( Queue queue)

◆ setSilent()

◆ start()

◆ terminate()

Member Data Documentation

◆ assignmentHistoriesMap

HashMap< String, ArrayList< CurrentAssignment<V> > > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.assignmentHistoriesMap
private

For each variable, its assignment history.

◆ compInfos

HashMap<Comparable<?>, ComponentInfo> frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.compInfos
private

The information about each component in the constraint graph.

◆ compOfCluster

HashMap<String, Comparable<?> > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.compOfCluster
private

For each cluster of variables, its component ID.

◆ CONV_STATS_MSG_TYPE

◆ convergence

◆ CPA_MSG_TYPE

final MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.CPA_MSG_TYPE = new MessageType ("AFB", "CPA")
static

◆ FB_CPA_TYPE

final MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.FB_CPA_TYPE = new MessageType ("AFB", "FB_CPA")
static

◆ FB_ESTIMATE_TYPE

final MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.FB_ESTIMATE_TYPE = new MessageType ("AFB", "FB_ESTIMATE")
static

◆ finished

boolean frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.finished = false
private

Whether the module has already finished the algorithm.

◆ ORDER_MSG_TYPE

MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ORDER_MSG_TYPE = OrderMsg.ORDER_MSG_TYPE
static

The types of the messages containing the chosen linear order of clusters of variables.

Referenced by getMsgTypes().

◆ ORDER_STATS_MSG_TYPE

MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.ORDER_STATS_MSG_TYPE = OrderMsg.STATS_MSG_TYPE
static

The types of the messages containing the chosen linear order of clusters of variables sent to the stats gatherer.

Referenced by getStatsFromQueue(), and notifyIn().

◆ OUTPUT_MSG_TYPE

final MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.OUTPUT_MSG_TYPE = new MessageType ("AFB", "Solution")
static

The type of the message containing the optimal solution found.

Referenced by getMsgTypes(), and terminate().

◆ pendingConvMsgs

LinkedList< ConvergenceMessage<V> > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.pendingConvMsgs
private

Used to store convergence messages received by the stats gatherer before their corresponding linear order.

◆ pendingCPAmsgs

HashMap< String, CPAmsg<V, U> > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.pendingCPAmsgs
private

For some clusters, a CPAmsg that was received before the var order message.

◆ pendingFbCpaMsgs

LinkedList< FbCpaMsg<V, U> > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.pendingFbCpaMsgs
private

For some clusters, a FbCpaMsg that was received before the var order message.

◆ pendingSolMsgs

LinkedList< SolutionMsg<V, U> > frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.pendingSolMsgs
private

Used to store solution messages received before their corresponding linear order.

◆ problem

◆ queue

Queue frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.queue
private

This module's queue.

Referenced by getStatsFromQueue(), and setQueue().

◆ solution

HashMap<String, V> frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.solution
private

The solution.

◆ START_MSG_TYPE

MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.START_MSG_TYPE = AgentInterface.START_AGENT
static

The type of the message telling AFB to start.

Referenced by getMsgTypes().

◆ started

boolean frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.started = false
private

Whether the module has already started the algorithm.

◆ STATS_MSG_TYPE

final MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.STATS_MSG_TYPE = new MessageType ("AFB", "SolutionStats")
static

The type of the message containing the optimal solution found sent to the stats gatherer.

◆ UB_MSG_TYPE

final MessageType frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.UB_MSG_TYPE = new MessageType ("AFB", "UB")
static

The type of the messages broadcast by the last variable containing the current upper bound.

Referenced by assign_CPA(), and getMsgTypes().

◆ valArrayClass

Class<V[]> frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.valArrayClass
private

The class of V[].

Referenced by h(), and processLinearOrdering().

◆ valClass

Class<V> frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.valClass
private

The class of V.

Referenced by h(), and processLinearOrdering().

◆ verbose

final boolean frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.verbose = false
private

If set to true, information about each sent and received message will be printed to the console.

Referenced by assign_CPA(), backtrack(), processCpaMsg(), processFbCpa(), processFbEstimate(), and terminate().

◆ zero

U frodo2.algorithms.afb.AFB< V extends Addable< V >, U extends Addable< U > >.zero
private

The 0 cost.

Referenced by checkAllCostsNonNeg().


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