• Nenhum resultado encontrado

Melhores momentos

N/A
N/A
Protected

Academic year: 2022

Share "Melhores momentos"

Copied!
70
0
0

Texto

(1)

Melhores momentos

AULA 8

Otimização Combinatória – p. 259

(2)

Problema

Problema do caminho mínimo sob custo não-negativo:

Dada uma rede (N, A, c) com função-custo c : A → Z e um nó s, encontrar, para cada nó t, um caminho de custo

mínimo de s a t.

Otimização Combinatória – p. 260

(3)

Problema

Problema do caminho mínimo sob custo não-negativo:

Dada uma rede (N, A, c) com função-custo c : A → Z e um nó s, encontrar, para cada nó t, um caminho de custo

mínimo de s a t. Entra:

1

1

2

3 3

3 5

5 7

s

v t

u

w

z

Otimização Combinatória – p. 260

(4)

Problema

Problema do caminho mínimo sob custo não-negativo:

Dada uma rede (N, A, c) com função-custo c : A → Z e um nó s, encontrar, para cada nó t, um caminho de custo

mínimo de s a t. Sai:

1 0

1

2

3 3

3 5

5 7

s

v t

u

w

z

Otimização Combinatória – p. 260

(5)

Algoritmo genérico

Recebe uma rede (N, A, c) com função custo c : A → Z e um nó s e devolve uma função-predecessor π e uma

função-potencial y com a seguinte propriedade: para todo nó t, a função π determina um caminho P de s a t tal que c(P ) = y(t) − y(s).

FORD (N, A, c, s) c ≥ 0 1 para cada i em N faça

2 y(i) ← nC + 1 C := max{c(ij) : ij ∈ A} 3 π(i) ← NIL

4 y(s) ← 0

5 enquanto y(j) > y(i) + c(ij) para algum ij ∈ A faça 6 y(j) ← y(i) + c(ij)

7 π(j) ← i 8 devolva π e y

Otimização Combinatória – p. 261

(6)

Conclusão

Da propriedade dos c-potenciais (lema da dualidade) e da correção do algoritmo FORD concluímos o seguinte:

(Teorema dualidade) Se s e t são nós de uma rede (N, A, c) com função custo c : A → Z e t está ao

alcance de s então

min{c(P) : P é um st-caminho}

= max{y(t) − y(s) : y é um c-potencial}.

Otimização Combinatória – p. 262

(7)

Conclusão

O consumo de tempo do algoritmo

CAMINHO-CURTO-GENÉRICO é O(n2m(C + 1))).

Este consumo de tempo não é polinomial.

Otimização Combinatória – p. 263

(8)

Iteração de Dijkstra

S Q U

s v

S = nós já examinados

Q = nós não examinados com potencial < ∞ U = nós não examinados com potencial = ∞ v = nó em Q com menor potencial

Otimização Combinatória – p. 264

(9)

Iteração de Dijkstra

S Q U

s

v

S = nós já examinados

Q = nós não examinados com potencial < ∞ U = nós não examinados com potencial = ∞ v = nó em Q com menor potencial

Otimização Combinatória – p. 264

(10)

Iteração de Dijkstra

S Q U

s

v

S = nós já examinados

Q = nós não examinados com potencial < ∞ U = nós não examinados com potencial = ∞ v = nó em Q com menor potencial

Otimização Combinatória – p. 264

(11)

Invariantes

Na linha 6, antes da verificação da condição “Q 6= hi” valem as seguintes invariantes:

(i0) para cada arco pq no grafo de predecessores tem-se y(q) − y(p) = c(pq) (igual!);

(i1) π(s) = NIL e y(s) = 0;

(i2) para cada nó v distinto de s, y(v) < nC + 1 ⇔ π(v) 6= NIL; (i3) para cada nó v, se π(v) 6= NIL então existe um caminho

de s a v no grafo de predecessores.

Otimização Combinatória – p. 265

(12)

Mais invariantes

