Презентация Алгоритмы на графах Тема лекции: Поиск по графу онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Алгоритмы на графах Тема лекции: Поиск по графу абсолютно бесплатно. Урок-презентация на эту тему содержит всего 40 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Алгоритмы на графах Тема лекции: Поиск по графу
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:40 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.39 MB
- Просмотров:116
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№4 слайд
Содержание слайда: Поиск по графу. Алгоритм пометок
search (vert v0)
{ setVert Q; // рабочее множество вершин графа
bool newVert [n];
global setVert V; //множество вершин графа G=(V,E), Card(V)=n
listVert adj [n]; //списки смежности
for (vV) newVert[v] = true; //пометить вершины как необследованные
Q = { v0 }; NewVert[v0] = false;
while (Q { }) {
v = произвольный элемент из Q;
удалить v из Q;
посетить ( v );
for ( u Adj[v]) {
if (NewVert[u]) {
Q = Q + {u};
NewVert[u] = false;
} // if
}//for
// вершина v - использована
} //while
} //search
№5 слайд
Содержание слайда: Поиск по графу. Алгоритм пометок
Procedure Search ( v0: Vert );
var Q : SetVert;
NewVert : Array [1..n] of Boolean;
global V : SetVert; {множество вершин графа G=(V,E), Card(V)=n }
Adj: array [1..n] of ListVert; { списки смежности }
begin
for v V do NewVert[v] := True; { - пометить все вершины как необследованные }
Q := { v0 }; NewVert[v0] := False;
While Q { } do
begin
v := произвольный элемент из Q; удалить v из Q;
посетить ( v );
for u Adj[v] do
if NewVert[u] then
begin
Q := Q + {u}; NewVert[u] := False
end {if-for}
{ вершина v - использована }
end {while}
end { Search }
№6 слайд
Содержание слайда: ПОИСК В ШИРИНУ
ПОИСК В ШИРИНУ
( Breadth First Search - BFS )
Множество Q реализуется очередью q (раньше посетили - раньше использовали).
Заодно строится остовное дерево (T – множество древесных ребер)
search_BFS (vert v0)
{ queueVert q;
bool newVert [n];
global setVert V; //множество вершин графа G=(V,E), Card(V)=n
listVert adj [n]; //списки смежности
setBr T; // множество ветвей (branch) дерева
№7 слайд
Содержание слайда: ПОИСК В ШИРИНУ ( O(n+m) )
for (vV) newVert[v]=true;//пометить вершины как необследованные
Create(q);
q v0;
newVert[v0] =false;
T = { };
while ( !Null( q )) {
v q;
посетить ( v );
for (uAdj[v] ) {
if (newVert[u] ) {
q u;
newVert[u] =false;
T = T + { <v,u> };
// predVert[u] = v
} //if
} //for вершина v - использована
} //while
} // searchBFS
№8 слайд
Содержание слайда: ПОИСК В ШИРИНУ ( O(n+m) )
begin
for v V do NewVert[v] := True;
{ - пометить все вершины как необследованные }
Create(q); q v0;
NewVert[v0] := False; T := { };
While not Null( q ) do
begin
v q; посетить ( v );
for u Adj[v] do
if NewVert[u] then
begin
q u; NewVert[u] := False;
T := T + { <v,u> }
{ PredVert[u] := v }
end {if-for}
{ вершина v - использована }
end {while}
end { BFS }
№11 слайд
Содержание слайда: searchDFS (vert v)
searchDFS (vert v)
{ global bool newVert [n];
setVert V; //множество вершин графа G=(V,E), Card(V)=n
listVert adj [n]; //списки смежности
setBr T; // множество ветвей (branch) дерева
посетить v;
newVert[v] =false;
for (uAdj[v] )
if (newVert[u]) searchDFS(u);
//v - использована
} // searchDFS
№12 слайд
Содержание слайда: ПОИСК В ГЛУБИНУ (ПВГ)
( Depth First Search - DFS )
// cобственно поиск в глубину в графе G=(V,E)
{…
setVert V; //множество вершин графа G=(V,E), Card(V)=n
listVert adj [n]; //списки смежности
for (vV) newVert[v] = true;
// - пометить все вершины как необследованные
for (vV)
if (newVert[v] ) searchDFS(v);
}
№15 слайд
Содержание слайда: СВЯЗНЫЕ КОМПОНЕНТЫ (Поиск в глубину)
СВЯЗНЫЕ КОМПОНЕНТЫ (Поиск в глубину)
{…
setVert V; //множество вершин графа G=(V,E), Card(V)=n }
int numComp [n1];
//вершина помечается номером своей связной компоненты
int iC ; //номер связной компоненты
for (vV) numComp[v] = 0;
// - пометить все вершины как необследованные
iC = 0;
for (vV)
if (numComp[v] == 0) {
iC++;
comp(v);
} //if
} // for
}
№16 слайд
Содержание слайда: СВЯЗНЫЕ КОМПОНЕНТЫ (Поиск в глубину)
Рекурсивная процедура (функция)
нахождения связных компонент графа
comp (vert v)
{global int numComp [n1];
listVert adj [n]; //списки смежности
iC : Num; //номер связной компоненты
numComp[v] = iC;
for (uAdj[v])
if (numComp[u] == 0) comp(u);
// v - использована
} //comp
№19 слайд
Содержание слайда: Сравнение с динамическим алгоритмом нахождения связных компонент
Алгоритм из лекции 5, решающий задачу связности, тоже строит связные компоненты
Алгоритм DFS-ПВГ сложности O (n +m) эффективнее.
Динамический алгоритм эффективнее в ситуации, когда ребра графа добавляются последовательно, т.к. не требует заново применять ПВГ.
№20 слайд
Содержание слайда: Построение остовного дерева
и множества обратных ребер
при поиске в глубину
( Tree of Depth First Search -TDFS )
treeDFS (vert v, vert u)
{ // посещаем вершину v и т.д.; u = Отец(v)
global
int numVert [n];
listVert Adj [n]; // списки смежности
int iV; /*текущий порядковый номер посещения вершины*/
setBrT; // множество ветвей остовного дерева
setBr B; // множество хорд (обратных ребер)
№21 слайд
Содержание слайда: продолжение
iV ++; // посетить v
numVert[v] = iV;
for (wAdj[v]) {
if (numVert[w]==0) {
// <v,w> - ребро (ветвь) остовного дерева
T = T + { <v, w> };
treeDFS( w, v);
}
else // w - уже посещалась
if ((numVert[w] < NumVert[v]) && (w!=u))
// <v,w> - обратное ребро (хорда) }
B = B + { <v,w> };
}// v - использована }
}// treeDFS
№22 слайд
Содержание слайда: Продолжение
Собственно поиск в глубину в графе G=(V,E):
{ setVert V; //множество вершин графа G=(V,E), Card(V)=n
int numVert [n];
listVert Adj [n]; // списки смежности
int iV; //текущий порядковый номер посещения вершины setBrT; // множество ветвей остовного дерева
setBr B; // множество хорд (обратных ребер)
for (vV) numVert[v] = 0;
// - пометить все вершины как необследованные
iV = 0;
T = { }; B = { };
for (vV)
if (numVert[v]==0) treeDFS(v, v );
}
№29 слайд
Содержание слайда: Свойство DFS-остова
Для любых двух вершин u, v выполняется ровно одно из трех утверждений:
Отрезки [p[u],f[u]] и [p[v],f[v]] не пересекаются, и ни u не является потомком v в DFS-лесу, ни v не является потомком u.
Отрезок [p[u],f[u]] полностью содержится в отрезке [p[v],f[v]], и u является потомком v в DFS-дереве.
Отрезок [p[v],f[v]] полностью содержится в отрезке [p[u],f[u]], и v является потомком u в DFS-дереве.
================================================
v - потомок u , ттогда, когда p[u] < p[v] < f[v] < f[u]
№33 слайд
Содержание слайда: Алгоритм Борувки построения МОД
O(m*log n)
Вход : V - множество вершин заданного графа G=(V,E)
E - множество ребер заданного графа G=(V,E)
D [1..n,1..n] - матрица весов (или ф-ия D(.,.) )
Выход: T - множество ребер МОД
Рабочие: C - множество связных компонент графа (V,T), т.е. леса;
C = {S1,...,Sk}, где Sj – связная компонента леса, т.е. дерево
Кратч[1..n] – массив ребер; Кратч[i] - ребро, кратчайшее из всех ребер, имеющих ровно один конец (вершину) в дереве (в связной компоненте) Si=(Vi,Ti);
Min[1..n] - вспомогательный массив для определения Кратч[i]
№36 слайд
Содержание слайда: {
{
T={ }; C={ {v1},...,{vn} };
while (Card(C)<>1) {
// этап:
for (SiC) min[i]=+;
Для SiC найти Кратч[i] – кратч. из всех ребер, имеющих ровно один конец в дереве Si=(Vi,Ti) /*см. след.сл.*/
for (SiC) T = T + { Кратч[i] } ;
Найти множество C связных компонент графа (V,T);
} //while
/*Примечание: если при нахождении связных компонент вычислен массив numComp[ ] (см.сл.13-14),
то i и j, используемые далее, определяются так:
i =numComp[u]; j =numComp[v] */
}
Скачать все slide презентации Алгоритмы на графах Тема лекции: Поиск по графу одним архивом:
-
Алгоритмы на графах Тема лекции: Кратчайшие пути в графе
-
Контекстная реклама в поисковых системах и на партнерских сайтах. Советы по эффективному использованию
-
SEO или продвижение сайта в поисковых системах. Юрасов Денис, директор по развитию Медведев Маркетинг medvedevmarketing. ru
-
Система вопросно-ответного поиск Lasso Q/A System по материалам конференции TREC-1999 Доклад Устинова В. Д. Научные руководители: Большакова
-
Международная валютная система Лекция 6
-
«Оттепель» (1953-1964 гг. ) Мультимедийное сопровождение к тематической лекции по истории в 9 классе
-
Тема лекции: ПЕРВОБЫТНАЯ КУЛЬТУРА Вопросы, рассматриваемые на лекции: 1. Доисторическая эпоха. Каменный, бронзовый и железный век
-
Лекция 8 Тема: Удостоверение документов и фактов. Принятие в депозит ценных бумаг. Совершение протеста векселей. Удостоверение нот
-
Лекция 7 Тема: Удостоверение договоров, связанных с отчуждением недвижимости
-
Лекция 6 Тема: Выдача нотариусом Свидетельства о праве на наследство