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

Дискретные задачи оптимизации в экономике, планировании и управлении. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
935 Кб
Скачать

нам. Плату за пребывание относим ко времени проезда каждой дуги, которая также вычисляется в наших расчетах. В общем случае можно формулировать задачу так: для всех или некоторых дуг есть разные способы их проезда, различающиеся по времени и затратам. Требуется найти маршрут и способ проезда каждой дуги маршрута, минимизирующий время движения между начальным и конечным узлами при ограничениях на суммарные затраты.

Такая формулировка относится не только к езде на автотранспорте (который, кстати, часть пути может преодолевать не своим ходом, а на пароме или даже железнодорожной платформе), но и к перемещениям пассажиров с помощью общественного транспорта, включая такси. В связи с этим общий метод решения подобных задач рассмотрим в следующем разделе, посвященном именно использованию общественного транспорта.

Для сведения задачи к общей задаче о быстрейшем маршруте с ограничением на затраты заметим также, что при проезде определенного участка часть затрат, связанных с расходом горючего, уже была рассмотрена и что к этим затратам нужно приплюсовать стоимость въезда и стоимость проезда, если требуется оплачивать, а для перемещения с помощью другого транспортного средства стоимостью является плата за пользование им.

11.3.Оптимизация выбора маршрута

сиспользованием общественного транспорта с учетом стоимости проезда

Альтернатива для пассажира примерно та же, что и для автомобилиста: использовать более быстрые, но и более дорогие способы передвижения (экспрессы, такси) или более медленные и дешевые, включая пешеходные переходы. Не будем вдаваться в способы оплаты, которых существует великое множество, ограничимся случаем оплаты (или неоплаты) зависящей от способа проезда каждого отдельного переезда между пересадками. Динамику рассматривать не будем, оптимизируем маршрут «в среднем», считая, что время перемещения из одного узла (выделенной остановки) в другой складывается из времени ожидания рейса, принимаемого за половину интервала между рейсами, и времени собственно переезда. Итак, у нас имеется транспортная система в виде сети с узлами – выделенными остановками, дугами – участками МОТ, их соединяющими. Два узла может соединять несколько дуг, по числу МОТ между этими оста-

121

новками. Возможные пешеходные переходы также представляются дугами. Характеристиками j-й дуги является время передвижения tj и его стоимость mj.

Предлагаемый алгоритм почти не отличается от приведенного в предыдущем разделе. Но теперь задача решается на мультиорграфе,

а не просто на орграфе. В связи с этим вместо

 

«Для

всех

l J2k

вычислить

j = Arc(k, l),

T′ = T(k, T) + tj,

M′ = M(k, T) + mj»

 

 

 

 

следует дать такую формулировку:

 

 

«Для

всех

l J2k,

j ARC(k, l)

вычислить

T′ = T(k, T) + tj,

M′ = M(k, T) + mj»

К чему приводит это изменение, рассмотрим на примере. Пусть имеются 6 остановок шести автобусных маршрутов: двух экспрессов Э1 и Э2 и четырех обычных М1, М2, М3 и М4. Граф возможных переездов изображен на рис. 11.2.

 

3

4

6

1

2

5

 

 

Рис. 11.2. Граф возможных переездов по автобусным маршрутам

 

На графе переезды на экспрессах обозначены пунктирными дугами. Переезд с остановки 1 до остановки 5 по каждому маршруту показан в виде дуги 1–5, хотя фактически это последовательность дуг 1–2 и 2–5. Но разница есть: стоимость проезда непосредственно от остановки 1 до остановки 5 меньше, чем сумма стоимостей проезда от 1-й до 2-й и от 2-й до 5-й остановки, как это обычно и бывает в пригородном сообщении. Именно ввиду того, что нас интересует стоимость поездки, введены на каждом маршруте дуги 1–5, неэквивалентные последовательностям дуг 1–2 и 2–5.

Исходные данные представлены в табл. 11.9.

122

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 11.9

 

 

 

Время и стоимость проезда на автобусных маршрутах

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Маршрут

 

Участок

 

Время

 

Цена, руб.

 

