1 / 47

BPSolver’s Solutions to the ASP Competition Problems

BPSolver’s Solutions to the ASP Competition Problems. Neng-Fa Zhou 周 能法 The City University of New York zhou@sci.brooklyn.cuny.edu. Outline. Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions

kamin
Télécharger la présentation

BPSolver’s Solutions to the ASP Competition Problems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BPSolver’s Solutions to the ASP Competition Problems Neng-Fa Zhou 周 能法 The City University of New York zhou@sci.brooklyn.cuny.edu N.F. Zhou, KR'12

  2. 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

  3. 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

  4. 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

  5. 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

  6. Another View of the Results(Clasp Vs. B-Prolog) N.F. Zhou, KR'12

  7. 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

  8. B-Prolog =Prolog + Tabling + CLP(FD) • Prolog enhanced with • Array subscripts • Loop constructs • 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

  9. Array Subscripts in B-Prolog • In arithmetic expressions • In arithmetic constraints • In calls to @= and @:= • In any other context, X[I1,…,In] is the same as X^[I1,…,In] S is X[1]+X[2]+X[3] X[1]+X[2] #= X[3] X[1,2] @= 100X[1,2] @:= 100 N.F. Zhou, KR'12

  10. Loop Constructs in B-Prolog • foreach • foreach(E1inD1, . . ., EninDn, LVars, Goal) • Example: • foreach(A in [a,b], I in 1..2, writeln((A,I)) • List comprehension • [T : E1inD1, . . ., EninDn, 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

  11. More Examples • Create a list of 10 random integers • Create a matrix of random integers L @= [X : I in 1..10, [X], X is random] 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

  12. Tabling in B-Prolog • Eliminate infinite loops • Reduce redundant computations • :-table path/2. • path(X,Y):-edge(X,Y).path(X,Y):-edge(X,Z),path(Z,Y). • :-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

  13. 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

  14. Mode-Directed Tabling in B-Prolog • Table mode declaration • C: Cardinality limit • Modes • + : input • - : output • min: minimized • max: maximized :-table p(M1,...,Mn):C. N.F. Zhou, KR'12

  15. Example: Shortest Path Problem • sp(X,Y,P,W) • P is a path between X and Y with minimal weight W. :-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. N.F. Zhou, KR'12

  16. 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

  17. 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

  18. 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

  19. BPSolver’s Winning Solutions N.F. Zhou, KR'12

  20. Winning Solutions in Prolog • Grammar-Based Information Extraction • Parsing • Labyrinth • State space search • Tomography • Network covering N.F. Zhou, KR'12

  21. Winning Solutions With Tabling • Reachability • Hydraulic Planning • Hydraulic Leaking • Airport Pickup • Hanoi Tower N.F. Zhou, KR'12

  22. Reachability :-table reach/1. reach(X):- start(X). reach(Y):- reach(X), edge(X,Y). N.F. Zhou, KR'12

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. Problem Reduction • If the largest disk is in its final position, remove it. A B C D A B C D N.F. Zhou, KR'12

  29. Create an Intermediate State • Subproblems Sub-prob-1 A B C D A B C D Sub-prob-2 A B C D A B C D N.F. Zhou, KR'12

  30. 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

  31. 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

  32. 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

  33. 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

  34. BPSolver’s Hopeful Solutions • Graph Coloring (Ranking = 5) • Sokoban Optimization (Ranking = 4) N.F. Zhou, KR'12

  35. Graph Coloring • Model-1 (neq) • For each two neighbors i and j, CiCj • 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

  36. 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

  37. Performance Comparison(Model-2 Vs. Model-3) N.F. Zhou, KR'12

  38. 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

  39. BPSolver’s Solution to Sokoban N.F. Zhou, KR'12

  40. The Competition Results N.F. Zhou, KR'12

  41. 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

  42. 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

  43. Numberlink N.F. Zhou, KR'12

  44. B-Prolog =Prolog + Tabling + CLP(FD)+SAT • Prolog enhanced with • Array subscripts • Loop constructs • 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

  45. 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

  46. 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

  47. Thanks • ASP competition organization committee • BPSolver team members • Agostino Dovier • Yuanlin Zhang • NSF and PSC-CUNY N.F. Zhou, KR'12

More Related