Você está na página 1de 18

IBT0172: Inteligência

Artificial
Aula: Revisão (Prova 01)

Prof. Sérgio F. da Silva


Departamento de Ciência da Computação
Universidade Federal de Goiás
sergio.f.silva@gmail.com
Busca Não-informada
 Busca em Profundidade;
 Estratégia: expande os nós mais profundos primeiro;
 Implementação: a fronteira da arvore é uma pilha.

 Busca em Largura;
 Estratégia: expande os nós mais rasos primeiro;
 Implementação: a fronteira da arvore é uma fila

 Busca de Aprofundamento Iterativo;


 Estratégia: aplica Busca em Profundidade Iterativamente.
Propriedades?

 Busca de Custo Uniforme;


 Estratégia: expande os nós expandir de menor custo de caminho primeiro;
 Implementação: a fronteira da arvore é uma fila de prioridades
 Prioridade: Menor custo de caminho (g(n)) primeiro;

Aula: Revisão (Prova 01)


Busca Informada
 Busca Bidirecional
 Propriedades?

 Dijkstra
 Busca Gulosa
 ordena nós pela próximidade da meta (forward cost) h(n)
A
C
 Busca A* h=4
h=2
1 h=1

 ordena nós pela soma : f(n) = g(n) + h(n) 3


 Admissibilidade:
 0 ≤ h(n) ≤ h*(n)
G
 Consistência:

Aula: Revisão (Prova 01)


Hill climbing (Subida de Encosta)
 Ideia básica
 Comece em qualquer lugar;
 Repita:
 mova para o melhor estado vizinho
 Até que nenhum vizinho seja melhor que o estado corrente.

 O que é ruim neste método?


 Não há garantia de
encontrar a solução ótima

 O que é bom neste método?


 Eficiente
 Baixo consumo de memória

 Lembrar Propriedades

Aula: Revisão (Prova 01)


Melhoramentos de Hill Climbing
 Stochastic Hill Climbing
 Seleciona movimento de subida aleatório
 First-choice Hill Climbing
 Tentamovimentos um a um e seleciona o primeiro
movimento que resulta em subida
 Randon-restart Hill Climbing
 Reiniciaaleatoriamente após convergência para
ótimo local.
Aula: Revisão (Prova 01)
Simulated Annealing
 Ideia: escapar de máximos locais
por permitir movimentos de
descida;
 Mas torna os movimentos de
descida mais raros com o passar
do tempo

Aula: Revisão (Prova 01)


Algoritmo SA
Algorithm SIMULATED-ANNEALING
Begin
temp = INIT-TEMP;
state= INIT-PLACEMENT; //solução inicial aleatória
while (temp > FINAL-TEMP) do
new_state = PERTURB(state);
ΔC = COST(new_state) - COST(state); % decremento no custo
if (ΔC < 0) then
state = new_state;
else if (RANDOM(0,1) < e-(ΔC/temp)) then
state = new_state;
temp = SCHEDULE(temp);
End. Aula: Revisão (Prova 01)
CSPs
 CSPs são tipos especiais de problemas de busca;
 Estados são atribuições de variáveis;
 Teste de meta é definido por restrições:
 Atribuir todas as variáveis sem violar as restrições;
 Solução básica: backtrack search;
 Melhorias:
 Filtragem (Forward checking, consistência de arco completa, k-
consistência)
 Ordenação (de variáveis e valores);
 Estrutura do problema:
Pode ser explorada a estrutura do grafo de restrições para
desenvolver algoritmos mais eficientes:
 CSP estruturado em árvore: algoritmo de tempo quadrático.

 Melhoramento iterativo por mínimo conflito é


frequentemente efetivo em prática, mas normalmente
falha em problemas difíceis.

Aula: Revisão (Prova 01)


Tree-strutured CSPs
 Algoritmo para CSPs estruturado em árvore:
 Ordenação das variáveis: Escolha uma variável raiz e ordene as variáveis de forma
que pais precede filhos

 Remove inconsistência backward:


x x
 For i=n : 2 RemoveInconsistence(Parent(Xi), Xi)
x
 Atribua valores forward:
 For i=1 : n, Atribua Xi consistentemente com Parent(Xi)

9
Modelando e resolvendo CSPs
 Descrever variáveis e restrições
 Elaborar grafo de restrições
 Resolver o CSP:
 Usa backtrack search
