39
Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos – p. 1/??

Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Análise de Algoritmos

Parte destes slides são adaptações de slides

do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina.

Algoritmos – p. 1/??

Page 2: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Problema de otimização combinatória:

conjunto de instânciaspara cada instância I,

um conjunto Sol(I) (não vazio) de soluções (viáveis) euma função val(S) para cada solução S em Sol(I)

Algoritmos – p. 2/??

Page 3: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Problema de otimização combinatória:

conjunto de instânciaspara cada instância I,

um conjunto Sol(I) (não vazio) de soluções (viáveis) euma função val(S) para cada solução S em Sol(I)

Objetivo: Dada uma instância I viável,encontrar solução S em Sol(I) tq val(S) é mínimo/máximo.

Algoritmos – p. 2/??

Page 4: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Problema de otimização combinatória:

conjunto de instânciaspara cada instância I,

um conjunto Sol(I) (não vazio) de soluções (viáveis) euma função val(S) para cada solução S em Sol(I)

Objetivo: Dada uma instância I viável,encontrar solução S em Sol(I) tq val(S) é mínimo/máximo.

Tipicamente Sol(I) tem tamanho exponencial.

Algoritmos – p. 2/??

Page 5: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Problema de otimização combinatória:

conjunto de instânciaspara cada instância I,

um conjunto Sol(I) (não vazio) de soluções (viáveis) euma função val(S) para cada solução S em Sol(I)

Objetivo: Dada uma instância I viável,encontrar solução S em Sol(I) tq val(S) é mínimo/máximo.

Tipicamente Sol(I) tem tamanho exponencial.

Em uma busca local, adicionamos anoção de vizinhança entre as soluções.

Algoritmos – p. 2/??

Page 6: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Problema de otimização combinatória:

conjunto de instânciaspara cada instância I,

um conjunto Sol(I) (não vazio) de soluções (viáveis) euma função val(S) para cada solução S em Sol(I)

Objetivo: Dada uma instância I viável,encontrar solução S em Sol(I) tq val(S) é mínimo/máximo.

Tipicamente Sol(I) tem tamanho exponencial.

Em uma busca local, adicionamos anoção de vizinhança entre as soluções.

Relações que vizinhança simétricas.

Algoritmos – p. 2/??

Page 7: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Algoritmo:

Começa com uma solução arbitrária S.Iterativamente muda para uma solução S′ vizinha a S.

Algoritmos – p. 3/??

Page 8: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Algoritmo:

Começa com uma solução arbitrária S.Iterativamente muda para uma solução S′ vizinha a S.

Durante o processo, guarda a melhor solução visitada.

Algoritmos – p. 3/??

Page 9: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Algoritmo:

Começa com uma solução arbitrária S.Iterativamente muda para uma solução S′ vizinha a S.

Durante o processo, guarda a melhor solução visitada.

Pontos críticos:

como definir a vizinhança de uma solução

Algoritmos – p. 3/??

Page 10: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Algoritmo:

Começa com uma solução arbitrária S.Iterativamente muda para uma solução S′ vizinha a S.

Durante o processo, guarda a melhor solução visitada.

Pontos críticos:

como definir a vizinhança de uma solução

como escolher S′ na vizinhança de S

Algoritmos – p. 3/??

Page 11: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Busca local

Algoritmo:

Começa com uma solução arbitrária S.Iterativamente muda para uma solução S′ vizinha a S.

Durante o processo, guarda a melhor solução visitada.

Pontos críticos:

como definir a vizinhança de uma solução

como escolher S′ na vizinhança de S

Grafo cujo conjunto de vértices é Sol(I) e adjacência édada pela relação de vizinhança entre as soluções.

Algoritmo de busca local é um passeio neste grafo,que tenta se alcançar uma boa solução.

Algoritmos – p. 3/??

Page 12: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Cobertura por vértices

Grafo G = (V,E)

S ⊆ V é cobertura por vértices setoda aresta e em E tem pelo menos uma ponta em S.