Э1

 

 

 

 

1–2

 

 

10

 

30

 

 

 

 

 

 

 

1–5

 

 

35

 

60

 

 

 

 

 

 

 

2–5

 

 

25

 

45

 

М1

 

 

 

1–2

 

 

15

 

15

 

 

 

 

 

 

 

1–5

 

 

50

 

35

 

 

 

 

 

 

 

2–5

 

 

35

 

30

 

М2

 

 

 

2–3

 

 

15

 

15

 

М3

 

 

 

4–5

 

 

15

 

15

 

Э2

 

 

 

 

3–4

 

 

25

 

45

 

М4

 

 

 

3–4

 

 

35

 

30

 

 

 

 

 

 

 

3–6

 

 

50

 

35

 

 

 

 

 

 

 

4–6

 

 

15

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 11.10

 

Порядок расчета быстрейшего маршрута с ограничением по стоимости

 

 

 

 

 

 

 

 

 

Стоимость

 

Очередь

Узел

 

Экз.

МОП

Предшествующий

Время, мин

 

 

Узел

Экз.

с начала, руб.

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

1

 

 

 

 

0

 

0

 

2

 

2

 

1

Э1

1

 

1

10

 

30

 

3

 

2

 

2

М1

1

 

1

15

 

15

 

6

 

5

 

1

Э1

1

 

1

35

 

60

 

7

 

5

 

2

М1

1

 

1

50

 

35

 

4

 

3

 

1

М2

2

 

1

25

 

45

 

 

 

5

 

хуже (5,1)

Э1

2

 

1

35

 

75

 

 

 

5

 

хуже (5,1)

М1

2

 

1

45

 

60

 

5

 

3

 

2

М2

2

 

2

30

 

30

 

 

 

5

 

хуже (5,1)

Э1

2

 

2

40

 

60

 

 

 

5

 

хуже (5,2)

М1

2

 

2

50

 

45

 

 

 

4

 

недопустимо

Э2

3

 

1

50

 

90

 

хуже (4,2)

 

4

 

1

М4

3

 

1

60

 

75

 

финал

 

6

 

1

М4

3

 

1

75

 

80

 

хуже (4,4)

 

4

 

2

Э2

3

 

2

55

 

75

 

хуже (4,5)

 

4

 

3

М4

3

 

2

65

 

60

 

финал

 

6

не оптимально

М4

3

 

2

80

 

65

 

8

 

4

 

4

М3

5

 

1

50

 

75

 

9

 

4

 

5

М3

5

 

2

65

 

50

 

 

 

6

 

недопустимо

М4

4

 

4

65

 

90

 

финал

 

6

не оптимально

М4

4

 

5

80

 

65

 

Будем решать задачу о быстрейшем маршруте стоимостью не более 80 руб. Порядок расчета в соответствии со сформулированным алгоритмом представлен в табл. 11.10. Видно, что некоторые потенциальные экземпляры узлов не включаются в расчеты, поскольку

123

они доминируются ранее созданными узлами по времени или по скорости. Ранее созданные экземпляры узлов вычеркиваются по той же причине (показано в столбце «Экз.»). Также не вводятся узлы, для которых стоимость с начала маршрута превысила ограничение. В результате расчетов получен оптимальный маршрут: 1–Э1–2–М2–3– М4–6 со временем 75 мин и стоимостью 80 руб. и в качестве дополнения два субоптимальных 1–М1–5–М3–4–М2–6 и 1–М1–2–М2–3– М4–6 со временем 80 мин и стоимостью 65 руб. для каждого. Продолжая расчеты, можно было бы пытаться найти субоптимальные маршруты с еще большим допустимым отклонением по времени от оптимального, но в данном случае, с учетом цены, ничего нового мы не получим: более долгих маршрутов просто нет, а другие маршруты с тем же временем 80 мин имеют большую стоимость (это те же маршруты, но с высадкой и немедленной посадкой на промежуточной остановке, а значит, и более дорогие).

