Алгоритмы решения некоторых теоретико-графовых задач
Алгоритм Прима
Определим расстояние между произвольной вершиной v взвешенного графа G=(V,E) и некоторым его подграфом G'G как минимальный вес ребра, одним из концов которого является v, а другой лежит в G': d(v,G')=min(v,w)E(G),wG'Weight(v,w).
-
SST'=<граф, состоящий из одной произвольной вершины графа G>;
-
если |E(SST')|=n-1, то SST=SST'; КОНЕЦ;
-
среди множества I вершин графа G, не входящих в SST', но инцидентных хотя бы одной вершине из SST' (I={u | uV(G), uSST', (u,v)E(G), vSST'}), найти вершину wI, расстояние которой до SST' минимально: d(w,SST')=minvId(v,SST');
-
добавить ребро (w,u), на котором достигается минимальное расстояние d(w,SST'), в SST';
-
перейти на шаг 2.
(без доказательства - можно доказать по аналогии с АК)
~
Содержание
- 1. Элементы теории графов
- Основные определения
- Пути и циклы
- Деревья
- Цикломатическое число и фундаментальные циклы
- Планарные графы
- Раскраски графов
- Графы с атрибутами
- Независимые множества и покрытия
- 2. Задачи и алгоритмы
- Кратчайшие пути
- Волновой алгоритм
- Алгоритм Дейкстры
- Кратчайшее остовное дерево
- Алгоритм Прима