Você está na página 1de 41

Escola Politécnica da USP - Departamento de Enga Mecatrônica

PMR 3510
Aula 5 - Métodos de Busca
Informada
Prof. José Reinaldo Silva

Agent Sensors
Percepts

Environment

Actions
Actuators
Como representar uma árvore usando listas?

Uma árvore pode ser de nida de forma recursiva


como uma lista onde a cabeça é a raiz e o restante
da lista é composta das sub-árvores (também uma
lista).
A
[A, [B], [C, [F], [G]], [D]],

B C D ou simplesmente

F G [A, B, [C, F, G], D].

Escola Politécnica da USP - Departamento de Enga Mecatrônica


fi
Como representar um grafo?

[[a,b],[a,c],[b,c],[c,d]]

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Escola Politécnica da USP - Departamento de Enga Mecatrônica
Escola Politécnica da USP - Departamento de Enga Mecatrônica
Seja qual for o algoritmo (em profundidade,
largura, ou outro) a busca sobre árvores tem a
seguinte característica:

b
d

S = (bd - 1)/(b - 1) ~ O(bd)

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Backtracking
Busca em profundidade (Depth-first Search, DFS)
Pilha

Escola Politécnica da USP - Departamento de Enga Mecatrônica


O uso do “stack" é importante
para o backtracking.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Vamos tomar como exemplo o jogo
de tiles com os estados inicial e
final mostrados abaixo.

2 8 3 1 2 3

1 6 4 8 4

7 5 7 6 5

Escola Politécnica da USP - Departamento de Enga Mecatrônica


2 movimentos possíveis
3 movimentos possíveis
4 movimentos possíveis

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Espaço de estados para
busca em largura

Escola Politécnica da USP - Departamento de Enga Mecatrônica


O processo de geração e busca no
espaço de estados pode ser
“melhorado" inserindo informações
sobre esse processo: uma heurística.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


A “regra do dedão” surgiu na Inglaterra e
motivou a medida em polegadas. O termo
foi estendido para todo conhecimento
(tácito)derivado da experiência, sem
justificativa formal.
Escola Politécnica da USP - Departamento de Enga Mecatrônica
Quais seriam essas “rules o thumb”?

Custo
Escola Politécnica da USP - Departamento de Enga Mecatrônica
A heurística ajuda a escolher os
estados mais promissores para
gerar o espaço de estados (e fazer a
busca).

2 8 3 1 2 3

1 6 4 8 4

7 5 7 6 5

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Uma heurística simples consiste
em avaliar para cada estado
quantos tiles estão “fora do lugar”
em relação ao estado final.

2 8 3 1 2 3

1 6 4 8 4

7 5 7 6 5

Escola Politécnica da USP - Departamento de Enga Mecatrônica


2 8 3
1 6 4
7 5

0+4

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Se movemos o “6”, por exemplo…

2 8 3
1 6 4
7 5

0+4
1+3

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Árvore de busca informada

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Função de avaliação da busca
informada

f(n) = g(n) + h(n)

Fuc. Avaliação = custo + heurística

Escola Politécnica da USP - Departamento de Enga Mecatrônica


No caso do sistema que busca rotas
em uma cidade uma função custo
interessante seria a distância em
linha reta entre as cidades.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Escola Politécnica da USP - Departamento de Enga Mecatrônica
Uma heurística é apenas uma conjectura informada sobre
o próximo passo a ser tomado na solução de um problema.
A heurística é baseada na experiência e na intuição. Uma
heurística pode levar um algoritmo de busca a uma
solução sub-ótima ou, inclusive, levá-lo a não conseguir
encontrar uma solução.
Escola Politécnica da USP - Departamento de Enga Mecatrônica
Escola Politécnica da USP - Departamento de Enga Mecatrônica
Escola Politécnica da USP - Departamento de Enga Mecatrônica
Greedy best-first

Algoritmos de busca que


exploram vizinhança e
proximidade ao estado
final baseado em uma
heurística são chamados
greedy best-first.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Podemos usar a
distância linear de
cada cidade da
Romênia até
Bucharest como
critério de escolha da
rota.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Escola Politécnica da USP - Departamento de Enga Mecatrônica
SIPROV (Sistema Inteligente para Programação de Vôo)
No pior caso teremos um
algoritmos de complexidade
O(|V|), se tivermos que
visitar todos os vértices da
árvore. Uma boa heurística
pode reduzir isso para uma
busca logarítmica.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Heurísticas
Uma heurística é dita admissível se, para cada
nó, retorna um valor sempre menor ou igual à
“proximidade real" ao estado final.

No exemplo do jogo de tiles h(n) é sempre menor ou


igual ao número de movimentos necessários para
chegar ao estado final. No caso do algoritmo de
roteamento de veículos, a distância em linha reta é
sempre menor ou igual à distância real seguindo a
estrada entre as cidades.
Escola Politécnica da USP - Departamento de Enga Mecatrônica
(h(n) é consistente) ⇒ (h(n) é admissível)

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Soluções quase-ótimas

Para problemas de grande porte, uma solução baseada em uma


função de avaliação estrita e heurísticas consistentes pode levar
a um coeficiente de expansão muito grande e a um número
elevado de nós na árvore de busca. Uma possibilidade é
estabelecer um peso que flexibilize a heurística h(n),

f(n) = g(n) + W.h(n)

Dando origem a um algoritmo de busca informada ponderado.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Escola Politécnica da USP - Departamento de Enga Mecatrônica
Como criar uma “boa heurística”?

O maior obstáculo para uma boa performance na


busca informada é o tamanho do espaço de estados.
Um jogo simples de tiles (8-puzzle) tem 181.400
estados. Se o jogo tiver um grid maior, o 15-puzzle,
teremos mais de um trilhão. Portanto a alternativa é
não gerar o espaço de estados previamente, e buscar
heurísticas mais fortes, talvez a soma de várias
hi(n).

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Usando novamente o 8-puzzle como exemplo,
podemos melhorar a heurística considerando, além
do número de tiles fora do lugar a distância
Manhattan, isto é, quantos movimentos seriam
necessários para por o tile no lugar.
1 2
3

2 3

2
2 3

Escola Politécnica da USP - Departamento de Enga Mecatrônica


1 2
3
2 3
2
2 3
1 2 3 4
2 2
2 5 6 3

h1(1)+h2(1)= 8+19 h1(1)+h2(1)= 8+17 h1(1)+h2(1)= 8+17 h1(1)+h2(1)= 8+17

Laboratório de Design de Sistemas PMR-3510


Escola Politécnica da USP - Departamento de Enga Mecatrônica
Resumindo…

Como discutimos na aula passada, a aplicação


de algoritmos de busca podem contribuir para
que agentes “resolvam problemas” de forma
direta, sem uso de “inteligência” ou modelos
cognitivos, exceto pelo uso de “rules of the
thumb”.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Na próxima aula vamos resumir como usar os
algoritmos de busca em aplicações práticas e
jogos e iniciar a discussão sobre o uso de
conhecimento.

Escola Politécnica da USP - Departamento de Enga Mecatrônica


Grupo 9
Formação dos grupos
Grupo 1 Grupo 5
Grupo 10

Grupo 2 Grupo 6 Grupo 11

Grupo 12
Grupo 3 Grupo 7
Grupo 13

Grupo 8 Grupo 14
Grupo 4

Deadline: 16 de setembro, 0:00h


Escola Politécnica da USP - Departamento de Enga Mecatrônica
Até a próxima aula!

Escola Politécnica da USP - Departamento de Enga Mecatrônica

Você também pode gostar