Читайте также:
|
|
Коммивояжеру, находящемуся в Париже, необходимо посетить три города. Он получил информацию о стоимости проезда самолетом в каждый из выбранных городов и стоимость проезда из одного города в другой. На основе добытых данных он составил матрицу стоимостей (см. табл.) проезда в выбранные города и обратно. Зная матрицу стоимостей коммивояжеру надо так составить маршрут путешествия, чтобы затраты на путешествие были бы минимальными и чтобы выполнялось требование: каждый пункт посещается только один раз.
Пункты | Париж | Берлин | Рим | Лондон |
Париж | ||||
Берлин | ||||
Рим | ||||
Лондон |
Математическая модель задачи выглядит следующим образом.
Целевая функция имеет вид:
0x11+270x12+430x13+160x14+70x21+0x22+160x23+10x24+200x31+130x32+0x33+ +350x34+210x41+160x42+250x43+0x44® min,
Ограничения имеют вид:
x11+x21+x31+x41=1,
x12+x22+x32+x42=1,
x13+x23+x33+x43=1.
x14+x24+x34+x44=1,
x11+x12+x13+x14=1,
x21+x22+x23+x24=1,
x31+x32+x33+x34=1,
x41+x42+x43+x44=1,
u2-u3+3x23 2,
u2-u4+3x24 2,
u3-u2+3x32 2,
u3-u4+3x34 2,
u4-u2+3x42 2,
u4-u3+3x43 2.
Вид электронной таблицы, созданной для решения задачи, представлен на рис. 4.21. Значения переменных xij располагаются в блоке B3:E6. В данном блоке ячейки, расположенные по диагонали обнулены (пункт назначения не может быть одновременно пунктом прибытия) и выделены, для удобства задания ограничений. Даны стоимости проезда из города в город (блок B11:E14). Для вычислений необходимо задать размерность задачи n (количество городов) - ячейка F16.
Рис. 4.21
Целевая функция расположена в ячейке F8. Ограничения находятся в блоках B7:E7 (коммивояжер въезжает один раз в каждый город) и F3:F6 (коммивояжер выезжает из каждого города один раз) (см. рис. 4.21 и 4.22). Вид электронной таблицы в режиме отображения формул представлен на рис. 4.22. В задаче коммивояжера есть ряд специфических ограничений по дополнительным переменным ui (см. мат модель). Формулы этих ограничений находятся в блоке ячеек B17:E19. Значения самих переменных располагаются в блоке B8:E8.
На рис. 4.23 представлена запись условий задачи в окне "Поиск решения". Как известно, дополнительные переменные не относятся к целевой функции, но они, также как и xij, являются изменяемыми, поэтому адреса содержащих их ячеек должны быть введены в поле Изменяя ячейки одновременно с адресами переменных целевой функции.
Операцию ввода удобно проводить с помощью мыши. Необходимо установить курсор ввода в поле Изменяя ячейки, затем выделить мышью блок ячеек переменных целевой функции, нажать <Ctrl> и, удерживая эту клавишу, выделить мышью блок ячеек рабочего листа, отведенный для переменных ui. В поле ввода адреса блоков отделяются ";" (см. рис. 4.23).
Рис. 4.22
Перечислим ограничения, которых не видно на рис. 4.22: $C$4=0; $D$5=0; $E$6=0; $F$3:$F$6=1.
Рис. 4.23
Первая запись в группе Ограничения представляет собой совокупность ограничений по дополнительным переменным ui. Каждая ячейка блока в левой части неравенства содержит формулу одного ограничения (см. рис. 4.22 и мат. модель), правую часть представляет одно значение, равное n-2, содержащееся в F18. Такая запись означает, что каждая ячейка блока $B$17:$D$19 меньше либо равна 2 (4-2=2).
В поиске решения нельзя явно задать ограничение i< j. Исходя из смысла переменных xij можно предположить, что значения тех xij, для которых i=j (расположенных по диагонали в блоке переменных), всегда должны быть равны 0 и ввести соответствующие ограничения. В группе Ограничения таких ограничений четыре: $B$3=0, $C$4=0, $D$5=0, $E$6=0.
По результатам поиска решения найден ответ задачи: из Парижа коммивояжер летит в Лондон, оттуда в Рим, затем в Берлин, откуда возвращается в Париж. Общая стоимость перелета составит 610 д. е. (см. рис. 4.21).
Дата добавления: 2015-07-21; просмотров: 64 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Задача коммивояжера | | | Задача о доставке (покрытии множества) |