97
CP2014: Teaching CP

CP2014: Teaching CP

  • Upload
    kiri

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

CP2014: Teaching CP. Context. Final Year 120 credits (1 credit approx 10 hours) 30 credit project 4 modules in semester 1 4 modules in semester 2 A module is 10 credits 1 c ompulsory module on Prof Issues Students select 4 modules from 8 in each semester - PowerPoint PPT Presentation

Citation preview

Page 1: CP2014: Teaching CP

CP2014: Teaching CP

Page 2: CP2014: Teaching CP
Page 3: CP2014: Teaching CP
Page 4: CP2014: Teaching CP
Page 5: CP2014: Teaching CP

Context

• Final Year• 120 credits (1 credit approx 10 hours)

• 30 credit project• 4 modules in semester 1 • 4 modules in semester 2

• A module is 10 credits• 1 compulsory module on Prof Issues

• Students select 4 modules from 8 in each semester• There is competition between staff for students• Students make choice after 2nd week• First lectures have to be as attractive as possible• CP(M)

• 30 lectures• 1 short assessed exercise (5%)• 1 long(ish) assessed exercise (15%)• Exam (80%)

• Students are motivated by “marks”

Page 6: CP2014: Teaching CP

How not to do it

Page 7: CP2014: Teaching CP

Course outlineLecture 1

Page 8: CP2014: Teaching CP

Variables and constraints, and how to represent themLecture 2

Page 9: CP2014: Teaching CP

Backtracking search, implementationLectures 3 to 5

Page 10: CP2014: Teaching CP

A bit on heuristicsLecture 6

Page 11: CP2014: Teaching CP

A wee bit of theory (levels of consistency etc)Lecture 7

Page 12: CP2014: Teaching CP

A tiny wee bit more theory (dual and hidden variables)Lecture 8

Page 13: CP2014: Teaching CP

Ready to write our 1st constraint programWeek 4

Page 14: CP2014: Teaching CP

Wooooosh!

Page 15: CP2014: Teaching CP

… how I do it now

Page 16: CP2014: Teaching CP

Lecture 1

Page 17: CP2014: Teaching CP

Lecture 1

Stolen: BMS, TW, JCB

Page 18: CP2014: Teaching CP

Lecture 1

Handed out on paper, given 8 minutes, discussion …

Page 19: CP2014: Teaching CP

Lecture 2

Just do it!

Page 20: CP2014: Teaching CP

How many dominos are there?Lecture 2

Page 21: CP2014: Teaching CP

How many dominos are there?

How many pairs of numbers are there of the form

0 ≤ x ≤ y ≤ 6

Lecture 2

Page 22: CP2014: Teaching CP

Lecture 2

Page 23: CP2014: Teaching CP

Compile & Run

Lecture 2

Page 24: CP2014: Teaching CP

Lecture 2

Page 25: CP2014: Teaching CP

Stolen: BMS

Lecture 2

Page 26: CP2014: Teaching CP

Lecture 2

Page 27: CP2014: Teaching CP

Compile & Run

Lecture 2

Page 28: CP2014: Teaching CP

An exam question from AF2

Lecture 2

Page 29: CP2014: Teaching CP

Lecture 2

Page 30: CP2014: Teaching CP

Compile & Run

Lecture 2

Page 31: CP2014: Teaching CP

1st observations & questions

• How do you know “How not to do it”?• Why are you using choco (jchoco I call it)?• Do you steal everything?

• do you tell the students you deal in stolen goods?• have you no sense of shame?

• You get students to use technology they don’t understand!• We would NEVER EVER do that!

• You write code in the lecture? Edit compile AND run?• what if something goes wrong? You’d look stupid, right?

• You put all of the code on the web?

Page 32: CP2014: Teaching CP

CPM!

Page 33: CP2014: Teaching CP
Page 34: CP2014: Teaching CP

search

Page 35: CP2014: Teaching CP
Page 36: CP2014: Teaching CP

Opening up the hood: part 1, search

So how does CP work?

BT: Chronological BackTracking

Thrashing!

FC: forward checking

Thrashing!

CBJ: Conflict-directed BackJumping

Thrashing!

Page 37: CP2014: Teaching CP

consistency

Page 38: CP2014: Teaching CP
Page 39: CP2014: Teaching CP

Opening up the hood: part 2, arc-consistency