Заметим, что наш алгоритм является в некотором смысле алгоритмом векторной, многокритериальной оптимизации. А именно: мы получаем не только маршрут, оптимальный по времени с учетом ограничения на цену. Если таких маршрутов несколько, среди них мы получаем маршрут с минимальной ценой. Данный пример этого не показывает. Но если уменьшить цену проезда между остановками 1 и 2 на Э1 до 28 руб. и ввести маршрут Э3 между остановками 4 и 6 со временем 10 мин и стоимостью 30 руб., то первым будет получен оптимальный по времени маршрут 1–Э1–2–М2–3–М4–6 со стоимостью 80 руб., а потом он будет замещен на маршрут 1–М1–5–М3–4– Э3–6 с тем же временем, но меньшей стоимостью – 78 руб.

11.4. Экономическая интерпретация задачи

Отмечалось, что задача об оптимальной замене оборудования может быть решена как задача об оптимальном маршруте на сети, узлы которой – состояние парка оборудования на начало определенного года. В ходе решения для каждого узда определялись суммарные затраты с начала работы организации. Однако для закупки оборудования или его замены требуются денежные средства, а их в начале работы организации может быть недостаточно. Можно рассмотреть динамику денежных средств, а не только затрат, учтя и доходы. В этом случае может идти речь о выборе стратегии закупки и обновления оборудования, ограниченной наличными денежными средствами. С другой стороны, при нехватке средств целесообразно взять кредит, но не любых условиях, причем лимит кредитования связан с

124

размерами активов организации. С учетом возможностей кредитования и возврата кредитов может быть поставлена задача об оптимальной траектории развития организации в расширенном пространстве состояний, включающих показатели финансового состояния организации. Ограничения на значения последних изменяются во времени, что изменяет задачу, но не кардинально.

11.5. Применение алгоритмов субоптимальной маршрутизации для многокритериальной оптимизации маршрута

В общем случае выбор и реализация определенного маршрута приводит к набору эффектов, которые далеко не всегда можно свести к одному. Основными являются время в пути и затраты (горючее и оплата платных участков дорог для автомобильного маршрута, стоимость билетов для пассажира общественного транспорта). Могут быть и дополнительные эффекты, связанные с утомительностью или, наоборот, привлекательностью пути и риском аварийности, который неодинаков на разных участка дорожной сети. При рассмотрении совокупности эффектов могут применяться разные подходы: 1) соизмерение эффектов путем задания определенных весов каждому; 2) задание ограничений на значения критериальных показателей, кроме одного, который считается важнейшим, и наконец, 3) определение Парето-оптимальных решений или, иначе, недоминируемых альтернатив, окончательный выбор из которых производится на основе неформализуемых соображений.

Первый случай ничего не добавляет к ранее рассмотренным, если каждый критериальный показатель представляет собой сумму фиксированных слагаемых для каждого участка пути, как обычно бывает. В этом случае легко определяется совокупный эффект для каждого участка сети и решается задача определения маршрута, минимизирующего сумму таких величин на участках маршрута. Во втором же случае это задача с дополнительными ограничениями. Обе задачи рассмотрены выше, в разделах 11.1 и 11.2.

Парето-оптимальным, или оптимальным по Парето, маршрутом (частным случаем общего понятия точки Парето) называется маршрут, который нельзя улучшить хотя бы по одному критерию без ухудшения по остальным критериям. В частном случае, когда критериями является минимум времени и минимум стоимости для Паретооптимального маршрута любой другой, занимающий меньшее время,

125

имеет большую цену, а маршрут, имеющий меньшую стоимость, занимает большее время. Ввиду неочевидности соизмерения разных эффектов, например, времени и денег, рациональный выбор может осуществляться вручную на основе дополнительных соображений и интуиции из набора неулучшаемых альтернатив, т.е. точек Парето.

Парето-оптимизация представляет собой самостоятельную задачу, но необходимые вычисления можно выполнить, в основной пользуясь методом решения задач субоптимальной маршрутизации.

