13.Задача об остовном дереве. Алгоритмы Прима и Краскала, их реализация
Пусть каждое ребро графа имеет положительный вес.
Задача состоит в том чтобы найти остов наименьшего веса.
Теорема Кирхгофа. Число остовных деревьев связного графа G равно алгебраическому дополнению любого эл-та его матрицы Кирхгофа.
Теорема Кэли. Число остовных деревьев полного графа на n вершинах равно nn-2.
Алгоритм Краскала
1.Начать с пустого графа T. 2.Упорядочить ребра графа G в порядке неубывания их весов. 3.Начав с первого ребра в этом списке, добавлять ребра в графе T, соблюдая условие: такое добавление не должно приводить к появлению цикла в T. 4.Повторять шаг 3 до тех пор, пока число ребер в T не станет равным n-1 Пример. Есть граф с различными весами ребер-все его вершины помечаем a b c d e f g и расставляем под ними метки 1 2 3 4 5 6 7. Далее находим наименьшее по весу ребро(пусть af), помечаем его и под f пишем 1, т.е то, что написано под а, ищем следующее мин ребро(пусть cd), помечаем его и под d пишем 3(то что под с) Следующее мин ребро помечаем f b-тогда под b пишем 1(то что под f)- далее помечаем fc-тогда под c пишем 1 и под соответственно тоже(так как под c стало 1) и тд, пока под всеми буквами не будут стоять единицы. В итоге помеченные ребра и образуют дерево мин веса. Сложность алгоритма Краскала - O(mlogm)
Теорема. Алгоритм Краскала строит дерево минимального
веса.
Алгоритм Прима
1.Начать с пустого графа T0 2.Пусть Tk-1 уже построено, Tk получается из Tk-1 добавлением ребра e минимального веса среди обладающих свойствами: a) e инцидентно какой-либо вершине Tk-1; b)Tk-1+e не содержит циклов; Алгоритм. Сначала всем вершинам метки 0 в новом графе где только вершины, соединяем ребром с мин весом вершины а и f – тогда у а и f метки 0,у всех же остальных вершин мин веса ребер из f к другим вершинам, либо если через а короче, то и вес мин ребра из а, тогда выбираем вершиту с мин меткой и соединяем ребром-пусть это b-тогда b тоже получает метку 0 теперь просматриваем расстановку меток вершин для b и т д пока не построим остов(то есть через все вершины должны проходить ребра). Сложность алгоритма Прима при стандартной реализации – O (n2)
- 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. Алгоритмы сжатия информации