Na linha 6, antes da verificação da condição Q 6= hi valem, além de (i0)-(i3), as seguintes invariantes:

(i4) para cada arco pq com y(q) − y(p) > c(pq) tem-se que p e q estão Q;

(i5) (monotonicidade) para quaisquer w em N − Q, i em Q vale que

y(w) ≤ y(i).

Otimização Combinatória – p. 266

(13)

Implementação do algoritmo F

ORD

DIJKSTRA (N, A, c, s) c ≥ 0 1 para cada i em N faça

2 y(i) ← nC + 1 nC + 1 faz o papel de ∞ 3 π(i) ← NIL

4 y(s) ← 0

5 Q ← N Q func. como uma fila com prioridades 6 enquanto Q 6= hi faça

7 retire de Q um nó i com y(i) mínimo 8 para cada ij em A(i) faça

9 se y(j) > y(i) + c(ij) então 10 y(j) ← y(i) + c(ij)

11 π(j) ← i

12 devolva π e y

Otimização Combinatória – p. 267

(14)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z

Otimização Combinatória – p. 268

(15)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 43

43

43

43

Otimização Combinatória – p. 268

(16)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 43

43

43

43

Otimização Combinatória – p. 268

(17)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 7

43

43

43

Otimização Combinatória – p. 268

(18)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 7

43

4

43

Otimização Combinatória – p. 268

(19)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 7

2

4

43

Otimização Combinatória – p. 268

(20)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 7

2

4

43

Otimização Combinatória – p. 268

(21)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 7

2

3

43

Otimização Combinatória – p. 268

(22)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 7

2

3

5

Otimização Combinatória – p. 268

(23)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

43 7

2

3

5

Otimização Combinatória – p. 268

(24)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

7 7

2

3

5

Otimização Combinatória – p. 268

(25)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

7 7

2

3

4

Otimização Combinatória – p. 268

(26)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

7 7

2

3

4

Otimização Combinatória – p. 268

(27)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

6 7

2

3

4

Otimização Combinatória – p. 268

(28)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

6 7

2

3

4

Otimização Combinatória – p. 268

(29)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

6 6

2

3

4

Otimização Combinatória – p. 268

(30)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

6 6

2

3

4

Otimização Combinatória – p. 268

(31)

Simulação

7

4

2

0 1

1

3

4

1 s 2

v t

u

w

z 0

6 6

2

3

4

Otimização Combinatória – p. 268

(32)

Consumo de tempo

O consumo de tempo do algoritmo DIJKSTRA é O(n2).

Otimização Combinatória – p. 269

(33)

AULA 9

Otimização Combinatória – p. 270

(34)

Caminhos de custo mínimo

PF 6.1, 6.2, 6.3, 6.4, 6.5

Otimização Combinatória – p. 271

(35)

Problema

Problema do caminho de custo mínimo: Dada uma rede (N, A, c) com função-custo c : A → Z e um nó s, encontrar, para cada nó t, um caminho de custo mínimo de s a t.

Otimização Combinatória – p. 272

(36)

Problema

Problema do caminho de custo mínimo: Dada uma rede (N, A, c) com função-custo c : A → Z e um nó s, encontrar, para cada nó t, um caminho de custo mínimo de s a t.

Entra:

1

−3

−2

−4 2

2

4

2

4 s −1

v t

u

w

z

Otimização Combinatória – p. 272

(37)

Problema

Problema do caminho de custo mínimo: Dada uma rede (N, A, c) com função-custo c : A → Z e um nó s, encontrar, para cada nó t, um caminho de custo mínimo de s a t.

Sai:

1

−3

−2

−4 2

2

4

2

4 s −1

v t

u

w

z

Otimização Combinatória – p. 272

(38)

Propriedade de c-Potenciais

(Lema da dualidade.) Se P é um passeio de s a t e y é um c-potencial então

c(P) ≥ y(t) − y(s).

1

−3

−2

−4 2

2

4

2

4 s −1

v t

u

w

