métodos de resolução de problemaspaginas.fe.up.pt/~arocha/mia/04/mrp.pdf · métodos de...

17
Page 1 FEUP Métodos de Resolução de Problemas Disciplina: Metodologias de Inteligência Artificial FEUP 2 Sistemas de Produções CONHECIMENTO DADOS OPERADORES ESTRATÉGIAS Paradigma básico dos Sistemas de Produções : “Separabilidade”

Upload: others

Post on 01-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 1

FEUP

Métodos de Resolução de Problemas

Disciplina: Metodologias de Inteligência Artificial

FEUP 2

Sistemas de Produções

CONHECIMENTO

DADOS

OPERADORES

ESTRATÉGIAS

Paradigma básico dos Sistemas de Produções : “Separabilidade”

Page 2: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 2

FEUP 3

Métodos de Resolução de Problemas

Sistemas de Produções– a primeira Arquitectura básica dos Sistemas de Inteligência Artificial

Descrição do problema– através de um espaço de estados

Representação do conhecimento– através da lógica e de estruturas de informação

Resolução do problema– movimentação no espaço de estados da configuração inicial à

configuração final

Arquitectura do sistema computacional– uso de Sistemas de Produções, mantendo separadamente os Factos

(numa ou várias “bases de dados”), os operadores (regras), e o algoritmo de controlo

FEUP 4

Métodos de Pesquisa

– Métodos não informadosNão possuem informação sobre nº passos ou custo até à solução.

– Métodos informadosAplicação de funções dependentes do conhecimento do problema: funções heurísticas

– Direcção de controlo» “Top Down” ou encadeamento inverso» “Bottom Up” ou encadeamento directo» Bidireccional

– Estratégia de controlo» “depth first” ou primeiro em profundidade» “breadth first” ou primeiro em largura

Page 3: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 3

FEUP 5

Métodos de pesquisa

• Métodos de pesquisa– Gerar e Testar - não informado

– Subir a colina (“hill climbing”) - informado

– Primeiro em Largura - não informado

– Ramifica e Limita (“Branch and Bound”) - não informado

– Arrefecimento simulado - informado

– Satisfação de Restrições × - não informado

– O melhor-primeiro - informado

Gerar e TestarGera a possível solução e testa-a comparando com o objectivo.

Geração sistemática: primeiro em profundidade com "backtracking“.

Combina-se com outras estratégias.

FEUP 6

Subir a colina

Subir a colina: processo irrevogável– Gera-se e testa-se mas recebe-se "feedback" indicando qual a

direcção aconselhável para o próximo movimento.– Usa-se conhecimento Local.

Procedimento1. Gera-se o primeiro estado2. SE solução RETORNAR

SENÃO Aplicar a esse novo estado os operadores possiveis3. Para cada novo estado

TesteSE solução RETORNARSENÃO

escolha o estado mais próximo da solução como o novo estadoVOLTAR A 2

– Problemas: funções não "bem comportadas" com máximos locais e "planaltos"

também usado como

método de optimização

Page 4: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 4

FEUP 7

Solução

Dis

tânc

