Маршруты на графах Нахождение компонент связности Поиск маршрутов, удовлетворяющим определённым требованиям Кратчайшие маршруты.

Презентация:



Advertisements
Похожие презентации
Алгоритмы сканирования и обхода Лекция 3. Алгоритм сканирования графа Input: Орграф (граф) G и вершина s. Output: Множество R вершин, достижимых из s,
Advertisements

Графы. Деревья Продолжение А.Г.Баханский © Программирование – вторая грамотность. А.П.Ершов Граф (Л.Н.Толстой) Граф (не ориентированный) Граф (ориентированный)
Обработка массивов Сортировка. Сортировка массивов «…создается впечатление, что можно построить целый курс программирования, выбирая примеры только из.
Выполнила Кулагина С.О.. ОПРЕДЕЛЕНИЯ Будем рассматривать задачу в терминах ориентированных графов. Граф – конечное множество V, называемое множеством.
Интеллектуальный поиск путей на графах. Обзор алгоритмов, применение в компьютерных играх Факультет ВМК Кафедра МО ЭВМ Нижегородский государственный университет.
Интеллектуальный поиск путей на графах. Обзор алгоритмов, применение в компьютерных играх Факультет ВМК Кафедра МО ЭВМ Нижегородский государственный университет.
Алгоритм Леонид 10 класс. Алгоритм - это строго детерминированная последовательность действий, описывающая процесс преобразования объекта из начального.
Часть 1 If если then else еnd if то, тогда иначе всё, конец ветвления.
Оператор присваивания := Ввода Read(x1,x2,…) Readln(x1,x2,…) Вывода Writex(x1,x2,…) Writeln(x1,x2,…) Составной оператор begin …. End;
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
Алгоритмические конструкции. Решить задачу при х=16, у=2.
Представление графов. Матрица смежности Граф:
Алгоритмические структуры 1.Линейный 2.Ветвление 3.Цикл.
Операторы. Оператор выбора Оператор выбора Оператор выбора Оператор выбора Оператор присваивания Оператор присваивания Оператор присваивания Оператор присваивания.
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
Лекция 2Лекция 2Структура программы Директивы препроцессора main () { Описания переменных Операторы }
Основные типы алгоритмических структур. Линейный алгоритм ( следование ) Алгоритм, в котором команды выполняются последовательно одна за другой, называется.
Урок информатики 9 физико-математический класс.
Кодирование основных типов алгоритмических структур на языках объектно ориентированного и процедурного программирования. Автор: Артебякин Степан Александрович.
Циклические алгоритмы. Цикл - это такая алгоритмическая структура, в которой осуществляется многократное повторение одной ( или нескольких ) команд.
Транксрипт:

Маршруты на графах Нахождение компонент связности Поиск маршрутов, удовлетворяющим определённым требованиям Кратчайшие маршруты

Обход графа и в ширину и в глубину Вход: граф G(V,E), начальная вершина x V for v V do s[v] := 0 x T (* поместить x в структуру T *) s[x]:=1 while T do u T (* извлекаем вершину из T *) выдать u for w Г(u) do (* Г(u) – вершины, смежные u *) if s[w] = 0 then w T s[w] := 1 end if end for end while

Нахождение компонент связности Вход: граф G(V,E), начальная вершина x V T = { x } S = while T S do u T / S (* извлекаем вершину из T *) S := S { u } T := T Г(u) (* Г(u) – вершины, смежные u *) end while

Нахождение компонент сильной связности procedure kss if T = then return v T; v T if Г[v] V = then C:=C M[v] V:=V \ {v} v T kss else for u Г[v] do if e[u] = 0 then u T e[u]:=1 else repeat w T V:=V \ {w} Г[u]:=Г[u] Г[w] M[u]:=M[u] M[w] until u=w w T V:=V {w} end if kss end for end if C := for v V do M[v] := {v} e[v] := 0 end for while V do select v V T v e[v]:=1 kss end while

Расстояние между вершинами на графе Граф без весов рёбер – алгоритм просмотра в ширину Взвешенный граф: Алгоритм Дейкстры Алгоритм Флойда

Алгоритм Дейкстры Матрицей смежности задан взвешенный граф. Отсутствие ребра задаётся бесконечностью. #define inf = 10000; int n, i, j, mind, minv; int c[200,200]; int s[200]; int d[200]; for(i=1;i

Алгоритм Флойда void dist() { long r; for(i=1;i