Реализация алгоритма тестирования планарности - PullRequest
0 голосов
/ 31 мая 2018

Я хочу написать алгоритм, который принимает в качестве входных данных граф и возвращает true, если он плоский или false, если это не так.Я искал вокруг и нашел тонны алгоритмов, но нелегко понять реализации.

Есть ли какая-либо реализация, такая как Бойер-Мирволд или любая другая, доступная на C ++ или Java, которая выполняет то, что я спрашиваю?

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Подробное описание метода Path Addition при тестировании на плоскость приведено в этого тезиса (как математическая теория, так и алгоритмическая реализация).

Полный исходный код Java также содержитсяв приложениях, поддерживающих:

  • Тестирование плоскостности;
  • Генерация плоского вложения;и
  • для циклического генерирования всех возможных плоских вложений двусвязного графа (за линейное время, пропорциональное количеству ребер и числу вложений для генерации всех вложений).
0 голосов
/ 31 мая 2018

Реализация в Boost of Boyer-Myrvold довольно понятна и очень хорошо прокомментирована.

https://www.boost.org/doc/libs/1_67_0/boost/graph/planar_detail/boyer_myrvold_impl.hpp

Я бы не стал читать код безхотя сначала читаем оригинальную статью .

...