Filtering Nogoods Lazily in Dynamic Symmetry Breaking During Search
Proceedings of the Twenty-Fourth International Joint Conference on Artificial Intelligence. Main Track. Pages 339-344.
© 2015 International Joint Conferences on Artificial Intelligence
Abstract
The generation and GAC enforcement of a large number of weak nogoods in Symmetry Breaking During Search (SBDS) is costly and often not worthwhile in terms of prunings. In this paper, we propose weak-nogood consistency (WNC) for nogoods and a lazy propagator for SBDS (and its variants) using watched literal technology. We give formal results on the strength and relatively low space and time complexities of the lazy propagator. Nogoods collected for each symmetry are increasing. We further define generalized weak-incNGs consistency (GWIC) for a conjunction of increasing nogoods, and give a lazy propagator for the incNGs global constraint. We prove GWIC on a conjunction is equivalent to WNC on individual nogoods, and give the space and time complexities. Various lazy versions of SBDS and its variants are implemented. We give experimentation to demonstrate the efficiency of the lazy versions as compared to state of the art symmetry breaking methods.
- Table 1: Error Correcting Code -Lee Distance (all solutions) n, c, b DoubleLex LexLeader #s #f t #s #f t 4,4,8 32,469 839,251 42.19 7,863 267,815 15.14 5,2,10 87 41,571 4.73 56 34,659 7.48 5,6,4 710,731 725,837 16.39 269,841 354,184 8.1 5,6,5 1,441,224 5,508,192 116.88 451,303 1,918,579 45.17 5,6,6 297,476 11,709,068 303.4 82,742 3,837,292 112.16 6,4,4 4,698,842 4,139,211 112.17 1,690,229 3,404,499 72.47 6,4,5 29,345,816 73,522,873 1909.09 8,052,126 23,457,604 678.49 6,8,4 59,158 2,469,211 35.9 22,756 1,082,827 18.05 8,4,4 35,626,714 48,525,827 1303.08 12,246,480 47,273,927 1171.
- ParSBDS GAC ParSBDS incN Gs ParSBDS W N C/GW IC #s #f t #s #f t #s #f t W t G 8,918 281,720 21.62 8,918 281,553 16.68 8,654 275,236 18.01 14.43 66 25,824 6.22 66 25,810 4.96 66 26,732 5 4.09 297,819 307,148 12.91 297,819 306,376 8.32 289,822 334,263 9.73 7.80 508,585 2,042,200 76.83 508,585 2,036,425 51.68 490,687 2,095,836 59.5 46.83 95,380 4,143,524 185.03 95,380 4,129,503 126.99 90,767 4,163,933 147.23 116.14 1,943,608 1,890,047 102.97 1,943,604 1,888,679 62.08 1,859,800 1,961,610 71.84 53.99 9,472,056 25,509,615 1,260.44 9,472,021 25,493,887 806.56 9,034,353 25,186,758 920.08 696.83 24,355 1,033,529 32.45 24,355 1,031,161 18.92 24,192 1,090,154 22.69 17.39 14,541,826 21,963,988 1,450.3814,541,822 21,958,213 750.5613,877,574 22,137,598 889.59 637.
- LReSBDS GAC LReSBDS incN Gs LReSBDS W N C/GW IC #s #f t #s #f t #s #f t W t G 7,698 235,074 15.01 7,698 234,806 14.47 7,698 237,306 19.63 13.44 56 20,820 5.6 56 20,806 4.42 56 21,801 6.36 2.76 235,866 253,729 7.34 235,866 252,866 6.94 235,866 262,483 8.78 6.34 392,221 1,614,088 44.47 392,221 1,608,523 41.42 392,221 1,645,389 53.79 39.55 72,150 3,210,014 106.3 72,150 3,197,525 101.79 72,150 3,260,502 139.17 94.70 1,608,536 1,568,776 59.95 1,608,536 1,566,251 54.06 1,608,536 1,650,210 71.88 49.41 7,631,833 20,494,554 747.13 7,631,833 20,474,513 670.31 7,631,833 21,024,022 904.68 618.61 18,933 793,258 16.28 18,933 790,810 15.03 18,933 806,897 20.56 13.63 11,582,467 17,464,022 768.35 11,582,467 17,453,197 629.5 11,582,467 18,047,630 998.21 532.95
- t, k, g, b DoubleLex LexLeader #s #f t #s #f t 2,4,4,16 3,456 661,726 23.67 424 123,439 8.19 3,4,2,13 29,738 202,723 2.86 11,047 76,235 3.09 3,4,2,14 107,224 496,246 7.29 38,007 185,786 6.96 3,4,2,15 348,857 1,149,974 17.91 120,832 431,794 15.09 3,4,2,16 1,039,641 2,548,941 42.21 357,662 965,531 31.93 3,4,2,17 2,870,734 5,433,943 94.55 991,700 2,085,752 65.24 3,4,2,18 7,413,394 11,181,194 210.61 2,590,000 4,362,860 130.88 3,4,2,19 18,043,630 22,265,801 443.24 6,404,281 8,851,675 257.07 3,4,3,27 24 64,777 5.66 8 26,193 17.69
- ParSBDS GAC ParSBDS incN Gs ParSBDS W N C/GW IC #s #f t #s #f t #s #f t W t G 432 130,811 14.18 432 130,707 8.41 432 128,629 11.21 6.37 16,085 95,343 7.01 16,085 95,343 3.86 15,361 93,896 3.84 2.20 54,702 229,588 17.53 54,702 229,588 9.34 52,655 226,715 9.81 5.45 170,263 526,766 41.98 170,263 526,766 22.04 165,093 521,431 24.21 13.08 491,135 1,162,225 97.74 491,135 1,162,225 50.45 479,200 1,152,823 58.01 31.25 1,325,254 2,477,180 222.36 1,325,254 2,477,180 113.12 1,299,657 2,461,304 135.76 71.07 3,370,156 5,114,350 495.8 3,370,156 5,114,350 246.88 3,318,533 5,088,491 314.99 158.25 8,127,249 10,247,830 1,077.68 8,127,249 10,247,830 525.8 8,028,436 10,206,998 -347.16 8 26,690 8.19 8 26,690 6.45 8 26,654 5.99 3.56
- LReSBDS GAC LReSBDS incN Gs LReSBDS W N C/GW IC #s #f t #s #f t #s #f t W t G 424 120,815 8.54 424 120,758 8.81 424 121,353 10.38 6.12 11,047 76,235 4.8 11,047 76,235 3.39 11,047 76,235 6.44 1.85 38,007 185,786 11.78 38,007 185,786 8.31 38,007 185,786 17.67 4.68 120,832 431,794 27.78 120,832 431,794 19.48 120,832 431,794 46.57 11.12 357,662 965,531 63.73 357,662 965,531 44.8 357,662 965,531 116 26.61 991,700 2,085,752 142.94 991,700 2,085,752 99.75 991,700 2,085,752 291.92 60.45 2,590,000 4,362,860 309.37 2,590,000 4,362,860 221.28 2,590,000 4,362,860 702.6 136.78 6,404,281 8,851,675 653.30 6,404,281 8,851,675 469.64 6,404,281 8,851,675 -300.97 8 25,962 6.99 8 25,962 8.66 8 25,985 7.19 3.49
- [Crawford et al., 1996] Crawford, J.; Ginsberg, M.; Luks, E.; and Roy, A. 1996. Symmetry breaking predicates for search problems. In KR'96, 148-159.
- [Fahle, Schamberger, and Sellmann, 2001] Fahle, T.; Scham- berger, S.; and Sellmann, M. 2001. Symmetry breaking. In CP'01, 93-107.
- [Flener et al., 2002] Flener, P.; Frisch, A.; Hnich, B.; Kiziltan, Z.; Miguel, I.; Pearson, J.; and Walsh, T. 2002. Breaking row and column symmetries in matrix models. In CP'02, 187-192.
- [Frisch et al., 2002] Frisch, A.; Hnich, B.; Kiziltan, Z.; Miguel, I.; and Walsh, T. 2002. Global constraints for lexi- cographic orderings. In CP'02, 93-108.
- [Gent and Smith, 2000] Gent, I., and Smith, B. 2000. Sym- metry breaking in constraint programming. In ECAI'00, 599-603.
- [Gent et al., 2003] Gent, I.;
- Harvey, W.; Kelsey, T.; and Lin- ton, S. 2003. Generic SBDD using computational group theory. In CP'03, 333-347.
- [Gent, Harvey, and Kelsey, 2002] Gent, I.;
- Harvey, W.; and Kelsey, T. 2002. Groups and constraints: Symmetry break- ing during search. In CP'02, 415-430.
- [Gent, Jefferson, and Miguel, 2006] Gent, I.;
- Jefferson, C.; and Miguel, I. 2006. Watched literals for constraint propa- gation in Minion. In CP'06, 182-197.
- [Law and Lee, 2006] Law, Y., and Lee, J. 2006. Symmetry breaking constraints for value symmetries in constraint sat- isfaction. Constraints 221-267.
- [Lecoutre and Tabary, 2011] Lecoutre, C., and Tabary, S. 2011. Symmetry-reinforced nogood recording from restarts. In SymCon'11, 13-27.
- [Lee and Zhu, 2014a] Lee, J., and Zhu, Z. 2014a. Boosting SBDS for partial symmetry breaking in constraint program- ming. In AAAI'14, 2695-2702.
- [Lee and Zhu, 2014b] Lee, J., and Zhu, Z. 2014b. An increasing-nogoods global constraint for symmetry break- ing during search. In CP'14, 465-480.
- [Mackworth, 1977] Mackworth, A. 1977. Consistency in net- works of relations. Artificial intelligence 99-118.
- [Mears et al., 2013] Mears, C.; de la Banda, M. G.; Demoen, B.; and Wallace, M. 2013. Lightweight dynamic symmetry breaking. Constraints 1-48.
- [Moskewicz et al., 2001] Moskewicz, M.; Madigan, C.; Zhao, Y.; Zhang, L.; and Malik, S. 2001. Chaff: Engineering an efficient sat solver. In DAC'01, 530-535.
- [Rossi, Van Beek, and Walsh, 2006] Rossi, F.; Van Beek, P.; and Walsh, T. 2006. Handbook of constraint programming. Elsevier.
References were extracted automatically from the PDF and may contain errors.
Full text extracted automatically from the PDF; figures, tables and equations may differ. The PDF is the version of record.
Introduction
Advantages of dynamic symmetry breaking methods, such as SBDS [Gent and Smith, 2000; Gent, Harvey, and Kelsey, 2002] and SBDD [Fahle, Schamberger, and Sellmann, 2001; Gent et al., 2003], include completeness, ability to break symmetries of arbitrary kinds and compatibility with variable and value heuristics. When considering runtime, dynamic methods often lose out to widely used static methods, such as the LexLeader method [Crawford et al., 1996] and value precedence [Law and Lee, 2006], which require no modifications to the solver and often have less overheads. Based on SBDS, ReSBDS [Lee and Zhu, 2014a] and LReSBDS [Lee and Zhu, 2014b] break additional symmetry compositions thereby, further pruning the solution and search space. Instead of maintaining the large number of symmetry breaking nogoods in the constraint store, the increasing-nogood (incNGs) global constraint [Lee and Zhu, 2014b] collects all nogoods for a symmetry and filters them with an incremental and stronger filtering algorithm. Such recent advances greatly increase the competitiveness of dynamic approaches against the state of the art static methods.
SBDS adds conditional symmetry breaking nogoods dynamically upon backtracking to avoid exploring symmetrically equivalents of visited search space. However, nogoods are weak in pruning and maintaining GAC is not cost effective even when the watched literal technique [Moskewicz et al., 2001] is utilized. In addition, the number of such nogoods is often large, incurring big overheads to the constraint store.
In this work, we propose weak-nogood consistency (WNC), a weaker consistency notion for nogoods to trade pruning power for efficiency. To enforce GAC on a nogood, usual implementation watches two assignments (as literals) of the nogood. We present an efficient lazy propagator to enforce WNC for SBDS (and its variants) using one watched literal. First, our propagator generates the watched assignment on demand from partial assignment of the current search path. Second, the propagator is triggered lazily when the watched assignment becomes true, and effects prunings only when all but the last assignment of the nogood is true.
A similar weaker consistency, generalized weak-incNGs consistency (GWIC), together with a lazy propagator is also proposed for the incNGs constraint [Lee and Zhu, 2014b]. By exploiting the increasing property of the nogoods in incNGs, our lazy propagator watches also one assignment for each global constraint, and operates and benefits from a similar lazy principle. We give formal characterization of the pruning strengths of the proposed propagators, and also the space and time complexities. Various lazy versions of SBDS and its variants are implemented. We give experimentation to demonstrate the efficiency of the lazy versions as compared to state of the art symmetry breaking methods.
Background
A constraint satisfaction problem (CSP) P is a tuple (X,D,C) where X is a finite set of variables {x0, . . . , xn-1}, D is a finite set of domains such that each x ∈ X has a D(x) and C is a set of constraints, each is a subset of the Cartesian product D(xi1 ) × . . . × D(xik ) of the domains of the involved variables. A constraint is generalized arc consistent (GAC) iff when a variable in the scope of a constraint is assigned any value in its domain, there exist compatible values (called supports) in the domains of all the other variables in the scope of the constraint. A CSP is GAC iff every constraint is GAC. An assignment x = v is an equality constraint assigning value v to variable x. A full assignment is a set of assignments, one for each variable in X. A partial assignment is a subset of a full assignment. A solution to P is a full assignment that satisfies every member of C. An assignment x = v is satisfied iff D(x) = {v}. An assignment x = v is falsified iff v ̸∈ D(x). If an assignment is neither satisfied nor falsified, it is unresolved.
A nogood is the negation of a partial assignment which is not in any solution. Nogoods can also be expressed in an equivalent implication form. A directed nogood ng is an implication of the form (xs0 = vs0 ) ∧ . . . ∧ (xsm = vsm ) ⇒ (xk ̸= vk), where the left hand side (LHS) (lhs(ng) ≡ (xs0 = vs0 ) ∧ . . . ∧ (xsm = vsm )) and the right hand side (RHS) (rhs(ng) ≡ (xk ̸= vk)) are defined with respect to the position of ⇒. We call all assignments in the LHS as the LHS assignments and the negation of the RHS as the RHS assignment. The meaning of ng is that the RHS assignment xk = vk is incompatible with the LHS assignments, and vk should be ruled out from D(xk) when the LHS is true. If lhs(ng) is empty, ng is unconditional. Hereafter, directed nogoods are simply called nogoods when the context is clear.
In this paper, we consider search trees with binary branching, in which every non-leaf node has exactly two children. Suppose a non-leaf node P1 has x and v ∈ D(x) as the branching variable and value. The left and right children of P1 are P1 ∪ {x = v} and P1 ∪ {x ̸= v} respectively. We call x = v the branching assignment from P1 to P1∪{x = v} and backtracking assignment from P1∪{x = v} to P1∪{x ̸= v}. We say that backtracking takes place at P1. Each node P1 is associated with a partial assignment A1 which is the set of branching assignments collected from the root P to P1. If a node P0 is in a subtree under node P1, P0 is the descendant node of P1 and P1 is the ancestor node of P0.
We assume that the CSP, except the generated symmetry breaking nogoods, at a search tree node is always made GAC using an AC3-like [Mackworth, 1977] algorithm to coordinate the triggering of the propagators associated with the individual constraints. Consistency Φ1 is stronger than or equal to (≥) consistency Φ2 iff any Φ1-consistent CSP is also Φ2consistent. Consistency Φ1 is strictly stronger than (>) Φ2 if Φ1 ≥ Φ2 but not vice versa. Consistency Φ1 is equivalent to (=) Φ2 if Φ1 ≥ Φ2 and Φ2 ≥ Φ1.
Here we consider symmetry as a property of the set of solutions. A solution symmetry [Rossi, Van Beek, and Walsh, 2006] is a solution-preserving permutation on assignments.
Symmetry breaking method m1 is stronger in nodes (resp. solutions) pruning than method m2, denoted by m1 ⪰n (resp. ⪰s) m2, when all the nodes (resp. solutions) pruned by m2 would also be pruned by m1. Symmetry breaking method m1 is strictly stronger in nodes (resp. solutions) pruning than method m2, denoted by m1 ≻n (resp. ≻s) m2, when m1 ⪰n (resp. ⪰s) m2 and m2 ̸⪰n (resp. ̸⪰s) m1. Note that ⪰n and ≻n imply ⪰s and ≻s respectively.
LexLeader [Crawford et al., 1996] adds one lexicographical ordering constraint [Frisch et al., 2002], ≤lex, per variable symmetry according to a fixed variable order.
Given the set of all symmetries to a CSP, symmetry breaking during search (SBDS) [Gent and Smith, 2000] adds conditional constraints for each symmetry upon backtracking. Consider a node P0 in the search tree with partial assignment A, branching variable x and value v. After backtracking from the node P0 ∪ {x = v}, for each solution symmetry g, SBDS adds the following conditional constraint to the node P0 ∪ {x ̸= v}:
meaning that once A ∧ (x = v) has been searched, its symmetric partial assignment (A ∧ (x = v))g for any g in the symmetry set under this subtree should not be searched at all. Note that the added constraint is a nogood.
Weak-Nogood Consistency
The watched literal technique [Moskewicz et al., 2001] is extended to implementing propagators for CSPs [Gent, Jefferson, and Miguel, 2006]. When an assignment (as a literal) is watched, the satisfaction of the assignment triggers the propagator in the AC-3 like algorithm. To enforce GAC for a nogood, only two assignments that are not satisfied need to be watched [Moskewicz et al., 2001]. Upon each backtracking, SBDS would add new nogoods into the constraint store. Maintaining such a large set of nogoods is costly since the triggers to their propagators are often fruitless. We propose to watch only one assignment to trade pruning power for efficiency by enforcing nogood with a weaker consistency.
A nogood (xs0 = vs0 ) ∧ . . . ∧ (xsm = vsm ) ⇒ (xk ̸= vk) is weak-nogood consistent (WNC) iff (∃i ∈ [0,m], (vsi ̸∈ D(xsi ) ∨ (vsi ∈ D(xsi ) ∧ |D(xsi )| > 1))) ∨ ((∀i ∈ [0, m], D(xsi ) = {vsi }) ∧ vk ̸∈ D(xk)).
A nogood is WNC if either (1) one of the LHS assignments is not satisfied or (2) all LHS assignments are satisfied and its RHS assignment is falsified.
We now compare the consistency level of GAC and WNC.
Theorem 1. GAC>WNC on a nogood.
Proof. We first prove that GAC implies WNC. A nogood is GAC if either (a) it is true or (b) it has at least two unresolved assignments. For (a), either one of the LHS assignments is falsified, or all LHS assignments are satisfied and its RHS assignment is falsified. Both cases satisfy the two conditions of WNC respectively and the nogood is also WNC. For (b), one of the unresolved assignments must be in the LHS. Thus one of the LHS assignments is not satisfied and condition (1) of WNC is satisfied. The nogood is WNC.
To prove GAC is strictly stronger than WNC, consider the nogood ng ≡ (x1 = 1)∧(x2 = 1) ⇒ (x3 ̸= 1) with domains D(x1) = D(x3) = {1},D(x2) = {1, 2}. The nogood is WNC since (x2 = 1) is not satisfied yet but not GAC since 1 from D(x2) has no support.
WNC loses pruning opportunities in which an unresolved LHS assignment can be enforced to be true when all other assignments in this nogood are all satisfied. Experimental results confirm however that such cases happen not very often.
To enforce WNC for a symmetry breaking nogood, we propose a lazy propagator, LazyNgProp, in Algorithm 1. The propagator can end with two different outputs: ENTAILED or WNCed. A stores the current partial assignment. Without loss of generality, we assume that variables in A are in input order 〈x0, . . . , xn-1〉 for ease of explanation. We also assume that a propagator is immediately triggered once when it is first added to the constraint store.
Algorithm 1 LazyNgProp()
Require: A: current partial assignment g: symmetry x: variable of the watched LHS assignment v: value of the watched LHS assignment ˜x: variable of the RHS ˜ v: value of the RHS α = -1: position of the assignment in A whose symmetric assignment is being watched β: the length of the LHS 1: for each (xi = vi) ∈ A and i ∈ [α+1, β) do 2: (xi ′ = vi ′ ) = (xi = vi)g ; 3: if vi ′ ̸∈ D(xi ′ ) then return ENTAILED; 4: else 5: if |D(xi ′ )| > 1 then 6: x = xi ′ ; v = vi ′ ; 7: α = i; 8: watch x = v; 9: return WNCed; 10: prune ˜ v fromD(˜x); 11: return ENTAILED;
Upon each backtracking, we create a propagator for each generated symmetry breaking nogood and make available the symmetry g, the length of the LHS and the RHS ˜x ̸= ˜ v of the associated nogood to the propagator. The pointer α is initialized to -1 meaning that the propagator does not watch any assignment when it is initially triggered. The for-loop in lines 1-9 starts from the current watched assignment to look for the next unresolved assignment to watch. Once found, the nogood is WNC and the propagator can exit (line 9) with WNCed returned. If, however, any LHS assignment is found falsified, the nogood is entailed and can be removed from the constraint store (line 3, exit with ENTAILED). If no unresolved assignments are found, all LHS assignments are satisfied and pruning is effected using the RHS (line 10) and again the nogood is entailed (line 11).
As can be seen in Algorithm 1, LazyNgProp watches only one assignment at a time. Symmetric assignments in the LHS of nogoods are also only computed on demand but not eagerly. In addition, the current partial assignment A can be shared by all propagators and backtrackable.
Theorem 2. LazyNgProp enforces WNC for a nogood.
Proof. If the propagator for a nogood ng returns WNCed at line 9, it has an unresolved assignment x = v being watched. From line 1, we know x = v is in the LHS of ng. Thus condition (1) of WNC is satisfied and ng is WNC. The propagator can return ENTAILED at line 3 or 11. In line 3, condition (1) of WNC is satisfied. In line 11, condition (2) is satisfied since all LHS assignments are satisfied and the RHS assignment is falsified. Again, ng is WNC.
Theorem 3. Given a CSP P = (X, D, C) with |X| = n. The space complexity of LazyNgProp for a nogood is O(1), and the time complexity is O(n).
Proof. LazyNgProp records only the symmetry (just a name or pointer), the LHS watched assignment, the RHS assignment, the LHS watched assignment's corresponding assignment position and the length of the LHS. The total space complexity is O(1). The maximum number of assignments in each nogood is n and we scan the assignments only once in LazyNgProp. The time complexity is O(n).
Theorem 4. Given a CSP P = (X, D, C) with |X| = n and a set of symmetries G. The total space and time complexity of SBDS utilizing LazyNgProp to enforce WNC on all nogoods at each search tree node is O(|G| ∑n-1 i=0 (|D(xi)| - 1) + n) and O(n|G| ∑n-1 i=0 (|D(xi)| - 1)) respectively.
Proof. The total number of nogoods in SBDS is at most |G| ∑n-1 i=0 (|D(xi)| - 1) and the length of a partial assignment can be at most n. While each filtering algorithm has O(1) space complexity, the total space complexity is O(|G| ∑n-1 i=0 (|D(xi)| - 1) + n).
LazyNgProp scans the LHS assignments incrementally during the AC3-like algorithm by maintaining α. The maximum number of such assignments is n. Thus the total time complexity for LazyNgProp to handle all the nogoods in SBDS is O(n|G| ∑n-1 i=0 (|D(xi)| - 1)).
GAC vs WNC in SBDS and Its Variants
In addition to ReSBDS and LReSBDS, Partial SBDS (ParSBDS) [Flener et al., 2002] is SBDS but deals with only a given subset of all symmetries. LDSB [Mears et al., 2013] is a further development of shortcut SBDS [Gent and Smith, 2000] which handles only active symmetries and their compositions. WNC can also be used in ParSBDS, LDSB, ReSBDS and LReSBDS since they generate symmetry breaking nogoods in a similar fashion.
In this section, we compare the node and solution pruning power between GAC and WNC in SBDS and its variants respectively. We denote the methods enforcing WNC with subscript WNC, and those enforcing GAC without a subscript.
In the following, we assume all methods use the same static variable and value ordering heuristics.
Theorem 5. SBDS =s SBDSWNC and SBDS ≻n SBDSWNC.
Proof. Suppose SBDSWNC leaves two symmetric solutions s1 and s2. Suppose further P is their deepest common ancestor node and s1 is searched earlier than s2. Upon backtracking from the left subtree to the right at P, the nogood which prunes the symmetric solution of s1 must be posted. Since LazyNgProp can only postpone some pruning opportunities to deeper nodes, s2 is pruned by the nogood eventually. Thus SBDSWNC has the same solution pruning power as SBDS.
As the entire symmetry group is posted, SBDS would never leave any symmetric subtrees. While SBDSWNC can postpone the pruning opportunity into deeper nodes, it leaves some symmetric parts and prunes less nodes. SBDSWNC can backtrack more and generate more nogoods, but these nogoods break no new symmetries (since all symmetries are broken in SBDS). Thus the search tree of SBDSWNC subsumes that of SBDS.
In partial symmetry breaking, such as ParSBDS and ReSBDS, only a subset of all symmetries is posted. Since WNC is weaker, there are symmetric subtrees that are pruned by GAC but not by WNC. In turn, WNC searches and also backtracks more, thus sometimes posting more nogoods than GAC. Such nogoods can potentially break composition symmetries that are not posted. As a result, it is difficult to compare theoretically the strength of GAC and WNC on ParSBDS, ReSBDS and LReSBDS respectively, but is interesting future work.
Theorem 6. WNC = GAC for unconditional nogoods.
Proof. Unconditional nogoods are simply disequality constraints. WNC and GAC handle them equally.
Theorem 7. LDSB =n (resp. =s) LDSBWNC.
Proof. All symmetry breaking nogoods in LDSB are unconditional since LDSB handles only active symmetries and their compositions. Results follow directly from Theorem 6.
Generalized Weak-incNGs Consistency
Lee and Zhu (2014b) show that the set of symmetry breaking nogoods added by SBDS and its variants for one symmetry at a search node are increasing nogoods. They also give the incNGs global constraint and a filtering algorithm which is stronger than GAC on each nogood. Now we propose a weaker consistency for the incNGs constraint.
A set of directed nogoods Λ is increasing [Lee and Zhu, 2014b] if the nogoods can form a sequence 〈ng0, . . . , ngt〉 where ngi ≡ (Ai ⇒ xki ̸= vki ) such that (i) for any i ∈ [1, t], Ai-1 ⊆ Ai and (ii) no nogoods are implied by another. A nogood ngj in Λ is lower than nogood ngi iff j < i, and ngi is higher than ngj.
A set of increasing nogoods Λ = 〈ng0, . . . , ngt〉 where ngi ≡ (Ai ⇒ xki ̸= vki ) is generalized weak-incNGs consistent (GWIC) iff (∃i ∈ [0, t], ∃(xsi = vsi ) ∈ Ai, ((vsi ̸∈ D(xsi ) ∨ (vsi ∈ D(xsi ) ∧ |D(xsi )| > 1))) ∧ (∀j < i, (∀(xsj = vsj ) ∈ Aj , D(xsj ) = {vsj })∧vkj ̸∈ D(xkj )))∨ ((∀i ∈ [0, t], (∀(xsi = vsi ) ∈ Ai,D(xsi ) = {vsi }) ∧ vki ̸∈ D(xki )). Thus, Λ is GWIC if either (1) one of the LHS assignments of nogood ngi is not satisfied and for each ngj lower than ngi, ngj's LHS assignments are satisfied and its RHS assignment is falsified or (2) the LHS assignments of all nogoods are satisfied and all RHS assignments are falsified. GWIC has the following theorems.
Theorem 8. Given increasing nogoods Λ = 〈ng0, . . . , ngt〉, GWIC on Λ is equivalent to WNC on each ngk, k ∈ [0, t].
Proof. We first prove that if Λ is GWIC, all individual nogoods are WNC. One case is that there exists ngi such that Λ satisfies condition (1) of GWIC. Now all nogoods lower than ngi satisfy condition (2) of WNC, and the remaining nogoods whose LHSs subsume lhs(ngi) satisfy condition (1) of WNC. Thus all nogoods are WNC. Another case is that Λ satisfies condition (2) of GWIC, which implies that all nogoods satisfy condition (2) of WNC.
Secondly, we prove if all individual nogoods are WNC, Λ is GWIC. Suppose we can find a nogood ngj which is the lowest nogood in Λ and satisfies condition (1) of WNC. All nogoods lower than ngj must satisfy condition (2) of WNC since all their LHS assignments must be satisfied. Thus condition (1) of GWIC is satisfied. If we cannot find such an ngj , all nogoods satisfy condition (2) of WNC. Now condition (2) of GWIC is satisfied. Therefore, Λ is GWIC iff all individual nogoods are WNC.
Theorem 9. GAC > GWIC on an incNGs constraint.
Proof. Given increasing nogoods Λ = 〈ng0, . . . , ngt〉. Lee and Zhu (2014b) show that GAC on Λ is strictly stronger than GAC on individual nogoods (ngi), which is strictly stronger than WNC on the individual nogoods (ngi) by Theorem 1. In addition, WNC on the individual nogoods (ngi) is equivalent to GWIC on Λ by Theorem 8. Result follows.
A sequence of increasing nogoods Λ = 〈ng0, . . . , ngt〉 for a symmetry g can be encoded compactly. The increasing property guarantees that lhs(ngj) ⊆ lhs(ngi) for all j < i ≤ t. Thus the LHS assignments of all nogoods are available in lhs(ngt). Suppose Λ is added at an ancestor node P ′ of P and A is the partial assignment of P. We must have lhs(ngt) ⊆ Ag . Therefore, we can always construct (by applying symmetry transformation) lhs(ngt) from the partial assignment at any descendant node of P ′ . We also collect all the backtracking assignments (refer to Section 2) from root to a search node, and call it B. Each backtracking assignment is also associated with its depth, which is the length of the partial assignment associated with the node where backtracking takes place. We can construct (by applying symmetry transformation) rhs(ngk) for k ∈ [0, t] from the backtracking assignments in B. Using A and B together, we can reconstruct all nogoods in Λ using symmetry g.
Section 3 shows that watching one unresolved assignment in the LHS is enough to enforce WNC on a nogood. An important consequence of lhs(ngj) ⊆ lhs(ngi) for all j < i ≤ t in Λ is that watching an assignment in lhs(ng0) implies watching the same assignment in lhs(ng1), . . . , lhs(ngt). In general, when we watch an assignment that first appears only in lhs(ngi), we are also watching the same assignment in lhs(ngi+1), . . . , lhs(ngt). Thus, we can watch only one unresolved assignment for our lazy propagator for Λ. We scan the symmetric assignments of the current partial assignment at each search node to find the first unresolved assignment to watch. During scanning, when we encounter an assignment Γ, there are three possibilities. (a) Γ is satisfied. We should make use of B to look for all nogoods with a true LHS, and enforce the RHSs of all discovered nogoods to be true to effect prunings. Then we continue our previous scanning to the next assignment. (b) Γ is falsified. We can stop scanning since Λ is entailed. (c) Γ is unresolved. We stop scanning and watch Γ, since Λ is now GWIC.
The incNGs constraint grows since nogoods are added dynamically upon backtracking. It can happen that, at one search node, all symmetric equivalents of those in the current assignments A are true. There are no assignments to watch. In such a case, the propagator should still be triggered upon backtracking (when B is updated), which is when a new nogood is added to the propagator.
We now present our lazy propagator, LazyincNGsProp, for the incNGs constraint as shown in Algorithm 2. The propagator can return two different results: ENTAILED or GWICed. A stores the current partial assignment. B stores all backtracking assignments and their depth as a pair from root up to the current search node. If we view A and B as arrays, their indices start from 0. Without loss of generality, we assume that variables in A are in input order 〈x0, . . . , xn-1〉.
Algorithm 2 LazyincNGsProp()
Require:
- A: current partial assignment
B: all backtracking assignments and their depth from root up to the current node g: symmetry x = ⊥: variable of the watched LHS assignment v = ⊥: value of the watched LHS assignment α = -1: position of the assignment in A whose symmetric assignment is being watched β = 0: position of the first assignment in B whose symmetric assignment has not been enforced by this constraint 1: if α = |A| -1 then 2: pruneB(α + 1); 3: else 4: for each (xi = vi) ∈ A and i ∈ [α + 1, |A|) do 5: (xi ′ = vi ′ ) = (xi = vi)g ; 6: if vi ′ ̸∈ D(xi ′ ) then return ENTAILED; 7: else 8: if |D(xi ′ )| > 1 then 9: x = xi ′ ; v = vi ′ ; 10: α = i; 11: watch x = v; 12: return GWICed; 13: pruneB(i + 1); 14: x = ⊥; v = ⊥; α = |A| -1; 15: return GWICed;
Algorithm 3 pruneB(k)
- 1: for each (xj = vj, dj) ∈ B and j ≥ β and dj ≤ k do
- 2: (xj ′ = vj ′ ) = (xj = vj)g ; 3: prune vj ′ fromD(xj ′ ); 4: β = j +1;
For each given symmetry g, an incNGs global constraint would be posted at the root node. We create a propagator LazyincNGsProp and make available the symmetry g to the propagator. This propagator is triggered by the watched assignment x = v. If there are no assignments to watch, it is triggered when B is updated. The pointer α always points to the watched assignment, and is initialized to -1 to watch nothing. If the propagator is triggered by B's update, and no assignments are watched and A is not updated from the last propagation (line 1), this means the LHSs of all increasing nogoods are satisfied and pruneB (line 2) is called to prune all symmetric equivalents of the backtracking assignments in B starting from pointer β whose corresponding nogoods are not enforced yet. After doing that, the constraint is GWIC and the propagator can exit (line 15). If the propagator is triggered by the watched assignment x = v or A's update, the for-loop in lines 4-13 looks for the next unresolved assignment to watch as in Algorithm 1. The only thing to take care is if an assignment in the LHS is satisfied, pruneB (line 13) is called to prune all symmetric equivalents of the backtracking assignments in B starting from pointer β whose LHSs are satisfied and corresponding nogoods are not enforced yet.
As can be seen in Algorithm 2, LazyincNGsProp watches only one assignment at a time, and also gets triggered when B is updated. All symmetric assignments are computed on demand but not eagerly. Note that A and B should be backtrackable and can be shared by all propagators.
Theorem 10. LazyincNGsProp enforces GWIC for an incNGs global constraint.
Proof. The propagator returns GWICed at line 12 or 15. Line 12 is reached when there is an unresolved assignment x = v being watched. Now all nogoods whose LHSs do not contain x = v are true since their LHS assignments are satisfied and their RHSs are enforced at line 2 or 13 by pruneB. For all nogoods containing x = v, x = v must be in their LHSs according to line 4. Thus condition (1) of GWIC is satisfied and the increasing nogoods is GWIC. Line 15 means all LHS assignments of current nogoods are satisfied and all RHS assignments are falsified. Now all nogoods are true. Condition (2) of GWIC is satisfied and this increasing nogoods is GWIC. If the propagator returns ENTAILED at line 6, there exists an ngi such that its LHS contains x′i = v′i and all lower nogoods have their LHS assignments satisfied and RHS assignment falsified. Thus, condition (1) of GWIC is satisfied and this increasing nogoods is GWIC.
Theorem 11. Given a CSP P = (X,D,C) with |X| = n. The space complexity of LazyincNGsProp for an incNGs global constraint is O(1), and the time complexity is O(∑n-1 i=0 |D(xi)| -n/2).
Proof. LazyincNGsProp needs to record the symmetry, the LHS watched assignment, two pointers α and β. The total space complexity is O(1). There are at most n + ∑n-1 i=0 (|D(xi)| - 1) number of symmetric assignments to generate and ∑n-1 i=0 (|D(xi)| - 1) to prune. The time complexity is O(∑n-1 i=0 |D(xi)| -n/2).
Experimental Results
This section gives three experiments, all with matrix symmetries (variable symmetries). Our method works for arbitrary symmetries, but better as the number of symmetry grows. Matrix symmetries are common in many CSP models and their numbers are exponential with problem size. We first solve the benchmarks using the efficient and widely used static method Doublelex [Flener et al., 2002], and also LexLeader to break a much larger subset of symmetries. We then report the results of two dynamic methods ParSBDS and LReSBDS. Each dynamic method would be implemented with the four propagators: GAC on each nogood (GAC), the filtering algorithm of incNGs given by Lee and Zhu [2014b] (incNGs), WNC on each nogood (WNC) and GWIC on each incNGs constraint (GWIC).
| n, c, b | DoubleLex | #f 839,251 41,571 725,837 5,508,192 11,709,068 4,139,211 73,522,873 | t 42.19 4.73 16.39 116.88 303.4 112.17 1909.09 | LexLeader #s 7,863 269,841 451,303 82,742 1,690,229 8,052,126 | #f 267,815 56 34,659 354,184 1,918,579 3,837,292 3,404,499 23,457,604 | t 15.14 7.48 8.1 45.17 112.16 72.47 678.49 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| #s 4,4,8 32,469 5,2,10 87 5,6,4 710,731 5,6,5 1,441,224 5,6,6 297,476 6,4,4 4,698,842 6,4,5 29,345,816 6,8,4 59,158 8,4,4 35,626,714 ParSBDSGAC | ParSBDSincNGs | ParSBDSWNC/GWIC | ||||||||||
| #s 8,918 66 297,819 508,585 95,380 1,943,608 24,355 14,541,826 | #f t 281,720 21.62 25,824 6.22 307,148 12.91 2,042,200 76.83 4,143,524 185.03 1,890,047 102.97 9,472,05625,509,6151,260.44 1,033,529 32.45 21,963,988 | 1,450.38 | 2,469,211 48,525,827 #s 8,918 66 297,819 508,585 95,380 1,943,604 24,355 14,541,822 | 35.9 1303.08 #f 281,553 25,810 306,376 2,036,425 4,129,503126.99 1,888,679 9,472,02125,493,887806.56 1,031,161 21,958,213 | 22,756 12,246,480 t 16.68 4.96 8.32 51.68 62.08 18.92 750.56 | 1,082,827 47,273,927 #s #f 8,654 66 289,822 490,687 90,767 1,859,800 9,034,35325,186,758920.08696.83 24,192 13,877,574 | 18.05 1171.17 tW 275,236 18.01 26,732 5 334,263 9.73 2,095,836 59.5 4,163,933147.23116.14 1,961,610 71.84 1,090,154 22.69 22,137,598 889.59 | tG 14.43 4.09 7.80 46.83 53.99 17.39 637.30 | ||||
| LReSBDSGAC | LReSBDSincNGs | LReSBDSWNC/GWIC | ||||||||||
| #s 7,698 56 235,866 392,221 72,150 18,933 | #f 235,074 20,820 253,729 1,614,088 3,210,014 | t 15.01 5.6 7.34 44.47 106.3 59.95 | #s 7,698 56 235,866 392,221 72,150 | #f 234,806 20,806 252,866 3,197,525101.79 7,631,83320,474,513670.31 | t 14.47 4.42 6.94 41.42 54.06 | #s #f 7,698 237,306 56 21,801 235,866 262,483 392,221 1,645,389 72,150 | tW 19.63 6.36 3,260,502139.17 | tG 13.44 2.76 6.34 39.55 94.70 | ||||
| 1,608,523 | 8.78 53.79 | 49.41 | ||||||||||
| 1,608,536 | 1,568,776 7,631,83320,494,554747.13 793,258 16.28 | 11,582,46717,464,022768.3511,582,46717,453,197 | 1,608,536 18,933 | 1,566,251 790,810 | 15.03 | 1,608,536 7,631,83321,024,022904.68618.61 18,933 806,897 629.511,582,46718,047,630998.21532.95 | 1,650,210 71.88 20.56 | 13.63 | ||||
We also did extra experiments to find the best subset of matrix symmetries for each method. ParSBDS is given any two rows or columns being permutable and the Cartesian products of these two subsets. LReSBDS and LexLeader can break the entire row symmetries and column symmetries by only posting adjacent rows or columns being permutable with the input order variable heuristic [Lee and Zhu, 2014a]. We thus only post adjacent rows or columns being permutable and the Cartesian products of any two rows or columns being permutable to LReSBDS and LexLeader. LDSB and ReSBDS are discarded in the comparison since LReSBDS is substantially more efficient [Lee and Zhu, 2014a; 2014b] than these two methods. All experiments are conducted using Gecode Solver 4.2.0 on Xeon E5620 2.4GHz processors with 7GB.
Due to the many columns, each table is split into three rows. The first column always gives the instance parameters. In addition, #s denotes the number of solutions, #f denotes the number of failures and t denotes the runtimes. Since WNC and GWIC have the same pruning power, we show their solutions and failures together and use tW and tG to denote the runtime of WNC and GWIC respectively. The search time out limit is 1 hour. An entry with the symbol " - " indicates that memory is exhausted. The best results are highlighted in bold. Unless otherwise specified, search is defaulted to input variable order and minimum value order.
| t, k, g, b | DoubleLex | LexLeader | |||||||
|---|---|---|---|---|---|---|---|---|---|
| 3,4,2,18 7,413,394 3,4,2,19 18,043,630 3,4,3,27 24 ParSBDSGAC | ParSBDSincNGs | ParSBDSWNC/GWIC | |||||||
| #s 432 16,085 54,702 170,263 491,135 1,325,254 3,370,156 8 | 2,4,4,16 3,4,2,13 3,4,2,14 3,4,2,15 3,4,2,16 3,4,2,17 #f t 130,811 14.18 95,343 7.01 229,588 17.53 526,766 41.98 1,162,225 97.74 2,477,180 5,114,350 26,690 | #s 432 16,085 54,702 170,263 491,135 222.361,325,254 495.83,370,156 | #f t 661,726 202,723 496,246 1,149,974 2,548,941 5,433,943 11,181,194 210.61 22,265,801 443.24 64,777 #f 130,707 95,343 229,588 526,766 1,162,225 8 26,690 | 23.67 2.86 7.29 17.91 42.21 94.55 5.66 t 8.41 3.86 9.34 22.04 50.45 6.45 | #s 424 11,047 38,007 120,832 357,662 991,700 2,590,000 6,404,281 8 #s 432 15,361 52,655 165,093 479,200 2,477,180113.121,299,657 5,114,350246.883,318,533 525.88,028,43610,206,998 8 | #f 123,439 76,235 185,786 431,794 965,531 2,085,752 4,362,860 8,851,675 26,193 #f 128,629 93,896 226,715 521,431 1,152,823 2,461,304135.76 26,654 | t 8.19 3.09 6.96 15.09 31.93 65.24 130.88 257.07 17.69 tW 11.21 3.84 9.81 24.21 58.01 5,088,491314.99158.25 - 347.16 5.99 | tG 6.37 2.20 5.45 13.08 31.25 71.07 | |
| LReSBDSWNC/GWIC | |||||||||
| #s 424 11,047 38,007 | #f t 120,815 8.54 76,235 4.8 185,786 11.78 | 424 11,047 38,007 120,832 357,662 991,700 | 120,758 76,235 185,786 431,794 965,531 | t 8.81 3.39 8.31 19.48 44.8 99.75 | 424 11,047 38,007 120,832 357,662 991,700 | #f 121,353 76,235 185,786 431,794 965,531 | 10.38 6.44 17.67 46.57 116 291.92 | tG 6.12 1.85 4.68 11.12 26.61 60.45 | |
| LReSBDSGAC | LReSBDSincNGs | ||||||||
| 120,832 357,662 991,700 | 431,794 27.78 965,531 63.73 2,085,752 142.94 | #s | #f | #s | tW | ||||
| 2,085,752 | 221.28 | 2,085,752 | 702.6 | ||||||
| 2,590,000 | 4,362,860 309.37 | 2,590,000 | 4,362,860 | 2,590,000 | 4,362,860 | 136.78 | |||
| 6,404,281 | 8,851,675 653.30 | 6,404,281 | 8,851,675 | 469.64 | 6,404,281 | 8,851,675 | - | 300.97 | |
| 8 | |||||||||
| 8 | 7.19 | 3.49 | |||||||
| 25,962 | 6.99 | 8.66 | |||||||
| 25,985 | |||||||||
| 8 | |||||||||
| 25,962 | |||||||||
Error Correcting Code-Lee Distance (ECCLD)
Each ECCLD instance is parameterized by (n, c, b). We use the same model by Lee and Zhu (2014a).
Table 1 shows the results for ECCLD. ParSBDSWNC is 1.35 times faster than ParSBDSGAC on average. LReSBDSWNC does not perform well since the number of extra nogoods added by LReSBDS to prune extra composition symmetries is big and the symmetries are broken late. ParSBDSGWIC and LReSBDSGWIC run 1.13 and 1.15 times faster than ParSBDSincNGs and LReSBDSincNGs on average respectively. The improvement is not that much due to the small number of given symmetries. When we compare the number of failures for ParSBDS and LReSBDS, WNC and GWIC increase only slightly the search tree size. This shows our weaker consistencies lose few pruning opportunities. LReSBDSGWIC performs the best and runs 1.50 and 2.67 times faster than LexLeader and DoubleLex on average respectively. ParSBDSGWIC performs slightly slower than LReSBDSGWIC due to its bigger search tree size and more symmetries to handle. Thus, laziness can save us time comparing with other symmetry breaking methods.
Cover Array Problem (CA)
CA instances are parameterized by (t, k, g, b) We use the same model by Lee and Zhu (2014b).
Table 2 shows the results for CA. ParSBDSWNC is 1.61 times faster than ParSBDSGAC on average. LReSBDSWNC still does not perform well. ParSBDSGWIC and LReSBDSGWIC run 1.62 and 1.75 times faster than ParSBDSincNGs and LReSBDSincNGs on average respectively. For LReSBDS, WNC and GWIC only slightly increase the search tree size. LReSBDSGWIC performs the best and runs 1.67 and 1.82 times faster than LexLeader and DoubleLex on average respectively. This again shows the advantage of our lazy incNGs propagator.
| v, k, λ | DoubleLex | #s | #f 191,223 1,814,425 13,149,270 76,463,115 | t 2.12 21.06 154.79 886.95 | LexLeader #s 5,979 33,824 203,296 - | #f 41,978 292,634 172.44 2,069,840 611.51 - | t 65.64 - | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 7,3,5 33,304 7,3,6 250,878 7,3,7 1,460,332 7,3,8 6,941,124 8,4,6 2,058,523 ParSBDSGAC | ParSBDSincNGs | ParSBDSWNC/GWIC | ||||||||||
| #s 12,936 93,713 476,752 305,312 932,022 | #f 83,578 717,959 4,486,587 3,583,192 6,450,151 | t 34.95 377.91 3,349.82 3,600.00 2,366.52 | 14,156,697 #s 12,936 93,713 476,752 - 932,022 | 157.75 #f t 83,578 7.25 717,959 44.37 4,486,587 270.15 - - 6,450,183 281.22 | 596,399 #s 7,916 41,388 226,176 1,134,253 925,504 | 3,873,360 118.12 #f 54,608 353,232 2,292,110 13,599,864 6,483,468 | tW tG 2.39 4.84 18.07 20.50 137.22 114.92 - 694.02 351.32 177.09 | |||||
| LReSBDSGAC | LReSBDSincNGs | LReSBDSWNC/GWIC | ||||||||||
| #s 5,979 33,824 - - 596,399 | #f 41,978 292,634 - 3,873,339 | t 13.24 152.99 - - - 445.98 | #s 5,979 33,824 203,296 1,075,694 12,921,639 596,399 | #f t 41,978 5.46 292,634 24.58 2,069,840 145.44 927.34 3,873,339 169.36 | #s 5,979 33,824 203,296 1,075,694 596,399 | #f 41,978 292,634 2,069,840 12,921,639 3,956,200 | tW tG 2.89 4.20 25.14 18.37 224.6 111.09 - 654.21 287.32 129.06 | |||||
Balanced Incomplete Block Design (BIBD)
A BIBD instance can be determined by its parameters (v, k, λ). We use the same model by Lee and Zhu (2014b). The value ordering is maximum value ordering and DoubleLex orders rows and columns decreasingly.
Table 3 shows the results for BIBD. ParSBDSWNC and LReSBDSWNC run 16.67 and 4.07 times faster than ParSBDSGAC and LReSBDSGAC on average respectively. One reason for the improvement is the reduction of overhead. The other reason for the good efficiency of ParSBDSWNC is that it prunes symmetries late and can break much more composition symmetries. ParSBDSGWIC and LReSBDSGWIC run 1.90 and 1.34 times faster than ParSBDSincNGs and LReSBDSincNGs on average respectively. The search tree size by enforcing WNC and GWIC still does not increase too much more than GAC. LReSBDSGWIC performs the best and runs 7.90 and 1.12 times faster than LexLeader and DoubleLex on average respectively. From the above, we can conclude that laziness can save much time and memory comparing with other symmetry breaking methods.
Conclusion and Future Work
Our contributions are four fold. First, we propose WNC for nogoods and give a lazy propagator to symmetry breaking nogoods added by SBDS-based methods. We give also the space and time complexities of the WNC lazy propagator. Second, we propose GWIC for incNGs global constraint and also give a lazy propagator and its space and time complexities. Third, we prove that GWIC on a conjunction is equivalent to WNC on the individual nogoods. Fourth, we use experiments to show the lazy methods' pruning loss is small while the gain in efficiency is worthwhile.
The improvement from the original incNGs to the lazy version is not as good as that from GAC on nogoods to WNC on nogoods. That is because the global constraint version must be incremental in nature to cater for the addition of new nogoods, and is triggered every time when new nogoods are generated, which is often. So it is not as lazy as we hope it to be. This points to new research opportunities to investigate how best to incorporate laziness into incNGs constraints.
Other possibilities include investigating symmetric nogoods collected from restarts [Lecoutre and Tabary, 2011] and detecting symmetry dynamically.
@inproceedings{ijcai2015p54,
title = {Filtering Nogoods Lazily in Dynamic Symmetry Breaking During Search},
author = {Lee, Jimmy Ho-Man and Zhu, Zichen},
booktitle = {Proceedings of the Twenty-Fourth International Joint Conference on
Artificial Intelligence, {IJCAI-15}},
publisher = {International Joint Conferences on Artificial Intelligence},
editor = {Qiang Yang and Michael Wooldridge},
pages = {339--344},
year = {2015},
month = {7},
note = {Main Track},
url = {https://ijcai.org/proceedings/2015/54},
}
TY - CPAPER TI - Filtering Nogoods Lazily in Dynamic Symmetry Breaking During Search AU - Lee, Jimmy Ho-Man AU - Zhu, Zichen T2 - Proceedings of the Twenty-Fourth International Joint Conference on Artificial Intelligence, IJCAI-15 PB - International Joint Conferences on Artificial Intelligence PY - 2015 SP - 339 EP - 344 UR - https://ijcai.org/proceedings/2015/54 ER -Copied
Machine-readable versions of this paper, for tools and AI agents: