Busca Otimizada Subida da Encosta (Hill Climbing)

Slides:



Advertisements
Apresentações semelhantes
Inteligência Artificial
Advertisements

Unidade VII Algoritmos Genéticos
Inteligência Artificial
Resolução por algoritmos de Busca
OTIMIZAÇÃO DO PROJETO DE REDES URBANAS BASEADO NO PROBLEMA DE STEINER
Redes Neurais Artificiais (RNA): Introdução
Redes Neurais Artificiais (RNA): Estudo de Caso
Redes Neurais Artificiais (RNA): Perceptron
Prática de Alg. Genéticos
Busca com Informação Busca com informação Busca Gulosa Busca A*
Redes Neurais Artificiais (RNA): Aprendizado
Prof. Frederico Brito Fernandes Prática de Algoritmos Genéticos CONTEÚDO (1) Definição do Problema (2) Modelando com AG (3) Sua parte...
Algoritmos Genéticos Problema das 8 Rainhas Algoritmo Genético
Busca sem Informação ou Busca Cega
Disciplina: Inteligência Artificial
RESOLUÇÃO DE PROBLEMAS E PROCURA
Inteligência Artificial
Metaheurísticas Prof. Aurora Pozo Departamento de Informática Universidade Federal do Paraná
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.
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.
Inventando Funções Heurísticas
- Conceitos e termos - Aplicações
Otimização por Colônias de Formigas – ACO (Ant Colony Optimization)
Solução de problemas por meio de busca
Busca com informação e exploração
Capítulo 4 - Russell e Norvig
Capítulo 3 - Russell e Norvig
JOGO DOS OITO A* e IDA*.
Algoritmos Genéticos - Capítulo 10 Representação Numérica
Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Disciplina: Inteligência Artificial
Otimização Prof. Benedito C. Silva IRN UNIFEI
FACENS – Engenharia da Computação Inteligência Artificial Busca.
MC 906 – Inteligência Artificial
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Algoritmos Genéticos em Problemas com Restrições
Introdução aos Agentes Inteligentes Busca Heurística (Informada)
Busca iterativa (otimização)
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
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.
O PROBLEMA DE SCHEDULING EM JOB-SHOP
Busca Combinatorial e Métodos de Heurística
Inteligência Artificial
Satisfação de problemas restritos (CSP)
Busca com Informação e Exploração “Busca heurística”
Trabalho Prático 1 Estudo de Algoritmos de Busca de Soluções em Prolog
INF 1771 – Inteligência Artificial
Jacques Robin Humberto César Brandão de Oliveira
Busca com Informação e Exploração “Busca heurística”
Inventando Funções Heurísticas
Busca em Espaço de Estados Parte2 Algoritmos de 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)
Taís Sineiro Herig Laboratório de Genômica e Expressão / UNICAMP
Algoritmos BioInspirados: Inteligência de Enxames
Ant Colony Optimization Eraylson Galdino da Silva Universidade Federal de Pernambuco Centro de Informática Tópicos Avançados em Inteligência.
DSI – Desenvolvimento de Sistemas Inteligentes
Transcrição da apresentação:

Busca Otimizada Subida da Encosta (Hill Climbing) Simulated Anneling (Têmpera Simulada) Algoritmos Genéticos

Algoritmos de busca local e problemas de otimização Em muitos problemas de otimização o caminho até a solução é irrelevante O estado objetivo é a solução Exemplo: n-rainhas – o que importa é a configuração final e não a ordem em que as rainhas foram acrescentadas Outros exemplos: Projeto de CIs Layout de instalações industriais Escalonamento de jornadas de trabalho Otimização de redes de telecomunicações Roteamento de veículos Outras aplicações

Algoritmos de busca local e problemas de otimização O espaço de estados é o conjunto completo de todas as configurações do problema Operam sobre um único estado corrente, ao invés de vários caminhos Em geral se movem apenas para os vizinhos desse estado Vantagens: Ocupam pouquíssima memória (normalmente constante) Podem encontrar soluções razoáveis em grandes ou infinitos espaços de estados, para os quais os algoritmos sistemáticos são inadequados

Algoritmos de busca local Algoritmos de busca local são úteis para resolver problemas de otimização puros Onde o objetivo é encontrar o melhor estado de acordo com uma função objetivo Normalmente o espaço de estados é considerado como tendo uma topologia onde existe: Uma posição – definida pelo estado Uma elevação – definida pelo valor da função de custo da heurística ou da função objetivo

Algoritmos de busca local Elevação = custo -> objetivo = mínimo global Elevação = função objetivo -> objetivo = máximo global É completo se sempre encontra um objetivo É ótimo se sempre encontra um mínimo/máximo global