Algoritmos – p. 4/??

Page 13: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Cobertura por vértices

Grafo G = (V,E)

S ⊆ V é cobertura por vértices setoda aresta e em E tem pelo menos uma ponta em S.

Problema: Dado G,encontrar cobertura por vértices de tamanho mínimo.

custo c(S) = |S|

Algoritmos – p. 4/??

Page 14: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Cobertura por vértices

Grafo G = (V,E)

S ⊆ V é cobertura por vértices setoda aresta e em E tem pelo menos uma ponta em S.

Problema: Dado G,encontrar cobertura por vértices de tamanho mínimo.

custo c(S) = |S|

Relação de vizinhança:S ∼ S′ se S′ é obtido de S

S ∼ S′ se adicionando-se ou removendo-se um vértice.

Algoritmos – p. 4/??

Page 15: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Cobertura por vértices

Grafo G = (V,E)

S ⊆ V é cobertura por vértices setoda aresta e em E tem pelo menos uma ponta em S.

Problema: Dado G,encontrar cobertura por vértices de tamanho mínimo.

custo c(S) = |S|

Relação de vizinhança:S ∼ S′ se S′ é obtido de S

S ∼ S′ se adicionando-se ou removendo-se um vértice.

Cada solução S tem n vizinhos, onde n = |V |.

Algoritmos – p. 4/??

Page 16: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo de busca local

Gradiente descendente

BUSCA-LOCAL (n,E) ✄ G = (V,E), n = |V |

1 S ← [n]

2 enquanto existe vizinho S′ de S

2 enquanto tq |S′| < |S| e S′ é cobertura faça

3 S ← S′

4 devolva S

Algoritmos – p. 5/??

Page 17: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo de busca local

Gradiente descendente

BUSCA-LOCAL (n,E) ✄ G = (V,E), n = |V |

1 S ← [n]

2 enquanto existe vizinho S′ de S

2 enquanto tq |S′| < |S| e S′ é cobertura faça

3 S ← S′

4 devolva S

Exemplo 1: G = (V, ∅)

S decresce um vértice de cada vez até S = ∅, que é ótimo.

Algoritmos – p. 5/??

Page 18: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo de busca local

Gradiente descendente

BUSCA-LOCAL (n,E) ✄ G = (V,E), n = |V |

1 S ← [n]

2 enquanto existe vizinho S′ de S

2 enquanto tq |S′| < |S| e S′ é cobertura faça

3 S ← S′

4 devolva S

Exemplo 2: G é estrela de centro v

Se, ao final da primeira iteração, S 6= S \ {v},o algoritmo termina com S = {v}, que é ótimo.

Algoritmos – p. 5/??

Page 19: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo de busca local

Gradiente descendente

BUSCA-LOCAL (n,E) ✄ G = (V,E), n = |V |

1 S ← [n]

2 enquanto existe vizinho S′ de S

2 enquanto tq |S′| < |S| e S′ é cobertura faça

3 S ← S′

4 devolva S

Exemplo 2: G é estrela de centro v

Se, ao final da primeira iteração, S = S \ {v},o algoritmo termina com esse ótimo local.

Algoritmos – p. 5/??

Page 20: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo de busca local

Gradiente descendente

BUSCA-LOCAL (n,E) ✄ G = (V,E), n = |V |

1 S ← [n]

2 enquanto existe vizinho S′ de S

2 enquanto tq |S′| < |S| e S′ é cobertura faça

3 S ← S′

4 devolva S

Exemplo 2: G é estrela de centro v

O algoritmo pode se dar arbitrariamente mal.

Algoritmos – p. 5/??

Page 21: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Metropolis, Rosenbluth, Teller, e Teller (1953)

Simulação de sistema físicode acordo com mecânica estatística.

Algoritmos – p. 6/??

Page 22: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Metropolis, Rosenbluth, Teller, e Teller (1953)

Simulação de sistema físicode acordo com mecânica estatística.

Função de Gibbs-Boltzman: e−E/(kT ), onde E é a energia,T é a temperatura e k é uma constante.

