Escolar Documentos
Profissional Documentos
Cultura Documentos
15
366
▪ Dominância: h1 ≥ h2 se
n h1(n) h2(n)
▪ Em geral, valores maiores são melhores desde que ambas sejam admissíveis
▪ A heurística de custo zero é bem ruim (o que o algoritmo A* faz com h=0?)
▪ A heurística “exata” é muito boa, mas é muito cara de encontar!
▪ O que acontece se tivermos duas heurística e nenhuma domina a outra?
▪ Criamos uma nova heurística, pegando o máximo de cada uma:
h(n) = max( h1(n), h2(n))
▪ Max de heurísticas admissíveis também é admissível e domina ambas!
Consistência das Heurísticas
▪ Ideia central: custos estimados da heurística ≤ custos reais
▪ Consequências da consistência:
G ▪ O valor da função f ao longo de um caminho nunca diminui
▪ Busca em grafo:
▪ A* é ótima se heurística é consistente
▪ UCS ótima (h = 0 é consistente)
g
h
Algoritmos de Busca Local
• Nos problemas de busca anteriores, queríamos explorar os caminhos pelo espaço de busca, como um caminho de
Arad para Bucareste.
• Algumas vezes só nos importamos com o estado final, e o caminho até o objetivo é irrelevante.
• 8-rainhas: o que importa é a configuração final das oito rainhas (Este problema possui 64 posições no tabuleiro
onde podemos combinar 8 rainhas ou seja, podemos arrumar o tabuleiro de
64 64!
= = 4.42 𝑏𝑖𝑙ℎõ𝑒𝑠 𝑑𝑒 𝑒𝑠𝑡𝑎𝑑𝑜𝑠‼‼!
8 8! 64 − 8 !
Função objetivo
▪ Encontrar máximo global
Função de custo
▪ Encontrar um mínimo global
Hill Climbing
▪ Ideia geral simples:
▪ Inicia em qualquer lugar
▪ Repete: move para o melhor estado vizinho
▪ Se não existem vizinhos melhores, termina
Algoritmo Hill-climbing
função HILL-CLIMBING(problema) retorna um estado
atual ← problema.estado-inicial
loop faça
vizinho ← um successor de atual com valor mais alto
se vizinho.valor ≤ atual.valor então
retorna atual.estado
atual ← vizinho
Função de custo heurística para n-rainhas
▪ Objetivo: n rainhas no tabuleiro sem conflitos, ou seja, nenhuma rainha
atacando outra
▪ Estados: n rainhas no tabuleiro, uma por coluna
▪ Ações: mover uma rainha na sua coluna
▪ Valor da função heurística: número de conflitos
Hill Climbing
• Também chamada de busca gulosa local porque captura um bom estado vizinho sem
decidir com antecedência para onde irá em seguida.
• Pode progredir com grande rapidez em direção a uma solução porque normalmente é
bem fácil melhorar um estado ruim.
• Ex: bastam dois passos no exemplo das rainhas para alcançar o estado que tem ℎ = 0 e
é uma solução.
Problemas de Hill Climbing
▪ Máximos locais: pico mais alto que
cada um de seus estados vizinhos,
embora seja mais baixo que o
máximo global.
8
X7 9
X7 10
9 X8
9 9
8 9 10
9 10
8 10
7 9 9
X6 X5
6
X7 8
X3 9
X7 9
Problema da Busca em Feixe Local
▪ Estados podem ficar rapidamente concentrados em uma
pequena região do espaço de estados, sem nunca sair de um
mínimo local (parecido com hill climbing)
▪ Busca em feixe estocástica:
▪ Escolher k sucessores de forma aleatória, com a
probabilidade de escolher um determinado sucessor
que seja função crescente do seu valor.
▪ Qual outra teoria conhecida isso lembra vocês?
▪ Evolução!
Algoritmos Genéticos
▪ Variante da busca em feixe estocástica
▪ Motivados pela metáfora da seleção natural na biologia:
▪ Existe uma população de indivíduos (estados)
▪ Indivíduos mais aptos (valores melhores) produzem filhos (estados
sucessores) em um processo de cruzamento
▪ Filhos povoam próxima geração
▪ Mutações podem ocorrer nos genes (valores dos estados)
▪ Estados sucessores são gerados pela combinação de estados pais,
ao invés de gerados a partir da modificação de um único estado
Representando 8-Rainhas
▪ Cada estado armazena a posição da rainha em uma coluna
▪ Estado = vetor
▪ Cada posição do vetor = uma coluna
▪ Valor = linha da rainha
1 6 2 5 7 4 8 3
Algoritmos Genéticos
▪ Função de adaptação: retorna valores mais altos para estados melhores (mais próximos
da solução)
▪ Cruzamento: entre p pais (geralmente p = 2) com maior probabilidade para indivíduos
de maior valor na função de adaptação.
▪ Ponto de corte aleatório para cruzamento dos valores.
▪ Mutação: flip de dígito para filho aleatoriamente para alguma pequena probabilidade
independente.
Algoritmos Genéticos
Descendentes
Modifica uma
rainha ao acaso
Algoritmos Genéticos - Possibilidades
▪ Seleção:
▪ selecionar entre todos os indivíduos com probabilidade proporcional à
sua pontuação de aptidão;
▪ Outra possibilidade é selecionar aleatoriamente n indivíduos (n > ρ) e
depois selecionar os ρ mais aptos como pais.
▪ Próxima geração:
▪ Apenas a descendência recém-formada.
▪ Elitismo: incluir alguns pais da geração anterior com melhor pontuação.
Garante que a aptidão geral nunca diminuirá com o tempo.
▪ Abate: todos os indivíduos abaixo de determinado limiar são
descartados, pode levar a uma aceleração do algoritmo.
Algoritmos Genéticos
• Quase sempre, a população é variada no início do processo
• O cruzamento costuma dar grandes passos no espaço de estado no início
do processo de pesquisa (como na têmpera simulada).