Está en la página 1de 26

Algoritmo de Planaridad

Demoucron, Malgrange y Pertuiset (1974)


Grafos Planos (repaso)
Grafos Planos (repaso)

• Inmersión: Una representación gráfica sin que


se corten las aristas.
Grafos Planos (repaso)

• Inmersión: Una representación gráfica sin que


se corten las aristas.

• Grafo plano: el que admite una inmersión.


Grafos Planos (repaso)

• Inmersión: Una representación gráfica sin que


se corten las aristas.

• Grafo plano: el que admite una inmersión.

• Problema: Dado un grafo determinar si es


plano, y si lo es dar una inmersión.
Observaciones
Observaciones
• Este algoritmo comienza con una representación plana
de un ciclo de G, R, y la expande iterativamente hasta
obtener una representación plana de G.
Observaciones
• Este algoritmo comienza con una representación plana
de un ciclo de G, R, y la expande iterativamente hasta
obtener una representación plana de G.

• Si un grafo no contiene ningún ciclo, entonces siempre


admite una representación plana y por tanto es plano.
(es un bosque)
Observaciones
• Este algoritmo comienza con una representación plana
de un ciclo de G, R, y la expande iterativamente hasta
obtener una representación plana de G.

• Si un grafo no contiene ningún ciclo, entonces siempre


admite una representación plana y por tanto es plano.
(es un bosque)

• Supondremos que el grafo es biconexo, en caso


contrario, aplicaremos el algoritmo a cada bloque y
luego recompondremos el grafo completo.
Nota: biconexo = 2-conexo =
= sin vértices de corte.
Definciones previas
Sea G un grafo, R un subgrafo suyo (plano) y R' una
inmersión suya.

• G-admisible
• Parte de G relativa a R
• Vértice de contacto
• Parte dibujable
Definciones previas
Sea G un grafo, R un subgrafo suyo (plano) y R' una
inmersión suya.
R' es G-admisible si se puede
• G-admisible extender dicha representación
• Parte de G relativa a R a una inmersión de G.

• Vértice de contacto
• Parte dibujable
Definciones previas
Sea G un grafo, R un subgrafo suyo (plano) y R' una
inmersión suya.
R' es G-admisible si se puede
• G-admisible Algoritmo de Demoucron

extender dicha representación


Definiciones previas

Ejemplo
• Parte de G relativa a R a una inmersión de G.

• Vértice de contacto Grafo G planar, aunque esta no sea una


representación planar.
G y unTomamos
subgrafo suyo R
como subgrafo R (no
• Parte dibujable (en rojo)
necesariamente inducido) el marcad
rojo.
¿La dibujada en rojo es una
Esa inmersión de R planar
representación no de R?
es G-admisible
¿y es G -admisible?

(aunque G sí es plano)
Definciones previas
Sea G un grafo, R un subgrafo suyo (plano) y R' una
inmersión suya.

• G-admisible

Una parte p de G relativa a R es
• Parte de G relativa a R
- una arista entre dos vértices
• Vértice de contacto de R que no esté en R, o bien

- una componente conexa de
• Parte dibujable G-R junto a todas las aristas de
G incidentes con ella.
Definciones previas Algoritmo de Demoucron Idea

Sea G un grafo, R un subgrafo suyo (plano) y R' una


Ejemplo
inmersión suya.
Tomamos como su
• G-admisible en rojo, con los no
No incluye todos l
• Parte de G relativa a R El resto del grafo
E (G ) \ E (R). ¿Cu

• Vértice de contacto conexas” hay?


¿Qué pasa con el

• Parte dibujable Cada “pedazo de


llama “parte p de
este caso hay 4 pa

G y un subgrafo suyo R (en


Algo III - Sabi (Algo3 - DC)
rojo)
Demoucron, Malgrange y Pertuiset
Las partes están dibujadas en azul (hay 4)
Definciones previas
Sea G un grafo, R un subgrafo suyo (plano) y R' una
inmersión suya.

• G-admisible
• Parte de G relativa a R

Dada una parte p de G relativa
• Vértice de contacto a R, un vértice de p es vértice
• Parte dibujable de contacto de p si pertenece
a R.
Definciones previas Ejemplo
Algoritmo de Demoucron Definiciones previas