Пусть у нас два критерия. По каждому из них мы можем определить оптимальный маршрут и для него вычислить значение другого критерия. Пусть мы имеем соответственно значения первого и второго целевых показателей C11 = C1OPT < C12 и C21 > C22 = C2OPT. Очевидно, что и первая и вторая точки Парето-оптимальны, так как для первой нельзя уменьшить значение первого показателя, а для второй – второго. Если же оптимальный маршрут по какому-либо критерию не единствен, нужно в качестве первой точки выбрать такую, в которой значение другого критерия минимально. Теперь ясно, что для всех остальных точек Парето C1 < C12, а C2 < C21. Следовательно, их можно искать либо во множестве всех субоптимальных с точностью до C12 – C11 по первому критерию, либо во множестве всех субоптимальных с точностью до C21 – C22 по второму критерию. При оптимизации по первому критерию нужно упорядочить полученные точки сначала по первому целевому показателю, а при равенстве значений первого показателя – по второму. Очевидно, что среди только точек с определенным значением первого показателя лишь точки с минимальными значениями второго показателя являются точками Парето. Сузить множество решений можно, учтя ограничение по второму критерию.

Рассмотрим применение такого способа Парето-оптимизации к ранее рассмотренной в разделе 11.3 задаче. Оптимальным по времени маршрутом, если отбросить стоимостное ограничение, будет маршрут 1–Э1–5–4–М3–4–М4–6 со временем 65 мин и со стоимостью 90 руб. Наоборот, при минимизации по стоимости оптимальными маршрутами будут 1–М1–5–М3–4–М2–6 и 1–М1–2–М2–3–М4–6 со временем 80 мин и стоимостью 65 руб. для каждого. Следовательно, для Парето-оптимизации следует искать все маршруты, субоптимальные либо по времени, либо по стоимости, с временем не более 80 мин и со стоимостью не более 90 руб. В итоге мы получим в качестве точек Парето все ранее полученные оптимальные по времени и

126

стоимости и субоптимальные по времени маршруты со значениями критериев (65 мин, 90 руб.), (75 мин, 80 руб.), (80 мин, 65 руб.).

Данный подход обобщается и на большее количество критериев. Заметим, что в данной задаче принципиально возможно построить всё множество Парето ввиду конечного количества рассматриваемых альтернатив. В задачах с непрерывными переменными это далеко не так: вычислить можно лишь отдельные точки Парето, на основании которых приближенно представить всё искомое множество весьма непросто.

Вопросы и упражнения

1.Для задачи, решение которой описано в разделе 11.2, по данным расчетов, представленных в табл. 11.4–11.8, определить две точки Парето по отношению к критериям «время в пути», «затраты горючего».

2.Выполнить расчет оптимального маршрута для примера из раздела 11.3 с изменениями в данных (табл. 11.11).

Таблица 11.11

Время и стоимость проезда на измененных и дополнительных маршрутах

Маршрут

Участок

Время

Цена, руб.

Э1

1–2

12

28

 

1–5

37

55

 

2–5

25

40

Э3

4–6

12

30

127

12. ЗАДАЧА КОММИВОЯЖЕРА

Эта задача имеет отношение к логистике, как внешней, так и складской, хотя есть интерпретации и для повседневной жизни. Вам нужно посетить почту, аптеку и два известных магазина. Нужно выбрать маршрут минимальной длины. Или: нужно погрузить на тележку упаковки из заданных складских ячеек для доставки на пункт выдачи. Каков должен быть маршрут тележки? Как это и бывает в большинстве случаев, множество возможных обстоятельств здесь не учитывается, например, часы работы посещаемых служб и ожидаемое время обслуживания, которое может меняться в течение дня, неудобство перемещения крупного или громоздкого груза на большое расстояние и т.п. Зато задача представляет собой одну из универсальных схем, которые можно использовать в расчетах и при необходимости применять с некоторыми модификациями в конкретных обстоятельствах.

Рассмотрим постановку задачи и методы ее решения.

Имеется N пунктов и транспортная связь между любой парой пунктов. Расстояние (или стоимость) перемещения между двумя пунктами известна. Найти последовательность обхода всех вершин с минимальной длиной (стоимостью).

Далее будем называть целевой показатель длиной маршрута. Выбор начального пункта не имеет значения, так как ищутся циклические маршруты.

