Planaridade - Inf

Propaganda
Planaridade
Grafos: Planaridade
Um grafo é dito planar se pode ser representado
no plano sem que suas linhas se cruzem
Um grafo é planar se seu esquema puder ser traçado em um plano de forma
que duas arestas quaisquer se toquem, no máximo, em algum extremidade.
Estruturas de Dados - Grafos
Planaridade
!
Estruturas de Dados - Grafos
Planaridade – Fórmula Euler
Primeira aplicação
– Cartografia
– Posteriormente, coloração de mapas
!
Outras aplicações
–
–
–
–
Circuitos digitais
Malhas de transporte terrestre
Construção de viadultos
Malha de transporte aéreo
Estruturas de Dados - Grafos
Estruturas de Dados - Grafos
Planaridade – Fórmula Euler
Planaridade – Fórmula Euler
Face B
Face A
Face A
Face E
Face A
Face E
Face E
C
ce
Fa
Face A
C
ce
Fa
Face B
Fac
eB
Face C
Fac
eB
Face C
Face E
TEOREMA
Seja G uma grafo planar.
Então, n – m + f = 2
Onde:
G é um poliedro com n vértices, f faces e m arestas.
Estruturas de Dados - Grafos
Planaridade – Fórmula Euler
Estruturas de Dados - Grafos
Planaridade – Fórmula Euler
C
ce
Fa
Face B
Face A
Fac
eB
Face C
Face A
Face E
Face E
TEOREMA
n – m+ f = 2
Seja G uma grafo planar.
Então, n – m + f = 2
–Verificar se segue a fórmula de Euler.
Onde:
G é um poliedro com n vértices, f faces e m arestas.
Estruturas de Dados - Grafos
Estruturas de Dados - Grafos
D
Face
Face
Planaridade – Fórmula Euler
eF
Fac
eF
Fac
D
Planaridade – Fórmula Euler
Face B
Face
B
Face A
eC
Fac
eC
Fac
Face
B
Face A
Face A
Face E
Face E
5–9+6=2
2=2
5–9+6=2
2=2
Face E
4–5+3=2
2=2
n – m+ f = 2
n – m+ f = 2
Estruturas de Dados - Grafos
Planaridade – Fórmula Euler
Estruturas de Dados - Grafos
Planaridade – Fórmula Euler
Face
B
Face E
D
4–5+3=2
2=2
Face B
Face B
Face A
Face A
Face E
6–6+2=2
2=2
eC
Fac
eC
Fac
Face A
Face
Face A
Face
B
Face
Face B
Face A
Face E
Face E
eF
Fac
eF
Fac
D
Face E
Face A
Face E
5–9+6=2
2=2
Face A
Face E
4–5+3=2
2=2
6–6+2=2
2=2
6–7+3=2
2=2
5–9+6=2
2=2
n – m+ f = 2
n – m+ f = 2
Estruturas de Dados - Grafos
Estruturas de Dados - Grafos
Planaridade – Fórmula Euler
Face E
Face
eF
Fac
D
Face E
Face E
Face B
Face B
Face A
Face A
eC
Fac
Face
B
Planaridade – Limite Arestas
Face A
C
D
A
B
1
2
1
2
4
3
4
3
Face E
4–5+3=2
2=2
Face A
Face E
6–7+3=2
2=2
6–6+2=2
2=2
5–8+5=2
2=2
5–9+6=2
2=2
n – m+ f = 2
Estruturas de Dados - Grafos
Planaridade – Limite Arestas
1
2
1
2
4
3
4
3
Planaridade – Limite Arestas
1
5
2
4
Estruturas de Dados - Grafos
1
2
1
2
4
3
4
3
3
1
5
2
4
m <= 3n - 6
3
M = número de arestas
N = número de vértices
Limite máximo para o número de arestas
em um grafo planar
Estruturas de Dados - Grafos
Estruturas de Dados - Grafos
Planaridade – Limite Arestas
1
2
4
3
Quanto maior o número de
arestas em relação ao número
de vértices, mais difícil de
intuitivamente de se obter
uma representação plana.
1
2
4
3
Planaridade – Limite Arestas
1
5
2
4
2
1
2
4
3
4
3
4 <= 3x4 – 6
4 <= 6
3
M = número de arestas
N = número de vértices
m <= 3n - 6
1
Limite máximo para o número de arestas
em um grafo planar
5
6 <= 3x4 – 6
6 <= 6
m <= 3n - 6
3
M = número de arestas
N = número de vértices
Limite máximo para o número de arestas
em um grafo planar
Estruturas de Dados - Grafos
Algoritmo de Hopcroft e Tarjan
Planaridade
!
2
11
!
7
!
1
3
8
9
4
10
2
4
Estruturas de Dados - Grafos
?
10 <= 3x5 – 6
10 <= 9
1
6
Informa se um grafo G é ou não planar
Caso positivo, exibe uma dentre as possíveis formas planares
de representá-lo
O algoritmo vai, gradativamente, montando o grafo sem
interceptar linhas
– Representa-se um subgrafo H de G
– Estende-se o grafo colocando planarmente cada componente de G
– Processo termina com a colocação de todo grafo G
ou
– Processo termina quando não se consegue colocar um componente
5
Estruturas de Dados - Grafos
Estruturas de Dados - Grafos
Algoritmo de Hopcroft e Tarjan
Algoritmo para determinar planaridade (refazer)
Planaridade (G1)
1.
Escolhe-se um ciclo qualquer do grafo
Como definir um ciclo?
a. Não havendo ciclos, o grafo é planar e o algoritmo termina
2.
3.
4.
Busca-se um caminho que divida o ciclo
O ciclo e o caminho formam um subgrafo inicial H que
apresenta 3 faces planas
Enquanto houverem arestas a serem incluídas no
grafo H, repete-se o algoritmo a seguir
1. H é um ciclo qualquer de G1
G:=G1-{arestas de H}
Executar os passos 2 a 4 enquanto houver pelo menos uma aresta em G. Se todas as
arestas de G forem colocadas em H, G1 é planar
2. P: cadeia, simples e elementar que liga u a w (u,w ε H e u <> w)
Se não houver tal cadeia, aplica-se recursivamente o algoritmo ao grafo
G’= G - {vértices de H}
3. Colocar u e w na mesma face de H. Se não for possível, voltamos a uma alternativa não
examinada. Se não houver, G1 não é planar
4. Se for possível, duas situações podem ocorrer:
a. u e w estão juntos em uma única face X de H
b. u e w estão juntos no limite comum entre faces X e Y de H
P é colocada na face X, dividindo-a em duas outras, X1 e X2. No caso b, é anotada a
existência da alternativa Y (vide passo 3)
As arestas de P são retiradas de G
Estruturas de Dados - Grafos
Algoritmo de Hopcroft e Tarjan
Executando Algoritmo
1
2
1
2
4
3
4
3
Estruturas de Dados - Grafos
1
5
C
2
4
A
3
B
Estruturas de Dados - Grafos
Estruturas de Dados - Grafos
Exemplo algoritmo planaridade
Exemplo algoritmo planaridade (1)
1
2
3
4
5
6
7
8
9
10 11
1
0
2
2
0
0
0
2
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
1
2
3
4
5
6
7
8
9
10 11
1
0
1
1
0
0
0
1
0
0
0
0
3
2
2
0
2
0
0
0
0
0
0
0
4
0
0
2
0
2
0
0
0
0
0
1
2
1
0
1
0
0
0
0
0
0
0
0
5
0
0
0
2
0
2
0
0
1
0
0
3
1
1
0
1
0
0
0
0
0
0
0
6
0
0
0
0
2
0
2
1
0
0
0
7
2
0
0
0
0
2
0
1
0
0
0
4
0
0
1
0
1
0
0
0
0
0
1
8
0
0
0
0
0
1
1
0
1
1
0
9
0
0
0
0
1
0
0
1
0
1
1
5
0
0
0
1
0
1
0
0
1
0
0
10
0
0
0
0
0
0
0
1
1
0
1
11
0
0
0
1
0
0
0
0
1
1
0
6
0
0
0
0
1
0
1
1
0
0
0
7
1
0
0
0
0
1
0
1
0
0
0
8
0
0
0
0
0
1
1
0
1
1
0
9
0
0
0
0
1
0
0
1
0
1
1
10
0
0
0
0
0
0
0
1
1
0
1
11
0
0
0
1
0
0
0
0
1
1
0
Inicialização
Ciclo: 1 2 3
Cadeia:1 7 6 5 4 3
Faces:
A: 1 2 3
B: 1 7 6 5 4 3 2
C: 1 7 6 5 4 3
2
A
1
3
7
6
5
Estruturas de Dados - Grafos
Exemplo algoritmo planaridade (2)
1
2
3
4
5
6
7
8
9
10 11
1
0
2
2
0
0
0
2
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
3
2
2
0
2
0
0
0
0
0
0
0
4
0
0
2
0
2
0
0
0
0
0
3
5
0
0
0
2
0
2
0
0
3
0
0
6
0
0
0
0
2
0
2
1
0
0
0
7
2
0
0
0
0
2
0
1
0
0
0
8
0
0
0
0
0
1
1
0
1
1
0
9
0
0
0
0
3
0
0
1
0
1
10
0
0
0
0
0
0
0
1
1
11
0
0
0
3
0
0
0
0
3
Exemplo algoritmo planaridade (3)
1
2
3
4
5
6
7
8
9
10 11
1
0
2
2
0
0
0
2
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
3
2
2
0
2
0
0
0
0
0
0
0
4
0
0
2
0
2
0
0
0
0
0
3
5
0
0
0
2
0
2
0
0
3
0
0
6
0
0
0
0
2
0
2
4
0
0
0
7
2
0
0
0
0
2
0
4
0
0
0
8
0
0
0
0
0
4
4
0
1
1
0
3
9
0
0
0
0
3
0
0
1
0
1
3
0
1
10
0
0
0
0
0
0
0
1
1
0
1
1
0
11
0
0
0
3
0
0
0
0
3
1
0
A
E
3
C
7
Cadeia: 4 11 9 5
= 5 9 11 4
Quebrar B (D,E) ou C
Faces:
A: 1 2 3
C: 1 7 6 5 4 3
D: 4 11 9 5
E: 1 7 6 5 9 11 4 3 2
Estruturas de Dados - Grafos
2
1
6
4
5
D
9
11
Estruturas de Dados - Grafos
B
4
C
Cadeia: 6 8 7 = 7 8 6
Quebrar E (F, G) ou C
Faces:
A: 1 2 3
C: 1 7 6 5 4 3
D: 4 11 9 5
F: 7 8 6
G: 1 7 8 6 5 9 11 4 3 2
2
A
1
3
C
7
6
4
5
F
D
8
9
G
11
Estruturas de Dados - Grafos
Exemplo algoritmo planaridade (4)
1
2
3
4
5
6
7
8
9
10 11
1
0
2
2
0
0
0
2
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
3
2
2
0
2
0
0
0
0
0
0
0
4
0
0
2
0
2
0
0
0
0
0
3
5
0
0
0
2
0
2
0
0
3
0
0
6
0
0
0
0
2
0
2
4
0
0
0
7
2
0
0
0
0
2
0
4
0
0
0
8
0
0
0
0
0
4
4
0
5
1
0
9
0
0
0
0
3
0
0
5
0
1
3
10
0
0
0
0
0
0
0
1
1
0
1
11
0
0
0
3
0
0
0
0
3
1
0
Exemplo algoritmo planaridade (5)
2
A
1
3
C
7
Cadeia: 8 9
Quebrar G (H, I)
Faces:
A: 1 2 3
C: 1 7 6 5 4 3
D: 4 11 9 5
F: 7 8 6
H: 8 9 5 6
I: 1 7 8 9 11 4 3 2
4
6
F
5
8
9
I
2
3
4
5
6
7
8
9
10 11
0
2
2
0
0
0
2
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
3
2
2
0
2
0
0
0
0
0
0
0
4
0
0
2
0
2
0
0
0
0
0
3
5
0
0
0
2
0
2
0
0
3
0
0
6
0
0
0
0
2
0
2
4
0
0
0
7
2
0
0
0
0
2
0
4
0
0
0
8
0
0
0
0
0
4
4
0
5
6
0
9
0
0
0
0
3
0
0
5
0
6
3
10
0
0
0
0
0
0
0
6
6
0
1
11
0
0
0
3
0
0
0
0
3
1
0
11
2
A
1
3
C
7
Cadeia: 8 10 9
Quebrar I (J, K) ou H
Faces:
A: 1 2 3
C: 1 7 6 5 4 3
D: 4 11 9 5
F: 7 8 6
H: 8 9 5 6
J: 8 10 9
K: 1 7 8 10 9 11 4 3 2
D
H
1
1
6
1
2
3
4
5
6
7
8
9
10 11
1
0
2
2
0
0
0
2
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
3
2
2
0
2
0
0
0
0
0
0
0
4
0
0
2
0
2
0
0
0
0
0
3
5
0
0
0
2
0
2
0
0
3
0
0
6
0
0
0
0
2
0
2
4
0
0
0
7
2
0
0
0
0
2
0
4
0
0
0
8
0
0
0
0
0
4
4
0
5
6
0
9
0
0
0
0
3
0
0
5
0
6
3
8
9
J
10
10
0
0
0
0
0
0
0
6
6
0
7
11
0
0
0
3
0
0
0
0
3
7
0
Cadeia: 10 11
Quebrar K (L,M)
Faces:
A: 1 2 3
C: 1 7 6 5 4 3
D: 4 11 9 5
F: 7 8 6
H: 8 9 5 6
J: 8 10 9
L: 10 11 9
M: 1 7 8 10 11 4 3 2
3
M
7
4
6
F
5
D
H
8
9
J
10
L
11
Estruturas de Dados - Grafos
11
K
Exemplo algoritmo planaridade (7)
C
D
H
Estruturas de Dados - Grafos
2
A
1
5
F
Estruturas de Dados - Grafos
Exemplo algoritmo planaridade (6)
4
1
2
3
4
5
6
7
8
9
10 11
1
0
2
2
0
0
0
2
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
3
2
2
0
2
0
0
0
0
0
0
0
4
0
0
2
0
2
0
0
0
0
0
3
5
0
0
0
2
0
2
0
0
3
0
0
6
0
0
0
0
2
0
2
4
0
0
0
7
2
0
0
0
0
2
0
4
0
0
0
8
0
0
0
0
0
4
4
0
5
6
0
9
0
0
0
0
3
0
0
5
0
6
3
10
0
0
0
0
0
0
0
6
6
0
7
11
0
0
0
3
0
0
0
0
3
7
0
2
A
1
3
M
C
7
4
6
F
5
D
H
8
9
J
10
L
11
Estruturas de Dados - Grafos
Download