A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Busca iterativa (otimização)

Apresentações semelhantes


Apresentação em tema: "Busca iterativa (otimização)"— Transcrição da apresentação:

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

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

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.)

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

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

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

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

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.

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

10 Exemplo 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 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 e4 = {N1, N2, N3, N5, N4} f(e4) = 12 e5 = {N4, N2, N1, N3, N5} f(e5) = 10 e6 = {N5, N2, N4, N3, N1} f(e6) = 11

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

12 Máximos locais Definição O algoritmo pára no máximo local
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

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

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

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.

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.

17 Resfriamento/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

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

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

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.

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)

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.


Carregar ppt "Busca iterativa (otimização)"

Apresentações semelhantes


Anúncios Google