BPSolver’s Winning Solutions to ASP Competition Problems

Preview:

DESCRIPTION

BPSolver’s Winning Solutions to 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 - PowerPoint PPT Presentation

Citation preview

Neng-Fa Zhou at TUWIEN 1

BPSolver’s Winning Solutions to ASP Competition Problems

Neng-Fa Zhou

The City University of New Yorkzhou@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 Observations

Neng-Fa Zhou at TUWIEN 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

Neng-Fa Zhou at TUWIEN 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)

Neng-Fa Zhou at TUWIEN 4

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 5

Another View of the Results(Clasp Vs. B-Prolog)

Neng-Fa Zhou at TUWIEN 6

Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions Observations

Outline

Neng-Fa Zhou at TUWIEN 7

Neng-Fa Zhou at TUWIEN 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)

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

Neng-Fa Zhou at TUWIEN

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

Neng-Fa Zhou at TUWIEN 10

Neng-Fa Zhou at TUWIEN 11

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.

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 12

Neng-Fa Zhou at TUWIEN 13

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 14

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

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 16

Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions Observations

Outline

Neng-Fa Zhou at TUWIEN 17

BPSolver’s Winning Solutions

Neng-Fa Zhou at TUWIEN 18

Winning Solutions in Prolog

Grammar-Based Information Extraction– Parsing

Labyrinth– State space search

Tomography– Set covering

Neng-Fa Zhou at TUWIEN 19

Winning Solutions With Tabling

Reachability Hydraulic Planning Hydraulic Leaking Airport Pickup Hanoi Tower

Neng-Fa Zhou at TUWIEN 20

Reachability

Neng-Fa Zhou at TUWIEN 21

:-table reach/1.reach(X):- start(X).reach(Y):- reach(X), edge(X,Y).

Hydraulic Planning

Neng-Fa Zhou at TUWIEN 22

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

Hydraulic Leaking

Neng-Fa Zhou at TUWIEN 23

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

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

Neng-Fa Zhou at TUWIEN 24

CITY MAP

Solution to Airport Pickup

Neng-Fa Zhou at TUWIEN 25

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

Hanoi Tower (4-Pegs)

Neng-Fa Zhou at TUWIEN 26

A B C D A B C D

Two snapshots from the sequence by the Frame-Stewart algorithm

Problem Reduction

If the largest disk is in its final position, remove it.

Neng-Fa Zhou at TUWIEN 27

A B C D A B C D

Create an Intermediate State

Subproblems

Neng-Fa Zhou at TUWIEN 28

A B C D A B C D

A B C D A B C D

Sub-prob-1

Sub-prob-2

The Solution(4-Peg Hanoi Tower)

Neng-Fa Zhou at TUWIEN 29

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

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 30

Magic Square Sets

Neng-Fa Zhou at TUWIEN 31

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.

Overview of the ASP competition B-Prolog’s features BPSolver’s winning solutions BPSolver’s hopeful solutions BPSolver’s losing solutions Observations

Outline

Neng-Fa Zhou at TUWIEN 32

BPSolver’s Hopeful Solutions

Graph Coloring (Ranking = 5) Sokoban Optimization (Ranking = 4)

Neng-Fa Zhou at TUWIEN 33

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 satisfiabilityNeng-Fa Zhou at TUWIEN 34

Graph Coloring in B-Prolog

Neng-Fa Zhou at TUWIEN 35

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

Performance Comparison(Model-2 Vs. Model-3)

Neng-Fa Zhou at TUWIEN 36

BPSolver’s Solution to Sokoban

Neng-Fa Zhou at TUWIEN 37

The Competition Results

Neng-Fa Zhou at TUWIEN 38

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 39

Observations

Neng-Fa Zhou at TUWIEN 40

Recommended