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

This module is a preprocessing module that normalizes all utilities to between 0 and 1. More...

Inheritance diagram for frodo2.algorithms.duct.NormalizeInf< V extends Addable< V > >:

Public Member Functions

 NormalizeInf (DCOPProblemInterface< V, AddableReal > problem, Element parameters)
 Constructor.
 NormalizeInf (DCOPProblemInterface< V, AddableReal > problem, Element parameters, boolean reportSpaces)
 Constructor used for debugging.
void notifyIn (Message msg)
Public Member Functions inherited from frodo2.algorithms.duct.Normalize< V >
 Normalize (DCOPProblemInterface< V, AddableReal > problem, Element parameters)
 Constructor.
void notifyIn (Message msg)
void setQueue (Queue queue)
Collection< MessageTypegetMsgTypes ()
void getStatsFromQueue (Queue queue)
void setSilent (boolean silent)
void reset ()

Protected Member Functions

void normalize (String var, int index, AddableReal divide, ArrayList< UtilitySolutionSpace< V, AddableReal > > spaces)
Protected Member Functions inherited from frodo2.algorithms.duct.Normalize< V >
void normalize (String var, int index, AddableReal divide, ArrayList< UtilitySolutionSpace< V, AddableReal > > spaces)
 Method to perform the normalization of the spaces owned by a variable.
void init ()
 Initialization function, called when the first message is received.

Additional Inherited Members

Static Public Attributes inherited from frodo2.algorithms.duct.Normalize< V >
static final MessageType BOUND_MSG_TYPE
 Type of the message used for bound detection.
static final MessageType NORM_MSG_TYPE
 Type of the message used for normalization.
static final MessageType OUT_MSG_TYPE
 Type of the output message of this module.
static final MessageType STATS_MSG_TYPE
 Type of the statistics message.
Protected Attributes inherited from frodo2.algorithms.duct.Normalize< V >
DCOPProblemInterface< V, AddableRealproblem
 The local problem.
Map< String, String > owners
 Maps variables to the agents that own them.
boolean started
 true when the init() method has been called, and false otherwise
Queue queue
 The queue.
HashMap< String, Integer > variablePointer
 Maps variable names to positions in an array.
int[] numberOfMessagesToReceive
 For each variable, the number of children + 1 (the DFS message).
int[] numberOfMessagesReceived
 For each variable, the number of messages received.
int[] numberOfSpaces
 For each variable the number of spaces it owns.
String[] parents
 For each variable, the parent.
List< String >[] children
 For each variable the children in the DFS tree.
HashMap< String, AddableReallowerBounds
 For each variable, the lower bound is stored here.
HashMap< String, AddableRealupperBounds
 For each variable, the upper bound is stored here.
HashMap< String, Long > sizes
 The domain size of each variable.
HashMap< String, Set< String > > separators
 For each variable, its separator.
HashMap< String, ArrayList< UtilitySolutionSpace< V, AddableReal > > > spaces
 For each variable, the spaces that it owns.
HashMap< String, ArrayList< AddableReal > > minLists
 For each space the minimal value.
final boolean reportSpaces
 When true, the spaces are reported, and false otherwise.
AddableReal infeasibleUtil
 The value of an infeasibleUtility.
AddableReal divide
 The scaling factor.
AddableReal penalty
 The penalty used to replace an infeasible value.
boolean reportStats
 Whether to report stats.

Detailed Description

This module is a preprocessing module that normalizes all utilities to between 0 and 1.

It first does bound detection via a bottom up inference procedure, after which a top-down normalization is performed

Author
Brammert Ottens, 9 aug. 2011
Parameters
<V>type used for domain values

Constructor & Destructor Documentation

◆ NormalizeInf() [1/2]

frodo2.algorithms.duct.NormalizeInf< V extends Addable< V > >.NormalizeInf ( DCOPProblemInterface< V, AddableReal > problem,
Element parameters )

Constructor.

Parameters
problemthe local problem of the agent
parametersthe parameters of the module

References frodo2.algorithms.duct.Normalize< V >.problem.

