Разделы презентаций


Алгоритмы на графах

Содержание

Основные алгоритмыНахождение кратчайших путей из одного источника: алгоритм Дейкстры.Построение минимального остова графа: алгоритм Крускала. Задача о лабиринте и поиск в глубину на неориентированном графе.

Слайды и текст этой презентации

Слайд 1Алгоритмы на графах

Алгоритмы на графах

Слайд 3Основные алгоритмы
Нахождение кратчайших путей из одного источника: алгоритм Дейкстры.
Построение минимального

остова графа: алгоритм Крускала.
Задача о лабиринте и поиск в

глубину на неориентированном графе.

Основные алгоритмыНахождение кратчайших путей из одного источника: алгоритм Дейкстры.Построение минимального остова графа: алгоритм Крускала. Задача о лабиринте

Слайд 4Алгоритм Дейкстры

Алгоритм Дейкстры

Слайд 5Алгоритм Дейкстры
Э́дсгер Ви́бе Де́йкстра (Edsger Wybe Dijkstra [ˈɛtsxər ˈʋibə ˈdɛikstra]) (11 мая 1930, Роттердам, Нидерланды — 6

августа 2002) — нидерландский учёный, идеи которого оказали влияние на развитие компьютерной индустрии.

Алгоритм ДейкстрыЭ́дсгер Ви́бе Де́йкстра (Edsger Wybe Dijkstra [ˈɛtsxər ˈʋibə ˈdɛikstra]) (11 мая 1930, Роттердам, Нидерланды — 6 августа 2002) — нидерландский учёный, идеи которого оказали влияние

Слайд 6Алгоритм Дейкстры
Алгоритм Дейкстры  — алгоритм на графах, изобретённый нидерландским ученым Э.Дейкстрой в 1959 году. Находит кратчайшее

расстояние от одной из вершин графа до всех остальных.
Алгоритм

работает только для графов без рёбер отрицательного веса.
Алгоритм широко применяется в программировании и технологиях, например, его используют протоколы маршрутизации OSPF и IS-IS.
Алгоритм ДейкстрыАлгоритм Дейкстры  — алгоритм на графах, изобретённый нидерландским ученым Э.Дейкстрой в 1959 году. Находит кратчайшее расстояние от одной из вершин графа до

Слайд 7Формулировка задачи
Дан взвешенный ориентированный граф без петель и дуг отрицательного

веса. Найти кратчайшие пути от некоторой вершины а до всех

остальных вершин этого графа

Граф называется взвешенным или нагруженным, если каждому ребру поставлено в соответствии некоторое число w (вес).





Формулировка задачиДан взвешенный ориентированный граф без петель и дуг отрицательного веса. Найти кратчайшие пути от некоторой вершины

Слайд 8Алгоритм
Каждой вершине из V сопоставим метку — минимальное известное расстояние от этой вершины

до  а. Алгоритм работает пошагово — на каждом шаге он «посещает»

одну вершину и пытается уменьшать метки. Работа алгоритма завершается, когда все вершины посещены.

Метка самой вершины  а  полагается равной 0, метки остальных вершин — бесконечности. Это отражает то, что расстояния от a до других вершин пока неизвестны. Все вершины графа помечаются как непосещённые.

АлгоритмКаждой вершине из V сопоставим метку — минимальное известное расстояние от этой вершины до  а. Алгоритм работает пошагово — на каждом

Слайд 10Шаг алгоритма
Если все вершины посещены, алгоритм завершается.
В противном случае,

из ещё не посещённых вершин выбирается вершина u, имеющая минимальную метку.


Рассматриваем всевозможные маршруты из u. Вершины, в которые ведут рёбра из u, называются соседями этой вершины. Для каждого соседа вершины u, кроме отмеченных как посещённые, рассмотрим новую длину пути, равную сумме значений текущей метки u и длины ребра, соединяющего u с этим соседом. Если полученное значение длины меньше значения метки соседа, заменим значение метки полученным значением длины.
Рассмотрев всех соседей, пометим вершину u как посещенную и повторим шаг алгоритма.

