|
FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
|
Enables sending a message to the previous/next variable in a circular ordering of variables based on a DFS. More...

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< MessageType > | getMsgTypes () |
| 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. | |
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.
| frodo2.algorithms.dpop.privacy.SecureCircularRouting.SecureCircularRouting | ( | Element | params, |
| DCOPProblemInterface<?, ?> | problem ) |
Constructor in "stats gatherer" mode.
| params | the parameters of the module |
| problem | the overall problem |
References dfs, dotRendererClass, and problem.
Referenced by notifyIn().
| frodo2.algorithms.dpop.privacy.SecureCircularRouting.SecureCircularRouting | ( | DCOPProblemInterface<?, ?> | problem, |
| Element | params ) |
Constructor.
| problem | the agent's subproblem |
| params | the parameters of the module |
References problem.
| Collection< MessageType > frodo2.algorithms.dpop.privacy.SecureCircularRouting.getMsgTypes | ( | ) |
Implements frodo2.communication.MessageListener< T >.
References frodo2.algorithms.AgentInterface< V extends Addable< V > >.AGENT_FINISHED, DFS_OUTPUT_MSG_TYPE, DFS_WITH_ORDER_OUTPUT_MSG_TYPE, NEXT_MSG_TYPE, PREVIOUS_MSG_TYPE, frodo2.algorithms.AgentInterface< V extends Addable< V > >.START_AGENT, and TO_LAST_LEAF_MSG_TYPE.
| void frodo2.algorithms.dpop.privacy.SecureCircularRouting.getStatsFromQueue | ( | Queue | queue | ) |
Implements frodo2.algorithms.StatsReporter.
References queue, and STATS_MSG_TYPE.
Referenced by frodo2.algorithms.dpop.privacy.test.SecureRerootingTest.randomTest(), and frodo2.algorithms.dpop.privacy.test.SecureCircularRoutingTest.setUp().
|
private |
| void frodo2.algorithms.dpop.privacy.SecureCircularRouting.notifyIn | ( | Message | msg | ) |
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().

| void frodo2.algorithms.dpop.privacy.SecureCircularRouting.reset | ( | ) |
|
private |
Resets all entries in this.dfs corresponding to variables in the component of the input variable.
| var | a variable in the component to be reset |
Referenced by notifyIn().
| void frodo2.algorithms.dpop.privacy.SecureCircularRouting.setQueue | ( | Queue | queue | ) |
Implements frodo2.communication.MessageListener< T >.
References queue.
| void frodo2.algorithms.dpop.privacy.SecureCircularRouting.setSilent | ( | boolean | silent | ) |
Implements frodo2.algorithms.StatsReporter.
Referenced by frodo2.algorithms.dpop.privacy.P2_DPOPsolver< V extends Addable< V >, U extends Addable< U > >.getSolGatherers(), frodo2.algorithms.dpop.privacy.test.SecureRerootingTest.randomTest(), and frodo2.algorithms.dpop.privacy.test.SecureCircularRoutingTest.setUp().
|
private |
Traverses a DFS subtree.
| root | the root of the subtree |
| order | the list to which visited nodes should be added |
References traverse().
Referenced by notifyIn(), and traverse().

|
static |
The type of the output messages containing a message to be delivered to a given variable.
Referenced by frodo2.algorithms.dpop.privacy.DeliveryMsg< M extends Message >.DeliveryMsg(), frodo2.algorithms.dpop.privacy.DeliveryMsg< M extends Message >.DeliveryMsg(), frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.getMsgTypes(), frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.getMsgTypes(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.getMsgTypes(), frodo2.algorithms.dpop.privacy.test.SecureCircularRoutingTest.Forwarder.getMsgTypes(), and frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.notifyIn().
|
private |
The underlying DFS.
Referenced by init(), notifyIn(), and SecureCircularRouting().
|
static |
The type of the messages containing the DFS.
Referenced by getMsgTypes(), notifyIn(), and frodo2.algorithms.dpop.privacy.test.SecureCircularRoutingTest.setUp().
|
static |
The type of the messages containing the DFS.
Referenced by getMsgTypes(), and notifyIn().
|
private |
Renderer to display DOT code.
Referenced by notifyIn(), and SecureCircularRouting().
|
private |
The iteration number.
Referenced by notifyIn().
|
static |
The type of the wrapper messages used to forward a message to the next variable in the ordering.
Referenced by getMsgTypes(), and notifyIn().
|
private |
For each known variable, the name of the agent that owns it.
|
private |
For each variable, the Messages that are pending the reception of the DFS information for that variable.
|
static |
The type of the wrapper messages used to forward a message to the previous variable in the ordering.
Referenced by frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.getMsgTypes(), getMsgTypes(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.getMsgTypes(), notifyIn(), frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.notifyOut(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.notifyOut(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.passOn(), and frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.sendToParent().
|
private |
The problem.
Referenced by init(), notifyIn(), SecureCircularRouting(), and SecureCircularRouting().
|
private |
The agent's queue.
Referenced by getStatsFromQueue(), notifyIn(), and setQueue().
|
private |
Whether to report stats.
|
private |
Whether the problem has already been parsed.
|
static |
The type of the messages containing statistics.
Referenced by frodo2.algorithms.dpop.privacy.test.SecureCircularRoutingTest.getMsgTypes(), getStatsFromQueue(), and notifyIn().
|
staticpackage |
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.
Referenced by frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.getMsgTypes(), getMsgTypes(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.getMsgTypes(), frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.notifyOut(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.notifyOut(), frodo2.algorithms.dpop.privacy.ToLastLeafMsg.ToLastLeafMsg(), and frodo2.algorithms.dpop.privacy.ToLastLeafMsg.ToLastLeafMsg().