◆ NormalizeInf() [2/2]

frodo2.algorithms.duct.NormalizeInf< V extends Addable< V > >.NormalizeInf ( DCOPProblemInterface< V, AddableReal > problem,
Element parameters,
boolean reportSpaces )

Constructor used for debugging.

Parameters
problemthe local problem of the agent
parametersthe parameters of the module
reportSpacestrue when the spaces should be reported to the statsreporter, and false otherwise

References frodo2.algorithms.duct.Normalize< V >.problem, and frodo2.algorithms.duct.Normalize< V >.reportSpaces.

Member Function Documentation

◆ normalize()

◆ notifyIn()

void frodo2.algorithms.duct.NormalizeInf< V extends Addable< V > >.notifyIn ( Message msg)
See also
frodo2.communication.IncomingMsgPolicyInterface.notifyIn(frodo2.communication.Message)
Todo
If we are minimizing, then we have detected infeasibility; terminate early
Todo
Else, if we are maximizing, then we have detected infeasibility; terminate early
Bug
Sometimes fails, most noticeably on locally infeasible problems (bug reported by Duc Thien Nguyen)

References frodo2.solutionSpaces.AddableReal.add(), frodo2.algorithms.duct.Normalize< V >.BOUND_MSG_TYPE, frodo2.algorithms.duct.Normalize< V >.children, frodo2.algorithms.duct.Normalize< V >.divide, frodo2.communication.MessageType.equals(), frodo2.solutionSpaces.AddableReal.equals(), 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.duct.BOUNDmsg.getCounter(), frodo2.algorithms.duct.NORMmsg.getDivide(), frodo2.algorithms.duct.BOUNDmsg.getLowerBound(), frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.DFSview< V extends Addable< V >, U extends Addable< U > >.getParent(), frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.DFSview< V extends Addable< V >, U extends Addable< U > >.getPseudoParents(), frodo2.algorithms.duct.BOUNDmsg.getReceiver(), frodo2.algorithms.duct.NORMmsg.getReceiver(), frodo2.algorithms.duct.BOUNDmsg.getSeperator(), frodo2.algorithms.duct.BOUNDmsg.getSize(), frodo2.communication.Message.getType(), frodo2.algorithms.duct.BOUNDmsg.getUpperBound(), frodo2.algorithms.duct.Normalize< V >.infeasibleUtil, frodo2.algorithms.duct.Normalize< V >.init(), frodo2.algorithms.duct.Normalize< V >.lowerBounds, frodo2.algorithms.duct.Normalize< V >.minLists, frodo2.algorithms.duct.Normalize< V >.NORM_MSG_TYPE, normalize(), frodo2.algorithms.duct.Normalize< V >.numberOfMessagesReceived, frodo2.algorithms.duct.Normalize< V >.numberOfMessagesToReceive, frodo2.algorithms.duct.Normalize< V >.numberOfSpaces, frodo2.algorithms.varOrdering.dfs.DFSgeneration< V extends Addable< V >, U extends Addable< U > >.OUTPUT_MSG_TYPE, frodo2.algorithms.duct.Normalize< V >.owners, frodo2.algorithms.duct.Normalize< V >.parents, frodo2.algorithms.duct.Normalize< V >.problem, frodo2.algorithms.duct.Normalize< V >.queue, frodo2.algorithms.duct.Normalize< V >.reportSpaces, frodo2.algorithms.duct.Normalize< V >.reportStats, frodo2.algorithms.duct.Normalize< V >.separators, frodo2.algorithms.duct.Normalize< V >.sizes, frodo2.algorithms.duct.Normalize< V >.spaces, frodo2.algorithms.duct.Normalize< V >.started, frodo2.algorithms.AgentInterface< V extends Addable< V > >.STATS_MONITOR, frodo2.algorithms.duct.Normalize< V >.STATS_MSG_TYPE, frodo2.solutionSpaces.AddableReal.subtract(), frodo2.algorithms.duct.Normalize< V >.upperBounds, and frodo2.algorithms.duct.Normalize< V >.variablePointer.

Here is the call graph for this function:

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