Аноним

Проверка на планарность: различия между версиями

Материал из WEGA
 
(не показаны 4 промежуточные версии 1 участника)
Строка 4: Строка 4:


== Постановка задачи ==
== Постановка задачи ==
Задача заключается в установлении факта, является ли входной граф G планарным. Определение, наиболее подходящее для алгоритмов проверки на планарность, звучит так: граф G является планарным, если существует его вложение в плоскость (вершины G отображаются на различные точки, ребра G отображаются на кривые, соединяющие соответствующие конечные точки), такое, что ребра графа не пересекаются. Алгоритмы, проводящие проверку графа на планарность, можно модифицировать для получения подобного вложения.
Задача заключается в установлении факта, является ли входной граф G [[планарный граф|планарным]]. Определение, наиболее подходящее для алгоритмов проверки на планарность, звучит так: граф G является планарным, если существует его [[вложение графов|вложение]] в плоскость (вершины G отображаются на различные точки, ребра G отображаются на кривые, соединяющие соответствующие конечные точки), такое, что ребра графа не пересекаются. Алгоритмы, проводящие проверку графа на планарность, можно модифицировать для получения подобного вложения.
 


== Основные результаты ==
== Основные результаты ==
Строка 11: Строка 10:




Первый алгоритм с линейным временем исполнения предложили Хопкрофт и Тарьян [5], проанализировав итеративную версию рекурсивного алгоритма, разработанного Ауслендером и Партером [1] и модифицированного Голдштейном [4]. Алгоритм основывается на следующем наблюдении: связный граф является планарным в том и только том случае, если все его двусвязные компоненты являются планарными. Рекурсивный алгоритм последовательно обрабатывает каждую двусвязную компоненту: найти разделяющий цикл (separating cycle) C и разбиение ребер G, не принадлежащих C; определить компоненту разбиения как состоящую из ребер, связанных путем в G, и не включающую ребер из C; рекурсивно рассмотреть каждую циклическую компоненту разбиения. Если каждая компонента разбиения является планарной, а все компоненты могут быть объединены с C в планарный граф, то граф G является планарным.
Первый алгоритм с линейным временем выполнения предложили Хопкрофт и Тарьян [5], проанализировав итеративную версию рекурсивного алгоритма, разработанного Ауслендером и Партером [1] и модифицированного Голдштейном [4]. Алгоритм основывается на следующем наблюдении: связный граф является планарным в том и только том случае, если все его двусвязные компоненты являются планарными. Рекурсивный алгоритм последовательно обрабатывает каждую двусвязную компоненту: найти разделяющий цикл (separating cycle) C и разбиение ребер G, не принадлежащих C; определить компоненту разбиения как состоящую из ребер, связанных путем в G, и не включающую ребер из C; рекурсивно рассмотреть каждую циклическую компоненту разбиения. Если каждая компонента разбиения является планарной, а все компоненты могут быть объединены с C в планарный граф, то граф G является планарным.




Строка 24: Строка 23:


== Ссылка на код ==
== Ссылка на код ==
Библиотека LEDA предлагает эффективную реализацию алгоритма Хопкрофта и Тарьяна [7]: http://www. algorithmic-solutions.info/leda_guide/graph_algorithms/ planar_kuratowski.html
Библиотека LEDA предлагает эффективную реализацию алгоритма Хопкрофта и Тарьяна [7]: http://www.algorithmic-solutions.info/leda_guide/graph_algorithms/planar_kuratowski.html




== См. также
== См. также
* ''[[Полностью динамическая проверка на планарность]]
* ''[[Полностью динамическая проверка на планарность]]


== Литература ==
== Литература ==
Строка 47: Строка 45:


8. Shih, W.-K., Hsu, W.-L.: A new planarity test. Theor. Comput. Sci. 223, pp. 179-191 (1999)
8. Shih, W.-K., Hsu, W.-L.: A new planarity test. Theor. Comput. Sci. 223, pp. 179-191 (1999)
[[Категория: Совместное определение связанных терминов]]