Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Компьютерное моделирование технико-экономических процессов. Типовые модели объектов и систем управления. Учебное пособие
.pdf
времени перебора вариантов1. Ясно, что определение оптимального варианта
путем полного перебора невозможно для сколько-нибудь значительных практических задач, и необходим систематический, направленный поиск.
Рассмотрим один из методов направленного поиска метод ветвей и границ в применении к задаче Джонсона при дополнительном предположении,
что порядок обработки деталей на первом станке сохраняется и на остальных.
Это предположение упрощает решение (и несколько снижает его ценность), но,
учитывая, что полное число вариантов все равно остается очень большим (а
именно m!), далеко не ликвидирует вычислительные проблемы.
Если порядок обработки деталей одинаков на всех станках, то множество
вариантов расписания совпадает с множеством перестановок номеров деталей.
Обозначим это множество через M и разобьем его на m подмножеств M1, M2, ...,
Mm таких, что в подмножество Mi1 входят все варианты, для которых первой
идет деталь с номером i1 (i11, 2, ..., m), а остальные обрабатываются в произвольном порядке. Число вариантов в каждом из подмножеств Mi1 составляет (m
– 1)!. Будем говорить, что подмножества Mi1 образуют первый уровень разбиения.
Каждое из подмножеств Mi1 вновь подвергнем разбиению на подмножества 2-го уровня M
, содержащие варианты, для которых первой идет деталь с
i1,i2
номером i1, второй с номером i2 (i21, 2, ..., m; i2 i1), а остальные в любой последовательности. Число подмножеств второго уровня, порожденных
каждым из подмножеств первого уровня, равно (m –1), их общее количество
m(m – 1), а число вариантов, содержащихся в каждом из них, равно (m – 2)!.
Продолжая разбиение, получим подмножества k-го уровня M
i1,i2,...,ik
, содержащие варианты с фиксированной последовательностью обработки первых k
деталей при произвольном порядке следования остальных. Например, М
2,3,7
подмножество вариантов, в которых первой следует деталь 2, второй деталь 3,
третьей деталь 7, а остальные как угодно (здесь k
3).
На уровне (m – 1) окажутся подмножества, для которых фиксирован порядок обработки первых (m – 1) деталей, а значит и вариант расписания в целом, поскольку номер последней детали при этом определяется однозначно.
Изложенная схема хорошо иллюстрируется «деревом» вариантов, показанным на рис. 5.7 как бы «корнем» вверх. Его «стволом» является множество
М, самыми крупными «ветвями» подмножества Мi1, более мелкими под-
множества M
и т. д. вплоть до «листьев» подмножеств, содержащих только
i1,i2
один вариант расписания.
1
Оценим время, необходимое ЭВМ для перебора всех вариантов расписаний обра-
ботки 10-ти деталей на 4-х станках (m = 10, n = 4). Известно, что 10! > 3,6 . 106, а значит,
(10!)4 > 1,6 . 1026. Если на анализ одного варианта ЭВМ затрачивает только 10
деле больше), время, затрачиваемое на все варианты, составит 1,6 .1020 с или более 5 . 1012 лет.
По современным представлениям, возраст нашей Вселенной не превосходит 2 . 1010 лет.
-6
с (на самом
141

1
M
1
i
M
m
M
1,1
i
M
1, 2
i i
1, 1
i m
m – 1
1,..., ( 2 )
i i m
1,..., ( 2 ),
i i m im
1,..., ( 2 ), ( 1)
M
i i m i m
M
Уровни
1
M
M
2
M
m – 2
M
Рис. 5.7. «Дерево» вариантов
Предположим, что для каждого подмножества M
i1,i2,...,ik
известна минимальная длительность расписания, соответствующая какому-то варианту, входящему в это подмножество. Обозначим эту длительность T
i1,i2,...,ik
и назовем
границей подмножества. Границами подмножеств уровня (m – 1), включающих
в себя отдельные варианты, являются сами длительности расписаний для вариантов. Задача поиска оптимального варианта становится после этого очень простой.
Среди подмножеств первого уровня выделим то, для которого Ti1 (i11,
2, ..., m) принимает наименьшее значение. Для этого требуется сравнить между
собой только m чисел. Далее рассмотрим множества второго уровня, порождаемые выделенным множеством первого уровня, и снова найдем среди них то, для
которого длительность расписания минимальна. Это потребует сравнения (m –
1) чисел. Продолжая эту процедуру, дойдем до одного из множеств уровня (m –
1), содержащего всего два варианта. Один из них и будет оптимальным.
Такая схема поиска привлекательна, но, к сожалению, не облегчает решения, поскольку определение границ подмножеств все равно потребовало бы
полного перебора вариантов. Однако часто удается найти числа V
i1,i2,...,ik
, назы-
ваемые оценками границ, заведомо их не превосходящие:
142
V
i1,i2,...,ik
T
i1,i2,...,ik
. (5.23)
Кроме того, оценки обладают двумя свойствами.

1. Оценка некоторого подмножества не больше, чем оценки порождаемых
,
V V T T
им подмножеств следующего уровня:
V
i1,i2,...,ik
V
i1,i2,...,ik,i(k+1)
. (5.24)
2. Оценки для подмножеств уровня (m – 1) совпадают с их границами:
V
i1,i2,...,i(m-1)
T
i1,i2,...,i(m-1)
. (5.25)
Второе свойство обеспечить нетрудно, поскольку подмножества уровня
(m – 1) содержат отдельные варианты, для которых можно непосредственно
рассчитать длительности расписаний, а значит, как отмечалось выше, и границы. Вопрос о том, как обеспечить первое свойство и как вообще построить
оценки, обсудим несколько позже.
А пока рассмотрим схему использования оценок для поиска оптимального
варианта. Схема предусматривает два чередующихся этапа анализа: этап 1
достижение так называемого рекорда, этап 2 проверка рекорда.
На этапе 1 реализуется схема поиска, изложенная выше, только сравнение
подмножеств производится не по границам, а по их оценкам. В результате выделяется вариант, граница которого и объявляется рекордом Rec. Он не обязательно является оптимальным (рекорд «не абсолютный»), поскольку при
каждом сравнении из двух подмножеств одного уровня не обязательно выбирается наилучшее. В самом деле, возможна цепочка неравенств
(5.26)
из которой следует, что множество M предпочтительнее M с точки зрения
оценок, а на самом деле лучший вариант содержится в M. При этом соблюдается и свойство (5.23) (обозначения штрихами приняты здесь для краткости).
Только из подмножеств самого нижнего уровня (m – 1) действительно выбирается наилучшее в силу свойства (5.25). При этом значение рекорда совпадает с
подлинной длительностью расписания для выделенного на данном уровне варианта.
Таким образом, в процессе сравнения выделяются лишь «подозрительные
на оптимальность» подмножества, а достигнутый рекорд нуждается в проверке,
что и предусмотрено вторым этапом.
На этапе 2 осуществляется сравнение рекорда Rec с оценками подмножеств уровня (m – 2), перед которыми было отдано предпочтение подмножеству
того же уровня, содержащему рекорд. Если выясняется, что оценок, меньших
рекорда, нет, то соответствующие подмножества более не рассматриваются, а
проверка осуществляется на уровне (m – 3) и т. д.
При обнаружении на каком-либо уровне подмножества, для которого
оценка меньше рекорда, это подмножество становится «подозрительным на оп-
143

тимальность» и, начиная с него, осуществляется поиск возможного нового ре-
корда по алгоритму этапа 1.
Рекорд, для которого проверка не обнаружила ни одной меньшей оценки
вплоть до уровня 1, считается «абсолютным», а соответствующий вариант – оптимальным. Справедливость этого суждения следует из свойств оценок.
Действительно, пусть Rec V
, i11, 2, ..., m. Последовательно применяя
i1
свойство (5.24) к оценкам подмножеств уровней 2, 3, ..., m – 1, найдем
Rec V
i1,i2, ..., i (m-1)
,
а на основании (5.25)
Rec T
i1,i2, ..., i (m-1)
для всех возможных значений индексов i1, i2, ..., i(m – 1), т. е. для всех вариантов расписания. Иначе говоря, длительность расписания (граница) для найденного варианта не превосходит границ других вариантов, что и означает его
оптимальность.
На рис. 5.8 представлен пример схемы поиска для m4. Действия на этапе 1 обозначены сплошными, а на этапе 2 – штриховыми стрелками. В прямоугольниках указаны обозначения подмножеств и оценки их границ.
Вначале поиск осуществляется согласно этапу 1: сравниваются оценки
для подмножеств 1-го уровня и выделяется М2, оценка границы которого V
10
2
минимальна. Затем среди подмножеств 2-го уровня, порождаемых М2, выделяется М
жеств М
с минимальной оценкой V
2,1
2,1,3
и М
и определяется рекорд
2,1,4
10. Далее сравниваются границы мно-
21
Rec Т
2,1,4
12.
Теперь происходит переход к этапу 2: величина Rec сравнивается с оценками подмножеств М
2,3
и М
. Обнаруживается
2,4
V
< Rec.
2,4
144

M
12
V
10
V
12
V
13
V
2,1
10
2,3
13
2,4
11
13
12
12
11
Уровни
1
2
3
T
M
2,1,3
2,1,3
V
M
M
2,1
M
M
2
2,3
1
M
M
3
2,4
M
4
T
M
2,1,4
V
2,1,4
T
M
2,4 ,3
2,4 ,3
V
T
M
2,4,1
2,4,1
Рис. 5.8. Пример схемы поиска
Это значит, что подмножество М
«подозрительно на оптимальность».
2,4
Начиная с этого подмножества, снова вступает в действие этап 1, в результате
чего находится новый рекорд
Rec Т
2,4,1
11.
Последующая проверка на уровнях 2 и 1 не обнаруживает оценок, меньших Rec. Это означает, что единственный входящий в М
вариант расписания
2,4,1
действительно оптимален. Детали должны поступать на станочную линию в последовательности 2 – 4 – 1 – 3.
Наиболее существенная особенность процесса поиска обусловлена свойством (5.24). Она состоит в том, что при обнаружении подмножества любого
уровня, для которого оценка не лучше рекорда, это подмножество можно исключить из дальнейшего анализа вместе со всеми порождаемыми им подмножествами более низких уровней (на рис. 5.8 ветвление таких подмножеств
только намечено отрезками линий).
Вообще говоря, при особо неудачном стечении обстоятельств метод «ветвей и границ» может все равно привести к полному перебору вариантов. Однако
численные эксперименты, как правило, подтверждают его высокую эффективность, которая в свою очередь определяется тем, насколько оценки близки к
значениям границ.
Получение оценок является наиболее трудным местом метода. Ограничимся здесь построением оценки VM для множества М, объединяющего все варианты. Эта оценка не используется непосредственно в процессе поиска, но она
145

хорошо демонстрирует подходы, применяемые для других оценок, и, кроме то-
ik
ik
ij
ik
ik
ik ij ik
ik ij ik
го, представляет самостоятельный интерес.
Рассмотрим станок с некоторым номером j. Для того чтобы этот станок
мог начать работу, нужно, чтобы хотя бы одна из деталей прошла все предшествующие станки. Детали с номером i на это потребуется время, не меньшее,
1
j
чем
k
, а для самой «быстрой» из них
1
min
i
1
j
. (5.27)
1
k
На самом станке с номером j даже при отсутствии его простоев время обработки всей партии деталей составит
m
. (5.28)
1
i
Обработка партии на всей станочной линии завершится не раньше, чем
последняя из деталей, обработанных на станке j, пройдет последующие станки,
n
на что потребуется время, не меньшее, чем
k j
, если это деталь с номером i.
1
В лучшем случае это время составит
n
min
i
k j
. (5.29)
1
Таким образом, длительность расписания в целом будет не меньше, чем
сумма выражений (5.27)–(5.29)
1
j
min min
i i
1 1 1
k i k j
m n
. (5.30)
Номер j станка, выделенного для получения выражения (5.30), пока произволен. Можно увеличить оценку и тем самым приблизить ее к границе за счет
выбора j, обеспечивающего максимум для (5.30). Полученный результат и следует принять за окончательную оценку:
1
j
max min min
V
j
i i
1 1 1
k i k j
m n
. (5.31)
Выражения для оценок подмножеств, входящих в M, имеют структуру,
146

подобную (5.31), но несколько более сложны. Все они обладают свойством
( , )
x i j
( , )
y i j
(5.24). Характерно, что сами оценки для их вычисления требуют многих операций перебора со сравнением. Для (5.31) это операции выделения выражений,
минимальных по номеру детали i и максимальных по номеру станка j.
Отметим в заключение ограниченность задачи Джонсона в плане практических приложений. Обычно реальные задачи разработки расписаний при
управлении производством отличаются большей сложностью. Постановки некоторых из них и подходы к их решению можно найти, например, в [5]. Там же
изложены опущенные здесь подробности построения оценок в методе «ветвей и
границ».
В следующем параграфе будет рассмотрена тоже задача составления некоторого расписания, допускающая относительно простое решение.
§ 5.5. График установки оборудования
Пусть на предприятие доставлено для установки оборудование двух типов
в количестве m и n единиц. Для краткости будем называть единицы оборудования станками, как в § 5.4. Бригада монтажников может одновременно устанавливать только один станок одного из типов.
Затраты на установку станка зависят от его типа, а также от того, сколько
станков обоих типов было установлено до этого. Последнее обстоятельство может быть связано с тем, что вновь установленный станок начнет давать продукцию в количестве, зависящем от уже подготовленного на базе других станков
производства, и это может быть учтено в качестве компенсации затрат непосредственно на монтаж. Затраты могут уменьшиться за счет использования линий подачи энергии или материалов, уже проложенных для ранее
установленных станков. Они могут увеличиться из-за сужения возможностей
для маневра при занятии производственных площадей уже установленными
станками.
Пусть эти и подобные им факторы могут быть заранее выражены количественно с помощью двух показателей:
– затраты на установку станка 1-го типа при условии, что уже уста-
новлено i станков 1-го и j станков 2-го типа (i0, 1, ..., m – 1; j0, 1, ..., n);
– затраты на установку станка 2-го типа при условии, что уже
установлено i станков 1-го типа и j станков 2-го типа (i0, 1, ..., m; j0, 1, ..., n
– 1).
Требуется определить порядок (график) установки станков, при котором
суммарные затраты после монтажа всех (m + n) станков были бы минимальны.
Исходные данные удобно представить на сетке, построенной в системе
координат i, j. Узел сетки (i, j) с координатами i, j соответствует ситуации, когда
установлено i станков 1-го и j 2-го типов. Затраты x(i, j) указываются в разрыве горизонтального отрезка, исходящего из этого узла, а затраты y(i, j) в разрыве вертикального отрезка.
147

!
!
m
n
0
1 2 3 4 5 6
j
4
12 12 12 10 10 10 10
8 8 7 7 7 8 9
3
8 9 10
10 8 8
9
9 8 8 9 9 9
2
9
7 7
9 9 8 8 9 10
8 9
9 9
1
9
8 7 7 7 8
9 9 8 8 9 10
9
9 9 8 8
8
8
Рис. 5.9. Пример исходных данных на сетке
На рис. 5.9 показан пример такого представления данных для m6, n4.
При считывании с сетки получим, в частности, x(0, 4) x(1, 4) 12, x(4, 2)
y(4, 2) 9, x(5, 3) y(5, 3) 8 и т. п. Для конкретности можно предположить,
что эти затраты исчисляются в тысячах рублей.
Составление оптимального графика эквивалентно построению на сетке
ступенчатой траектории, проходящей по горизонтальным и вертикальным отрезкам из узла (0, 0) в узел (m, n), для которой сумма затрат на всех отрезках
минимальна. Кроме того, следует добавить требование, чтобы номера узлов i, j,
через которые проходит траектория, образовывали две неубывающие последовательности.
Нетрудно сосчитать, что общее количество траекторий такого вида, но
( )!
необязательно с минимальной суммой затрат составляет
m n
, что и опре-
деляет число вариантов, которые необходимо сравнивать в случае их полного
перебора. Например, при m n 10 это число равно 184 756.
Существенному сокращению числа сравниваемых вариантов способствует
применение для данной задачи метода динамического программирования (ДП).
Этот метод хорошо приспособлен для оптимизации так называемых многошаговых (многоэтапных) процессов. К ним может быть отнесен и процесс постро-
148

ения упомянутой оптимальной траектории. Его шагом является установка одного станка первого или второго типа.
Метод ДП основан на утверждении, обеспечивающем решение задачи оптимизации и называемом «принцип оптимальности». Возможно несколько его
формулировок с непринципиальными отличиями. Приведем одну из них, близкую к той, что использована в [2]. Предварительно введем понятие состояния
процесса, подразумевая под ним набор признаков, характеризующих процесс на
каждом его шаге. Конкретный вид этих признаков определяется реальным содержанием задачи. Для рассматриваемого графика установки станков состояние
можно характеризовать двумя числами: количеством установленных станков
первого и второго типа. Для любой задачи можно пользоваться понятием траектории, пролегающей в пространстве состояний.
Итак, принцип оптимальности: «Каково бы ни было состояние перед оче-
редным шагом, следует выбирать очередное состояние так, чтобы сумма затрат на этом шаге и оптимальных затрат на всех последующих шагах была
минимальной».
Доказательство справедливости принципа опустим, подчеркнув однако,
что он является прямым следствием того, что затраты для любой траектории
являются суммой затрат по участкам при любом ее разделении на эти участки
(так называемое свойство аддитивности функции цели). Метод ДП работает
только для аддитивных или приводимых к ним функций.
Метод ДП использует алгоритм, идея которого состоит в замене многошаговой процедуры поиска одной оптимальной траектории одношаговыми
процедурами для множества условных оптимальных траекторий, отличающихся
некоторым признаком (обычно – началом) от оптимальной траектории задачи.
В конце поиска из этого множества выделяется оптимальная траектория. Каждая из одношаговых процедур оказывается очень простой благодаря применению принципа оптимальности, чем с лихвой покрывается увеличение объема
вычислений, вызванное поиском не одной, а множества траекторий.
Для рассматриваемой задачи определим условную оптимальную траекторию (УОТ) как такую, которая начинается в узле (i, j) (это и есть ее отличительный признак), заканчивается в узле (m, n) и имеет минимальную сумму затрат
по сравнению с другими траекториями с теми же началом и концом. Очевидно,
общее число таких траекторий равно [(m + 1)(n + 1) – 1], т. е. числу узлов сетки
за вычетом конечного узла. Условная траектория с началом в узле (0, 0) является оптимальной в смысле исходной формулировки задачи.
Дальнейший ход решения проиллюстрируем на примере исходных данных, показанных выше на рис. 5.9. Пользуясь приемом, часто применяемым в
процедурах динамического программирования, начнем поиск УОТ с конца, т. е.
с тех из них, чьи начальные узлы расположены ближе всего к узлу (6, 4). УОТ,
исходящая из узла (5, 4), определяется однозначно по горизонтали к узлу (6,
4) (рис. 5.10). Соответствующие ей затраты, равные 10, укажем в квадратной
рамке, расположенной на месте узла (5, 4), а саму траекторию обозначим утол-
149

щенной линией. Однозначно определится и УОТ, исходящая из узла (6, 3); затраты для нее равны 9. Аналогичные действия выполним для УОТ, исходящих
из узлов (4, 4) и (6, 2). Можно продолжать перебирать наружные узлы сетки,
однако обратимся к внутренним узлам.
4,4 5,4 6,4
4,3
20
7 8 9
25
10
8
5,2
10
17
5,3
9 9
26
10
8
9
9
18
6,3
6,2
Рис. 5.10. Начало поиска оптимальной траектории
Найдем УОТ с началом в узле (5, 3). Для этого достаточно сравнить всего
два одношаговых варианта: переход в узел (6, 3), т. е. установка станка типа 1
или в узел (5, 4) установка станка типа 2. Существенно, что нет никакой необходимости в подробном анализе возможных продолжений искомой траектории
из узлов (6, 3) или (5, 4), хотя в данном случае это совсем несложно. Действительно, согласно принципу оптимальности, эти продолжения как части оптимальной траектории должны быть оптимальными траекториями перехода из
узла (6, 3) или (5, 4) в конечный узел (6, 4). А они уже известны из предыдущего
построения, и затраты для них составляют 9 и 10. Остается сравнить два числа:
сумму затрат при переходе в узел (6, 3) и из него в (6, 4) с суммой затрат при
переходе в узел (5, 4) и из него в (6, 4). Эти числа равны 8 + 9 = 17 и 8 + 10 = 18.
УОТ, стартующей из узла (5, 3), будет та, для которой эта сумма равна 17, что и
показано утолщенной линией и числом в рамке.
По мере удаления от конечного узла сетки преимущества метода сказываются все более определенно. Так, построение УОТ из узла (4, 3) потребовало
бы без применения принципа оптимальности сравнения трех вариантов с подсчетом по каждому суммы трех чисел. По методу динамического программирования действия нисколько не усложняются по сравнению с предыдущим
рассмотренным узлом.
150
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
