Qual è l'algoritmo polinomiale più semplice per PLANARITY?


28

Esistono diversi algoritmi che decidono in tempo polinomiale se un grafico può essere disegnato o meno sul piano, anche molti con un tempo di esecuzione lineare. Tuttavia, non sono riuscito a trovare un algoritmo molto semplice che si possa facilmente e velocemente spiegare in classe e mostrerebbe che PLANARITY è in P. Ne conosci qualcuno?

Se necessario, puoi usare il teorema di Kuratowski o di Fary, ma niente cose profonde, come il teorema minore grafico. Nota anche che non mi interessa il tempo di esecuzione, voglio solo qualcosa di polinomiale.

Di seguito sono riportati i 3 migliori algoritmi finora, che mostrano un compromesso semplicità / no-deep-teoria necessaria.

Algoritmo 1: Usando questo possiamo verificare se un grafico contiene un o un come minore nel tempo polinomiale, otteniamo un algoritmo molto semplice usando la teoria profonda. (Si noti che questa teoria utilizza già incorporamenti grafici, come indicato da Saeed, quindi non si tratta di un vero approccio algoritmico, ma di qualcosa di semplice da dire agli studenti che già conoscevano / accettavano il teorema del grafico minore.)K 3 , 3K5K3,3

Algoritmo 2 [basato sulla risposta di qualcuno]: è facile capire che è sufficiente gestire grafici a 3 connessioni. Per questi, trova una faccia e poi applica il teorema di primavera di Tutte.

Algorithm 3 [raccomandato da Juho]: algoritmo Demoucron, Malgrange e Pertuiset (DMP). Disegna un ciclo, i componenti del grafico rimanente sono chiamati frammenti, li incorporiamo in modo adeguato (nel frattempo creando nuovi frammenti). Questo approccio non utilizza altri teoremi.


1
Penso che molti concordino sul fatto che l'algoritmo del tempo polinomiale più semplice sia l'algoritmo Demoucron, Malgrange e Pertuiset (DMP). Si tratta in genere di un algoritmo di libri di testo (vedi ad esempio Gibbons 1985 o Bondy & Murty 1976). È sufficiente decidere solo la planarità o l'algoritmo dovrebbe anche generare un incorporamento planare? IIRC il documento SODA'99 di Boyer e Myrvold @joro probabilmente fa riferimento a dettagli fuorvianti, soprattutto per quanto riguarda la complessità temporale.
Juho,

2
Se vuoi solo il problema decisionale È PLANARE, non sono sufficienti due minori proibiti la cui esistenza può essere verificata in tempo polinomiale ?
joro,

2
@joro: Sì, certo sarebbe una soluzione semplice, ma preferirei evitare di usare un teorema così forte.
domotorp,

1
L'algoritmo che ho citato era sostanzialmente un algoritmo di Auslander-Parter. Il problema nel mio algoritmo era la parte 7 quando dicevo che potevamo bipartire il grafico dei componenti. Possiamo con l'algoritmo originale ma con l'algoritmo che ho detto che abbiamo bisogno di definizioni più precise dei componenti ed è stato fuori dal mio desiderio di spiegarlo in dettaglio. La parte ricorsiva era chiaramente vera (se possiamo fare il passo 7, allora abbiamo finito), dove dubiti della sua correttezza. Non ho aggiornato la mia risposta perché ho visto che sarà di circa due pagine e non posso abbreviarla di più e non è bello chiamarla semplice.
Saeed,

3
Ridurre al caso a 3 connessioni è concettualmente semplice e dovrebbe essere spiegato in ogni caso. Se non siamo troppo interessati all'efficienza, è possibile ridurre facilmente il caso a 3 connessioni. Controlla tutti i tagli a 2 nodi.
Chandra Chekuri,

Risposte:


6

Descriverò un algoritmo. Non sono sicuro che si qualifichi come "facile" e alcune delle prove non sono così facili.

Per prima cosa spezziamo il grafico in componenti a 3 connessioni, come menzionato da Chandra Chekuri.

  1. Rompere il grafico in componenti collegati.
  2. Rompere ogni componente collegato in 2 componenti collegati. Questo può essere fatto controllando il tempo polinomiale per ciascun vertice di ciascun componente 2 connesso se è collegato.vGiGiv
  3. Rompere ogni componente a 2 connessioni in componenti a 3 connessioni. Questo può essere fatto nel tempo polinomiale verificando due vertici distinti di ciascun componente 2 connessioni se è connesso.v,uGiGi{v,u}

