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

The original adopt version. More...

Inheritance diagram for frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >:

Public Member Functions

 Original (ADOPT< Val, U > adopt)
 Constructor.
void init (VariableInfo< Val, U > variable)
void handleTERMINATEmessage (VariableInfo< Val, U > variable, ENDmsg< Val > msg)
 Handle the reception of a terminate message.
void handleVALUEmessage (VariableInfo< Val, U > variable, VALUEmsg< Val, U > msg)
 Handle the reception of a value message.
void handleCOSTmessage (VariableInfo< Val, U > variable, COSTmsg< Val, U > msg)
 Handle the reception of a cost message.
void reset (VariableInfo< Val, U > variable)
 Resets the bounds, child thresholds and context of any child whose context does not match the current context.
boolean checkChildInfo (VariableInfo< Val, U > variable)
 This function checks whether the info from all children is consistent with the current context.
void notify (Message msg)
Collection< MessageTypegetMsgTypes ()
Public Member Functions inherited from frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Version< Val, U >
void init (VariableInfo< Val, U > variable)
 This function is called when we received both the HEURISTICS_MSG_TYPE and the DFSgeneration.OUTPUT_MSG_TYPE message for the variable.
void notify (Message msg)
 Tells ADOPT how to respond to certain messages specific to this version.
Collection< MessageTypegetMsgTypes ()
 Returns a collection with messages this version is interested in.

Static Public Attributes

static final MessageType VALUE_MSG_TYPE = new MessageType ("ADOPT", "VALUE")
 The message type for the value message.
static final MessageType THRESHOLD_MSG_TYPE = new MessageType ("ADOPT", "Threshold")
 The message type for the threshold message.
static final MessageType COST_MSG_TYPE = new MessageType ("ADOPT", "COST")
 The message type for the cost message.
static final MessageType TERMINATE_MSG_TYPE = new MessageType ("ADOPT", "TERMINATE")
 The message type for the terminate message.

Private Member Functions

void maintainChildThresholdInvariant (VariableInfo< Val, U > variable)
 Maintains the child threshold invariant, i.e.
void maintainThresholdInvariant (VariableInfo< Val, U > variable)
 Maintains the threshold invariant, i.e.
void maintainAllocationInvariant (VariableInfo< Val, U > variable)
 Maintains the allocation invariant.
void backTrack (VariableInfo< Val, U > variable)
 Backtrack method.

Private Attributes

ADOPT< Val, U > adopt
 A link to the outer class.

Detailed Description

The original adopt version.

Parameters
<Val>the type used for variable values
<U>the type used for utility values

Constructor & Destructor Documentation

◆ Original()

frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.Original ( ADOPT< Val, U > adopt)

Constructor.

Parameters
adoptthe ADOPT module

References frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.ADOPT(), and adopt.

Here is the call graph for this function:

Member Function Documentation

◆ backTrack()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.backTrack ( VariableInfo< Val, U > variable)
private

Backtrack method.

Parameters
variablethe variable info
Bug
In Modi's pseudocode, this is called only after sending VALUE messages

References frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.ADOPT(), adopt, backTrack(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.LOG, and maintainAllocationInvariant().

Referenced by backTrack(), handleCOSTmessage(), handleTERMINATEmessage(), handleVALUEmessage(), and init().

Here is the call graph for this function:

◆ checkChildInfo()

boolean frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.checkChildInfo ( VariableInfo< Val, U > variable)

◆ getMsgTypes()

◆ handleCOSTmessage()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.handleCOSTmessage ( VariableInfo< Val, U > variable,
COSTmsg< Val, U > msg )

Handle the reception of a cost message.

Parameters
variablethe recipient variable's info
msgthe message

References adopt, backTrack(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.context, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.currentContext, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.execution_terminated, frodo2.algorithms.adopt.COSTmsg< Val extends Addable< Val >, U extends Addable< U > >.getContext(), frodo2.algorithms.adopt.COSTmsg< Val extends Addable< Val >, U extends Addable< U > >.getLB(), frodo2.algorithms.adopt.COSTmsg< Val extends Addable< Val >, U extends Addable< U > >.getSender(), frodo2.algorithms.adopt.COSTmsg< Val extends Addable< Val >, U extends Addable< U > >.getUB(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.lb, maintainChildThresholdInvariant(), maintainThresholdInvariant(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.neighbours, reset(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.terminate, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.ub, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.updateBounds(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.valuePointer, and frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.variableID.

Here is the call graph for this function:

◆ handleTERMINATEmessage()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.handleTERMINATEmessage ( VariableInfo< Val, U > variable,
ENDmsg< Val > msg )

Handle the reception of a terminate message.

Parameters
variablethe recipient variable's info
msgthe message
Todo
check what happens when the terminate message does not contain a new context
Bug
This is not in Modi's pseudocode

References backTrack(), frodo2.algorithms.adopt.ENDmsg< Val extends Addable< Val > >.getContext(), maintainThresholdInvariant(), reset(), and frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.setDelta().

Here is the call graph for this function:

◆ handleVALUEmessage()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.handleVALUEmessage ( VariableInfo< Val, U > variable,
VALUEmsg< Val, U > msg )

Handle the reception of a value message.

Parameters
variablethe recipient variable's info
msgthe message

References backTrack(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.checkUpperBounds(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.currentContext, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.full_info_counter, frodo2.algorithms.adopt.VALUEmsg< Val extends Addable< Val >, U extends Addable< U > >.getSender(), frodo2.algorithms.adopt.VALUEmsg< Val extends Addable< Val >, U extends Addable< U > >.getThreshold(), frodo2.algorithms.adopt.VALUEmsg< Val extends Addable< Val >, U extends Addable< U > >.getValue(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.initialized, maintainThresholdInvariant(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.nbrOfSeparators, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.neighbours, reset(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.separator, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.setDelta(), and frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.terminate.

Here is the call graph for this function:

◆ init()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.init ( VariableInfo< Val, U > variable)
See also
ADOPT.Version#init(VariableInfo)

References adopt, backTrack(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.currentAssignment, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.currentContext, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.full_info_counter, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.initializeBounds(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.isSingleton(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.LB, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.lowerNeighbours, maintainThresholdInvariant(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.nbrOfSeparators, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.neighbours, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.numberOfChildren, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.separator, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.setDelta(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.t, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.UB, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.valuePointer, and frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.variableID.

Here is the call graph for this function:

◆ maintainAllocationInvariant()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.maintainAllocationInvariant ( VariableInfo< Val, U > variable)
private

Maintains the allocation invariant.

That is, makes sure that the threshold for currentAssignment is properly distributed over the variable's children

Parameters
variablethe variable info

References frodo2.solutionSpaces.AddableDelayed< T extends Addable< T > >.addDelayed(), adopt, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.currentAssignment, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.getCurrentDelta(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.lb, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.numberOfChildren, frodo2.solutionSpaces.AddableDelayed< T extends Addable< T > >.resolve(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.t, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.threshold, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.ub, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.valuePointer, and frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.zero.

Referenced by backTrack().

Here is the call graph for this function:

◆ maintainChildThresholdInvariant()

◆ maintainThresholdInvariant()

◆ notify()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.notify ( Message msg)
See also
ADOPT.Version.notify(Message)
Todo
Avoid this busy-wait to improve performance

References frodo2.algorithms.AgentInterface< V extends Addable< V > >.ALL_AGENTS_IDLE, COST_MSG_TYPE, frodo2.communication.MessageType.equals(), and notify().

Referenced by notify().

Here is the call graph for this function:

◆ reset()

void frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.reset ( VariableInfo< Val, U > variable)

Resets the bounds, child thresholds and context of any child whose context does not match the current context.

Parameters
variablethe variable info

References adopt, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.context, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.currentContext, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.domain, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.lb, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.lowerNeighbours, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.numberOfChildren, frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.resetBounds(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.resetChildContext(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.resetChildThreshold(), frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.valuePointer, and frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.VariableInfo< Val extends Addable< Val >, U extends Serializable &Addable< U > >.zero.

Referenced by handleCOSTmessage(), handleTERMINATEmessage(), and handleVALUEmessage().

Here is the call graph for this function:

Member Data Documentation

◆ adopt

ADOPT<Val, U> frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.adopt
private

◆ COST_MSG_TYPE

final MessageType frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.COST_MSG_TYPE = new MessageType ("ADOPT", "COST")
static

◆ TERMINATE_MSG_TYPE

final MessageType frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.TERMINATE_MSG_TYPE = new MessageType ("ADOPT", "TERMINATE")
static

◆ THRESHOLD_MSG_TYPE

final MessageType frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.THRESHOLD_MSG_TYPE = new MessageType ("ADOPT", "Threshold")
static

The message type for the threshold message.

Referenced by getMsgTypes().

◆ VALUE_MSG_TYPE

final MessageType frodo2.algorithms.adopt.ADOPT< Val extends Addable< Val >, U extends Addable< U > >.Original< Val extends Addable< Val >, U extends Addable< U > >.VALUE_MSG_TYPE = new MessageType ("ADOPT", "VALUE")
static

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