Sea G un grafo, R un subgrafo suyo (plano) y R' una


inmersión suya.

• G-admisible Para el mismo grafo G p


encuentra una parte p p
• Parte de G relativa a R En verde, los nodos
¿En qué regione
• Vértice de contacto ¿En qué regione
dibujable?

• Parte dibujable

En verde los vértices de


Algo III - Sabi (Algo3 - DC)
contacto de una parte
Demoucron, Malgrange y Pertuiset 19 d
(en azul) relativa a R
Definciones previas
Sea G un grafo, R un subgrafo suyo (plano) y R' una
inmersión suya.

• G-admisible
• Parte de G relativa a R
• Vértice de contacto
Dada una parte p de G relativa
• Parte dibujable a R, decimos que es dibujable
en una cara de R' si se puede
dibujar de forma plana dentro
de dicha cara.
Definciones previas
Sea G un grafo, R un subgrafo suyo (plano) y R' una
inmersión suya.

• G-admisible Nota: Si R’ es G-admisible,


• Parte de G relativa a R cualquier parte de G
relativa a R está siempre
• Vértice de contacto contenida dentro de una
cara de R’.
• Parte dibujable
Dada una parte p de G relativa a R y una
inmersión R' ,
Teorema:
p es dibujable en una cara f de R’ si y sólo
si todo vértice de contacto de p
pertenece a la frontera de f.
Dada una parte p de G relativa a R y una
inmersión R' ,
Teorema:
p es dibujable en una cara f de R’ si y sólo
si todo vértice de contacto de p
pertenece a la frontera de f.

Es decir, lo que tenemos que mirar es que todos los


vértices de contacto estén en una misma cara.
Llamaremos F(p, R') al conjunto de caras de R’ donde p
es dibujable.
Resultados que garantizan el
funcionamiento del algoritmo
Resultados que garantizan el
funcionamiento del algoritmo
1.
Si R’ es G-admisible, para cualquier parte p de G
relativa a R’, F(p,R’) es no vacío (p es dibujable
en alguna cara).
Resultados que garantizan el
funcionamiento del algoritmo
1.
Si R’ es G-admisible, para cualquier parte p de G
relativa a R’, F(p,R’) es no vacío (p es dibujable
en alguna cara).
II. En un grafo plano cualquier inmersión de un ciclo
suyo es G-admisible.
Resultados que garantizan el
funcionamiento del algoritmo
1.
Si R’ es G-admisible, para cualquier parte p de G
relativa a R’, F(p,R’) es no vacío (p es dibujable
en alguna cara).
II. En un grafo plano cualquier inmersión de un ciclo
suyo es G-admisible.
III. Si la entrada del algoritmo es un subgrafo G-
admisible, lo sigue siendo al aplicarle el algoritmo.
Algoritmo de planaridad
R’:= una inmersión de cualquier ciclo de G
Mientras R’ no sea una inmersión de G hacer
para cada parte p de G relativa a R calcular F(p,R’)
Si para algún p, F(p,R’) es vacío entonces
Retornar FALSO (G no es plano)
Si para algún p, F(p,R)={f} entonces elegir p y f
Si no, elegir cualquier p y f de F(p,R)
Buscar camino q en p entre dos vértices de contacto de p
Añadir q a R
Retornar VERDADERO y R inmersión de G (G es plano)

Complejidad: del orden de |V|^2.


Algoritmo de planaridad
R’:= una inmersión de cualquier ciclo de G
Mientras R’ no sea una inmersión de G hacer
para cada parte p de G relativa a R calcular F(p,R’)
Si para algún p, F(p,R’) es vacío entonces
Retornar FALSO (G no es plano)
Si para algún p, F(p,R)={f} entonces elegir p y f
Si no, elegir cualquier p y f de F(p,R)
Buscar camino q en p entre dos vértices de contacto de p
Añadir q a R
Retornar VERDADERO y R inmersión de G (G es plano)

siempre hay al menos dos


Complejidad: del orden de |V|^2.
si G es biconexo

También podría gustarte