So how does CP work?

Arc-consistency Definition (aka 2-consistency) Covered 1-2-3-Consistency

Algorithms AC3 AC4/6/2001 AC5

Is AC a decision procedure?

Page 40: CP2014: Teaching CP

modelling

Page 41: CP2014: Teaching CP

We modelled some problems

number partitioning

jobshop scheduling

magic square

n-queens

bin packing

knight’s tour

Ramsey number

Orthogonal Latin Squares

Crystal Maze

graph colouring

m-queens

Talent Scheduling

Crossword Puzzle

Page 42: CP2014: Teaching CP

What a

re th

e decision varia

bles?

Are there any symmetries?

Is there a variable/value ordering heuristic?

Is there another model?

We modelled some problems

How does search go?

Redundant constr

aints?

Dual or Hidden Variable encoding?

Page 43: CP2014: Teaching CP

phase transition phenomena

Page 44: CP2014: Teaching CP

Where are the hard problems?

Constrainedness? Who cares?

In optimisation, as a heuristic, in solving problems

Page 45: CP2014: Teaching CP

heuristics

Page 46: CP2014: Teaching CP

Variable and value ordering heuristics

Static, topological properties

Fail-first, and it’s realisation

Constrainedness

Dual viewpoint heuristics

Promise

Regret

Domain Specific (example JSSP slack-based, Warnsdorff)

Page 47: CP2014: Teaching CP

specialised constraints

Page 48: CP2014: Teaching CP

specialised constraints

• max• sub-tour elimination• Knight’s tour• …• the glass box

Page 49: CP2014: Teaching CP

local search

Page 50: CP2014: Teaching CP

Search againLocal search (aka neighbourhood search)

HC, SA, TS, GLS, GA, ACO, …

Why we need them

Problems in using them incompleteness, move operators, evaluation/fitness functions, tuning parameters,

Problems in using them in CP

aka meta-heuristics

Page 51: CP2014: Teaching CP

Search againLimited Discrepancy Search

lds

• motivation for LDS• when might we use it?• when should we not use it?

Page 52: CP2014: Teaching CP

change of representation

Page 53: CP2014: Teaching CP

dual and hidden variable encoding

change of representation

Page 54: CP2014: Teaching CP

Levels of consistency

Page 55: CP2014: Teaching CP

• Node Consistency (NC)• Arc-consistency (AC)• Path Consistency (PC)• Generalised arc-consistency (GAC)• Bounds consistency• Inverse Path Consistency (IPC aka PIC)• Singleton Arc-consistency (SAC)• … and others

consistency

Page 56: CP2014: Teaching CP

Mechanics of choco

Page 57: CP2014: Teaching CP

Mechanics of choco

Page 58: CP2014: Teaching CP

Mechanics of choco

Page 59: CP2014: Teaching CP

CP for a design problem

Using CP as an intelligent data base

Not solving a problem, but using CP as an “active” representation

Explanations via quickXplain

Page 60: CP2014: Teaching CP

theory

• csp <v,c,d> and it’s complexity• search (bt, fc, cbj, …)• thrashing• arc-consistency• levels of consistency• heuristics• local search & lds• dual & hidden variables• sat• phase transition phenomena & constrainedness

summary

Page 61: CP2014: Teaching CP

practice

number partitioning

jobshop scheduling

magic square

n-queens

bin packing

knight’s tour

Talent Scheduling Orthogonal Latin Squares

Crystal Maze

graph colouring

Modelling & Solving Problemssummary

Page 62: CP2014: Teaching CP

practice

• variables (enumerated/bound/setsVar) and their domains• constraints (neq, allDiff, ifOnlyIf, …)• decision variables• what propagation might take place• size of the encoding/model (how it scales with problem size)• heuristics (dynamic/static, variable/value)• size of the search/state space• how search goes (example was knight’s tour)• alternative models (dual? hidden? values as variables?)• optimisation (with maximise/minimise, seqn of decision problems)• dealing with conflicts (soft constraints & penalties)• symmetry breaking (ramsey, bin packing, …)• redundant constraints (magic square, MOLS …)• what will make problems hard to solve and what will make them easy?

Modelling & Solving Problemssummary

Page 63: CP2014: Teaching CP

Rhythm

Once we are up to speed, an ideal week goes like this

• lecture on new theory• a new problem• Model and solve

