CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

22
CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

Transcript of CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

Page 1: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

1

Buscando Soluções

Busca iterativa (otimização)

Page 2: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

2

Problemas de Otimização

Definição• Problema onde se busca a melhor de todas soluções segundo

uma dada função de avaliação ou função objetivo

“Busca clássica” ou planejamento• Qual é a solução? • É difícil achar uma mas assim que se acha pára-se de buscar

– Ex. encontrar uma rota entre duas cidades

Otimização• Qual é a melhor solução? • É fácil achar uma mas difícil saber se é a melhor pois a função de

avaliação só permite comparações entre soluções...– Ex. Girar a antena para melhorar a imagem da TV

Page 3: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

3

Problemas de Otimização

Como resolvê-los?• Começar com o estado inicial (configuração completa, solução

aceitável), e melhorá-la iterativamente.• Não interessa o caminho percorrido!!! A SOLUÇÃO É UM NÓ!!

1001 problemas práticos (comércio, indústria, etc.)

Page 4: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

4

Problemas de Otimização

Localização de Facilidades• Distribuir facilidades maximizando a satisfação dos demandantes

– Escolher localização de torres de celular em uma cidade de forma a minimizar o risco de algum telefone ficar descoberto

– Escolher localização de armazéns de forma a minimizar o deslocamento dos caminhões de entrega até os clientes

Coloração de grafos: • colorir mapas usando o mínimo de cores e sem usar mesmas

cores em países vizinhos– distribuir freqüências Estações de Rádio Base (ERB) de forma a

aumentar as possibilidades de conexão entre telefones celulares sem permitir interferências

Page 5: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

5

Problemas de Otimização

Job shop• agendar tarefas de forma a minimizar o tempo ajuste entre elas

– Linhas de montagem

Caxeiro Viajante• Visitar cidades uma única vez minimizando a rota total percorrida

– redes de computadores, ...

Mochila (knapsack)• Dado um conjunto de objetos, cada qual com um preço e uma

utilidade, determinar um subconjunto com preço total igual a P que tenha uma utilidade total máxima.

– Alocação de recursos com restrições financeiras

Page 6: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

6

Problemas de Otimização

Os estados podem ser representados sobre uma superfície (= a função de avaliação)• a altura de qualquer ponto na superfície corresponde a sua

avaliação

O algoritmo se “move” pela superfície em busca de pontos mais altos/baixos• o ponto mais alto/baixo (máximo/mínimo global) corresponde à

solução ótima

Page 7: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

7

Técnicas de Otimização

Matemáticas ou exatas• Branch and bound• Programação Dinâmica• Programação Linear• Algoritmos gulosos• Indução Matemática• ...

Heurísticas• Hill-Climbing • Simulated Annealing• Busca tabu• Algoritmos Genéticos• Redes neurais• ...

Page 8: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

8

Algoritmos de (locais) Melhorias Iterativas

Guardam apenas o estado atual (o local), e não vêem além dos vizinhos imediatos do estado.• Contudo, muitas vezes são os melhores métodos para tratar

problemas reais complexos.

Hill-Climbing: Subida da Encosta ou Gradiente Ascendente • só faz modificações que melhoram o estado atual.

Simulated Annealing: Resfriamento Simulado• pode fazer modificações que pioram o estado temporariamente,

para possivelmente melhorá-lo no futuro.

Page 9: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

9Subida da Encosta: algoritmo

O algoritmo não mantém uma árvore de busca:• guarda apenas o estado atual e sua avaliação• É simplesmente um “loop” que se move na direção crescente

(para maximizar) ou decrescente (para minimizar) da função de avaliação.

Algoritmo: função Hill-ClimbingHill-Climbing (problema) retorna uma solução

variáveis locais: corrente (o nó atual), próximo (o próximo nó)

corrente Faz-NóFaz-Nó(Estado-InicialEstado-Inicial[problema])loop do

próximo sucessor de corrente de maior valor (expande nó corrente e seleciona seu melhor

filho)se ValorValor[próximo] < ValorValor[corrente] (ou >, para minimizar)

então retorna corrente (o algoritmo pára)corrente próximo

end

Page 10: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

10Exemplo de Subida da Encosta: TSP (travel salesman problem)

Cálculo da menor rotas com 5 nós:• estado inicial = (N1, N2, N3, N4, N5)• f = soma das distâncias diretas entre cada nó, na ordem escolhida• operadores = permutar dois nós quaisquer do caminho• restrição = somente caminhos conectados são estados válidos• estado final = nó onde valor de f é mínimo

e3 = {N1, N2, N4, N3, N5}f(e3) = 9

E1 = {N1, N2, N3, N4, N5} f(e1) = 10

e2 = {N2, N1, N3, N4, N5}f(e2) = 14

e4 = {N1, N2, N3, N5, N4}f(e4) = 12

e6 = {N5, N2, N4, N3, N1}f(e6) = 11

e5 = {N4, N2, N1, N3, N5}f(e5) = 10

Page 11: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

11

Subida da Encosta

O algoritmo move-se sempre na direção que apresenta maior taxa de variação para f

