Який найпростіший поліноміальний алгоритм для ПЛАНАРНОСТІ?


28

Існує кілька алгоритмів, які визначають у поліноміальний час, чи можна малювати графік у площині чи ні, навіть багато з лінійним часом виконання. Однак я не зміг знайти дуже простий алгоритм, який можна було б легко та швидко пояснити на уроці та показав би, що ПЛАНАРНІСТЬ є в П. Чи знаєте ви?

Якщо потрібно, ви можете використовувати теорему Куратовського чи Фаррі, але без глибоких речей, як, наприклад, другорядну теорему графа. Також зауважте, що мені не байдуже час роботи, я просто хочу щось поліноміальне.

Нижче наведено три найкращі алгоритми, що показують простоту / не глибоку теорію, необхідну для компромісу.

Алгоритм 1: Використовуючи це, ми можемо перевірити, чи містить графік або K 3 , 3 як мінор у поліноміальний час, ми отримуємо дуже простий алгоритм, використовуючи глибоку теорію. (Зауважте, що ця теорія вже використовує вбудовування графів, на що вказував Саїд, тому це не справжній алгоритмічний підхід, а щось просто сказати студентам, які вже знали / приймали другорядну теорему графа.)K5K3,3

Алгоритм 2 [на основі чиєїсь відповіді]: Неважко зрозуміти, що достатньо мати справу з 3-х сполученими графами. Для цього знайдіть обличчя, а потім застосуйте весняну теорему Тутта.

Алгоритм 3 [рекомендований Юхо]: алгоритм Демукрона, Малгранжа та Пертуайсе (DMP). Намалюй цикл, компоненти решти графа називаємо фрагментами, ми вбудовуємо їх відповідним чином (тим часом створюючи нові фрагменти). Цей підхід не використовує інших теорем.


1
Думаю, багато хто погоджується, що найпростіший алгоритм багаточленного часу - це алгоритм Demoucron, Malgrange та Pertuiset (DMP). Це підручники алгоритму, як правило, охоплюють (див., Наприклад, Gibbons 1985 або Bondy & Murty 1976). Чи достатньо просто вирішити планарність, чи алгоритм також повинен вивести площинне вбудовування? Доповідь IIRC "SODA'99" Бойєра та Мирвольда @joro, ймовірно, посилається на деталі, особливо щодо складності часу.
Джухо

2
Якщо ви хочете, щоб проблема вирішення була ПЛАНОВОЮ, чи не є двома забороненими неповнолітніми , існування яких можна перевірити в поліноміальний час ?
Жоро

2
@joro: Так, звичайно, це було б простим рішенням, але я вважаю за краще уникати такої сильної теореми.
domotorp

1
Алгоритм, про який я згадував, в основному був алгоритмом Auslander-Parter. Проблемою мого алгоритму була частина 7, коли я сказав, що ми можемо розділити графік компонентів. Ми можемо в оригінальному алгоритмі, але в алгоритмі, який я сказав, нам потрібні більш точні визначення компонентів, і мені було не вдається їх детально пояснити. Рекурсивна частина була явно правдивою (якщо ми можемо зробити крок 7, то ми готові), де ви сумніваєтесь у її правильності. Я не оновив свою відповідь, тому що побачив, що це буде приблизно дві сторінки, і я не можу скоротити її більше, і це не добре називати це простим.
Саїд

3
Зведення до 3-підключеного випадку концептуально просте і його слід пояснювати в будь-якому випадку. Якщо ми не надто зацікавлені в зниженні ефективності до 3-підключеного випадку, це легко зробити. Перевірте всі надрізи на 2 вузлах.
Чандра Чекурі

Відповіді:


6

Я збираюся описати алгоритм. Я не впевнений, що це кваліфікується як "легке", і деякі докази не такі прості.

Спочатку ми розбиваємо графік на 3-з’єднані компоненти, про що згадувала Чандра Чекурі.

  1. Розбийте графік на підключені компоненти.
  2. vGiGiv
  3. v,uGiGi{v,u}

G

  1. CG
  2. CD
  3. D
  4. UGV(C)DG[UV(C)]GFDG[UV(C)]CFGCCC
  5. GG

Зауваження:

  • Стверджувати, що весняне вбудовування Тутте дає площинне вбудовування, не є простим. Мені сподобалось презентація в книзі Едельсбруннера і Харера, обчислювальна топологія, але це лише для триангуляцій. Колін де Вердьєр обговорює вбудовування весни в http://www.di.ens.fr/~colin/cours/algo-graphs-surfaces.pdf , розділ 1.4. Загальна довідка - Linial, Lovász, Wigderson: Гумові смуги, опуклі вкладиші та з'єднання графіків. Combinatorica 8 (1): 91-102 (1988).
  • Розв’язати лінійну систему рівнянь у поліоміальній кількості арифметичних операцій легко за допомогою гауссового усунення. Вирішити його за допомогою поліономіального числа бітів не так просто.

Я відредагував відповідь, щоб не використовувати мости та графік перекриття.
хтось

Припустимо, кожен 3-підключений компонент може бути вбудований. Тоді що ми можемо зробити про вихідний графік? Використовуючи, що 3-з’єднані графіки мають (максимум) одне вбудовування, ймовірно, ми можемо закінчити звідси, але цей крок також повинен бути виконаний.
domotorp

Зрештою, на кроці 4, що таке обличчя на непланарному малюнку? Я думаю, це все ще можна визначити природним шляхом. І в самому кінці "Інше G не планарне" справді здається зовсім нетривіальним.
domotorp

DG[UV(C)]G

У цьому ми згодні, але я не бачу, як це допомагає.
domotorp

3

Алгоритм Бойєра та Мірвольда вважається серед найсучасніших алгоритмів тестування на планарність

На межі різання: спрощена O (n) планарність шляхом додавання крайок Боєром та Мірволдом.

У цій книжковій главі описується багато алгоритмів тестування на планарність, і, сподіваємось, ви знайдете досить простий алгоритм.


Мене не цікавлять передові алгоритми планарності, я хочу щось легко пояснити. У книзі я не зміг знайти нічого простішого, ніж алгоритм Demoucron, Malgrange та Pertuiset (DMP).
domotorp

0

Що з алгоритмом Хопкрофта та Тарджана 1974 року {1} ?


{1} Хопкрофт, Джон та Роберт Тарджан. "Тестування на ефективність планарності." Журнал ACM (JACM) 21.4 (1974): 549-568.


Це швидкий і не простий алгоритм.
domotorp

0

Два алгоритми, обидва в LogSpace

  1. Ерік Аллендер та Міна Махаджан - Складність тесту на планарність
  2. Самір Датта та Гаутам Пракрія - Тестування на рівність переглянуто

Друга значно простіша, ніж перша.


Зовсім не просто.
domotorp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.