Шаг алгоритмаЕсли все вершины посещены, алгоритм завершается. В противном случае, из ещё не посещённых вершин выбирается вершина u,

Слайд 13пример поиска кратчайшего пути на графе (алгоритм Дейкстры) 

пример поиска кратчайшего пути на графе (алгоритм Дейкстры) 

Слайд 14Задача. Для орграфа найти длины кратчайших путей от вершины s

ко всем остальным вершинам и восстановить кратчайшие пути к ним.


Задача. Для орграфа найти длины кратчайших путей от вершины s ко всем остальным вершинам и восстановить кратчайшие

Слайд 15Задача. Для н-графа найти длины кратчайших путей от вершины a

ко всем остальным вершинам и восстановить кратчайшие пути к ним.



Задача. Для н-графа найти длины кратчайших путей от вершины a ко всем остальным вершинам и восстановить кратчайшие

Слайд 16Задача. Для н-графа найти длины кратчайших путей от вершины a

ко всем остальным вершинам и восстановить кратчайшие пути к ним.



Задача. Для н-графа найти длины кратчайших путей от вершины a ко всем остальным вершинам и восстановить кратчайшие

Слайд 17Задача. Для н-графа найти длины кратчайших путей от вершины 1

ко всем остальным вершинам и восстановить кратчайшие пути к ним.



d(1,2)=7
d(1,3)=9
d(1,4)=20
d(1,5)=20
d(1,6)=11

Задача. Для н-графа найти длины кратчайших путей от вершины 1 ко всем остальным вершинам и восстановить кратчайшие

Слайд 18Код программы алгоритма Дейкстры на Pascal:

Код программы алгоритма Дейкстры на Pascal:

Слайд 19program DijkstraAlgorithm; uses crt; const V=6; inf=100000; type vektor=array[1..V] of integer; var start: integer; const GR: array[1..V, 1..V] of integer=( (0, 1, 4, 0, 2, 0), (0, 0, 0, 9, 0, 0), (4, 0, 0, 7, 0, 0), (0, 9, 7, 0, 0, 2), (0, 0, 0, 0, 0, 8), (0, 0, 0, 0, 0, 0)); {_________________________________________________________________} procedure Dijkstra(GR: array[1..V, 1..V] of integer; st: integer); var count, index, i, u, m, min: integer; distance: vektor; visited: array[1..V] of boolean; begin m:=st; for i:=1 to V do begin distance[i]:=inf; visited[i]:=false; end; distance[st]:=0; for count:=1 to V-1 do begin min:=inf;
for i:=1 to V do if (not visited[i]) and (distance[i]

> ', i,' = ', distance[i]) else writeln(m,' > ', i,' = ', 'маршрут недоступен'); end; {главное тело

программы} begin clrscr; write('Начальная вершина >> '); read(start); Dijkstra(GR, start); end.
program DijkstraAlgorithm; uses crt; const V=6; inf=100000; type vektor=array[1..V] of integer; var start: integer; const GR: array[1..V, 1..V] of integer=( (0, 1, 4, 0, 2, 0), (0, 0, 0, 9, 0, 0), (4, 0, 0, 7, 0, 0), (0, 9, 7, 0, 0, 2), (0, 0, 0, 0, 0, 8), (0, 0, 0, 0, 0, 0)); {_________________________________________________________________} procedure Dijkstra(GR: array[1..V, 1..V] of integer; st: integer); var count, index, i, u, m, min: integer;

Слайд 20Алгоритм Крускала

Алгоритм Крускала

Слайд 21Алгоритм Крускала (Краскала)
Крускал, Джозеф Б.  (Kruskal, Joseph B.) 29.01.1928 –19.09.2010 Почетный профессор. Bell

