Qual é o algoritmo polinomial mais simples para PLANARIDADE?

28

Existem vários algoritmos que decidem no tempo polinomial se um gráfico pode ser desenhado no plano ou não, mesmo muitos com um tempo de execução linear. No entanto, não consegui encontrar um algoritmo muito simples que se pudesse explicar com facilidade e rapidez na aula e mostraria que PLANARITY está em P. Você conhece algum?

Se necessário, você pode usar o teorema de Kuratowski ou Fary, mas nada profundo, como o teorema do gráfico menor. Observe também que não me importo com o tempo de execução, apenas quero algo polinomial.

Abaixo estão os 3 melhores algoritmos até agora, mostrando uma troca de simplicidade / sem necessidade de teoria profunda.

Algoritmo 1: Usando isso, podemos verificar se um gráfico contém um ou um K 3 , 3 como menor no tempo polinomial, obtemos um algoritmo muito simples usando a teoria profunda. (Observe que essa teoria já usa incorporação de gráficos, como apontado por Saeed, portanto essa não é uma abordagem algorítmica real, apenas algo simples para dizer aos alunos que já conheciam / aceitaram o teorema menor do gráfico.)K5K3,3

Algoritmo 2 [baseado na resposta de alguém]: É fácil ver que é suficiente lidar com gráficos de 3 conexões. Para isso, encontre um rosto e aplique o teorema da mola de Tutte.

Algoritmo 3 [recomendado por Juho]: algoritmo Demoucron, Malgrange e Pertuiset (DMP). Desenhe um ciclo, os componentes do gráfico restante são chamados fragmentos, os incorporamos de maneira adequada (enquanto isso cria novos fragmentos). Essa abordagem não usa outros teoremas.

domotorp
fonte
1
Eu acho que muitos concordam que o algoritmo de tempo polinomial mais simples é o algoritmo Demoucron, Malgrange e Pertuiset (DMP). É um algoritmo que os livros didáticos normalmente cobrem (veja, por exemplo, Gibbons 1985 ou Bondy & Murty 1976). É suficiente apenas decidir a planaridade, ou o algoritmo também deve gerar uma incorporação planar? No IIRC, o documento SODA'99 de Boyer e Myrvold @joro provavelmente se refere a detalhes omissos, especialmente em relação à complexidade do tempo.
22414 Juho
2
Se você deseja que apenas o problema de decisão seja PLANO, não são dois menores proibidos cuja existência pode ser verificada em tempo polinomial o suficiente?
Joro
2
@joro: Sim, é claro que seria uma solução simples, mas eu preferiria evitar o uso de um teorema tão forte.
domotorp
1
O algoritmo que mencionei era basicamente o algoritmo de Auslander-Parter. O problema no meu algoritmo foi a parte 7, quando eu disse que podemos bipartirar o gráfico dos componentes. Podemos no algoritmo original, mas no algoritmo que eu disse que precisamos de definições mais precisas de componentes e não estava disposto a explicá-lo em detalhes. A parte recursiva era claramente verdadeira (se podemos executar o passo 7, então terminamos), onde você duvida sobre sua correção. Não atualizei minha resposta porque vi que ela teria cerca de duas páginas e não posso abreviá-la mais e não é bom chamar de simples.
Saeed
3
Reduzir para o caso de 3 conexões é conceitualmente simples e deve ser explicado em qualquer caso. Se não estivermos interessados ​​demais em eficiência, a redução para casos com três conexões pode ser feita com facilidade. Verifique todos os cortes de 2 nós.
Chandra Chekuri

Respostas:

6

Vou descrever um algoritmo. Não tenho certeza se qualifica como "fácil" e que algumas das provas não são tão fáceis.

Primeiro, dividimos o gráfico em três componentes conectados, como mencionado por Chandra Chekuri.

  1. Divida o gráfico em componentes conectados.
  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

Observações:

  • Argumentar que a incorporação de mola de Tutte fornece uma incorporação plana não é simples. Gostei da apresentação no livro de Edelsbrunner e Harer, Topologia Computacional, mas é apenas para triangulações. Colin de Verdiere discute a incorporação de primavera em http://www.di.ens.fr/~colin/cours/algo-graphs-surfaces.pdf , seção 1.4. Uma referência geral é Linial, Lovász, Wigderson: elásticos, revestimentos convexos e conectividade gráfica. Combinatorica 8 (1): 91-102 (1988).
  • Resolver um sistema linear de equações em um número polioial de operações aritméticas é fácil através da eliminação gaussiana. Resolvê-lo usando um número polinomial de bits não é tão fácil.
alguém
fonte
Editei a resposta para evitar o uso de pontes e o gráfico de sobreposição.
alguem
Suponha que todos os três componentes conectados possam ser incorporados. Então, o que podemos deduzir sobre o gráfico original? Usando esses gráficos de três conexões, você pode (no máximo) incorporar uma, provavelmente podemos terminar daqui, mas essa etapa também deve ser feita.
domotorp
No final, na etapa 4, o que é uma face em um desenho não plano? Eu acho que isso ainda pode ser definido de uma maneira natural. E, no final, "Else G não é plano" parece de fato não trivial.
domotorp
DG[UV(C)]G
Concordamos nisso, mas não vejo como isso ajuda.
domotorp
3

O algoritmo de Boyer e Myrvold é considerado um dos mais avançados algoritmos de teste de planaridade

Na aresta de corte: planaridade simplificada de O (n) por adição de aresta por Boyer e Myrvold.

Este capítulo do livro examina muitos algoritmos de teste de planaridade e espero que você encontre um algoritmo bastante simples.

Mohammad Al-Turkistany
fonte
Não estou interessado na vanguarda dos algoritmos de planaridade, quero algo fácil de explicar. Também não encontrei nada mais simples do que o algoritmo Demoucron, Malgrange e Pertuiset (DMP) no livro.
22614 domotorp
0

E o algoritmo de Hopcroft e Tarjan de 1974 {1} ?


{1} Hopcroft, John e Robert Tarjan. "Teste de planaridade eficiente." Journal of the ACM (JACM) 21.4 (1974): 549-568.

Ari Trachtenberg
fonte
É um algoritmo rápido e não simples.
Domotorp 23/06
0

Dois algoritmos, ambos no LogSpace

  1. Eric Allender e Meena Mahajan - A complexidade dos testes de planaridade
  2. Samir Datta e Gautam Prakriya - Revisão da Planaridade

O segundo é muito mais simples que o primeiro.

Anônimo
fonte
Não é nada simples.
Domotorp