z 0

−5 −1

−2

−3

1

Otimização Combinatória – p. 273

(39)

Conseqüência

Se P é um caminho de s a t e y é um c-potencial tais que c(P ) = y(t) − y(s),

então P é uma caminho mínimo e y é um c-potencial tal que o valor de y(t) − y(s) é máximo.

1

−3

−2

−4 2

2

4

2

4 s −1

v t

u

w

z 0

−5 −1

−2

−3

1

Otimização Combinatória – p. 274

(40)

Potenciais ótimos

Um c-potencial y é (s, ∗)-ótimo se, para todo nó t, existe um caminho P de s a t tal que

c(P ) = y(t) − y(s),

1

−3

−2

−4 2

2

4

2

4 s −1

v t

u

w

z 0

−5 −1

−2

−3

1

Otimização Combinatória – p. 275

(41)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

Otimização Combinatória – p. 276

(42)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 36

36

36

36

Otimização Combinatória – p. 276

(43)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 36

36

36

36

Otimização Combinatória – p. 276

(44)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

36

36

36

Otimização Combinatória – p. 276

(45)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

36

36

Otimização Combinatória – p. 276

(46)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

36

36

Otimização Combinatória – p. 276

(47)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

36

Otimização Combinatória – p. 276

(48)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

1

Otimização Combinatória – p. 276

(49)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

1

Otimização Combinatória – p. 276

(50)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

1

Otimização Combinatória – p. 276

(51)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

1

Otimização Combinatória – p. 276

(52)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

1

Otimização Combinatória – p. 276

(53)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

1

Otimização Combinatória – p. 276

(54)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

1

Otimização Combinatória – p. 276

(55)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

−1

Otimização Combinatória – p. 276

(56)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

−1

Otimização Combinatória – p. 276

(57)

Apelemos para Dijkstra

6

3

−1

−7

−2

0

3

s t

u

w

v

0 3

6

3

−1

O sw-caminho mínimo tem custo 2 e não 3. . .

Otimização Combinatória – p. 276

(58)

Caminhos hamiltonianos

Problema: Dados nós s e t de grafo não-orientado (N, E) encontrar um caminho hamiltoniano entre s e t.

Otimização Combinatória – p. 277

(59)

Caminhos hamiltonianos

Problema: Dados nós s e t de grafo não-orientado (N, E) encontrar um caminho hamiltoniano entre s e t.

G

s

t

Este problema é NP-difícil.

Otimização Combinatória – p. 277

(60)

Caminhos hamiltonianos

Problema: Dados nós s e t de grafo não-orientado (N, E) encontrar um caminho hamiltoniano entre s e t.

G

s

t

Este problema é NP-difícil.

Otimização Combinatória – p. 277

(61)

Redução polinomial

G

s

t

todos custos = −1

G possui um st-caminho hamiltoniano

(N, A) possui um st-caminho de custo −(n − 1).

Otimização Combinatória – p. 278

(62)

Conclusão

O problema do caminho mínimo é tão difícil quanto o problema do caminho hamiltoniano.

O problema do caminho de custo mínimo é NP-difícil.

Otimização Combinatória – p. 279

(63)

Ciclos negativos

Se a rede possui um ciclo (de custo) negativo então não existe um c-potencial.

5

−4

1

2

s u v 3 t

w

0 5 3

1

3

Otimização Combinatória – p. 280

(64)

Vamos supor que. . .

Vamos supor que:

a rede não tem ciclo negativo

todo nó da rede está ao alcance de s C := max{|c(ij)| : ij ∈ A}

Otimização Combinatória – p. 281

(65)

Algoritmo genérico

Recebe uma rede (N, A, c) com função custo c : A → Z sem ciclos negativos e um nó s e devolve uma

função-predecessor π e um c-potencial y com a seguinte propriedade: para todo nó t, a função π determina um caminho P de s a t tal que c(P ) = y(t) − y(s).

FORD (N, A, c, s)

1 para cada i em N faça

