- •Введение
- •Запишем их в соответствующие клетки (табл. 7). Третья строка и третий столбец становятся закрытыми и их клетки в дальнейших поисках не участвуют.
- •Последовательное улучшение допустимого решения методом потенциалов
- •Для всех небазисных клеток определим невязки:
- •Решение задачи в excel
- •Определение разницы между наилучшим и наихудшим планами перевозок
- •Ответы на вопросы.
- •Решение задачи
Решение задачи
Построение графа
Построим граф (рис. 1), соответствующий матрице смежности (табл. 2).
Рис. 1
Определение кратчайших расстояний от вершины jcj до всех остальных
Результаты вычислений будем представлять в таблице (табл. 3), в которой имена столбцов соответствуют номерам шагов алгоритма.
|
"абл. 3 |
|||||
|
0 |
1 |
2 |
3 |
4 |
|
Xj |
0* |
|
|
|
|
|
х2 |
00 |
|
|
|
|
|
*3 |
00 |
|
|
|
|
|
Х4 |
00 |
|
|
|
|
|
л:5 |
оо |
|
|
|
|
Предварительно всем вершинам графа, кроме вершины хь присвоим временные метки, равные бесконечности: L(x2) = Цх3) = Цх4) = Цх5) = оо, а вершине Х\ присвоим постоянную метку L*(x\) = 0. Занесем метки в нулевой столбец табл. 3.
Выполним последовательность следующих шагов:
Шаг 1
а) Определим множество вершин графа, смежных с вершиной xi (рис. 1, табл. 2):
S(a;i)= {х2,х4,х5}.
в) Для каждой вершины, принадлежащей множеству S(x\), вычислим новые временные метки L(xj), равные min{ LCT(xj), L*(X]) + R]j}, где LCT(xj) - старая временная метка вершины Xj, L*(x\) = 0 - постоянная метка вершины Х\, Ry- вес ребра (xj, х,). Вычисления выполним в табл. 3-а.
L *(xt) = 0 Табл. 3-а
V\Xj) |
L*(xi)+Ru |
|
min{LCT(jC/), ( L*(x0 + |
L(x 2) = 00 |
L*(x 1) + R\2 — |
0 + 4 = 4 |
min{oo, 4} = 4 |
L(x 4) = 00 |
L*(X]) + Ru = |
0+11 = 11 |
min{oo, 11} = 11 |
L(xs) = 00 |
L*(x{) + R]5 = |
0 + 3 = 3 |
min{oo, 3} = 3 |
Вершинам х2, х^ Х5 присвоим новые временные метки, вычисленные в табл.
а: Z/(x2) = 4, L{x4) =11, L(xs) — 3; метка вершины Х3 осталась без изменения
L{x3) — оо. Занесем новые метки и метку вершины Х3 в первый столбец табл. 4. Обновленные метки выделим.
с) Из всех имеющихся временных меток в столбце 1 (табл. 4) выберем наименьшую и сделаем ее постоянной для своей вершины: min{4, оо, 11,3} =3. Эта метка соответствует вершине х$. Отметим ее звездочкой в столбце 1 L*(x$) = 3.
Табл. 4
|
0 |
1 |
2 |
3 |
4 |
XI |
0* |
|
|
|
|
х2 |
00 |
4 |
|
|
|
*3 |
00 |
00 |
|
|
|
х4 |
00 |
11 |
|
|
|
*5 |
00 |
3* |
|
|
|
Шаг 2
а) Определим множество вершин графа, смежных с вершиной Х5, не имеющих еще постоянных меток (рис. 1, табл. 2):
S(x5)= {Х2,Х3,Х4}.
в) Для каждой вершины, принадлежащей множеству S(x$), вычислим новые временные метки L(xj), равные min{LCT(xj), L*(x5) + R5;}, где LCT(xj) - старая временная метка вершины Xj, L *(*5) = 3 - постоянная метка вершины Х5 , R- вес ребра (Х5, х;) (см. табл. 4-а).
= 3 Табл. 4-а
Lato) |
L *(*5) + Rsi |
|
min{ LCT(Xi), L*(xs) + R5i} |
L(x 2) = 4 |
L*(x 5) + R52 = |
3 + 6 = 9 |
min{4, 9} =4 |
Цх3) = оо |
^*(*5) + ^53 = |
3 + 5 = 8 |
min{oo, 8} = 8 |
Цх4) = 11 |
L *(*5) + ^54 = |
3+9 = 12 |
min{l 1, 12} = 11 |
Вершине х3 присвоим новую временную метку, которую вычислили в табл.
а: Цх3) = 8; метки вершин х2, х4 остаются без изменения, т.е. L(x?) = 4, L(x4) =11. Занесем их во второй столбец (табл. 5), причем обновленные метки выделим. с) Из всех имеющихся временных меток в столбце 2 табл. 5 выберем наименьшую и сделаем ее постоянной для своей вершины: min{4, 8, 11} = 8. Эта метка соответствует вершине х2: £*(х2) = 4. Отметим ее звездочкой.
Табл. 5
|
0 |
1 |
2 |
3 |
4 |
X] |
0* |
|
|
|
|
x2 |
00 |
4 |
4* |
|
|
*3 |
00 |
00 |
8 |
|
|
x4 |
00 |
11 |
11 |
|
|
*5 |
00 |
3* |
|
|
|
Шаг 3
а) Определим множество вершин графа, смежных с вершиной х2, не имеющих еще постоянных меток (рис. 1, табл. 2):
S(X2) = {х3}.
в) Для вершины Хз, принадлежащей множеству £(х2), вычислим новую временную метку L(x2), равную тт{Хст(хз), Z*(x2) + ^23 }> гДе ^СТ(Х2) ~~ старая временная метка вершины х2, L *(х2) = 4 - постоянная метка вершины х2, R23 - вес ребра (х2, Хз) (см. табл. 5-а).
b\x2) = 4 Табл. 5-а
LCT(Xi) |
L*(x2) + R2i |
|
min{ LCT(Xj), L*(x2) + i?2/} |
L(x3) = 8 |
L *(x2) + /?23 = |
4 + 6= 10 |
min{8, 10} = 8 |
Метка вершины Х3 остается без изменения, т.е. L(x3) = 8. Занесем ее в третий столбец (табл. 6).
с) Из всех имеющихся временных меток в третьем столбце табл. 5 выберем наименьшую и сделаем ее постоянной для своей вершины: min{8, 11} = 8. Эта метка соответствует вершине х3: £*(х3) = 8. Отметим ее звездочкой.
Табл. 6
|
0 |
1 |
2 |
3 |
4 |
X\ |
0* |
|
|
|
|
x2 |
00 |
4 |
4* |
|
|
x3 |
00 |
00 |
8 |
8* |
|
X4 |
00 |
11 |
11 |
11 |
|
x5 |
00 |
3* |
|
|
|
Шаг 4
а) Определим множество вершин графа, смежных с вершиной Х3, не имеющих еще постоянных меток (рис. 1, табл. 2):
S(X3) = {Х4}.
в) Для вершины Х4, принадлежащей множеству 5(хз), вычислим новую временную метку L(x3), равную min{XCT(x4), L*(x3) + R34}, где Z,CT(x4) - старая временная метка вершины Х4, L *(хз) = 8 - постоянная метка вершины Х3, R24 - вес ребра (Х3, Х4) (табл. 6-а).
L(x3) = 8 Табл. 6-а
LCT(x,) |
L*(x3)+R3i |
|
min{ Lc'(Xi), L*(x3) + R3i} |
ICT(x4) = 11 |
L*(x3) + RM = |
8 + 2=10 |
min{l 1, 10} = 10 |
Вершине Х4 присвоим новую временную метку, т.е. L(x4) = 10. Занесем ее в четвертый столбец (табл. 7).
с) В четвертом столбце табл. 6 одна временная метка. Сделаем ее постоянной. Эта метка соответствует вершине х4: L*(x4) = 10. Отметим ее звездочкой.
Табл. 7
|
0 |
1 |
2 |
3 |
4 |
XI |
0* |
|
|
|
|
х2 |
сю |
4 |
4* |
|
|
х3 |
00 |
00 |
8 |
8* |
|
х4 |
00 |
11 |
11 |
11 |
10* |
Х5 |
оо |
3* |
|
|
|
Процесс расстановки меток закончен. Значения их дают кратчайшие расстояния от исходной вершины Х] до всех остальных:
L(xt) = 4, L(x3) = 8, Цх4) = 10, L(x5) = 3.
На рисунке 2 в квадратных скобках укажем найденные кратчайшие расстояния от вершины X] до всех остальных, т.е. взвесим вершины исходного графа.
Рис. 2
[3]
Определение кратчайших путей г/
Чтобы найти кратчайшие пути от вершины х\ до всех остальных вершин, используем соотношение:
L*(xj) = L\xd + Rij9
где вершина X/ предшествует вершине X/.
а) Найдем кратчайший путь от вершины х\ до вершины х4. Для этого определим, из каких вершин можно попасть в вершину х4 (то есть какие вершины связаны с вершиной х4 ребром).
Вершина Х4 имеет три смежные вершины: хь х3, х5: S(xb х3, х5). Определим, какая из этих вершин удовлетворяет соотношению (4).
I*(x4) = L*(Xi) + Ri4. (4)
L*(x4) = 10
L*(x\) = 0 Ru=U L*(x4) ФЬ*{х\) + R\4 - 0+11 = 11 L*(x3) = 8 R34 = 2 Z,*(x4) = L*(*3) + /?34= 8+ 2 = 10 I*(x5) = 3 R54 = 9 L*(x4) # L*(x5) + Л54 = 3+ 9 = 12
Как видно, только вершина Х3 удовлетворяет соотношению (4). Следовательно, в кратчайшем пути вершине Х4 предшествует вершина (Рис. 2). Выделим на графе ребро Х3, Х4.
Ь) Определим, какая вершина предшествует вершине Х3 в кратчайшем пути. Вершина хз имеет две смежные вершины: Х2, Х5 (вершина Х4 уже вошла в искомый путь и поэтому не рассматривается): S(x2, Х5). Определим, какая из этих вершин удовлетворяет соотношению (4).
L*(x3) = 8,
L*(х2) = 4 ^23 = 6 L*(xj) фЬ*(х2) + Ri3 = 4 + 6 =10,
L*(х5) = 3 R53 = 5 L*(xt) - L*(x5) + Rs3= 3 + 5=8.
Как видно, соотношению (4) удовлетворяет вершина Х5. Следовательно, в кратчайшем пути вершине Х3 предшествует вершина Х5 (рис. 3). Выделим на графе ребро Х5, Х3.
Рис. 3
с) Определим, какая вершина предшествует вершине Х5 в кратчайшем пути. Вершина х5 имеет смежные вершины: X] и Х2 (ещё не вошедшие в искомый путь): S(X\, Х2). Определим, какая из этих вершин удовлетворяет соотношению (4).
L*(x5) = 3,
L*(jci) = 0 R\s=3 L*(x5) = L*(x\) + R\s = 0 + 3 = 3,
L*(x2) = 4 R25 = 6 L*(x5) Ф L*(x2) + R25 = 4 + 6=10.
Как видно, соотношению (4) удовлетворяет только вершина х\. Следовательно, в кратчайшем пути вершине предшествует вершина х\, которая является исходной (рис. 4). Выделим на графе ребро Х\, х$.
[0]
[41 6 [8]
Рис. 4
м) [10]
[3]
Таким образом, минимальный путь от вершины Х\ до вершины лс5 проходит по вершинам Jti, Х$, ДС3, Х4 и длина этого пути равна 10.
Очевидно, что каждый из путей из вершины X] до любой вершины, входящей в построенный кратчайший путь (от вершины X] в вершину Х4), тоже будет оптимальным.
Найдем кратчайший путь от вершины Х\ до вершины х2.
а) Вершина х2 имеет смежные вершины: S(jcb х3, х5). Определим, какая из этих вершин удовлетворяет соотношению (4).
L*(x2) = 4,
L*(JC!) = 0 R\2 =4 L*(x2) = L*{xx) + RX2 = 0 + 4 = 4, L*(x3) = 8 R32 = 6 L*(x2) Ф L*(x3) + Л32 = 8 + 6 = 14, L *(x5) = 3 R52 = 6 L *(x7) Ф L *(x4) + R52 =3 + 6 = 9.
Как видно, соотношению (4) удовлетворяет только вершина х\. Следовательно, в кратчайшем пути вершине х2 предшествует вершина х\. (см. рис. 5).
Таким образом, минимальный путь от вершины Xi до вершины х2 проходит по ребру (л-ь х2) и длина его равна 4 (весу ребра).