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
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.)
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
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
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
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• ...
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.
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
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
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
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
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
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
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.
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.
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
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
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
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.
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)
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.
Top Related