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
9
Subida 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-Climbing (problema) retorna uma solução
variáveis locais: corrente (o nó atual), próximo (o próximo nó)
corrente  Faz-Nó(Estado-Inicial[problema])
loop do
próximo  sucessor de corrente de maior valor (expande
nó corrente e seleciona seu melhor filho)
se Valor[próximo] < Valor[corrente] (ou >, para minimizar)
então retorna corrente (o algoritmo pára)
corrente  próximo
end
CIn- UFPE
Exemplo de Subida da Encosta:
TSP (travel salesman problem)
10
 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
E1 = {N1, N2, N3, N4, N5}
f(e1) = 10
e2 = {N2, N1, N3, N4, N5}
f(e2) = 14
e3 = {N1, N2, N4, N3, N5}
f(e3) = 9
e5 = {N4, N2, N1, N3, N5}
f(e5) = 10
e4 = {N1, N2, N3, N5, N4}
f(e4) = 12
e6 = {N5, N2, N4, N3, N1}
f(e6) = 11
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
Resfriamento/Recozimento Simulado
(ou Moqueca Simulada)
17
 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-DE/T, onde:
DE = Valor[próximo-nó] - Valor[nó-atual]
T = Temperatura
CIn- UFPE
19
Resfriamento Simulado: algoritmo
 função Resfriamento-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ó(Estado-Inicial[problema])
for t  1 to  do
T  mapeamento[t]
Se T = 0
então retorna corrente
próximo  um sucessor de corrente escolhido aleatoriamente
DE  Valor[próximo] - Valor[corrente]
Se DE > 0
então corrente  próximo
senão corrente  próximo com probabilidade = eDE/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.
CIn- UFPE
Download

CIn- UFPE