1 / 103

Map Coloring with Logic Two Formulations of Map Coloring

Map Coloring with Logic Two Formulations of Map Coloring. Tim Hinrichs Stanford Logic Group. Map Coloring. Map Coloring. Color the nodes of the graph so that no two adjacent nodes are the same color. Map Coloring. Color the nodes of the graph so that

mbyers
Download Presentation

Map Coloring with Logic Two Formulations of Map Coloring

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. Map Coloring with LogicTwo Formulations of Map Coloring Tim Hinrichs Stanford Logic Group

  2. Map Coloring Map Coloring with Logic

  3. Map Coloring • Color the nodes of the graph so that • no two adjacent nodes are the same color Map Coloring with Logic

  4. Map Coloring • Color the nodes of the graph so that • no two adjacent nodes are the same color Map Coloring with Logic

  5. r3 r6 r4 r2 r5 r1 Student Formulation Premises: color(X,C) => region(X) color(X,C) => hue(C) adjacent(X1,X2) ^ color(X1,C) => -color(X2,C) region(X) => Y.color(X,Y) <ground atoms for adjacent, region, hue> Query: TUVXYZ | color(r1,T) ^ color(r2,U) ^ color(r3,V) ^ … • - This is not the formulation used in the CSP/LP literature. • - LP engines today do not understand this formulation. Map Coloring with Logic

  6. r3 r6 r4 r2 r5 r1 Logic Programming Formulation • Axioms next(red,blue) next(red,green) next(red,yellow) next(blue,red) next(blue,green) … • Query R1 R2 R3 R4 R5 R6 | next(R1,R2) ^ next(R1,R3) ^ next(R1,R5) ^ next(R1,R6) ^ next(R2,R3) ^ next(R2,R4) ^ next(R2,R5) ^ next(R2,R6) ^ next(R3,R4) ^ next(R3,R6) ^ next(R5,R6) This is the typical formulation used in the literature. This form (deductive) is required by LP. Map Coloring with Logic

  7. Map Coloring with Logic • Two formulations • The one students produce in CS157 every year • The one used in the literature [McCarthy82] • (1) is more natural (and non-deductive) (2) is more efficient (and deductive) • Question for the day: • How do we translate (1) into (2)? Map Coloring with Logic

  8. Agenda • Consistency to Deduction: Reformulate non-deductive problem into deductive problem (a form of closing a theory) • Database Reformulation: turn output of (1) into the Logic Programming formulation. • Bilevel Reasoning: speeding up (1) Map Coloring with Logic

  9. Running Example • Example: a very simple graph and two colors • 3 nodes, 2 edges • red and blue Problem: Solutions: Map Coloring with Logic

  10. Constraint Satisfaction • Definition (Constraint Satisfaction Problem): Input: <V, DV, CV> V: set of variables v1,v2,… DV: domain for each variable -- dom(vi) CV: constraints on values of variables Output: Assignment of values to variables so that 1. val(vi) in dom(vi) 2. all the constraints are satisfied Map Coloring with Logic

  11. Map Coloring as a CSP • Variables (V): nodes • Domains (DV): same for each variable for every i, dom(vi) = the set of colors • Constraints (CV): mathematically, a set of permissible tables, i.e. for every pair of variables x and y, a table for all the allowed values of x and y. Map Coloring with Logic

  12. Example V: {R1, R2, R3} DV: dom(R1) = {r, b} dom(R2) = {r, b} dom(R3) = {r, b} r1 r2 r3 CV: Map Coloring with Logic

  13. Example Solution V: {R1, R2, R3} DV: dom(R1) = {r, b} dom(R2) = {r, b} dom(R3) = {r, b} r1 r2 r3 CV: Map Coloring with Logic

  14. All Solutions V: {R1, R2, R3} DV: dom(R1) = {r, b} dom(R2) = {r, b} dom(R3) = {r, b} r1 r2 r3 CV: Map Coloring with Logic

  15. All Solutions as a DB Query • The set of all solutions can also be computed using the natural join operator. r1 r2 r3 = Map Coloring with Logic

  16. Constraint Representations • Representing constraints as permissible tables can be expensive and cumbersome. • Often, constraints are more naturally and economically represented as logical sentences. Map Coloring with Logic

  17. r1 r2 r3 Student Formulation Premises: color(X,C) => region(X) color(X,C) => hue(C) adjacent(X1,X2) ^ color(X1,C) => -color(X2,C) region(X) => Y.color(X,Y) adjacent(r1,r2) ^ adjacent(r2,r3) ^ hue(r) ^ hue(b) region(r1) ^ region(r2) ^ region(r3) Entailment Query: XYZ | color(r1,X) ^ color(r2,Y) ^ color(r3,Z)  Models: Map Coloring with Logic

  18. r1 r2 r3 Student Formulation Premises: color(X,C) => region(X) color(X,C) => hue(C) adjacent(X1,X2) ^ color(X1,C) => -color(X2,C) region(X) => Y.color(X,Y) adjacent(r1,r2) ^ adjacent(r2,r3) ^ hue(r) ^ hue(b) region(r1) ^ region(r2) ^ region(r3) Build a model: XYZ | color(r1,X) ^ color(r2,Y) ^ color(r3,Z)  Models: Map Coloring with Logic

  19. Logic Programming Formulation • Is different than the student formulation • [McCarthy82] borrowed from Pereira and Porto [1980] • McCarthy started with their formulation and showed various reformulations that improved efficiency. • Served as an exploration of Kowalski’s doctrine: Algorithm = Logic + Control • Originally used to illustrate issues in Constraint Satisfaction/Logic Programming Map Coloring with Logic

  20. LP Formulation • Axioms next(r,b) next(b,r) • Entailment query R1 R2 R3 | next(R1,R2) ^ next(R2,R3) r1 r2 r3 Deductive Map Coloring with Logic

  21. Problem Statement • Produce an algorithm that converts Axioms: color(X,C) => region(X) color(X,C) => hue(C) adjacent(X1,X2) ^ color(X1,C) => -color(X2,C) region(X) => Y.color(X,Y) … Build Model: XYZ |color(r1,X) ^ color(r2,Y) ^ color(r3,Z) into Axioms: next(red,blue) next(blue,red) Entailment Query: XYZ |next(X,Y) ^ next(Y,Z) Map Coloring with Logic

  22. Herbrand Logic • Assume no function constants • The axioms include a • DCA over all ground terms • UNA over all ground terms • Assume these hold implicitly • Finite Herbrand Logic Map Coloring with Logic

  23. An Observation: Student color(X,C) => region(X) color(X,C) => hue(C) adjacent(X,Y) ^ color(X,C) => -color(Y,C) • Write the last with V instead of => -adjacent(X,Y) V -color(X,C) V -color(Y,C) • Except for typing, these constraints are entirely negative • Entail what colorings are invalid. • Every other coloring is valid. Map Coloring with Logic

  24. Student Colorings adjacent(X,Y) ^ color(X,C) => -color(Y,C) • Invalid answers (entailed) XYZ | -(color(r1,X) ^ color(r2,Y) ^ color(r3,Z)) • Remaining answers … Map Coloring with Logic

  25. Idea • To reformulate from Student to LP, • Compute all invalid colorings (which are entailed). • Compute the complement of that set. = … Map Coloring with Logic

  26. Implementation : the set of Student constraints Query: color(r1,X) ^ color(r2,Y) ^ color(r3,Z) • Reify the notion of an invalid coloring. (*) invalid(X,Y,Z) <=> -(color(r1,X) ^ color(r2,Y) ^ color(r3,Z)) • Ask for all the invalid colorings that are logically entailed. XYZ |  ^ (*) |= invalid(X,Y,Z) Map Coloring with Logic

  27. Implementation XYZ | invalid(X,Y,Z) • The following expression is logically entailed and represents the set of all invalid colorings: X=r1 v X=r2 v X=r3 v Y=r1 v Y=r2 v Y=r3 v Z=r1 v Z=r2 v Z=r3 v X=Y v Y=Z X Y Z Map Coloring with Logic

  28. Implementation • To compute an expression that represents the complement of that set, it turns out that all we need to do is negate that expression. X≠r1 ^ X≠r2 ^ X≠r3 ^ Y≠r1 ^ Y≠r2 ^ Y≠r3 ^ Z≠r1 ^ Z≠r2 ^ Z≠r3 ^ X≠Y ^ Y≠Z • The above (with unique names axioms) entails all the valid colorings. X Y Z Map Coloring with Logic

  29. Progress: Both are deductive • Student after reformulation: all deductive answers to XYZ | X≠r1 ^ X≠r2 ^ X≠r3 ^ Y≠r1 ^ Y≠r2 ^ Y≠r3 ^ Z≠r1 ^ Z≠r2 ^ Z≠r3 ^ X≠Z ^ Y≠Z UNA[r,b,r1,r2,r3] • LP formulation: all deductive answers to XYZ | next(X,Y) ^ next(Y,Z) next(r,b) next(b,r) X Y Z Map Coloring with Logic

  30. Because Student* is now a query over a complete theory (≠), it can be viewed as a DB query. XYZ | X≠r1 ^ X≠r2 ^ X≠r3 ^ Y≠r1 ^ Y≠r2 ^ Y≠r3 ^ Z≠r1 ^ Z≠r2 ^ Z≠r3 ^ X≠Z ^ Y≠Z Student* as Database Query ≠ Map Coloring with Logic

  31. Database Reformulation • Given one database query, find an equivalent query that is more efficient. • Includes performing transformations on the data itself, with a space limit. • Theorem [Chirkova]: There are infinitely many distinct transformations. • Theorem [Chirkova]: There is an algorithm that given the query constructs a finite space of queries that is guaranteed to include the optimal one. Map Coloring with Logic

  32. X Y Z Back to Map Coloring • Given the query X≠r1 ^ X≠r2 ^ X≠r3 ^ Y≠r1 ^ … Z≠r3 ^ X≠Y ^ Y≠Z one of the transformations Chirkova’s work considers is view(X,Y) <= X≠r1 ^ X≠r2 ^ X≠r3 ^ Y≠r1 ^ Y≠r2 ^ Y≠r3 ^ X≠Y which can be used to rewrite the above query as view(X,Y) ^ view(Y,Z) Map Coloring with Logic

  33. X Y Z Comparison • Student** XYZ | view(X,Y) ^ view(Y,Z) view(r,b) view(b,r) • Logic Programming XYZ | next(X,Y) ^ next(Y,Z) next(r,b) next(b,r) Map Coloring with Logic

  34. Overview • Starting with the Student formulation, XYZ | color(r1,X) ^ color(r2,Y) ^ color(r3,Z) color(X,C) => region(X) color(X,C) => hue(C) adjacent(X1,X2) ^ color(X1,C) => -color(X2,C) use logical entailment to find an expression for all the invalid colorings and negate it. XYZ | X≠r1 ^ X≠r2 ^ X≠r3 ^ … ^ X≠Y ^ Y≠Z • Then apply Chirkova’s work to produce the LP formulation, or one that is at least as good as LP. XYZ | view(X,Y) ^ view(Y,Z) Map Coloring with Logic

  35. Another Example • N-Queens: place N queens on an NxN chessboard s.t. • No queen can be attacked by another queen. That is • No two queens share the same row • No two queens share the same column • No two queens share the same diagonal Map Coloring with Logic

  36. 8 Queens Solution Map Coloring with Logic

  37. N-Queens Constraints • All queens in different rows X≠Y ^ row(X,R) => -row(Y,R) • All queens in different columns X≠Y ^ col(X,C) => -col(Y,C) • All queens in different diagonals X≠Y ^ diag(X,D1,D2) => -diag(Y,D1,D2) Map Coloring with Logic

  38. N-Queens Diagonals • Row, Col is enough to compute the two diagonals diag(X,pos,D) <= row(X,R) ^ col(X,C) ^ sub(C, R, D) diag(X,neg,D) <= row(X,R) ^ col(X,C) ^ add(C, R, D) • Diagonals represented by their slope and y-intercepts 4 3 2 1 0 Map Coloring with Logic

  39. 4 Queens Query • Satisfiability Query: (X1 Y1 X2 Y2 X3 Y3 X4 Y4) | row(q1,X1) ^ col(q1,Y1) ^ row(q2,X2) ^ col(q2,Y2) ^ row(q3,X3) ^ col(q3,Y3) ^ row(q4,X4) ^ col(q4,Y4) Map Coloring with Logic

  40. Efficiency in N-Queens • The expression that represents all invalid positions can become quite large and might take a long time to compute because of the add and sub facts. • About 150 conjuncts • Idea: produce an expression in terms of add and sub, as well as =. Map Coloring with Logic

  41. Bilevel Reasoning • Separate constraints from data. • X≠Y ^ row(X,R) => -row(Y,R) • X≠Y ^ col(X,C) => -col(Y,C) • X≠Y ^ diag(X,D1,D2) => -diag(Y,D1,D2) • diag(X,pos,D) <= row(X,R) ^ col(X,C) ^ sub(C, R, D) • diag(X,neg,D) <= row(X,R) ^ col(X,C) ^ add(C, R, D) • add(1,1,2) • add(1,1,3) • ... • add(4,4,8) • sub(1,1,0) • sub(1,2,-1) • ... • sub(4,4,0) Map Coloring with Logic

  42. Bilevel Reasoning • Separate constraints from data. • X≠Y ^ row(X,R) => -row(Y,R) • X≠Y ^ col(X,C) => -col(Y,C) • X≠Y ^ diag(X,D1,D2) => -diag(Y,D1,D2) • diag(X,pos,D) <= row(X,R) ^ col(X,C) ^ sub(C, R, D) • diag(X,neg,D) <= row(X,R) ^ col(X,C) ^ add(C, R, D) • add(1,1,2) • add(1,1,3) • ... • add(4,4,8) • sub(1,1,0) • sub(1,2,-1) • ... • sub(4,4,0) Map Coloring with Logic

  43. Bilevel Reasoning • Separate constraints from data. • X≠Y ^ row(X,R) => -row(Y,R) • X≠Y ^ col(X,C) => -col(Y,C) • X≠Y ^ diag(X,D1,D2) => -diag(Y,D1,D2) • diag(X,pos,D) <= row(X,R) ^ col(X,C) ^ sub(C, R, D) • diag(X,neg,D) <= row(X,R) ^ col(X,C) ^ add(C, R, D) • add(1,1,2) • add(1,1,3) • ... • add(4,4,8) • sub(1,1,0) • sub(1,2,-1) • ... • sub(4,4,0) Map Coloring with Logic

  44. Implementation ’: the set of n-queens constraints w/o add/sub Query: row(q1,X1) ^ col(q2,Y1) ^ row(q3,X2) ^ ... • Reify the notion of an invalid coloring. (*) invalid(X1,Y1,X2,Y2,X3,Y3,X4,Y4) <=> -(row(q1,X1) ^ col(q2,Y1) ^ row(q3,X2) ^ ...) • Ask for all the invalid colorings where add/sub can be assumed, i.e. use residues (a form of abduction). XYZ | ’ ^ (*) |= invalid(X,Y,Z) Map Coloring with Logic

  45. 4-Queens Partial Reformulation goal(X1,Y1,X2,Y2,X3,Y3,X4,Y4) <= X1 ≠ X2 Y1 ≠ Y2 (-sub(Y2,X2,Z) v -sub(Y1,X1,Z)) (-add(Y2,X2,Z)) v -add(Y1,X1,Z)) X1 ≠ X3 Y1 ≠ Y3 X2 ≠ X3 Y2 ≠ Y3 (-sub(Y3,X3,Z) v -sub(Y1,X1,Z)) (-sub(Y3,X3,Z) v -sub(Y2,X2,Z)) (-add(Y3,X3,Z) v -add(Y1,X1,Z)) (-add(Y3,X3,Z) v -add(Y2,X2,Z)) ... Map Coloring with Logic

  46. Consistency to Deduction • Computing the sentences that are consistent with the premises and making them deductive consequences. • Definition (query consistency to deduction): qC2D[, (xbar)] = {tbar | (tbar) is satisfiable} • In map coloring,  = the set of map coloring axioms (xbar) = color(r1,X) ^ color(r2,Y) ^ color(r3,Z) qC2D = {<r,b,r>, <b,r,b>} Map Coloring with Logic

  47. Descriptions • Definition (Description): e(xbar) is a description for the set of n-tuples S, where |xbar| = n if and only if |= e(tbar) if tbar  S |= -e(tbar) if tbar  S • Example: X=Y V Y=Z describes {rrr,rrb,brr,bbr,rbb,bbb} in FHL |=H r=r V r=r |=H r=r V r=b |=H b=r V r=r |=H b=b V b=r |=H r=b V b=b |=H b=b V b=b and |=H -(r=b V b=r) |=H -(b=r V r=b) Map Coloring with Logic

  48. Algorithm • Input  : a finite set of FHL sentences (xbar): a query in the vocabulary of Delta • Using algorithm Alg, compute an expression e(xbar) in terms of equality such that for any model M in R, |=M e(tbar) if and only if  |= -(tbar) • Output -e(xbar) Map Coloring with Logic

  49. Theorems • Theorem (Soundness and Completeness): Let Alg(, (xbar)) = -e(xbar). |=M -e(tbar) if and only if (tbar)  qC2D[, (xbar)] Proof: Nontrivial • Theorem (Decidability): qC2D[, (xbar)] for FHL is decidable. Proof: Walk over Herbrand models and if |=M , collect all tbar s.t. |=M (tbar) Map Coloring with Logic

  50. Relationship to CWA • CWA[] includes -p(tbar) whenever  |# p(tbar) • CWA[]  is inconsistent whenever • Delta entails some disjunction d1 v … v dn and • Delta entails none of the di. • Adding the map coloring answers to the Student formulation is inconsistent. Map Coloring with Logic

More Related