ia `a

sol

ução

Curvas dos passos necessários para obtêr a solução

Nº de passos (operadores)

Função "Bem-comportada"

Função "mal-comportada"

Subir a colina

FEUP 8

Subir a colina

Dois tipos de subir a colina (“hill climbing”)

1. Subir-a-colina básico:– Gera um a um os sucessores do estado actual– Encontrado um mais próximo da solução que o Estado Actual,

Selecciona-o

2. Ascenção Íngreme (“Steep ascendent”):– Gera todos os sucessores possíveis– Selecciona o mais próximo da solução

Page 5: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 5

FEUP 9

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)).

FEUP 10

Primeiro em largura

Primeiro em largura: todos os nós em cada nível são explorados.

– Vantages:» Encontra sempre a solução se existir. » E encontra a melhor em comprimento do passo.

– Problema: tem de guardar todos os nós do nível.» Implica mais memória, trabalhoso.» Havendo muitos passos que levam a soluções, é preferível a

estratégia "primeiro em profundidade“

• "pesquisa em feixe" ("beam search")Método semelhante ao "primeiro em largura" mas, em cada nível nãose expandem todos os nós mas somente alguns seleccionados (oumelhores) - método informado

Page 6: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 6

FEUP 11

AB C

S

DE

F

G3

44

42 4

35

5

“Branch and Bound”

Ramifica e Limita ("Branch and Bound“)encontra passos óptimos– Em cada nível da árvore é continuado o passo até aí o de menos

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 mapade estradas e respectivas distâncias.

» O problema é encontrar o caminho mais curto entre S e G

FEUP 12

“Branch and Bound”

Algoritmo básico do “BRANCH AND BOUND” (“ramifica-e-limita”)

1. Formar uma Fila de passos parciais (caminhos de pesquisa da solução)

A Fila inicial tem comprimento 1 (estado inicial).

2. ATÉ Fila vazia OU Objectivo atingido

determinar se o 1º Passo da Fila é = Objectivoa. SE sim ENTÃO ir para 3b. SE não

i. retirar 1º Passo da Filaii. formar novos Passos a partir do removido aplicando os operadores possíveisiii. acrescente os novos Passos na Filaiv. ordene crescentemente pelos custos acumulados

3. SE estado Objectivo alcançado ENTÃO sucesso /* pode ter de analizar passos com

SENÃO falha /* menor custo

Page 7: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 7

FEUP 13

Arrefecimento Simulado

Arrefecimento Simulado ("Simulated Annealing")("annealing é o processo de arrefecer um metal liquefeito até solidificar)

Função SIMULATED-ANNEALING(problema, variação) retorna soluçãoinputs: descrição do problema

variação (mapeamento de tempo para "temperatura")próximo, corrente : nodosT é a "temperatura" controlando a probabilidade dos passos descendentes

corrente <-- gera_próximo(estado_inicial[problema])PARA t=1 ATE � FAZER

T<--variação[t]SE T=0 ENTAO retorna correntepróximo <-- qualquer estado sucessor de corrente�E<-- valor[proximo] - valor[corrente]SE �E>0 ENTAO corrente<--próximoSENAO corrente<--próximo com probabilidade e�E/T

Se variação baixa T suficientemente devagar, o algoritmo encontrará um óptimo global.

também usado como

método de optimização

FEUP 14

Arrefecimento Simulado

– O Algorítmo “arrefecimento simulado” é uma variação do “subir a colina” em que, no início do processo de pesquisa da solução, algunsmovimentos “descendentes” (mais afastadas da solução) 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 fusão de metais que depois se arrefece baixando o nívelde energia.

– A aceitação de um novo estado que se afaste da solução é feita com uma probabilidade e�E/T.

– A probabilidade depende ainda de uma “temperatura” que vai diminuindocom o tempo. Com valores altos da “temperatura”, os passos piores têmmais probabilidade de serem executados.

Page 8: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 8

FEUP 15

O melhor-primeiro

O melhor-primeiroselecciona o nodo mais promissor de um conjunto deles usando uma função heurística para a avaliação.

– É uma pesquisa em grafo construindo uma árvore de prova.– Combina as estratégias de "primeiro em profundidade" com "primeiro em

largura".– Aplicação de funções dependentes do conhecimento do problema: funções

heurísticas» minimização do custo do passo Vs minimização do custo da pesquisa

desse passo.» o poder heurístico é usado para ordenar os nós a pesquisar.

ex: puzzle de 8 : f(n)=p(n)+c(n) p-profundidadeSe c(n)=0 --> "primeiro em largura"c - número de erros

Usa-se uma "métrica" de algum modo ligada à distância para a solução.

FEUP 16

O melhor-primeiro

Métodos “o melhor-primeiro”:- algoritmo “ganancioso” usa h*(n)

- algoritmo do custo uniforme usa g(n)

- algoritmo A* usa f*(n) = g(n) + h*(n)

Comparação entre métodos sistemáticos p-e-l , p-e-p , c-uniforme

nsscompleto

nssóptimo

b*mbdbdespaço

bm (ou bd se bd<bm)bdbdtempo

p-em-pc-uniformep-em-l

b : factor de ramificação

d : profundidade da solução

m : profundidade máxima

Page 9: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 9

FEUP 17

Algoritmo A*

Algoritmo A* para escolher o melhor primeiro numa pesquisa em grafo.

– Cada nó: estado + valor da função heurística + apontador para o pai + sucessores

– 2 listas de nós:» LABERTA: nós já gerados, com as respectivas funções de

avaliação mas não examinados » LFECHADA: nós já examinados

– Função heurística f* = g + h*

– g : custo do passo até ao nó corrente

– h* : estimação do custo do passo do nó corrente à solução

FEUP 18

Algoritmo A*

ALGORITMO A*

LABERTA <-- estado inicial ; LFECHADA <-- vazia

ATE encontrar Solução FAZER

SE LABERTA = vazia ENTAO retornar Falso

Retirar de LABERTA o nó N mais promissor (melhor f*)

Colocar N em LFECHADA

SE N = Solução 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: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 10

FEUP 19

Algoritmo A*

SE SucN ⊂ LABERTA comparar os valores de g respectivosSE 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) ENTAORefazer apontador do nó antigo para NRegistar novo custo g (nó antigo) e f* (nó antigo)Propagar a melhoria para sucessores de N

/*SENAO nada*/ /*SENAO nada*/

SENAO /*SucN não pertence às listas*/

junte SucN a LABERTAcomputar f*(SucN) = g(SucN) + h*(SucN)

FIM

FEUP 20

Algoritmo A*

– Como f* também depende de g, em cada nível não se escolhe o maispromissor mas a melhor combinação 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

Corolário: Decrescimento progressivo da AdmissibilidadeSe h* raramente sobre-estima h mais do que d, então A* raramente encontrará uma solução cujo custo seja superior a d + o custo óptimo do passo para a solução.

– A função c(n) para o puzzle de 8 está nesse caso porque é um limite inferior do n. de passos necessários para alcançar o objectivo.

– Seleccionar uma boa função heurística é crucial. No puzzle de 8 é preferível h(n) = D(n) , onde D(n) é a soma das distâncias a que cada elemento se encontra da posição 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: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 11

FEUP 21

Métodos de Pesquisa

Problema dos baldes

Dois baldes, de capacidades 4 e 3 litros, respectivamente, estão inicialmentevazios. O objectivo é colocar 2 litros no 1º balde, e 0 litros no 2º. Os baldesnão possuem qualquer marcação intermédia. As únicas operações que poderealizar são:

» 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º balde2. encher 2º balde3. esvaziar 1º balde4. esvaziar 2º balde

FEUP 22

Métodos de Pesquisa

Primeiro em larguraencher 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 profundidadeencher 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 (solução)

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)

função heurística (h ) = soma dasdiferenças entre quantidade actual e quantidade objectivo nos dois baldes

Page 12: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 12

FEUP 23

Algoritmo A* (aplicação)

Aplicação do Algorítmo A*

Dados 8 Lotes de terreno com 5 possíveis Usos:

Recreio, Apartamentos, Vivendas, Cemitério, Lixeira

Critérios (Restrições) à atribuição:» Recreio próximo do lago» Evitar terrenos inclinados para construção, cemitério e lixeira» Solos instáveis maus para construção» Autoestrada longe de habitações e Recreio

OBJECTIVO: Minimizar custo respeitando critérios

FEUP 24

Algoritmo A* (aplicação)

Page 13: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 13

FEUP 25

Algoritmo A* (aplicação)

Representação: Soli : Lista das atribuições de Usos no passo iLUi : Lista dos Usos ainda não atribuídosLli : Lista dos Lotes ainda não atribuídos

Estado inicial: Sol0 = [] ; LU0 = [r,a,v,c,l] ; Ll0 = [l3,l5,l7,l9,l10,l11,l12,l17]Objectivo: Soli = [r-Lr, a-La, v-Lv, c-Lc, l-Ll] ; LUi = [] ; Lli = [L1,L2,L3]Função heurística: f*(N) = g(N) + h*(N)

h*(N) soma dos custos dos p mais baratos lotes ainda não atribuídos; p é o numero de Usos ainda não contempladosg(N) custo da solução parcial até ao momento

0.81.411.71.60.91.31.2custo

bbblago

bbfloresta

mmrmrbbbbinclinação

bbmbbbbsolo

l17l12l11l10l9l7l5l3

FEUP 26

Algoritmo A* (aplicação)

Combinação do A* com Satisfação de Restrições:

» O factor de ramificaçãoem cada estado seria de 40.

» Aplicando as restrições e o princípio do mais restritoprimeiro, reduz-se a Árvore de Pesquisa.

» Estamos aqui também a usar Heurística

Page 14: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 14

FEUP 27

Pesquisa em “Jogos”

Pesquisa em "Jogos" ou Estratégias de Pesquisa considerando adversários

Jogos: Campo privilegiado para aplicação e estudo destas técnicas de pesquisa porque:

» a função da avaliação pode ser sempre possível de computar» as regras a aplicar para gerar novos estados são em número não

exagerado e bem definidas. » o objectivo também está bem caracterizado

– É necessário "look ahead“.

– Ex. de função de avaliação no xadrez:soma pesada de vários factores como: vantagem de peças; posição da rainha; controlo do centro, ...

FEUP 28

MiniMax

– Minimax é um procedimento de tipo "primeiro em profundidade". – A profundidade é limitada à priori.

Procedimento básico da estratágia Minimax

Determinar SE o limite de profundidade da pesquisa foi atingidoOU se o nível é minimizador OU se o nível é maximizadorENTAO

SE atingiu profundidade limitecompute o valor da posição corrente e retorne o resultado

SE o nível é minimizadoraplique Minimax nos filhos da posição corrente e retorne o mínimo.

SE o nível é maximizadoraplique Minimax aos filhos da posição corrente e retorne o máximo.

Page 15: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 15

FEUP 29

5

4 3

5

3 916

8 9 4

59 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

» Processo de pesquisa com Minimax» exemplo de árvore de pesquisa de nível 3 e factor de ramificação 3» os valores da função de mérito são relativas ao jogador "A"

FEUP 30

Minimax-��

Cortes ALFA-BETA ( “�� pruning”)– Permite diminuir o número de nós visitados e de funções nos nós

avaliadas em relação ao Minimax.

– Também é "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 nível minimizador terminaquando um valor < � é encontrado;

– Se o nível é maximizador termina quando se encontra um valor paraum sucessor > �

– O nível maximizador (minimizador) tem de conhecer � (�) não para o utilizar mas para o passar para o nível seguinte. Cada nível recebe �e �, um para usar outro para passar.

Page 16: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 16

FEUP 31

Minimax-��

Minimax-�� : procedimento básicoDeterminar se o nível é o topo OU a profundidade limite OU é minimizador OU é

maximizador.SE o nível é o Topo ENTAO �=-MAXINT e �MAXINTSE profundidade máxima ENTAO computar a função de avaliação e retornar o resultadoSE é um nível maximizador ENTAO

ENQUANTO (todos os sucessores não forem examinados E �<� ) FAZER� é o maior dos valores seguintes:

� herdado e o máximo de Minimax-�� aplicado aos sucessoresAplique ao próximo sucessor já os novos valores � e �

Retorne �.SE é um nível minimizador ENTAO

ENQUANTO (todos os sucessores não forem examinados E �<�) FAZER� é o mínimo dos valores seguintes:

� herdado e o mínimo valor de Minimax- �� dos sucessoresAplique ao próximo sucessor já os novos valores de � e �

Retorne �

FEUP 32

Minimax-��

4616

279321256293531142619378

[-�,�]

[-�,�]

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=9v=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

Page 17: Métodos de Resolução de Problemaspaginas.fe.up.pt/~arocha/MIA/04/mrp.pdf · Métodos de Resolução de Problemas Sistemas de Produções – a primeira Arquitectura básica dos

Page 17

FEUP 33

Negamax

Algorítmo Negamax

Este algorítmo é semelhante ao Minmax mas tira partido das heurísticas poderem ser as mesmas para o jogador e seu adversário (como é o caso do Xadrez)

Enquanto que o Minmax maximiza a heurística do jogador e minimiza a do adversário, o Negamax nega (multiplica por -1) o valor da heurística correspondente ao nível onde teria de minimizar.

Assim não necessita de saber qual é o nível em que se encontra emaximiza sempre.