You are on page 1of 55

Demoucron, Malgrange y Pertuiset

Algoritmos y Estructuras de Datos III


Alejandro Deymonnaz
Algoritmos y Estructuras de Datos III

19 de Noviembre de 2010 - 2c2010

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

1 / 22

Contenido
1

Introduccion
Problema
Breve rese
na historica

Algoritmo de Demoucron
Idea
Definiciones previas
Algoritmo

Implementacion
Estructura de datos

Problemas relacionados
Grafo dual
Complejidad
Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

2 / 22

Introducci
on

Problema

Grafos planares - Repaso


Definicion (Representacion planar)
Una representacion planar de un grafo G es un conjunto de puntos en el
plano que se corresponden con los vertices de G unidos por curvas que se
corresponden con los ejes de G, sin que estas se crucen entre s.
Definicion (Grafo planar)
Un grafo es planar si admite alguna representaci
on planar. Es decir, si
existe una representacion en el plano sin que sus ejes se crucen.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

3 / 22

Introducci
on

Problema

Grafos planares - Repaso


Definicion (Representacion planar)
Una representacion planar de un grafo G es un conjunto de puntos en el
plano que se corresponden con los vertices de G unidos por curvas que se
corresponden con los ejes de G, sin que estas se crucen entre s.
Definicion (Grafo planar)
Un grafo es planar si admite alguna representaci
on planar. Es decir, si
existe una representacion en el plano sin que sus ejes se crucen.
Problema (Reconocimiento)
Dado un grafo G determinar si G es planar. Si lo es entregar una
representacion planar.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

3 / 22

Introducci
on

Resena historica

Breve rese
na hist
orica

1961 Auslander y Parter, primer trabajo, demuestran que test de planaridad


es polinomial, O(n3 ).

Fuente: Ondrej Moris, Advanced Graph Theory I

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

4 / 22

Introducci
on

Resena historica

Breve rese
na hist
orica

1961 Auslander y Parter, primer trabajo, demuestran que test de planaridad


es polinomial, O(n3 ).
1964 Demoucron, Malgrange y Pertuiset, muy simple, O(n2 ).

Fuente: Ondrej Moris, Advanced Graph Theory I

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

4 / 22

Introducci
on

Resena historica

Breve rese
na hist
orica

1961 Auslander y Parter, primer trabajo, demuestran que test de planaridad


es polinomial, O(n3 ).
1964 Demoucron, Malgrange y Pertuiset, muy simple, O(n2 ).
1966 Lempel, Even y Cederbaum, relativamente simple, O(n2 ) (incremental
en vertices).

Fuente: Ondrej Moris, Advanced Graph Theory I

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

4 / 22

Introducci
on

Resena historica

Breve rese
na hist
orica

1961 Auslander y Parter, primer trabajo, demuestran que test de planaridad


es polinomial, O(n3 ).
1964 Demoucron, Malgrange y Pertuiset, muy simple, O(n2 ).
1966 Lempel, Even y Cederbaum, relativamente simple, O(n2 ) (incremental
en vertices).
1974 Hopcroft y Tarjan, presentan el primer algorimo O(n) (incremental en
caminos), pero es relativamente difcil de entender y a
un mas difcil
de implementar. No devuelve un modelo sino s
olo el resultado de si es
planar o no.

Fuente: Ondrej Moris, Advanced Graph Theory I

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

4 / 22

Introducci
on

Resena historica

Breve rese
na hist
orica

1961 Auslander y Parter, primer trabajo, demuestran que test de planaridad


es polinomial, O(n3 ).
1964 Demoucron, Malgrange y Pertuiset, muy simple, O(n2 ).
1966 Lempel, Even y Cederbaum, relativamente simple, O(n2 ) (incremental
en vertices).
1974 Hopcroft y Tarjan, presentan el primer algorimo O(n) (incremental en
caminos), pero es relativamente difcil de entender y a
un mas difcil
de implementar. No devuelve un modelo sino s
olo el resultado de si es
planar o no.
1976 Even, Tarjan y Booth, Lueker, publicados independientemente, O(n),
pero tampoco devuelve la representaci
on planar, aunque la pueden
2
devolver con un costo extra O(n )
1

Fuente: Ondrej Moris, Advanced Graph Theory I

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

4 / 22

Introducci
on

Breve rese
na hist
orica

Resena historica (cont.)

1985 Chiba, Nishizeki, Abe y Ozawa, publican una modificacion del


algoritmo de 1966, pero devolviendo ademas el modelo en tiempo
O(n).

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

5 / 22

Introducci
on

Breve rese
na hist
orica

Resena historica (cont.)

