FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
Loading...
Searching...
No Matches
frodo2.algorithms.dpop.privacy.SecureCircularRouting Class Reference

Enables sending a message to the previous/next variable in a circular ordering of variables based on a DFS. More...

Inheritance diagram for frodo2.algorithms.dpop.privacy.SecureCircularRouting:

Public Member Functions

 SecureCircularRouting (Element params, DCOPProblemInterface<?, ?> problem)
 Constructor in "stats gatherer" mode.
 SecureCircularRouting (DCOPProblemInterface<?, ?> problem, Element params)
 Constructor.
void reset ()
void getStatsFromQueue (Queue queue)
void setSilent (boolean silent)
Collection< MessageTypegetMsgTypes ()
void setQueue (Queue queue)
void notifyIn (Message msg)
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 NEXT_MSG_TYPE = new MessageType ("P3/2-DPOP", "SecureCircularRouting", "ToNext")
 The type of the wrapper messages used to forward a message to the next variable in the ordering.
static MessageType PREVIOUS_MSG_TYPE = new MessageType ("P3/2-DPOP", "SecureCircularRouting", "ToPrev")
 The type of the wrapper messages used to forward a message to the previous variable in the ordering.
static MessageType DELIVERY_MSG_TYPE = new MessageType ("P3/2-DPOP", "SecureCircularRouting", "Delivery")
 The type of the output messages containing a message to be delivered to a given variable.
static MessageType DFS_WITH_ORDER_OUTPUT_MSG_TYPE = DFSgenerationWithOrder.OUTPUT_MSG_TYPE
 The type of the messages containing the DFS.
static MessageType DFS_OUTPUT_MSG_TYPE = DFSgeneration.OUTPUT_MSG_TYPE
 The type of the messages containing the DFS.
static final MessageType STATS_MSG_TYPE = new MessageType ("P3/2-DPOP", "SecureCircularRouting", "LinearOrderStats")
 The type of the messages containing statistics.

Static Package Attributes

static MessageType TO_LAST_LEAF_MSG_TYPE = new MessageType ("P3/2-DPOP", "SecureCircularRouting", "ToLeaf")
 The type of the wrapper message containing a payload message that must be forwarded to the last leaf in the sub-tree rooted at the destination variable.

Private Member Functions

void init ()
 Parses the problem.
void resetComponent (String var)
 Resets all entries in this.dfs corresponding to variables in the component of the input variable.
void traverse (String root, ArrayList< String > order)
 Traverses a DFS subtree.

Private Attributes

Queue queue
 The agent's queue.
boolean reportStats = true
 Whether to report stats.
DCOPProblemInterface<?, ?> problem
 The problem.
HashMap< String, DFSview<?, ?> > dfs
 The underlying DFS.
HashMap< String, ArrayList< Message > > pendingMsgs
 For each variable, the Messages that are pending the reception of the DFS information for that variable.
boolean started = false
 Whether the problem has already been parsed.
Map< String, String > owners
 For each known variable, the name of the agent that owns it.
String dotRendererClass = null
 Renderer to display DOT code.
int iter
 The iteration number.

Detailed Description

Enables sending a message to the previous/next variable in a circular ordering of variables based on a DFS.

