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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Aproximação: Uma idéia<br />

4.3. <strong>Algoritmos</strong> <strong>de</strong> seqüenciamento<br />

1. Começa com uma estimativa viável: d(s) = 0 e d(t) = ∞ para todo nó<br />

em V \ {s}.<br />

2. Depois escolhe uma aresta e = (u, v) ∈ E tal que d(u) + c(e) ≤ d(v) e<br />

atualiza d(v) = d(u) + c(e).<br />

3. Repete até não ter mais arestas <strong>de</strong>sse tipo.<br />

Esse algoritmo é correto? Qual a <strong>complexida<strong>de</strong></strong> <strong>de</strong>le?<br />

4.3. <strong>Algoritmos</strong> <strong>de</strong> seqüenciamento<br />

Seqüenciamento <strong>de</strong> intervalos<br />

Consi<strong>de</strong>re o seguinte problema<br />

Seqüenciamento <strong>de</strong> intervalos<br />

Instância Um conjunto <strong>de</strong> intervalos S = {[ci, fi], 1 ≤ i ≤ n}, cada com<br />

começo ci e fim fi tal que ci < fi.<br />

Solução Um conjunto compatível C ⊆ S <strong>de</strong> intervalos, i.e. cada par<br />

i1, i2 ∈ C temos i1 ∩ i2 = ∅.<br />

Objetivo Maximiza a cardinalida<strong>de</strong> |C|.<br />

(inglês: interval scheduling)<br />

Como resolver?<br />

• Qual seria uma boa estratégia gulosa para resolver o problema?<br />

• Sempre selecionada o intervalo que<br />

– que começa mais cedo?<br />

– que termina mais cedo?<br />

– que começa mais tar<strong>de</strong>?<br />

– que termina mais tar<strong>de</strong>?<br />

– mais curto?<br />

– tem menos conflitos?<br />

85

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

Saved successfully!

Ooh no, something went wrong!