1985 Chiba, Nishizeki, Abe y Ozawa, publican una modificacion del


algoritmo de 1966, pero devolviendo ademas el modelo en tiempo
O(n).
1993 Mehlhorn, Mutzel, y Naher, publican una aclaracion de como obtener
en tiempo O(n) el modelo en el algoritmo de 1974.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

5 / 22

Introducci
on

Breve rese
na hist
orica

Resena historica (cont.)

1985 Chiba, Nishizeki, Abe y Ozawa, publican una modificacion del


algoritmo de 1966, pero devolviendo ademas el modelo en tiempo
O(n).
1993 Mehlhorn, Mutzel, y Naher, publican una aclaracion de como obtener
en tiempo O(n) el modelo en el algoritmo de 1974.
1999 Wei-Kuan Shih y Wen-Lian Hsu, algoritmo O(n) mucho mas simple y
directo, que usa solo un arbol DFS y una nueva estructura llamada
PC-tree.
1999 Boyer y Myrvold, idea muy similar a la anterior pero publicada por
separado.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

5 / 22

Algoritmo de Demoucron

Idea

Esquema basico

El algoritmo comienza con una representaci


on planar G0 de un
subgrafo G0 de G y la expande iterativamente hasta obtener una
representacion planar Gk de todo el grafo Gk = G .

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

6 / 22

Algoritmo de Demoucron

Idea

Esquema basico

El algoritmo comienza con una representaci


on planar G0 de un
subgrafo G0 de G y la expande iterativamente hasta obtener una
representacion planar Gk de todo el grafo Gk = G .
Dado un subgrafo R para el cual se tiene una representacion planar,
cada componente conexa C de E (G ) \ E (R) esta completamente

contenida dentro de una regi


on de R.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

6 / 22

Algoritmo de Demoucron

Idea

Esquema basico

El algoritmo comienza con una representaci


on planar G0 de un
subgrafo G0 de G y la expande iterativamente hasta obtener una
representacion planar Gk de todo el grafo Gk = G .
Dado un subgrafo R para el cual se tiene una representacion planar,
cada componente conexa C de E (G ) \ E (R) esta completamente

contenida dentro de una regi


on de R.
Los puntos de contacto entre una componente conexa C de
E (G ) \ E (R) es un conjunto WC de nodos de R tales que son
extremo de alg
un eje de C . Como los ejes de C no se pueden cruzar
con los ejes R, todos los nodos de WC estan ubicados en una u
nica

region de R.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

6 / 22

Algoritmo de Demoucron

Idea

Ejemplo

Grafo G planar.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

7 / 22

Algoritmo de Demoucron

Idea

Ejemplo

Tomamos como subgrafo R el marcado


en rojo, con los nodos del 1 al 7. Obs:
No incluye todos los ejes inducidos.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

7 / 22

Algoritmo de Demoucron

Idea

Ejemplo

Tomamos como subgrafo R el marcado


en rojo, con los nodos del 1 al 7. Obs:
No incluye todos los ejes inducidos.
El resto del grafo (en azul) es
E (G ) \ E (R). Cuantas componentes
conexas hay?
Que pasa con el eje (2,6)?
Cada pedazo de grafo azul conexo se
llama parte p de G relativa a R. En
este caso hay 4 partes.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

7 / 22

Algoritmo de Demoucron

Definiciones previas

Definiciones previas

Definicion (parte de G relativa a R)


Una parte p de G relativa a R se define como:
1

un eje (u, v ) E (G ) \ E (R) con u, v V (R)


o

una componente conexa de G [V (G ) \ V (R)] junto con todos los ejes


de G incidentes a ella (ejes colgantes).

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

8 / 22

Algoritmo de Demoucron

Definiciones previas

Definiciones previas

Definicion (parte de G relativa a R)


Una parte p de G relativa a R se define como:
1

un eje (u, v ) E (G ) \ E (R) con u, v V (R)


o

una componente conexa de G [V (G ) \ V (R)] junto con todos los ejes


de G incidentes a ella (ejes colgantes).

Definicion (G-admisible)
Una representacion planar de un subgrafo R de G es G admisible si se
puede extender dicha representaci
on a una representacion planar de G

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

8 / 22

Algoritmo de Demoucron

Definiciones previas

Ejemplo

Grafo G planar, aunque esta no sea una


representaci
on planar.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

9 / 22

Algoritmo de Demoucron

Definiciones previas

Ejemplo

Grafo G planar, aunque esta no sea una


representaci
on planar.
Tomamos como subgrafo R (no
necesariamente inducido) el marcado en
rojo.
La dibujada en rojo es una
representaci
on planar de R?
y es G -admisible?

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

