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 7.1.1. Exemplo: Cobertura por vértices Considere Cobertura por vértices (ingl. vertex cover) Instância Grafo não-direcionado G = (V, E). Solução Uma cobertura C ⊆ V , i.e. ∀e ∈ E : e ∩ C = ∅. Objetivo Minimiza |C|. A versão de decisão de Cobertura por vértices é NP-completo. O que fazer? 1 3 20 21 18 19 Simplificando o problema 158 • Vértice de grau 1: Usa o vizinho. 17 2 • Vértice de grau 2 num triângulo: Usa os dois vizinhos. 23 22 24 4 16 10 25 15 5 13 14 6 9 12 8 7 11
Algoritmo 7.1 (Redução de cobertura por vértices) Entrada Grafo não-direcionado G = (V, E). 7.1. Backtracking Saída Um conjunto C ⊆ V e um grafo G ′ , tal que cada cobertura de vértices contém C, e a união de C com a cobertura mínima de G ′ é uma cobertura mínima de G. 1 Reduz (G) := 2 while ( alguma r e g r a em baixo se a p l i c a ) do 3 Regra 1 : 4 i f ∃u ∈ V : deg(u) = 1 then 5 s e j a {u, v} ∈ E 6 C := C ∪ {v} 7 G := G − {u, v} 8 end i f 9 Regra 2 : 10 i f ∃u ∈ V : deg(u) = 2 then 11 s e j a {u, v}, {u, w} ∈ E 12 i f {v, w} ∈ E then 13 C := C ∪ {v, w} 14 G := G − {u, v, w} 15 end i f 16 end while 17 return (C, G) Uma solução exata com busca exaustiva: Árvore de busca Algoritmo 7.2 (Árvore de busca) Entrada Grafo não-direcionado G = (V, E). Saída Cobertura por vértices S ⊆ V mínima. 1 minVertexCover (G):= 2 i f E = ∅ return ∅ 3 e s c o l h e {u, v} ∈ E 159
- Page 110 and 111: 5. Programação dinâmica O algori
- Page 112 and 113: 5. Programação dinâmica Dependen
- Page 114 and 115: 5. Programação dinâmica Análise
- Page 116 and 117: 5. Programação dinâmica curto do
- Page 118 and 119: 5. Programação dinâmica Logo, po
- 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 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 170 and 171: 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
7. Árvores <strong>de</strong> busca, backtracking e branch-and-bound<br />
7.1.1. Exemplo: Cobertura por vértices<br />
Consi<strong>de</strong>re<br />
Cobertura por vértices (ingl. vertex cover)<br />
Instância Grafo não-direcionado G = (V, E).<br />
Solução Uma cobertura C ⊆ V , i.e. ∀e ∈ E : e ∩ C = ∅.<br />
Objetivo Minimiza |C|.<br />
A versão <strong>de</strong> <strong>de</strong>cisão <strong>de</strong> Cobertura por vértices é NP-completo.<br />
O que fazer?<br />
1<br />
3<br />
20 21<br />
18<br />
19<br />
Simplificando o problema<br />
158<br />
• Vértice <strong>de</strong> grau 1: Usa o vizinho.<br />
17<br />
2<br />
• Vértice <strong>de</strong> grau 2 num triângulo: Usa os dois vizinhos.<br />
23<br />
22<br />
24<br />
4<br />
16<br />
10<br />
25<br />
15<br />
5<br />
13<br />
14<br />
6<br />
9<br />
12<br />
8<br />
7<br />
11