Asynchronous Partitioning Framework

Slides:



Advertisements
Similar presentations
Constraint Satisfaction Problems
Advertisements

Chapter 5: Tree Constructions
Distributed Constraint Satisfaction Problems M OHSEN A FSHARCHI.
Distributed Constraint Optimization Problems M OHSEN A FSHARCHI.
Adopt Algorithm for Distributed Constraint Optimization
CompAPO: A complete version of the APO Algorithm Tal Grinshpoun and Amnon Meisels Department of Computer Science Ben-Gurion University of the Negev.
CS3771 Today: deadlock detection and election algorithms  Previous class Event ordering in distributed systems Various approaches for Mutual Exclusion.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
Lecture 11 Last Time: Local Search, Constraint Satisfaction Problems Today: More on CSPs.
1 Constraint Satisfaction Problems A Quick Overview (based on AIMA book slides)
1 Constraint Satisfaction Problems. 2 Intro Example: 8-Queens Generate-and-test: 8 8 combinations.
MBD and CSP Meir Kalech Partially based on slides of Jia You and Brian Williams.
Token-Dased DMX Algorithms n LeLann’s token ring n Suzuki-Kasami’s broadcast n Raymond’s tree.
Chapter 15 Basic Asynchronous Network Algorithms
Bidding Protocols for Deploying Mobile Sensors Reporter: Po-Chung Shih Computer Science and Information Engineering Department Fu-Jen Catholic University.
1 Complexity of Network Synchronization Raeda Naamnieh.
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Distributed Snapshots –Termination detection Election algorithms –Bully –Ring.
CPSC 668Set 3: Leader Election in Rings1 CPSC 668 Distributed Algorithms and Systems Spring 2008 Prof. Jennifer Welch.
CS 582 / CMPE 481 Distributed Systems
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
Dynamic Hypercube Topology Stefan Schmid URAW 2005 Upper Rhine Algorithms Workshop University of Tübingen, Germany.
Constraint Satisfaction Problems
EEC-681/781 Distributed Computing Systems Lecture 11 Wenbing Zhao Cleveland State University.
Using additional information in DisCSPs search Prof. Amnon Meisels and Mr. Oz Lavee Prof. Amnon Meisels and Mr. Oz Lavee Ben Gurion University Israel.
Distributed Scheduling. What is Distributed Scheduling? Scheduling: –A resource allocation problem –Often very complex set of constraints –Tied directly.
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Vector timestamps Global state –Distributed Snapshot Election algorithms.
Distributed Constraint Optimization * some slides courtesy of P. Modi
Constraint Satisfaction Problems
MGR: Multi-Level Global Router Yue Xu and Chris Chu Department of Electrical and Computer Engineering Iowa State University ICCAD
CHAMELEON : A Hierarchical Clustering Algorithm Using Dynamic Modeling
Distributed Constraint Optimization Michal Jakob Agent Technology Center, Dept. of Computer Science and Engineering, FEE, Czech Technical University A4M33MAS.
A Delaunay Triangulation Architecture Supporting Churn and User Mobility in MMVEs Mohsen Ghaffari, Behnoosh Hariri and Shervin Shirmohammadi Advanced Communications.
Diffusing Computation. Using Spanning Tree Construction for Solving Leader Election Root is the leader In the presence of faults, –There may be multiple.
Constraint Satisfaction Problems Chapter 6. Review Agent, Environment, State Agent as search problem Uninformed search strategies Informed (heuristic.
Hande ÇAKIN IES 503 TERM PROJECT CONSTRAINT SATISFACTION PROBLEMS.
CSCI 5582 Fall 2006 CSCI 5582 Artificial Intelligence Fall 2006 Jim Martin.
Performance of Distributed Constraint Optimization Algorithms A.Gershman, T. Grinshpon, A. Meisels and R. Zivan Dept. of Computer Science Ben-Gurion University.
A N I N - MEMORY F RAMEWORK FOR E XTENDED M AP R EDUCE 2011 Third IEEE International Conference on Coud Computing Technology and Science.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS Spring 2014 Prof. Jennifer Welch CSCE 668 Set 3: Leader Election in Rings 1.
Chapter 5 Team Teaching AI (created by Dewi Liliana) PTIIK Constraint Satisfaction Problems.
EXAMPLE: MAP COLORING. Example: Map coloring Variables — WA, NT, Q, NSW, V, SA, T Domains — D i ={red,green,blue} Constraints — adjacent regions must.
Distributed Mutual Exclusion Synchronization in Distributed Systems Synchronization in distributed systems are often more difficult compared to synchronization.
EEC 688/788 Secure and Dependable Computing Lecture 10 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Wolfgang Runte Slide University of Osnabrueck, Software Engineering Research Group Wolfgang Runte Software Engineering Research Group Institute.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS
Modelling and Solving Configuration Problems on Business
TensorFlow– A system for large-scale machine learning
Synchronization: Distributed Deadlock Detection
Constraint Satisfaction Problems vs. Finite State Problems
Empirical Comparison of Preprocessing and Lookahead Techniques for Binary Constraint Satisfaction Problems Zheying Jane Yang & Berthe Y. Choueiry Constraint.
Computer Science cpsc322, Lecture 14
The story of distributed constraint optimization in LA: Relaxed
Dynamic Ordering for Asynchronous Backtracking on DisCSPs
CIS 488/588 Bruce R. Maxim UM-Dearborn
Constraint Satisfaction Problems
Heuristic Ordering for Asynchronous Backtracking
Hierarchical Search on DisCSPs
Approximating the Buffer Allocation Problem Using Epochs
Constraint satisfaction problems
Hierarchical Search on DisCSPs
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
Distributed Deadlock Detection
Stencil Pattern ITCS 4/5145 Parallel computing, UNC-Charlotte, B. Wilkinson Oct 14, 2014 slides6b.ppt 1.
Stencil Pattern ITCS 4/5145 Parallel computing, UNC-Charlotte, B. Wilkinson StencilPattern.ppt Oct 14,
CS 8520: Artificial Intelligence
The End Of The Line For Static Cyclic Scheduling?
Constraint Satisfaction Problems
Constraint satisfaction problems
Presentation transcript:

Asynchronous Partitioning Framework The Open University of Israel Vitaliy Freidovich Department of Mathematics and Computer Science Vice President R&D of www.TheCTO.co.il/en Vitaliy@TheCTO.co.il Amnon Meisels Ben-Gurion University Of the Negev Department of Computer Science www.cs.bgu.ac.il/~am am@cs.bgu.ac.il

Missing features of DCSP algorithms Order of search unrelated to structure of constraints graph Structure of constraints graph can enhance the use of the fail first principle Utilization of graph structure in distributed search needs a method for agent cooperation and coordination

A better idea might be Analyze cooperatively the constraints graph Find regions which are the most heavily constrained, and partition the graph by those regions Solve the local problem inside each region Achieve globally consistent assignment by propagating relevant assignments between the different regions

Advantages Enhancing the Fail First Principle Concentrating on the toughest parts of the problem first Improving performance by allowing parallel search inside different regions

Asynchronous Partitioning Framework A general framework for agent cooperation and coordination Composed of 4 distinct components: GroupPartition algorithm - pluggable Partition into disjoint groups Select a group leader LocalSearch algorithm - pluggable GlobalSearch algorithm - pluggable Agents are represented by their group leaders Coordination engine Adapt to assignments in higher priority groups Ignore constraints with lower priority groups

Asynchronous Partitioning Framework Requirements: GroupPartition algorithm: Form disjoint groups Each group must contain at least one ‘fully’ connected agent Elect one such agent to be a group leader Assign injective priorities to groups Order the agents inside each group LocalSearch algorithm: Synchronous - exactly one token Allocate each agent an agent view Update the agent view upon reception of a token GlobalSearch algorithm: The above requirements enable correctness

Asynchronous Group Partition A first implementation of APF Phases: Initialization Priority calculation Group partitioning Group ordering Search for a solution SBT for LocalSearch CBJ for GlobalSearch Phases 2-4 implement GroupPartition

An Example 3-coloring problem Find an assignment out of: {Red, Green, Blue}, such that no two connected agents are painted with the same color

Phase 1: Initialization Main goal: Initialize agent priority Pai = ki + ∑j=1 ki (CommonNeighbors (ai, aj)) ki – number of neighbors of ai Initially: Pai = ki

Phase 2: Priority calculation a4 a6 a7 a8,a9 1 a3 P=4 a4 P=2 a4 a6 a7 a8,a9 a5 P=5 a9 P=4 a4 a6 a7 a8,a9 2 a4 a6 a7 a8,a9 a4 a6 a7 a8,a9 1 a2 P=1 a6 P=3 2 a7 P=3 Each agent sends a list of its neighbors, to all its neighbors Upon receiving this message, each agent replies with the number of joint neighbors The originating agent, adds the replies to its priority, and notifies all the agents about its priority

Phase 2: Priority calculation Each agent sends a list of its neighbors, to all its neighbors Upon receiving this message, each agent replies with the number of joint neighbors The originating agent, adds the replies to its priority, and notifies all the agents about its priority

Phase 3: Group partitioning Each agent performs a local search in its neighborhood When an agent receives such a request: If group leader: approves If not a group leader: denies If not determined: wait until is, and reply The search continues until: Some agent had approved the request The current agent has the highest priority

Phase 3: Group partitioning JOIN JOIN a3 P=4 a4 P=2 a5 P=11 a9 P=8 JOIN W:{a1} W:{a10} JOIN W:{a9} JOIN a2 P=1 a6 P=5 a7 P=7 W:{a3}

Phase 3: Group partitioning W:{a1} a4 P=2 a5 P=11 W:{a9,a6} a9 P=8 W:{a10} a2 P=1 a6 P=5 a7 P=7 W:{a3}

Phase 3: Group partitioning W:{a1} a4 P=2 GL a5 P=11 a9 P=8 NOT_JOINED JOINED W:{a10} JOINED a2 P=1 NOT_JOINED a6 P=5 a7 P=7 W:{a3}

Phase 3: Group partitioning JOINED GL a3 P=4 a4 P=2 GL a5 P=11 a9 P=8 JOIN JOINED a2 P=1 a6 P=5 a7 P=7

Phase 3: Group partitioning JOIN a10 P=2 a1 P=2 NOT_JOINED a8 P=4 JOIN JOINED GL a3 P=4 a4 P=2 GL a5 P=11 a9 P=8 JOIN JOINED JOINED JOIN a2 P=1 a6 P=5 a7 P=7 a1 and a10 have the same priority a1 has a higher lexicographical priority

Phase 3: Group partitioning GL a10 P=2 a8 P=4 GL a3 P=4 a4 P=2 GL a5 P=11 a9 P=8 a2 P=1 a6 P=5 a7 P=7

Phase 4: Group ordering Group Priority  Group Leader Priority Inner Group Priority (IGP): Calculated for each agent inside a group IGPai = PGai + ∑jPcgij IGPai – The Inner Group Priority of agent ai PGai – The Priority of the Group of agent ai Pcgij – The Priority of Connected Group j –The priority of the jth Group, to which agent ai is connected In this way, agents connected to a greater number of bigger groups will have a higher IGP

Phase 4: Group ordering GL a10 P=2 a1 P=2 IGP=4+2 a8 P=4 IGP=17 IGP=6 IGP=11 GL a3 P=4 GL a5 P=11 a9 P=8 a4 P=2 IGP=4+11+11 IGP=26 IGP=15 IGP=11 IGP=13 a2 P=1 a6 P=5 a7 P=7 IGP=4 IGP=4 IGP=15 IGP=11 Each agent notifies the other agents in its group about its IGP The agents in each group are ordered by their calculated IGP Equal priorities are resolved lexicographically

Phase 4: Group ordering GL a10 a1 O=2 a8 O=1 O=6 GL a3 O=1 GL a5 a9 a4 IGP=6 O=2 a8 IGP=17 O=1 IGP=11 O=6 GL a3 IGP=26 O=1 GL a5 a9 a4 IGP=15 O=1 IGP=11 O=4 IGP=13 O=3 a2 IGP=4 O=3 a6 IGP=15 O=2 a7 IGP=11 O=5

Phase 5: Search for solution The search proceeds in two levels in parallel: SBT as APF’s LocalSearch CBJ as APF’s GlobalSearch Inside each group: The token is being expanded through the group leader Keeps consistency with: Inter-group constraints Higher priority intra-group constraints Lower priority intra-group constrained agents are notified upon value changes

Phase 5: Search for solution A global token is moved between the group leaders When a group leader receives the global token: Group is consistent: advance Group is inconsistent: backtrack Groups’ state hasn’t been determined: wait Termination: Last group is consistent First group is inconsistent Detailed example: Appendix (No time )

AGP-CBJ A second implementation of APF Identical to AGP; the LocalSearch algorithm is upgraded to be CBJ Was formally proven to be correct

Experimental Evaluation Three sets of experiments on randomly generated problems: (n=10, k=10, 0.1≤p1≤0.9, 0.1≤p2≤0.9) (n=15, k=10, 0.1≤p1≤0.9, 0.1≤p2≤0.9) (n=20, k=10, 0.1≤p1≤0.9, 0.1≤p2≤0.9) For each combination 10 instances 2430 problems in total

How important is LocalSearch?

Partitioning – What good is it? AGP-CBJ Partitioning appears to be beneficial 1 Group → Most likely an almost Clique

APF – Where is it best? We expect it to be best for low values of p1

Why static partitioning?

Where is coordination best ?

Where is coordination best ? P1=0.4

Conclusions Preliminary results indicate that partitioning into groups can be beneficial Most efficient for sparse problems and for highly dense problems Upgrading LocalSearch & GlobalSearch may improve performance AFC-CBJ Can APF’s requirements be relaxed ? ABT

Thank You!

Appendix – AGP’s Search For Solution

Future work Upgrading LocalSearch & GlobalSearch AFC-CBJ Relaxing APF’s requirements ABT Upgrading heuristics Partitioning priorities Group ordering heuristic Upgrading the partitioning strategy Limiting the number of agents in a group?

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a10 is the first agent to start execution a10 as a group leader: Not the first one - generates no global token Generates a new Token Sends Token to the first agent in its group

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a10 as an agent: Finds consistent assignment Returns token to its group leader a10 as a group leader: Enters the consistent state

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 Group Leader a5 starts execution First one - Generates a new GlobalToken Generates a new Token Sends Token to the first agent in its group

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 V_C Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a4: Finds consistent assignment Notifies a3 Returns Token to a5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a3 – group leader: First generates a new Token Sends to first agent a3 – agent: Finds consistent assignment Returns Token to group leader

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 V_C Token Token V_C_H a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a3 - Group leader: Forwards the value change message to the addressee a3 - agent: Updates agent view Notifies group leader that value change was handled

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 R_T Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a3 - Group leader: Asks a3 to regenerate new token a3 - agent: Regenerates Token Returns Token to group leader

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a3 – group leader: Sends Token to a3 a3 – agent: Finds consistent assignment

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a3 – group leader: Sends Token to a3 a3 – agent: Finds consistent assignment Returns Token to group leader

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution V_C GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution V_C GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution V_C GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 V_C Token Token a2 P=1 O=3 a6 P=5 O=2 V_C a7 P=7 O=5

Phase 5: Search for solution V_C GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 Token a9 P=8 O=3 V_C a4 P=2 O=1 Token V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution V_C GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 V_C a4 P=2 O=1 Token V_C Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution V_C GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 V_C_H GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 V_C a4 P=2 O=1 Token Token V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 Token V_C_H GlobalToken Token GL a5 P=11 O=4 a9 P=8 O=3 R_T GL a3 P=4 O=1 a4 P=2 O=1 Token Token V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 Token a8 P=4 O=6 GlobalToken GL a3 P=4 O=1 V_C_H Token GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token R_T V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

A more complicated example Demonstrating the backtracking mechanisms of AGP: a10 is prohibited to be assigned any value different from Red Execution continues as before, till a10 handles value changes from a1 and a9

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 B_Token Token a8 P=4 O=6 C={a9} GlobalToken GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 State after token had been regenerated in a10‘s group a10 tries to find consistent assignment: Checks first against a9, as it is in the highest priority group a9 eliminates all values Execution continues as before till a10 receives the global token

Phase 5: Search for solution B_GlobalToken GlobalToken GL a10 P=2 O=1 a1 P=2 O=2 R_C_S a8 P=4 O=6 C={a9} GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token Token B_TOKEN R_T a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 a10 as a group leader: Requests conflict sets from all agents in its group a10 as an agent: Returns its conflict set Backtracks GlobalToken with C={a9}

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 V_C Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token Token B_Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token V_C Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 V_C a4 P=2 O=1 Token Token B_Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 V_C a4 P=2 O=1 Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5 V_C

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 V_C a4 P=2 O=1 Token V_C Token V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 V_C Token V_C Token a2 P=1 O=3 B_Token a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 V_C Token Token V_C V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 V_C V_C Token V_C a2 P=1 O=3 Token a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 GlobalToken V_C V_C GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token V_C V_C Token V_C a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution B_GlobalToken GL a10 P=2 O=1 a1 P=2 O=2 a8 P=4 O=6 Token R_C_S C={a1} GlobalToken B_Token V_C Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 V_C a4 P=2 O=1 V_C B_Token R_T V_C Token Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5

Phase 5: Search for solution V_C GL a10 P=2 O=1 a1 P=2 O=2 Token a8 P=4 O=6 GlobalToken Token Token GL a3 P=4 O=1 GL a5 P=11 O=4 a9 P=8 O=3 a4 P=2 O=1 Token a2 P=1 O=3 a6 P=5 O=2 a7 P=7 O=5