G53CLP Constraint Logic Programming

16
G53CLP Constraint Logic Programming Solving 8-Queen Puzzle – Demo Dr Rong Qu

description

G53CLP Constraint Logic Programming. Solving 8-Queen Puzzle – Demo. Dr Rong Qu. CPLEX Optimization software package Sold via CPLEX Optimization Inc. Acquired by ILOG Inc in 1997 Acquired by IBM in 2009 Also solves integer programming and large linear programming problems. ILOG OPL Studio. - PowerPoint PPT Presentation

Transcript of G53CLP Constraint Logic Programming

Page 1: G53CLP Constraint Logic Programming

G53CLPConstraint Logic

Programming

Solving 8-Queen Puzzle – Demo

Dr Rong Qu

Page 2: G53CLP Constraint Logic Programming

2

ILOG OPL Studio CPLEX

Optimization software package Sold via CPLEX Optimization Inc. Acquired by ILOG Inc in 1997 Acquired by IBM in 2009 Also solves integer programming and large

linear programming problems

http://www.ilog.com/products/cplex/

G53CLP – Constraint Logic Programming Dr R. Qu

Page 3: G53CLP Constraint Logic Programming

3

ILOG OPL Studio OPL Studio

One of the modeling systems in ILOG For both mathematic programming and

constraint programming OPL (Optimization Programming Language)

was originally developed by Pascal van Hentenryck

Provide an interpreter OPL models; A script language An IDE; An API

G53CLP – Constraint Logic Programming Dr R. Qu

Page 4: G53CLP Constraint Logic Programming

4

Other CP Solvers? Gecode 1.0.1

Java interface for constraint programming Free for download Released in Nov 2006 Possible coursework next year?

http://www.gecode.org/gecodej/

G53CLP – Constraint Logic Programming Dr R. Qu

Page 5: G53CLP Constraint Logic Programming

5

Solving the 8-Queen Problem

G53CLP – Constraint Logic Programming Dr R. Qu

Page 6: G53CLP Constraint Logic Programming

G52AIP – AI Programming 6

Page 7: G53CLP Constraint Logic Programming

7

Solving The 8-Queen Problem – model 2 Variables

x1, x2, …, xn: position of queens on the chessboard Domain

{0 … n2-1}: tile index of each queen placed

ConstraintR = xi / n + 1C = xi mod n + 1Given R1, R2 and C1, C2 of two queens’ positions One queen each row/column

R1 ≠ R2; C1 ≠ C2 One queen each diagnal

R1 – R2 ≠ C1 – C2 R1 – R2 ≠ C2 – C1

G53CLP – Constraint Logic Programming Dr R. Qu

Page 8: G53CLP Constraint Logic Programming

8

ILOG OPL Studio

G53CLP – Constraint Logic Programming Dr R. Qu

Page 9: G53CLP Constraint Logic Programming

9

Solving The 8-Queen Problem – model 2

//.mod file//declaration partvar int queens[1..8] in 0..63;var int r[1..8] in 1..8;var int c[1..8] in 1..8;

// problem modelsolve {

};

R = xi / n + 1C = xi mod n + 1•R1 ≠ R2; C1 ≠ C2•R1 – R2 ≠ C1 – C2•R1 – R2 ≠ C2 – C1

•x1, x2, …, xn: position of queens on the chessboard•{0 … n2-1}: tile index of each queen placed

G53CLP – Constraint Logic Programming Dr R. Qu

Page 10: G53CLP Constraint Logic Programming

10

Solving The 8-Queen Problem – model 2

//.mod file//declaration part…

//problem modelsolve { forall(ordered i,j in 1..8) { r[i] = queens[i] / 8 + 1; c[i] = queens[i] mod 8 + 1; r[j] = queens[j] / 8 + 1; c[j] = queens[j] mod 8 + 1; … };};

R = xi / n + 1C = xi mod n + 1•R1 ≠ R2; C1 ≠ C2•R1 – R2 ≠ C1 – C2•R1 – R2 ≠ C2 – C1

G53CLP – Constraint Logic Programming Dr R. Qu

Page 11: G53CLP Constraint Logic Programming

11

Solving The 8-Queen Problem – model 2

//.mod file//declaration part…

//problem modelsolve { forall(ordered i,j in 1..8) { … r[i] <> r[j] ; c[i] <> c[j] ; r[i] - r[j] <> c[i] - c[j]; r[i] - r[j] <> c[j] - c[i]; };};

R = xi / n + 1C = xi mod n + 1•R1 ≠ R2; C1 ≠ C2•R1 – R2 ≠ C1 – C2•R1 – R2 ≠ C2 – C1

G53CLP – Constraint Logic Programming Dr R. Qu

Page 12: G53CLP Constraint Logic Programming

G52AIP – AI Programming 12

Page 13: G53CLP Constraint Logic Programming

G52AIP – AI Programming 13

Page 14: G53CLP Constraint Logic Programming

14

Solving The 8-Queen Problem – model 2

G53CLP – Constraint Logic Programming Dr R. Qu

Page 15: G53CLP Constraint Logic Programming

15

Solving The 8-Queen Problem – models 1&3 Lab sessions start next week

I: comparing the 3 models for solving the n-Queen problem

II:

G53CLP – Constraint Logic Programming Dr R. Qu

Page 16: G53CLP Constraint Logic Programming

16

Solving The 8-Queen Problem To display decision tree

Debug/Display Decision Tree

To run Execution/Run, or

To stop at a decision point Debug/Stop at Decision Point

Next solution All solutions

G53CLP – Constraint Logic Programming Dr R. Qu