19
Prof. Frederico Brito Fernandes [email protected] 1. 1. Subida da Encosta Subida da Encosta (Hill Climbing) (Hill Climbing) 2. 2. Simulated Anneling Simulated Anneling (Têmpera Simulada) (Têmpera Simulada) 3. 3. Algoritmos Algoritmos Genéticos Genéticos Busca Busca Otimizada Otimizada

Prof. Frederico Brito Fernandes [email protected] 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Embed Size (px)

Citation preview

Page 1: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Prof. Frederico Brito [email protected]

1.1. Subida da Encosta (Hill Subida da Encosta (Hill Climbing)Climbing)

2.2. Simulated Anneling Simulated Anneling (Têmpera Simulada)(Têmpera Simulada)

3.3. Algoritmos GenéticosAlgoritmos Genéticos

BuscaBuscaOtimizadaOtimizadaBuscaBusca

OtimizadaOtimizada

Page 2: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 2/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 3: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 3/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 4: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 4/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 5: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 5/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 6: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 6/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

Busca de subida de encosta (Hill-Climbing)

function HILL-CLIMBING(problema) returns um estado que é o máximo local

inputs:problema, um problemalocal:atual, um nodo

vizinho, um nodo

atual <- CRIAR-NÓ(ESTADO_INICIAL[problema])

loopvizinho <- um sucessor atual com valor mais altoIf VALOR[vizinho] <= VALOR[atual] then

return ESTADO[atual]atual <- vizinho

end

Page 7: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 7/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 8: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 8/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 9: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 9/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 10: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 10/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

Hill-climbing - problema

• Dependendo do estado inicial, pode ficar preso em um máximo local.

Page 11: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 11/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

Hill-climbing - problema

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

Page 12: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 12/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

Hill-climbing - problema

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

Page 13: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 13/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 14: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 14/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 15: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 15/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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.

Page 16: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 16/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

eΔET

Page 17: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 17/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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 atualpróximo um sucessor de atual aleatoriamente selecionadoE VALOR[próximo] – VALOR[atual]if E > 0 then atual próximoelse atual próximo somente com uma probabilidade eE/T

end

Page 18: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 18/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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

Page 19: Prof. Frederico Brito Fernandes asper@fredbf.com 1.Subida da Encosta (Hill Climbing) 2.Simulated Anneling (Têmpera Simulada) 3.Algoritmos Genéticos Busca

Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 19/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial

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