11.Поиск в глубину
1.Выбираем вершину v0. Помечаем ее как текущую. Полагаем D(v0) = 1, k = 1.
i.Пусть x – текущая вершина.
i.1.Если существует непомеченное ребро xy, то а) если y уже имеет номер, то помечаем ребро xy как обратное и продолжаем поиск непомеченного ребра, инцидентного x б) если y не имеет номера, то k++, D(y) = k, переходим в y.
i.2. Если непомеченного ребра xy не существует, то возвращаемся в вершину, из которой x получила свою метку.
k:=1, v:=v0, D(v):=k; push(Q,v), D(v):=-1 "uÎV(G)\{v}
while (Q¹Æ)
{
с = false;
v:=top(Q);
for (uÎN(v))
if (D(u)=-1)
uv – прямое; k++; D(v)=k; push(Q,u);
c = true; break;
else
uv – обратное
if (!c)
pop(Q);
}
Утверждение 1. Прямые ребра образуют корневое остовное дерево с корнем в начальной вершине.
Утверждение 2. Обратное ребро направлено от вершины с большей меткой к вершине с меньшей меткой.
Применение поиска в глубину:
Проверка графа на связность, на двусвязность.
Граф называется двусвязным, если между любыми двумя его вершинами существуют два непересекающихся пути . Двусвязная компонента графа (или блок) – максимальный двусвязный подграф графа.
Трудоемкость - O(n+m)
Утв. Пусть V не явл-ся корнем. Тогда V точка сочленения для некоторого ее сына s не существует ребра (x,y) что х – потомок s или =s, а y – предок V.
- 1.Трудоемкость алгоритмов
- 2.Алгоритмы сортировки
- 3.Сортировка слиянием
- 4.Бинарные поисковые деревья
- 5.2-3-4 Деревья
- 6.Хеширование
- 7. Поиск подстроки. Алгоритм Кнута-Морриса- Пратта.
- 8. Графы. Структуры данных для представления графов
- 9. Алгоритм нахождения Эйлерова цикла
- 10 .Поиск в ширину(волновой алгоритм)
- 11.Поиск в глубину
- 12.Жадные алгоритмы и матроиды
- 13.Задача об остовном дереве. Алгоритмы Прима и Краскала, их реализация
- 14. Алгоритм Дийкстры
- 15. Алгоритм Флойда
- 16. Паросочетания в двудольных графах
- 17. Потоки и разрезы в сетях. Алгоритм Форда-Фалкерсона
- 18. Задача о рюкзаке
- 21. Классы p и np. Полиномиальное сведение.
- 22. Np- полные задачи. Теорема Кука-Карпа-Левина. Np-полнота задачи о клике
- 23. Алгоритмы с гарантированной оценкой точности. Задача упаковки
- 24.Метод локального поиска и поиска с запретами. Задача о максимальном разрезе.
- 25.Метод ветвей и границ. Задача коммивояжера.
- 26. Задача коммивояжера с неравенством треугольника. Алгоритм Кристофидеса
- 27.Задача о независимом множестве, точные и эвристические алгоритмы ее решения
- 28.Задача о раскраске графа, точные и эвристические алгоритмы ее решения.
- 31.Задача о раскраске хордальных графов
- 32.Генетические алгоритмы
- 33. Page Rank
- 34 Криптосистема с открытым ключом. Криптосистема rsa
- 35.Задача разделения секрета.
- 36. Алгоритмы сжатия информации