Professional Documents
Culture Documents
January 25 2020
1 Problem Introduction
The question is about glass coating. For a given glass, we need several different layers pf coating
and each with a specific type metal provided by a specific type of cathode. There are several
products and each of them would require a different set of layering with different amount of
metal. There are a list of different types of cathode for coating, with finite number of each type
of cathode available. Each type of cathode is corresponded to a specific metal with a finite
volume of this specific cathode. Our model is to seek for an arrangement of cathodes with
a specific order so that all the products are coated accordingly with a minimized number of
cathodes used.
2 Model
The following sections define the model we built to solve the problem.
2.1 Sets
2.2 Parameters
1
• RequiredV olumep,l = The specific volume amount for layer l of product p.
• Slots = Potential slots to schedule a cathode, equals to total number of available cathodes.
• V olumeOf Cathodec = The amount of max available volume of the one cathode of type
c.
2.3 Variables
1,
if cathode c is used at slot s.
• xc,s =
0,
else
1,
if cathode at slot s is used for layer l of product p.
• yp,l,s =
0,
else
2.4 Objective
X X
M in. xc,s
c∈Cathodes,c6=0 max{Slots}
2
2.5 Constraints
• We need exactly one cathode for each slot including the zero one.
X
xc,s = 1 ∀s ∈ Slots
c∈Cathodes
X
xc,s ≤ AvailableN umc ∀c ∈ Cathodes
s∈Slots
X
yp,l,s + ≤1 ∀p ∈ P roducts, ∀l ∈ Layers, ∀s ∈ Slots
c∈Cathodes,M etalOf Cathodec 6=M etalp,l
X
V olumep,l,s = RequireV olumep,l ∀p ∈ P roducts, ∀l ∈ Layers
s
• This gives the order of coating the layers and other layers cannot proceed if the previous
one is not finished.
yp,l1 ,s1 +yp,l2 ,s2 ≤ 1 given l1 < l2 ands1 < s2 ∀p ∈ P roducts, ∀l1 , l2 ∈ Layers, ∀s1 , s2 ∈ Slots
• Volume sprayed cannot exceed the total metal owned by the cathode
X X
V olumeOf Cathodec · xc,s ≥ V olumep,l,s ∀s ∈ Slots
c,c6=0 (p,l)∈(P roducts,Layers)
3
• After finishing all works, all remaining slots should have cathode 0 (doing nothing).
3 Solutions
Given the data for some extra problems, our model is able to calculate the solutions out and
the following is some solutions for these problems.
3.1 P1
3 26 5 2000 1000
7 26 5 2000 2000
8 5 1 4000 300
9 16 3 3500 2400
11 5 1 4000 2000
12 5 1 4000 4000
optimal value = 12 Time used = 3600 seconds. This result seems to be reasonably good.
3.2 P2
4
1 2 1 500 500
2 9 4 500 200
3 3 1 1000 1000
4 10 4 1000 1000
5 4 2 1000 1000
6 8 3 1000 1000
7 3 1 1000 1000
8 12 5 750 750
9 4 2 1000 500
10 10 4 1000 1000
11 8 3 1000 1000
12 3 1 1000 1000
13 3 1 1000 1000
14 10 4 1000 1000
15 8 3 1000 1000
16 7 3 500 400
17 9 4 500 500
18 4 2 1000 1000
19 10 4 1000 1000
20 10 4 1000 900
21 4 2 1000 1000
22 8 3 1000 1000
23 3 1 1000 1000
24 4 2 1000 1000
25 10 4 1000 1000
26 9 4 500 400
27 10 4 1000 1000
28 12 5 750 750
29 4 2 1000 500
5
30 3 1 1000 1000
31 10 4 1000 1000
optimal value = 31 Time used = 3600 seconds. This result seems to be OK, though I can’t tell
if this is the globally optimal solution, but it looks each line has not many waste and it should
be close to globally optimal solution.
3.3 P3
1 8 3 1000 1000
2 3 1 1000 1000
3 3 1 1000 1000
4 1 1 300 100
5 8 3 1000 1000
6 11 5 500 500
7 10 4 1000 600
8 8 3 1000 1000
9 7 3 500 300
10 4 2 1000 1000
11 10 4 1000 900
12 4 2 1000 1000
13 10 4 1000 1000
14 11 5 500 500
15 8 3 1000 700
16 4 2 1000 1000
17 4 2 1000 1000
18 4 2 1000 1000
19 9 4 500 400
6
20 3 1 1000 1000
21 10 4 1000 1000
22 10 4 1000 1000
23 10 4 1000 1000
24 8 3 1000 1000
25 3 1 1000 1000
26 10 4 1000 1000
27 8 3 1000 1000
28 11 5 500 500
29 4 2 1000 500
30 3 1 1000 1000
31 12 5 750 750
32 12 5 750 750
33 4 2 500 500
34 3 1 1000 1000
35 10 4 1000 1000
optimal value=35 Time used = 3600 seconds. This result seems to be OK, though I can’t tell
if this is the globally optimal solution, but it looks each line has not many waste and it should
be close to globally optimal solution.
3.4 P4
1 10 4 1000 500
2 10 4 1000 1000
3 8 3 1000 1000
4 12 5 750 750
5 3 1 1000 1000
7
6 3 1 1000 600
7 3 1 1000 500
9 8 3 1000 800
10 10 4 1000 1000
11 8 3 1000 500
12 3 1 1000 1000
13 3 1 1000 1000
14 10 4 1000 1000
15 4 2 1000 1000
16 10 4 1000 1000
17 8 3 4000 700
18 4 2 1000 1000
21 4 2 1000 1000
22 10 4 1000 1000
23 10 4 1000 1000
24 10 4 1000 1000
25 8 3 1000 1000
26 12 5 750 750
27 4 2 500 500
28 3 1 1000 1000
29 3 1 1000 1000
30 10 4 1000 500
32 3 1 1000 1000
33 3 1 1000 1000
34 10 4 1000 900
8
optimal value = 29 Time used = 3600 seconds. This result seems to be OK, though I can’t tell
if this is the globally optimal solution, but it looks each line has not many waste and it should
be close to globally optimal solution.
3.5 P5
1 3 1 1000 1000
2 3 1 1000 000
3 9 4 500 500
5 10 4 1000 1000
6 4 2 1000 1000
7 9 4 500 400
8 8 3 1000 1000
9 8 3 1000 1000
11 4 2 1000 1000
12 10 4 1000 1000
13 10 4 1000 1000
14 10 4 1000 1000
16 8 3 1000 1000
17 12 5 750 750
18 4 2 1000 1000
19 11 5 500 250
20 3 1 1000 1000
21 4 2 1000 1000
22 10 4 1000 1000
9
23 9 4 500 400
24 12 5 1000 750
25 3 1 1000 1000
26 4 2 1000 500
27 7 3 500 400
29 3 1 1000 1000
30 3 1 1000 1000
31 3 1 1000 1000
32 8 3 1000 1000
33 10 4 1000 1000
34 8 3 1000 1000
35 8 3 1000 1000
36 2 1 500 500
37 12 5 750 750
38 11 5 500 500
39 12 5 750 750
40 4 2 1000 1000
41 4 2 1000 1000
42 2 1 500 500
43 10 4 1000 1000
44 3 1 1000 1000
optimal value=45 Time used = 3600 seconds. This result seems to be OK, though I can’t tell
if this is the globally optimal solution, but it looks each line has not many waste and it should
be close to globally optimal solution.
10
3.6 P6
Can not find a solution within a time limit of 7200 seconds which is strange. The model has
uninitialized value by the time is up.
3.7 P7
1 1 1 300 300
2 9 4 500 500
3 3 1 1000 1000
4 8 3 1000 1000
5 8 3 1000 1000
6 8 3 1000 1000
7 10 4 1000 1000
8 4 2 1000 1000
9 3 1 1000 1000
10 3 1 1000 1000
12 8 3 1000 700
15 12 5 750 750
16 8 3 1000 1000
17 11 5 500 250
18 4 2 1000 1000
19 12 5 750 750
20 4 2 1000 1000
21 10 4 1000 1000
23 4 2 1000 1000
11
24 3 1 1000 1000
25 10 4 1000 1000
26 3 1 1000 1000
27 4 2 1000 500
28 4 2 1000 1000
29 10 4 1000 1000
30 8 3 1000 1000
31 10 4 1000 1000
32 10 4 1000 1000
33 10 4 500 800
optimal value=33 Time used = 3600 seconds. This result seems to be OK, though I can’t tell
if this is the globally optimal solution, but it looks each line has not many waste and it should
be close to globally optimal solution.
3.8 P8
3 1 1 300 300
5 10 4 1000 1000
7 8 3 1000 1000
8 8 3 1000 1000
10 9 4 1000 500
11 8 3 1000 1000
12
12 8 3 1000 1000
13 4 2 1000 1000
14 8 3 1000 1000
15 11 5 500 250
16 10 4 1000 1000
17 12 5 750 750
18 4 2 1000 500
19 4 2 1000 1000
20 10 4 1000 1000
21 10 4 1000 1000
22 12 5 750 750
26 10 4 1000 1000
27 8 3 1000 1000
29 4 2 1000 1000
30 4 2 1000 1000
31 10 4 1000 1000
33 3 1 1000 1000
34 3 1 1000 1000
35 3 1 1000 1000
36 3 1 1000 1000
37 7 3 500 500
38 12 5 750 750
13
optimal value=38 Time used = 3600 seconds. This result seems to be OK, though I can’t tell
if this is the globally optimal solution, but it looks each line has not many waste and it should
be close to globally optimal solution.
3.9 P20
1 6 1 4000 300
11 18 4 7500 1000
13 26 5 2000 750
14 16 3 3500 700
16 6 1 4000 4000
18 26 5 2000 2000
19 16 3 3500 1300
20 7 2 4000 1000
21 18 4 7500 1000
22 16 3 3500 700
23 7 2 4000 1000
14
24 18 4 7500 2400
optimal value = 24 Time used = 3600 seconds. This result seems to be OK, though I can’t tell
if this is the globally optimal solution. It looks like there are multiple lines only coating for one
product, making me suspect this model can still be improved.
15