Дискретные задачи оптимизации в экономике, планировании и управлении. Учебное пособие
.pdf
|
|
|
|
|
|
|
|
|
|
Таблица 8.6 |
|
|
|
|
Значения C(m(2), n(2), 2) |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Левый |
Правый |
C(m(2), n(2), 2) |
Левый |
Правый |
C(m(2), n(2), 2) |
||||||
блок m(2) |
блок n(2) |
блок m(2) |
блок n(2) |
||||||||
|
|
|
|||||||||
2 |
2 |
|
5 |
|
4 |
|
4 |
|
|
0 |
|
2 |
3 |
|
0 |
|
4 |
|
5 |
|
|
–5 |
|
2 |
4 |
|
4 |
|
4 |
|
6 |
|
|
–10 |
|
2 |
5 |
|
–1 |
4 |
|
7 |
|
|
–15 |
||
2 |
6 |
|
–6 |
5 |
|
5 |
|
|
–8 |
||
2 |
7 |
|
–11 |
5 |
|
6 |
|
|
–13 |
||
3 |
3 |
|
–8 |
5 |
|
7 |
|
|
–18 |
||
3 |
4 |
|
–4 |
6 |
|
6 |
|
|
–10 |
||
3 |
5 |
|
–9 |
6 |
|
7 |
|
|
–15 |
||
3 |
6 |
|
–14 |
7 |
|
7 |
|
|
–12 |
||
3 |
7 |
|
–19 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Таблица 8.7 |
|
|
|
|
Значения C(m(3), n(3),3) |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Левый |
Правый |
C(m(3), n(3),3) |
|
Левый |
Правый |
|
C(m(3), n(3),3) |
||||
блок m(3) |
блок n(3) |
|
блок m(3) |
блок n(3) |
|
||||||
|
|
|
|
||||||||
3 |
3 |
|
5 |
|
4 |
|
5 |
|
|
12 |
|
3 |
4 |
|
0 |
|
4 |
|
6 |
|
|
13 |
|
3 |
5 |
|
4 |
|
5 |
|
5 |
|
|
4 |
|
3 |
6 |
|
–1 |
|
5 |
|
6 |
|
|
5 |
|
4 |
4 |
|
–6 |
|
6 |
|
6 |
|
|
–5 |
|
|
|
|
|
|
|
|
|
|
|
Таблица 8.8 |
|
|
|
|
Значения C(m(4), n(4), 4) |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||
Левый |
Правый |
|
C(m(4), n(4), 4) |
|
Левый |
|
Правый |
|
|
C(m(4), n(4), 4) |
|
блок m(4) |
блок n(4) |
|
|
блок m(4) |
|
блок n(4) |
|
|
|||
|
|
|
|
|
|
||||||
4 |
4 |
|
10 |
|
5 |
|
5 |
|
|
25 |
|
4 |
5 |
|
22 |
|
|
|
|
|
|
|
|
В результате получаем оптимальную границу карьера на разрезе (рис. 8.2).
–2 |
–1 |
–2 |
–2 |
–1 |
–2 |
–2 |
–2 |
|
10 |
–3 |
5 |
–3 |
–3 |
–3 |
|
|
|
|
8 |
10 |
6 |
|
|
|
|
|
|
12 |
|
|
|
Рис. 8.2. Оптимальная граница карьера
91
Вопросы и упражнения
1.Пусть месторождение покрыто сеткой M×N квадратных блоков, N >> M , горные работы движутся вдоль длинной стороны покрывающего прямоугольника. Сколько имеется допустимых конфигураций ВП? Сколько в среднем конфигураций соответствуют определенному количеству блоков?
2.Пусть песчаный карьер разрабатывает месторождение, состоящее из шести блоков, как показано на рис. 2.1–2.6 (на каждом блоке указана прибыль от его извлечения). За один год извлекаются два блока, причем каждый извлекаемый блок должен быть смежен хотя бы с одним блоком, извлеченным ранее или извлекаемым в текущем году (блоки, имеющие лишь одну общую вершину, смежными не считаются).
Определить оптимальный порядок разработки месторождения по критерию ЧДД (чистый дисконтированный доход), считая коэффициент дисконтирования для 1-го года равным 1, для 2-го – 0,9; для 3-го – 0,8. Для решения поставленной задачи охарактеризовать возможные состояния и граф переходов.
Варианты заданий
|
|
0,9 |
|
0,7 |
|
0,8 |
|
|||
|
|
0,6 |
|
1,0 |
|
|
|
|
||
|
|
0,8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.1 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,7 |
|
0,8 |
|
||
|
|
0,6 |
|
1,0 |
|
|
|
|
||
|
|
0,8 |
|
0,9 |
|
|
|
|
||
|
|
|
|
|
Рис. 2.2 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,8 |
|
|
|
|
|
|
|
|
|
|
0,7 |
|
|
|
|
|
|
|
0,6 |
|
1,0 |
|
|
|
||
|
|
|
0,8 |
|
0,9 |
|
|
|
||
|
|
|
|
|
Рис. 2.3 |
|
|
|
||
|
|
|
|
|
|
|||||
|
|
|
0,7 |
|
0,8 |
|
0,8 |
|||
0,6 |
|
1,0 |
|
|
|
|
|
|
||
|
|
|
0,9 |
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.4 |
|
|
|
||
92
0,8 0,6
0,7
1,0
0,9 0,8
Рис. 2.5
0,8
0,7
0,6 1,0
0,8 0,9
Рис. 2.6
93
9. ОПТИМИЗАЦИЯ МАРШРУТА НА ДИНАМИЧЕСКОЙ СЕТИ
Вопрос о рациональном маршруте на транспортной сети тесно связан с ее загруженностью, которая обычно изменяется во времени. Фактически во многих случаях имеется закономерное изменение во времени (суток, недели и т.п.) загруженности и эффективной скорости движения для транспортных сетей, примерами чего являются:
1.Перевозки технологическим транспортом внутри предприятия –
всилу эффектов начала и завершения смены, неодинаковости транспортной нагрузки для разных смен.
2.Транспортные сети общего назначения (авиационное сообщение, пригородное железнодорожное сообщение). Задано расписание рейсов или их частота в зависимости от времени дня.
3.Городские транспортные сети (часы пик и часы пониженной нагрузки).
Кроме того, имеет место неопределенность в продолжительности движения, связанная либо с характером самих транспортных процессов, либо с недостаточной информированностью о них. Например, отсутствует общедоступная информация о режимах работы всех светофоров в городской дорожной сети, не сообщается расписание движения поездов метро, даже если оно строго выдерживается.
В связи с этим возникают новые типы задач:
1.Задача о быстрейшем пути на сети, для которой время прохождения каждого ребра зависит от времени начала движения t. Данная задача может быть применена как к маршрутизации автомобиля при известной динамике участков УДС, так и к выбору маршрута в общественном транспорте с известным расписанием рейсов.
2.Задача о маршруте, в среднем оптимальном, когда задержки в пути являются случайными величинами с известным распределением.
3.Задача о маршруте, имеющем минимальную гарантированную продолжительность.
Для некоторых из таких задач предложены модификации методов, рассмотренных в настоящем пособии.
9.1.Оптимизация маршрута на дорожной сети
сдетерминированной динамикой характеристик
Движение по загруженным транспортным сетям не является свободным: транспортные средства движутся со скоростью потока, которая, в свою очередь, зависит от его плотности. Фактически обычно имеется закономерное изменение во времени (суток, недели и т.п.) за-
94
груженности транспортных сетей, что особенно очевидно для городских дорожных сетей (часы пик и часы пониженной нагрузки). Важность учета закономерного изменения характеристик при выборе маршрута несомненна, когда характеристики отдельных участков существенно изменяются в течение маршрута. Такая ситуация типична для достаточно продолжительной поездки, захватывающей часы пик. Существуют и другие ситуации, вызывающие непостоянство времени движения по определенному маршруту: закрытие железнодорожных переездов на длительное время, разведение мостов, реверсивный режим движения по определенным участкам (в 2011 г. автор был свидетелем последней ситуации в отношении проезда по мосту через Клязьму во Владимире). Возможно, что часть пути автомобиль преодолевает на пароме, который ходит по определенному расписанию. Можно было бы учесть и режим светофоров, если он является постоянным, заранее известным. В нижеперечисленных случаях зависимость времени движения по маршруту от момента ее начала может и не быть непрерывной.
Рассмотрим постановку и свойства задачи вычисления оптимальных маршрутов в сети с заданной динамикой. Динамику сети определяют зависимости tij(t) времени прохождения ребра (i, j) от момента начала движения по ребру t. Подчеркнем, что теперь граф сети обязательно следует считать ориентированным, так как в общем случае tij(t) ≠ tji(t).
Естественно предположить, что Tij(t) = t + tij(t) – неубывающая функция (в силу дискретного характера задержек на светофорных перекрестках и железнодорожных переездах монотонное возрастание будет иметь место, только если будем учитывать временную задержку в очереди перед переездом). Практически, с учетом погрешности информации, зависимость Tij(t) достаточно представить кусочнолинейной функцией или даже кусочно-постоянной функцией.
Как и для статических сетей, ограничимся задачей об оптимальном маршруте между парой вершин сети. Задачи об оптимальном маршруте для различных начальных вершин могут решаться независимо и параллельно. Будем считать начальную вершину первой. В задаче для каждого j = 1, …, m требуется определить Tj(t)— минимальное время достижения i-й вершины графа при начале движения
в1-й вершине в момент времени t.
Всилу сделанных предположений справедливы соотношения, обобщающие условия оптимальности для статической сети
T1(t) = t, |
(9.1) |
Tj(t) = min{Ti(t) + tij(Ti(t))| i J1j}, j = 1,…, m, j ≠ 1. |
(9.2) |
95
На основе этих соотношений предлагается обобщение метода Дейкстры [3] (время t считаем заданным). Наряду с Tj(t) = T′ для каждой вершины вычисляется предшествующая вершина kj(t) на оптимальном маршруте из 1-й в j-ю, что позволяет восстановить оптимальный маршрут. Кроме того, запоминается последовательность вершин в порядке завершения вычисления Tj(t) – {i1, …, in}.
Алгоритм модифицированного метода Дейкстры
1.Положить T1 = t, K = . K′ = {1}, l = 0.
2.Если K′ = , остановиться. Иначе определить i K′, для которой достигается минимум Tj(t) для j K′, положить l = l + 1, il = i, и перевести i из K′ в K.
3.Добавить в K′ множество вершин J2i\(K K′ ) и определить для них Tj(t) = Ti(t) + tij(Ti(t)), kj(t) = i.
4.Для прочих вершин из K′∩ J2i вычислить T′ = Ti(t) + tij(Ti(t)). Если T′ < Tj(t), положить Tj(t) = T′, kj(t) = i.
5.Перейти к п. 2.
Применение алгоритма можно проиллюстрировать примером маршрутизации на сети, показанной на рис. 9.1, из узла 1 в узел 7. Динамика сети представлена табл. 9.1, результат решения показан в табл. 9.2, 9.3.
|
|
|
|
|
7 |
|
|
9,5 |
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
8,5 |
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7,5 |
|
|
|
6 |
|
|
|
|
7 |
|
|
|
|
|
|
|
6,5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5,5 |
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
4,5 |
|
|
|
|
2 |
|
|
|
4 |
|
|
|
|
|
|
|
3,5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
3 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2,5 |
|
|
|
|
|
|
|
|
2 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
|
|
|
Рис. 9.1 |
|
|
|
|
96
Возьмем, для примера, в качестве времени старта 4,9 (4:54).В этом случае узел 4 достигается быстрее из узла 1, чем из узла 2. Время в пути составляет 0,159 ч (10 мин). Оптимальный маршрут – 1–4–6–5–7. А при времени старта 07:36 оптимальный маршрут – 1–2–4–6–5–7 и его время значительно больше – 0,267 ч (16 мин).
Таблица 9.1
Данные о динамике дорожной сети
Начальный |
Конечный |
Длина |
|
Скорость во временном интервале |
|
|||||
узел |
узел |
0–5 |
5–7 |
7–9 |
9–12 |
12–15 |
15–17 |
17–19 |
||
|
||||||||||
1 |
2 |
4,03 |
90 |
70 |
60 |
70 |
80 |
70 |
60 |
|
1 |
4 |
3,91 |
60 |
40 |
25 |
40 |
45 |
35 |
20 |
|
2 |
3 |
4,12 |
90 |
70 |
60 |
70 |
80 |
70 |
60 |
|
2 |
4 |
2,24 |
80 |
60 |
40 |
50 |
80 |
80 |
60 |
|
3 |
5 |
6,26 |
90 |
70 |
50 |
60 |
80 |
60 |
45 |
|
4 |
2 |
2,24 |
80 |
80 |
60 |
80 |
80 |
60 |
40 |
|
4 |
6 |
2,24 |
60 |
50 |
30 |
40 |
60 |
60 |
50 |
|
5 |
6 |
1,50 |
60 |
60 |
60 |
60 |
60 |
60 |
60 |
|
5 |
7 |
2,24 |
90 |
70 |
50 |
60 |
80 |
65 |
45 |
|
6 |
5 |
1,50 |
60 |
60 |
60 |
60 |
60 |
60 |
60 |
|
6 |
7 |
3,20 |
70 |
45 |
25 |
40 |
45 |
35 |
20 |
|
|
|
|
|
|
Таблица 9.2 |
|
|
|
Маршрут при времени старта 4,900 (04:54) |
|
|||
|
|
|
|
|
|
|
Узел |
Время, ч |
Время, |
Скорость |
Предшествующий |
Очередь |
|
ч:мин |
на предыдущем участке |
узел |
||||
|
|
|
||||
2 |
4,945 |
4:57 |
90 |
1 |
2 |
|
3 |
4,991 |
4:59 |
90 |
2 |
4 |
|
4 |
4,965 |
4:58 |
60 |
1 |
3 |
|
5 |
5,027 |
5:02 |
60 |
6 |
6 |
|
6 |
5,002 |
5:00 |
60 |
4 |
5 |
|
7 |
5,059 |
5:04 |
70 |
5 |
7 |
|
|
|
|
|
|
Таблица 9.3 |
|
|
|
Маршрут при времени старта 7,600 (07:36) |
|
|||
|
|
|
|
|
|
|
|
Время, ч |
Время, |
Скорость |
Предшествующий |
Очередь |
|
|
ч:мин |
на предыдущем участке |
узел |
|||
|
|
|
||||
2 |
7,667 |
7:40 |
60 |
1 |
2 |
|
3 |
7,736 |
7:44 |
60 |
2 |
4 |
|
4 |
7,723 |
7:43 |
40 |
2 |
3 |
|
5 |
7,823 |
7:49 |
60 |
6 |
6 |
|
6 |
7,798 |
7:48 |
30 |
4 |
5 |
|
7 |
7,867 |
7:52 |
50 |
5 |
7 |
|
97
9.2. Оптимизация маршрута с использованием общественного транспорта с известным расписанием
Пассажир общественного транспорта обычно часть пути преодолевает пешком (от исходного пункта до первой остановки и от последней – до конечного пункта, на некоторых пересадках; впрочем, последнее учитывать не будем). Будем считать, что каждый из этих участков проходится за фиксированное время. Что касается движения на транспорте, будем считать, что пассажир имеет возможность на остановке сесть на ближайший рейс выбранного маршрута общественного транспорта (МОТ), хотя в действительности он может иногда торопиться и не всегда может сесть в переполненный автобус или трамвай. Предположение о том, что городской общественный транспорт может придерживаться заранее объявленного расписания, к сожалению, неприменимо к Москве, но вполне оправдывается для менее крупных городов, например Риги, Праги, Стокгольма, Гданьска.
У рассматриваемой задачи может быть и другая область применения – выбор маршрута перевозки небольшого груза при помощи транспортных средств, движущихся по расписанию (почтовобагажные поезда, паромы, самолеты с грузовым отсеком и проч.).
Метод решения этой задачи принципиально тот же, что и для задачи из предыдущего раздела, но применительно к сети иного рода. Дуги этой сети – элементарные передвижения, к которым относятся либо пешеходные переходы перечисленных типов, либо проезды по одному МОТ от посадки до высадки. При этом не стоит учитывать явно нерациональных передвижений – проезда на одном МОТ с высадкой на промежуточной остановке и повторной посадкой. То же относится и к параллельным участкам нескольких маршрутов, имеющих один и тот же набор остановок. Поэтому, кроме возможных начальной и конечной остановок, узлами сети возможных передвижений следует считать только остановки, на которых можно пересесть с одного МОТ на другой.
Итак, узлы сети – это начальный и конечный пункты маршрута, ближайшие к ним остановки и остановки пересадок. Дуги – участки пешего движения и переезды на МОТ между выделенными остановками. В этом разделе мы не учитываем стоимость поездок, в связи с чем объединяем в одну дугу поездки на нескольких МОТ между парой выделенных остановок, если эти МОТ останавливаются на обеих. Таким образом, сеть возможных маршрутов (пассажира или груза) – орграф (с учетом стоимости это уже мультиорграф). Номера МОТ играют
98
лишь роль меток, тогда как для расчета важны конкретные рейсы в одном направлении (кольцевые маршруты здесь не будут рассматриваться специально), тем более что зачастую не маршрут, а рейс определяет набор остановок (особенно на железнодорожном транспорте). Поэтому далее под МОТ будем понимать конкретный рейс.
Кроме начального (0-го) и конечного (1-го) узлов, набора выделенных остановок I, среди которых выделяются подмножества начальных I0 и конечных I1, исходной информацией служат времена пешего движения t0j для j I0 и tj1 для j I1 и расписание маршрутов. Ввиду того что нас интересуют только выделенные остановки, расписание i-го МОТ представляет собой последовательность пар ((T(i,s), j(i,s)), s = 1,…, N(i)).
Введем дуги между всеми парами узлов (0, j) для j I0 и (1, j) для j I1, с соответствующими временами их прохождения t0j, tj1. Остальные дуги сети определяются так: пара узлов (k,l) связана дугой, если найдется хотя бы один МОТ, проходящий оба узла в указанном порядке. То есть, формально: k = j(i, s), l = j(i, q), s<q. Все такие МОТ образуют множество IМОТ(k, l). Для каждого из них будем обозначать s(i, k) и s(i, l), если соответственно j(s(i, k)) = k, j(s(i,l)) = l. Легко понять, что осведомленный пассажир, собирающийся проехать между остановками k, l, будет выбирать МОТ по моменту прибытия на конечную, а не начальную остановку. Таким образом, упорядочим по возрастанию на IМОТ(k, l) значения T(i, s(i, l)). Для простоты будем считать, что МОТ в IМОТ(k,l) занумерованы в порядке возрастания T(i,s(i, l)) (если это не так, перенумеруем их), их количество – NМОТ(k, l). Тогда ясно следующее: пассажир, прибывший на остановку k до T(1, s(1, k)), должен дожидаться момента времени и тогда он попадет на остановку l в момент времени T(1, s(1, l)). Иначе говоря, для t [0, T(1, s(1, k))] Tkl(t) = T(1, s(1, l)). Если он прибыл на остановку k после T(1, s(1, k)), но до T(2, s(2, k)), он попадет на остановку l в момент времени T(2, s(2, l)). Но что будет, если T(2, s(2, k)) ≤ T(1, s(1, k))? Тогда пассажиру лучше ждать момента времени T(1, s(1, k)) для посадки на первый рейс (экспресс), который прибывает на остановку l раньше второго (менее скорого). Следовательно, второй МОТ вообще рассматривать (применительно к переезду из k в l) не нужно. В общем случае из последовательности IМОТ(k, l) выбрасывается q-й МОТ, если T(q, s(q, k)) ≤ T(q – 1, s(q – 1, k)), после чего перенумеровываются последующие МОТ, и такая проверка выполняется для всего IМОТ(k, l), начиная со второго МОТ. После такой операции уже будет справедливо, что при t (T(i – 1, s(i – 1, k)), T(i, s(i, k))] Tkl(t) =
99
= T(i, s(i, l)). Осталось определить Tkl(t) при t > T(NМОТ(k, l), s(NМОТ(k, l), k)).
Если продолжительность периода, в течение которого должен закончиться маршрут, есть T1, положим для таких t Tkl(t) = 2T1.
После завершения описанных расчетов и преобразований орграф возможных маршрутов полностью определен и можно воспользоваться алгоритмом, приведенным в предыдущем разделе.
В качестве примера рассмотрим маршрут движения от места, находящегося вблизи станций метро «Новокузнецкая» и «Третьяковская», до Ярославского вокзала с проездом исключительно на метро (табл. 9.4, табл. 9.5), которое, безусловно, является наиболее быстрым средством для данного маршрута. Схема московского метрополитена всем известна, поэтому не приводится, отметим также, что рассматриваются следующие варианты маршрута, в целом образующие сеть: от исходного места пешком и на эскалаторе до нижних вестибюлей станций метро «Новокузнецкая» или «Третьяковская», от «Новокузнецкой» до «Павелецкой» кольцевой или «Театральной», от «Третьяковской» до «Марксистской». После соответствующих пересадок проезд соответственно до «Комсомольской» радиальной по Сокольнической линии или до «Комсомольской» кольцевой по Кольцевой линии. Всего оказывается 3 рациональных маршрута, каждый из которых является при определенном времени старта оптимальным.
Задача решается в предположении, что расписание движения поездов известно. В качестве исходных данных принимаются времена пешеходных и пешеходно-эскалаторных переходов (которые должны быть определены под конкретного пассажира), расписание прибытия поездов на станции пересадки и время в пути на каждом маршруте метро. Предполагая интервалы между поездами на каждой линии постоянными для рассматриваемого временного периода, определим моменты отправления поездов (табл. 9.5) и найдем моменты прибытия на каждую остановку по различным маршрутам (табл. 9.6).
|
Таблица 9.4 |
Данные о времени пешеходных переходов |
|
|
|
Переходы |
Время (мин) |
Начало – Новокузнецкая |
5 |
Начало – Третьяковская |
4 |
Театральная – Охотный ряд |
3 |
Комсомольская рад. – Ярославский вокзал |
3 |
Павелецкая рад. – Павелецкая кол. |
2 |
Марксистская – Таганская кол. |
2 |
Комсомольская кол. – Ярославский вокзал |
6 |
100
