Presentation is loading. Please wait.

Presentation is loading. Please wait.

G53CLP Constraint Logic Programming

Similar presentations


Presentation on theme: "G53CLP Constraint Logic Programming"— Presentation transcript:

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

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 G53CLP – Constraint Logic Programming Dr R. Qu

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

4 Other CP Solvers? Gecode 1.0.1
Java interface for constraint programming Free for download Released in Nov 2006 Possible coursework next year? G53CLP – Constraint Logic Programming Dr R. Qu

5 Solving the 8-Queen Problem
G53CLP – Constraint Logic Programming Dr R. Qu

6 G52AIP – AI Programming A OPL Studio IDE screenshot
Project: model + problem input data Source code editor Debug information Important: Solver, Optimisation, Solutions G52AIP – AI 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 Constraint R = xi / n + 1 C = xi mod n + 1 Given 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

8 ILOG OPL Studio G53CLP – Constraint Logic Programming Dr R. Qu

9 Solving The 8-Queen Problem – model 2
//.mod file //declaration part var int queens[1..8] in 0..63; var int r[1..8] in 1..8; var int c[1..8] in 1..8; // problem model solve { }; x1, x2, …, xn: position of queens on the chessboard {0 … n2-1}: tile index of each queen placed R = xi / n + 1 C = xi mod n + 1 R1 ≠ R2; C1 ≠ C2 R1 – R2 ≠ C1 – C2 R1 – R2 ≠ C2 – C1 G53CLP – Constraint Logic Programming Dr R. Qu

10 Solving The 8-Queen Problem – model 2
//.mod file //declaration part //problem model solve { 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 + 1 C = xi mod n + 1 R1 ≠ R2; C1 ≠ C2 R1 – R2 ≠ C1 – C2 R1 – R2 ≠ C2 – C1 G53CLP – Constraint Logic Programming Dr R. Qu

11 Solving The 8-Queen Problem – model 2
//.mod file //declaration part //problem model solve { 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 + 1 C = xi mod n + 1 R1 ≠ R2; C1 ≠ C2 R1 – R2 ≠ C1 – C2 R1 – R2 ≠ C2 – C1 G53CLP – Constraint Logic Programming Dr R. Qu

12 G52AIP – AI Programming

13 G52AIP – AI Programming

14 Solving The 8-Queen Problem – model 2
G53CLP – Constraint Logic Programming Dr R. Qu

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

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


Download ppt "G53CLP Constraint Logic Programming"

Similar presentations


Ads by Google