then Adaptive Parameterized Consistency for Non-Binary CSPs by Counting Supports R.J.Woodward 1,2, A.Schneider 1, B.Y.Choueiry 1, and C.Bessiere 2 1 Constraint Systems Laboratory University of Nebraska-Lincoln USA 2 LIRMM-CNRS University of Montpellier France 1.Extend p-stability for AC to GAC (to operate on non-binary CSPs) 2.Provide a more precise mechanism for computing it 3.Algorithm for enforcing apc-LC 1. Contributions 3. Parameterized Adaptive Consistency 2. Local Consistency Experiments were conducted on the equipment of the Holland Computing Center at the University of Nebraska-Lincoln. R.J. Woodward was supported by a National Science Foundation (NSF) Graduate Research Fellowship Grant No and Chateaubriand Fellowship. This research is supported by NSF Grant No. RI and EU project ICON (FP ). 4. Algorithm & Empirical Evaluations p -stability for GAC Paper: CP September 2 nd, 2014 Experimental Results p -stability for AC [Balafrej+ CP2013] Relative position of v i in dom o (x i ) : x1x x2x (4-1)/4 = 0.75 (4-2)/4 = 0.50 (4-3)/4 = 0.25 (4-4)/4 = 0.00 Δ(x 2,v i ) p=0.25 x1x1 x2x gacSupports[R j ]( 〈 x 1,1 〉 )={0,1,2,3} gacSupports[R j ]( 〈 x 1,2 〉 )={4,5,6} gacSupports[R j ]( 〈 x 1,3 〉 )={7,8} gacSupports[R j ]( 〈 x 1,4 〉 )={9} Generalized Arc Consistency (GAC) ensures any value in the domain of any variable in the scope of every relation can be extended to a tuple satisfying the relation. E.g., filters value 2 from V 3. STR ensures GAC, filtering both domains and relations. E.g., filters value 2 from V 3,tuple 〈 2,1 〉 from R 2. m-wise Consistency, R(*, m )C ensures every tuple in every relation can be extended to every combination of m −1 other relations. R(*,3)C filters tuple 〈 2,2 〉 from R 1, 〈 2,1 〉 from R 2 and 〈 2,2,2 〉 from R 3. Projecting relations onto domains filters 2 from every variable V1V1 V2V2 V3V3 V4V4 R1R1 V 1 V 2 R2R2 V 1 V 3 R3R3 V2 V3 V4V2 V3 V4 Pairwise Consistency ≡ R(*,2)C. Completed Average CPU Time (sec) Median CPU Time (sec) benchmark # Instances STR R(*,2)C apc -R(*,2)C All STR R(*,2)C apc -R(*,2)C STR R(*,2)C apc -R(*,2)C a) apc-R(*,2)C is the best aim allIntervalSeries jnhSat modifiedRenault rand , , b) apc-R(*,2)C is competitive aim aim jnhUnsat lexVg pret rand fcd rand , , rand ssa TSP , ukVg varDimacs wordsVg c) apc-R(*,2)C is the worst dubois , , TSP d) Not solved by STR dag-rand benchmarkSTR CallsR(*,2)C CallsbenchmarkSTR CallsR(*,2)C Calls a) apc-R(*,2)C is the bestb) apc-R(*,2)C is competitive aim-50456,82339,491aim-1007,731,585894,353 allIntervalSeries38,281,6940aim-2001,160,334,482163,177,907 jnhSat22,119,135599,080jnhUnsat51,688,1661,918,781 modifiedRenault4,618,778601,641lexVg564,010,4572,180,503,026 rand ,441,1263,480,216,943pret422,987,94613,973,748 rand fcd455,664,1002,956,467,994 c) apc-R(*,2)C is the worstrand ,470,561184,764,543 dubois3,343,830,6044,668,288rand ,6083,972 TSP-20622,949,698991,590,957ssa156,631,37011,689,961 TSP-252,903,953,3153,947,391,769 ukVg341,565,8921,002,334,753 d) Not solved by STRvarDimacs720,843,95884,123,204 dag-rand359,24821,870wordsVg514,840,7372,052,367,934 Total number of instance: 623STR R(*,2) Capc-R(*,2)C Number of instances solved by # instances solved only by1050 # instances solved by STR, but missed by01811 # instances solved by R(*,2)C, but missed by6406 # instances solved by apc-R(*,2)C, but missed by5980 Average CPU time (sec.) over 458 instances Median CPU time (sec.) over 458 instances 〈 x 1,4 〉 not stable for AC 〈 x 1,3 〉 is stable for AC 〈 x 1,2 〉 is stable for AC 〈 x 1,1 〉 is stable for AC LC: A local consistency stronger than (G)AC pc -LC: ∀〈 x i,v i 〉 and c j on x i, 〈 x i,v i 〉 is p-stable for (G)AC on c j or LC on c j apc -LC: adaptive version of pc -LC that uses the weight of a constraint, w ( c j ), like dom/wdeg Where R j o is the original, unfiltered relation. For parameter p, 〈 x i,v i 〉 is p -stable for AC for c ij on x i,x j if it has AC- support 〈 x j,v j 〉 with Δ(x j,v j ) ≥ p. Parameterized Adaptive Consistency 〈 x i,v i 〉 is p-stable for GAC if for every constraint c j on x i gacSupports[R j ]( 〈 x i,v i 〉 ): data structure to store σ xi=vi (R j ). 〈 x 1,1 〉 is stable for GAC ( ≥ 0.25 ) 〈 x 1,2 〉 is stable for GAC ( ≥ 0.25 ) 〈 x 1,3 〉 not stable for GAC ( < 0.25 ) 〈 x 1,4 〉 not stable for GAC ( < 0.25 ) Generate the gacSupports at pre-processing ∀ c j, ∀ x i in c j, ∀ v i in dom(x i ) Enforce LC when 〈 x i,v i 〉 is not p-stable for GAC Enforce STR when 〈 x i,v i 〉 has no support Issue: Position is not a precise measure of support. Average number of calls to STR and R(*,2)C in apc -R(*,2)C On allInternvalSeries, no R(*,2)C calls because solved at pre-processing ( no weight set ). Sometimes, there are more STR calls, others, more R(*,2)C calls. Thus, apc -R(*,2)C finds a good mix between STR and R(*,2)C for each instance. Success! apc -R(*,2)C can solve more instances and quicker than both STR and R(*,2)C. Benchmark results where apc -R(*,2)C performs the best, is competitive, and is the worst. Also included, a benchmark that could not be solved by STR.