Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Optimizatsia_inzhenernykh_resheniy.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.27 Mб
Скачать

Работа №8. Задачи упорядочевания (алгоритм джонса)

Задачи упорядочения в общем случае представляют собой задачи выбора порядка обслуживания, оптимизирующего какой-либо существенный показатель качества функционирования системы. К задачам упорядочения относятся, например, задачи выбора дисциплины обслуживания в системе массового обслуживания, задачи составления оптимальных расписаний и т.д.

В качестве примера простейшей задачи упорядочения рассмотрим так называемую задачу Беллмана-Джонсона n×2.

Пусть на двух станках (А и В) необходимо обработать n разных деталей с номерами. Пусть даны нормы времени aiи biобработки детали i на станкахА и В соответственно и пусть задано, что маршрут обработки для всех деталей жесткий: c начало деталь обрабатывается на станке А, затем на станке В. При этом:

1) для каждой детали обработка на станкеВ может начинаться не раньше, чем окончится ее обработка на станке А;

2) на каждом станке одновременно может обрабатываться не более одной детали;

3) начавшаяся операция не прерывается до полного ее завершения.

Пусть конкретные значения величин aiи biдля случая n = 5 следующие (табл.8.1).

Будем запускать детали в производство в порядке их номеров и определим при помощи линейных диаграмм (графика Ганта) общее время Т полной обработки всех деталей (рис.8.1).

Таблица 8.1

i

ai

bi

1

4

1

2

30

4

3

6

30

4

4

5

5

2

3

Рис.8.1 График Ганта обработки пяти деталей на двух станках

Как видно из графика, пока станок A будет обрабатывать первую деталь, станок B будет простаивать, причем величина простоя x1 = a1 = 4 . Так как a1 + a2>x1 + b1, то и во время обработки второй детали на станке Астанок В не будет загружен полностью. Время простоя x2 = a1 + a2x1b1 = 4 + 30 - 4 – 1 = 29. Так как a1 + а2 + а3>x1 + b1 + x2 + b2, то будет иметь место еще один простой станка В, причем x3 = a1 +a2 +a3x1b1x2b2 = 4 + 30 + 6 - 4 – 1 – 29 – 4 = 2. Так как a1 + а2 + а3 + а4<x1 + b1 + x2 + b2 + x3 + b3, то очередного возможного простоя станка В не будет, т.е. x4 = 0. Аналогично получаем, что и x5 = 0. Тогда общее время простоев станка В будет равно X = x1 + x2 + x3 + x4 + x5 = 4 + 29 + 2 + 0 + 0 = 35, а общее время полной обработки всех деталей T = TB + X = b1 + b2 + b3 + b4 + b5 + X = 1 + 4 + 30 + 5 + 3 + 35 = 43 + 35 + = 78.

Нетрудно заметить, что величина простоев X (и, следовательно, общее время Т) будет зависеть от последовательности, в которой детали обрабатываются. Например, если мы вместо последовательности 1-2-3-4-5 воспользуемся обратной последовательностью 5-4-3-2-1, то получим x1 = 2, x2 = 1, x3 = 1, x4 = x5 = 0, откуда будет следовать, что X = 4 и T = 43 + 4 = 47. Как видим, получили существенный выигрыш: величина простоев станка В уменьшилась чуть ли не в 9 раз, а общее время обработки чуть ли не на 40 %.