2 y(i) ← nC + 1 C := max{|c(ij)| : ij ∈ A}

3 π(i) ← NIL

4 y(s) ← 0

5 enquanto y(j) > y(i) + c(ij) para algum ij ∈ A faça 6 y(j) ← y(i) + c(ij)

7 π(j) ← i 8 devolva π e y

Otimização Combinatória – p. 282

(66)

Invariantes

Na linha 5, antes da verificação da condição

′′y(j) > y(i) + c(ij) . . .′′ valem as seguintes invariantes:

(i1) para cada arco pq no grafo de predecessores tem-se y(q) − y(p) ≥ c(pq);

(i2) se pq é um arco tal que y(q) − y(p) ≥ c(pq), então não há um qp-caminho no grafo de predecessores.

(i3) π(s) = NIL e y(s) = 0;

(i4) se y(t) < ∞, então há um st-caminho no grafo de predecessores.

(i5) Se S := {v : y(v) < ∞}, então, para cada v em S temos que y(v) < |S|C, onde

C := max{|c(pq)| : pq ∈ A, p ∈ S, q ∈ S}.

Otimização Combinatória – p. 283

(67)

Correção

Início da última iteração:

y é um c-potencial

Se y(t) < ∞ então, por (i4), segue que existe um

st-caminho P no grafo de predecessores. Logo, (i1) e (i3) implicam que

c(P) ≥ y(t) − y(s) = y(t).

Da propriedade dos c-potencias, concluímos que P é um st-caminho (de custo) mínimo.

Conclusão: o algoritmo faz o que promete.

Otimização Combinatória – p. 284

(68)

Conclusão

Da propriedade dos c-potenciais (lema da dualidade) e da correção do algoritmo FORD concluímos o seguinte:

(Teorema dualidade) Se s e t são nós de uma rede (N, A, c) com função custo c : A → Z, sem ciclos

negativos, e t está ao alcance de s então min{c(P) : P é um st-caminho}

= max{y(t) − y(s) : y é um c-potencial}.

Otimização Combinatória – p. 285

(69)

Consumo de tempo

O número de execuções do bloco de linhas 5–7 é

< n(2 nC + 1) = 2 n2C + n.

linha consumo de todas as execuções da linha 1-3 O(n)

4 O(1)

5 (2 n2C + n)O(m) = O(n2m(C + 1)) 6-7 (2 n2C + n)O(1) = O(n2(C + 1))

8 O(n)

total 2 O(n) + O(1) + O(n2m(C + 1)) + O(n2(C + 1))

= O(n2m(C + 1))

Otimização Combinatória – p. 286

(70)

Conclusão

O consumo de tempo do algoritmo

CAMINHO-CURTO-GENÉRICO é O(n2m(C + 1)).

Este consumo de tempo não é polinomial.

Otimização Combinatória – p. 287

Referências

Documentos relacionados

Então, vamos supor que r seja racional e analisar as conseqüências disso:. Logo

O I Seminário de Educação Profissional do Estado do Amapá foi promovido por diversos órgãos e entidades públicas e privadas, entre eles, o Governo do Estado do Amapá (GEA) por

6.1.8.Responsabilizar-se pela prestação dos serviços objeto deste edital e por todo e qualquer material ou equipamento necessário ao desempenho de suas atividades, bem como pela

New &amp; Used American Oak, Sherry, Japanese Oak

Porém a empresa utiliza as que melhor atendem as características da vaga em questão, a mesma disponibiliza suas vagas através do site da empresa, jornal local, redes

4- Na Wurth Portugal trabalhamos para apresentar aos nossos clientes os melhores produtos ao nível de qualidade e diferen- ciação, sendo que a nossa gama de chaves dinamométricas

Para o controle de doenças crônicas, como a Insuficiência Cardíaca e suas complicações, são necessárias práticas de educação em saúde que incentivem a adesão ao tratamento

Quanto maior o fator de carga , mais tempo as funções de busca e inserção vão