Retrocede quando se torna impossível atribuições de todas as variáveis.
 Podeusar heurísticas para seleção de variáveis e de valores de
domínio
 Normalmente usamos forward checking ou consistência de arco
completa para propagação de restrições
 Dica para prova: mostrar resolução passo a passo através de uma
tabela indicando o que é feito a cada passo.

Aula: Revisão (Prova 01)


Algoritmos Genéticos
População Inicial

Avaliação da Aptidão

sim
Critério de Parada Solução
não
Seleção
geração ++

Operações genéticas
Crossover (Pc)

Mutação (Pm)

Avaliação da Aptidão

Reinserção
Aula: Revisão (Prova 01)
Aplicando algoritmos genéticos a problemas

 Codificação de indivíduo
 Geração da população inicial
 Operador de seleção para cruzamento
 Operador de Cruzamento
 Operador de Mutação
 Critério de parada
 Normalmente se usa seleção dos Tp melhores entre país
e filhos para a próxima geração, contudo pode ser usado
outro operador de reinserção.
Aula: Revisão (Prova 01)
Algoritmo ACO básico
Entrada: uma instância P de um modelo de problema de otimização combinatorial

InicializaValoresFeromonio( )
sbs  NULL
Enquanto as condições de parada não são satisfeitas faça
Giter  
Para j=1, …, nf faça
s  ConstroiSolução( )
Se s é uma solução válida então
s  BuscaLocal(s) {opcional}
Se ( f(s) < f(sbs) ou (sbs == NULL) então sbs  s Fim Se
Giter  Giter  {s}
Fim Se
Fim Para
AplicaAtualizaçãoFeromonio ( , Giter, sbs)
Fim Enquanto
Saída: melhor solução até o momento

Aula: Revisão (Prova 01)


Aplicação
 Definir Mapa de Feromônio através de um grafo.
 Definir função de avaliação das soluções.
 Definir as restrições do problema
 Saber discutir ou ilustrar como cada formiga
contrói uma solução com base no mapa de
feromônio e nas restrições
 Saber discutir, ilustar ou formular como é feita a
atualização de feromônio
Aula: Revisão (Prova 01)
Particle Swarm Optimization (PSO)
t=0
Xi(j) randômico
Vi(j) randômico
Xi(melhor) Xi(t)
Xv-i(melhor)  max(Xj(melhor)),  Xj  Vizinhança(Xi)
Enquanto (meta não for encontrada ou número máximo de iterações não for
esgotado)
t = t + 1;
Atualiza velocidade;
Atualiza posição;
Calcule Xi(melhor);
Calcule Xv-i(melhor);
Fim Enquanto
Mostre as coordenadas do pássaro mais apto: max(X v_i(melhor))

Aula: Revisão (Prova 01)


Particle Swarm Optimization (PSO)
 Atualização de parâmentos entre iterações:
 Atualização da velocidade
Fator de atração em
Fator de
direção à melhor solução
inércia
obtida até o momento
Vi(t+1) = αVi(t) + rand()c1(Xi(melhor) - Xi(t)) + pelo pássaro i, (Xi(melhor))

rand()c2(Xv-i(melhor) - Xi(t))

Fator de atração em
 Atualização da posição direção à melhor solução
obtida até o momento
Xi(t+1) = Xi(t) + Vi(t+1) por qualquer pássaro na
vizinhança do pássaro i,
Aula: Revisão (Prova 01) (Xi(melhor))
Exercício PSO
 Conforme o algoritmo Particle Swarm Optimization (PSO), qual a próxima
coordenada do pássaro P i dado a sua configuração instantânea e os
parâmetros do algoritmo PSO a seguir:
 Xi = (0.5, -0.3, 0.8)
 Vi = (0.2, 0.3, -0.5)
 Xi(melhor) = (0.1, 0, 0.5)
 Xv-i(melhor) = (0.2, 0.2, 0.6)
 Parâmetros do algoritmo PSO: α=0.2, c1 = c2 = 2 e rand() = 0.5

Aula: Revisão (Prova 01)


IBT0172: Inteligência
Artificial
Aula 02: Algoritmos de busca
clássicos
FIM Prof. Sérgio F. da Silva
Departamento de Ciência da Computação
Universidade Federal de Goiás
sergio.f.silva@gmail.com

Você também pode gostar