|
FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
|
P2-DPOP's variable re-ordering algorithm. More...

Classes | |
| class | VariableInfo |
| Convenient class to store information about a variable of this agent. More... | |
| class | SecureRootingMsg |
| Message used to tell a variable that it is the new root of its component. More... | |
Public Member Functions | |
| SecureRerooting (DCOPProblemInterface<?, C > problem, Element params) | |
| Constructor. | |
| void | setQueue (Queue queue) |
| Collection< MessageType > | getMsgTypes () |
| void | notifyIn (Message msg) |
| Decision | notifyOut (Message msg) |
| Re-encrypts vector messages the first time they leave the agent. | |
| Public Member Functions inherited from frodo2.communication.IncomingMsgPolicyInterface< T > | |
| default void | notifyIn (Message msg, Object toAgent) |
| Notifies the listener of an incoming message. | |
| Public Member Functions inherited from frodo2.communication.OutgoingMsgPolicyInterface< T > | |
| default Decision | notifyOut (Object fromAgent, Message msg) |
| Notifies the listener of an outgoing message. | |
| default Decision | notifyOut (Object fromAgent, Message msg, Collection<? extends Object > toAgents) |
| Notifies the listener of an outgoing message. | |
| default Decision | notifyOut (Message msg, Collection<? extends Object > toAgents) |
| Notifies the listener of an outgoing message. | |
Static Public Attributes | |
| static MessageType | OUTPUT = new MessageType ("P3/2-DPOP", "SecureRerooting", "NewRoot") |
| Type of output of the secureRerooting module. | |
| static final MessageType | DONE = new MessageType ("P3/2-DPOP", "SecureRerooting", "Done") |
| Token type telling the reroot of the dfs can be executed now. | |
| static final MessageType | VECTOR_TYPE = new MessageType ("P3/2-DPOP", "SecureRerooting", "Vector") |
| The type of the message containing an ordering vector. | |
| static final MessageType | REROOTING_REQUEST_TYPE = new MessageType ("P3/2-DPOP", "SecureRerooting", "RerootRequest") |
| The type of the messages sent to request a rerooting of the variable order. | |
Private Member Functions | |
| void | init () |
| Initiate the module. | |
| void | passOn (VariableInfo info, ArrayList< E > vector, String owner, final short round) |
| Sends a vector to the previous variable in the linear ordering. | |
| void | processVectorMsg (VariableInfo info, VectorMsg< C, E > msg) |
| Processes a received vector message. | |
Private Attributes | |
| final C | rootElement |
| Set to 0, to identify the root of the component in the vector. | |
| final C | notRootElement |
| Set to 1, for non-root variables in the vector. | |
| final C | fakeElement |
| Set to 2, for fake variables in the vector. | |
| Random | rand = new SecureRandom() |
| Random generator. | |
| Map< String, VariableInfo > | infos |
| All information about the variables owned by this agent. | |
| HashMap< VectorMsg< C, E >, VariableInfo > | vectorSent = new HashMap< VectorMsg<C, E>, VariableInfo > () |
| A set of vector messages sent, used to detect when one leaves the agent, so as only to re-encrypt it then. | |
| Queue | queue |
| Queue where messages are received. | |
| boolean | started = false |
| true if this module has started | |
| DCOPProblemInterface<?, C > | problem |
| The problem interface. | |
P2-DPOP's variable re-ordering algorithm.
This is the InitializeOrder() and ShiftOrder() procedures from the following paper, modified so as not to re-shuffle at every iteration:
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.
| <C> | class used for clear text vector element |
| <E> | class used for encrypted vector element |
| frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.SecureRerooting | ( | DCOPProblemInterface<?, C > | problem, |
| Element | params ) |
Constructor.
| problem | the agent's subproblem |
| params | the parameters of the module |
References problem, and SecureRerooting().
Referenced by SecureRerooting().