Algoritmos – p. 6/??

Page 23: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Metropolis, Rosenbluth, Teller, e Teller (1953)

Simulação de sistema físicode acordo com mecânica estatística.

Função de Gibbs-Boltzman: e−E/(kT ), onde E é a energia,T é a temperatura e k é uma constante.

Modelo: o sistema está num estado de energia E comprobabilidade dada pela função de Gibbs-Boltzman.

Algoritmos – p. 6/??

Page 24: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Metropolis, Rosenbluth, Teller, e Teller (1953)

Simulação de sistema físicode acordo com mecânica estatística.

Função de Gibbs-Boltzman: e−E/(kT ), onde E é a energia,T é a temperatura e k é uma constante.

Modelo: o sistema está num estado de energia E comprobabilidade dada pela função de Gibbs-Boltzman.

Para T fixo, a função decresce com E.(Maior a chance de estar em um estado de menor energia.)

Algoritmos – p. 6/??

Page 25: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Metropolis, Rosenbluth, Teller, e Teller (1953)

Simulação de sistema físicode acordo com mecânica estatística.

Função de Gibbs-Boltzman: e−E/(kT ), onde E é a energia,T é a temperatura e k é uma constante.

Modelo: o sistema está num estado de energia E comprobabilidade dada pela função de Gibbs-Boltzman.

Para T fixo, a função decresce com E.(Maior a chance de estar em um estado de menor energia.)

Para T pequeno, estado de menor energia é mais provávelque estado de energia alta.

Algoritmos – p. 6/??

Page 26: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Metropolis, Rosenbluth, Teller, e Teller (1953)

Simulação de sistema físicode acordo com mecânica estatística.

Função de Gibbs-Boltzman: e−E/(kT ), onde E é a energia,T é a temperatura e k é uma constante.

Modelo: o sistema está num estado de energia E comprobabilidade dada pela função de Gibbs-Boltzman.

Para T fixo, a função decresce com E.(Maior a chance de estar em um estado de menor energia.)

Para T pequeno, estado de menor energia é mais provávelque estado de energia alta.

Para T grande, a diferença entre estas probabilidades ébem pequena.

Algoritmos – p. 6/??

Page 27: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Objetivo: chegar a um estado de energia mínima.

Algoritmos – p. 7/??

Page 28: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Objetivo: chegar a um estado de energia mínima.

Algoritmo Metropolis: ✄ para um dado T

Comece em um estado S.A cada iteração, gere uma perturbação pequena S′ de S.Se E(S′) ≤ E(S), mude para S′.Senão seja ∆(E) = E(S′)− E(S).

Senão Mude para S′ com probabilidade e−∆(E)/(kT ).

Algoritmos – p. 7/??

Page 29: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Objetivo: chegar a um estado de energia mínima.

Algoritmo Metropolis: ✄ para um dado T

Comece em um estado S.A cada iteração, gere uma perturbação pequena S′ de S.Se E(S′) ≤ E(S), mude para S′.Senão seja ∆(E) = E(S′)− E(S).

Senão Mude para S′ com probabilidade e−∆(E)/(kT ).

Seja Z =∑

S e−E(S)/(kT ).

Para um estado S, seja fS(t) a fração dos t primeirospassos da simulação em que o algoritmo passa em S.

limt→∞ fS(t) =1Z · e

−E(S)/(kT ) com probabilidade indo para 1

Algoritmos – p. 7/??

Page 30: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Algoritmo Metropolis: ✄ para um dado T

Comece em um estado S.A cada iteração, gere uma perturbação pequena S′ de S.Se E(S′) ≤ E(S), mude para S′.Senão seja ∆(E) = E(S′)− E(S).

Senão Mude para S′ com probabilidade e−∆(E)/(kT ).

Seja Z =∑

S e−E(S)/(kT ).

fS(t): fração dos t primeiros passos em que estamos em S.

limt→∞ fS(t) =1Z · e

