Presentation is loading. Please wait.

Presentation is loading. Please wait.

Car Sequencing Problem Assessed exercise 2 15% 26/11/2010.

Similar presentations


Presentation on theme: "Car Sequencing Problem Assessed exercise 2 15% 26/11/2010."— Presentation transcript:

1 Car Sequencing Problem Assessed exercise 2 15% 26/11/2010

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24 representing the CSP as a csp

25 Line 1: 10 cars, 5 options (sunRoof, airCon, elecWin, 2TonePaint, alloys) 6 classes (subsets of options) Line 2: Number of cars with an option allowed in a block (p i ) Line 3: Size of block, measured as cars (q i ) Line 4: class# #cars option1 (0/1) option2 (0/1) … option5 (0/1) … Line 9: class# #cars option1 (0/1) option2 (0/1) … option5 (0/1) Also called r out of s in AIJ58

26 allDiff(cars) Some thoughts/sketch Need “sliding” p/q constraint on each rowconstrained integer variables data read in (constants) Find a time/position for each car

27 allDiff(cars) Some thoughts/sketch Decision variables? Need “sliding” p/q constraint on each row Symmetries? Heuristics? Value ordering? How does search proceed? Bound v enumerated domains? Find a time/position for each car ½ baked!

28 Alternative model? Values for time slots are “classes” of cars Constraints between time slots and the 2D array of 0/1 variables representing options over time Occurrence constraints on classes Due to AIJ58 What class of car do we make in a time slot/position?

29 variablesAIJ, pages 139 to 151 c is number of classes of cars m is number of options n is number of cars to produce opt[i][j] = 1  class i requires option j (read in as input) Slots Array of constrained integer variables S[n] S[i]  {0..c-1} S[i] = j  a car of class j is in slot i Options Array of constrained 0/1 integer variables O[n][m] O[i][j] = 1  S[i] = x  opt[x][j] = 1 O[i][j] = 0  S[i] = x  opt[x][j] = 0 A car of class x is in slot i and requires option j alternatively option j produced at time i

30 variables Decision variables c is number of classes of cars m is number of options n is number of cars to produce opt[i][j] = 1  class i requires option j (read in as input) Slots Array of constrained integer variables S[n] S[i]  {0..c-1} S[i] = j  a car of class j is in slot i Options Array of constrained 0/1 integer variables O[n][m] O[i][j] = 1  S[i] = x  opt[x][j] = 1 O[i][j] = 0  S[i] = x  opt[x][j] = 0 A car of class x is in slot i and requires option j alternatively option j produced at time i

31 variables c = 6 m = 5 n = 10

32 constraints Demand constraint d[i] is demand (number of cars) for class i For all i: occurrence of i in S is d[i]

33

34

35

36

37

38 constraints Capacity, p/q, constraint p[j] is the number of cars with option j that can be produced in a block of length q[j] O[0][j] + … + O[q[j]-1][j] ≤ p[i] O[1][j] + … + O[q[j]][j] ≤ p[i]. More generally O[i][j] +…+ O[i+q[j]-1][j] ≤ p[i] 1 ≤ i ≤ n-q[j]+1 Uses constraints sum and leq Do this for all options j r outof s in AIJ58

39 constraints The link constraint (page 144) If a car of class j is being produced in time slot i and that class of car requires an option x then option x is required in time i S[i] = 2  O[i][0] = 0  O[i][1] = 1  O[i][2] = 0  O[i][3] = 0  O[i][4] = 1 Do this for all times/positions 0 ≤ i < n and all classes 0 ≤ j < c

40 If a car of class j is being produced in time slot i and that class of car requires an option x then option x is required in time i constraints The link constraint S[i]  {0,4,5}  O[i][0] = 1 S[i]  {2,3,5}  O[i][1] = 1 S[i]  {0,4}  O[i][2] = 1 S[i]  {0,1,3}  O[i][3] = 1 S[i]  {2}  O[i][4] = 1 Do this for all time slots and all options This maintains arc-consistency Turn it around by 90 degrees This gets more propagation

41 constraints The link constraint Are these the same i.e. logically and wrt propagation? S[i]  {0,4}  O[i][2] = 1 S[i] = 0  S[i] = 4  O[i][2] = 1 S[i] ≠ 1  S[i] ≠ 2  S[i] ≠ 3  O[i][2] = 1 S[i]  {0,4,5}  O[i][0] = 1 S[i]  {2,3,5}  O[i][1] = 1 S[i]  {0,4}  O[i][2] = 1 S[i]  {0,1,3}  O[i][3] = 1 S[i]  {2}  O[i][4] = 1 S[i] ≠ 0  S[i] ≠ 4  O[i][2] = 0 I wonder if this one produces most propagation

42 constraintsThe redundant constraint (page 146) Let d[i] be the demand for option i Example: d[3] = 1 + 1 + 0 + 2.1 + 0 + 0 = 4 p[3]/q[3] = 2/5  O[0][3] + O[1][3] + O[2][3] + O[3][3] + O[4][3] ≥ d[3] – 2 Another example options demand The Reasoning The demand for option 3 is 4 cars (d[3] = 4). In the last 5 slots we can make at most 2 cars with this option Consequently in the previous 5 slots we MUST make at least 2 cars

43 constraints The redundant constraint Example: d[0] = 1 + 0 + 0 + 0 + 2 + 2 = 5 p[0]/q[0] = 1/2  O[0][0] +  + O[7][0] ≥ d[0] – 1  O[0][0] +  + O[5][0] ≥ d[0] – 2  O[0][0] +  + O[3][0] ≥ d[0] – 3  O[0][0] + O[1][0] ≥ d[0] – 4 This constraint makes a BIG difference

44 heuristics Variable ordering What are the decision variables? Dynamic Variable Ordering: sdf? AIJ58 Page 146 to 150

45 This slide intentionally left blank

46 heuristics Value ordering What is value ordering in this context?

47 heuristics Value ordering Having selected a vacant slot to consider, what class of car should we place in that slot? Suggestions?

48 Software reuse Have a look at CSPCertificate Could this be used to produce a loader? How do you know your solution is correct?

49 My code

50

51 So? Encode a model for car sequencing problem using toolkit primitives Incorporate “redundant” constraint identified by PvH Use heuristics of your choice Certify your solutions Perform small empirical study

52 and … Write a short report, no more than 2 pages describing your models and how they go Email me this along with code that I can run and verify Make sure you give instructions on how to run Make sure output is verifiable (standard)

53

54

55

56

57

58

59

60

61

62

63 You must read this

64

65

66

67 And so on …. You should read PvH’s paper

68

69 Looking at both sides Interchanging variables with values - to make things all different? - a permutation?


Download ppt "Car Sequencing Problem Assessed exercise 2 15% 26/11/2010."

Similar presentations


Ads by Google