BPSolver’s Solutions to the ASP Competition Problems Neng-Fa Zhou 周 能法 The City University of New York [email protected] N.F. Zhou, KR'12 1 Outline Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions Observations N.F. Zhou, KR'12 2 Overview of ASP Competition (Model & Solve) Principles – To foster open comparison of ASP with any other declarative paradigm – To foster development of new language constructs – To foster development of new heuristics and/or algorithms N.F. Zhou, KR'12 3 Overview of ASP Competition (Model & Solve) Participants – Aclasp (Gringo + Clasp + Gecode) – BPSolver (B-Prolog) – EZCSP (Gringo + Clasp + B-Prolog) – Fastdownward (PDDL) – IDP (grounder Gidl + MinisatID) – Potassco (Gringo + Clasp + Gecode) N.F. Zhou, KR'12 4 Overview of ASP Competition (Model & Solve) Benchmarks (34) – P-problems (7) – NP-problems (19) – Beyond NP problems (2) – Optimization problems (6) N.F. Zhou, KR'12 5 Another View of the Results (Clasp Vs. B-Prolog) N.F. Zhou, KR'12 6 Outline Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions Observations N.F. Zhou, KR'12 7 B-Prolog = Prolog + Tabling + CLP(FD) Prolog enhanced – Array subscripts – Loop constructs with Tabling – Memorize and reuse intermediate results • Suitable for dynamic programming problems CLP(FD) – Constraint Logic Programming over Finite Domains • Suitable for constraint satisfaction problems (NP-complete) N.F. Zhou, KR'12 8 Array Subscripts in B-Prolog In arithmetic expressions S is X[1]+X[2]+X[3] In arithmetic constraints X[1]+X[2] #= X[3] In calls to @= and @:= X[1,2] @= 100 X[1,2] @:= 100 In any other context, X[I1,…,In] is the same as X^[I1,…,In] N.F. Zhou, KR'12 9 Loop Constructs in B-Prolog foreach – foreach(E1 in D1, . . ., En in Dn, LVars, Goal) – Example: • foreach(A in [a,b], I in 1..2, writeln((A,I)) List comprehension – [T : E1 in D1, . . ., En in Dn, LVars, Goal] – Examples: • L @= [(A,I): A in [a,b], I in 1..2]. • sum([A[I,J] : I in 1..N, J in 1..N]) #= N*N N.F. Zhou, KR'12 10 More Examples Create a list of 10 random integers L @= [X : I in 1..10, [X], X is random] Create a matrix of random integers matrix(NRow,NCols,M):M @= [R : I in 1..NRows, [R], (R @= [X : J in 1..NCols, [X],X is random])]. N.F. Zhou, KR'12 11 Tabling in B-Prolog Eliminate infinite loops :-table path/2. path(X,Y):-edge(X,Y). path(X,Y):-edge(X,Z),path(Z,Y). Reduce redundant computations :-table fib/2. fib(0,1). fib(1,1). fib(N,F):N>1, N1 is N-1,fib(N1,F1), N2 is N-2,fib(N2,F2), F is F1+F2. N.F. Zhou, KR'12 12 The Table-All Approach Characteristics – All the arguments of a tabled subgoal are used in variant checking – All answers are tabled Problems – The number of answers may be too large or even infinite for DP and ML problems – When computing aggregates, tabling noncontributing answers is a waste N.F. Zhou, KR'12 13 Mode-Directed Tabling in B-Prolog Table mode declaration :-table p(M1,...,Mn):C. – C: Cardinality limit – Modes • + : input • - : output • min: minimized • max: maximized N.F. Zhou, KR'12 14 Example: Shortest Path Problem :-table sp(+,+,-,min). sp(X,Y,[(X,Y)],W) :edge(X,Y,W). sp(X,Y,[(X,Z)|Path],W) :edge(X,Z,W1), sp(Z,Y,Path,W2), W is W1+W2. sp(X,Y,P,W) – P is a path between X and Y with minimal weight W. N.F. Zhou, KR'12 15 CLP(FD) in B-Prolog A rich set of built-in constraints – Unification and arithmetic constraints (#=, #\=, #>, #>=, #<, #=<) – Global constraints A glass-box approach to the implementation – All propagators are described in Action Rules (TPLP’06) – Action Rules is open to the user for describing problem-specific propagators A rich set of labeling options N.F. Zhou, KR'12 16 Global Constraints in B-Prolog all_different(L) & all_distinct(L) – post_neqs(L) circuit(L) count(V,L,RelOp,N) – exactly(N,L,V) – atleast(N,L,V) – atmost(N,L,V) cumulative(Starts,Durations,Resources,Limit) – serialized(Starts,Durations) diffn(L) element(I,L,V) path_from_to(From,To,L)& path_from_to(From,To,L,Lab) N.F. Zhou, KR'12 17 Outline Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions Observations N.F. Zhou, KR'12 18 BPSolver’s Winning Solutions N.F. Zhou, KR'12 19 Winning Solutions in Prolog Grammar-Based Information Extraction – Parsing Labyrinth – State space search Tomography – Network covering N.F. Zhou, KR'12 20 Winning Solutions With Tabling Reachability Hydraulic Planning Hydraulic Leaking Airport Pickup Hanoi Tower N.F. Zhou, KR'12 21 Reachability :-table reach/1. reach(X):start(X). reach(Y):reach(X), edge(X,Y). N.F. Zhou, KR'12 22 Hydraulic Planning :-table pressurize(+,-,min). pressurize(Node,Plan,Len):full(Node),!, Plan=[],Len=0. pressurize(Node,[Valve|Plan],Len):link(AnotherNode,Node,Valve), \+ stuck(Valve), pressurize(AnotherNode,Plan,Len1), Len is Len1+1. N.F. Zhou, KR'12 23 Hydraulic Leaking :-table pressurize(+,-,min). pressurize(Node,Plan,(Leaks,Len)):full(Node),!, Plan=[],Leaks=0,Len=0. pressurize(Node,[Valve|Plan],(Leaks,Len)):link(AnotherNode,Node,Valve), \+ stuck(Valve), pressurize(AnotherNode,Plan,(Leaks1,Len1)), Len is Len1+1, (leaking(Valve)-> Leaks is Leaks1+1 ; Leaks is Leaks1 ). N.F. Zhou, KR'12 24 Airport Pickup Passengers at Airport #1 want to move to Airport #2 and vice versa A certain number of vehicles are available Some of the locations are gas stations CITY MAP N.F. Zhou, KR'12 25 Solution to Airport Pickup :-table move_vehicle(+,+,+,+,max,-). move_vehicle(X,X,_Cap,GasLevel,Objective,Steps):Objective=(GasLevel,0),Steps=[]. move_vehicle(X,Y,Cap,GasLevel,Objective,[drive(Z)|Steps]):(driveway(X,Z,GasNeeded);driveway(Z,X,GasNeeded)), GasLevel>=GasNeeded, GasLevel1 is GasLevel-GasNeeded, move_vehicle(Z,Y,Cap,GasLevel1,Objective1,Steps), Objective1=(AfterGasLevel,MLen), MLen1 is MLen-1, Objective=(AfterGasLevel,MLen1). move_vehicle(X,Y,Cap,GasLevel,Objective,[refuel|Steps]):gasstation(X), GasLevel<Cap, move_vehicle(X,Y,Cap,Cap,Objective1,Steps), Objective1=(AfterGasLevel,MLen), MLen1 is MLen-1, Objective=(AfterGasLevel,MLen1). N.F. Zhou, KR'12 26 Hanoi Tower (4-Pegs) A B C D A B C D Two snapshots from the sequence by the Frame-Stewart algorithm N.F. Zhou, KR'12 27 Problem Reduction If the largest disk is in its final position, remove it. A B C D A N.F. Zhou, KR'12 B C D 28 Create an Intermediate State Subproblems Sub-prob-1 A B C D A B C D Sub-prob-2 A B C D A N.F. Zhou, KR'12 B C D 29 The Solution(4-Peg Hanoi Tower) :-table plan4(+,+,+,-,min). plan4(N,_CState,_GState,Plan,Len):-N=:=0,!,Plan=[],Len=0. plan4(N,CState,GState,Plan,Len):reduce_prob(N,CState,GState,CState1,GState1),!, N1 is N-1, plan4(N1,CState1,GState1,Plan,Len). plan4(N,CState,GState,Plan,Len):partition_disks(N,CState,GState,ItState,Mid,Peg), remove_larger_disks(CState,Mid,CState1), plan4(Mid,CState1,ItState,Plan1,Len1), % sub-prob1 remove_smaller_or_equal_disks(CState,Mid,CState2), remove_smaller_or_equal_disks(GState,Mid,GState2), N1 is N-Mid, plan3(N1,CState2,GState2,Peg,Plan2,Len2), % sub-prob2 remove_larger_disks(GState,Mid,GState1), plan4(Mid,ItState,GState1,Plan3,Len3), % sub-prob3 append(Plan1,Plan2,Plan3,Plan), Len is Len1+Len2+Len3. N.F. Zhou, KR'12 30 Winning Solutions in CLP(FD) Tangram Magic Square Sets (all_different) Weight-Assignment Tree (element) Knight Tour (circuit) Disjunctive Scheduling (post_disjunctive_tasks Maximal Clique N.F. Zhou, KR'12 31 Magic Square Sets semi(Board,N,Magic):foreach(I in 1..N, sum([Board[I,J] : J in 1..N])#=Magic), foreach(J in 1..N, sum([Board[I,J] : I in 1..N])#=Magic). normal(Board,N,Magic):sum([Board[I,I] : I in 1..N]) #= Magic, sum([Board[I,N-I+1] : I in 1..N]) #= Magic. N.F. Zhou, KR'12 32 Outline Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions Observations N.F. Zhou, KR'12 33 BPSolver’s Hopeful Solutions Graph Coloring (Ranking = 5) Sokoban Optimization (Ranking = 4) N.F. Zhou, KR'12 34 Graph Coloring Model-1 (neq) • For each two neighbors i and j, CiCj Model-2 (all_distinct) • For each complete subgraph (clique) {i1,i2,…,ik}, all_distinct([Ci1, Ci2,…, Cik]) • post_neqs(Neqs) in B-Prolog Model-3 (Model-2 + symmetry breaking) – Allen Van Gelder: Another look at graph coloring via propositional satisfiability N.F. Zhou, KR'12 35 Graph Coloring in B-Prolog Go:create_vars(Vars), generate_neqs(Vars,Neqs), post_neqs(Neqs,Cliques), largest_clique(Cliques,LClique), (labeling(LClique)-> labeling_ffc(Vars),!;fail), output(Vars). N.F. Zhou, KR'12 36 Performance Comparison (Model-2 Vs. Model-3) N.F. Zhou, KR'12 37 The Sokoban Problem [push(c6r3,down,c6r5), push(c5r4,left,c3r4), push(c3r4,down,c3r5), push(c5r5,up,c5r4), push(c6r5,left,c5r5), push(c5r4,right,c6r4), push(c5r5,up,c5r4), push(c6r4,up,c6r3), push(c5r4,left,c4r4), push(c6r3,down,c6r4), push(c3r5,up,c3r3), push(c4r4,left,c3r4), push(c6r4,left,c4r4)] N.F. Zhou, KR'12 38 BPSolver’s Solution to Sokoban N.F. Zhou, KR'12 39 The Competition Results N.F. Zhou, KR'12 40 BPSolver’s Losing Solutions (Score) Partner Units (0) Reverse Folding (0) Strategic Companies (0) Company Controls Optimize (0) Stable Marriage (5) Solitaire (28) Maze Generation (49) N.F. Zhou, KR'12 41 A Common Interface to SAT and LP/MIP queens(N):length(Qs,N), Qs :: 1..N, foreach(I in 1..N-1, J in I+1..N, (Qs[I] $\= Qs[J], Qs[I]-Qs[J] $\= J-I, Qs[J]-Qs[I] $\= J-I)), sat_solve(Qs), writeln(Qs). N.F. Zhou, KR'12 42 Numberlink N.F. Zhou, KR'12 43 B-Prolog = Prolog + Tabling + CLP(FD)+SAT Prolog enhanced – Array subscripts – Loop constructs with Tabling – Memorize and reuse intermediate results • Suitable for dynamic programming problems CLP(FD) & SAT – Constraint Logic Programming over Finite Domains • Suitable for constraint satisfaction problems (NP-complete) N.F. Zhou, KR'12 44 Observations ASP vs B-Prolog – ASP encodings are generally shorter than BP encodings Grounding vs. top-down tabled evaluation SAT vs. CP N.F. Zhou, KR'12 45 Resources BPSolver’s solutions – www.sci.brooklyn.cuny.edu/~zhou/asp11/ – www.probp.com/asp11/ B-Prolog – www.probp.com Papers – www.sci.brooklyn.cuny.edu/~zhou/ N.F. Zhou, KR'12 46 Thanks ASP competition organization committee BPSolver team members – Agostino Dovier – Yuanlin Zhang NSF and PSC-CUNY N.F. Zhou, KR'12 47
© Copyright 2026 Paperzz