Дискретные задачи оптимизации в экономике, планировании и управлении. Учебное пособие
.pdfВопросы и упражнения
1.Оцените трудоемкость модифицированного метода Дейкстры.
2.Определите по алгоритму Йена второй субоптимальный путь из вершины 15 в вершину 22 для сети, описанной в разделе 5.1.
3.Выполните те же вычисления с помощью модифицированного метода Дейкстры с использованием потенциалов вершин.
111
11. ЗАДАЧИ ОБ ОПТИМАЛЬНОЙ ТРАЕКТОРИИ НА СЕТИ С УЧЕТОМ ЗАТРАТ
11.1. Варианты постановки задачи. Оптимизация по комплексному критерию
Кроме времени при выборе маршрута в расчет обычно принимаются и затраты. Прохождение одного и того же участка дороги с разной скоростью приводит к различным затратам горючего, причем существует скорость с минимальным расходом горючего на единицу длины дороги, а при ее уменьшении или увеличении километровый расход горючего возрастает. В любом случае используется известная зависимость километрового расхода топлива от скорости Mт(v).
Скоростной режим, особенно в условиях сильной загруженности городских дорог, далеко не всегда можно свободно выбирать. Некоторые дороги, особенно в области пограничных переходов, бывают сильно загружены даже в ночное время. Впрочем, так бывает не всегда, и тогда возможно выбирать одновременно маршрут и скоростной режим на всех участках маршрута. Кроме того, существуют расходы на проезд по платным дорогам, а также въезд в некоторые зоны, например, в центр городов.
Выбор маршрута может быть оценен по комплексному критерию – взвешенной сумме времени и затрат (на горючее и платные дороги). Слагаемые этого целевого показателя могут быть приписаны отдельным участкам дороги (вместо длины следует использовать значения показателя при наиболее эффективном при действующих ограничениях скоростном режиме). Если расход горючего на маршруте ничем не ограничен, то задача на графе с такими весами ребер ничем не отличается от ранее рассмотренных. Если же он лимитирован (или ограничены общие затраты), задача становится существенно иной. Задача в этом случае может быть поставлена как задача об оптимальном маршруте, но не на исходной сети, а на ассоциированном графе. Каждому узлу исходной сети в ассоциированном графе соответствуют несколько экземпляров, различающихся по значению израсходованного либо оставшегося ресурса (денежного или горючего). Подобным же образом трактуется и задача об оптимальном маршруте передвижения (перевозки) с помощью общественного транспорта с ограничением на его стоимость.
112
|
|
6 |
|
90 |
|
5 |
|
50 |
|
|
|
90 |
50 |
|
4 |
80 |
3 |
|
||
90 |
|
50 |
2 |
80 |
1 |
|
Рис. 11.1
Прежде чем переходить к более сложной задаче, рассмотрим более простую, а затем усложним ее.
Рассмотрим решение задачи на примере. Пусть движение осуществляется на сети, орграф которой показан на рис. 11.1. На дугах показана максимальная скорость (в км/ч).
В табл. 11.1 показаны характеристики дуг сети и их прохождения при разной скорости.
Таблица 11.1
Исходные данные к задаче совместного выбора маршрута и скоростного режима
|
|
|
Время прохождения дуги (мин) и расход |
|||||
Дуга |
Vmax |
Длина |
горючего (усл. ед.) при разной скорости движения |
|||||
|
|
|
50 |
60 |
70 |
80 |
90 |
|
12 |
80 |
150 |
3 |
2,5 |
2,14 |
1,88 |
|
|
150 |
165 |
188 |
218 |
|
||||
|
|
|
|
|||||
13 |
50 |
200 |
4 |
|
|
|
|
|
200 |
|
|
|
|
||||
|
|
|
|
|
|
|
||
24 |
90 |
200 |
4 |
3,33 |
2,86 |
2,50 |
2,22 |
|
200 |
220 |
250 |
290 |
340 |
||||
|
|
|
||||||
34 |
80 |
150 |
3 |
2,5 |
2,14 |
1,88 |
|
|
150 |
165 |
188 |
218 |
|
||||
|
|
|
|
|||||
35 |
50 |
250 |
5 |
|
|
|
|
|
250 |
|
|
|
|
||||
|
|
|
|
|
|
|
||
36 |
50 |
400 |
8 |
|
|
|
|
|
400 |
|
|
|
|
||||
|
|
|
|
|
|
|
||
45 |
90 |
200 |
4 |
3,35 |
2,86 |
2,50 |
2,22 |
|
200 |
220 |
250 |
290 |
340 |
||||
|
|
|
||||||
56 |
90 |
250 |
5 |
4,17 |
3,57 |
3,12 |
2,78 |
|
250 |
275 |
312 |
362 |
425 |
||||
|
|
|
||||||
113
В задаче об оптимальном маршруте по комплексному критерию можно и не дискретизировать, т.е. сводить к дискретному набору значений, скорость или расход горючего. Однако ввиду того, что в данном пособии не рассматриваются методы оптимизации в непрерывных переменных, ограничимся таким приближенным решением (тем более что при увеличении количества возможных значений скоростей легко определить скоростной режим с достаточным приближением к оптимальному). Дополнительные исходные данные и результаты решения для задачи оптимизации маршрута по комплексному критерию показаны в табл. 11.2 и 11.3. Мы видим, что при разных весовых коэффициентах получились разные оптимальные маршруты.
Таблица 11.2
Веса дуг сети для оптимизации маршрута по комплексному критерию
Дуга |
Вес дуги при заданном весовом коэффициенте для единицы горючего |
||
0,002 |
0,005 |
||
|
|||
12 |
2,316 |
2,97 |
|
13 |
4,4 |
5 |
|
24 |
2,9 |
3,92 |
|
34 |
2,316 |
2,97 |
|
35 |
5,5 |
6,25 |
|
36 |
8,8 |
10 |
|
45 |
2,9 |
3,92 |
|
56 |
3,63 |
4,905 |
|
Таблица 11.3
Порядок расчета оптимального маршрута при разных весовых коэффициентах
|
Весовой коэффициент для единицы горючего |
|
0,002 |
|
Дуга |
Узел |
Накопленный вес |
Пред. |
Очередь |
1 |
1 |
0 |
|
1 |
12 |
2 |
2,316 |
1 |
2 |
13 |
3 |
4,4 |
1 |
3 |
24 |
4 |
5,216 |
2 |
4 |
45 |
5 |
8,116 |
4 |
5 |
56 |
6 |
11,746 |
5 |
6 |
|
Весовой коэффициент для единицы горючего |
|
0,005 |
|
Дуга |
Узел |
Накопленный вес |
Пред. |
Очередь |
1 |
1 |
0 |
|
1 |
12 |
2 |
2,97 |
1 |
2 |
13 |
3 |
5 |
1 |
3 |
24 |
4 |
6,89 |
2 |
4 |
35 |
5 |
11,25 |
3 |
5 |
36 |
6 |
13,8 |
3 |
6 |
114
11.2.Оптимизация одновременного выбора маршрута и скоростного режима
при ограничениях на расход горючего
В данной задаче нельзя получить абсолютно точное решение. Она может быть решена с различной степенью точности.
Для задачи об оптимальном маршруте и скоростном режиме при ограничении на общий расход горючего вершина ассоциированного графа I – это пара (номер вершины исходного графа i запас горючего p), а ребра (I1, I2) соответствуют перемещениям из вершины i1, в соседнюю i2 с такой скоростью, при которой расход горючего на участке (i1, i2) равен p1 – p2. Для того чтобы ассоциированный граф имел конечное количество вершин, нужно ограничиться конечным количеством значений либо расхода горючего, либо скорости, т.е. решать задачу приближенно. Впрочем, с практической стороны такое ограничение выбора не является серьезным препятствием для применения такой модели, так как исходные данные всегда известны приближенно, зависимость Mт(v) плавная и определение не точной оптимальной скорости, а ее значения, округленного, скажем, до целого числа (в км/ч или даже м/с), вполне приемлемо. Практическое ограничение состоит в том, чтобы размерность задачи позволяла выполнить расчет за приемлемое время.
Итак, набор вариантов осуществления маршрута должен быть дискретизирован. Существуют по крайней мере два способа такой дискретизации – по скорости и по расходу горючего. При первом способе для проезда определенного участка (дуги сети) устанавливаются несколько возможных скоростей в рамках ограничений на максимальную скорость, если свободный выбор скорости возможен; в противном случае скорость считается заданной для участка. В результате каждый узел сети в расчете фигурирует в нескольких экземплярах, соответствующих разному суммарному расходу горючего. Количество экземпляров узла будет возрастать по мере удаления от начального узла. В расчете, однако, следует оставлять лишь эффективные пары (i, p). Если выстроить ряд экземпляров узла по возрастанию расхода горючего, то в этом ряду время достижения узла должно убывать. Экземпляры узла, нарушающие эту монотонность, должны отбрасываться как неэффективные. По мере удаления от начального узла количество экземпляров будет расти и может стать огромным. Впрочем, с учетом приближенного характера решаемой задачи, если для пары соседних узлов одновременно время достиже-
115
ния и расход горючего отличаются соответственно на заданные пороговые величины T и M, один из них должен быть отброшен.
При втором способе возможные расходы на каждом участке рассматриваются как кратные минимальной порции расхода горючего (скажем, 10 мл). Для каждого типа такого расхода вычисляется соответствующая скорость. Количество возможных экземпляров узла в этом случае может быть очень велико: если достаточное количество горючего составляет 5 л, то потребуется максимум 500 экземпляров (но неэффективные и в этом случае должны отбрасываться по тому же правилу). Таким образом, размерность обобщенной сети велика, но в то же самое время ограничена.
Особенность решения задачи состоит также в том, что сам ассоциированный граф может не быть определен наперед, до решения задачи (можно определить его и заранее, но в этом случае размерность его по числу вершин и ребер окажется слишком большой), а конструируется в процессе расчета. Ассоциированный граф целиком выражает все мыслимые маршруты, в т.ч. неэффективные, а его суграф, на котором фактически ведется расчет (и который постепенно порождается в процессе расчета) имеет только эффективные вершины, через которые могут проходить оптимальные маршруты.
Если ограничиваться затратами только на горючее, то задачу можно решить на основе специфического соображения. В силу характера зависимости затрат горючего от скорости можно утверждать, что при прохождении участка с определенной средней скоростью минимальные энергозатраты соответствуют движению с постоянной скоростью. Этим соображением можно бесспорно воспользоваться для маршрута на плоской местности по мало искривленным дорогам. Для всего маршрута постоянство скорости не всегда можно обеспечить из-за ограничений на скорость на отдельных участках. Если при движении по некоторому маршруту при прохождении каждого участка с максимальной допустимой для него скоростью суммарный расход горючего не превысит Mmax, такой скоростной режим и будет оптимальным. В противном случае оптимальный скоростной режим будет таков: движение с постоянной скоростью v0 ≥ vopt, по дугам, для которых v0 ≤ vmax j, и со скоростью vmax j по остальным дугам. Для каждого маршрута время прохождения маршрута падает, а затраты на нем растут с ростом v0 при v0 ≥ vopt. Оптимальный скоростной режим для маршрута соответствует v0, при котором тратится в точности Mmax. Если маршрут вообще оптимален, то на нем должен выполняться оптимальный для него скоростной режим. Следовательно,
116
нужно найти такое значение v0 для оптимального маршрута. Задача становится двухуровневой: на нижнем уровне v0 назначена и находится самый быстрый маршрут, для которого расход горючего не превышает Mmax. Время выполнения такого маршрута обозначим Tmin(v0). На верхнем уровне минимизируем Tmin(v0). Можно обосновать, что зависимость Tmin(v0) является унимодальной, т.е. имеется значение v0 opt, что при v0 < v0 opt Tmin(v0) убывает, а при v0 > v0 opt – возрастает. Поиск такого значения v0 opt, которое и соответствует оптимальному скоростному режиму на оптимальном маршруте, для унимодальных функций с необходимой точностью требует испытания небольшого количества значений v0. Методы решения задач минимизации унимодальных функций известны, но здесь не будут рассматриваться. Для грубой оценки достаточно рассчитать решения при нескольких значениях v0, взятых с постоянным шагом, и взять то v0, при котором достигается наилучший результат. Что касается точности, то погрешность менее 0,1 м/с, соответствующая величине этого шага (разности между ближайшими значениями v0) представляется вполне приемлемой, а в большинстве случаев будет достаточна точность порядка 1 м/с.
Для конкретного значения v0 параметры отдельных дуг назначаются так: vj = min{v0,vmax j}, tj = Lj/vj, mj = LjMт(vj). Метод решения задачи (нижнего уровня) о быстрейшем маршруте с ограничениями на затраты горючего представляет собой модификацию метода Дейкстры и состоит в следующем. Теперь рассматриваются несколько экземпляров каждого (k-го) узла (кроме исходного) с разными временами достижения T и разными накопленными расходами: M(k, T) ≤ Mmax. При этом, если упорядочить при заданном k его экземпляры в порядке возрастания T, т.е. представить их в виде последовательности
Tk1 < Tk2 < … < Tk S(k), |
(11.1) |
то соответствующие значения M(k, T) должны следовать наоборот, в порядке убывания: M(k, Tk1) > M(k, Tk2) > … > M(k, Tk S(k)). Экземпляры, не соответствующие этому требованию, отбрасываются как неэффектиные (при большем расходе горючего время поездки должно быть меньшем, иначе выбран неэффективный маршрут).
Для описания алгоритма потребуется новое обозначение. Номер дуги, соединяющей узлы k и l, обозначим Arc(k, l). В мультиграфе (мультиорграфе) таких дуг может быть несколько, тогда множество таких дуг обозначим ARC(k, l).
117
Алгоритм решения задачи состоит в следующем.
1.Пусть K = , K′ = {(1, 0)}, M(1, 0) = 0. Для всех k = 2, ..., m положить S(k) = 0.
2.Определить пару (k,T) K′, на которой достигается минимум T среди всех (k, T) K′. Если k = f (финальная вершина), остановиться.
3.Перевести (k,T) из K′ в K.
4. Для всех |
l J2k |
вычислить j = Arc(k, l), |
T′ = T(k, T) + tj, |
M′ = M(k, T) + mj. |
Если |
M′ < Mmax, ввести (l, T′) в |
K′ и положить |
M(l, T′) = M′ при выполнении одного из следующих условий (в противном случае не выполнять никаких действий):
а) Если S(l) = 0. В этом случае для нового экземпляра s = 1; положить S(l) = 1.
б) Если T′ < Tl1, положить z = 1. Если T′ < Tl1 или Tl z = T′ и M(l, Tl z) > M′ или Tl z–1 ≤ T′ < Tl z и M(l, Tl z) > M′, исключить из K′ все Tks при s ≥ z, для которых M(k,Tks)>M′, если такие имеются, перенумеровать новый и оставшиеся экземпляры в соответствии с (11.1) и переопределить S(l).
в) Если T′ > Tl S(l) и M′ < M(l, Tl S(l)). Для нового экземпляра s = S(l) + 1. Положить S(l) = S(l) + 1.
5. Если K′ ≠ , перейти к п. 2.
Рассмотрим задачу на том же примере, что и в разделе 11.1. Результаты оптимизации маршрутов при разных значениях v0 показаны в табл. 11.4–11.8.
|
|
|
|
|
|
Таблица 11.4 |
|
|
Процесс и результат оптимизации маршрута при v0 = 50 км/ч |
||||||
|
|
|
|
|
|
|
|
Узел |
Экземпляр |
Время |
Запас |
Предшествующий |
Очередь |
||
Узел |
Экземпляр |
||||||
|
|
|
|
|
|||
1 |
1 |
0 |
1200 |
|
|
1 |
|
2 |
1 |
3 |
1050 |
1 |
1 |
2 |
|
3 |
1 |
4 |
1000 |
1 |
1 |
3 |
|
4 |
1 |
7 |
850 |
2 |
1 |
4 |
|
4 |
нет |
7 |
850 |
3 |
1 |
Совпадает с (4,1) |
|
5 |
1 |
9 |
750 |
3 |
1 |
5 |
|
5 |
нет |
11 |
650 |
4 |
1 |
Доминируется (5,1) |
|
6 |
1 |
12 |
600 |
3 |
1 |
|
|
6 |
нет |
14 |
500 |
5 |
1 |
Доминируется (6,1) |
|
118
|
|
|
|
|
|
Таблица 11.5 |
|
|
Процесс и результат оптимизации маршрута при v0 = 60 км/ч |
||||||
|
|
|
|
|
|
|
|
Узел |
Экземпляр |
Время |
Запас |
Предшествующий |
Очередь |
||
Узел |
Экземпляр |
||||||
|
|
|
|
|
|||
1 |
1 |
0 |
1200 |
|
|
1 |
|
2 |
1 |
2,5 |
1035 |
1 |
1 |
2 |
|
3 |
1 |
4 |
1000 |
1 |
1 |
3 |
|
4 |
1 |
5,83 |
815 |
2 |
1 |
4 |
|
4 |
2 |
6,5 |
835 |
3 |
1 |
5 |
|
5 |
1 |
9 |
750 |
3 |
1 |
6 |
|
5 |
нет |
9,18 |
595 |
4 |
1 |
Доминируется (5,1) |
|
5 |
нет |
9,85 |
615 |
4 |
2 |
Доминируется (5,1) |
|
6 |
1 |
12 |
600 |
3 |
1 |
|
|
6 |
нет |
13,17 |
475 |
5 |
1 |
Доминируется (6,1) |
|
|
|
|
|
|
|
Таблица 11.6 |
|
|
Процесс и результат оптимизации маршрута при v0 = 70 км/ч |
||||||
|
|
|
|
|
|
|
|
Узел |
Экземпляр |
Время |
Запас |
Предшествующий |
Очередь |
||
Узел |
Экземпляр |
||||||
|
|
|
|
|
|||
1 |
1 |
0 |
1200 |
|
|
1 |
|
2 |
1 |
2,14 |
1012 |
1 |
1 |
2 |
|
3 |
1 |
4 |
1000 |
1 |
1 |
3 |
|
4 |
1 |
5 |
762 |
2 |
1 |
4 |
|
4 |
2 |
6,14 |
812 |
3 |
1 |
5 |
|
5 |
1 |
9 |
750 |
3 |
1 |
8 |
|
5 |
2 |
7,86 |
512 |
4 |
1 |
7 |
|
5 |
нет |
9 |
562 |
4 |
2 |
Доминируется (5,1) |
|
6 |
2 |
11,43 |
200 |
5 |
2 |
|
|
6 |
1 |
12 |
600 |
3 |
1 |
|
|
6 |
|
12,57 |
438 |
5 |
1 |
Доминируется (6,1) |
|
|
|
|
|
|
|
Таблица 11.7 |
|
|
Процесс и результат оптимизации маршрута при v0 = 80 км/ч |
||||||
|
|
|
|
|
|
||
Узел |
Экземпляр |
Время |
Запас |
Предшествующий |
Очередь |
||
Узел |
Экземпляр |
||||||
|
|
|
|
|
|||
1 |
1 |
0 |
1200 |
|
|
1 |
|
2 |
1 |
1,88 |
982 |
1 |
1 |
2 |
|
3 |
1 |
4 |
1000 |
1 |
1 |
3 |
|
4 |
1 |
4,38 |
692 |
2 |
1 |
4 |
|
4 |
2 |
5,88 |
782 |
3 |
1 |
5 |
|
5 |
2 |
6,88 |
402 |
4 |
1 |
6 |
|
5 |
3 |
8,38 |
492 |
4 |
2 |
7 |
|
5 |
1 |
9 |
750 |
3 |
1 |
8 |
|
6 |
2 |
10 |
40 |
5 |
2 |
|
|
6 |
3 |
11,5 |
130 |
5 |
3 |
|
|
6 |
1 |
12 |
600 |
3 |
1 |
|
|
6 |
нет |
12,12 |
388 |
5 |
1 |
Доминируется (6,1) |
|
119
Таблица 11.8
Процесс и результат оптимизации маршрута при v0 = 90 км/ч
Узел |
Экземпляр |
Время |
Запас |
Предшествующий |
Очередь |
||
Узел |
Экземпляр |
||||||
|
|
|
|
|
|||
1 |
1 |
0 |
1200 |
|
|
1 |
|
2 |
1 |
1,88 |
982 |
1 |
1 |
2 |
|
3 |
1 |
4 |
1000 |
1 |
1 |
3 |
|
4 |
1 |
4,1 |
642 |
2 |
1 |
4 |
|
4 |
2 |
5,88 |
782 |
3 |
1 |
5 |
|
5 |
2 |
6,32 |
302 |
4 |
1 |
6 |
|
5 |
3 |
8,1 |
442 |
4 |
2 |
7 |
|
5 |
1 |
9 |
750 |
3 |
1 |
8 |
|
6 |
нет |
9,1 |
–123 |
5 |
2 |
Нарушено ограничение |
|
6 |
3 |
10,88 |
17 |
5 |
3 |
|
|
6 |
4 |
11,78 |
325 |
5 |
1 |
|
|
6 |
1 |
12 |
600 |
3 |
1 |
|
|
Проведенные расчеты позволяют утверждать, что оптимальная скорость находится в диапазоне от 70 до 90 км/ч, скорее всего, близко к 80 км/ч. На основе линейной интерполяции, т.е. приближения зависимостей времени и расхода горючего от скорости линейными функциями на интервале между 80 км/ч и 90 км/ч, можно сделать вывод о том, что приблизительно при v0 = 82,45 км/ч расход горючего на маршруте 1–2–4–5–6 окажется равным первоначальному запасу, т.е. в конечной точке его не останется. При этом время движения составит приблизительно 9,78 мин. Все остальные маршруты, время прохождения которых при росте v0 уменьшается, при такой скорости
дадут большее время, чем при |
v0 = 90 км/ч, |
т.е. больше, чем |
10,88 мин. В предположении, что |
скорость не |
может превышать |
90 км/ч, мы заключаем, что при введенном ограничении найдена оптимальная пара (маршрут, скоростной режим).
Затраты могут определяться не только расходом топлива, но и использованием платных дорог. Возможны варианты: плата, взимаемая за въезд в определенную зону (например, в 2006 г. въезд в Юрмалу со стороны Риги стоил 2 лата), за проезд по платной магистрали пропорционально расстоянию (в 2014 г. такая система действовала в Польше). Очевидно, возможна еще повременная плата за пребывание в определенной зоне, как при платной парковке. Эти платежи могут интерпретироваться так: плата за въезд относим к дуге или дугам, по которым въезд осуществляется. Плату за проезд – ко всем дугам, представляющим участки платных дорог, пропорционально их дли-
120
