Есть несколько алгоритмов, которые решают за полиномиальное время, можно ли построить график на плоскости или нет, даже многие с линейным временем выполнения. Тем не менее, я не смог найти очень простой алгоритм, который можно было бы легко и быстро объяснить в классе, и показал бы, что PLANARITY в P. Знаете ли вы какой-нибудь?
При необходимости вы можете использовать теорему Куратовского или Фэри, но не углубляться, как теорема о второстепенном графе. Также обратите внимание, что мне плевать на время выполнения, я просто хочу что-то полиномиальное.
Ниже приведены 3 лучших алгоритма, демонстрирующие компромисс между простотой и отсутствием глубокой теории.
Алгоритм 1. Используя это, мы можем проверить, содержит ли граф или как минор за полиномиальное время, мы получаем очень простой алгоритм с использованием глубокой теории. (Обратите внимание, что эта теория уже использует вложения графа, как указал Саид, так что это не настоящий алгоритмический подход, просто что-то простое, чтобы сказать студентам, которые уже знали / приняли теорему о второстепенном графе.)К 3 , 3
Алгоритм 2 [на основе чьего-либо ответа]: легко понять, что достаточно иметь дело с 3-связными графами. Для этого найдите лицо, а затем примените весеннюю теорему Тутте.
Алгоритм 3 [рекомендовано Юхо]: алгоритм Демокрона, Мальгранжа и Пертуазе (DMP). Рисуем цикл, компоненты оставшегося графа называются фрагментами, мы их встраиваем подходящим образом (пока создаем новые фрагменты). Этот подход не использует никаких других теорем.