Vous êtes sur la page 1sur 17

Page 1

Metodologias de Inteligncia Artificial


2005/2006
Mtodos de Resoluo de Problemas
2
MIA - 2005/06
Sistemas de Produes
Paradigma bsico dos Sistemas de Produes
CONHECIMENTO
DADOS
OPERADORES
ESTRATGIAS
Page 2
3
MIA - 2005/06
Mtodos de Resoluo de Problemas
Descrio do problema
atravs de um espao de estados
Representao do conhecimento
atravs da lgica e de estruturas de informao
Resoluo do problema
movimentao no espao de estados da configurao inicial configurao
final
Arquitectura do sistema computacional
uso de Sistemas de Produes, mantendo separadamente os Factos (numa ou
vrias bases de dados), os operadores (regras), e o algoritmo de controlo
4
MIA - 2005/06
Mtodos de Pesquisa
Mtodos no informados
No possuem informao sobre n passos ou custo at soluo
Mtodos informados
Aplicao de funes dependentes do conhecimento do problema: funes
heursticas
Direco de controlo
Top Down ou encadeamento inverso
Bottom Up ou encadeamento directo
Bidireccional
Estratgia de controlo
depth first ou primeiro em profundidade
breadth first ou primeiro em largura
Page 3
5
MIA - 2005/06
Mtodos de pesquisa
Mtodos de pesquisa
Gerar e Testar - no informado
Subir a colina (hill climbing) - informado
Primeiro em Largura - no informado
Ramifica e Limita (Branch and Bound) - no informado
Arrefecimento simulado - informado
Satisfao de Restries - no informado
O melhor-primeiro - informado
Gerar e Testar
Gera a possvel soluo e testa-a comparando com o objectivo.
Gerao sistemtica: primeiro em profundidade com "backtracking.
Combina-se com outras estratgias.
6
MIA - 2005/06
Subir a colina
Subir a colina: processo irrevogvel
Gera-se e testa-se, mas recebe-se "feedback" indicando qual a direco
aconselhvel para o prximo movimento.
Usa-se conhecimento Local
Procedimento:
1. Gera-se o primeiro estado
2. SE soluo RETORNAR
SENO Aplicar a esse novo estado os operadores possiveis
3. Para cada novo estado
Teste
SE soluo RETORNAR
SENO
escolha o estado mais prximo da soluo como o novo estado
VOLTAR A 2
Problemas: funes no "bem comportadas" com mximos locais e "planaltos"
tambm usado como
mtodo de optimizao
Page 4
7
MIA - 2005/06

Soluo
D
i
s
t

n
c
i
a

