2. Asynchronous Backtracking ible<to choose Extract record conflic NO-SOLUTIONyes Send oK? messages Send BACKTRACK messages m少 Otherwise, for each new conflict, the agent sends a BACK TRACK message describing the conflict to the lowest priority agent whose variable is involved in the conflict. Then it waits for this agent to send back the new assignment to its variable Update view 2. Asynchronous Backtracking Extract record inflicts Send OK? messages Send BACKTRACK messages CKTRACK If the agent receives a baCKtracK message, but the conflict and the agent's view do not match, one of them must be obsolete: then it ignores the BACKtRaCK Update view
Otherwise, for each new conflict, the agent sends a BACKTRACK message describing the conflict to the lowest priority agent whose variable is involved in the conflict. Then it waits for this agent to send back the new assignment to its variable. Extract & record conflicts {}? yes NO_SOLUTION Try to choose value Send OK? messages possible view Update view OK? message good violation! no 2. Asynchronous Backtracking If the agent receives a BACKTRACK message, but the conflict and the agent’s view do not match, one of them must be obsolete; then it ignores the BACKTRACK Extract & record conflicts {}? yes NO_SOLUTION Try to choose value Send OK? messages possible view Update view good violation! no BACKTRACK message no 2. Asynchronous Backtracking Send BACKTRACK messages impossible Broadcast and terminate Change value Wait check Send BACKTRACK messages impossible Broadcast and terminate Change value Wait check OK? message match?
2. Asynchronous Backtracking ible<to choose NO-SOLUTIONyes Send BACKTRACK messages Wait backtrack message (mate Otherwise it records the conflict as a new constraint it must enforce Update view asynch Is Backtrack Extract record Send OK? messages CKTRACK It requests a new link if NEW LIN Update view Wa
Otherwise, it records the conflict as a new constraint it must enforce Extract & record conflicts {}? yes NO_SOLUTION Try to choose value Send OK? messages possible view Update view OK? message good violation! no BACKTRACK message no yes Record new constraint 2. Asynchronous Backtracking Extract & record conflicts {}? yes NO_SOLUTION Try to choose value Send OK? messages possible view Update view good violation! no BACKTRACK message no yes need link? NEW_LINK yes no It requests a new link if necessary Record new constraint 2. Asynchronous Backtracking Send BACKTRACK messages impossible Broadcast and terminate Change value Wait check match? Send BACKTRACK messages impossible Broadcast and terminate Change value Wait check OK? message match? Wait
2. Asynchronous Backtracking Extract record conflic NO-SOLUTIONyes Send oK? messages Send BACKTRACK messages BACKTRACK messag NEW LINK Add ch Record new constraint Send oK? NEW LINK F yes \link? When an agent receives a NeW linK request, it adds the sender to its children Update view Wait list and responds through an OK? message 2. Asynchronous Backtracking Extract record Send OK? messages Send BACKTRACK messages NEW LINK NO SOLUTION Add child Terminate Record new const W LIN Update view 4 Wa If the agent receives a NO SOLUTION message it terminates
Try to choose value Extract & record conflicts Send OK? messages {}? need link? NEW_LINK view Update view possible yes no OK? message BACKTRACK message yes no good violation! NO_SOLUTION yes no Add child NEW_LINK Send OK? When an agent receives a NEW_LINK request, it adds the sender to its children list and responds through an OK? message Record new constraint 2. Asynchronous Backtracking If the agent receives a NO_SOLUTION message, it terminates Try to choose value Extract & record conflicts Send OK? messages {}? need link? NEW_LINK view Update view possible yes no yes no good violation! NO_SOLUTION yes no NO_SOLUTION Add child NEW_LINK Send OK? Record new constraint 2. Asynchronous Backtracking Change value Send BACKTRACK messages Wait Wait check impossible Broadcast and terminate match? Change value Send BACKTRACK messages Wait Wait check impossible OK? message BACKTRACK message Broadcast and terminate match? Terminate
2. Asynchronous Backtracking: The Graph Coloring Example B R B R B 2. Asynchronous Backtracking: The Graph Coloring Example B. R G.B.R Constraints G B R Constraints X X4+x3,x4x2,X4X1
B, R x1 G, B, R x2 G x4 B, R x3 ≠ ≠ ≠ ≠ 2. Asynchronous Backtracking: The Graph Coloring Example B, R x1 G, B, R x2 G x4 B, R x3 Constraints: x4≠x3, x4≠x2, x4≠x1 Constraints: x2≠x1 ≠ ≠ ≠ ≠ 2. Asynchronous Backtracking: The Graph Coloring Example
2. Asynchronous Backtracking: The Graph Coloring Example NAME VALUE DOMAIN VIEW CHILDREN PARENTS KNOWN CONFLICTS CONSTRAINTS TO ENFORCE 2. Asynchronous Backtracking: The Graph Coloring Example B G G B Each agent chooses an assignment to its variabl
2. Asynchronous Backtracking: The Graph Coloring Example NAME VALUE DOMAIN VIEW CHILDREN PARENTS KNOWN CONFLICTS CONSTRAINTS TO ENFORCE B, R x1 B, G, R x2 G x4 B, R x3 B, R x1 G, B, R x2 G x4 B, R x3 Each agent chooses an assignment to its variable Try to choose value 2. Asynchronous Backtracking: The Graph Coloring Example