Labs,  Lucent Technologies, Room 2C-281, Murray Hill, NJ 07974, USA
Алгоритм Крускала (или алгоритм

Краскала) — алгоритм построения минимального остовного дерева взвешенного графа. Алгоритм впервые описан Джозефом Крускалом в 1956 году.
Алгоритм Крускала (Краскала)Крускал, Джозеф Б.  (Kruskal, Joseph B.) 29.01.1928 –19.09.2010 Почетный профессор. Bell Labs,  Lucent Technologies, Room 2C-281, Murray Hill,

Слайд 22Минимальное остовное дерево
Пример связного графа и двух его остовных

деревьев
Минимальным остовным деревом называется остовное дерево с минимальным общим весом

его ребер.

2

3

5

2

1

4

3

6

2

Минимальное остовное дерево Пример связного графа и двух его остовных деревьевМинимальным остовным деревом называется остовное дерево с

Слайд 23Для связного взвешенного графа  G=(V,E) построить минимальный остов S=(V,T).


Вход: связный граф G=(V,E) и функция стоимости (весов)

ребер c: E -> R.
Выход: минимальный остов S=(V,T).

Формулировка задачи

Для связного взвешенного графа  G=(V,E) построить минимальный остов S=(V,T).Вход: связный граф G=(V,E) и функция стоимости (весов) ребер c: E -> R.Выход: минимальный остов S=(V,T).Формулировка задачи

Слайд 24Шаги алгоритма
Создается список ребер E, содержащий длину ребра, номер исходной

вершины ребра, номер конечной вершины ребра.
Данный список упорядочивается в порядке

возрастания длин ребер.
Просматривается список E и выбирается из него ребро с минимальной длиной, еще не включенное в результирующее дерево S и не образующее цикла с уже построенными ребрами.
Если все вершины графа включены в дерево S и количество ребер на единицу меньше количества вершин, то алгоритм свою работу закончил. В противном случае осуществляется возврат к пункту 3.

Шаги алгоритмаСоздается список ребер E, содержащий длину ребра, номер исходной вершины ребра, номер конечной вершины ребра.Данный список

Слайд 25Пусть E содержит m ребер.
Упорядочим их по возрастанию стоимостей:

Последовательно для каждого i =1, ... , m определим

множество ребер Ti:


Положим T=Tm. Выдать в качестве результата граф S=(V,T).

Шаги алгоритма

Пусть E содержит m ребер. Упорядочим их по возрастанию стоимостей:Последовательно для каждого i =1, ... , m определим множество ребер Ti:Положим T=Tm. Выдать в качестве результата граф S=(V,T).Шаги алгоритма

Слайд 26Пример работы алгоритма Крускала
Исходный граф
Минимальный остов графа
минимальный остов S=(V,T), где T=T8 ={ (a,g),

(g,e), (g,c), (e,d), (a,b), (f,g)}

Пример работы алгоритма КрускалаИсходный графМинимальный остов графаминимальный остов S=(V,T), где T=T8 ={ (a,g), (g,e), (g,c), (e,d), (a,b), (f,g)}

Слайд 27Найти минимальный остов неориентированного взвешенного графа.
Пример работы алгоритма Крускала
Д/З Найти

минимальный остов неориентированного взвешенного графа.

Найти минимальный остов неориентированного взвешенного графа.Пример работы алгоритма КрускалаД/З Найти минимальный остов неориентированного взвешенного графа.

Слайд 28Исходный граф
Минимальное остовное дерево
Исходный граф
Минимальное остовное дерево
Задача. Найти минимальный остов

неориентированного взвешенного графа.

Исходный графМинимальное остовное деревоИсходный графМинимальное остовное деревоЗадача. Найти минимальный остов неориентированного взвешенного графа.

Слайд 29Найти минимальный остов взвешенного графа
Найти минимальное расстояние от вершины v3

до остальных вершин

Вариант 1
Найти минимальное расстояние от вершины 6 до

остальных вершин
Найти минимальный остов взвешенного графа


Вариант 2

Найти минимальный остов взвешенного графаНайти минимальное расстояние от вершины v3 до остальных вершинВариант 1Найти минимальное расстояние от

Слайд 30Вариант 1
Вариант 2
6
4
3

Вариант 1Вариант 2643

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика