outline
play

Outline Branching Exploration 1. Branching Dynamic Symmetry - PowerPoint PPT Presentation

Topic 15: Search 1 (Version of 26th November 2020) Pierre Flener Optimisation Group Department of Information Technology Uppsala University Sweden Course 1DL441: Combinatorial Optimisation and Constraint Programming, whose part 1 is Course


  1. Topic 15: Search 1 (Version of 26th November 2020) Pierre Flener Optimisation Group Department of Information Technology Uppsala University Sweden Course 1DL441: Combinatorial Optimisation and Constraint Programming, whose part 1 is Course 1DL451: Modelling for Combinatorial Optimisation 1 Based partly on material by Christian Schulte and Yves Deville

  2. Outline Branching Exploration 1. Branching Dynamic Symmetry Breaking 2. Exploration 3. Dynamic Symmetry Breaking COCP/M4CO 15 - 2 -

  3. Search = Branching + Exploration Branching describes how to define the search tree. Branching Exploration describes how to explore the search tree: Exploration Dynamic Symmetry • first solution Breaking • all solutions • best solution: via branch-and-bound • depth-first • breadth-first • multi-start • . . . COCP/M4CO 15 - 3 -

  4. Outline Branching Exploration 1. Branching Dynamic Symmetry Breaking 2. Exploration 3. Dynamic Symmetry Breaking COCP/M4CO 15 - 4 -

  5. Outline Branching Exploration 1. Branching Dynamic Symmetry Breaking 2. Exploration 3. Dynamic Symmetry Breaking COCP/M4CO 15 - 5 -

  6. Definition (Brancher) A brancher b satisfies the following conditions, when � � b ( R , s ) = R 1 , ..., R g ∧ ∀ i . Propagate ( R ∪ R i , R i , s ) = � , s i � for any propagator set R with store s as common fixpoint: Branching Contraction: ∀ i : s i � s . (Hence a finite search tree.) Exploration Dynamic No solutions lost or duplicated: ∀ d ∈ s : ∃ ! i : d ∈ s i . Symmetry Breaking where the propagator set R i is called the i th guess. Definition (Branch & propagate search tree) Let � V , U , P [ , f ] , b � be a model extended with a brancher b . The search tree is as follows, for s 0 = { v �→ U | v ∈ V } : The root node is Propagate ( P , P , s 0 ) . A node � R , s � has the g nodes Propagate ( R ∪ R i , R i , s ) � � as children, where b ( R , s ) = R 1 , . . . , R g with g � = 1; it is a leaf if s = ∅ (failed node) or g = 0 (solved node). COCP/M4CO 15 - 6 -

  7. Definition (Variable selection strategy) A brancher b ( R , s ) selects a variable, based on either the current store s , or the current set R of propagators, or both (dynamic selection); or neither (static selection); Branching Exploration or also the previously visited nodes (adaptive selection): Dynamic Next: Select the next variable by order in the model Symmetry Breaking Random: Randomly select a variable not fixed by s SizeMin: Select a non-fixed var with smallest dom in s DegreeMax: Select a variable v not fixed by s with the largest degree in R ( = |{ p ∈ R | v ∈ var ( p ) }| ) AFCmin: Select a variable not fixed by s with the smallest accumulated failure count . . . Ties are broken under any combination of these strategies. COCP/M4CO 15 - 7 -

  8. Definition (Domain partitioning strategy) Further, b ( R , s ) selects values for the chosen variable v : Select the minimum: m = min( s ( v )) Branching � � min( s ( v ))+max( s ( v )) Select the middle: ˙ Exploration m = 2 Dynamic Symmetry Select all the values of s ( v ) = { d 1 , . . . , d n } Breaking . . . We assume domains are ordered sets. Finally, b ( R , s ) builds guesses, which are propagator sets: � � � � ValMin: Branch left on p v = m and right on p v � = m � � SplitMin: Branch left on p v ≤ ˙ and right on { p v > ˙ m } m � � ValuesMin: Branch left-right on p v = d 1 , . . . , { p v = d n } . . . COCP/M4CO 15 - 8 -

  9. Set Variables (Reminder) Definition A set (decision) variable takes an integer set as value, and Branching has a set of integer sets as domain. For its domain to be Exploration finite, a set variable must be a subset of a given finite set Σ . Dynamic Symmetry Breaking CP solvers over-approximate the domain of a set variable S by a pair � ℓ, u � of finite sets, denoting the set of all sets σ such that ℓ ⊆ σ ⊆ u ⊆ Σ : ℓ is the current set of mandatory elements of S ; u \ ℓ is the current set of optional elements of S . Example The domain of a set var represented as �{ 1 } , { 1 , 2 , 3 , 4 }� has the sets { 1 } , { 1 , 2 } , { 1 , 3 } , { 1 , 4 } , { 1 , 2 , 3 } , { 1 , 2 , 4 } , { 1 , 3 , 4 } , and { 1 , 2 , 3 , 4 } . Deleting { 1 , 2 , 3 } is impossible! COCP/M4CO 15 - 9 -

  10. Strategies for the selection of a set variable S . = � ℓ, u � : SizeMin: Select a set variable with smallest | u \ ℓ | MinMax: Select a set variable with largest min( u \ ℓ ) . . . Branching Exploration Strategies for the selection of an optional element of S : Dynamic Symmetry Select the minimum: m = min( u \ ℓ ) Breaking Select the median ˙ m of u \ ℓ Select a random element r of u \ ℓ . . . Guesses, based on inclusion and exclusion: � � � � MinInc: Branch left on and right on p m ∈ S p m �∈ S � � RndExc: Branch left on p r �∈ S and right on { p r ∈ S } . . . COCP/M4CO 15 - 10 -

  11. Brancher Example (SizeMin × Random + ValMin) Branching Exploration Select a non-fixed variable with smallest domain, breaking Dynamic ties randomly, and branch left on its smallest domain value: Symmetry Breaking function b ( R , s ) if ∃ v : | s ( v ) | > 1 then select random v such that | s ( v ) | > 1 and | s ( v ) | is smallest �� � � �� return p v =min( s ( v )) , p v � =min( s ( v )) else return �� COCP/M4CO 15 - 11 -

  12. Outline Branching Exploration 1. Branching Dynamic Symmetry Breaking 2. Exploration 3. Dynamic Symmetry Breaking COCP/M4CO 15 - 12 -

  13. Example (Depth-first first-sol’n search, bin. branching) For � V , U , P [ , f ] , b � call DFE ( P , P , s 0 , b ) , defined as follows: function DFE ( R , Q , s , b ) Branching � R ′ , s ′ � := Propagate ( R , Q , s ) if s ′ = ∅ then // failed node Exploration return s ′ Dynamic Symmetry // s ′ is not necessarily a solution store else Breaking B := b ( R ′ , s ′ ) if B = �� then // solved node: s ′ is a solution store! return s ′ else let B = � R 1 , R 2 � s ′′ := DFE ( R ′ ∪ R 1 , R 1 , s ′ , b ) if s ′′ = ∅ then // failed node return DFE ( R ′ ∪ R 2 , R 2 , s ′ , b ) // backtrack else // solved node: s ′′ is a solution store! return s ′′ COCP/M4CO 15 - 13 -

  14. State Restoration Upon Backtracking Approaches: Branching Trailing: Remember changes and undo them. Exploration ☞ Most common approach, but difficult to combine Dynamic with concurrency and parallelism. Symmetry Breaking Batch recomputation: Recompute state from the root. ☞ Problem-independent memory usage, but slow. Copying (or cloning): Store an additional copy. ☞ Easy to implement, and easy to combine with concurrency or parallelism, but too costly in memory. Gecode uses a hybrid of copying and batch recomputation, called adaptive recomputation, which remembers a copy on the path from the root. COCP/M4CO 15 - 14 -

  15. Diversification Example (Multistart Exploration) Perform several searches, sequentially or in parallel, Branching especially in order to benefit from randomisation in Exploration branching strategies or from adaptive branching strategies: Dynamic Symmetry Breaking Stop each search (especially in sequential multistart) at some cutoff, say on the execution time, the number of visited nodes, or the number of failed nodes. Under the chosen cutoffs, the search may be incomplete. Specified as a sequence of � b , e , c � triples, each with a brancher b , exploration e , and cutoff c . Example: � � SizeMin × DegreeMax + ValMin , DFE , 1000 fails � , � � AFCmin × Random + Random , DFE , + ∞ hours � One can also solve a COP as a sequence of CSPs. COCP/M4CO 15 - 15 -

  16. Outline Branching Exploration 1. Branching Dynamic Symmetry Breaking 2. Exploration 3. Dynamic Symmetry Breaking COCP/M4CO 15 - 16 -

  17. Dynamic Symmetry Breaking (DSB) Definition Branching Exploration DSB = the elimination of symmetric solutions by search. Dynamic Symmetry Breaking Classification: Via the addition of constraints by the search procedure. Via a problem-specific search procedure. Benefit: No interference with dynamic variable selection and domain partitioning strategies, especially problem-specific ones! COCP/M4CO 15 - 17 -

  18. State of the Art Two dual approaches, with large bodies of research: Symmetry breaking during search (SBDS, . . . ): Branching after reaching a leaf (failed or solved node) in the Exploration search tree, add constraints preventing its symmetric Dynamic Symmetry nodes from being visited in the future. Breaking Symmetry breaking by dominance detection (SBDD, GCF , . . . ): before expanding a node, check whether a symmetric node thereof has been visited in the past. The SBD ∗ schemes are general and may take exponential time or space if there are exponentially many symmetries (and they are beyond the scope of this topic). Hence: Dynamic structural symmetry breaking: exploit the combinatorial structure of a problem for designing a symmetry-free search procedure (in SBDD style). COCP/M4CO 15 - 18 -

Recommend


More recommend