ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛУГАНСКОЙ НАРОДНОЙ РЕСПУБЛИКИ
«ЛУГАНСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ
ИМЕНИ ВЛАДИМИРА ДАЛЯ»
Кафедра прикладной математики
Математическое моделирование
О Т Ч Ё Т
О выполнении практической работы № 1
НАХОЖДЕНИЕ ОПТИМАЛЬНОГО ПУТИ В СЕТИ
Вариант № 0
Выполнил: студент группы
ФИО________________________
Дата сдачи____________________
Оценка______________________________
Проверил___________________________
Луганск, 2020
Выполнение работы
1. Найти минимальный путь сети от узла до узла
по алгоритму Дейкстры, если задана матрица длин дуг
.
Решение. Выполним для наглядности геометрическое изображение графа
![]() |
![]() |
![]() |
![]() |
![]() |
Протокол работы алгоритма будем оформлять в виде таблицы, которую построим в процессе решения.
Шаг 0. Все узлы помечаются: стартовый узел получает постоянную метку 0, все остальные узлы получают временные метки
:
,
.
Эти значения заносим в нулевую строку таблицы.
Начертим для наглядности геометрическое изображение графа на шаге 0:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
0 |
Шаг 1. Для узлов с временными метками, достижимых из узла
с постоянной меткой, обновляем метки:
;
;
;
.
Постоянную метку получает узел .
Эти значения заносим в первую строку таблицы.
Начертим для наглядности геометрическое изображение графа на шаге 1:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
4 |
![]() |
0 |
Шаг 2. Для узлов с временными метками, достижимых из узла
с постоянной меткой, обновляем метки:
;
;
;
;
.
Постоянную метку получает узел .
Эти значения заносим во вторую строку таблицы.
Начертим для наглядности геометрическое изображение графа на шаге 2:
![]() |
![]() |
![]() |
![]() |
![]() |
6 |
![]() |
4 |
![]() |
0 |
Шаг 3. Для узла с временной меткой, который достижим из узла
с постоянной меткой, обновляем метку:
;
.
Постоянную метку получает узел .
Эти значения заносим в третью строку таблицы.
Начертим для наглядности геометрическое изображение графа на шаге 3:
![]() |
![]() |
![]() |
![]() |
![]() |
8 |
4 |
![]() |
0 |
6 |
Шаг 4. Из узла с постоянной меткой не выходит ни одна дуга.
;
.
Постоянную метку получает узел .
Эти значения заносим в четвертую строку таблицы.
Начертим для наглядности геометрическое изображение графа на шаге 4:
![]() |
![]() |
![]() |
![]() |
![]() |
8 |
4 |
12 |
0 |
6 |
Таблица.
Узлы Шаги | ![]() | ![]() | ![]() | ![]() | ![]() |
0 | ![]() | ![]() | ![]() | ![]() | |
0 | 4 | ![]() | ![]() | ![]() | |
0 | 4 | 6 | ![]() | ![]() | |
0 | 4 | 6 | ![]() | 8 | |
0 | 4 | 6 | 12 | 8 |
Все узлы получили постоянные метки. Алгоритм завершен:
,
,
,
.
2) Чтобы найти минимальный путь от узла до узла
, используем временные индексы в постоянных метках: у узла
–
, у узла
–
, у узла
–
. Итак, минимальный путь от
до
есть
:
,
,
,
. Его длина
.
2. Найти минимальный путь сети от узла до узла
по алгоритму Беллмана–Мура, если задана матрица длин дуг
Решение. 1) Начертим для наглядности геометрическое изображение графа
![]() |
![]() |
![]() |
![]() |
![]() |
–8 |
![]() |
–7 |
Этап 1. Нахождение длин кратчайших путей от узла до всех остальных узлов графа.
Шаг 0. Все узлы помечаются: стартовый узел получает постоянную метку 0, все остальные узлы получают временные метки
:
,
,
Шаг 1.
а) Удаляем из очереди узел, находящийся в самом начале очереди.
б) Для узла с временными метками, досягаемого из узла
корректируем метки:
, бб) 4<∞;
бв) Корректировка очереди: ,
нужно было поставить в конец очереди, но
было пустым, поэтому конец очереди совпал с началом.
б) , бб)
;
бв) Корректировка очереди: .
Шаг 2. а) Удаляем из очереди узел, находящийся в самом начале очереди:
.
.
б) , бб) 11<∞;
бв)
б) , бб) –4<6;
бв) . Узел
нужно было поставить в начало очереди, но он уже там находится.
б) , бб) 10<∞;
бв) .
Шаг 3. а) .
б) , бб) 4<11;
бв) . Узел
нужно поставить в начало очереди.
Шаг 4. а) .
.
б) , бб) 8<∞;
бв) .
Шаг 5. а) .
.
б) , бб) –3<5;
бв) .
б) , бб) 9<8;
бв) .
Шаг 6. а) .
.
б) , бб) 0<8;
бв) .
содержит только
и он находится в начале очереди.
Шаг 7. а) .
.
Конец первого этапа. Найдены минимальные расстояния до всех узлов от первого узла:
Этап 2. Построение кратчайшего пути от узла до узла
.
Пусть – конец пути.
– множество узлов, непосредственно находящихся перед
.
Шаг 1.
Включаем дугу в кратчайший путь.
Шаг 2. .
,
,
.
Включаем дугу в кратчайший путь.
Шаг 3. .
,
.
Включаем дугу в кратчайший путь.
Шаг 4. .
Включаем дугу в кратчайший путь.
Шаг 5. .
Включаем дугу в кратчайший путь.
Шаг 6. . Алгоритм закончен. Искомый кратчайший путь от узла
до узла
состоит из дуг:
и имеет нулевой вес.