Есть несколько алгоритмов, которые решают за полиномиальное время, можно ли построить график на плоскости или нет, даже многие с линейным временем выполнения. Тем не менее, я не смог найти очень простой алгоритм, который можно было бы легко и быстро объяснить в классе, и показал бы, что PLANARITY в P. Знаете ли вы какой-нибудь?
При необходимости вы можете использовать теорему Куратовского или Фэри, но не углубляться, как теорема о второстепенном графе. Также обратите внимание, что мне плевать на время выполнения, я просто хочу что-то полиномиальное.
Ниже приведены 3 лучших алгоритма, демонстрирующие компромисс между простотой и отсутствием глубокой теории.
Алгоритм 1. Используя это, мы можем проверить, содержит ли граф или как минор за полиномиальное время, мы получаем очень простой алгоритм с использованием глубокой теории. (Обратите внимание, что эта теория уже использует вложения графа, как указал Саид, так что это не настоящий алгоритмический подход, просто что-то простое, чтобы сказать студентам, которые уже знали / приняли теорему о второстепенном графе.)К 3 , 3
Алгоритм 2 [на основе чьего-либо ответа]: легко понять, что достаточно иметь дело с 3-связными графами. Для этого найдите лицо, а затем примените весеннюю теорему Тутте.
Алгоритм 3 [рекомендовано Юхо]: алгоритм Демокрона, Мальгранжа и Пертуазе (DMP). Рисуем цикл, компоненты оставшегося графа называются фрагментами, мы их встраиваем подходящим образом (пока создаем новые фрагменты). Этот подход не использует никаких других теорем.
Ответы:
Я собираюсь описать алгоритм. Я не уверен, что это квалифицируется как «легкое», и некоторые доказательства не так просты.
Сначала мы разбиваем график на 3-связные компоненты, как упомянуто Чандрой Чекури.
Мы сократили задачу до проверки, является ли трехсвязная компонента графа плоской. Пусть обозначает 3-связную компоненту.G
Примечания:
источник
Алгоритм Бойера и Мирволда считается одним из самых современных алгоритмов тестирования планарности.
На переднем крае: упрощенная O (n) планарность путем сложения краев Бойера и Мирволда.
В этой главе книги рассматриваются многие алгоритмы тестирования на плоскостность, и, надеюсь, вы найдете достаточно простой алгоритм.
источник
Как насчет алгоритма Хопкрофта и Тарьяна 1974 года {1} ?
{1} Хопкрофт, Джон и Роберт Тарьян. «Эффективное тестирование плоскостности». Журнал ACM (JACM) 21,4 (1974): 549-568.
источник
Два алгоритма, оба в LogSpace
Второе намного проще первого.
источник