9 / 22

Algoritmo de Demoucron

Definiciones previas

Ejemplo

Grafo G planar, aunque esta no sea una


representaci
on planar.
Tomamos como subgrafo R (no
necesariamente inducido) el marcado en
rojo.
La dibujada en rojo es una
representaci
on planar de R?
y es G -admisible?

Tomamos ahora otra representacion de


R (para el mismo R!)
es una representacion planar de R?
y es G -admisible?

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

9 / 22

Algoritmo de Demoucron

Definiciones previas

Definiciones previas (cont.)


Definicion (nodo de contacto)
Dada una parte p de R relativa a G , un nodo v es nodo de contacto de p
sii v V (R) y v es extremo de alg
un eje de p.
Definicion (dibujable)
decimos que
Dada una parte p de R relativa a G y una representacion R,
si existe una extension de R
donde p
es dibujable en una region f de R
queda en f .
Definicion (potencialmente dibujable)
decimos que
Dada una parte p de R relativa a G y una representacion R,

es potencialmente dibujable en una regi


on f de R si todo nodo de
contacto de p pertenece a la frontera de f .
Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

10 / 22

Algoritmo de Demoucron

Definiciones previas

Ejemplo

Para el mismo grafo G planar, en azul se


encuentra una parte p particular.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

11 / 22

Algoritmo de Demoucron

Definiciones previas

Ejemplo

Para el mismo grafo G planar, en azul se


encuentra una parte p particular.
En verde, los nodos de contacto de p.
En que regiones es dibujable?
En que regiones es potencialmente
dibujable?

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

11 / 22

Algoritmo de Demoucron

Definiciones previas

Definiciones previas (cont.)

Teorema

Dada una parte p de R relativa a G y una representacion R,


p es dibujable en f p es potencialmente dibujable en f .

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

12 / 22

Algoritmo de Demoucron

Definiciones previas

Definiciones previas (cont.)

Teorema

Dada una parte p de R relativa a G y una representacion R,


p es dibujable en f p es potencialmente dibujable en f .
al conjunto de regiones de R
donde p es dibujable.
Llamamos F(p, R)
Teorema
es G admisible, entonces toda parte p de R relativa a G satisface
Si R
6=
F(p, R)

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

12 / 22

Algoritmo de Demoucron

Definiciones previas

Resumen de definiciones

Grafo planar
Representacion planar
Parte p de G relativa a R
G -admisible
Nodo de contacto
Dibujable
Potencialmente dibujable

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

13 / 22

Algoritmo de Demoucron

Algoritmo

Pseudocodigo
Buscar un ciclo G0 y construiur una representacion planar de G0
i 0
while E (G ) \ E (Gi ) 6= do
for all parte p de R relativa a Gi do
Calcular F(p, Gi )
if F(p, Gi ) = then return False
end for
if p : F(p, Gi ) = {f } then
Elegir f como el u
nico F(p, Gi )
else
Elegir cualquier p y un f F(p, Gi ) para el p elegido
end if
Buscar una ruta Pi que conecte dos nodos de contacto de p
Gi+1 Gi Pi

Dibujar Pi en f para obtener Gi+1


i i +1
end while
return True // Gi es una representacion planar de G

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

14 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

Consideramos un ciclo G0 cualquiera.


Cuanto mas largo sea el ciclo mejor, pero
cualquier ciclo sirve.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
Marcamos las 3 partes p, y calculamos su
F(p, G0 ).
Todas son dibujables en las dos regiones.
Tomamos una cualquiera y buscamos un
camino P0 .

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
Marcamos las 2 partes p, y calculamos su
F(p, G1 ).
Como una es dibujable en una sola region
elegimos esa parte (verde).

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
Marcamos las 2 partes p, y calculamos su
F(p, G1 ).
Como una es dibujable en una sola region
elegimos esa parte (verde).
Consideramos los nodos de contacto y
buscamos un camino P1 que una dos nodos
de contacto.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
G2 = G1 1-5-6-9

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
G2 = G1 1-5-6-9
Nuevamente marcamos las partes p, y
calculamos su F(p, G2 ).
Como hay una parte dibujable en una sola
regi
on elegimos esa parte (azul).

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
G2 = G1 1-5-6-9
G3 = G2 7-8-4
Analogamente, ocurre lo mismo con parte en
negro.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
G2 = G1 1-5-6-9
G3 = G2 7-8-4
G4 = G3 4-5
La parte verde s
olo es dibujable en una
regi
on. Tomamos un camino que una dos
nodos de contacto: 4-10-5.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
G2 = G1 1-5-6-9
G3 = G2 7-8-4
G4 = G3 4-5
G5 = G4 4-10-5

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
G2 = G1 1-5-6-9
G3 = G2 7-8-4
G4 = G3 4-5
G5 = G4 4-10-5
G6 = G5 10-6

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Algoritmo de Demoucron

