Решение экономических задач с помощью VBAРефераты >> Программирование и компьютеры >> Решение экономических задач с помощью VBA
2.3.6 Задание на нахождение оптимального раскроя
Составляем таблицу в которой будут приведены остатки от раскроя на заказ при различных вариантах раскроя.
Например по условию в соответствии с вариантом стандартная длина раскроя равна 28 метров,
т.е. первый вариант раскроя будет сосотавлять 0 рулон дляной 4 м, 0 рулонов длиной 6м и 4 рулона длиной 9 м, рулонов длиной 11 м. не будет, что в сумме даст 27, следовательно отходы будут составлять 1 метр. Второй вариант когда 1 рулон по 6 м и два по 11 м, в этом случае остатков не будет и т.д. Всего получается 19 вариантов раскроя.
В программе это будет выглядеть таким образом:
l = 28
a1 = 4: a2 = 6
a3 = 9: a4 = 11
r = 4
m = Application.Min(a1, a2, a3, a4)
t = Application.Floor(l / m, 1)
For i1 = 0 To t
For i2 = 0 To t
For i3 = 0 To t
For i4 = 0 To t
s = 28 - a1 * i1 - a2 * i2 - a3 * i3 - a4 * i4
If s >= 0 And s < m Then
Cells(r, 1).Value = r - 3
Cells(r, 2).Value = i1
Cells(r, 3).Value = i2
Cells(r, 4).Value = i3
Cells(r, 5).Value = i4
Cells(r, 6).Value = s
r = r + 1
End If
Next i4
Next i3
Next i2
Next i1
На листе это будет выглядеть так:
Д л и н ы р у л о н о в н а з а к а з | |||||
Варианты |
Остаток | ||||
раскройки |
4 |
6 |
9 |
11 |
от расктоя |
1 |
0 |
0 |
3 |
0 |
1 |
2 |
0 |
1 |
0 |
2 |
0 |
3 |
0 |
1 |
1 |
1 |
2 |
4 |
0 |
3 |
1 |
0 |
1 |
5 |
1 |
0 |
0 |
2 |
2 |
6 |
1 |
1 |
2 |
0 |
0 |
7 |
1 |
2 |
0 |
1 |
1 |
8 |
1 |
2 |
1 |
0 |
3 |
9 |
1 |
4 |
0 |
0 |
0 |
10 |
2 |
0 |
1 |
1 |
0 |
11 |
2 |
0 |
2 |
0 |
2 |
12 |
2 |
1 |
0 |
1 |
3 |
13 |
2 |
3 |
0 |
0 |
2 |
14 |
3 |
1 |
1 |
0 |
1 |
15 |
4 |
0 |
0 |
1 |
1 |
16 |
4 |
0 |
1 |
0 |
3 |
17 |
4 |
2 |
0 |
0 |
0 |
18 |
5 |
1 |
0 |
0 |
2 |
19 |
7 |
0 |
0 |
0 |
0 |
Пусть Xj – кол-во стандартных рулонов, разрезанных по варианту j, где j[1 19]. Ограничения налагаемые на переменные Xj связаны с требованием обеспечить изготовление заказанного кол-ва нестандартных рулонов. Ф-ция цели учитывает суммарные отходы, получаемые при выполнении заказа. Таким образом имеем следующую мат. модель:
Минимизировать:
Z=x1+2x3+x4+2x5+x7+3x8+2x11+2x12+2x13+x14+x15+3x16+