
- •Нахождение оптимального плана обработки деталей на двух станках курсовая работа
- •Содержание
- •Введение
- •1.Постановка задачи
- •2.Описание процесса построения математической модели задачи
- •3.Обоснование выбора метода реализации модели
- •4.Разработка алгоритма решения задачи
- •5.Программное обеспечение
- •6.Инструкция пользователю по работе с программой
- •Литература
- •Приложение
2.Описание процесса построения математической модели задачи
Обозначим через F общее время обработки всех деталей на всех станках, которое определяется от начала обработки первой детали на первом станке до момента окончания обработки последней детали на втором станке.
Фактически время обработки всех деталей на всех станках определяется моментом окончания обработки последней детали на станке В. Станок В может находиться в двух состояниях: работать или простаивать. Время работы станка В, которое затрачивается непосредственно на обработку всех деталей равно
n n
∑вj, а его простой составит ∑xj . Следовательно, общее время обработки всех
j=1 j=1
деталей на всех станках определяется по формуле:
n n
F=∑вj + ∑ xj
j=1 j=1
Первое слагаемое в формуле является величиной постоянной, поэтому минимизация общего времени сводится к минимизации простоя.
n
F=∑ xj min
j=1
Рассмотрим влияние времени простоя на величину Т. Согласно условию задачи просто Х1=А1 всегда будет иметь место. Его можно уменьшить только за счет изменения очередности обработки деталей, поставив в первую очередь деталь с минимальным временем обработки на станке , простой определяется по формуле:
Х2=А1+А2-В1-Х1, если А1+А2 > Х1+В1
3.Обоснование выбора метода реализации модели
Рассмотрим задачу последовательной обработки на двух машинах N различных деталей, если известно время Ai и Bi обработки i-й детали на соответствующих машинах. Очевидно, что первая машина будет загружена полностью, но вторая может периодически оказываться в состоянии простоя. Попытаемся найти порядок обработки, минимизирующий время простоя второй машины и тем самым сокращающий общее время обработки деталей.
Если обозначить через Xi - время простоя в ожидании i-й детали, то:
A1
X1 + X2 = max(A1 + A2 - B1, A1)
X1 + X2 + X3 = max(A1 + A2 +A3 - B1 - B2, A1 + A2 - B1, A1)
∑Xi = max(∑Ai - ∑Bi)
Если обозначить через F(t, Ak, Bk/k=1..N) - суммарное время обработки N деталей при условии, что вторая машина включается с задержкой t и используется оптимальный порядок обработки, то c учетом принципа оптимальности (независимо от выбора начальной детали порядок выбора последующих должен быть оптимальным) имеем:
F(t, Ak, Bk/k = 1..N) = min(Ai + F(Bi + max(t-Ai,0),Ak,Bk=1..N,k≠i))
Если после i-й детали при оптимальном порядке обрабатывается j-я, то:
F(t, Ak, Bk/k=1..N) = Ai + Aj + F(tij, Ak, Bk/k=1..N; k≠i,j)
где
tij = Bi + max[Bj + max(t-Aj,0) - Aj,0] = Bi + Bj - Ai - Aj + max[t, max(t,max(Aj - Ai - Bj,Aj))]
Если max(Ai + Aj - Bi,Ai) < max(Aj + Ai - Bj, Aj), то сначала разумнее обрабатывать j-ю деталь.
Можно показать, что указанное условие необходимости перестановки эквивалентно условию:
min(Aj, Bi) < min(Ai, Bj)
Соответственно ищем среди всех значений Ai и Bi наименьшее. Если найденное значение совпадает с некоторым Ai, то i-ю деталь ставим на обработку первой; если оно совпадает с некоторым Bi, то последней. Эту процедуру повторяем для всех остальных деталей.
Пример. Пусть информация о времени обработки задана таблицей:
А |
В |
15 |
23 |
14 |
18 |
12 |
10 |
20 |
17 |
15 |
8 |
5 |
40 |
9 |
16 |
16 |
6 |
30 |
20 |
8 |
12 |
Шаг № 1.
Минимальное из значений соответствует A6: 6-ая деталь обрабатывается первой.
5 |
40 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
Шаг № 2.
Минимальное из значений равно 6 и соответствует B8: 8-ая деталь обрабатывается последней.
5 |
40 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
16 |
6 |
Шаг № 3.
Минимальное из значений соответствует A10: 10-ая деталь обрабатывается первой.
5 |
40 |
8 |
12 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
16 |
6 |
Шаг № 4.
Минимальное из значений равно 8 и соответствует B5: 5-ая деталь обрабатывается последней.
5 |
40 |
8 |
12 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
8 |
16 |
6 |
Шаг № 5.
Минимальное из значений соответствует A7: 7-ая деталь обрабатывается первой.
5 |
40 |
8 |
12 |
9 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
8 |
16 |
6 |
Шаг № 6.
Минимальное из значений равно 10 и соответствует B3: 3-ая деталь обрабатывается последней.
5 |
40 |
8 |
12 |
9 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
12 |
10 |
15 |
8 |
16 |
6 |
Шаг № 7.
Минимальное из значений соответствует A2: 2-ая деталь обрабатывается первой.
5 |
40 |
8 |
12 |
9 |
16 |
14 |
18 |
- |
- |
- |
- |
- |
- |
12 |
10 |
15 |
8 |
16 |
6 |
Шаг № 8.
Минимальное из значений соответствует A1: 1-ая деталь обрабатывается первой.
5 |
40 |
8 |
12 |
9 |
16 |
14 |
18 |
15 |
23 |
- |
- |
- |
- |
12 |
10 |
15 |
8 |
16 |
6 |
Шаг № 9.
Минимальное из значений равно 17 и соответствует B4: 4-ая деталь обрабатывается последней.
5 |
40 |
8 |
12 |
9 |
16 |
14 |
18 |
15 |
23 |
- |
- |
20 |
17 |
12 |
10 |
15 |
8 |
16 |
6 |
Шаг № 10.
Минимальное из значений равно 20 и соответствует B9: 9-ая деталь обрабатывается последней.
5 |
40 |
8 |
12 |
9 |
16 |
14 |
18 |
15 |
23 |
30 |
20 |
20 |
17 |
12 |
10 |
15 |
8 |
16 |
6 |
В итоге упорядоченная информация принимает вид:
5 |
40 |
8 |
12 |
9 |
16 |
14 |
18 |
15 |
23 |
30 |
20 |
20 |
17 |
12 |
10 |
15 |
8 |
16 |
6 |
Время простоя при оптимальной перестановке равно:
max(5 , 5 + 8 - 40 , 5 + 8 + 9 - 40 - 12 , 5 + 8 + 9 + 14 - 40 - 12 - 16 , 5 + 8 + 9 + 14 + 15 - 40 - 12 - 16 - 18 , 5 + 8 + 9 + 14 + 15 + 30 - 40 - 12 - 16 - 18 - 23 , 5 + 8 + 9 + 14 + 15 + 30 + 20 - 40 - 12 - 16 - 18 - 23 - 20 , 5 + 8 + 9 + 14 + 15 + 30 + 20 + 12 - 40 - 12 - 16 - 18 - 23 - 20 - 17 , 5 + 8 + 9 + 14 + 15 + 30 + 20 + 12 + 15 - 40 - 12 - 16 - 18 - 23 - 20 - 17 - 10 , 5 + 8 + 9 + 14 + 15 + 30 + 20 + 12 + 15 + 16 - 40 - 12 - 16 - 18 - 23 - 20 - 17 - 10 - 8 ) = max(5, -27, -30, -32, -35, -28, -28, -33, -28, -20) = 5