Алгоритмы путей
Нахождение по заданной матрице весов графа величины минимального пути по алгоритму Дейкстры, величины максимального пути. Нахождение минимального пути по алгоритму Беллмана-Мура между вершинами. Определение максимального потока по заданной матрице.
Рубрика | Математика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 06.04.2020 |
Размер файла | 300,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ЭКОНОМИКИ И УПРАВЛЕНИЯ
Кафедра «Прикладная математика»
Контрольная работа по дисциплине «Дискретная математика»
Выполнил: Кузнецов Е.П.
Проверил: к.ф.-м.н., доцент Симонов Б. В.
Волгоград, 2018
Задание 1
По заданной матрице весов ? графа G найти величины минимального пути и сам путь от вершины s = x1 до вершины t = x6 по алгоритму Дейкстры, а затем величину максимального пути и сам путь между теми же вершинами.
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
||
x1 |
- |
10 |
12 |
? |
? |
? |
|
x2 |
? |
- |
11 |
9 |
? |
19 |
|
x3 |
? |
? |
- |
? |
10 |
? |
|
x4 |
? |
? |
13 |
- |
11 |
10 |
|
x5 |
? |
? |
? |
? |
- |
6 |
|
x6 |
? |
? |
? |
? |
? |
- |
Этап 1 - нахождение длин минимального пути
Шаг 1
Полагаем d(x1)=0*, x Ю=x1
d(x2)= d(x3)= d(x4)= d(x5)= d(x6)= ?
1 Итерация
Шаг 2
Множество вершин, непосредственно следующих за вершиной x Ю=x1 с временными метками
S Ю={x2, x3}
Пересчитаем временные метки этих вершин
d(x2)=min {?, 0*+10}=10
d(x3)=min {?, 0*+12}=12
Шаг 3
Одна из временных меток превращается в постоянную
Min { x2, x3, x4, x5, x6}= min {10, 12, ?, ?, ?} = 10*= d(x2)
Полагаем x Ю=x2
Шаг4
Возврат на 2 шаг
2 Итерация
Шаг 2
Множество вершин, непосредственно следующих за вершиной с временными метками
S Ю={x3, x4, x6}
Пересчитаем временные метки этих вершин
d(x3) = min {?, 10*+11)=21
d(x4)=min{?,10*+9)=19
d(x6)=min{?,10*+19)=29
Шаг 3
Одна из временных меток превращается в постоянную
Min {x3,x4,x5,x6}=min{12,19, ?,29)=12*=d(x3)
Шаг 4
Возврат на 2 шаг
3 Итерация
Шаг 2
Множество вершин, непосредственно следующих за вершиной с временными метками
??Ю={x5}
Пересчитаем временные метки этих вершин
d(x5)= min {12+10}= 22
Шаг 3
Одна из временных меток превращается в постоянную
Min {x4,x5,x6}=min{19,22,29) = 19*=d(x4)
Полагаем ??Ю=x4
Шаг 4
4 Итерация
Шаг 2
Множество вершин, непосредственно следующих за вершиной ??Ю=x4 с временными метками
??Ю={x3,x5,x6}
Пересчитаем временные метки этих вершин
d(x3)=min{12,19*+13}=12
d(x5)=min{22,19*+11}=22
d(x6)=min{29,19*+10}=29
Шаг 3
Одна из временных меток превращается в постоянную
Min {x3,x5,x6}=12*=d(x3)
Полагаем
Шаг 4
??Ю=x3 ? t=x6
Возврат на 2 шаг
5 Итерация
Шаг 2
Множество вершин, непосредственно следующих за вершиной с временными метками
??Ю={x5}
Пересчитаем временные метки этих вершин
d(x5)= min {12+10}= 22
Шаг 3
Одна из временных меток превращается в постоянную
Min {x5,x6}=min{22,29) = 22*=d(x5)
Полагаем ??Ю=x5
Шаг 4
6 Итерация
Шаг 2
Множество вершин, непосредственно следующих за вершиной с временными метками
??Ю={x6}
Пересчитаем временные метки этих вершин
d(x6)=min{22+6}=28
Шаг 3
Одна из временных меток превращается в постоянную
Min {x6}=28*=d(x6)
Полагаем ??Ю=x6
Шаг 4
Конец 1 этапа
Этап 2 - построение кратчайшего пути
1 Итерация
Шаг 5
Составим множество вершин, непосредственно предшествующих x Ю=x6 с постоянными метками
S Ю={x2,x4,x5}
=28*?10*+19=d(x2)+ щ(x2, x6)
d(x Ю)=28*?19*+10 = d(x4)+щ(x4, x6)
d(x Ю)=28*= 22*+6 = d(x5)+щ(x5, x6)
Включаем дугу щ(x5, x6) в кратчайший путь
Полагаем x Ю=x5
Шаг 6
Возврат на 5 шаг
3 Итерация
Шаг 5
Составим множество вершин, непосредственно предшествующих x Ю=x5 с постоянными метками
S Ю={x3,x4}
d(x Ю)=22* ? 19*+11 = d(x4)+щ(x4, x5)
d(x Ю) =22*= 12*+10 = d(x2)+щ(x3, x5)
Включаем дугу щ(x3, x5) в кратчайший путь
Полагаем x Ю=x3
Шаг 6
Возврат на 5 шаг
4 Итерация
Составим множество вершин, непосредственно предшествующих x Ю=x3 с постоянными метками
S Ю={x1,x2,x4}
d(x Ю) = 12* ? 10*+11 = d(x2)+щ(x2, x3)
d(x Ю) = 12* ? 19*+13 = d(x4)+щ(x4, x3)
d(x Ю) = 12* = 0*+12 = d(x1)+щ(x1, x3)
Включаем дугу щ(x1, x3) в кратчайший путь.
Полагаем x Ю=x1
Шаг 6
Завершение 2 этапа
Кратчайший путь от x1 до x6 построен, его длинна составляет 12+10+6=28
Данный путь образован последовательностью дуг
µ= щ(x1, x3)- щ(x3, x5)- щ(x5, x6)
Нахождение максимального пути
Упорядочи вершины по алгоритму Фолкерсона
1.Вершина x1 не содержит входящих дуг, вследствие чего вычеркнем все дуги, исходящие из этой вершины, вершину отнесем в группе 1.
2.Вершина x2 не содержит входящих дуг, вследствие чего вычеркнем все дуги, исходящие из этой вершины, вершину отнесем к группе 2.
3. Вершина x4 не содержит входных дуг, вследствие чего вычеркнем все дуги, исходящие из этой вершины, вершину отнесем к группе 3.
4.Вершина x3 не содержит входных дуг, вследствие чего вычеркнем все дуги, исходящие из этой вершины, вершину отнесем к группе 4.
5. Остались только вершины x5 и x6, относим их к группам 5 и 6 соответственно.
Упорядоченные вершины:
d1=0
d2=max(d1+10)=max(0+10)=10
d3=max(d2+9)=max(10+9)=19
d4=max(d1+12,d2+11,d3+13)=(0+12,10+11,19+13)=32
d5=max(d3+11,d4+10)=(19+11,32+10)=42
d6=max(d2+19,d3+10,d5+6)=(10+19,19+10,42+6)=48
Длина максимального пути из x1 в x6 равна 48
Этап 2 - нахождение максимального пути
x6:
d6=48=d5+6=48
d6=48?d2+19=29
d6=48?d3+10=29
Включаем дугу (x5,x6) в максимальный путь.
x5:
d5=42=d4+10=42
d5=42?d3+11=30
Включаем дугу (x3,x5) в максимальный путь.
x3:
d4=32=d3+13=32
d4=32?d1+12=12
d4=32?d2+11=21
Включаем дугу (x4,x3) в максимальный путь.
x4:
d3=19=d2+9=19
Включаем дугу (x2,x4) в максимальный путь.
x2:
d2=10=d1+10=10
Включаем дугу (x1,x2) в максимальный путь.
Максимальный путь:
µmax=(x1,x2)-(x2,x4)-(x4,x3)-(x3,x5)-(x5,x6)
Задание 2
По заданной матрице весов ? графа G найти минимальный путь по алгоритму Беллмана-Мура между начальной вершиной s = x1 и конечной вершиной t = x7.
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
||
x1 |
- |
? |
8 |
? |
? |
? |
? |
|
x2 |
? |
- |
? |
? |
-6 |
10 |
12 |
|
x3 |
? |
4 |
- |
-4 |
? |
-7 |
? |
|
x4 |
? |
? |
? |
- |
? |
? |
3 |
|
x5 |
? |
? |
7 |
10 |
- |
6 |
? |
|
x6 |
? |
? |
? |
8 |
? |
- |
||
x7 |
? |
? |
? |
? |
? |
? |
- |
Этап 1 - нахождение длин кратчайших путей от вершины s до всех остальных вершин графа
Шаг 1
x Ю=x1;
d(x1)=0
d(xj)= ?;
Q = {x1}
1 Итерация
Шаг 2
x Ю=x1; тогда Q=Q\{x1}= Ш
Пусть S Ю - множество вершин, непосредственно достижимых из x Ю.
S Ю={x3}
d(x3)=min{?,0+8}=8
8<?? Да Q={x3}
Шаг 3
Q = Ш? Нет. Переход на начало 2 шага.
2 Итерация
Шаг 2
x Ю=x3; Тогда Q=Q\{ x Ю}= Ш
S Ю={x2,x4,x6}
d(x2)=min{?,8+4}=12
12<?? Да Q={x2}
d(x4)=min{?,8-4}=4
4<?? Да Q={x2,x4}
d(x6)=min{?,8-7}=1
1<?? Да Q={x2,x4,x6}
Шаг 3
Q = Ш? Нет. Переход на начало 2 шага.
3 Итерация
Шаг 2
x Ю=x2; Тогда Q=\{ x Ю}={x4,x6}
S Ю={x5,x6,x7}
d(x5)=min(?,12-6)=6
6<?? Да Q={x4,x5,x6}
d(x6)=min(1,12+10)=22
22<1?Нет Q={x4,x5,x6}
d(x7)=min(?,12+12)=24
24<?? Да Q={x4,x5,x6,x7}
Шаг 3
Q = Ш? Нет. Переход на начало 2 шага.
4 Итерация
Шаг 2
x Ю=x4; Тогда Q=Q\{ x Ю}={x5,x6,x7}
S Ю={x6}
d(x6)=min(1,4+3)=7
7<1? Нет Q={x5,x6,x7}
Шаг 3
Q = Ш? Нет. Переход на начало 2 шага.
5 Итерация
Шаг 2
x Ю=x5; Тогда Q=Q\{ x Ю}={x6,x7}
S Ю={x3,x4,x6}
d(x3)=min(8,6+7)=13
13<8? Нет Q={x6,x7}
d(x4)=min(4,6+10)=16
16<4? Нет Q={x6,x7}
d(x6)=min(1,6+6)=12
12<1? Нет Q={x6,x7}
Шаг 3
Q = Ш? Нет. Переход на начало 2 шага.
6 Итерация
Шаг 2
x Ю=x6; Тогда Q=Q\{ x Ю}={x7}
S Ю={x4,x7}
d(x4)=min(4,1+8)=9
9<4? Нет Q={x7}
d(x7)=min(24,1+5)=6
6<24? Да Q={x7}
Шаг 3
Q = Ш? Нет. Переход на начало 2 шага.
7 Итерация
Шаг 2
x Ю=x7; тогда Q = Q\{x Ю} = Ш
S Ю=Ш
Шаг 3
Q = Ш? Да. Конец 1 этапа.
2 Этап - нахождение кратчайшего пути
Шаг 4
x Ю=x7
Пусть S Ю - множество вершин, непосредственно предшествующих вершине x Ю
S Ю={x6,x2}
1 Итерация
Шаг 5
d(x Ю) = 6 =1+5= d(x6)+щ(x6, x7)
d(x Ю) = 6 ? 12+12 = d(x2)+щ(x2, x7)
Включаем дугу щ(x6, x7) в кратчайший путь
Шаг 6
x Ю ? s=x1
Возврат на 5 шаг
2 Итерация
Шаг 5
S Ю={x2,x3,x4,x5}
d(x Ю) = 1 ? 12+10 = d(x2)+щ(x2, x6)
d(x Ю) = 1 =8-7 = d(x3)+щ(x3, x6)
d(x Ю) = 1 ? 4+3 = d(x4)+щ(x4, x6)
d(x Ю) = 1 ? 6+6 = d(x5)+щ(x5, x6)
Включаем дугу щ(x3, x7) в кратчайший путь
Шаг 6
x Ю ? s=x1
Возврат на 5 шаг
3 Итерация
Шаг 5
S Ю={x1}
d(x Ю) = 8 =0+8 = d(x1)+щ(x1, x3)
Включаем дугу щ(x1, x3) в кратчайший путь
Шаг 6
x Ю=s=x1
Завершение 2 этапа
Кратчайший путь от x1 до x7 построен.
Длина пути = 8+(-7)+5=6
Путь образован последовательностью:
(x1,x3)-(x3,x6)-(x6,x7)
Задание 3
Для графа G, заданного матрицей весов, построить минимальный по весу остов G' и найти его вес.
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
||
X1 |
- |
8 |
9 |
? |
? |
? |
6 |
|
X2 |
8 |
- |
7 |
6 |
9 |
? |
? |
|
X3 |
9 |
7 |
- |
6 |
10 |
5 |
? |
|
X4 |
? |
6 |
6 |
- |
8 |
7 |
? |
|
X5 |
? |
9 |
10 |
8 |
- |
4 |
5 |
|
X6 |
? |
? |
5 |
7 |
4 |
- |
6 |
|
X7 |
6 |
? |
? |
? |
5 |
6 |
- |
Шаг 1
Полагаем S'={x3}, S''={x1,x2,x4,x5,x6,x7}
V? = Ш
1 Итерация
Шаг 2
d(S',S'')=min{ щ(x3,x1), щ(x3,x2), щ(x3,x4), щ(x3,x5), щ(x3,x6)}= min {9,7,6,10,5)=5= щ(x3,x6)
S'={x3,x6},S''={x1,x2,x4,x5,x7}
V'={(x3,x6)}
Шаг 3
S? ? S
Переход на начало 2 шага
2 Итерация
Шаг 2
d(S',S'')=min{ щ(x3,x1), щ(x3,x2), щ(x3,x4), щ(x3,x5), щ(x6,x5), щ(x6,x7)}=min{9,7,6,10,4,6}=4= щ(x6,x5)
S'={x3,x5,x6},S''={x1,x2,x4,x7}
V'={(x3,x6),(x6,x5)}
Шаг 3
S? ? S
Переход на начало 2 шага
3 Итерация
Шаг 2
d(S',S'')=min{ щ(x3,x1), щ(x3,x2), щ(x3,x4), щ(x3,x5), щ(x6,x7), щ(x5,x2), щ(x5,x4),(x5,x7)}=min{9,7,6,10,6,9,8,5}=5= щ(x5,x7)
S'={x3,x5,x6,x7},S”={x1,x2,x4}
V'={(x3,x6),(x6,x5),(x5,x7)}
Шаг 3
S? ? S
Переход на начало 2 шага
4 Итерация
Шаг 2
d(S',S'')=min{ щ(x3,x1), щ(x3,x2), щ(x3,x4), щ(x3,x5), щ(x5,x2), щ(x5,x4), щ(x7,x1)}={9,7,6,10,9,8,5,6}=6= щ(x7,x1)
S'={x1,x3,x5,x6,x7},S''={x2,x4}
V'={(x3,x6),(x6,x5),(x5,x7),(x7,x1)}
Шаг 3
S? ? S
Переход на начало 2 шага
5 Итерация
Шаг 2
d(S',S'')=min{ щ(x3,x1), щ(x3,x2), щ(x3,x4), щ(x3,x5), щ(x5,x2), щ(x5,x4), щ(x1,x2)}=min{9,7,6,10,9,8,5,8}=6= щ(x3,x4)
S'={x1,x3,x4,x5,x6,x7}, S''={x2}
V'={(x3,x6),(x6,x5),(x5,x7),(x7,x1),(x3,x4)}
Шаг 3
S? ? S
Переход на начало 2 шага
6 Итерация
Шаг 2
d(S',S'')=min{ щ(x3,x1), щ(x3,x2), щ(x3,x5), щ(x5,x2), щ(x5,x4), щ(x1,x2), щ (x4,x2), щ (x4,x6)}= min{9,7,10,9,8,5,8,6,7}=6= щ(x4,x2)
S'={x1,x2,x3,x4,x5,x6,x7}, S''= Ш
V'={(x3,x6),(x6,x5),(x5,x7),(x7,x1),(x3,x4),(x4,x2)}
Шаг 3
Получим основной граф G'=(S',V').
Вес графа = 6+5+4+5+6+6=32
Задание 4
матрица алгоритм путь
По заданной матрице пропускных способностей дуг ? графа G найти максимальный поток от вершины s=x1 до вершины t=x7 и указать минимальный разрез, отделяющий s от t
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
||
x1 |
- |
7 |
9 |
- |
- |
8 |
- |
|
x2 |
- |
- |
11 |
14 |
10 |
- |
6 |
|
x3 |
- |
- |
- |
9 |
11 |
19 |
- |
|
x4 |
- |
- |
- |
- |
- |
12 |
- |
|
x5 |
- |
- |
- |
8 |
- |
14 |
- |
|
x6 |
- |
- |
- |
- |
- |
- |
10 |
|
x7 |
- |
- |
- |
- |
- |
- |
- |
Этап 1
Д=min{7;6}=6
Дуга (x2,x7) - насыщенная
Д=min{9,19,10}=9
Дуга (x1,x3) - насыщенная
Д=min{8,10-9}=1
Дуга (x6,x7) - насыщенная
Более маршрутов нет, поток максимальный
Делаем разрез вокруг t.
Максимальный поток:16
Размещено на Allbest.ru
...Подобные документы
Нахождение минимального пути от фиксированной до произвольной вершины графа с помощью алгоритма Дейкстры, рассмотрение основных принципов его работы. Описание блок-схемы алгоритма решения задачи. Проверка правильности работы разработанной программы.
курсовая работа [495,4 K], добавлен 19.09.2011Описание заданного графа множествами вершин V и дуг X, списками смежности, матрицей инцидентности и смежности. Матрица весов соответствующего неориентированного графа. Определение дерева кратчайших путей по алгоритму Дейкстры. Поиск деревьев на графе.
курсовая работа [625,4 K], добавлен 30.09.2014Алгоритм перехода к графическому представлению для неориентированного графа. Количество вершин неориентированного графа. Чтение из матрицы смежностей. Связи между вершинами в матрице. Задание координат вершин в зависимости от количества секторов.
лабораторная работа [34,0 K], добавлен 29.04.2011Основные понятия и свойства эйлеровых и гамильтоновых цепей и циклов в теории графов. Изучение алгоритма Дейкстры и Флойда для нахождения кратчайших путей в графе. Оценки для числа ребер с компонентами связанности. Головоломка "Кенигзберзьких мостов".
курсовая работа [2,4 M], добавлен 08.10.2014Минимальное остовное дерево связного взвешенного графа и его нахождение с помощью алгоритмов. Описание алгоритма Краскала, возможность строить дерево одновременно для нескольких компонент связности. Пример работы алгоритма Краскала, код программы.
курсовая работа [192,5 K], добавлен 27.03.2011Контрольный пример к алгоритму метода хорд. Вычисление и уточнение корня методом хорд и касательных. Нахождение второй производной заданной функции. Уточненное значение корня решаемого уравнения на заданном интервале. Код программы данного примера.
лабораторная работа [276,9 K], добавлен 02.12.2014Определение вероятности для двух несовместных и достоверного событий. Закон распределения случайной величины; построение графика функции распределения. Нахождение математического ожидания, дисперсии, среднего квадратичного отклонения случайной величины.
контрольная работа [97,1 K], добавлен 26.02.2012Побудування графа та матриці інцидентності. Перетворення графа у зважений за допомогою алгоритму Дейкстри, знаходження довжини найкоротшого шляху між двома вершинами та побудування дійсного шляху. Обхід дерева у прямому та зворотному порядках.
курсовая работа [144,1 K], добавлен 03.07.2014Граф как совокупность объектов со связями между ними. Характеристики ориентированного и смешанного графов. Алгоритм поиска кратчайшего пути между вершинами, алгоритм дейкстры. Алгебраическое построение матрицы смежности, фундаментальных резервов и циклов.
методичка [29,4 M], добавлен 07.06.2009Пути наиболее адекватной газификации села, разработка кратчайшего пути прокладывания газопровода. Оптимизация маршрута доставки груза. Определение минимального срока работ по новому направлению предприятия, срок окупаемости и возврата кредита в банк.
контрольная работа [378,6 K], добавлен 10.02.2009Метод Форда-Беллмана для нахождения расстояния от источника до всех вершин графа. Алгоритмы поиска расстояний и отыскания кратчайших путей в графах. Блочно-диагональный вид и матрица в исследовании системы булевых функций и самодвойственной функции.
курсовая работа [192,1 K], добавлен 10.10.2011Алгоритм построения минимального остовного дерева. Последовательность выполнения алгоритма Прима, его содержание и назначение. Процедура рисования графа. Порядок составления и тестирования программы, ее интерфейс, реализация и правила эксплуатации.
курсовая работа [225,0 K], добавлен 30.04.2011Понятия теории графов. Понятия смежности, инцидентности и степени. Маршруты и пути. Матрицы смежности и инцедентности. Алгоритм поиска минимального пути в ненагруженном ориентированном орграфе на любом языке программирования, алгоритм фронта волны.
курсовая работа [466,3 K], добавлен 28.04.2011Поиск кратчайших путей для пар вершин взвешенного ориентированного графа с весовой функцией. Включение матрицы в алгоритм Флойда, содержащую вершину, полученную при нахождении кратчайшего пути. Матрица, которая содержит длины путей из вершины в вершину.
презентация [36,1 K], добавлен 16.09.2013Задача на нахождение модуля и аргумента заданных чисел, пример решения. Область дифференцируемости заданной функции, действительная часть производной. Правило для определения уравнения образа кривой. Нахождение действительной и мнимой части функции.
методичка [693,0 K], добавлен 21.12.2011Вычисление математического ожидания, дисперсии, функции распределения и среднеквадратического отклонения случайной величины. Закон распределения случайной величины. Классическое определение вероятности события. Нахождение плотности распределения.
контрольная работа [38,5 K], добавлен 25.03.2015Общая характеристика распространенных проблем поиска величины максимального потока в сети при помощи алгоритма Форда-Фалкерсона. Знакомство с задачами по дискретной математике. Рассмотрение особенностей и этапов постройки дерева кратчайших расстояний.
контрольная работа [740,3 K], добавлен 09.03.2015Решение задач по определению вероятности событий, ряда и функции распределения с помощью формулы умножения вероятностей. Нахождение константы, математического описания и дисперсии непрерывной случайной величины из функции распределения случайной величины.
контрольная работа [57,3 K], добавлен 07.09.2010Понятие дифференциального уравнения. Нахождение первообразной для заданной функции. Нахождение решения дифференциального уравнения. Выделение определенной интегральной кривой. Понятие произвольных независимых постоянных. Уравнение в частных производных.
презентация [42,8 K], добавлен 17.09.2013Уравнение прямой линии на плоскости, условия перпендикулярности плоскостей. Вычисления для векторов и их значение, нахождение скалярных произведений, обратная матрица к квадратной матрице и вычисление определителя, бесконечные системы и их признаки.
тест [526,3 K], добавлен 08.03.2012