• “Performance CP”• Consider alternative models• Symmetry breaking• When do problems get hard

Page 64: CP2014: Teaching CP

Where are the really hard problems

Page 65: CP2014: Teaching CP

Where are the really hard problems

The usual stuffint x = 3;int y = 5;int z = Math.max(x,y);

Page 66: CP2014: Teaching CP

Where are the really hard problems

The usual stuffint x = 3;int y = 5;int z = Math.max(x,y);

Our stuffModel model = new CPModel();IntegerVariable x = makeIntVar(“x”,0,3);IntegerVariable y = makeIntVar(“y”,0,5);IntegerVariable z = makeIntVar(“z”,0,4);model.addConstraint(eq(z,max(x,y)));

Page 67: CP2014: Teaching CP

Where are the really hard problems

The usual stuffint x = 3;int y = 5;int z = Math.max(x,y);

Our stuffModel model = new CPModel();IntegerVariable x = makeIntVar(“x”,0,3);IntegerVariable y = makeIntVar(“y”,0,5);IntegerVariable z = makeIntVar(“z”,0,4);model.addConstraint(eq(z,max(x,y)));

Breaking the mental model of variables in a programming language

Page 68: CP2014: Teaching CP

Where are the really hard problems

The usual stuffint x = 3;int y = 5;int z = Math.max(x,y);

Our stuffModel model = new CPModel();IntegerVariable x = makeIntVar(“x”,0,3);IntegerVariable y = makeIntVar(“y”,0,5);IntegerVariable z = makeIntVar(“z”,0,4);model.addConstraint(eq(z,max(x,y)));

• Post x > 0 and propagate• Post z > 0 and propagate• Post z < 3 and propagate

Page 69: CP2014: Teaching CP

Where are the really hard problems

Almost anything to do with implication is mind blowing (or maybe I am a bad teacher)

Page 70: CP2014: Teaching CP

Where are the really hard problemsarrays

Page 71: CP2014: Teaching CP

Where are the really hard problemsarrays

Pick off the ith row: easy

Page 72: CP2014: Teaching CP

Where are the really hard problemsarrays

Pick off the diagonal: easy

Page 73: CP2014: Teaching CP

Where are the really hard problemsarrays

Pick off the ith column: hard

Page 74: CP2014: Teaching CP

Where are the really hard problemsarrays

Pick off the diagonal: hard

Page 75: CP2014: Teaching CP

Where are the really hard problems

Code comprehension

Page 76: CP2014: Teaching CP

Where are the really hard problemsCode comprehension

Given n, what does f1 return?Suggest a name for f1.

Page 77: CP2014: Teaching CP

Where are the really hard problemsCode comprehension

Given n and r, what does f2 return?Suggest a name for f2?

Page 78: CP2014: Teaching CP

Assessed exercises

Page 79: CP2014: Teaching CP

Assessed exercises

• 1st exercise is sudoku (5%)• To get them to download and use choco

Page 80: CP2014: Teaching CP
Page 81: CP2014: Teaching CP
Page 82: CP2014: Teaching CP

1D Sudoku!

Page 83: CP2014: Teaching CP
Page 84: CP2014: Teaching CP
Page 85: CP2014: Teaching CP

Read in 9 rows of 9 numbersJeez. If I knew it was this hardI never would have attempted it

Page 86: CP2014: Teaching CP
Page 87: CP2014: Teaching CP

The floggings will continue until morale

improves

Page 88: CP2014: Teaching CP

Assessed exercises

Exercise 2 (15%) has been

• Car sequencing• Talent scheduling• Meeting Scheduling• Maximum Clique

Page 89: CP2014: Teaching CP

Assessed exercises

Exercise 2 (15%) has been

• Car sequencing• Talent scheduling• Meeting Scheduling• Maximum Clique

I think that was the best

Page 90: CP2014: Teaching CP

So?

Page 91: CP2014: Teaching CP

Jump in!

Page 92: CP2014: Teaching CP

Steal

Page 93: CP2014: Teaching CP

You can’t teach it all

Page 94: CP2014: Teaching CP

The hard bits might not be where you expect them to be.

Page 95: CP2014: Teaching CP

Have fun

Page 96: CP2014: Teaching CP

… and remember,

your students are not just your students

CP(M)CP(M)

CP(M)

CP(M

)

Page 97: CP2014: Teaching CP