| Collection< MessageType > frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.getMsgTypes | ( | ) |
Implements frodo2.communication.MessageListener< T >.
References frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.CRYPTO_SCHEME_TYPE, frodo2.algorithms.dpop.privacy.SecureCircularRouting.DELIVERY_MSG_TYPE, frodo2.algorithms.varOrdering.dfs.DFSgenerationWithOrder< V extends Addable< V >, U extends Addable< U > >.OUTPUT_ORDER_TYPE, frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.OUTPUT_TYPE, frodo2.algorithms.dpop.privacy.SecureCircularRouting.PREVIOUS_MSG_TYPE, REROOTING_REQUEST_TYPE, frodo2.algorithms.dpop.privacy.SecureCircularRouting.TO_LAST_LEAF_MSG_TYPE, frodo2.algorithms.varOrdering.dfs.DFSgenerationWithOrder< V extends Addable< V >, U extends Addable< U > >.VARIABLE_COUNT_TYPE, and frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.VECTOR_OUTPUT_TYPE.
|
private |
| void frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.notifyIn | ( | Message | msg | ) |
Implements frodo2.communication.IncomingMsgPolicyInterface< T >.
References frodo2.algorithms.dpop.privacy.SecureCircularRouting.DELIVERY_MSG_TYPE, DONE, init(), frodo2.communication.MessageType.isParent(), notifyIn(), and started.
Referenced by notifyIn().

| Decision frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.notifyOut | ( | Message | msg | ) |
Re-encrypts vector messages the first time they leave the agent.
Implements frodo2.communication.OutgoingMsgPolicyInterface< T >.
References frodo2.communication.OutgoingMsgPolicyInterface< T >.Decision.DONTCARE, frodo2.communication.MessageType.isParent(), notifyOut(), frodo2.algorithms.dpop.privacy.SecureCircularRouting.PREVIOUS_MSG_TYPE, and frodo2.algorithms.dpop.privacy.SecureCircularRouting.TO_LAST_LEAF_MSG_TYPE.
Referenced by notifyOut().

|
private |
Sends a vector to the previous variable in the linear ordering.
| info | the sender variable |
| vector | the vector |
| owner | the codename of the initial sender of the vector |
| round | the round |
References frodo2.algorithms.dpop.privacy.SecureCircularRouting.PREVIOUS_MSG_TYPE, frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.self, and frodo2.communication.Queue.sendMessageToSelf().
Referenced by processVectorMsg().

|
private |
Processes a received vector message.
| info | the information about the destination variable of the message |
| msg | the vector message |
References frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.codeName, frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.cs, frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.declaredOrder, fakeElement, frodo2.algorithms.dpop.privacy.VectorMsg< C extends Addable< C >, E extends AddableLimited< C, E >.getOwner(), frodo2.algorithms.dpop.privacy.VectorMsg< C extends Addable< C >, E extends AddableLimited< C, E >.getRound(), frodo2.algorithms.dpop.privacy.VectorMsg< C extends Addable< C >, E extends AddableLimited< C, E >.getVector(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.order, passOn(), queue, frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.remove(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.self, and frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.shuffle().

| void frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.setQueue | ( | Queue | queue | ) |
Implements frodo2.communication.MessageListener< T >.
References queue.
|
static |
Token type telling the reroot of the dfs can be executed now.
Referenced by frodo2.algorithms.dpop.privacy.DoneMsg.DoneMsg(), and notifyIn().
|
private |
Set to 2, for fake variables in the vector.
Referenced by frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.createVector(), and processVectorMsg().
|
private |
All information about the variables owned by this agent.
Referenced by init().
|
private |
Set to 1, for non-root variables in the vector.
Referenced by frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.createVector().
|
static |
Type of output of the secureRerooting module.
Referenced by frodo2.algorithms.dpop.privacy.test.SecureRerootingTest.randomTest(), and frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.SecureRootingMsg.SecureRootingMsg().
|
private |
The problem interface.
Referenced by init(), and SecureRerooting().
|
private |
Queue where messages are received.
Referenced by processVectorMsg(), and setQueue().
|
private |
Random generator.
|
static |
The type of the messages sent to request a rerooting of the variable order.
Referenced by frodo2.algorithms.dpop.privacy.RerootRequester< V extends Addable< V >, U extends Addable< U > >.getMsgTypes(), getMsgTypes(), frodo2.algorithms.dpop.privacy.RerootingMsg.RerootingMsg(), and frodo2.algorithms.dpop.privacy.RerootingMsg.RerootingMsg().
|
private |
Set to 0, to identify the root of the component in the vector.
Referenced by frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.VariableInfo.createVector().
|
private |
true if this module has started
Referenced by init(), and notifyIn().
|
static |
The type of the message containing an ordering vector.
Referenced by frodo2.algorithms.dpop.privacy.VectorMsg< C extends Addable< C >, E extends AddableLimited< C, E >.VectorMsg(), and frodo2.algorithms.dpop.privacy.VectorMsg< C extends Addable< C >, E extends AddableLimited< C, E >.VectorMsg().
|
private |
A set of vector messages sent, used to detect when one leaves the agent, so as only to re-encrypt it then.