Algoritmo

Algoritmo en accion

G0 = 1-2-3-7-9-4-1
G1 = G0 3-4
G2 = G1 1-5-6-9
G3 = G2 7-8-4
G4 = G3 4-5
G5 = G4 4-10-5
G6 = G5 10-6
G7 = G6 2-6

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

15 / 22

Implementaci
on

Estructura de datos

Estructura de datos

Si estas dos (en rojo) son


representaciones del mismo subgrafo
C
omo las representamos en la
computadora? Que estructura usara?

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

16 / 22

Implementaci
on

Estructura de datos

Estructura de datos

Si estas dos (en rojo) son


representaciones del mismo subgrafo
C
omo las representamos en la
computadora? Que estructura usara?
En esencia, difieren solo en el orden en
que estan los vecinos de 1 y de 6.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

16 / 22

Implementaci
on

Estructura de datos

Estructura de datos

Si estas dos (en rojo) son


representaciones del mismo subgrafo
C
omo las representamos en la
computadora? Que estructura usara?
En esencia, difieren solo en el orden en
que estan los vecinos de 1 y de 6.

El orden circular en el que se ubican los ejes incidentes a un nodo es


importante
Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

16 / 22

Implementaci
on

Estructura de datos

Estructura de datos (cont.)

Para almacenar una representacion


planar de un grafo guardamos una lista
de adyacencia por cada nodo v , al igual
que con un grafo general.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

17 / 22

Implementaci
on

Estructura de datos

Estructura de datos (cont.)

Para almacenar una representacion


planar de un grafo guardamos una lista
de adyacencia por cada nodo v , al igual
que con un grafo general.
Pero, en el orden circular en que
aparecen si los recorremos en sentido
positivo relativo a v (antihorario, por
tomar convenci
on). En este ejemplo el
orden sera: 1,2,3,4,5. (o 4,5,1,2,3, es
un orden circular).

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

17 / 22

Implementaci
on

Estructura de datos

Recorrer una region

Para recorrer una region, debemos saber por


que eje hay que salir dado que entramos a un
nodo por un eje en particular.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

18 / 22

Implementaci
on

Estructura de datos

Recorrer una region

Para recorrer una region, debemos saber por


que eje hay que salir dado que entramos a un
nodo por un eje en particular.

Para recorrerla en sentido horario (contrario a


sentido en que almacenamos los ejes de un
nodo) debemos salir por el eje siguiente al qu
entramos, en el orden circular.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

18 / 22

Implementaci
on

Estructura de datos

Recorrer una region

Para recorrer una region, debemos saber por


que eje hay que salir dado que entramos a un
nodo por un eje en particular.

Para recorrerla en sentido horario (contrario a


sentido en que almacenamos los ejes de un
nodo) debemos salir por el eje siguiente al qu
entramos, en el orden circular.

En el dibujo, el orden circular para 2 es


1,3,6,7. Entonces, al entrar en 2 desde 1, h
que salir hacia 3.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

18 / 22

Problemas relacionados

Grafo dual

Grafo dual

Definicion (Grafo dual)


Dado un grafo G planar y una representaci
on del mismo se define como
grafo dual al grafo planar Gy su representaci
on que tiene un vertice por
cada region de G y dos vertices de Gestan conectados si y solo si la dos
regiones correspondientes tienen una arista en com
un.

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

19 / 22

Problemas relacionados

Grafo dual

Ejemplo - G

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

20 / 22

Problemas relacionados

Grafo dual

Ejemplo - G y su dual

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

21 / 22

Problemas relacionados

Complejidad

Pseudocodigo de Demoucron
Buscar un ciclo G0 y construiur una representacion planar de G0
i 0
while E (G ) \ E (Gi ) 6= do
for all parte p de R relativa a Gi do
Calcular F(p, Gi )
if F(p, Gi ) = then return False
end for
if p : F(p, Gi ) = {f } then
Elegir f como el u
nico F(p, Gi )
else
Elegir cualquier p y un f F(p, Gi ) para el p elegido
end if
Buscar una ruta Pi que conecte dos nodos de contacto de p
Gi+1 Gi Pi

Dibujar Pi en f para obtener Gi+1


i i +1
end while
return True // Gi es una representacion planar de G

Algo III - Sabi (Algo3 - DC)

Demoucron, Malgrange y Pertuiset

19 de Noviembre de 2010

22 / 22

You might also like