This is the routing procedure from the following paper: Thomas Leaute and Boi Faltings. Privacy-preserving multi-agent constraint satisfaction. In Proceedings of the 2009 IEEE International Conference on PrivAcy, Security, riSk and Trust (PASSAT'09), Vancouver, British Columbia, August 29-31 2009. IEEE Computer Society Press.

Author
Thomas Leaute

Constructor & Destructor Documentation

◆ SecureCircularRouting() [1/2]

frodo2.algorithms.dpop.privacy.SecureCircularRouting.SecureCircularRouting ( Element params,
DCOPProblemInterface<?, ?> problem )

Constructor in "stats gatherer" mode.

Parameters
paramsthe parameters of the module
problemthe overall problem

References dfs, dotRendererClass, and problem.

Referenced by notifyIn().

◆ SecureCircularRouting() [2/2]

frodo2.algorithms.dpop.privacy.SecureCircularRouting.SecureCircularRouting ( DCOPProblemInterface<?, ?> problem,
Element params )

Constructor.

Parameters
problemthe agent's subproblem
paramsthe parameters of the module

References problem.

Member Function Documentation

◆ getMsgTypes()

◆ getStatsFromQueue()

◆ init()

void frodo2.algorithms.dpop.privacy.SecureCircularRouting.init ( )
private

Parses the problem.

References dfs, and problem.

Referenced by notifyIn().

◆ notifyIn()

void frodo2.algorithms.dpop.privacy.SecureCircularRouting.notifyIn ( Message msg)
See also
StatsReporter.notifyIn(Message)

Implements frodo2.communication.IncomingMsgPolicyInterface< T >.

References frodo2.algorithms.AgentInterface< V extends Addable< V > >.AGENT_FINISHED, dfs, DFS_OUTPUT_MSG_TYPE, DFS_WITH_ORDER_OUTPUT_MSG_TYPE, dotRendererClass, frodo2.communication.MessageType.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.dpop.privacy.RoutingMsg< M extends Message >.getDest(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getNeighborhoods(), 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.dpop.privacy.RoutingMsg< M extends Message >.getPayload(), frodo2.algorithms.dpop.privacy.ToLastLeafMsg.getPayload(), frodo2.algorithms.dpop.privacy.RoutingMsg< M extends Message >.getSender(), frodo2.communication.Message.getType(), frodo2.algorithms.dpop.privacy.ToLastLeafMsg.getVar(), init(), iter, NEXT_MSG_TYPE, notifyIn(), PREVIOUS_MSG_TYPE, problem, queue, reset(), resetComponent(), SecureCircularRouting(), frodo2.algorithms.AgentInterface< V extends Addable< V > >.START_AGENT, frodo2.algorithms.AgentInterface< V extends Addable< V > >.STATS_MONITOR, STATS_MSG_TYPE, and traverse().

Referenced by notifyIn().

Here is the call graph for this function:

◆ reset()

void frodo2.algorithms.dpop.privacy.SecureCircularRouting.reset ( )

◆ resetComponent()

void frodo2.algorithms.dpop.privacy.SecureCircularRouting.resetComponent ( String var)
private

Resets all entries in this.dfs corresponding to variables in the component of the input variable.

Parameters
vara variable in the component to be reset

Referenced by notifyIn().

◆ setQueue()

void frodo2.algorithms.dpop.privacy.SecureCircularRouting.setQueue ( Queue queue)

◆ setSilent()

◆ traverse()

void frodo2.algorithms.dpop.privacy.SecureCircularRouting.traverse ( String root,
ArrayList< String > order )
private

Traverses a DFS subtree.

Parameters
rootthe root of the subtree
orderthe list to which visited nodes should be added

References traverse().

Referenced by notifyIn(), and traverse().

Here is the call graph for this function:

Member Data Documentation

◆ DELIVERY_MSG_TYPE

◆ dfs

HashMap< String, DFSview<?, ?> > frodo2.algorithms.dpop.privacy.SecureCircularRouting.dfs
private

The underlying DFS.

Referenced by init(), notifyIn(), and SecureCircularRouting().

◆ DFS_OUTPUT_MSG_TYPE

MessageType frodo2.algorithms.dpop.privacy.SecureCircularRouting.DFS_OUTPUT_MSG_TYPE = DFSgeneration.OUTPUT_MSG_TYPE
static

The type of the messages containing the DFS.

Referenced by getMsgTypes(), notifyIn(), and frodo2.algorithms.dpop.privacy.test.SecureCircularRoutingTest.setUp().

◆ DFS_WITH_ORDER_OUTPUT_MSG_TYPE

MessageType frodo2.algorithms.dpop.privacy.SecureCircularRouting.DFS_WITH_ORDER_OUTPUT_MSG_TYPE = DFSgenerationWithOrder.OUTPUT_MSG_TYPE
static

The type of the messages containing the DFS.

Referenced by getMsgTypes(), and notifyIn().

◆ dotRendererClass

String frodo2.algorithms.dpop.privacy.SecureCircularRouting.dotRendererClass = null
private

Renderer to display DOT code.

Referenced by notifyIn(), and SecureCircularRouting().

◆ iter

int frodo2.algorithms.dpop.privacy.SecureCircularRouting.iter
private

The iteration number.

Referenced by notifyIn().

◆ NEXT_MSG_TYPE

MessageType frodo2.algorithms.dpop.privacy.SecureCircularRouting.NEXT_MSG_TYPE = new MessageType ("P3/2-DPOP", "SecureCircularRouting", "ToNext")
static

The type of the wrapper messages used to forward a message to the next variable in the ordering.

Referenced by getMsgTypes(), and notifyIn().

◆ owners

Map<String, String> frodo2.algorithms.dpop.privacy.SecureCircularRouting.owners
private

For each known variable, the name of the agent that owns it.

◆ pendingMsgs

HashMap< String, ArrayList<Message> > frodo2.algorithms.dpop.privacy.SecureCircularRouting.pendingMsgs
private

For each variable, the Messages that are pending the reception of the DFS information for that variable.

◆ PREVIOUS_MSG_TYPE

◆ problem

DCOPProblemInterface<?, ?> frodo2.algorithms.dpop.privacy.SecureCircularRouting.problem
private

◆ queue

Queue frodo2.algorithms.dpop.privacy.SecureCircularRouting.queue
private

The agent's queue.

Referenced by getStatsFromQueue(), notifyIn(), and setQueue().

◆ reportStats

boolean frodo2.algorithms.dpop.privacy.SecureCircularRouting.reportStats = true
private

Whether to report stats.

◆ started

boolean frodo2.algorithms.dpop.privacy.SecureCircularRouting.started = false
private

Whether the problem has already been parsed.

◆ STATS_MSG_TYPE

final MessageType frodo2.algorithms.dpop.privacy.SecureCircularRouting.STATS_MSG_TYPE = new MessageType ("P3/2-DPOP", "SecureCircularRouting", "LinearOrderStats")
static

The type of the messages containing statistics.

Referenced by frodo2.algorithms.dpop.privacy.test.SecureCircularRoutingTest.getMsgTypes(), getStatsFromQueue(), and notifyIn().

◆ TO_LAST_LEAF_MSG_TYPE


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