Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de...

17
Page 1 Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas 2 MIA - 2005/06 Sistemas de Produções Paradigma básico dos Sistemas de Produções CONHECIMENTO DADOS OPERADORES ESTRATÉGIAS

Transcript of Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de...

Page 1: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 1

Metodologias de Inteligência Artificial2005/2006

Métodos de Resolução de Problemas

2MIA - 2005/06

Sistemas de Produções

• Paradigma básico dos Sistemas de Produções

CONHECIMENTO

DADOS

OPERADORES

ESTRATÉGIAS

Page 2: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 2

3MIA - 2005/06

Métodos de Resolução de Problemas

• 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

4MIA - 2005/06

Métodos de Pesquisa– Métodos não informados

• Não possuem informação sobre nºpassos ou custo até à solução

– Métodos informados• Aplicaçã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 Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 3

5MIA - 2005/06

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 Testar– Gera 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.

6MIA - 2005/06

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

• Procedimento:1. 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 Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 4

7MIA - 2005/06

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

8MIA - 2005/06

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 Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 5

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

10MIA - 2005/06

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ão se

expandem todos os nós mas somente alguns seleccionados (ou melhores) -método informado

Page 6: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 6

11MIA - 2005/06

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

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

12MIA - 2005/06

“Branch and Bound”Algoritmo básico de “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 atingidodeterminar se o 1ºPasso da Fila é = Objectivo

a. 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 Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 7

13MIA - 2005/06

Arrefecimento SimuladoArrefecimento 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

14MIA - 2005/06

Arrefecimento Simulado– O Algoritmo “arrefecimento simulado” é uma variação do “subir a colina” em

que, no início do processo de pesquisa da solução, alguns movimentos“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ível de energia.

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

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

Page 8: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 8

15MIA - 2005/06

O melhor-primeiro

O melhor-primeiro– Selecciona 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.

16MIA - 2005/06

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-em-l , p-em-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 Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 9

17MIA - 2005/06

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

18MIA - 2005/06

Algoritmo A*ALGORITMO A*

LABERTA <-- estado inicial ; LFECHADA <-- vaziaATE encontrar Solução FAZER

SE LABERTA = vazia ENTAO retornar FalsoRetirar de LABERTA o nó N mais promissor (melhor f*)Colocar N em LFECHADASE N = Solução retornar (N ou passo)SENAO gerar sucessores de NPARA CADA sucessor de N FAZER

SucN = SucessorNSucN aponta para NComputar g(SucN) = g(N) + custo do passo de N a SucN

Page 10: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 10

19MIA - 2005/06

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

Refazer 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

20MIA - 2005/06

Algoritmo A*– Como f* também depende de g, em cada nível não se escolhe o mais promissor

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 Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 11

21MIA - 2005/06

Métodos de PesquisaProblema 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 baldes nãopossuem qualquer marcação intermédia. As operações que pode realizar 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

22MIA - 2005/06

Métodos 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 (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 Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 12

23MIA - 2005/06

Algoritmo A* (aplicação)

Aplicação do Algoritmo 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

24MIA - 2005/06

Algoritmo A* (aplicação)

Page 13: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 13

25MIA - 2005/06

Algoritmo A* (aplicação)

0.81.411.71.60.91.31.2custo

nbnbnbnnlago

bbmmestrada

mmrmrbbbbinclinação

mbmbbbbsolo

l17l12l11l10l9l7l5l3características

naonaolixeira

naonaocemitério

naonaonaonaovivendas

naonaonaonaoapartamentos

naosimnaosimnaonaonaonaorecreio

l17l12l11l10l9l7l5l3

b : bomr : razoávelm : maumm : muito maun : não

usos/lotes

26MIA - 2005/06

Algoritmo A* (aplicação)Representação: Soli : Lista das atribuições de Usos no passo i

LUi : 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: 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 contemplados– g(N) custo da solução parcial até ao momento

Page 14: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 14

27MIA - 2005/06

Algoritmo A* (aplicação)Combinação do A* com

Satisfação de Restrições:

• O factor de ramificação emcada estado seria de 40.

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

• Estamos aqui também a usarheurística

28MIA - 2005/06

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

Page 15: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 15

29MIA - 2005/06

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.

30MIA - 2005/06

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"

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

Page 16: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 16

31MIA - 2005/06

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 termina quando um valor < � é encontrado;

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

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

32MIA - 2005/06

Minimax-��Minimax-�� : procedimento básico

Determinar 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 �

Page 17: Métodos de Resolução de Problemasarocha/MIA/0506/mrp.pdf · 2005. 10. 14. · Metodologias de Inteligência Artificial 2005/2006 Métodos de Resolução de Problemas MIA - 2005/06

Page 17

33MIA - 2005/06

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=3v=5

v=3 v=9 v=6 v=1 v=2

v=3

v=5

[5,�]

[5,�] v=5

34MIA - 2005/06

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 Minimax 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 e maximiza sempre.