Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
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
- Page 120 and 121: 5. Programação dinâmica (começa
- Page 122 and 123: 5. Programação dinâmica Árvore
- Page 125 and 126: 6. Divisão e conquista 6.1. Introd
- Page 127 and 128: Recorrências simplificadas Formalm
- Page 129 and 130: 6.2. Resolver recorrências • Usa
- Page 131 and 132: 6.2. Resolver recorrências Para co
- Page 133 and 134: 6.2. Resolver recorrências O algor
- Page 135 and 136: • Prove por indução que T (n) =
- Page 137 and 138: Saída A potência a n . 1 i f n =
- Page 139 and 140: 3 Quicksort (l ,m − 1 ,a ) ; 4 Qu
- Page 141 and 142: 6.2. Resolver recorrências 1. Se f
- Page 143 and 144: 6.3. Algoritmos usando divisão e c
- Page 145 and 146: 6.3. Algoritmos usando divisão e c
- Page 147 and 148: 6.3. Algoritmos usando divisão e c
- Page 149 and 150: 6.3. Algoritmos usando divisão e c
- Page 151 and 152: unidade. Em total a avaliação pro
- Page 153: 3. T (n) = 3T (n/4) + n log n 4. T
- Page 156 and 157: 7. Árvores de busca, backtracking
- Page 158 and 159: 7. Árvores de busca, backtracking
- Page 160 and 161: 7. Árvores de busca, backtracking
- Page 162 and 163: 7. Árvores de busca, backtracking
- Page 164 and 165: 7. Árvores de busca, backtracking
- Page 166 and 167: 7. Árvores de busca, backtracking
- Page 168 and 169: 7. Árvores de busca, backtracking
- Page 172 and 173: 7. Árvores de busca, backtracking
- Page 174 and 175: 7. Árvores de busca, backtracking
- Page 176 and 177: 7. Árvores de busca, backtracking
- Page 178 and 179: 7. Árvores de busca, backtracking
- Page 180 and 181: 8. Algoritmos de aproximação Clas
- Page 182 and 183: 8. Algoritmos de aproximação Exem
- Page 184 and 185: 8. Algoritmos de aproximação - Te
- Page 186 and 187: 8. Algoritmos de aproximação O qu
- Page 188 and 189: 8. Algoritmos de aproximação Como
- Page 190 and 191: 8. Algoritmos de aproximação decr
- Page 192 and 193: 8. Algoritmos de aproximação •
- Page 194 and 195: 8. Algoritmos de aproximação Apro
- Page 196 and 197: 8. Algoritmos de aproximação 12(l
- Page 199 and 200: 9. Algoritmos em grafos 197
- Page 201 and 202: 9.1. Fluxos em redes A circulação
- Page 203 and 204: + + − + Figura 9.3.: Manter a con
- Page 205 and 206: Prova. Seja f um fluxo s-t. Temos 9
- Page 207 and 208: 9.1. Fluxos em redes aumentou nessa
- Page 209 and 210: 9.1. Fluxos em redes Figura 9.5.: R
- Page 211 and 212: V ′ = V ∪ {s ∗ , t ∗ } 9.1.
- Page 213 and 214: s 30 19 12 i 10 10 j 10 10 10 1010
- Page 215 and 216: Solução Um fluxo s-t f com valor
- Page 217 and 218: Objetivo Minimiza o valor c(M) de M
- Page 219 and 220: 9.2. Emparelhamentos Teorema 9.4 (B
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