sudoku square tiling scheduling
play

Sudoku, Square Tiling / Scheduling CP Course, Lecture 10 Sudoku - PowerPoint PPT Presentation

Sudoku, Square Tiling / Scheduling CP Course, Lecture 10 Sudoku 9 6 4 8 8 5 8 9 Fill in the grid such 7 6 that every row, 8 4 7 9 every column and 9 5 every 3x3 box 7 9 6 4 contains the digits 8 7 1...9 7 7 9 9 4


  1. Sudoku, Square Tiling / Scheduling CP Course, Lecture 10

  2. Sudoku 9 6 4 8 8 5 8 9 Fill in the grid such 7 6 that every row, 8 4 7 9 every column and 9 5 every 3x3 box 7 9 6 4 contains the digits 8 7 1...9 7 7 9 9 4 8 8 7

  3. Sudoku: Model 9 6 4 8 • fd var for each cell 8 5 8 9 7 6 • for each row and 8 4 7 9 9 5 column: distinct 7 9 6 4 • for each 3x3 box: 8 7 distinct 7 7 9 9 4 8 8 7 Solves most instances without search!

  4. Square Tiling • Given: n × m board, s2 s3 s4 s5 squares defined by s1 dimension. s6 • Goal: place all squares on the Square Size board - no s1 3 s2 1 overlaps, board fully s3 1 covered. s4 1 s5 2 s6 2

  5. Naive model • For each square s , introduce fd vars for s x and s y • Express with reification that two squares s and t do not overlap: s left of t , or t left of s , or s above t , or t above • In a column with coordinate x , the sum of the sizes occupying space at col. x must be the size of the board in y -direction. (Similar for rows)

  6. Improvements • Branching: 1. Assign x -coordinates, then y -coordinates 2. Try bigger squares first 3. Place from left to right and top to bottom • Symmetry breaking?

  7. Scheduling • Tasks a (aka activities) • duration dur(a) • resource res(a) • Precedence constraints • determine order among two tasks • Resource constraints • e.g. at most one task per resource

  8. Building a Bridge

  9. Application Areas • creating time tables • planning workflow • scheduling instruction sequences in a compiler • ...

  10. Model in CP • Variable for start-time of task a • Precedence constraints: a before b • Resource constraints: a before b ∨ b before a similar to temporal relations

  11. Model in CP • Variable for start-time of task a • Precedence constraints: start(a) + dur(a) ≤ start(b) • Resource constraints: a before b ∨ b before a reification

  12. Propagate Precedence A before B A B start(A) ∈ {0,...,5} dur(A) = 2 start(B) ∈ {0,...,5} dur(B) = 2

  13. Propagate Precedence A before B A B start(A) ∈ {0,...,3} dur(A) = 2 start(B) ∈ {2,...,5} dur(B) = 2

  14. So what’s new? • We are interested in the concrete start and end times • We want to optimize (e.g. find earliest completion time) • This makes the problem hard

  15. Classes of problems I • Resource type disjunctive (at most one task at a time) cumulative (fixed capacity per resource) • Task type non-preemptive (not interruptible) preemptive elastic (stretchable)

  16. Classes of problems II • Optimization: Minimize makespan (latest end time of any task) number of late jobs (that miss their due date) ... • Give more weight to more important jobs

  17. Special case we discuss • disjunctive, non-preemptive • cumulative (briefly) Baptiste, Le Pape, Nuijten, Constraint-based Scheduling. Kluwer, 2001.

  18. Again: Model in CP • Variable for start-time of task a • Precedence constraints: start(a) + dur(a) ≤ start(b) • Resource constraints: a before b ∨ b before a reification

  19. Think global • Model employs local view: • constraints on pairs of tasks • O(n 2 ) propagators for n tasks • Global view: • order all tasks on one resource • employ smart global propagator

  20. Ordering Tasks: Serialization • Consider all tasks on one resource • Deduce their order as much as possible • Propagators: • Timetabling: look at free/used time slots • Edge-finding: which task first/last? • Not-first / not-last

  21. Special case • Consider disjunctive, non-preemptive scheduling where the duration is one for all tasks • Do you know a good propagator for serialization?

  22. Timetable propagation • Timetable: data structure that records per resource where some task definitively uses the resource • Propagate • from tasks to timetable • from timetable to tasks

  23. Example: Timetable A B start(A) ∈ {0,1} dur(A) = 2 start(B) ∈ {1,2,3} dur(B) = 2

  24. Example: Timetable A B t start(A) ∈ {0,1} dur(A) = 2 start(B) ∈ {1,2,3} dur(B) = 2

  25. Example: Timetable or A B t start(A) ∈ {0,1} dur(A) = 2 start(B) ∈ {1,2,3} dur(B) = 2

  26. Example: Timetable or A B t start(A) ∈ {0,1} dur(A) = 2 start(B) ∈ {1,2,3} dur(B) = 2

  27. Example: Timetable A B t start(A) ∈ {0,1} dur(A) = 2 start(B) ∈ {2} dur(B) = 2

  28. Example: Timetable A B t start(A) ∈ {0,1} dur(A) = 2 start(B) ∈ {2} dur(B) = 2

  29. Example: Timetable A B t start(A) ∈ {0} dur(A) = 2 start(B) ∈ {2} dur(B) = 2

  30. Example: Timetable A B t start(A) ∈ {0,1} dur(A) = 2 start(B) ∈ {2} dur(B) = 2

  31. Timetable propagation • Timetable: data structure that records per resource where some task definitively uses the resource • Propagate • from tasks to timetable • from timetable to tasks

  32. Edge Finding • Time tabling is often weaker than reification • But important idea: record when resource is used • Edge finding is a more general scheme to propagate order between tasks

  33. Edge finding: Idea • Assume a subset O of tasks and T ∈ O • constrain T to execute first • find out whether tasks in O-{T} must, can, or cannot execute first or last • symmetrically for T last • Can be done in O(n 2 ) for n tasks

  34. Example: Edge finding A B C start(A) ∈ {0,...,11} dur(A) = 6 start(B) ∈ {1,...,7} dur(B) = 4 start(C) ∈ {1,...,8} dur(C) = 3

  35. Example: Edge finding A {B,C} consider {B,C} A cannot be before {B,C} start(A) ∈ {0,...,11} dur(A) = 6 start(B) ∈ {1,...,7} dur(B) = 4 start(C) ∈ {1,...,8} dur(C) = 3

  36. Example: Edge finding A {B,C} consider {B,C} A cannot be before {B,C} start(A) ∈ {8,...,11} dur(A) = 6 start(B) ∈ {1,...,7} dur(B) = 4 start(C) ∈ {1,...,8} dur(C) = 3

  37. Example: Edge finding A B timetable and reification do C not propagate anything! start(A) ∈ {8,...,11} dur(A) = 6 start(B) ∈ {1,...,7} dur(B) = 4 start(C) ∈ {1,...,8} dur(C) = 3

  38. Branching • General idea of any heuristic: determine critical variables early! • A critical variable is one that makes a big difference if determined

  39. Branching • Heuristic: establish order among tasks • which resource to choose • guess first task on resource • After ordering: assign start times • solution exists => no branching required • after assigning, propagate precedence constraints

  40. Branching a before b b before a

  41. Branching a first a not first

  42. Branching: Slack • How to choose a ? • Good heuristic: minimum slack A B slack

  43. Example: Instruction Scheduling • Optimize machine code • Goal: minimum length instruction schedule Best paper CP 2001 (Peter van Beek and Kent Wilken)

  44. Example: Instruction Scheduling instructions R1 � a R2 � b 3 R1 � R1+R2 R3 � c 1 3 latency R1 � R1+R3

  45. Example: Instruction Scheduling instructions R1 � a R2 � b 3 Find issue time s(i) R1 � R1+R2 R3 � c such that 1 3 1. i ≠ j ⇒ s(i) ≠ s(j) latency 2. s(i) + l(i,j) ≤ s(j) R1 � R1+R3 Minimize max s(i)

  46. Example: Instruction Scheduling • Constraints: all s(i) must be distinct • Precedence constraints for latency • Plus special case of edge finding

  47. Results • Built into gcc • SPEC95 FP • Large basic blocks (up to 1000 instructions) • Optimally solved • Far better than ILP approach

  48. Cumulative Scheduling • Each resource R has a capacity cap(R) • Each task T on R uses amount use(R) • Tasks can overlap but never exceed capacity

  49. Cumulative: Disjunctive Propagation • For tasks A and B on resource R : use(A) + use(B) ≤ cap(R) or start(A) + dur(A) ≤ start(B) or start(B) + dur(B) ≤ start(A)

  50. Cumulative • Techniques from disjunctive scheduling carry over to cumulative scheduling • Generalized timetabling, edge-finding, not- first/not-last

  51. Geometric Interpretation • Task is rectangle dimension dur(T) × use(T) places at x-coordinate start(T) • Resources are rectangles • enclose task-rectangles • rectangles never exceed y -cordinates

  52. Geometric Interpretation R 1 usage R 2 duration

  53. Geometric Interpretation E F R 1 D G usage C We’ve seen R 2 A something like B this before... duration

  54. Summary • Scheduling: hard, real life problems • Model similar to temporal relations, but: interested in actual solution + optimization • Global constraints: timetable, edge-finding, not-first/not-last

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend