Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
6. Divisão e conquista 6.1. Introdução Método de Divisão e Conquista • Dividir o problema original em um determinado número de subproblemas independentes • Conquistar os subproblemas, resolvendo-os recursivamente até obter o caso base. • Combinar as soluções dadas aos subproblemas, a fim de formar a solução do problema original. Recorrências • O tempo de execução dos algoritmos recursivos pode ser descrito por uma recorrência. • Uma recorrência é uma equação ou desigualdade que descreve uma função em termos de seu valor em entradas menores. Divisão e conquista Algoritmo 6.1 (DC) Entrada Uma instância I de tamanho n. 1 i f n = 1 then 2 return Solução d i r e t a 3 else 4 Divide I em sub i n s t â n c i a s I1, . . . , Ik , k > 0 5 com tamanhos ni < n . 6 Resolve recursivamente : I1, . . . , Ik . 7 Resolve I usando sub s o l u ç õ e s DC(I1), . . . , DC(Ik) . 8 end i f 123
- Page 75: 3. Introdução Resolver problemas
- Page 78 and 79: 4. Algoritmos gulosos A abordagem g
- Page 80 and 81: 4. Algoritmos gulosos Do outro lado
- Page 82 and 83: 4. Algoritmos gulosos Aplicações
- Page 84 and 85: 4. Algoritmos gulosos 1 V ′ := {v
- Page 86 and 87: 4. Algoritmos gulosos Algoritmo de
- Page 88 and 89: 4. Algoritmos gulosos Implementaç
- Page 90 and 91: 4. Algoritmos gulosos Variação do
- Page 92 and 93: 4. Algoritmos gulosos • Como comp
- Page 94 and 95: 4. Algoritmos gulosos Proposição
- Page 96 and 97: 4. Algoritmos gulosos Resultados O
- Page 98 and 99: 5. Programação dinâmica É simpl
- Page 100 and 101: 5. Programação dinâmica soluçã
- Page 102 and 103: 5. Programação dinâmica Teorema:
- Page 104 and 105: 5. Programação dinâmica e calcul
- Page 106 and 107: 5. Programação dinâmica 5.2.2. S
- Page 108 and 109: 5. Programação dinâmica 11 sol1
- 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 126 and 127: 6. Divisão e conquista E estrutura
- Page 128 and 129: 6. Divisão e conquista 6.2.1. Mét
- Page 130 and 131: 6. Divisão e conquista • Para re
- Page 132 and 133: 6. Divisão e conquista uma forma q
- Page 134 and 135: 6. Divisão e conquista • Numa á
- Page 136 and 137: 6. Divisão e conquista Árvore de
- Page 138 and 139: 6. Divisão e conquista Busca Biná
- Page 140 and 141: 6. Divisão e conquista Exemplo 6.8
- Page 142 and 143: 6. Divisão e conquista para um ɛ
- Page 144 and 145: 6. Divisão e conquista e possui so
- Page 146 and 147: 6. Divisão e conquista Entrada Med
- Page 148 and 149: 6. Divisão e conquista 12 else i f
- Page 150 and 151: 6. Divisão e conquista Observaçã
- Page 152 and 153: 6. Divisão e conquista Observaçã
- Page 155 and 156: 7. Árvores de busca, backtracking
- Page 157 and 158: O problema das n-rainhas 7.1. Backt
- Page 159 and 160: Problema do Caixeiro Viajante 7.1.
- Page 161 and 162: Algoritmo 7.1 (Redução de cobertu
- Page 163 and 164: 7.1. Backtracking Figura 7.1.: Cobe
- Page 165 and 166: Conjunto independente máximo Inst
- Page 167 and 168: Algoritmos B&B Algoritmo 7.3 (B&B)
- Page 169 and 170: • um corte por limite em 4; • u
- Page 171 and 172: Objetivo Minimizar o número de cor
- Page 173 and 174: 7.2. Branch-and-bound Para um vért
6. Divisão e conquista<br />
6.1. Introdução<br />
Método <strong>de</strong> Divisão e Conquista<br />
• Dividir o problema original em um <strong>de</strong>terminado número <strong>de</strong> subproblemas<br />
in<strong>de</strong>pen<strong>de</strong>ntes<br />
• Conquistar os subproblemas, resolvendo-os recursivamente até obter o<br />
caso base.<br />
• Combinar as soluções dadas aos subproblemas, a fim <strong>de</strong> formar a solução<br />
do problema original.<br />
Recorrências<br />
• O tempo <strong>de</strong> execução dos algoritmos recursivos po<strong>de</strong> ser <strong>de</strong>scrito por<br />
uma recorrência.<br />
• Uma recorrência é uma equação ou <strong>de</strong>sigualda<strong>de</strong> que <strong>de</strong>screve uma<br />
função em termos <strong>de</strong> seu valor em entradas menores.<br />
Divisão e conquista<br />
Algoritmo 6.1 (DC)<br />
Entrada Uma instância I <strong>de</strong> tamanho n.<br />
1 i f n = 1 then<br />
2 return Solução d i r e t a<br />
3 else<br />
4 Divi<strong>de</strong> I em sub i n s t â n c i a s I1, . . . , Ik , k > 0<br />
5 com tamanhos ni < n .<br />
6 Resolve recursivamente : I1, . . . , Ik .<br />
7 Resolve I usando sub s o l u ç õ e s DC(I1), . . . , DC(Ik) .<br />
8 end i f<br />
123