Задачу можно решать прямым перебором, но уже для не очень больших размерностей такой способ оказывается бесперспективным. Общее количество вариантов составляет (N – 1)!, т.е. уже при N = 14 – 6227020800, а при N = 30 – «астрономическое» значение 8.84176E + 30. Перебрать такое количество вариантов совершенно невозможно. Но если сделать перебор более целеустремленным, то получить решение, близкое к оптимальному, а то и оптимальное, в преобладающем количестве случаев вполне возможно.

Рассмотрим решение задачи на примере.

Дана таблица расстояний в километрах между городами (табл. 12.1).

 

 

 

 

 

Таблица 12.1

 

Расстояния между городами, км

 

 

 

 

 

 

 

 

 

 

 

София

Стамбул

Таллин

Тирана

 

Турин

София

 

560

2640

540

 

1560

Стамбул

560

 

2950

1080

 

2120

Таллин

2640

2950

 

2730

 

2650

Тирана

540

1080

2730

 

 

1600

Турин

1560

2120

2650

1600

 

 

128

Попробуем найти маршрут, начиная движение из Таллина и двигаясь каждый раз в сторону самого близкого города. На рис. 12.1 показан фрагмент дерева возможных маршрутов, построенного на основе алгоритма «прохождения дерева в глубину» при указанном способе выбора преимущественного направления. Алгоритм состоит с переходом на следующий уровень в вершину, представляющуюся наиболее перспективной, пока не достигнут нижний уровень, и возвратом наверх на ближайший уровень, где ветвление не произведено. Но никакого отсева бесперспективных маршрутов при таком построении дерева вариантов не предусмотрено. Процесс можно оборвать по времени, довольствуясь лучшим из полученных решений.

Таллин

2640

2650

2730

2950

 

 

 

София

Турин

Тирана

Стамбул

540

560

1560

Тирана

 

 

 

 

 

Стамбул

 

Турин

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1080 1600

Стамбул Турин

2120 2120

Турин Стамбул

2650 2950

Таллин

 

 

 

Таллин

 

 

9030

 

9330

 

 

 

 

 

 

 

 

Рис. 12.1. Дерево вариантов

129

В данном случае трудно сказать, насколько хороший маршрут получился.

Совершенно иной принцип ветвления предлагает алгоритм Литтла с соавторами, реализующий для задачи коммивояжера метод ветвей и границ. Прежде всего в нем заложена оценка любого набора маршрутов – либо полного (всевозможные маршруты), либо частичного, характеризующегося включением в маршруты определенного набора участков и (или), наоборот, невключением другого набора участков.

Продемонстрируем это сначала на полном наборе маршрутов. В следующей таблице показано для каждого города, какое минимальное расстояние нужно проехать до следующего города, выехав из него. А так как искомый маршрут проходит через все города, сумма этих расстояний не меньше, чем длина кратчайшего маршрута.

На следующем шаге нужно проделать странное по виду преобразование – вычесть соответствующие расстояния из данных каждой строки, поставив при этом условное обозначение ∞ по диагонали, что означает, что маршрут не допускает переезда из каждого города

всамого себя. На каждом допустимом маршруте из каждой строки и каждого столбца выбирается ровно одна клетка, что, соответственно, означает ровно один выезд из каждого города и ровно один въезд

вкаждый город. Нашим преобразованием мы представили длину каждого переезда в виде суммы значений, взятых из соответствующей строки табл. 12.2 и значения в соответствующей переезду клетке преобразованной табл. 12.3. Например, для переезда Таллин–София (расстояние 2640) это сумма 2640 км из строки «Таллин» табл. 12.2 и значения 0 из табл. 12.3, а для переезда Турин–Таллин (расстояние 2650) это сумма 1560 строки «Турин» табл. 12.2 и значения 1090 из табл. 12.3

Таблица 12.2

Результаты первого этапа решения задачи коммивояжера, км

Расстояние до ближайшего пункта

София

540

Стамбул

560

Таллин

2640

Тирана

540

Турин

1560

Всего

5840

130

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]