Abbiamo ridotto il problema controllando se un componente a 3 connessioni del grafico è planare. Lascia che denoti un componente a 3 connessioni.G

  1. Prendere qualsiasi ciclo di .CG
  2. Appunta i vertici di come vertici di un poligono convesso. Metti ciascuno degli altri vertici nel baricentro dei suoi vicini. Questo porta ad un sistema di equazioni lineari che dicono le coordinate di ciascun vertice. Sia il disegno risultante; potrebbe avere incroci.CD
  3. Se non ha incroci, abbiamo finito.D
  4. Prendi i vertici in qualsiasi componente collegato di . La restrizione di al sottografo indotto dovrebbe essere planare. Altrimenti, non è planare. Prendere qualsiasi faccia nel disegno limitata alla sottografo indotto , e lasciare che sia il ciclo definente . Se deve essere planare, allora deve essere un ciclo facciale. (Quando è un ciclo hamiltoniano, allora dovrebbe essere costruito usando un bordo.)UGV(C)DG[UV(C)]GFDG[UV(C)]CFGCCC
  5. Ripeti il ​​passaggio 2 con C 'invece di C. Se il disegno risultante è planare, è planare. Altrimenti non è planare.GG

Osservazioni:

  • Affermare che l'incorporamento primaverile di Tutte dà un incorporamento planare non è semplice. Mi è piaciuta la presentazione nel libro di Edelsbrunner e Harer, Topologia computazionale, ma è solo per le triangolazioni. Colin de Verdiere discute l'incorporamento primaverile in http://www.di.ens.fr/~colin/cours/algo-graphs-surfaces.pdf , sezione 1.4. Un riferimento generale è Linial, Lovász, Wigderson: elastici, inserti convessi e connettività grafica. Combinatorica 8 (1): 91-102 (1988).
  • Risolvere un sistema lineare di equazioni in un numero poliaromiale di operazioni aritmetiche è facile tramite l'eliminazione gaussiana. Risolverlo usando un numero poligonale di bit non è così facile.

Ho modificato la risposta per evitare di usare i ponti e il grafico di sovrapposizione.
qualcuno il

Supponiamo che ogni componente a 3 connessioni possa essere incorporato. Quindi cosa possiamo dedurre sul grafico originale? Usando che i grafici a 3 connessioni hanno (al massimo) un incorporamento, probabilmente possiamo finire da qui, ma questo passaggio deve anche essere fatto.
domotorp,

Alla fine, nel passaggio 4, che cos'è una faccia in un disegno non planare? Immagino che questo possa ancora essere definito in modo naturale. E alla fine, "Else G non è planare" sembra davvero non banale.
domotorp,

La restrizione di a dovrebbe essere planare. Altrimenti non è planare. G [ U V ( C ) ] GDG[UV(C)]G
qualcuno il

In questo siamo d'accordo, ma non vedo come questo aiuti.
domotorp,

3

L'algoritmo di Boyer e Myrvold è considerato tra gli algoritmi di test di planarità all'avanguardia

All'avanguardia : O (n) Planarity semplificata di Edge Addition di Boyer e Myrvold.

Questo capitolo del libro esamina molti algoritmi di test di planarità e si spera che tu trovi un algoritmo abbastanza semplice.


Non mi interessa l'avanguardia degli algoritmi di planarità, voglio qualcosa di facile da spiegare. Neanche nel libro ho trovato nulla di più semplice dell'algoritmo Demoucron, Malgrange e Pertuiset (DMP).
domotorp,

0

Che dire dell'algoritmo Hopcroft e Tarjan del 1974 {1} ?


{1} Hopcroft, John e Robert Tarjan. "Test di planarità efficienti." Journal of the ACM (JACM) 21.4 (1974): 549-568.


È un algoritmo veloce e non semplice.
domotorp,

0

Due algoritmi, entrambi in LogSpace

  1. Eric Allender e Meena Mahajan - The Complexity of Planarity Testing
  2. Samir Datta e Gautam Prakriya - Test di planarità rivisitati

Il secondo è molto più semplice del primo.


Per niente semplice.
domotorp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.