Projeto e Análise de
Algoritmos
Prof. Ruy Luiz Milidiú
5/5/2014
Ruy Luiz Milidiú
1
Backtracking
5/5/2014
Ruy Luiz Milidiú
2
Resumo
Objetivo
Apresentar e analisar um algoritmo para determinar
se um grafo é k-colorível
Sumário
Colorabilidade de grafos
Algoritmo por caminhamento em profundidade
Análise de pior caso
5/5/2014
Ruy Luiz Milidiú
3
Coloração
2
1
5
4
2
4
5
1
3
2
5
3
3
4
2
5/5/2014
Ruy Luiz Milidiú
1
4
Coloração de Grafos
G = (V,E)
grafo não dirigido |V|=n
C = { 1, 2, … , k } conjunto de cores
(x1, x2, … , xn)Cn é uma coloração de G
{u,v} E
5/5/2014
então
Ruy Luiz Milidiú
xu xv
5
k-colorabilidade
Entrada
G = (V,E) grafo não dirigido
k
inteiro
k |V|
Saída
Existe uma k-coloração de G ?
(Sim ou Não)
5/5/2014
Ruy Luiz Milidiú
6
k-colorabilidade
Polinomial
NP-Completo
k=2
k3
comparability graphs
chordal graphs
grau(v) 3
5/5/2014
circle graphs
circular graphs
k =3 , grau(v) 4
k=3, planar, grau(v) 5
Ruy Luiz Milidiú
7
Número cromático
(G) menor número de cores suficientes
para gerar uma coloração de G
Grafos Planares
5 cores são suficientes
alguns planares exigem 4 cores
nenhum planar conhecido requer 5 cores
G é planar então (G) 4
Obs.: planaridade pode ser testada em O(m+n)
5/5/2014
Ruy Luiz Milidiú
8
Pratico, Cícero e Heitor
5/5/2014
Ruy Luiz Milidiú
9
Exemplo
5/5/2014
1
2
4
3
Ruy Luiz Milidiú
10
Espaço de estados
3 cores k=3
grafo com 4 nós n=4
2
1
2
1 2
3
3
1 2
2
1
3
1 2
3
1 2
x1
3
3
3
1 2
2
x2
1 2
x33
1
3
1 2
3
x4
5/5/2014
Ruy Luiz Milidiú
11
Exemplo
2
1
1
2
4
3
?
5/5/2014
Ruy Luiz Milidiú
12
Árvore de respostas
3 cores k=3
x1
x4
2
1
x2
x3
grafo com 4 nós n=4
2
1
2
5/5/2014
3
3
3
1 2
2
2 3
3
3
1
2
3
1
3
3 1
2
1
31 3
Ruy Luiz Milidiú
2
1
2
1
3
12
1
2
3
1 2
13
Análise
Número total de nós internos
1 + k + k2 + … + kn-1 = ( kn – 1 ) / ( k-1 )
Esforço por nó na geração das cores
válidas
para cada cor
O(k.n)
Esforço total
examina vértices adjancentes
O(n. kn)
5/5/2014
Ruy Luiz Milidiú
14