![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Пример 9.3.1
Дневной график работы предприятия, производящего краски, включает изготовление партий белой (Б), желтой (Ж), красной (К) и черной (Ч) красок. Так как предприятие использует одно и то же оборудование для изготовления всех четырех типов краски, необходима его надлежащая чистка между изготовлением различных партий краски. Приведенная ниже таблица содержит время чистки оборудования в минутах, если за изготовлением краски, указанной в строке, следует изготовление краски, указанной в столбце. Например, если за белой краской следует желтая, то время чистки равно 10 минут. Поскольку за определенным цветом краски не может следовать такой же цвет, то соответствующее время чистки полагается равным бесконечности. Необходимо определить оптимальную последовательность дневного производства четырех типов краски, которая минимизирует суммарное время чистки оборудования.
Время чистки в мин., если следующий цвет | ||||
Текущий цвет | белый | желтый | черный | красный |
Белый | оо | |||
Желтый | ОО | |||
Черный | ОО | |||
Красный | оо |
Условия данной задачи можно представить "графически", поставив в соответствие каждому цвету краски узел сети, и приписав каждой дуге, соединяющей два узла, числовое значение, равное времени чистки. Задача, таким образом, сводится к определению кратчайшего контура, который начинается в одном узле, проходит через оставшиеся три узла в точности по одному разу перед тем, как возвратиться в начальный узел.
Эту задачу можно решить путем полного перебора шести [(4-1)! = 3! = 6] возможных контуров сети. Приведенная ниже таблица показывает, что последовательность узлов Б-»Ж—>К—>Ч—>Б определяет оптимальный контур.
Производственный цикл (контур) Суммарное время чистки
Б->Ж->Ч->К-»Б 10 + 19 + 25 + 45 = 99
Б-»Ж->К->Ч->Б 10 + 18 + 20 + 50 = 98
Б->Ч->Ж->К->Б 17 + 44 + 18 + 45 = 124
Б->Ч->К-»Ж->Б 17 + 25 + 40 + 20 = 102
Б->К->Ч-»Ж->Б 15 + 20 + 44 + 20 = 99
Б->К->Ж->Ч->Б 15 + 40 + 19 + 50 = 124
9.3. Задача коммивояжера
Метод полного перебора контуров практически применим лишь для задач малой размерности. Например, сеть с 11 узлами имеет 10! = 3 628 800 контуров. Следовательно, требуется более эффективный подход к решению таких задач.
Определим переменные хц равными 1, если узел; достигается из узла г, и 0 в противном случае. Необходимым условием для контура (цикла) является то, что узел I связывается лишь с одним узлом и узел j достигается лишь из одного узла. Считая М достаточно большим положительным числом, мы можем записать задачу предприятия, производящего краски, следующим образом.
Минимизировать г = МхББ + 10д:БЖ + ПхБЧ + 15a:£/f + 20хЖБ + Мхжж + \9хжч + \хЧБ + 44д
при ограничениях
+ 18хжк + 50хЧБ + 44хчж + Мхчч + 25хчк + 4ЬхКБ + 40хкж + 20хкч + Мхкк
ХББ ХБЖ ХБЧ ХБК ~~ ^ '
ХЖБ ХЖЖ ХЖЧ ХЖК ~ ^ >
ХЧБ ХЧЖ ХЧЧ ХЧК ~~
ХКБ ХКЖ ХКЧ ХКК ~ ^ '
ХББ ХЖБ ХЧБ ХКБ = 1» X 4- X + X 4- X ~ 1
ЛГ£Ч 4- Хж1/ + Xt/1J + Хкч — 1, •"-як ХЖК ХЧК~^~ ХКК ~ 1 '
хц = 0 или 1 для всех i и
решение должно быть контуром (полным циклом).
Использование константы М в целевой функции гарантирует, что производство краски одного цвета не будет повторяться подряд.
УПРАЖНЕНИЯ 9.3.1
1. Менеджер проектов имеет 10 сотрудников, которые работают над шестью проектами, причем каждый работает одновременно над несколькими проектами, как показано в следующей таблице.
Сотрудники
Глава 9. Целочисленное линейное программирование
Менеджер должен встретиться с каждым из 10 сотрудников один раз в неделю для обсуждения их проблем. Беседа с каждым из них длится примерно 20 минут, т.е. на разговоры со всеми сотрудниками уходит 3 часа 20 минут. Предлагается проводить встречи менеджера с группами сотрудников, работающих над одним и тем же проектом, чтобы уменьшить суммарное время, которое тратится на совещания. Менеджер планирует составить график обсуждения проектов таким образом, чтобы уменьшить движение в офисе, т.е. сократить число сотрудников, входящих и выходящих из комнаты для совещаний. В какой последовательности необходимо рассматривать проекты?
2. Продавец книг, проживающий в городе А, один раз в месяц должен посетить своих четырех клиентов, которые проживают в городах Б, В, Г и Д соответственно. Приведенная ниже таблица содержит расстояния в милях между различными городами.
А | Б | В | Г | Д | |
А | |||||
Б | |||||
В | |||||
Г | |||||
Д |
Необходимо составить маршрут движения продавца книг, минимизирующий суммарное расстояние. Сформулируйте задачу в виде задачи о назначениях ЦЛП.
3. Пусть в предыдущем упражнении города Б, В, Г и Д обозначены через 1,2,3 и 4, а город А разделен на два, которые обозначены через 0 и 5. Пусть маршрут продавца книг начинается в городе 0, проходит (в некотором порядке) через города 1, 2, 3 и 4 и заканчивается в городе 5. Определим переменную vt для города i (i = 0, 1, 5), которая удовлетворяет условиям 0 < и( < 5. Пусть xtj = 1, если в маршруте город j следует за городом г, и 0 в противном случае. Покажите, что ограничения
v-v+bx:<4., i = 0,l.....4, У= 1, 2.....5,
гарантируют исключение вчсех неполных маршрутов в решении задачи.
9.3.1. Применение метода ветвей и границ для решения задачи коммивояжера
Вначале алгоритм ветвей и границ применяется к задаче о назначениях, соответствующей данной задаче коммивояжера. Если полученное оптимальное решение образует полный цикл, то на этом вычисления заканчиваются. В противном случае в задачу необходимо ввести ограничения, удаляющие частичные циклы. Это создает ряд подзадач, которых в общем случае столько же, сколько переменных образуют один частичный цикл. В каждой подзадаче одна из таких переменных устанавливается равной нулю (напомним, что переменные, ассоциированные с каким-либо циклом, имеют единичные значения). Решения этих подзадач могут либо сформировать, либо нет полный цикл. Если такой цикл сформирован в какой-либо подзадаче, то оптимальное значение целевой функции этой подзадачи дает верхнюю границу длины полного цикла. Если же подзадача не формирует полный
9.3. Задача коммивояжера
цикл, то она снова разбивается на ряд новых подзадач в соответствии с переменными, которые образуют частичные циклы в решении данной подзадачи. Этот процесс продолжается до тех пор, пока не будут рассмотрены все существующие подзадачи, либо пока не будет получено лучшее (меньшее) значение верхней границы длины полного цикла, или пока не будет доказано, что подзадачи не могут иметь лучшего решения. Оптимальным решением задачи коммивояжера будет полный цикл, на котором достигается наилучшее значение верхней границы.
Следующий пример проясняет детали применения метода ветвей и границ для решения задачи коммивояжера.
Пример 9.3.2
В следующей матрице записаны расстояния между 5 городами задачи коммивояжера.
ш=
ю
оо
9^ 2
Решение начальной задачи о назначениях (полученное с помощью TORA) следующее:
2 = 15, (хп = x3l = 1), (л:25 = л:54 = лг42 = 1), все остальные переменные равны 0.
Это решение порождает два частичных цикла (1-3-1) и (1-5-4-2). Это же решение обозначено как узел 1 дерева подзадач на рис. 9.14. Полученное значение целевой функции 2=15 принимаем в качестве нижней границы длины оптимального цикла, проходящего через все 5 городов.
(Т)
z = 15 (1-3-1)(2-5-4-2)
z=17 (2-5-2)(1-4-3-1)
z= 16 (1-3-4-2-5-1)
z = 21 (1-4-5-2-3-1)
z=19 (1-4-2-5-3-1)
Рис. 9.14. Дерево подзадач решения задачи коммивояжера методом ветвей и границ
Глава 9. Целочисленное линейное программирование
Прямолинейный способ определения верхней границы оптимального цикла заключается в том, чтобы выбрать какой-либо полный цикл и подсчитать его длину. Например, полный цикл 1-2-3-4-5-1 (выбран произвольно) дает общую длину 10 + 5 + 7+ 4+ 3 = 29. (Можно получить лучшее значение верхней границы, если взять другой полный цикл. Помните, что наименьшая верхняя граница — цель поиска методом ветвей и границ.)
Вычисленные нижняя и верхняя границы показывают, что длина оптимального полного цикла лежит в интервале от 15 до 29. Подзадачи, дающее решение с длиной цикла больше 29, отбрасываются как "не оправдавшие надежд".
Чтобы исключить частичные циклы в задаче узла 1, надо "разбить" эти частичные циклы путем принудительного приравнивания переменных х, задающих эти циклы, нулю. Частичный цикл 1-3-1 можно разбить, если положить х13 = 0 или х31 = О (одновременно только одну переменную). Аналогично частичный цикл 2-5-4-2 можно разбить, если ввести ограничения х2Ь = 0, хЬ4 = 0 или xi2 = 0. Каждое из подобных ограничений порождает отдельную ветвь дерева подзадач (и, конечно, отдельную подзадачу). Важно заметить, что нет необходимости разбивать все имеющиеся частичные циклы — достаточно исключить только один частичный цикл. Причина этого в том, что введение в задачу нового ограничения автоматически влияет на значения всех переменных этой задачи, что создает "благоприятные" условия для формирования полного цикла. На основании этого аргумента обычно разбивают один частичный цикл, наименьший по количеству составляющих его дуг, поскольку это приводит к меньшему количеству новых ветвей в дереве подзадач.
Выбирая для удаления короткий цикл 1-3-1, получаем на дереве подзадач две ветви, определяемые условиями х13 = 0 и л:31 = 0, выходящие из узла 1. Новые задачи о назначениях строятся путем удаления из последней задачи переменной ветвления (т.е. хп или л:31), что уменьшает размер подзадач. Другой путь построения подзадач (который дает тот же самый результат при решении этих подзадач и который сохраняет их размер) заключается в том, чтобы назначить переменным ветвления значения расстояний, равные бесконечности. Например, в подзадаче с ограничением л;13 = 0 расстоянию d13 присваивается значение °°.
Из двух имеющихся подзадач решим сначала задачу с условием л:13 = 0 (узел 2 на рис. 9.14) — порядок решения подзадач произвольный. Получаем решение 2=17, которое формирует два частичных цикла (2-5-2) и (1-4-3-1). Эту подзадачу разбиваем на две путем введения дополнительных ограничений x2S = 0 и х52 = 0 так же, как это сделано в задаче узла 1.
Теперь имеется три нерешенные подзадачи, которые соответствуют узлам 3, 4 и 5 на рис. 9.14. Произвольно выбираем для решения подзадачу узлаЗ. В исходных данных для этой подзадачи устанавливаем dl3 = °° и d2b = °°. Ее решение дает 2 = 21 с полным циклом 1-4-5-2-3-1. Поскольку получено решение с полным циклом, то ветвления в узле 3 не будет.
Решение подзадачи узла 3 позволяет улучшить значение верхней границы, г = 21, оптимальной длины полного цикла. Это означает, что любая нерассмотренная подзадача, для которой можно показать, что она даст решение, превышающее или равное 21, можно отбросить и не рассматривать.
Из нерассмотренных подзадач 4 и 5 выбираем для решения подзадачу 4. Для ее решения в данных исходной задачи о назначениях положим dn = °° и d52 = °°. Получаем решение этой подзадачи с 2 = 19 и полным циклом 1-4-2-5-3-1. Это решение предлагает новую верхнюю границу г = 19.
9.3. Задача коммивояжера
Осталась нерассмотренной только подзадача узла 5. Для ее решения в данных исходной задачи о назначениях положим d31 = °°. Получаем решение с г = 16 и полным циклом 1-3-4-2-5-1, а также новую верхнюю границу г = 16.
Нерассмотренных подзадач не осталось. Оптимальным циклом будет цикл 1-3-4-2-5-1 с длиной в 16 миль.
Сделаем замечание. Излишне длинная последовательность решения подзадач 1—» 2-> 3-> 4—> 5, приведшая к оптимальному решению в данном примере, снова показывает основной недостаток метода ветвей и границ — невозможно предсказать последовательность выбора подзадач, ведущую к оптимальному решению наиболее коротким путем. Например, если первой была бы решена подзадача узла 5, то это дало бы значение верхней границы, равное 16. Это автоматически отбрасывает возможные подзадачи, порождаемые в узле 2.
Конечно, существуют эвристические подходы, позволяющие помочь в "предсказании" последовательности подзадач, ведущей к оптимальному решению наиболее эффективным путем. Например, после того, как определены все ветви (подзадачи), выходящие из некоторого узла дерева подзадач, первой решается та подзадача, у которой исключаемой переменной хц соответствует наибольшее значения расстояния dtj среди рассматриваемых подзадач. Если воспользоваться этим правилом в данном примере, то после определения подзадач узла 1 первой надо решать подзадачу 5, что приведет к оптимальному решению всего за два этапа. (Первый этап — решение подзадачи 5, второй этап — решение подзадачи 2, которое дает худшее значение целевой функции (г = 17), чем существующая на тот момент верхняя граница, равная 16.)
УПРАЖНЕНИЯ 9.3.2
1. Решите задачу примера9.3.2, начав с удаления частичного цикла 2-5-4-2. При прохождении дерева подзадач примените следующие правила.
a) На каждом уровне дерева подзадач исследуйте подзадачи слева направо. Переходите на следующий уровень только после того, как будут рассмотрены все подзадачи текущего уровня.
b) Исследуйте подзадачи "вертикально", начиная от нулевого узла и последовательно проходя по ветвям, пока не будут рассмотрены все подзадачи одной последовательности ветвей.
2. Решите методом ветвей и границ задачу из упражнения 9.3.1.1.
3. Решите методом ветвей и границ задачу из упражнения 9.3.1.2.
4. Решите методом ветвей и границ задачу из упражнения 9.3.1.3.
9.3.2. Применение метода отсекающих плоскостей для решения задачи коммивояжера
Идея применения метода отсекающих плоскостей для решения задачи коммивояжера заключается в том, чтобы в первоначальную задачу о назначениях ввести дополнительные ограничения, гарантированно удаляющие частичные циклы. Эти дополнительные ограничения строятся следующим образом. Пусть в задаче коммивояжера с п городами каждому городу с номерами 2, 3, п ста
Глава 9. Целочисленное линейное программирование
вится в соответствие непрерывная неотрицательная переменная и,. Тогда дополнительные ограничения имеют вид
и, - ц. + nxIJ<n - 1, i = 2, 3, n,j = 2, 3, п, j.
Эти ограничения, добавленные в исходную задачу о назначениях, автоматически удаляют из решения частичные циклы, оставляя все полные циклы.
Пример 9.3.3
В следующей матрице записаны расстояния между 4 городами задачи коммивояжера.
'~ 13 21 26"
10 ~ 29 20
30 20 оо 5
Л2 30 7 о»
ш=
Данная задача коммивояжера формализуется как соответствующая задача о назначениях плюс следующие дополнительные ограничения, исключающие из решения частичные циклы. Все переменные xtj двоичные, все переменные ut неотрицательные. Задача решается как частично-целочисленная задача линейного программирования.
х Л12 | *и | X Л21 | *22 | X Л23 | X •*-24 | х%\ | *33 | X Л34 | *41 | ^42 | *43 | *44 | «1 | и2 | и» | ||||
-1 | <3 | ||||||||||||||||||
-1 | <3 | ||||||||||||||||||
-1 | <3 | ||||||||||||||||||
-1 | <3 | ||||||||||||||||||
-1 | <3 | ||||||||||||||||||
-1 | <3 |
Оптимальное решение этой задачи (полученное с помощью TORA) следующее:
и2 = 0, и3 = 1, ut = 2, л:12 = л:23 = x3i = х41 = 1, длина полного цикла = 59.
Это решение формирует полный цикл 1-2-3-4-1. Решение удовлетворяет всем дополнительным ограничениям (проверьте!).
Чтобы показать, что частичные циклы не удовлетворяют дополнительным ограничениям, рассмотрим решение с частичными циклами (1-2-1) и (3-4-3): х12 = х21 = 1, хм = xa = 1. Теперь рассмотрим ограничения 4 и 6, представленные в выше приведенной таблице.
4x34 + u3-u4<3,
4х43-ц3 + ц4<3.
Подставив в эти выражения значения л:34 = xi3 = 1 и сложив их, получим невыполнимое неравенство 8 < 6, что говорит о невозможности частичного цикла 3-4-3.
Основным недостатком применения метода отсекающих плоскостей к решению задачи коммивояжера является то, что введение дополнительных ограничений резко увеличивает размер задачи, при этом количество таких ограничений возрастает по экспоненциальному закону при росте количества посещаемых городов.
Комплексные задачи
УПРАЖНЕНИЯ 9.3.3
1. Решите следующие задачи коммивояжера методом отсекающих плоскостей.
' -о 43 21 20Л
а) Задача с матрицей расстояний \d,\ =
b) Задача из упражнения 9.3.1.2.
c) Задача из упражнения 9.3.1.3.
10 оо 9 22 20 10 оо 5 42 50 27 оо
ЛИТЕРАТУРА
1. Nemhauser G., Wolsey L. Integer and Combinatorial Optimization, Wiley, New York, 1988.
2. Salkin H., Mathur K. Foundations of Integer Programming, North-Holland, New York, 1989.
3. Taha H. Integer Programming: Theory, Applications, and Computations, Academic Press, Orlando, FL, 1975.
4. Wolsey L. Integer Programming, Wiley, New York, 1998.
Литература, добавленная при переводе
1. Белоусов Е. Г. Введение в выпуклый анализ и целочисленное программирование. — М.: Изд-во МГУ, 1977.
2. Корбут А. А., Финкельштейн Ю. Ю. Дискретное программирование. — М.: Наука, 1968.
3. Ху Т. Целочисленное программирование и потоки в сетях. — М.: Мир, 1974.
КОМПЛЕКСНЫЕ ЗАДАЧИ
9.1. Развивающаяся компания владеет 90 акрами земли в растущей столичной зоне, где планирует построить офисные здания и торговый центр. Созданная собственность сдается в аренду на 7 лет и затем продается. Цена каждого здания оценивается в 10 раз выше суммы чистого дохода, полученного за последний год от сдачи здания в аренду. Компания оценивает, что проект будет включать торговый центр площадью в 4,5 миллиона квадратных футов. Бизнес-план предусматривает строительство трех высотных офисных зданий и четырех зданий с садом.
Перед компанией стоит задача составления расписания работ. Если строительство завершается очень рано, построенные здания могут остаться невостребованными; если строительство завершается очень поздно, могут быть потеряны потенциальные арендаторы. Потребности в офисных площадях на следующие 7 лет, вычисленные на основе соответствующего изучения рынка, показаны в следующей таблице.
Глава 9. Целочисленное линейное программирование
Потребность (тыс. кв. футов)
Год В высотных зданиях В офисах с садом
1 200 | ||
2 220 | ||
3 242 | ||
4 266 | ||
5 293 | ||
6 322 | ||
7 354 | ||
Следующая таблица содержит предложения по площадям семи зданий. | ||
Здания с садом Площадь (кв. футы) | Высотные здания | Площадь (кв. футы) |
1 60 ООО | 350 000 | |
2 60 000 | 450 000 | |
3 75 000 | 350 000 | |
4 75 000 | — | — |
Суммарный доход от ренты оценивается в 25 долл. за квадратный фут. Текущие затраты равны 5,75 и 9,75 долл. за квадратный фут для офисов с садом и высотных зданий соответственно. Затраты на строительство равны 70 и 105 долл. за квадратный фут соответственно. Считается, что и стоимость строительства, и рентный доход возрастают примерно в соответствии с процентом инфляции, равным 4%.
Каким образом компания должна спланировать строительство семи зданий?
9.2. 4 В Национальной университетской ассоциации женской спортивной гимнастики проводятся соревнования, которые включают четыре вида спортивных состязаний: опорный прыжок, упражнения на разновысоких брусьях и бревне, а также вольные упражнения. Каждая команда может выставить шесть участников на каждый вид. Выступления гимнасток оцениваются по десятибалльной шкале. Статистика по университетской команде дает следующие показатели по отдельным гимнасткам.
Показатели гимнасток
Опорный прыжок | ||||||
Брусья | ||||||
Бревно | ||||||
Вольные упражнения |
Общее число очков команды определяется путем суммирования пяти лучших индивидуальных показателей для каждого вида состязаний. Участник соревнований может выступать в одном виде или во всех четырех сразу. Эти
4 Задача основана на материалах статьи Ellis P., Corn R. "Using Bivalent Integer Pro--ramming to Select Teams of Intercollegiate Women's Gymnastic Competition", Interfaces, Vol.14, No. 3, 1984, pp. 41-46.
Комплексные задачи
две возможности взаимно исключают друг друга. Спортсмену разрешается участвовать максимум в трех видах, и по меньшей мере четыре участника команды должны соревноваться по четырем видам. Сформулируйте задачу ЦЛП, которую можно использовать для формирования гимнастической команды, и найдите ее оптимальное решение, используя программу TORA.
9.3. 5 В 1990 году в Соединенных Штатах на телевидении функционировало примерно 180 ООО центров рекламы, что позволяло предоставить работу 2 миллионам человек. Исследования показывают, что в 2000 году более 700 000 компаний будут использовать труд примерно 8 миллионов человек для рекламы своей продукции на телевидении. Вопросами первостепенной важности являются необходимое количество центров рекламы на телевидении и их размещение.
Компания ABC занимается решением поставленных вопросов. Рекламный центр может быть расположен в одном из нескольких районов, выбранных компанией, и может обслуживать (частично или полностью) одну или несколько географических зон. Обычно понятие географической зоны ассоциируется с одним или несколькими телефонными кодами. Центры рекламы на телевидении, которыми занимается компания ABC, расположены в восьми зонах с кодами 501, 918, 316, 417, 314, 816, 502 и 606. Следующая таблица содержит информацию о кандидатах на размещение центра; зонах, которые они обслуживают; и стоимости организации центра.
Размещение центра | Коды обслуживаемых зон | Стоимость (долл.) |
Даллас | 501, 918, 316, 417 | 500 000 |
Атланта | 314, 816, 502, 606 | 800 000 |
Луисвилл | 918, 316, 417, 314, 816 | 400 000 |
Денвер | 501, 502, 606 | 900 000 |
Литл-Рок | 417, 314, 816, 502 | 300 000 |
Мемфис | 606, 501,316, 417 | 450 000 |
Сан-Луис | 816, 502, 606, 314 | 550 000 |
Клиенты всех зон имеют доступ к каждому из рекламных центров 24 часа в сутки. Стоимость связи между центрами и соответствующими зонами (в долл. за час) приведена в следующей таблице.
Из зоны с кодом
В центр | ||||||||
Даллас | ||||||||
Атланта | ||||||||
Луисвилл | ||||||||
Денвер | ||||||||
Литл-Рок | ||||||||
Мемфис | ||||||||
Сан-Луис |
5 Задача базируется на работе Spenser Т., Brigandi A., Dargon D., Sheehan М. "AT&T's Telemarketing Site Selection System Offers Customer Support", Interfaces, Vol. 20, No. 1, 1990, pp. 83-96.
Дата публикования: 2014-11-18; Прочитано: 784 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!