400 likes | 539 Vues
This presentation by Neng-Fa Zhou from The City University of New York delves into the successes of BPSolver in the ASP competition. It covers an overview of the competition's principles and participants, including Aclasp, EZCSP, and Potassco. Key features of B-Prolog, such as tabling and constraint logic programming, are discussed, along with BPSolver's winning, hopeful, and losing solutions. Observations on performance and comparative analysis with other systems like Clasp are also highlighted, giving a comprehensive view of advancements in Answer Set Programming.
E N D
BPSolver’s Winning Solutions to ASP Competition Problems Neng-Fa Zhou The City University of New York zhou@sci.brooklyn.cuny.edu Neng-Fa Zhou at TUWIEN
Outline • Overview of the ASP competition • B-Prolog’s features • BPSolver’s winning solutions • BPSolver’s hopeful solutions • BPSolver’s losing solutions • Observations Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
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) Neng-Fa Zhou at TUWIEN
Overview of ASP Competition (Model & Solve) • Benchmarks (34) • P-problems (7) • NP-problems (19) • Beyond NP problems (2) • Optimization problems (6) Neng-Fa Zhou at TUWIEN
Another View of the Results(Clasp Vs. B-Prolog) Neng-Fa Zhou at TUWIEN
Outline • Overview of the ASP competition • B-Prolog’s features • BPSolver’s winning solutions • BPSolver’s hopeful solutions • BPSolver’s losing solutions • Observations Neng-Fa Zhou at TUWIEN
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) Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
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. Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
Mode-Directed Tabling in B-Prolog • Table mode declaration • C: Cardinality limit • Modes • + : input • - : output • min: minimized • max: maximized :-table p(M1,...,Mn):C. Neng-Fa Zhou at TUWIEN
Example: Shortest Path Problem • sp(X,Y,P,W) • P is a shortest 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. Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
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) Neng-Fa Zhou at TUWIEN
Outline • Overview of the ASP competition • B-Prolog’s features • BPSolver’s winning solutions • BPSolver’s hopeful solutions • BPSolver’s losing solutions • Observations Neng-Fa Zhou at TUWIEN
BPSolver’s Winning Solutions Neng-Fa Zhou at TUWIEN
Winning Solutions in Prolog • Grammar-Based Information Extraction • Parsing • Labyrinth • State space search • Tomography • Set covering Neng-Fa Zhou at TUWIEN
Winning Solutions With Tabling • Reachability • Hydraulic Planning • Hydraulic Leaking • Airport Pickup • Hanoi Tower Neng-Fa Zhou at TUWIEN
Reachability :-table reach/1. reach(X):- start(X). reach(Y):- reach(X), edge(X,Y). Neng-Fa Zhou at TUWIEN
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. Neng-Fa Zhou at TUWIEN
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 ). Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
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). Neng-Fa Zhou at TUWIEN
Hanoi Tower (4-Pegs) A B C D A B C D Two snapshots from the sequence by the Frame-Stewart algorithm Neng-Fa Zhou at TUWIEN
Problem Reduction • If the largest disk is in its final position, remove it. A B C D A B C D Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
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. Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
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. Neng-Fa Zhou at TUWIEN
Outline • Overview of the ASP competition • B-Prolog’s features • BPSolver’s winning solutions • BPSolver’s hopeful solutions • BPSolver’s losing solutions • Observations Neng-Fa Zhou at TUWIEN
BPSolver’s Hopeful Solutions • Graph Coloring (Ranking = 5) • Sokoban Optimization (Ranking = 4) Neng-Fa Zhou at TUWIEN
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 Neng-Fa Zhou at TUWIEN
Graph Coloring in B-Prolog Go:- create_vars(Vars), generate_neqs(Vars,Neqs), post_neqs(Neqs,Cliques), % new built-in largest_clique(Cliques,LClique), (labeling(LClique)-> labeling_ffc(Vars),!;fail), output(Vars). Neng-Fa Zhou at TUWIEN
Performance Comparison(Model-2 Vs. Model-3) Neng-Fa Zhou at TUWIEN
BPSolver’s Solution to Sokoban Neng-Fa Zhou at TUWIEN
The Competition Results Neng-Fa Zhou at TUWIEN
BPSolver’s Losing Solutions(Score) • Partner Units (0) • Reverse Folding (0) • Solitaire (0) • Strategic Companies (0) • Company Controls Optimize (0) • Stable Marriage (5) • Maze Generation (49) Neng-Fa Zhou at TUWIEN
Observations Neng-Fa Zhou at TUWIEN