Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar

arquivoescolar.org
from arquivoescolar.org More from this publisher
13.04.2013 Views

7. Árvores de busca, backtracking e branch-and-bound Enumeração de conjuntos Instância Um conjunto de n itens S=a1, a2, a3, ...an. Solução Enumeração de todos os subconjuntos de S. • A enumeração de todos os conjuntos gera uma solução de custo exponencial 2 n . Problema da Mochila Problema da Mochila Instância Um conjunto de n itens a1, a2, ...an e valores de importância vi e peso wi referentes a cada elemento i do conjunto; um valor K referente ao limite de peso da mochila. Solução Quais elementos selecionar de forma a maximizar o valor total de “importância” dos objetos da mochila e satisfazendo o limite de peso da mochila? • O problema da Mochila fracionário é polinomial • O problema da Mochila 0/1 é NP-Completo – A enumeração de todos os conjuntos gera uma solução de custo exponencial 2 n – Solução via PD possui complexidade de tempo O(Kn) (pseudopolinomial) e de espaço O(K) Problema de coloração em grafos 168 Problema de Coloração em Grafos Instância Um grafo G=(V,A) e um conjunto infinito de cores. Solução Uma coloração do grafo, i.e. uma atribuição c : V → C de cores tal que vértices vizinhos não têm a mesma cor: c(u) = c(v) para (u, v) ∈ E.

Objetivo Minimizar o número de cores |C|. 7.2. Branch-and-bound • Coloração de grafos de intervalo é um problema polinomial. • Para um grafo qualquer este problema é NP-completo. • Dois números são interessantes nesse contexto: – O número de clique ω(G): O tamanho máximo de uma clique que se encontra como sub-grafo de G. – O número cromático χ(G): O número mínimo de cores necessárias para colorir G. • Obviamente: χ(V ) ≥ ω(G) • Um grafo G é perfeito, se χ(H) = ω(H) para todos sub-grafos H. • Verificar se o grafo permite uma 2-coloração é polinomial (grafo bipartido). • Um grafo k-partido é um grafo cujos vértices podem ser particionados em k conjuntos disjuntos, nos quais não há arestas entre vértices de um mesmo conjunto. Um grafo 2-partido é o mesmo que grafo bipartido. Coloração de Grafos • A coloração de mapas é uma abstração do problema de colorir vértices. • Projete um algoritmo de backtracking para colorir um grafo planar (mapa). • Um grafo planar é aquele que pode ser representado em um plano sem qualquer intersecção entre arestas. • Algoritmo O(n n ), supondo o caso em que cada área necessite uma cor diferente • Teorema de Kuratowski: um grafo é planar se e somente se não possuir minor K5 ou K3,3. • Teorema das Quatro Cores: Todo grafo planar pode ser colorido com até quatro cores (1976, Kenneth Appel e Wolfgang Haken, University of Illinois) 169

Objetivo Minimizar o número <strong>de</strong> cores |C|.<br />

7.2. Branch-and-bound<br />

• Coloração <strong>de</strong> grafos <strong>de</strong> intervalo é um problema polinomial.<br />

• Para um grafo qualquer este problema é NP-completo.<br />

• Dois números são interessantes nesse contexto:<br />

– O número <strong>de</strong> clique ω(G): O tamanho máximo <strong>de</strong> uma clique que<br />

se encontra como sub-grafo <strong>de</strong> G.<br />

– O número cromático χ(G): O número mínimo <strong>de</strong> cores necessárias<br />

para colorir G.<br />

• Obviamente: χ(V ) ≥ ω(G)<br />

• Um grafo G é perfeito, se χ(H) = ω(H) para todos sub-grafos H.<br />

• Verificar se o grafo permite uma 2-coloração é polinomial (grafo bipartido).<br />

• Um grafo k-partido é um grafo cujos vértices po<strong>de</strong>m ser particionados<br />

em k conjuntos disjuntos, nos quais não há arestas entre vértices <strong>de</strong> um<br />

mesmo conjunto. Um grafo 2-partido é o mesmo que grafo bipartido.<br />

Coloração <strong>de</strong> Grafos<br />

• A coloração <strong>de</strong> mapas é uma abstração do problema <strong>de</strong> colorir vértices.<br />

• Projete um algoritmo <strong>de</strong> backtracking para colorir um grafo planar<br />

(mapa).<br />

• Um grafo planar é aquele que po<strong>de</strong> ser representado em um plano sem<br />

qualquer intersecção entre arestas.<br />

• Algoritmo O(n n ), supondo o caso em que cada área necessite uma cor<br />

diferente<br />

• Teorema <strong>de</strong> Kuratowski: um grafo é planar se e somente se não possuir<br />

minor K5 ou K3,3.<br />

• Teorema das Quatro Cores: Todo grafo planar po<strong>de</strong> ser colorido com<br />

até quatro cores (1976, Kenneth Appel e Wolfgang Haken, University of<br />

Illinois)<br />

169

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!