`
a

s
o
l
u

o
Curvas dos passos
necessrios para
obtr a soluo
N de passos (operadores)
Funo "Bem-comportada"
Funo "mal-comportada"
Subir a colina
8
MIA - 2005/06
Subir a colina
Dois tipos de subir a colina (hill climbing)
1. Subir-a-colina bsico:
Gera um a um os sucessores do estado actual
Encontrado um mais prximo da soluo que o Estado Actual, Selecciona-o
2. Asceno ngreme (Steep ascendent):
Gera todos os sucessores possveis
Selecciona o mais prximo da soluo
Page 5
9
MIA - 2005/06
Subir a colina
inicio(a).
objectivo(x).
filho(a,b).
filho(a,d).
filho(a,c).
filho(b,e).
filho(b,f).
filho(b,g).
filho(c,h).
filho(d,i).
filho(e,j).
estimativa(b,4).
estimativa(c,5).
estimativa(d,6).
estimativa(e,3).
scolina(Ef,[]) :- objectivo(Ef).
scolina(Ea,[Ea|R]) :- suc(Ea,ESucs),
( ESucs==[], write('insucesso')
; select(ESucs,Eseg), scolina(Eseg,R)
).
suc(Ea, Esuc) :- findall( F, filho(Ea,F), Esuc).
select([E1],E1).
select([E1,E2|OEs],Eseg):-
estimativa(E1,C1),
estimativa(E2,C2),
( C1<C2, select([E1|OEs],Eseg)
; select([E2|OEs],Eseg)
).
10
MIA - 2005/06
Primeiro em largura
Primeiro em largura: todos os ns em cada nvel so explorados.
Vantages:
Encontra sempre a soluo se existir.
E encontra a melhor em comprimento do passo.
Problema: tem de guardar todos os ns do nvel.
Implica mais memria, trabalhoso.
Havendo muitos passos que levam a solues, prefervel a estratgia "primeiro em
profundidade
"pesquisa em feixe" ("beam search")
mtodo semelhante ao "primeiro em largura" mas, em cada nvel no se
expandem todos os ns mas somente alguns seleccionados (ou melhores) -
mtodo informado
Page 6
11
MIA - 2005/06
A
B C
S
D
E
F
G
3
4
4
4
2 4
3
5
5
Branch and Bound
Ramifica e Limita (Branch and Bound)
encontra passos ptimos
Em cada nvel da rvore continuado o passo at a o de menor custo (mais
curto).
Comparam-se de novo todos os passos e volta-se a estender o de menor custo
at a.
Repete-se o processo at o objectivo ser encontrado.
O primeiro passo a chegar ao objectivo o mais curto.
O exemplo representa um mapa
de estradas e respectivas distncias.
O problema encontrar o caminho
mais curto entre S e G
12
MIA - 2005/06
Branch and Bound
Algoritmo bsico de BRANCH AND BOUND (ramifica-e-limita)
1. Formar uma Fila de passos parciais (caminhos de pesquisa da soluo)
A Fila inicial tem comprimento 1 (estado inicial).
2. AT Fila vazia OU Objectivo atingido
determinar se o 1 Passo da Fila = Objectivo
a. SE sim ENTO ir para 3
b. SE no
i. retirar 1 Passo da Fila
ii. formar novos Passos a partir do removido aplicando os operadores possveis
iii. acrescente os novos Passos na Fila
iv. ordene crescentemente pelos custos acumulados
3. SE estado Objectivo alcanado ENTO sucesso /* pode ter de analizar passos com
SENO falha /* menor custo
Page 7
13
MIA - 2005/06
Arrefecimento Simulado
Arrefecimento Simulado ("Simulated Annealing")
("annealing" o processo de arrefecer um metal liquefeito at solidificar)
Funo SIMULATED-ANNEALING(problema, variao) retorna soluo
inputs: descrio do problema
variao (mapeamento de tempo para "temperatura")
prximo, corrente : nodos
T a "temperatura" controlando a probabilidade dos passos descendentes
corrente <-- gera_prximo(estado_inicial[problema])
PARA t = 1 ATE FAZER
T <-- variao[t]
SE T = 0 ENTAO retorna corrente
prximo <-- qualquer estado sucessor de corrente
E <-- valor[proximo] - valor[corrente]
SE E > 0 ENTAO corrente <-- prximo
SENAO corrente <-- prximo com probabilidade e
E/T
Se variao baixa T suficientemente devagar, o algoritmo encontrar um ptimo global.
tambm usado como
mtodo de optimizao
14
MIA - 2005/06
Arrefecimento Simulado
O Algoritmo arrefecimento simulado uma variao do subir a colina em
que, no incio do processo de pesquisa da soluo, alguns movimentos
descendentes (mais afastadas da soluo) podem ser gerados.
Torna assim a pesquisa mais independente do ponto inicial.
Dever-se- dizer que se desce um vale em vez de subir a colina.
similar a uma fuso de metais que depois se arrefece baixando o nvel de
energia.
A aceitao de um novo estado que se afaste da soluo feita com uma
probabilidade e
E/T
.
A probabilidade depende ainda de uma temperatura que vai diminuindo com
o tempo. Com valores altos da temperatura, os passos piores tm mais
probabilidade de serem executados.
Page 8
15
MIA - 2005/06
O melhor-primeiro
O melhor-primeiro
Selecciona o nodo mais promissor de um conjunto deles usando uma funo
heurstica para a avaliao.
uma pesquisa em grafo construindo uma rvore de prova.
Combina as estratgias de "primeiro em profundidade" com "primeiro em
largura".
Aplicao de funes dependentes do conhecimento do problema: funes
heursticas
minimizao do custo do passo Vs minimizao do custo da pesquisa desse passo.
o poder heurstico usado para ordenar os ns a pesquisar.
ex: puzzle de 8 : f(n)=p(n)+c(n) p-profundidade
Se c(n)=0 --> "primeiro em largura"
c - nmero de erros
Usa-se uma "mtrica" de algum modo ligada distncia para a soluo.
16
MIA - 2005/06
O melhor-primeiro
Mtodos o melhor-primeiro:
algoritmo ganancioso usa h*(n)
algoritmo do custo uniforme usa g(n)
algoritmo A* usa f*(n) = g(n) + h*(n)
Comparao entre mtodos sistemticos p-em-l , p-em-p , c-uniforme
n s s completo
n s s ptimo
b
*m
b
d
b
d
espao
b
m
(ou b
d
se b
d
<b
m
) b
d
b
d
tempo
p-em-p c-uniforme p-em-l
b : factor de ramificao
d : profundidade da soluo
m : profundidade mxima
Page 9
17
MIA - 2005/06
Algoritmo A*
Algoritmo A*
Para escolher o melhor primeiro numa pesquisa em grafo.
Cada n:
estado + valor da funo heurstica + apontador para o pai + sucessores
2 listas de ns:
LABERTA: ns j gerados, com as respectivas funes de avaliao mas no
examinados
LFECHADA: ns j examinados
Funo heurstica f* = g + h*
g : custo do passo at ao n corrente
h* : estimao do custo do passo do n corrente soluo
18
MIA - 2005/06
Algoritmo A*
ALGORITMO A*
LABERTA <-- estado inicial ; LFECHADA <-- vazia
ATE encontrar Soluo FAZER
SE LABERTA = vazia ENTAO retornar Falso
Retirar de LABERTA o n N mais promissor (melhor f*)
Colocar N em LFECHADA
SE N = Soluo retornar (N ou passo)
SENAO gerar sucessores de N
PARA CADA sucessor de N FAZER
SucN = SucessorN
SucN aponta para N
Computar g(SucN) = g(N) + custo do passo de N a SucN
Page 10
19
MIA - 2005/06
Algoritmo A*
SE SucN LABERTA
comparar os valores de g respectivos
SE g(SucN) < g(n antigo) ENTAO
Refazer apontador do n antigo para N /*novo pai*/
Registar novo custo g(n antigo) e novo f* (n antigo)
/*SENAO nada*/
SENAO */ LABERTA*/
SE SucN LFECHADA ENTAO /*compare g (SucN) com g (n antigo) */
SE g (SucN) < g(n antigo) ENTAO
Refazer apontador do n antigo para N
Registar novo custo g (n antigo) e f* (n antigo)
Propagar a melhoria para sucessores de N
/*SENAO nada*/
/*SENAO nada*/
SENAO /*SucN no pertence s listas*/
junte SucN a LABERTA
computar f*(SucN) = g(SucN) + h*(SucN)
FIM
20
MIA - 2005/06
Algoritmo A*
Como f* tambm depende de g, em cada nvel no se escolhe o mais promissor
mas a melhor combinao da promessa com o melhor passo
No algoritmo A*, h* deve subestimar h para encontrar passo de custo ptimo.
Se h*=0, g=cte, primeiro em largura
Corolrio: Decrescimento progressivo da Admissibilidade
Se h* raramente sobre-estima h mais do que d, ento A* raramente encontrar
uma soluo cujo custo seja superior a d + o custo ptimo do passo para a
soluo.
A funo c(n) para o puzzle de 8 est nesse caso porque um limite inferior do
n. de passos necessrios para alcanar o objectivo.
Seleccionar uma boa funo heurstica crucial.
No puzzle de 8 prefervel h(n) = D(n) , onde D(n) a soma das distncias a que
cada elemento se encontra da posio correcta.
Outra: h(n) = D(n) + 3S(n). S=0 se n seguida do seu sucessor e S=2 nos outros
casos. S=1 na casa central.
Page 11
21
MIA - 2005/06
Mtodos de Pesquisa
Problema dos baldes
Dois baldes, de capacidades 4 e 3 litros, respectivamente, esto inicialmente
vazios. O objectivo colocar 2 litros no 1 balde, e 0 litros no 2. Os baldes no
possuem qualquer marcao intermdia. As operaes que pode realizar so:
esvaziar um balde
encher (completamente) um balde
despejar um balde para o outro at que o segundo fique cheio
despejar um balde para o outro at que o primeiro fique vazio
Operadores:
5. despejar do 2 p/ 1 at encher 1
6. despejar do 1 p/ 2 at encher 2
7. despejar do 2 p/ 1 at esvaziar 2
8. despejar do 1 p/ 2 at esvaziar 1
1. encher 1 balde
2. encher 2 balde
3. esvaziar 1 balde
4. esvaziar 2 balde
22
MIA - 2005/06
Mtodos de Pesquisa
Primeiro em largura
encher 2 balde : b(0,3)
despejar do 2 p/ 1 at esvaziar 2 : b(3,0)
encher 2 balde : b(3,3)
despejar do 2 p/ 1 at encher 1 : b(4,2)
esvaziar 1 balde : b(0,2)
despejar do 2 p/ 1 at esvaziar 2 : b(2,0)
Primeiro em profundidade
encher 1 balde : b(4,0)
encher 2 balde : b(4,3)
esvaziar 1 balde : b(0,3)
despejar do 2 p/ 1 at esvaziar 2 : b(3,0)
encher 2 balde : b(3,3)
despejar do 2 p/ 1 at encher 1 : b(4,2)
esvaziar 1 balde : b(0,2)
despejar do 2 p/ 1 at esvaziar 2 : b(2,0)
Problema dos baldes (soluo)
O melhor-primeiro
encher 2 balde : b(0,3)
despejar do 2 p/ 1 at esvaziar 2 : b(3,0)
encher 2 balde : b(3,3)
despejar do 2 p/ 1 at encher 1 : b(4,2)
esvaziar 1 balde : b(0,2)
despejar do 2 p/ 1 at esvaziar 2 : b(2,0)
funo heurstica (h ) = soma das
diferenas entre quantidade actual e
quantidade objectivo nos dois baldes
Page 12
23
MIA - 2005/06
Algoritmo A* (aplicao)
Aplicao do Algoritmo A*
Dados 8 Lotes de terreno com 5 possveis Usos:
Recreio, Apartamentos, Vivendas, Cemitrio, Lixeira
Critrios (Restries) atribuio:
Recreio prximo do lago
Evitar terrenos inclinados para construo, cemitrio e lixeira
Solos instveis maus para construo
Autoestrada longe de habitaes e Recreio
Objectivo: Minimizar custo respeitando critrios
24
MIA - 2005/06
Algoritmo A* (aplicao)
Page 13
25
MIA - 2005/06
Algoritmo A* (aplicao)
0.8 1.4 1 1.7 1.6 0.9 1.3 1.2 custo
n b n b n b n n lago
b b m m estrada
mm r m r b b b b inclinao
m b m b b b b solo
l17 l12 l11 l10 l9 l7 l5 l3
caractersticas
nao nao lixeira
nao nao cemitrio
nao nao nao nao vivendas
nao nao nao nao apartamentos
nao sim nao sim nao nao nao nao recreio
l17 l12 l11 l10 l9 l7 l5 l3
b : bom
r : razovel
m : mau
mm : muito mau
n : no
usos/lotes
26
MIA - 2005/06
Algoritmo A* (aplicao)
Representao: Sol
i
: Lista das atribuies de Usos no passo i
LU
i
: Lista dos Usos ainda no atribudos
Ll
i
: Lista dos Lotes ainda no atribudos
Estado inicial:
Sol
0
= [] ; LU
0
= [r,a,v,c,l] ; Ll
0
= [l3,l5,l7,l9,l10,l11,l12,l17]
Objectivo:
Sol
i
= [r-Lr, a-La, v-Lv, c-Lc, l-Ll] ; LU
i
= [] ; Ll
i
= [L1,L2,L3]
Funo: f*(N) = g(N) + h*(N)
h*(N) soma dos custos dos p mais baratos lotes ainda no atribudos; p o numero de
Usos ainda no contemplados
g(N) custo da soluo parcial at ao momento
Page 14
27
MIA - 2005/06
Algoritmo A* (aplicao)
Combinao do A* com
Satisfao de Restries:
O factor de ramificao em
cada estado seria de 40.
Aplicando as restries e o
princpio do mais restrito
primeiro, reduz-se a rvore
de Pesquisa.
Estamos aqui tambm a usar
heurstica
28
MIA - 2005/06
Pesquisa em Jogos
Pesquisa em "Jogos" ou Estratgias de Pesquisa considerando
adversrios
Jogos: Campo privilegiado para aplicao e estudo destas tcnicas de pesquisa
porque:
a funo da avaliao pode ser sempre possvel de computar
as regras a aplicar para gerar novos estados so em nmero no exagerado e bem
definidas.
o objectivo tambm est bem caracterizado
necessrio "look ahead.
Ex. de funo de avaliao no xadrez:
soma pesada de vrios factores como: vantagem de peas; posio da rainha;
controlo do centro, ...
Page 15
29
MIA - 2005/06
MiniMax
Minimax um procedimento de tipo "primeiro em profundidade".
A profundidade limitada priori.
Procedimento bsico da estratgia Minimax
Determinar SE o limite de profundidade da pesquisa foi atingido
OU se o nvel minimizador OU se o nvel maximizador
ENTAO
SE atingiu profundidade limite
compute o valor da posio corrente e
retorne o resultado
SE o nvel minimizador
aplique Minimax nos filhos da posio corrente e
retorne o mnimo.
SE o nvel maximizador
aplique Minimax aos filhos da posio corrente e
retorne o mximo.
30
MIA - 2005/06
Processo de pesquisa com Minimax
exemplo de rvore de pesquisa de nvel 3 e factor de ramificao 3
os valores da funo de mrito so relativas ao jogador "A"
5
4 3
5
3 9
16
8 9 4
5
9 6
8 7 3 9 1 6 2 4 1
1 3 5 3 9 2 6 5 2
1 2 3 9 7 2 16 6 4
MAX
MIN
MAX
Minimax
Page 16
31
MIA - 2005/06
Minimax-
Cortes ALFA-BETA ( pruning)
Permite diminuir o nmero de ns visitados e de funes nos ns avaliadas em
relao ao Minimax.
Tambm "depth first" com "branch and bound".
Inclui-se um limite por cada jogador. O limite inferior para o valor a
maximizar() e um limite superior para o valor a minimizar ()
A pesquisa dos sucessores de um n no nvel minimizador termina quando um
valor < encontrado;
Se o nvel maximizador termina quando se encontra um valor para um
sucessor >
O nvel maximizador (minimizador) tem de conhecer () no para o utilizar
mas para o passar para o nvel seguinte. Cada nvel recebe e , um para usar
outro para passar.
32
MIA - 2005/06
Minimax-
Minimax- : procedimento bsico
Determinar se o nvel o topo OU a profundidade limite OU minimizador OU
maximizador.
SE o nvel o Topo ENTAO =-MAXINT e MAXINT
SE profundidade mxima ENTAO computar a funo de avaliao e retornar o resultado
SE um nvel maximizador ENTAO
ENQUANTO (todos os sucessores no forem examinados E < ) FAZER
o maior dos valores seguintes:
herdado e o mximo de Minimax- aplicado aos sucessores
Aplique ao prximo sucessor j os novos valores e
Retorne .
SE um nvel minimizador ENTAO
ENQUANTO (todos os sucessores no forem examinados E <) FAZER
o mnimo dos valores seguintes:
herdado e o mnimo valor de Minimax- dos sucessores
Aplique ao prximo sucessor j os novos valores de e
Retorne
Page 17
33
MIA - 2005/06
Minimax-
4 6 1
6
2 7 9 3 2 1 2 5 6 2 9 3 5 3 1 1 4 2 6 1 9 3 7 8
[-,]
[-,]
v=8
v=7
v=3
[8,]
[8,]
[8,]
v=8
[-,8]
[-,8]
[-,4]
[-,8]
[-,8] [9,8]
-
-
v=9
v=9
v=2 v=4
v=1
[2,8]
[4,8]
[4,8]
v=4
v=4
[4,]
[4,]
[5,]
[5,]
[4,5]
[4,5]
[4,5]
[5,5]
-
-
[4,]
[4,]
[5,]
[4,5]
[9,5]
-
[6,5]
-
-
[5,]
[5,]
[5,]
[4,]
[4,5]
[4,5]
v=5
v=9
v=6
v=1
v=3
v=5
v=3
v=9
v=6
v=1
v=2
v=3
v=5
[5,]
[5,]
v=5
34
MIA - 2005/06
Negamax
Algortmo Negamax
Este algortmo semelhante ao Minmax mas tira partido das heursticas
poderem ser as mesmas para o jogador e seu adversrio (como o caso do
Xadrez)
Enquanto que o Minimax maximiza a heurstica do jogador e minimiza a do
adversrio, o Negamax nega (multiplica por -1) o valor da heurstica
correspondente ao nvel onde teria de minimizar.
Assim no necessita de saber qual o nvel em que se encontra e maximiza
sempre.