diff --git a/doc/report/figures/fsm/full_mgm2_agent.gv b/doc/report/figures/fsm/full_mgm2_agent.gv index dd386847d1f0dba8ce71aef250b796aab82c234f..ab51fc721ba78d56163d2f2c33a00cdb3cbd59ac 100644 --- a/doc/report/figures/fsm/full_mgm2_agent.gv +++ b/doc/report/figures/fsm/full_mgm2_agent.gv @@ -117,6 +117,10 @@ digraph finite_state_machine { ReceiverWaitingValues -> ReceiverWaitingValues [label = "neighbour : Reject(someOffer) => Nothing + "]; + + ReceiverWaitingOffers -> ReceiverWaitingOffers [label = "neighbour : Reject(someOffer) => + Nothing "]; /*Receives a neighbour's delta*/ diff --git a/doc/report/figures/fsm/full_mgm2_agent.png b/doc/report/figures/fsm/full_mgm2_agent.png index 30fd59c4c55f992e46077139a8f277b8b01480f0..c3d4970f298059679c50ff81f622743f83fb8fe0 100644 Binary files a/doc/report/figures/fsm/full_mgm2_agent.png and b/doc/report/figures/fsm/full_mgm2_agent.png differ diff --git a/doc/report/figures/fsm/receiver.gv b/doc/report/figures/fsm/receiver.gv index 3a58ddfeefc466548e2669cdeb424ed69bdd1782..66be507d451cd7e4f494c8b9b468896523527dd0 100644 --- a/doc/report/figures/fsm/receiver.gv +++ b/doc/report/figures/fsm/receiver.gv @@ -75,6 +75,10 @@ digraph finite_state_machine { Nothing "]; + ReceiverWaitingOffers -> ReceiverWaitingOffers [label = "neighbour : Reject(someOffer) => + Nothing + "]; + /*RECEIVER ALL OFFERS RECEIVED*/ diff --git a/doc/report/figures/fsm/receiver.png b/doc/report/figures/fsm/receiver.png index 84bb74732fe477f05a0bb481cf163bcdf0704cb8..b7ecbca0082ccf3cc4d05ab5926b2ea04776fd0e 100644 Binary files a/doc/report/figures/fsm/receiver.png and b/doc/report/figures/fsm/receiver.png differ diff --git a/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala b/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala index 6ddc40c3e41687f0922f7a2f93410e6df17814e1..e1904d3aee79259f7b0526d4fecb3c1ecb1b9a5e 100644 --- a/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala +++ b/src/main/scala/org/scadcop/solver/decentralized/mgm2/AgentBehaviour.scala @@ -261,6 +261,10 @@ class AgentBehaviour(variable: Variable, * Either the agent is in the ReceiverWaitingOffers state */ when(ReceiverWaitingOffers) { + + case Event(Reject(_), mind) => { + stay using mind + } // When offers are still missing case Event(MakeOffer(eventualOffer), mind) if mind.nbReceivedOffers < neighbours.size-1 => diff --git a/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala b/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala index e0e4e5ce0f8a4d1afa4a29af6f6ab544830ba90e..2593c5806333191d321968cce13f2bcf05db0872 100644 --- a/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala +++ b/src/main/scala/org/scadcop/solver/decentralized/supervisor/Supervisor.scala @@ -249,7 +249,7 @@ class Supervisor(val pb : DCOP, val algorithm: Algorithm) extends Actor with Sta object Supervisor { var counter = 0 - val NB_ROUNDS = 2 + val NB_ROUNDS = 10 def incrementCounter() : Int = { counter = counter + 1