Busca iterativa (otimização)

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

Algoritmos em Grafos.
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Inteligência Artificial
Inteligência Artificial
Fluxo em Redes Prof. Ricardo R. Santos.
OTIMIZAÇÃO DO PROJETO DE REDES URBANAS BASEADO NO PROBLEMA DE STEINER
Programação Não Linear
Inteligência Artificial
Inteligência Artificial
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Meta - heurísticas Prof. Aurora
GRASP Greedy Randomized Adaptative Search Procedure
Busca informada (heurística) Parte 2
PROBLEMA DE ROTEAMENTO DE VEíCULOS COM DIVISÃO DE ENTREGA
1 Inventando Funções Heurísticas Como escolher uma boa função heurística h? h depende de cada problema particular. h deve ser admissível não superestimar.
1 Busca Heurística - Informada Estratégias de Busca Exaustiva (Cega) encontram soluções para problemas pela geração sistemática de novos estados, que são.
Mário Biague V Oficina: "Como Considerar Variáveis Sociais, Ambientais e Políticas no Planejamento Energético" Análise de portfólio de recursos energéticos.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto
Inteligência Computacional para Otimização
Busca Online Alexandra Barros Geber Ramalho. Busca Offine x Busca Online Busca Offline (ou planejamento clássico) –Computa a solução (do estado inicial.
Busca Heurística - Informada
Busca Cega (Exaustiva)
Busca Heurística - Informada
Inventando Funções Heurísticas
Busca com informação e exploração
Buscando Soluções Busca Heurística.
Inteligência Artificial
INF 1771 – Inteligência Artificial
Busca Competitiva - MiniMax Jogo-da-Velha
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Meta - heurísticas Prof. Aurora
Heurísticas, algoritmos gulosos e aproximações
Aurora Pozo– UFPR – Meta-Heurísticas
Otimização por Colônia de Formigas (ACO)
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Busca com informação e exploração
Heurísticas, algoritmos gulosos e aproximações
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Introdução aos Agentes Inteligentes Busca Heurística (Informada)
Busca Heurística Preâmbulo O que é um problema em IA?
Introdução aos Agentes Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Algoritmos de Busca Local
Tópicos Avançados em Inteligência Artificial
Inteligência Artificial
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Técnicas de Busca Heurística Problemas da IA complexos demais para serem solucionados por técnicas diretas: criam-se técnicas de busca aprorpiados; chamados.
Resolução de Problemas por meio de Busca
Navegação e Controle de Robôs Móveis PLANEJAMENTO DE CAMINHOS.
Construção e Análise de Algoritmos
Busca Combinatorial e Métodos de Heurística
Resolução de Problemas de Busca
Busca com Informação e Exploração “Busca heurística”
Jacques Robin Humberto César Brandão de Oliveira
Inventando Funções Heurísticas
Busca Competitiva Disciplina: Inteligência Artificial
Principais Tópicos Introdução Métodos de busca Busca cega
Ao final desta aula, a gente deve...
Inteligência Artificial
Computação Evolutiva Nome dado ao estudo de algoritmos cuja inspiração é o processo de evolução natural das espécies. Origem: trabalho de um pesquisador.
1 Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização)
Busca Cega (Exaustiva) e Heurística
Estratégias Busca Heurística (Informada)
Sistemas Inteligentes Busca Cega (Exaustiva)
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Transcrição da apresentação:

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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.

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.

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

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

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

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.

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)

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.