Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Компьютерное моделирование технико-экономических процессов. Типовые модели объектов и систем управления. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
☆
времени перебора вариантов1. Ясно, что определение оптимального варианта
путем полного перебора невозможно для сколько-нибудь значительных практи­ческих задач, и необходим систематический, направленный поиск.
Рассмотрим один из методов направленного поиска метод ветвей и гра­ниц в применении к задаче Джонсона при дополнительном предположении, что порядок обработки деталей на первом станке сохраняется и на остальных. Это предположение упрощает решение (и несколько снижает его ценность), но, учитывая, что полное число вариантов все равно остается очень большим (а именно m!), далеко не ликвидирует вычислительные проблемы.
Если порядок обработки деталей одинаков на всех станках, то множество вариантов расписания совпадает с множеством перестановок номеров деталей. Обозначим это множество через M и разобьем его на m подмножеств M1, M2, ...,
Mm таких, что в подмножество Mi1 входят все варианты, для которых первой
идет деталь с номером i1 (i11, 2, ..., m), а остальные обрабатываются в произ­вольном порядке. Число вариантов в каждом из подмножеств Mi1 составляет (m – 1)!. Будем говорить, что подмножества Mi1 образуют первый уровень разбие­ния.
Каждое из подмножеств Mi1 вновь подвергнем разбиению на подмноже­ства 2-го уровня M
, содержащие варианты, для которых первой идет деталь с
i1,i2
номером i1, второй с номером i2 (i21, 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 (i11, 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, считается «абсолютным», а соответствующий вариант – оп­тимальным. Справедливость этого суждения следует из свойств оценок.
Действительно, пусть RecV
, i11, 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 представлен пример схемы поиска для m4. Действия на эта­пе 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-го типа (i0, 1, ..., m – 1; j0, 1, ..., n);
– затраты на установку станка 2-го типа при условии, что уже
установлено i станков 1-го типа и j станков 2-го типа (i0, 1, ..., m; j0, 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 показан пример такого представления данных для m6, n4. При считывании с сетки получим, в частности, 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]