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