13.04.2013 Views

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

10.3. <strong>Algoritmos</strong> <strong>de</strong> aproximação para cortes<br />

Figura 10.3.: I<strong>de</strong>ntificação <strong>de</strong> dois terminais e um corte no grafo reduzido.<br />

Vértices em ver<strong>de</strong>, terminais em azul. A grafo reduzido possui<br />

múltiplas arestas entre vértices.<br />

• Corte múltiplo mínimo (CMM): Dado terminais s1, . . . , sk <strong>de</strong>termine o<br />

menor corte C que separa todos terminas.<br />

• k-corte mínimo (k-CM): Mesmo problema, sem terminais <strong>de</strong>finidos. (Observe<br />

que todos k componentes <strong>de</strong>vem ser não vazios).<br />

Fato 10.1<br />

CMM é NP-difícil para qualquer k ≥ 3. k-CM possui uma solução polinomial<br />

em tempo O(nk2) para qualquer k, mas é NP-difícil, caso k faz parte da<br />

entrada.<br />

Solução <strong>de</strong> CMM Chamamos um corte que separa um vértice dos outros<br />

um corte isolante. Idéia: A união <strong>de</strong> cortes isolantes para todo si é um corte<br />

múltiplo. Para calcular o corte isolante para um dado terminal si, i<strong>de</strong>ntificamos<br />

os restantes terminais em um único vértice S e calculamos um corte<br />

mínimo entre si e S. (Na i<strong>de</strong>ntificação <strong>de</strong> vértices temos que remover selfloops,<br />

e somar os pesos <strong>de</strong> múltiplas arestas.)<br />

Isso leva ao algoritmo<br />

Algoritmo 10.1 (CI)<br />

Entrada Grafo G = (V, A, c) e terminais s1, . . . , sk.<br />

Saída Um corte múltiplo que separa os si.<br />

1. Para cada i ∈ [1, k]: Calcula o corte isolante Ci <strong>de</strong> si.<br />

233

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

Saved successfully!

Ooh no, something went wrong!