Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
9. Algoritmos em grafos Figura 9.8.: Esquerda: Polígono ortogonal com vértices de reflexo (pontos) e cordas (pontilhadas). Direita: grafo de intersecção. s t Figura 9.9.: Redução do problema de emparelhamento máximo para o problema do fluxo máximo Prova. Introduz dois vértices s, t, liga s para todos vértices em V1, os vértices em V1 com vértices em V2 e os vértices em V2 com t, com todos os pesos unitários. Aplica o algoritmo de Ford-Fulkerson para obter um fluxo máximo. O número de aumentos é limitado por n, cada busca tem complexidade O(m), portanto o algoritmo de Ford-Fulkerson termina em tempo O(mn). Teorema 9.7 O valor do fluxo máximo é igual a cardinalidade de um emparelhamento máximo. Prova. Dado um emparelhamento máximo M = {v11v21, . . . , v1nv2n}, podemos construir um fluxo com arcos sv1i, v1iv2i e v2it com valor |M|. Dado um fluxo máximo, existe um fluxo integral equivalente (veja lema (9.3)). Na construção acima os arcos possuem fluxo 0 ou 1. Escolhe todos arcos entre 218
9.2. Emparelhamentos V1 e V2 com fluxo 1. Não existe vértice com grau 2, pela conservação de fluxo. Portanto, os arcos formam um emparelhamento cuja cardinalidade é o valor do fluxo. Solução não-ponderado combinatorial Um caminho P = v1v2v3 . . . vk é alternante em relação a M (ou M-alternante) se vivi+1 ∈ M sse vi+1vi+2 ∈ M para todos 1 ≤ i ≤ k − 2. Um vértice v ∈ V é livre em relação a M se ele tem grau 0 em M, e emparelhado caso contrário. Um arco e ∈ E é livre em relação a M, se e ∈ M, e emparelhado caso contrário. Escrevemos |P |= k − 1 pelo comprimento do caminho P . Observação 9.5 Caso temos um caminho P = v1v2v3 . . . v2k+1 que é M-alternante com v1 é v2k+1 livre, podemos obter um emparelhamento M \ (P ∩ M) ∪ (P \ M) de tamanho |M ⊢ k + (k − 1) = |M| + 1. Notação: Diferença simétrica M ⊕ P = (M \ P ) ∪ (P \ M). A operação M ⊕ P é um aumento do emparelhamento M. ♦ Teorema 9.8 (Hopcroft e Karp [38]) Seja M ∗ um emparelhamento máximo e M um emparelhamento arbitrário. O conjunto M ⊕M ∗ contém ao menos k = |M ∗ ⊢ |M| caminhos M-aumentantes disjuntos (de vértices). Um deles possui comprimento menor que |V |/k − 1. Prova. Considere os componentes de G em relação aos arcos M := M ⊕ M ∗ . Cada vértice possui no máximo grau 2. Portanto, cada componente é ou um vértice livre, ou um caminhos simples ou um ciclo. Os caminhos e ciclos possuem alternadamente arcos de M e M ∗ . Portanto os ciclos tem comprimento par. Os caminhos de comprimento impar são ou M-aumentantes ou M ∗ -aumentantes, mas o segundo caso é impossível, porque M ∗ é máximo. Agora |M ∗ \ M |= |M ∗ ⊢ |M ∗ ∩ M |= |M ⊢ |M ∗ ∩ M| + k = |M \ M ∗ | + k e portanto M ⊕ M ∗ contém k arcos mais de M ∗ que de M. Isso mostra que existem ao menos |M ∗ ⊢ |M| caminhos M-aumentantes, porque somente os caminhos de comprimento impar possuem exatamente um arco mais de M ∗ . Ao menos um desses caminhos tem que ter um comprimento menor ou igual que |V |/k − 1, porque no caso contrário eles contém em total mais que |V | vértices. Corolário 9.1 (Berge [9]) Um emparelhamento é máximo sse não existe um caminho M-aumentante. 219
- 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
- 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: 9.2. Emparelhamentos Teorema 9.4 (B
- Page 223 and 224: 9.2. Emparelhamentos não sabemos c
- Page 225 and 226: 9.2. Emparelhamentos Sobre a implem
- Page 227 and 228: 9.2. Emparelhamentos reduzir o prob
- Page 229 and 230: v10 v9 v1 v8 v2 v3 v7 v6 v4 v5 v10
- Page 231 and 232: 10. Algoritmos de aproximação (As
- Page 233 and 234: 2 2 10.2. Aproximações para o PCV
- Page 235 and 236: 10.3. Algoritmos de aproximação p
- Page 237 and 238: 10.3. Algoritmos de aproximação p
- Page 239: Parte IV. Teoria de complexidade 23
- Page 242 and 243: 11. Do algoritmo ao problema Modelo
- Page 244 and 245: 11. Do algoritmo ao problema - entr
- Page 246 and 247: 11. Do algoritmo ao problema Lingua
- Page 248 and 249: 11. Do algoritmo ao problema Observ
- Page 250 and 251: 11. Do algoritmo ao problema Decibi
- Page 253 and 254: 12. Classes de complexidade 12.1. D
- Page 255 and 256: 12.2. Hierarquias básicas Prova. (
- Page 257 and 258: 12.2. Hierarquias básicas 1. Temos
- Page 259: 12.3. Exercícios 12.3. Exercícios
- Page 262 and 263: 13. Teoria de NP-completude • Int
- Page 264 and 265: 13. Teoria de NP-completude C-≤-d
- Page 266 and 267: 13. Teoria de NP-completude Ladrilh
- Page 268 and 269: 13. Teoria de NP-completude (q, a)
9.2. Emparelhamentos<br />
V1 e V2 com fluxo 1. Não existe vértice com grau 2, pela conservação <strong>de</strong> fluxo.<br />
Portanto, os arcos formam um emparelhamento cuja cardinalida<strong>de</strong> é o valor<br />
do fluxo. <br />
Solução não-pon<strong>de</strong>rado combinatorial Um caminho P = v1v2v3 . . . vk é<br />
alternante em relação a M (ou M-alternante) se vivi+1 ∈ M sse vi+1vi+2 ∈ M<br />
para todos 1 ≤ i ≤ k − 2. Um vértice v ∈ V é livre em relação a M se ele<br />
tem grau 0 em M, e emparelhado caso contrário. Um arco e ∈ E é livre em<br />
relação a M, se e ∈ M, e emparelhado caso contrário. Escrevemos |P |= k − 1<br />
pelo comprimento do caminho P .<br />
Observação 9.5<br />
Caso temos um caminho P = v1v2v3 . . . v2k+1 que é M-alternante com v1 é<br />
v2k+1 livre, po<strong>de</strong>mos obter um emparelhamento M \ (P ∩ M) ∪ (P \ M) <strong>de</strong><br />
tamanho |M ⊢ k + (k − 1) = |M| + 1. Notação: Diferença simétrica M ⊕ P =<br />
(M \ P ) ∪ (P \ M). A operação M ⊕ P é um aumento do emparelhamento<br />
M. ♦<br />
Teorema 9.8 (Hopcroft e Karp [38])<br />
Seja M ∗ um emparelhamento máximo e M um emparelhamento arbitrário. O<br />
conjunto M ⊕M ∗ contém ao menos k = |M ∗ ⊢ |M| caminhos M-aumentantes<br />
disjuntos (<strong>de</strong> vértices). Um <strong>de</strong>les possui comprimento menor que |V |/k − 1.<br />
Prova. Consi<strong>de</strong>re os componentes <strong>de</strong> G em relação aos arcos M := M ⊕<br />
M ∗ . Cada vértice possui no máximo grau 2. Portanto, cada componente<br />
é ou um vértice livre, ou um caminhos simples ou um ciclo. Os caminhos<br />
e ciclos possuem alternadamente arcos <strong>de</strong> M e M ∗ . Portanto os ciclos tem<br />
comprimento par. Os caminhos <strong>de</strong> comprimento impar são ou M-aumentantes<br />
ou M ∗ -aumentantes, mas o segundo caso é impossível, porque M ∗ é máximo.<br />
Agora<br />
|M ∗ \ M |= |M ∗ ⊢ |M ∗ ∩ M |= |M ⊢ |M ∗ ∩ M| + k = |M \ M ∗ | + k<br />
e portanto M ⊕ M ∗ contém k arcos mais <strong>de</strong> M ∗ que <strong>de</strong> M. Isso mostra que<br />
existem ao menos |M ∗ ⊢ |M| caminhos M-aumentantes, porque somente os<br />
caminhos <strong>de</strong> comprimento impar possuem exatamente um arco mais <strong>de</strong> M ∗ .<br />
Ao menos um <strong>de</strong>sses caminhos tem que ter um comprimento menor ou igual<br />
que |V |/k − 1, porque no caso contrário eles contém em total mais que |V |<br />
vértices. <br />
Corolário 9.1 (Berge [9])<br />
Um emparelhamento é máximo sse não existe um caminho M-aumentante.<br />
219