Busca de subida de encosta (Hill-Climbing) function HILL-CLIMBING(problema) returns um estado que é o máximo local inputs:problema, um problema local:atual, um nodo vizinho, um nodo atual <- CRIAR-NÓ(ESTADO_INICIAL[problema]) loop vizinho <- um sucessor atual com valor mais alto If VALOR[vizinho] <= VALOR[atual] then return ESTADO[atual] atual <- vizinho end

Busca de subida de encosta (Hill-Climbing) Se move de forma contínua no sentido do valor crescente Termina quando alcança um pico, em que nenhum vizinho tem valor mais alto Não mantém árvore de busca, somente o estado e o valor da função objetivo Não examina antecipadamente valores de estados além de seus vizinhos imediatos (busca gulosa local) É como subir o Everest em meio a um nevoeiro e sofrendo de amnésia

Busca de subida de encosta - problema da n-rainhas Algoritmos de busca local utilização uma formulação de estados completos Cada estado tem n rainhas, 1 por coluna Função sucessora gera todos os estados possíveis Gerados pela movimentação de uma única rainha para outro lugar na mesma coluna A função heurística é o números de pares de rainhas que estão se atacando umas às outras O mínimo global dessa função é zero, que só ocorre em soluções perfeitas

Busca de subida de encosta - o problema da n-rainhas

Hill-climbing - problema Dependendo do estado inicial, pode ficar preso em um máximo local.

Hill-climbing - problema Podem existir platôs fazendo com que em certas áreas a função tenha valores muito próximos.

Hill-climbing - problema Podem existir picos que fazem com que a função de qualidade oscile entre vários máximos locais.

Hill-climbing Formas de resolver o problema de máximos locais Ao atingir o máximo fazer alterações aleatórias para ver se não há estados melhores (random-restart-hill-climbing) Pode-se usar também uma função que testa se o estado é solução em vez de procurar somente pelo máximo Pode usar backtracking para procurar estados melhores Término do algoritmo Número fixo de interações Porcentagem de melhoramento Tempo fixo Se forem permitidas muitas iterações o versão randômica do hill-climbing ira encontrar a solução ótima Boas soluções são encontradas depois de um pequeno número de iterações

Hill-climbing O sucesso deste tipo de busca depende muito da topologia do espaço de estados Muitos problemas reais tem uma topologia mais parecia com uma família de ouriços em um piso plano Com ouriços em miniatura vivendo na ponto de cada espinho de um ouriço, ad infinitum Problemas NP-difíceis têm um número exponencial de máximos locais em que ficam paralisados

Simulated Annealing (Têmpera simulada) Têmpera: processo usado para temperar ou endurecer metais e vidro aquecendo-os a alta temperatura e depois resfriando gradualmente Idéia: Fugir do máximo local permitindo alguns movimentos “ruins” para fora do máximo, mas gradualmente decrescendo seu tamanho e freqüência A temperatura diminui em função do tempo diminuindo a probabilidade de se escolher um estado pior Amplamente utilizado para layout de VLSI, planejamento de linhas aéreas, etc. Annealing – o processo de gradualmente resfriar um liquido ate ele congelar.

Propriedades do Simulated Annealing Na “temperatura” fixa T, a probabilidade de ocupação de um estado pior que o atual é T decrescendo suficientemente lento  sempre alcança o melhor estado Para valores maiores de T, soluções ruins são permitidas T próximo de zero, a probabilidade de se escolher soluções ruins diminui E determina qual é a variação entre a solução corrente e a próxima solução

Simulated Annealing function SIMULATED_ANNEALING(problema, escala) returns um estado solução inputs: problema, um problema escala, um mapeamento do tempo pela temperatura local: atual, um nodo próximo, um nodo T, uma temperatura controlando a probabilidade de dar passos pra baixo atual  CRIAR-NÓ(ESTADO_INICIAL[problema]) for tempo 1 to  T  escala[tempo] if T = 0 then return atual próximo  um sucessor de atual aleatoriamente selecionado E  VALOR[próximo] – VALOR[atual] if E > 0 then atual  próximo else atual  próximo somente com uma probabilidade eE/T end

Busca em feixe local Mantém o controle de k estados ao invés de somente um Começa com k estados gerados aleatoriamente Em cada passo gera todos os sucessores dos k estados Se algum sucessor for o objetivo, termina Se não escolhe os k melhores sucessores e repete a ação É diferente da busca com reinício aleatório porque os k estados compartilham informações entre eles Problema: os k estados podem rapidamente ficar concentrados em uma pequena região do espaço de estados Solução: escolher k sucessores melhores que seus pais ao acaso

Algoritmo Genético Uma variante da busca em feixe estocástica Estado sucessor gerado pela combinação de dois estados pais Analogia com a seleção natural: Busca em feixe estocástica – reprodução assexuada Algoritmo genético – reprodução sexuada