Isso pode acarretar em 3 problemas:

1. Máximos locais

2. Planícies (platôs)

3. Encostas e picos

Page 12: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

12

Máximos locais

Definição• Em contraste com máximos globais, são picos mais baixos do

que o pico mais alto no espaço de estados (solução ótima)

O algoritmo pára no máximo local

• a função de avaliação é menor para todos os estados filhos do estado atual, apesar de o objetivo estar em um ponto mais alto

– essa função utiliza informação “local”

• só é permitido movimento com taxa crescente de variação

Page 13: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

13

Platôs (Planícies)

Definição• Uma região do espaço de estados onde a função de avaliação dá o mesmo

resultado– f(n) = f(filhos(n))

o algoritmo pára depois de algumas tentativas

Page 14: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

14

Encostas e Picos

Apesar de existir uma direção que leva ao pico, nenhum dos operadores válidos sozinhos conduz o algoritmo nessa direção• os movimentos possíveis têm taxa de variação zero ou negativa • seria preciso encadear operadores para melhorar a avaliação

Page 15: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

15

Subida da Encosta Iterativa Nos casos acima, o algoritmo chega a um ponto de onde

não faz mais progresso.

Solução: reinício aleatório (random restart)• O algoritmo realiza uma série de buscas a partir de estados

iniciais gerados aleatoriamente.

Cada busca é executada• até que um número máximo estipulado de iterações seja

atingido, ou • até que os resultados encontrados não apresentem melhora

significativa.

O algoritmo escolhe o melhor resultado obtido com as diferentes buscas.

Page 16: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

16

Subida da Encosta: análise

O algoritmo é completo?• SIM, uma vez que cada nó tratado pelo algoritmo é sempre um

estado completo (uma solução)

O algoritmo é ótimo?• TALVEZ, quando iterações suficientes forem permitidas... Mas

custa caro!

O sucesso deste método depende muito do formato da superfície do espaço de estados:• se há poucos máximos locais, o reinício aleatório encontra uma

boa solução rapidamente

• caso contrário, o custo de tempo é exponencial.

Page 17: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

17Resfriamento/Recozimento Simulado (ou Moqueca Simulada)

Este algoritmo é semelhante à Subida da Encosta, porém sem reiniciar a busca• o algoritmo admite retroceder para situações piores com certa

probabilidade que diminui com o tempo• esses retrocessos são chamados de passos indiretos

Apesar de aumentar o tempo de busca, essa estratégia consegue escapar dos máximos locais

Analogia com cozimento de vidros ou metais: • processo de resfriar um líquido gradualmente até ele se solidificar

Page 18: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

18

Resfriamento Simulado

O algoritmo utiliza um mapeamento de resfriamento de instantes de tempo (t) em temperaturas (T)• pode ser uma função ou pares (t,T)

Nas iterações iniciais, não escolhe necessariamente o “melhor” passo, e sim um movimento aleatório:• se a situação melhorar, esse movimento é escolhido;• caso contrário, associa a esse movimento uma probabilidade de

escolha menor do que 1.

Essa probabilidade depende de dois parâmetros, e decresce exponencialmente com a piora causada pelo movimento, e-E/T, onde:

E = Valor[próximo-nó] - Valor[nó-atual]

T = Temperatura

Page 19: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

19Resfriamento Simulado: algoritmo

função Resfriamento-SimuladoResfriamento-Simulado (problema,mapeamento)

retorna uma solução variáveis locais: corrente, próximo, T (temperatura que controla a

probabilidade de passos para trás)

corrente Faz-NóFaz-Nó(Estado-InicialEstado-Inicial[problema])for t 1 to do

T mapeamento[t]Se T = 0

então retorna correntepróximo um sucessor de corrente escolhido aleatoriamente

E ValorValor[próximo] - ValorValor[corrente]Se E > 0

então corrente próximo senão corrente próximo com probabilidade = eE/T

Page 20: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

20

Resfriamento Simulado

Com o tempo (diminuição da temperatura), este algoritmo passa a funcionar como Subida da Encosta.

O algoritmo é ótimo e completo se o mapeamento de resfriamento variar suavemente• isto é, se o mapeamento diminui T suficientemente devagar no

tempo, o algoritmo vai encontrar um máximo global ótimo.

Page 21: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

21

Otimização

Espaço contínuo?

Dados n computadores num plano, determinar onde colocar um hub de forma que todos os computadores fiquem ligados ao hub utilizando o mínimo possível de fio. (http://acm.uva.es/p/v102/10228.html)

Page 22: CIn- UFPE 1 Buscando Soluções Busca iterativa (otimização)

CIn- UFPE

22

Críticas à Busca Heurística

Solução de problemas usando técnicas de busca heurística:• dificuldades em definir e usar a função de avaliação• não consideram conhecimento genérico do mundo (ou “senso

comum”)

Função heurística: compromisso (conflito) entre• tempo gasto na seleção de um nó e• redução do espaço de busca• Achar o melhor nó a ser expandido a cada passo pode ser tão

difícil quanto o problema da busca em geral.