−E(S)/(kT ) com probabilidade indo para 1

Algoritmos – p. 8/??

Page 31: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Algoritmo Metropolis: ✄ para um dado T

Comece em um estado S.A cada iteração, gere uma perturbação pequena S′ de S.Se E(S′) ≤ E(S), mude para S′.Senão seja ∆(E) = E(S′)− E(S).

Senão Mude para S′ com probabilidade e−∆(E)/(kT ).

Seja Z =∑

S e−E(S)/(kT ).

fS(t): fração dos t primeiros passos em que estamos em S.

limt→∞ fS(t) =1Z · e

−E(S)/(kT ) com probabilidade indo para 1

Fica em S o tempo esperado.

Algoritmos – p. 8/??

Page 32: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Algoritmo Metropolis

Algoritmo Metropolis: ✄ para um dado T

Comece em um estado S.A cada iteração, gere uma perturbação pequena S′ de S.Se E(S′) ≤ E(S), mude para S′.Senão seja ∆(E) = E(S′)− E(S).

Senão Mude para S′ com probabilidade e−∆(E)/(kT ).

Seja Z =∑

S e−E(S)/(kT ).

fS(t): fração dos t primeiros passos em que estamos em S.

limt→∞ fS(t) =1Z · e

−E(S)/(kT ) com probabilidade indo para 1

Fica em S o tempo esperado.

Prós e contras em cima da cobertura por conjuntos.

Algoritmos – p. 8/??

Page 33: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Simulated Annealing

De volta ao sistema físico.

Annealing:processo de cristalização em que o material é resfriadolentamente, para atingir o estado de energia mínima.

Algoritmos – p. 9/??

Page 34: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Simulated Annealing

De volta ao sistema físico.

Annealing:processo de cristalização em que o material é resfriadolentamente, para atingir o estado de energia mínima.

Material em altas temperaturas não cristaliza.

Algoritmos – p. 9/??

Page 35: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Simulated Annealing

De volta ao sistema físico.

Annealing:processo de cristalização em que o material é resfriadolentamente, para atingir o estado de energia mínima.

Material em altas temperaturas não cristaliza.

Se esfria rapidamente, cristaliza com muitas imperfeições.

Algoritmos – p. 9/??

Page 36: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Simulated Annealing

De volta ao sistema físico.

Annealing:processo de cristalização em que o material é resfriadolentamente, para atingir o estado de energia mínima.

Material em altas temperaturas não cristaliza.

Se esfria rapidamente, cristaliza com muitas imperfeições.

Simulated annealing imita este processo, ajustando asprobabilidades de mudar para um estado de energia maiorde acordo com um parâmetro T que diminui com o tempo.

Algoritmos – p. 9/??

Page 37: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Simulated Annealing

De volta ao sistema físico.

Annealing:processo de cristalização em que o material é resfriadolentamente, para atingir o estado de energia mínima.

Material em altas temperaturas não cristaliza.

Se esfria rapidamente, cristaliza com muitas imperfeições.

Simulated annealing imita este processo, ajustando asprobabilidades de mudar para um estado de energia maiorde acordo com um parâmetro T que diminui com o tempo.

Em geral, não tem garantia de qualidade.

Algoritmos – p. 9/??

Page 38: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Simulated Annealing

De volta ao sistema físico.

Annealing:processo de cristalização em que o material é resfriadolentamente, para atingir o estado de energia mínima.

Material em altas temperaturas não cristaliza.

Se esfria rapidamente, cristaliza com muitas imperfeições.

Simulated annealing imita este processo, ajustando asprobabilidades de mudar para um estado de energia maiorde acordo com um parâmetro T que diminui com o tempo.

Em geral, não tem garantia de qualidade.

Em que velocidade diminuir o T?

Algoritmos – p. 9/??

Page 39: Análise de Algoritmos - IME-USPcris/aulas/15_1_6711/slides/aula20.pdf · Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Dois exemplos

Redes Neurais de Hopfield

Problema do corte máximo

Algoritmos – p. 10/??