Решение задач теории графов средствами Excel
Задача о закреплении самолетов за воздушными линиями
Эта задача возникает при выборе оптимального варианта плана закрепления самолетов за данными воздушными линиями, обеспечивающего необходимые объемы перевозок при минимальных суммарных эксплуатационных расходах.
Пусть имеется n различных типов самолетов, которые нужно распределить между m авиалиниями. Пусть месячный объем перевозок самолетом i-го типа на j-й авиалинии равен аij единицам, а связанные с этим месячные эксплуатационные расходы составляют cij рублей. Определить число xij самолетов i-го типа, которое следует закрепить за j-й авиалинией для обеспечения перевозки по этой линии аij единиц ( ) при минимальных суммарных эксплуатационных расходах, если известно, что имеется Ni самолетов i-го типа ( ).
Математическая модель задачи выглядит следующим образом.
Целевая функция имеет вид:
.
ЦФ представляет суммарные эксплуатационные расходы в месяц.
Ограничения имеют вид:
xij 0, xij- целые числа, .
Условия (1) определяют, что самолеты j-й авиалинии должны обеспечивать объем перевозок не меньше заданного.
Условия (2) представляют собой ограничение по количеству имеющихся самолетов i-го типа.
Пример 3.5
Три типа самолетов требуется распределить между четырьмя авиалиниями. В приводимых ниже таблицах задано число самолетов каждого типа, месячный объем перевозок каждым самолетом на каждой авиалинии и соответствующие эксплуатационные расходы.
Требуется распределить самолеты по авиалиниям так, чтобы при минимальных суммарных эксплуатационных расходах перевезти по каждой из четырех авиалиний соответственно не менее 300, 200, 1000 и 500 единиц груза.
Тип самолета | Число самолетов | Месячный объем перевозок одним самолетом по авиалиниям | |||
I | II | III | IV | ||
Тип самолета | Эксплуатационные расходы | |||
I | II | III | IV | |
Математическая модель задачи выглядит следующим образом.
Целевая функция имеет вид:
15x11+20x12+25x13+40x14+70x21+28x22+15x23+45x24+40x31+70x32+40x33+65x34 ®min,
Ограничения имеют вид:
15x11+30x21+25x31 300,
10x12+25x22+50x32 200,
20x13+10x23+30x33 1000,
50x14+17x24+45x34 500,
x11+x12+x13+x14=50,
x21+x22+x23+x24=20,
x31+x32+x33+x33=30,
xij 0, целые ( ).
Вид электронной таблицы Excel, созданной для решения задачи, представлен на рис. 31. Значения переменных xij располагаются в блоке ячеек B4:E6 (см. рис. 3.14). Коэффициенты целевой функции, отражающие расходы на перевозку находятся по адресам B18:E20. Данные о месячных объемах перевозок одним самолетом имеются в блоке B12:E14. Задан план перевозок и число самолетов- соответственно блоки B7:E7 и F4:F6.
Формулы целевой функции и ограничений находятся соответственно в ячейке F8 и ячейках B8:E8 (ограничения по плану), F4:F6 (ограничения по количеству самолетов) (см. рис. 3.14 и 3.15). Вид электронной таблицы в режиме отображения формул представлен на рис. 3.15.
В группе Ограничения (см. рис. 3.16) заданы, помимо остальных, ограничения на целочисленность переменных (первая запись), означающие, что количество выбранных самолетов (значения xij) должно быть целым числом. Задание ограничения на целочисленность увеличивает время вычислений Поиска решения.
Результаты поиска решения приведены на рис. 3.14.
Рис. 3.14
Рис. 3.15
Рис. 3.16
Задача о ранце
Здесь речь идет о собравшемся в поход путешественнике, который должен упаковать в ранец различные полезные предметы n наименований, причем могут потребоваться несколько одинаковых предметов. Имеются m ограничений такого типа, как вес, объем, линейные размеры и т.д. Пусть аij- i-я характеристика предмета j-го наименования , bi- ограничения по весу, объему и т.д. Обозначим через xj количество предметов j-го наименования, запланированное к погрузке в ранец . Считается, что известна полезность cj одного предмета j.
Математическая модель задачи выглядит следующим образом.
Целевая функция имеет вид:
.
ЦФ представляет суммарная полезность собранных предметов.
Ограничения имеют вид:
xj 0, xj- целое, .
Условия (1) означают, что количество отобранных предметов не превышает возможностей погрузки.
Пример 3.6
В грузовую автомашину надо поместить четыре вида предметов, причем могут потребоваться несколько одинаковых предметов. Имеется три вида ограничений такого типа, как вес, объем и т.д. В приведенной ниже таблице даны aij– i-я характеристика предмета j-го наименования, cj- полезность одного предмета j-го наименования ( ). Требуется загрузить машину так, чтобы суммарная полезность груза была максимальной.
Ограничения | Предмет1 | Предмет2 | Предмет3 | Предмет4 | Значения ограничений |
I | |||||
II | |||||
III | |||||
Полезность |
Математическая модель задачи выглядит следующим образом.
Целевая функция имеет вид:
3x1+4x2+3x3+3x4→ max,
Ограничения имеют вид:
3x1+3x2+5x3+2x4 1000,
4x1+2x2+4x3+4x4 600,
3x1+5x2+4x3+3x4 600,
xj 0, целые, .
Вид электронной таблицы Excel, созданной для решения задачи, представлен на рис. 34. Значения переменных xij располагаются в блоке ячеек B3:E3 (см. рис. 3.17). Коэффициенты целевой функции, отражающие полезности предметов находятся по адресам B6:E6. Данные о характеристиках предметов имеются в блоке B9:E11. Заданы значения ограничений соответственно блок H9:H11.
Рис. 3.17
Формулы целевой функции и ограничений находятся соответственно в ячейке F6 и ячейках F9:E11 (ограничения по свойствам) (см. рис. 3.17 и 3.18). Вид электронной таблицы в режиме отображения формул представлен на рис. 318.
Запись условий задачи в окне "Поиск решения" можно увидеть на рис. 3.19.
Результаты поиска решения приведены на рис. 3.17.
Рис. 3.18
Рис. 3.19
Задача коммивояжера
Имеется n городов. Выезжая из исходного города А1, коммивояжер должен побывать во всех остальных городах по одному разу и вернуться в город А1.
Задача заключается в определении последовательности объезда городов, при которой коммивояжеру требуется минимизировать некоторый критерий эффективности: стоимость проезда, время в пути, суммарное расстояние и т.д. Пусть задана матрица C=||cij|| расстояний между городами и требуется минимизировать суммарную длину пути.
Введем переменные
xij=1, если коммивояжер переезжает из города Аi в город Аj, i j;
xij=0, в противном случае,
.
Математическая модель задачи выглядит следующим образом.
Целевая функция имеет вид:
.
ЦФ представляет суммарную длину пути.
Ограничения имеют вид:
где ui, - неограниченные действительные переменные.
Условия (1) означает, что коммивояжер выезжает из каждого города один раз, а условия (2)- что он въезжает один раз в каждый город.
Условия (3), выглядящие несколько искусственно, предназначены обеспечить связность маршрута коммивояжера. Более точно эти условия запрещают любой цикл, не проходящий через город 1, и тем самым исключают ситуации, подобные приведенной на рисунке 3.20.
Рис. 3.20
Пример 3.7
Коммивояжеру, находящемуся в Париже, необходимо посетить три города. Он получил информацию о стоимости проезда самолетом в каждый из выбранных городов и стоимость проезда из одного города в другой. На основе добытых данных он составил матрицу стоимостей (см. табл.) проезда в выбранные города и обратно. Зная матрицу стоимостей коммивояжеру надо так составить маршрут путешествия, чтобы затраты на путешествие были бы минимальными и чтобы выполнялось требование: каждый пункт посещается только один раз.
Пункты | Париж | Берлин | Рим | Лондон |
Париж | ||||
Берлин | ||||
Рим | ||||
Лондон |
Математическая модель задачи выглядит следующим образом.
Целевая функция имеет вид:
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.
Вид электронной таблицы, созданной для решения задачи, представлен на рис. 3.21. Значения переменных xij располагаются в блоке B3:E6. В данном блоке ячейки, расположенные по диагонали обнулены (пункт назначения не может быть одновременно пунктом прибытия) и выделены, для удобства задания ограничений. Даны стоимости проезда из города в город (блок B11:E14). Для вычислений необходимо задать размерность задачи n (количество городов) - ячейка F16.
Рис. 3.21
Целевая функция расположена в ячейке F8. Ограничения находятся в блоках B7:E7 (коммивояжер въезжает один раз в каждый город) и F3:F6 (коммивояжер выезжает из каждого города один раз) (см. рис. 3.21 и 3.22). Вид электронной таблицы в режиме отображения формул представлен на рис. 3.22. В задаче коммивояжера есть ряд специфических ограничений по дополнительным переменным ui (см. мат модель). Формулы этих ограничений находятся в блоке ячеек B17:E19. Значения самих переменных располагаются в блоке B8:E8.
На рис. 3.23 представлена запись условий задачи в окне "Поиск решения". Как известно, дополнительные переменные не относятся к целевой функции, но они, также как и xij, являются изменяемыми, поэтому адреса содержащих их ячеек должны быть введены в поле Изменяя ячейки одновременно с адресами переменных целевой функции.
Операцию ввода удобно проводить с помощью мыши. Необходимо установить курсор ввода в поле Изменяя ячейки, затем выделить мышью блок ячеек переменных целевой функции, нажать <Ctrl> и, удерживая эту клавишу, выделить мышью блок ячеек рабочего листа, отведенный для переменных ui. В поле ввода адреса блоков отделяются ";" (см. рис. 3.23).
Рис. 3.22
Перечислим ограничения, которых не видно на рис. 42: $C$4=0; $D$5=0; $E$6=0; $F$3:$F$6=1.
Рис. 3.23
Первая запись в группе Ограничения представляет собой совокупность ограничений по дополнительным переменным ui. Каждая ячейка блока в левой части неравенства содержит формулу одного ограничения (см. рис. 3.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 д. е. (см. рис. 3.21).