You are on page 1of 144

LIO 1 INTRODUO E AGENTES

TPICOS A SABER:

Inteligncia; Racionalidade; Agente; Tipo de Agente; Indicador de Desempenho; Ambiente;


Actuadores; Sensores.

CAP: 1 INTRODUO
Veremos o que exactamente a AI e porque bom estud-la.

A AI tenta compreender as entidades inteligentes, at para aprendermos mais acerca de


ns prprios. Tenta construir entidades inteligentes, teis por direito prprio.

J claro que computadores com nvel de inteligncia dos humanos ou melhor


desempenharo um papel importante no futuro.

Mais, tal como providenciar um veculo para criar entidades com IA, o computador prov
uma ferramenta para testar as teorias da inteligncia.

na verdade um campo universal.

1.1. O QUE A AI?

H vrias definies. Umas preocupam-se com o processo de pensar e raciocinar,


enquanto outras com o comportamento. Dentro de cada, umas medem o sucesso em
termos de perfomance dos humanos, outras contra um ideal conceito de inteligncia, que
iremos chamar de racionalidade.

Ao todo temos pois 4 possveis metas.

O excitante novo esforo para fazer osO estudo das faculdades mentais atravs de
computadores pensar... mquinas commodelos computacionais (Charniak and
mentes, no seu sentido literal (Haugeland,McDermott, 1985)
1985)
O estudo das computaes que tornam
A automatizao de actividades quepossvel perceber, raciocinar e agir (Winston,
associamos com o pensamento dos humanos,1992)
actividades como tomada de decises,
resoluo de problemas,
aprendizagem...(Bellman, 1978)

A arte de criar mquinas que executamUm campo de estudo que procura explicar e
funes que requerem inteligncia quandoemular o comportamento inteligente em
executadas por pessoas (Kurzweil, 1991) termos de processos computacionais
(Schalkoff,1990)
O estudo de como fazer os computadores
fazer coisas, as quais, no momento, asO salto da cincia dos computadores que se
pessoas so melhores (Rich & Knight, 1991) preocupa com a automao do
comportamento inteligente (Luger &
Stubblefield,1993)

Sistemas que pensam como humanos Sistemas que pensam racionalmente


Sistemas que agem como humanos Sistemas que agem racionalmente

Agindo humanamente: A Abordagem do Teste de Turing

O computador precisa de possuir:

- Processamento de linguagem natural

- Representao do conhecimento

- Raciocnio automatizado

- Aprendizagem

O teste total de Turing, o computador precisa:

- Ter viso para perceber os objectos e

- Robtica, para os mover

Pensando Humanamente: A abordagem do Modelo Cognitivo

Uma vez que tenhamos uma teoria suficientemente precisa da mente, tornar-se- possvel
expressar a teoria como um programa de computador.

Simplesmente notaremos que a AI e a cincia da cognio continuam a fertilizar-se uma


outra, especialmente em reas da viso, linguagem natural e aprendizagem.

Pensar Racionalmente: A Abordagem das Leis do Pensamento

Estas leis do pensamento supostamente governam a operao da mente, e iniciam o


campo da lgica.

H 2 principais obstculos a esta abordagem: Primeiro, no fcil tomar conhecimento


informal e pass-lo para formal. Segundo, h uma grande diferena entre ser capaz de
resolver um problema em princpio e faz-lo na prtica.

Agindo Racionalmente: A Abordagem do Agente Racional

Agir racionalmente significa atingir certas metas, dadas certas crenas. Um agente
apenas algo que percebe e age.

H 2 vantagens desta abordagem: Primeiro, mais geral que as leis do pensamento,


porque a inferncia correcta um mecanismo til para atingir racionalidade, mas no
necessrio. Segundo, mais ameno o desenvolvimento cientfico do que abordagens
baseadas no comportamento ou pensamento humanos, porque o standard de racionalidade
claramente definido e completamente geral.
Este livro, daqui para a frente, concentra-se nos princpios gerais dos agentes racionais,
e em componentes para os construir.

1.2.AS FUNDAES DA INTELIGNCIA ARTIFICIAL

Filosofia (428 A.C. Presente)

Foi desenvolvido um sistema informal de silogismos para raciocnio apropriado.

Um problema com a concepo puramente material da mente que parece deixar pouco
espao para a liberdade de escolha (vontade).

Descartes foi tambm um proponente do dualismo.

Uma alternativa ao dualismo o materialismo.

tambm possvel adoptar uma posio intermdia. Os processos mentais e a conscincia


so parte do mundo fsico, mas inerentemente desconhecidas; esto para alm da
compreenso racional.

A filosofia estabeleceu ento uma tradio, na qual a mente concebida como um aparelho
fsico operando principalmente por raciocnio, a partir do conhecimento que contm. O
prximo problema ento estabelecer a fonte do conhecimento. O movimento emprico
Nada est na compreenso que no estivesse antes nos sentidos.

... Por outras palavras, perceber como o conhecimento pode ser adquirido a partir da
experincia.

O elemento final da viso filosfica da mente a conexo entre o conhecimento e a aco.

Aristteles: Deliberamos no acerca dos fins, mas acerca dos meios. ... At chegarmos
primeiras causa, a qual, na ordem da descoberta a ltima... ... Mas se uma coisa parece
possvel, ns tentamo-la.

Isto foi implementado por newell e Simon no seu programa GPS, que incorpora a heurstica
da anlise meios-fins.

A anlise meios-fins til, mas no nos diz o que fazer quando vrias aces conduziro
meta, ou quando nenhuma aco a atinge na totalidade.

Matemtica ( 800 presente)

Uma cincia formal exige um nvel de formalizao matemtica em 3 reas principais:


computao (...algoritmo), lgica e probabilidade.

George Boole (1815-1864) introduziu a sua linguagem formal para fazer inferncias lgicas
em 1847. Gottlob Frege (1848-1925) produziu a lgica de 1 ordem.

Godel (1906-1978) mostrou que existe um procedimento efectivo para provar qualquer frase
verdadeira na lgica de 1 ordem. O seu teorema da incomplitude mostrou que em qualquer
linguagem expressiva suficiente para descrever as propriedades dos nmeros nmaturais,
h frases verdadeiras que so indecidveis. O que pode ser interpretado como: h algumas
funes dos inteiros que no podem ser representadas por algoritmos isto , no podem
ser computadas.
Turing tambm mostrou que h algumas funes que nenhuma mquina de Turing
consegue computar.

A noo de intractabilidade ainda teve mais impacto na computao. Uma classe de


problemas considerado intratvel se o tempo requerido para resolver instncias da classe
cresce pelo menos exponencialmente com o tamanho das instncias.

O 2 importante conceito na teoria da complexidade a reduo.

Como se pode reconhecer um problema intratvel? A teoria NP-completeza. Qualquer


classe de problemas aos quais uma classe NP-completa pode ser reduzida, intratvel.

A teoria das probabilidades tambm importante, sobretudo se quisermos introduzir o


conceito de grau de certeza necessrio a certos problemas. Bayes introduziu o raciocnio
incerto nos sistemas de AI.

Tal como na lgica, preciso fazer uma conexo entre o raciocnio probablistico e a aco.
A Teoria da Deciso, criada por John Von Neumann, combina a teoria das probabilidades
com a teoria da utilidade, para dar a primeira teoria geral que pode distinguir boas aces
de ms. A teoria das Decises o sucessor matemtico do utilitarismo, e prov a base
terica para muitos dos agentes deste livro.

Psicologia (1879-presente)

Wundt abriu o primeiro laboratrio de psicologia experimental. Ele insistia e experincias


cuidadosamente controladas, nas quais trabalhadores executariam uma tarefa perceptual
ou associativa enquanto introspeco nos seus prprios processos de pensamento.

.... (pg.13)

CAP. 2 AGENTES INTELIGENTES


2.1. INTRODUO

Um agente algo que pode ser visto como percepcionando o seu ambiente atravs de
sensores e agindo sobre esse ambiente atravs de actuadores. Um software agente
codifica strings de bits como percepes e aces.

2.2. COMO DEVEM OS AGENTES AGIR

Um agente racional um que faz a coisa certa.

Como avaliar, e quando, o sucesso do agente?

Usaremos o termo medida de perfomance para o como. Ns, como observadores externos
estabelecemos um standard do que significa ter sucesso num ambiente e usaremos isso
como medida da perfomance dos agentes.

O quando avaliar a perfomance tambm importante. assim , ns queremos medir a


perfomance num longo prazo.
preciso distinguir entre racionalidade e omniscincia (saber o resultado das aces
tomadas/atomar). No sabemos se um vaso vai cair. O importante, no que racionalidade
toca o resultado/sucesso esperado dado o que foi percebido.

Em suma, o que racional num dado momento depende de 4 factores:

- A medida de perfomance que define o grau de sucesso

- Tudo o que o agente percebeu at a (sequncia de percepo)

- O que o agente sabe do ambiente

- As aces que o agente realiza

Isto conduz definio de um agente racional ideal: Para cada sequncia de percepo
possvel, um agente racional ideal deve fazer uma aco esperada para maximizar a sua
medida de perfomance, na base da evidncia providenciada pela sequncia de percepo e
no conhecimento criado que o agente tem.

preciso ter cuidado com a definio. Por ex. no racional atravessar uma estrada sem
olhar. assim, fazer as aces em ordem a obter informao til uma parte importante da
racionalidade.

O mapa Ideal Para Sequncias de Percepo at Aces

Uma vez que percebemos que o comportamento de um agente depende exclusivamente da


sua sequncia de percepo at data, ento podemos descrever um qualquer agente
particular, fazendo uma tabela da aco que ele toma em resposta a cada possvel
sequncia de percepo.

Para muito infinita, a menos que coloquemos fronteiras. Essa lista chamada mapa da
sequncia para as aces. Devemos tentar todas e gravar as suas aces. Se usar algum
tipo de randomizao, devemos tirar uma mdia.

Especificando que aco um agente deve tomar em resposta a uma qualquer sequncia
dada prov um design para um agente ideal (mapa ideal).

possvel definir uma especificao do mapa, sem o enumerar exaustivamente. Ex:


considere-se um agente simples: a funo raiz quadrada de uma calculadora. A sequncia
so as teclas e a aco o display do resultado. No preciso especificar a tabela ideal
toda. Podemos usar um pequeno programa (Mtodo de Newton) que implementa o mapa.

Isto mostra que possvel designar bonitos e compactos agentes que implementam o
mapa ideal para muitas mais situaes gerais (agentes que resolvem uma quantidade sem
limite de tarefas numa quantidade sem limite de ambientes).

Um outro requisito necessrio aos agentes inteligentes :

Autonomia

preciso tambm lidar com o conhecimento construdo. Se o seu comportamento de


baseia s nisso, sem precisar da sequncia, dizemos que tem autonomia.
Um agente autnomo se o seu comportamento determinado apenas pela sua
experincia.

Isto quer dizer que ao princpio deve actuar aleatoriamente, a menos que o designer d
alguma ajuda.

Assim ,tal como nos animais, deve-se dotar o agente com algum conhecimento inicial
assim como habilidade para aprender. A carocha...

Um agente verdadeiramente inteligente, deve ser capaz de operar com sucesso numa
variedade de ambientes, dado suficiente tempo para se adaptar.

2.3. estrutura dos agentes inteligentes

Como trabalha o interior.

O trabalho da AI desnhar o programa agente: uma funo que implementa o mapa do


agente das percepes s aces. Assumimos que este programa corre nalgum
computador, a que chamaremos a arquitectura.

agente = arquitectura + programa

Antes de desenharmos o programa agente, devemos ter uma boa ideia das possveis
percepes e aces, que metas e medida de perfomance o agente suposto atingir, e em
que tipo de ambiente ele operar.

A tabela seguinte mostra os elementos bsicos para a seleco dos tipos de agente.

Tipo de Agente Percepes Aces Metas Ambiente

Sistema deSintomas, Questes, testes,Sade doPaciente, Hospital


diagnstico findings, tratamentos paciente,
mdico respostas dos minimizao de
doentes custos

Sistema devariao daImpresso dumaCategorizao Imagens do


Anlise deIntensidade doscategorizao daCorrecta Satlite em rbita
Imagens Satlite Pixels, cor cena

Robot de PickingPixels dePega em peass eColocar peas nasCorreia de fbrica


Peas intensidade coloca-as emvasilhas correctas com peas
varivel vasilhas

Controlador deTemperatura, Abre, fechamaximizar aRefinaria


Refinaria presso (leituras) vlvulas; ajusta apureza, yeld,
temperatura segurana

Tutor IntercativoPalavras escritas Imprime Maximiza aConjunto para


de Ingls Exerccios, classificao doestudantes
sugestes, estudante nos
correces testes
Ateno que um agente pode operar num ambiente real e ser muito mais simples que um
que actua num ambiente artificial (software agentes). O ambiente artificial mais clebre o
ambiente do teste de Turing.

Programas Agentes

Cada agente usa algumas estruturas de dados internos que sero actualizadas medida
que novas percepes chegarem. estas estruturas de dados so operadas pelos
procedimentos de tomadas de deciso do agente, para gerar uma escolha de uma aco,
que depois passada para a arquitectura para ser executada.

Cada percepo passada de cada vez e o agente constri a sequncia em memria, se


quiser. s vezes no preciso, outras impraticvel.

function SKELETON-AGENT(percept) returns action

static: memory, the agents memory of the world

memory <-- UPDATE-MEMORY(memory, percept)

action <-- CHOOSE-BEST-ACTION (memory)

memory <-- UPDATE-MEMORY(memory, action)

return action

Porque No Olhar Apenas Para as Respostas?

vamos olhar para a maneira mais simples de escrever o programa agente uma tabela de
lookup. O programa agente :

function TABLE-DRIVEN-AGENT(percept) returns action

static: percepts, a sequence, initially empty

table, a table, indexed by percept sequences, initially fully specified

append percept to the end of percepts

action <-- LOOKUP(percepts, table)

return action

Ele opera mantendo em meria a sua total sequncia de percepes, e usando-a para
indexar a tabela, que contm a aco apropriada para todas as possveis sequncias.

Porque falha?
- A tabela precisa, para uma coisa to simples como um agente que joga xadrez, cerca de
35100 entradas

- Demora muito tempo para o designer construir a tabela

- O agente no tem nenhuma autonomia.

- mesmo que lhe dssemos um mecanismo de aprendizagem, demoraria uma eternidade


para us-lo.

Mas funciona. Implementa o mapa. O ponto que podemos ter um agente que raciocina e
evita estas 4 desvantagens.

Um Exemplo

Consideremos um ambiente mais concreto: design um condutor de taxi automtico.

A tarefa completa muito aberta no h limite de novas combinaes de circunstncias


que podem aparecer (tabela no d)

Tipo de Agent Percepes Aces Metas Ambiente

Taxi Driver cmaras, Abrandar, Viagem segura,Estradas, outro


Velocmetro, GPS,acelerar, travar,rpida, legal,trfego, pees,
sonar, microfone falar com oconfortvel; clientes
passageiro maximizao dos
lucros

Vamos considerar 4 tipos de programa agente:

1-AGENTES de REFLEXOS SIMPLES

A opo de construir uma tabela de lookup est fora de questo (muitos pixels...)

Contudo, podemos resumir pores da tabela notando certas ocorrncias comuns de


associaes input/output (ex. se o carro da frente trava...) --> devemos usar uma conexo
do tipo regra de aco-condio escrita como:

if car-in-front-is-braking then initiate-braking

function SIMPLE-REFLEX-AGENT(percept) returns action

static: rules, a set of condition-action rules

state <-- INTERPRET-INPUT(percept)

rule <-- RULE-MATCH(state, (rules)

action <-- RULE-ACTION[rule]


return action

Apesar destes agentes poderem ser implementados muito eficientemente, o seu espectro
de aplicao muito pequeno.

2-AGENTES QUE MANTM AS PISTAS DO MUNDO

O agente anterior trabalha apenas se a deciso correcta puder ser tomada com base na
percepo corrente. Ex. carros antigos no d.

Deve ento manter um estado interno, em ordem a tomar uma aco. aqui o estado interno
no precisa ser muito extenso (basta uma frame anterior).

Outro caso: em ordem a decidir uma mudana de faixa, o condutor precisa de saber se h
l outros ou no. O problema ilustrado aparece porque os sensores no provm acesso ao
estado completo do mundo. Nesses casos, o agente pode precisar de manter algum estado
interno em ordem a distinguir entre estados do mundo que geram o mesmo percepo de
entrada mas que so significativamente diferentes (aces apropriadas diferentes).

Actualizando a informao do estado interno medida que o tempo passa requere 2 tipos
de conhecimento a ser codificado pelo agente. Primeiro, precisamos de informao de
como o mundo evolui independentemente do agente (ex. um carro estava perto dele h
pouco). Segundo, precisamos de informao de como as aces do agente influenciam o
mundo (ex. muda de faixa fica um gap na que estava).

function REFLEX-AGENT-WITH-STATE(percept) returns action

static: state, a description of the current world state

rules, a set of condition-action rules

state <-- UPDATE-STATE(state,percept)

rule <-- RULE-MATCH(state, rules)

action <-- RULE-ACTION[rule]

state <-- UPDATE-STATE(state, action)

return action

3-AGENTES BASEADOS EM METAS

Conhecer acerca do estado corrente do ambiente no sempre suficiente para decidir o


que fazer. Por ex., num cruzamento, o taxi pode virar esquerda, direita ou seguir em
frente. A deciso correcta depende de onde ele est a tentar ir. Ou seja, para alm do
estado corrente ele precisa duma meta.

Search e Palnning (cap.11 a 13) so os subcampos da AI dedicados a encontrar sequncias


de aces que fazem o agente atingir os objectivos.

Apesar do agente baseado nas metas parecer menos eficiente, ele mais flexvel. Envolve
consideraes sobre o futuro. Por ex. se est a chover ele travar mais cedo. Os goals
substituem as regras de condition-action no diagrama e prev o que acontece se...
4-AGENTES BASEADOS NA UTILIDADE

Metas sozinhas no so suficientes para gerar comportamentos de alta-qualidade. Vrias


podem conduzir ao goal mas algumas sero mais rpidas, seguras, fiveis, baratas. Ento
adopta-se a estratgia da utilidade. Utilidade uma funo que mapeia um estado num n
real, que descreve o grau associado de satisfao.

2.4. AMBIENTES

Vamos ver os diferentes tipos de ambientes e como eles afectam os agentes.

Propriedades dos Ambientes

- Acessvel vs. Inacessvel Um ambiente efectivamente acessvel se os sensores


detectam todos os aspectos relevantes para a escolha da aco. conveniente pois assim
o agente no precisa manter nenhum estado interno para seguir o mundo.

- Determinstico vs. Indeterminstico - Se o prximo estado do ambiente completamente


determinado pelo estado corrente e pelas aces dos agentes, determinstico. Em
princpio, o agente no precisa preocupar-se acerca da incerteza num ambiente
determinista e acessvel. Inacessvel, para o agente, como se fosse indeterminista.

- Episdico vs. no-episdico A experincia do agente dividida em episdios (perceber


actuar). Ento a qualidade da aco depende s desse episdio pois os seguintes no
dependem das aces que ocorreram em episdios anteriores. So mais simples pois no
preciso pensar em avano.

- Esttico vs. Dinmico O ambiente pode mudar enquanto o agente est a deliberar

- Discreto vs. Contnuo Se h um n limitado de distintos e claramente definidos


percepes e aces discreto.

Veremos que ambientes de diferentes tipos requerem programas agentes diferentes. O


caso mais difcil o inacessvel, no-episdico, dinmico e contnuo.

Exemplos de ambientes e suas caractersticas

Ambiente Acessvel Determinista Episdico Esttico Discreto

Xadrez com relgio Sim Sim No Semi Sim

Xadrez sem relgio Sim Sim No Sim Sim

Poker No No No Sim Sim

Backgammon Sim No No Sim Sim

Taxi Driving No No No No No

Sistema de diagnsticoNo No No No No
mdico

Sistema de anlise de imagensSim Sim Sim Semi No


Robot pega peas No No Sim No No

Controlador de Refinaria No No No No No

Tutor Interactivo de Ingls No No No No Sim

Programas de Ambiente

O programa genrico de ambiente que se segue, ilustra as relaes bsicas entre agentes e
ambientes. Neste livro, achmos conveniente para muitos exerccios e exemplos, usar um
simulador de ambientes que segue a estrutura do programa. O simulador toma um ou mais
agentes como entrada e d a cada agente as percepes certas e recebe uma aco. O
simulador actualiza ento o ambiente, baseado nas aces, e outros processos dinmicos
possveis que no so considerados agentes (chuva por ex). O ambiente ento definido
pelo estado inicial e pela funo de actualizao. Claro que um agente que trabalha no
simulador deve tambm trabalhar no mundo real que prov o mesmo tipo de percepes e
aceita o mesmo tipo e aces.

pg. 48 Programa simulador de ambiente bsico

Programa simulador que mantm a medida de perfomance de cada agente.

LIO 2 PROCURAS CEGAS

TPICOS A SABER:

Procura: Algoritmos; Definio do Espao de Procura; Factor de Ramificao;


Profundidade da Procura; Procura em Profundidade; Procura em Largfura; Procura em
Profundidade Limitada/Iterativa

PART II PROBLEM-SOLVING

Nesta parte vamos ver como um agente pode agir estabelecendo goals e considerando
sequncias de aces que podem atingir esses goals. Um goal e um conjunto de meios para o
atingir chama-se problema, e o processo de explorar o que os meios podem fazer chamada
search.

CAP. 3 RESOLVENDO PROBLEMAS POR SEARCHING


Vamos ver como um agente decide o que fazer por considerao sistemtica de vrias
sequncias de aces que pode tomar.

No cap. 2 vimos que os agentes de reflexo simples so incapazes de planear antecipadamente.


Neste captulo, descreveremos um tipo de agente baseado no goal chamado um agente
resolvedor-de-problemas. Vamos cobrir 6 maneiras diferentes de estratgias e procura.
3.1. Agentes Problem-Solving

Agentes inteligentes so supostos agir duma maneira em que o ambiente evolui atravs de uma
sequncia de estados que maximiza a perfomance.

Ex. Ele deve assumir o goal ir at Bucareste.

Goal formulation, baseado na situao corrente o primeiro passo na resoluo de problemas.

Neste captulo consideramos um goal como um conjunto de estados do mundo apenas aqueles
em que o goal satisfeito. Aces podem ser vistas como causando transies de estado, e
obviamente o agente tem de encontrar que aces o fazem chegar ao estado goal. Antes tem de
considerar que aces tomar. Por ex. O nvel mover o p esquerdo 18 polegadas para a frente
um nvel de detalhe que conduz intratabilidade do problema. Problem formulation o processo
de decidir que aces e estados considerar e segue a goal formulation.

No nosso ex. Os estados considerados correspondem a estar numa cidade particular.

Se no tiver mais informao ter de tomar a deciso aleatoriamente (por onde seguir). Mas
supondo, por ex. Que tem um mapa de Romnia, pode usar essa informao para escolher os
passos subsequentes.

Em geral, ento, um agente com vrias opes imediatas de valor desconhecido pode decidir o
que fazer examinando primeiro diferentes possveis sequncias de aces que conduzem a
estados de valor desconhecido, e depois escolher o melhor. Este processo de procurar essa
sequncia chamada search. Um algoritmo de search toma um problema como input e retorna
uma soluo na forma de sequncia de aces. Uma vez encontrada a soluo as aces
recomendadas podem ser carregadas para a sada a execuo.

Assim , temos formulate, search, execute

function SIMPLE-PROBLEM-SOLVING-AGENT(p) returns an action

inputs: p, a percept

static: s, an action sequence, initially empty

state, some description of the current world state

g, a goal, initially null

problem, a problem formulation

state UPDATE-STATE(state,p)

if s is empty then

g FORMULATE-GOAL(state)

problem FORMULATE-PROBLEM(state,g)

s SEARCH(problem)

action RECOMMENDATION(s,state)
s REMAINDERS(s,state)

return action

Um agente resolvedor-de-problemas simples

Neste captulo vamos apenas descrever o processo de formulao do problema e depois da


funo de search.

3.2. FORMULAR PROBLEMAS

Primeiro vamos ver as diferentes quantidades de conhecimento que um agente pode ter no que
toca s suas aces e estados em que est. Isso depende da forma como o agente est ligado ao
seu ambiente atravs das suas percepes e aces. Vamos ver que existem 4 tipos diferentes de
problema problemas de estado-nico, de mltiplos-estados, de contingncia e de explorao.

Conhecimento e Tipos de Problemas

Vamos considerar o mundo vcuo. O mundo tem s 2 locais e cada um deles pode estar limpo ou
sujo. H 8 possveis estados; h 3 aces possveis. O goal limpar tudo.

Primeiro, supnhamos que os sensores do agente lhe do informao suficiente para ele saber
exactamente em que estado est ( o mundo acessvel); supnhamos ainda que ele sabe
exactamente o que cada uma das suas aces faz. Ento ele pode calcular exactamente em que
estado estar depois de uma sequncia de aces. Este o caso mais simples e chama-se
problema de estado-nico.

Segundo, supnhamos que o agente sabe o efeito das suas aces, mas tem acesso limitado aos
esatdos do mundo. Quando o mundo no est totalmente acessvel, o agente tem de raciocinar
acerca de conjuntos de estados para os quais poder ir, em vez de estados nicos. Este o tipo
de problema de mltiplos estados.

Apesar de parecer diferente, o caso de ignorncia acerca dos efeitos das aces pode ser tratado
similarmente.

Por vezes a ignorncia pode impedir o agente de encontrar garantidamente uma sequncia de
soluo. ex. suck, right, suck apenas se estiver sujo (num estado o agente no sabe se os outros
estados esto limpos ou sujos). assim, resolver este tipo de problemas requer sensoriamento
durante a fase de execuo. Repare que o agente agora precisa de calcular uma rvore completa
de aces, em vez de uma simples sequncia delas. Estes so os problemas de contingncia
(cap.13). Os algoritmos so mais complexos e o design do agente diferente, ele pode agir antes
de ter encontrado um plano garantido. Na execuo pode obter mais informao interleaving of
search. Neste captulo consideraremos apenas casos com soluo garantida com uma sequncia
simples de aces.

Finalmente h o caso em que o agente no tem informao acerca dos efeitos das suas aces.
O agente tem de experimentar, gradualmente descobrir o que as suas aces fazem e que tipos
de estados existem (search no mundo real). Se sobreviver, o agente aprende um mapa do
ambiente, o qual pode usar depois para resolver os problemas subsequentes. o problema de
explorao (cap.20).
Problemas Bem-Definidos e Solues

Um problema na realidade uma coleco de informao que o agente usa para decidir o que
fazer. Vamos comear por especificar a informao necessria para definir um single-state
problema:

O Estado Inicial, em que o agente sabe estar

O conjunto de aces possveis para o agente. O termo operador usado para denotar a
descrio duma aco em termos da qual um estado atingido se fizer a aco a partir
dum estado particular. Pode-se usar a funo Sucessor, que d o conjunto de estados
atingveis de x por uma aco simples.

Juntas, elas definem o espao de estados do problema: o conjunto de todos os estados atingveis
a partir do estado inicial por uma qualquer sequncia de aces. Um path no espao de estados
simplesmente uma qualquer sequncia de aces que conduzam de um estado a outro.

O Teste do Goal, o qual o agente pode aplicar a uma descrio de estdos simples para
determinar se ele um estado goal. Por vezes h um conjunto explcito de estados goal e
o teste apenas checa para ver se atingiu um deles. Por outras o goal especificado por
uma propriedade abstracta. Ex. xadrez.

Uma funo custo de caminho que uma funo que associa um custo a cada caminho e
assim permite saber se uma soluo prefervel a outra. soma das parciais. g.

Podemos definir um tipo de dados que representa problemas:

datatype PROBLEM

components: INITIAL_STATE, OPERATORS, GOAL-TEST, PATH-COST-FUNCTION

Instncias deste tipo de dados sero os inputs do algoritmo de search. O output a soluo, isto
, o caminho do estado inicial at um estado que satisfaa o goal-test.

Para lidar com problemas de mltiplos estados so s precisas modificaes menores. Um


problema consiste num conjunto de estados iniciais. Um conjunto de operadores especifica para
cada aco o conjunto dos estados atingidos por um dado esatdo e o resto igual.

Medindo a Perfomance da Resoluo-De-Problemas

A efectividade de uma procura pode ser medida de, pelo menos, 3 maneiras. Primeiro, encontrou
mesmo uma soluo? segundo, uma boa soluo (com um custo de caminho baixo)? terceiro,
qual o custo de search associado com o tempo e memria requeridos? O custo total da search
a soma do custo de caminho e o custo da search. Tem de haver um equilbrio/negociao.

Escolhendo Estados e Aces

Agora que j temos todas as definies, vamos exemplificar. conduzir de Arad para Bucareste
usando as estradas do mapa da figura (pg.62). Um espaod e esatdos apropriado tem 20 estados,
onde cada estado apenas a localizao. Assim, o estado inicial em Arad e o goal-test Is
This Bucareste? Os operadores correspondem a conduzir ao longo das estradas entre as
cidades. H uma grande quantidade de solues. Para decidir qual a melhor, precisamos de saber
a funo custo de caminho: pode ser em distncia (km) ou tempo esperado de viagem, por ex.
Como o mapa no especifica nenhum destes vamos escolher o n de passos.

A arte real da resoluo de problemas est em decidir o que interessa para a descrio dos
estados e operadores e o que pode ser deitado fora. O processo de remover os detalhes de uma
representao chama-se abstraco. Tal como abstramos os estados temos tambm de abstrair
as aces elas prprias. A escolha de uma boa abstraco assim, envolve a remoo de tantos
detalhes quanto possvel enquanto se retm a validade e se assegura que a aces abstractas
so fceis de lidar.

3.3. PROBLEMAS EXEMPLO

Os problemas bem-definidos podem-se dividir em toy-problems e real-world-problems

Toy Problems

The 8-puzzle
Em vez de mover a pea 4 par o espao em branco deve-se usar operadores do estilo O
espao branco troca de lugar com a pea esquerda. Isto porque assim h menos operadores.
Isto conduz-nos seguinte formulao:

Estados: uma descrio de estado especifica a localizao de cada uma das 8 peas num
dos nove quadrados. Para eficincia til incluir a localizao do vazio.

Operadores: vazio move-se para a direita, esquerda, baixo, cima.

Goal Teste: O estado coincide com a configurao soluo.

- Custo de caminho: cada passo custa 1

Este tipo de puzzle pertence famlia de sliding-block puzzles. Esta classe geral NP-completa.

O Problema das 8 Rainhas


O goal colocar 8 rainhas num tabuleiro de xadrez de modo a que nenhuma ataque nenhuma. H
dois tipos principais de formulao. A formulao incremental envolve a colocao das rainhas
uma a uma enquanto a formulao estado completo comea com as 8 rinhas no tabuleiro e depois
move-as. Em ambos os caso o custo de caminho no interessa pois apenas o estado final conta.
Os algoritmos sero comparados s em termos de custo de search.

Goal Test: 8 rainhas no tabuleiro, nenhuma atacada

Path Cost: zero

States: qualquer arranjo de 0 a 8 rainhas no tabuleiro

Operators: acrescentar uma rainha a um qualquer quadrado.

Nesta formulao temos 648 sequncias possveis para investigar. Se:


Estados: arranjos de 0 a 8 rainhas com nenhuma atacada

Operadores: Coloque uma rainha na coluna mais esquerda vazia tal que ela no seja a tacada
por nenhuma outra. Nesta formulao, por vezes no possvel aces. O processo de procura
deve tentar outra escolha. Uma clculo rpido conduz-nos a 2057 possveis sequncias a
investigar. Vemos que a formulao correcta faz uma grande diferena ao espao de procura . O
mesma concluso se aplica formulao estado-completo:

Estados: arranjos de 8 rainhas uma em cada coluna

Operadores: Mover qualquer rainha atacada para outra casa na mesma coluna.

Esta d mas seria melhor mover para uma casa no atacada.

Aritmtica Crptica

Letras representam dgitos e o objectivo encontrar uma substituio de letras por dgitos de que
resulte uma soma correcta.

A formulao seguinte a mais simples:

Estados: Um puzzle cripto-aritmtico com algumas letras a substitudas por dgitos

Operadores: substituir todas as ocorrncias de uma letra por um dgito que ainda no tenha
aparecido no puzzle.

Goal Test: O puzzle contm somente dgitos e representa uma soma correcta

Path Cost: zero. Todas as solues so igualmente vlidas.

Repare-se que queremos tambm evitar testar permutaes das mesmas substituies. Uma
maneira adoptar uma ordem fixa, por ex. alfabtica.

O Mundo Vcuo
Vamos ver primeiro o caso estado-nico com informao completa. assumimos que o agente sabe
a sua localizao e as localizaes de todas as peas de sujidade:

Estados: Um de oito mostrados na figura )pg.66)

Operadores: mover esquerda, mover direita, aspirar

Goal Test: No h sujidade em qualquer quadrado

Path Cost: cada aco tem custo 1

Consideremos agora o caso em que o agente no tem sensores, mas ainda tem de limpar tudo.
camos no problema mltiplo-estado:

Conjuntos de Estados: subconjuntos de estados 1-8

Operadores: mover esaquerda, mover direita, aspirar

Goal Teste: Todos os estados do conjunto no tm lixo.


Path cost: cada aco custa 1

O conjunto de estados inicial o conjunto de todos os estados, porque o agente no tem


sensores. uma soluo uma qualquer sequncia que conduza desde o conjunto de estados
inicial a um conjunto de estados sem lixo.

Missionrios e Canibais
3 missionrios e 3 canibais esto num lado de um rio assim como um barco que pode carregar
uma ou 2 pessoas. encontrar a maneira de passar toda a gente para o outro lado do rio mas sem
deixar um grupo de missionrios num dos lados que seja menor que o n de canibais.

Para formalizar o problema, o primeiro passo esquecer a chuva, os crocodilos, e todos os outros
detalhes que no tm relevncia para a soluo. O prximo passo decidir qual o conjunto de
operadores a usar. Por exemplo se interessa considerar o tempo em que esto no barco ou s a
chegada ao outro lado. Porque os barcos s levam 2 pessoas, no h perigo; s nos lados do rio.
Depois temos de abstrair os indivduos: qualquer permutao dos canibais ou dos missionrios
conduz mesma sada.

Estados: Uma sequncia ordenada de 3 nmeros representando o n de missionrios, canibais e


barcos no lado do rio onde se comea (ex: (3,3,1))

Operadores: Levar um missionrio, um canibal, 2 missionrios, 2 canibais ou um de cada.

Goal teste: atingir o estado (0,0,0)

Custo de caminho: nmero de travessias

Problemas do Mundo-Real

Encontrar o caminho / Route-finding


Este tipo de algoritmos usado em numerosas aplicaes

Problemas de um Caixeiro-Viajante Circulando e Viajando


ex: visite todas as cidades da figura pelo menos uma vez, comeando e terminando em
Bucareste. Parece muito similar ao route-finding, porque os operadores correspondem ainda a
viagens entre cidades adjacentes. mas, para este problema, o espao de estados precisa reter
mais informao, pelo que o estado ser do tipo em Vaslui; visitadas {Bucareste, Urziceni,
Vaslui}. O objectivo do TSP encontrar o giro mais curto. NP-hard e usa-se tambm para
planear os movimentos automtico das brocas para circuito impresso.

VSLI Layout
uma das tarefas mais complexas da engenharia. Duas das mais difceis tarefas so o layout das
clulas e o encaminhamento das pistas/canais. A ideia minimizar a rea e tamanho das ligaes
para, assim, maximizar a velocidade.
Navegao de Robots
uma generalizao do problema route-finding. Em vez de um conjunto discreto de caminhos, um
robot pode mover-se num espao contnuo com (em princpio) um conjunto infinito de aces e
estados possveis. So necessrias tcnicas avanadas apenas para tornar o espao de procura
finito.

Sequncia de Montagem
Consiste na montagem automtica de objectos por parte de robots, como por exemplo motores
elctricos. O problema encontrar uma ordem na qual a montagem de um objecto se pode
concretizar.

3.4. PROCURANDO AS SOLUES

feita executando uma procura pelo espao dos estados. a ideia manter e estender um
conjunto de sequncias de solues parciais. Vamos ver como gerar essas sequncias e como
manter o rasto delas usando estruturas de dados adequadas.

Gerando Sequncias de Aces


Para resolver o problema de route-finding de Arad para Bucareste, por ex. comeamos com o
estado inicial Arad. O primeiro passo testar se este um estado goal. Depois consideramos
outros estados, aplicando o operador ao estado corrente, gerando assim um novo conjunto de
estados. O processo chama-se expandir o estado. No caso obtemos 3 novos estados. aqui temos
de fazer uma escolha acerca do estado a considerar.

Esta a essncia da procura: escolher uma opo e colocar as outras de lado para mais tarde no
caso de a primeira escolha no conduza a soluo. supnhamos que escolhamos Zerind.
Checamos para ver se estado goal (no ) e depois expandimos para obter em Arad e em
Oradea. Podemos agora escolher qualquer um destes dois ou voltar atrs e escolher Sibiu ou
Timisoara. Continuamos a escolher, testar, e expandir at encontrarmos uma soluo ou at no
haver mais estados para expandir. a escolha do qual estado a expandir primeiro determinada
pela estratgia de procura.

til considerar este processo de procura como a construo de uma rvore de procura. A raiz
um n de procura correspondente ao estado inicial. As folhas no tm sucessores. A cada passo,
o algoritmo de procura escolhe uma folha para expandir. importante distinguir entre o espao de
estados e a rvore de procura.

function GENERA-SEARCH(problem, strategy) returns a solution, or failure

inicialize a rvore de procura usando o esatdo inicial do problema

loop do

if there are no candidates for expansion then return failure

chosse a leaf node for expansion according to strategy

if the node contains a goal state then return the corresponding solution
else expand the node and add the resulting nodes to the search tree

end

Estruturas de Dados Para As rvores de Procura


A estrutura dos ns tem (para j) 5 componentes:

O estado do espao de estados ao qual o n corresponde

O n que gerou este n (n pai)

O operador que foi aplicado para gerar este n

O n de ns do caminho desde a raiz (a profundidade / depth do n)

O custo do caminho desde o n inicial.

datatype node

components: STATE, PARENT-NODE, OPERATOR, DEPTH, PATH-COST

importante recordar a diferena entre ns e estados. Um n uma estrutura de dados que


guarda a representao da rvore de procura para uma instncia particular de um problema
(gerado por um algoritmo particular). Um estado representa uma configurao (ou conjunto de ) do
mundo.

Tambm precisamos de representar a coleco de ns que esto espera de ser expandidos


(so a fronteira ou fringe). a representao mais simples um conjunto de ns. A estratgia de
procura ser uma funo que selecciona o prximo n a ser expandido deste conjunto. Isso pode
ser computacionalmente caro. Vamos considerar que a coleco de ns implementada numa
queue. As operaes sobre a queue so:

MAKE-QEUE(elements)

EMPTY?(Queue)

REMOVE-FRONT(Queue)

QEUEUING-FN(Elements,Queue) Insere um conjunto de elementos na fila. Diferentes maneiras


da funo de inserir produzem variedades de algoritmos de procura.

function GENERAL-SEARCH(problem, QEUEING-FN) returns a solution or failure

nodes MAKE-QUEUE(MAKE-NODE(INITIAL_STATE[problem]))

loop do

if nodes is empty then return failure

node REMOVE-FRONT(nodes)
if GOAL-TEST[problem] applied to STATE(node) succeeds then return node

nodes QUEUING-FN(nodes, EXPAND(node, OPERATORS[problem]))

end

3.5. ESTRATGIAS DE PROCURA

A maior parte do trabalho na rea da procura encontrar a estratgia de procura adequada para
um problema. Vamos estudar algumas em termos dos seguintes critrios:

Completitude: A estratgia garante que encontra uma soluo se houver uma?

Complexidade em Tempo: Quanto demora a encontrar uma soluo

Complexidade em Espao: Quanta memria precisa para executar a busca?

Optimidade: Encontra a estratgia a soluo de melhor qualidade quando h vrias?

Vamos estudar 6 estratgias que se enquadram nas procuras no informadas. Isso quer dizer que
no h informao acerca do n de passos ou do custo de caminho desde o estado corrente at
ao estado goal tudo o que ela pode fazer distinguir um estado goal dum que no o . Tambm
se chama procura cega.

Considerando novamente o Arad-Bucareste, um agente mais esperto pode ver que o goal,
Bucareste est a sueste de Arada e assim ver que s Sibiu fica naquela direco, sendo a melhor
escolha. Estratgias como esta so procuras informadas ou procuras heursticas cap.4. A
procura cega menos efectiva mas ainda assim importante pois h problemas em que no temos
mesmo qualquer outra informao.

As 6 estratgias distinguem-se pela ordem na qual os ns so expandidos.

Breadth-First Search
O n raiz expandido primeiro, seguindo-se todos os ns gerados pela expanso do n raiz e
depois os seus sucessores. Pode ser implementado pelo algoritmo de procura geral com uma
funo de queuing que coloca os novos estados gerados no fim da fila.

function BREADTH-FIRST-SEARCH(problem) returns a solution or failure

return GENERAL-SEARCH(problem, ENQEUE-AT-END)

O encontro da soluo garantido e encontra a soluo mais superfcie. completo, ptimo


tendo em conta que o custo de caminho uma funo crescente com a profundidade do n.

Podemos definir o factor de salto / branching factor com b. Supondo que a soluo para este
problema tem um caminho de comprimento d. Ento o mximo nmero de ns expandidos antes
de encontrar a soluo 1 + b+ b2 + b3 +...+ bd

Vemos que a complexidade exponencial O(bd).

H 2 lies a tirar:
- A necessidade de memria so o maior problema para o mtodo de procura breadth-first ,
mais que as de tempo de execuo.

- As necessidades de tempo ainda so um factor importante.

- Em geral, os problemas de complexidade exponencial no podem ser resolvidos a no ser no


caso de instncias pequenas.

Procura de Custo Uniforme

Modifica o anterior expandindo sempre o n de menor custo da fronteira (como medido pelo custo
de caminho g(n)). O anterior este com g(n) = DEOTH(n).

Quando certas condies se verificam, a primeira soluo que for encontrada garantidamente a
mais barata. A condio : O custo de um caminho no pode diminuir medida que vamos
avanando no caminho. g(SUCCESSOR(n) >= g(n)

Procura DEPTH-FIRST

Expande sempre um dos ns do nvel mais profundo da rvore, voltando apenas aos mais
superficiais quando atinge um beco. Pode ser implementado pelo algoritmo de procura geral com
uma funo de enfileiramento que coloca os novos estados gerados na frente da fila.

Tem necessidades de memria muito modestas. S precisa de guardar um caminho simples


desde a raiz para a folha, assim como os ns irmos no expandidos para cada n no caminho.
Requer pois armazenamento de bm ns (em contraste com b d) d=12 -> 10 bilies de vezes
menos espao. A complexidade em tempo de O(bm).

O problema aqui que pode-se ir indefinidamente para baixo, por um caminho errado. Muitos
problemas tm rvores de procura muito profundas ou at infinitas. podemos ficar presos num
loop infinito e nunca retornar uma soluo. assim, no completo nem ptimo.

Por isso, deve ser evitado para rvores de procura com profundidades grandes ou infinitas

function DEPTH-FIRST-SEARCH(problem) returns a solution, or failure

GENERAL-SEARCH(problem, ENQUEUE-AT-FRONT)

Procura DEPTH-LIMITED

Evita a queda no precipcio do anterior impondo um corte na mxima profundidade de um


caminho. Podemos implementar a profundidade cutoff usando operadores da forma Se est na
cidade A e j viajou por um caminho com 19 passos, ento gere um novo estado na cidade B com
um caminho que um maior. Com este novo conjunto de operadores garantimos que
encontramos uma soluo, se existir, mas no garantido que seja a mais pequena primeiro.
completo mas no ptimo. Se escolhermos um limite de profundidade demasiado pequeno, ento
o depth-limited no sequer completo. A complexidade em tempo e espao similar ao depth-
first. Toma O(bl) tempo e O(bl) espao com l como limite.

Procura Iterativa em Profundidade


A parte mais dura do anterior escolher um bom limite. Tommos 19 como limite no problema das
cidades mas se virmos melhor vemos que qualquer cidade atinge qualquer outra no mximo de 9
passos isto conhecido como dimetro do espao de estados.

uma estratgia que contorna o facto da escolha do melhor limite de profundidade tentando todos
os possveis limites (por ordem). Este algoritmo combina as vantagens do depth-first e do breadth-
first. ptimo e completo como o primeiro, mas tem apenas as modestas necessidades de
memria do depth-first.

function ITERATIVE-DEEPNING-SEARCH(problem) returns a solution sequence

inputs: problem, a problem

for depth 0 to infinite do

if DEPTH-LIMITED-SEARCH(problem, depth) succeeds then return its result

end

return failure

A complexidade em tempo ainda O(bd) e a complexidade em espao O(bd).

Em geral, iteratividade em profundidade o mtodo de procura prefervel quando h um grande


espao de procura e a profundidade da soluo no conhecida.

Procura Bidireccional

A ideia simultaneamente procurar para a frente a partir do primeiro estado e para trs a partir do
goal e parar quando as duas procuras se encontram no meio.

Para problemas em que o factor de salto b em ambas as direces, a procura bidireccional pode
fazer uma grande diferena. Complexidade O(bd/2)

Esta complexidade assume que o processo de testar a interseco pode ser feita em tempo
constante (normalmente feito por uma tabela hsh). preciso que um dos conjuntos de ns fique
em memria (como no breadth-first), o que significa complexidade de espao de O(bd/2)

Antes de implementar o algoritmo h que ter em ateno alguns (5) pontos. Definir predecessores;
Calcul-los pode ser difcil; o que fazer se h vrios goal-states (pode-se trabalhar com conjuntos
de estados); checar cada novo n para ver se j aparece na outra procura; Decidir que procura
ter lugar em cada metade.

Comparao das Estratgias de Procura

Critrio Breadth-First Uniform-Cost Depth-First Depth- Iterative Bidirecctional


Limited Deepening (se aplicvel)

Tempo bd bd bm bl bd bd/2

Espao bd bd bm bl bd bd/2
ptimo? Sim Sim No No Sim Sim

Completo? Sim Sim No Yes, se l >= d Sim Sim

3.6. EVITAR ESTADOS REPETIDOS

At agora ignormos uma das mais importantes complicaes do processo de procura: a


possibilidade de perdermos tempo a expandir estados que j foram encontrados e expandidos
antes em outro caminho. Para alguns problemas isto problemtico, designadamente aqueles em
que os operadores so reversveis (route-finding, missionrios). As rvores para eles so infinitas
mas se pruenarmos alguns dos estados repetidos, podemos cortar a rvore de procura para um
tamanho finito, gerando apenas a poro da rvore que separa o grfico de espao de estados.

H 3 modos de lidarmos:

No retornar ao estado de onde acabmos de vir

No criar caminhos com ciclos neles

No gerar estados que j tenham sido gerados antes.

Para implementar a ltima condio os algoritmos fazem apelo a uma tabela de ahsh onde
guardam os ns j gerados.

3.7. PROCURA QUE SATISFAZ CONSTRIES

CSP um tipo especial de problemas que satisfaz mais algumas propriedades estruturais para
alm dos requisitos bsicos de um problema em geral. Os estados so definidos pelos valores de
um conjunto de variveis. Por ex. as 8 rainhas podem ser vistas co o um CSP onde as variveis
so as localizaes; e a constrio diz que nenhum par de rainhas pode estar na mesma linha,
coluna ou diagonal. Uma soluo para um CSP especifica os valores para todas as variveis tal
que as constries so satisfeitas.

Os algoritmos desenhados especificamente para os CSP geralmente so mais eficientes.

Constries unrias dizem respeito a uma s varivel.

Cada varivel Vi num CSP tem um domnio Di (discreto ou contnuo). Nos CSPs discretos onde os
domnios so finitos, as constries podem ser representadas enumerando simplesmente as
combinaes permitidas de valores. Usando esta ideia de enumerao, qualquer CSP discreto
pode ser reduzido a um CSP binrio.

Vamos ver como podemos aplicar um algoritmo geral a um CSP. O estado inicial ser o estado em
que todas as variveis no esto associadas. Operadores associaro um valor a uma varivel, a
partir do conjunto de possibilidades. O goal test checa se todas as variveis esto associadas e
todas as constries satisfeitas. Repare que a profundidade mxima da rvore fixa em n, o n de
variveis, e que todas as solues esto na profundidade n. agora podemso usar seguramente o
algoritmo depth-first.

Nos CSPs o goal-test decomposto num conjunto de constries a variveis em vez de ser uma
caixa-negra.
Depth-First gasta tempo procura quando as constries j forma violadas. Deve-se inserir um
teste antes da gerao do sucessor para ver se alguma constrio j foi violada. O algoritmo
resultante chama-se backtracking search. Tem algumas falhas, pelo que se pode usar Forward
checking, olhando para a frente para detectar insolvncia. Se algum dos domnios se tornar vazio
ento a procura backtarcka imediatamente. Forward checking um tipo especial de checagem de
arco de consistncia. Um estado arco-consistente se todas as variveis tm um valor no seu
domnio que consistente com cada uma das constries dessa varivel. Assim, arco-
consistncia exibe uma froma de propagao de constries. Nalguns casos, achar a arco-
consistncia suficiente para resolver o problema completamente porque os domnios de todas
as variveis so reduzidos a singularidades. Arco-Consistncia muitas vezes usada como
preprocessamento.

CAP.4 MTODOS DE PROCURA INFORMADA

Ler captulo 4, com 35 pginas. Estima-se o tempo de leitura em 3h30, e aconselha-se a realizao
de dois periodos de leitura.
Tpicos a saber: Procura informada: algoritmos; heurstica consistente / admissivel; procura local:
algoritmos; agentes de procura em ambientes desconhecidos
Trabalho:
Simule os diversos algoritmos de procuras informadas, com o auxlio do gerador de rvore de
Estados. Faa bastantes exerccios, e com rvores grandes, de forma a dominar completamente os
algoritmos.
Simule os diversos algoritmos de procuras locais, com o auxlio do gerador de Espao de Solues.
Faa bastantes exerccios, e com espaos grandes, de forma a dominar completamente os
algoritmos.

Onde se ver como a informao acerca do espao de estados pode impedir os algoritmos de
navegar no escuro. H maior eficincia.

4.1. Procura Best-First

No algoritmo de procura geral que vimos, o nico stio onde usar informao na funo de
enfileiramento. Habitualmente o conhecimento para fazer esta determinao provido por uma
funo de avaliao que retorna um n para cada n, que no mais do que a prioridade de
expanso desse n. O best-first search parece ser o melhor de acordo com a funo.

function BEST-FIRST(problem,EVAL-FN) returns a solution sequence

inputs: problem, a problem

Eval-Fn, an evaluation function

Queueing-Fn a function that orders nodes by EVAL-FN

return GENERAL-SEARCH(problem, Queueing-Fn)


Por causa do objectivo do custo baixo os algoritmos usam medidas estimadas do custo da
soluo e tentam minimiz-lo. J vimos g, p.ex. mas no vai directa ao goal.

Em ordem a focar a procura, a medida deve incorporar uma estimativa do custo do caminho
desde um estado at ao estado goal mais prximo.

H 2 estratgias:

Minimizar o Custo Estimado para Atingir o Goal: Procura Greedy


Uma das estratgias de procura best-first mais simples minimizar o custo estimado para
atingir o goal.

Uma funo que calcula esses custos aproximados chamada funo heurstica:

h(n) = custo estimado de caminho mais barato do estado no n n at ao estado goal.

Um best-first que usa h para seleccionar o prximo n a expandir chama-se procura greedy.

function GREEDY-SEARCH(problem) returns a solution or failure

return BEST-FIRST(problem,h)

As funes heursticas so especficas de cada problema. Vamos voltar ao de Arad-Bucareste.


Neste caso uma boa funo heurstica a distncia a direito para o goal:

Nota:

Heurstica era vista como regras de thumb que experts num dado domnio podiam usar para
gerar boas solues sem uma procura exaustiva.

Gradualmente, os sistemas foram desenhados para aceitar informao heurstica expressa em


regras e os sistemas baseados em regras nasceram.

Correntemente, heurstica um adjectivo que refere alguma tcnica que melhora a perfomance do
caso mdio (no necessariamente a do pior caso). Na rea especfica da procura, refere uma
funo que prov um custo estimado da soluo.

Com a distncia directa heurstica, o primeiro n a ser expandido de Arad ser Sibiu, porque est
mais perto de Bucareste. Isto no perfeitamente ptimo. Deve-se ter mais cuidado na anlise de
opes de longo termo e no apenas na melhor escolha imediata.

a procura Greedy susceptvel de falsos comeos. Ex. chegar de Iasi a Fagaras. Alm disso, se
no formos cuidadosos a detectar estados repetidos, a sooluo nunca ser encontrada a
procura oscilar entre Neamt e Iasi.

Sofre dos mesmos defeitos do depth-first no ptimo, incompleto. A complexidade em tempo


O(bm) onde m a mxima profundidade do espao de procura.
Minimizar o Custo Total do Caminho: Procura A *
Seria bom combinar as estratgias Gredy-search e Uniform-cost search e obter as vantagens das
2. Isso possvel somando-as: f(n) = g(n) + h(n)

Como g(n) d o custo do caminho desde o incio at ao n n e h(n) o custo estimado do caminho
mais barato de n at ao goal, temos:

f(n) = custo estimado do caminho mais barato desde n

Ento, uma coisa razovel para fazer de incio encontrar o n com o menor valor de f. Pode-se
provar que completo e ptimo, desde que se imponha uma condio a h. essa condio
escolhaer uma funo h que nunca sobrestime o custo de atingir o goal. chamada funo
heurstica admissvel.

Se h admssivel, f(n) nunca sobrestima o custo real da melhor soluo desde n.

Best-first search usando f como funo de avaliao e funo

admissvel h +e conhecida como procura A*

function A*-SEARCH(problem) returns a solution or failure

return BEST-FIRST-SEARCH(problem, g+h)

O Comportamento da Procura A*

Ao longo e qualquer caminho desde a raiz, o custo-f nunca diminui. Isto no acidente. mantm-
se verdadeiro para quase toda as heursticas admissveis. Diz-se que exibe monotocidade.

Porque em algumas (poucas) isso no acontece, devemos checar, cada vez que se gera um n,
para ver se o custo-f menor que o custo-f do seu pai; se for usamos o custo-f do pai na sua vez.

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

chamada a equao pathmax

Se f nunca decresce ao longo de qualquer caminho a partir da raiz, ns podemos


conceptualmente desenhar contornos no espao de estados.

Com uma heurstica mais apurada, as bandas do contorno esticam at ao estado golo e tornam-
se mais focadas volta do caminho ptimo.

A* optimamente eficiente para qualquer funo heurstica dada.

Prova da Optimidade de A* e Prova da Completitude de A*


(pg. 99/100)
Complexidade de A*
Infelizmente, isto no quer dizer que a resposta a todas as nossas necessidades de busca. O
ponto que, para a amioria dos problemas, o n de ns dentro do contorno do espao de procura
do goal ainda exponencial no tamanho da soluo. O crescimento exponencial ocorrer a
menos que o erro da funo heurstica no cresa mais rpido que o logaritmo do custo do
caminho actual: |h(n) h*(n)| <= O(log h*(n)) onde h*(n) o verdadeiro custo de chegar de n
ao goal. Para quase todas as heursticas na prtica, o erro , pelo menos, proporcional ao custo
do caminho.

Porque mantm todos os ns gerados na memria, A* esgota a memria antes de esgotar o


tempo.

4.2. FUNES HEURSTICAS

Vamos olhar para a heurstica para o 8-puzzle. Isso trar luz natureza da heurstica em geral.

Os estados possveis so 320. Seguindo o rasto de estados repetidos reduz-se drasticamente para
362.880 arranjos diferentes de 9 quadrados, o que ainda muito. ento temos de encontrar uma
boa funo heurstica, que nunca sobrestime o n de passos para o goal. Eis 2 candidatas:

h1 = Nmero de peas que esto na posio errada. uma heurstica admissvel pois cada pea
ter de se mover pelo menos uma vez.

h2 = A soma das distncias das peas at s suas posies goal. Esta chamada por vezes
Distncia de Blocos Cidade ou Distncia de Manhattan.

O Efeito Da Escolha Apurada da Heurstica na Perfomance


Uma maneira de caracterizar a qualidade da heurstica o factor de salto efectivo b*. Se o n total
de ns expandidos por A* para um problema particular N, e a profundidade da soluo d,
ento b* o factor de salto que uma rvore uniforme de profundidade d ter de ter em ordem a
conter N ns. assim,

N = 1 + b* + (b*)2 + ... + (b*)d

Medidas experimentais de b* num pequeno conjunto de problemas pode fornecer um bom guia.
Uma heurstica bem desenhada ter um valor de b* prximo de l, permitindo uma vasta gana de
problemas sejam resolvidos. Para testar, germos 100 problemas cada um com tamanhos de
soluo diferentes.

Custo da Procura Factor de Salto Efectivo

d IDS A* (h1) A* (h2) IDS A* (h1) A* (h2)

2 10 6 6 2.45 1.79 1.79

4 112 13 12 2.87 1.48 1.45

6 680 20 18 2.73 1.34 1.30

8 6384 39 25 2.80 1.33 1.24

10 47127 93 39 2.79 1.38 1.22


12 364404 227 73 2.78 1.42 1.24

14 3473941 539 113 2.83 1.44 1.23

16 - 1301 211 - 1.45 1.25

18 - 3056 363 - 1.46 1.26

20 - 7276 676 - 1.47 1.27

22 - 18094 1219 - 1.48 1.28

24 - 39135 1641 - 1.48 1.26

Do quadro podemos perguntar se h2 sempre melhor que h1 e a resposta sim. Para qualquer
n n, h2(n) >= h1(n). Dizemos que h2 domina h1.

Assim, podemos concluir que sempre melhor usar uma funo heurstica com valores
maiores, desde que isso no implique sobrestimao.

Inventando Funes Heursticas


Um problema com menos restries nos operadores chamado um problema relaxado.

frequente o caso em que o custo de uma soluo exacta para um problema relaxado uma
boa heurstica para o problema original.

Se a definio de um problema estiver escrita numa linguagem formal, possvel construir


problemas relaxados automaticamente. Por ex. se os operadores do problema 8-puzzle for
descrito:

Uma pea pode mover-se de um quadrado A para o quadrado B se A adjacente a B e B est


vazio.

Podemos gerar problemas relaxados removendo uma ou mais das condies:

(a) Uma pea pode mover-se do quadrado A para o quadrado B se A adjacente a B.

(b) Uma pea pode mover-se do quadrado A para o quadrado B se B est vazio.

(c) Uma pea pode mover-se do quadrado para o quadrado B.

Um problema quando temos vrias heursticas e no sabemos qual a melhor/qual escolher,


isto , nenhuma dominante. Mas no preciso escolher. O melhor dos mundos definir:

h(n) = max(h1(n), ..., hm(n))


Uma outra maneira de inventar heursticas usar informao estatstica. Por ex. corremos 100
procuras sobre problemas-treino. Por ex., podemos descobrir que quando h2(n) = 14, 90% das
vezes a distncia real ao goal 18. Entao, quando confrontados com o problema real, podemos
usar 18 como valor sempre que h2(n) reportar 14. claro que assim estamos a prescindir da
garantia de admissibilidade, mas expandiremos menos ns em mdia.

Frequentemente possvel pegar em features de um estado que contribui para a sua funo de
avaliao heurstica, mesmo que seja difcil de dizer exactamente que contribuio essa. Por ex:
no xadrez: n de peas de cada oponente; n de peas que esto atacadas, etc.

Um outro factor que no considermos foi o custo de correr a funo heurstica num n. No
esquecer que uma boa heurstica deve tanto ser eficiente como apurada.

Heursticas Para Problemas de Satisfao de Constries (CSPs)

Vamos estender a anlise considerando heurstica para seleccionar uma varivel para instanciar e
para escolher um valor para a varivel.

Para ilustrar, pensemos no problema do mapa-colorido.

A ideia intuitiva chamada a heurstica da mais-constrita-varivel. usada com a checagem


cabea, que guarda a pista dos valores so ainda permitidos para cada varivel, dadas as
escolhas feitas at ento. Em cada ponto da procura, a varivel com o menor n de valores
possveis escolhida para ter um valor associado. Desta forma, o factor de salto na procura tende
a ser minimizado.

A heurstica da mais-constritando-varivel eficiente. Ela tenta reduzir o factor de salto de futuras


escolhas associando um valor varivel que est envolvida no maior n de constries.

Depois de escolhida a varivel preciso escolher o valor para ela. A intuio leva heurstica
least-constraining-value: escolher um valor que impea o menor n de valores permitidos s
variveis conectadas varivel corrente, por constries, isto , deixar mais escolhas livres para o
futuro.

Subsiste o facto de alguns problemas serem intrinsecamente difceis.

A primeira coisa a fazer ver qual a memria disponvel.

Procura Iterativa em Profundidade A* (IDA*)

No cap. 3 vimos que a iterao em profundidade boa tcnica para reduzir necessidade de
memria. Podemos tentar o mesmo truque, tornando a procura A* no IDA*. Cada iterao uma
procura depth-first tal como no ID normal. S que o depth-first modificado para usar um custo-f
limite, em vez de uma profundidade limite. Assim, cada iterao expande todos os ns dentro do
contorno para o corrente custo-f, vendo qual o contorno seguinte. Uma vez que a procura no
interior de um contorno est completa, uma nova iterao comea, usando uma novo custo-f para
o prximo contorno.
completa e ptima, mas como depth-first, s requer espao proporcional ao caminho mais
longo que explora. Se for o custo de operador mais baixo e f* o custo da soluo ptima, ento,
no pior caso, IDA* requer bf*/ nso para armazenamento. na maioria dos casos bd uma boa
estimativa.

A complexidade em tempo depende fortemente do n de diferentes valores que a funo


heurstica pode tomar. A eficincia similar ao A*, mas o seu overhead menor pois no precisa
inserir e retirar ns de filas.

Infelizmente IDA* tem dificuldades nos domnios mais complexos. No problema do caixeiro
viajante, o valor heurstico diferente para cada estado. Isto quer dizer que cada contorno apenas
inclui mais um novo estado do que o contorno prvio, o que d complexidade O(N2).

Uma maneira de contornar este problema aumentar o limite do custo-f de uma quantidade fixa
em cada iterao, para que o n de iteraes seja proporcional a 1/. Isto pode reduzir o custo da
procura s custas de retornar solues que podem no ser ptimas por, no mximo, . Este
algoritmo conhecido por -admissvel.

function IDA*(problem) returns a solution sequence

inputs: problem, a problem

local variables: f-limit, the current f-COST limit

root, a node

root MAKE-NODE(INITIAL-STATE[problem])

f-limit f-COST(root)

loop do

solution, f-limit DFS-CONTOUR(root, f-limit)

if solution is non-null then return solution

if f-limit = then return failure; end

function DFS-CONTOUR(node, f-limit) returns a solution sequence and a new f-COST limit

inputs: node, a node

f-limit, the current f-COST limit

local variables: next-f, the f-COST limit for the next contour, initially

if f-COST[node] > f-limit then return null, f-COST[node]

if GOAL-TEST[problem](STATE[node]) then return node, f-limit


for each node s in SUCCESSORS(node) do

solution, new-f DFS-CONTOUR(s, f-limit)

if solution is non-null then return solution, f-limit

next-f MIN(next-f, new-f); end

return null, next-f

Procura SMA*
As dificuldades do IDA* em termos de memria podem ser eliminadas, para se usar pouca
memria. Entre iteraes, ele retm apenas um n nico o limite de custo-f corrente. Porque no
se consegue lembrtar da histria, IDA* tem que repeti-la. Ento ele pode ser modificado para
checar o caminho presente para estados repetidos, mas incapaz de impedir estados repetidos
gerados por caminhos alternativos.

SMA* (Simplified memory-Bounded A*) far uso de toda a memria disponvel para conduzir a
procura. As suas propriedades so:

Usa a memria disponvel toda

Evita estados repetidos to longe quanto a memria o permita

completo se a memria disponvel for suficiente para guardar a soluo menos profunda

ptimo se houver memria suficiente para guardar o caminho ptimo mais superficial

Quando h memria suficiente para toda a rvore de procura, a rvore de procura


optimamente eficiente.

O desenho do SMA* simples. Quando ele precisa de gerar um sucessor mas no tem memria,
deixa cair um n da fila. esses ns so os forgotten nodes. Prefere deixar ns que no so
prometedores (com alto f-custo). Para evitar reexplorar subrvores que deixou cair, ele retm nos
ns antepassados informao acerca da qualidade do melhor caminho na subrvore esquecida.
Desta forma s regenera a subrvore quando todos os outros caminhos se mostrarem piores que
o caminho que foi esquecido.

SMA* melhor explicado por um exemplo em que o objectivo encontrar o n goal de menor
custo com memria s para 3 ns. Cada n ser etiquetado com o f-custo corrente, o qual
continuamente mantido para reflectir o f-custo mais baixo de qualquer dos seus descendentes. Os
valores entre parnteses mostram o valor dos melhores descendentes esquecidos.

(ver ex. detalhado nas pgs. 108/9/10)

SMA* o algoritmo de procura mais complicado com que nos deparmos at agora pg. 110).

dada uma quantidade razovel de memria, o SMA* consegue resolver problemas


significativamente mais difceis que o A*. Ele performa bem em problemas com espaos de
estados altamente conectados e heursticas de valor-real, em que o IDA* tem dificuldade. Mas
ateno, limitaes de memria podem tornar um problema intratvel do ponto de vista do tempo
de computao.

4.4. ALGORITMOS DE MELHORIAS ITERATIVAS

No cap.3 vimos que muitos problemas weel-known (VLSI por ex.) tm a propriedade que a prpria
descrio de estados contm toda a informao necessria para a resoluo. Nesses casos, os
algoritmos de iterative improvement frequentemente fornecem uma aproximao mais prtica.

A ideia geral comear com uma configurao completa e fazer modificaes para aumentar a
sua qualidade.

A ideia tentar encontrar os picos mais altos, os quais so solues ptimas. Usualmente eles
guardam pistas apenas do estado corrente e no olham para a frente para alm dos vizinhos
imediatos. Ex. neural network.

Dividem-se em 2 classes: Hill-climbing (gradient descent) se virmos a funo de avaliao como


um custo em vez de como qualidade), os algoritmos tentam fazer alteraes para melhorar o
esatdo corrente. Simulated annealing podem, por vezes, tornar as coisas piores, pelo menos
temporariamente.

Procura Hill-Climbing
Tenta melhorar, num loop, o valor do estado. s guarda o estado e a sua avaliao (VALUE).

Um refinamento importante quando h mais que um melhor sucessor, o algoritmo escolher


aleatoriamente.

Esta poltica simples tem 3 desvantagens bem conhecidas:

Local Maxima Um mximo local, como oposio a um mximo global, um pico que
menor que o maior pico no espao de estados. Uma vez num mximo local o algoritmo
pode pensar que a soluo satisfatria.

Plateaux uma rea do espao de estados onde a funo de avaliao


essencialmente plana. A procura conduz a uma caminhada aleatria.

Ridges A procura atinge o topo do ridge facilmente mas depois tudo se torna lento.

Se qualquer acontecer, o bvio comear novamente de um ponto diferente: Random-Restart


Hill-Climbing.

O sucesso do hill-climbing depende muito da forma da superfcie do espao de estados. Se h


poucos mximos locais bom, mas um problema real parece um porco-espinho. Se o problema
for NP-completo o tempo fica exponencial. Usualmente, no entanto, uma soluo razovel pode
ser encontrada depois de poucas iteraes.

function HILL-CLIMBING(problem) returns a solution state

inputs: problem, a problem

local variables: current, a node

next, a node
current MAKE-NODE(INITIAL-STATE[problem])

loop do

next a highest-valued successor of current

if VALUE[next] < VALUE[current] then return current

current next

end

Simulated Annealing
Em vez de comear de novo aleatoriamente quando entravados num mximo local, podemos
permitir que a procura d uns passos atrs para baixo na colina para escapar ao mximo local.

O algoritmo foi desenvolvido como uma analogia explcita ao annealing o processo de


gradualmente arrefecer um lquido at congelar. Se o agendamento baixar lentamente, o algoritmo
encontrar um global ptimo.

function SIMULATED-ANNEALING(problem, schedule) returns a solution state

inputs: problem, a problem

schedule, a mapping from time to temperature

local variables: current, a node

next, a node

T, a temperature controlling the probalility of downward steps

current MAKE-NODE(INITIAL-STATE[problem])

for t 1 to do

T schedule[t]

if T=0 then return current

next a randomly selected successor of current

E VALUE[next] VALUE[current]

if E > 0 then current next

else current next only with probality eE/T


Aplicaes nos CSPs
Primeiro associa-se valores a todas as variveis e depois aplicam-se operadores modificadores
para alterar a configurao em direco a uma soluo.

So os chamados algoritmos heuristic repair, porque reparam inconsistncias na configurao


corrente. Ao escolher um novo valor para uma varivel, a mais bvia heurstica seleccionar um
valor que resulte no menor n de conflitos com as outras variveis a heurstica dos min-conflicts.
ex. 8-rainhas.

CAP. 5 JOGOS

Tpicos a Saber (tb com CSP)

CSPs; heurstica do valor menos restritivo; forward checking; backtracking/backjumping; Min-


conflits; jogos; minimax; algoritmo; cortes alfa-beta; acaso nos jogos; estados acreditadso.

Vamos examinar os problemas que surgem quando tentamos planear em avano num mundo que
inclui um agente hostil.

5.1. INTRODUO: JOGOS COMO PROBLEMAS DE PROCURA

O estado do jogo fcil de representar, e os agentes esto usualmente restringidos a um pequeno


n de aces bem definidas.

O oponente introduz incerteza. Em essncia, todos os programas de jogos devem lidar com o
problema da contingncia.

Mas o que torna os jogos realmente diferentes que so muito mais difceis de resolver. No
xadrez, a rvore de procura tem cerca de 35100 ns.

A incerteza surge no porque h falta de informao, mas porque no h tempo para calcular as
consequncias exactas de qualquer lance. Em vez disso, temos de fazer o melhor palpite baseado
na experincia.

A este respeito, os jogos so muito mais como o mundo real do que os problemas standard de
procura que vimos antes.

Temos limites de tempo.

Comearemos a nossa discusso analisando como encontrar teoricamente o melhor lance.


Depois veremos tcnicas para escolher um bom movimento quando o tempo limitado. Aprumar
permite-nos ignorar pores da rvore de procura., e funes de avaliao heurstica permitem-
nos aproximar a verdadeira utilidade de um estado sem fazer a procura completa.

5.2. DECISES PERFEITAS EM JOGOS DE 2 PESSOAS

Vamos considerar o caso geral de um jogo com 2 jogadores, a quem chamamos MAX e MIN. MAX
move primeiro. Um jogo pode ser formalmente definido como um problema de tipo de procura com
os seguintes componentes:
- O estado inicial

- Um conjunto de operadores, que definem os lances legais

- Um teste terminal, que determina quando o jogo acabou

- Uma funo utilidade (tambm chamada funo de pagamento), que nos d um valor numrico
para o estado de um jogo, na perspectiva do MAX.

Temos de definir uma estratgia e veremos como encontrar a estratgia ptima (ou racional).

No jogo do galo, no estado inicial o MAX tem 9 possveis movimentos. Atingiremos os ns folha
correspondentes aos estados terminais: estados onde tem 3 numa linha ou todos os quadrados
esto preenchidos. O n em cada folha indica o valor da utilidade do estado terminal do ponto de
vista do MAX. trabalho do MAX usar a rvore de procura (particularmente a utilidade dos
estados terminais) para determinar o melhor movimento.

Mesmo num jogo to simples muito complexo mostrar toda a rvore, por isso vamos mudar para
o jogo trivial da fig.5.2. Os movimentos possveis para o MAX esto etiquetados A1, A2, e A3. As
possveis respostas do MIN ao A1 so A!!, A12, A13 e assim por diante. Este jogo em particular
termina depois de um movimento de cada jogador (na gria de jogos, dizemos que esta rvore
de profundidade um movimento, consistindo de 2 meio-movimento ou 2 ply)

O algoritmo minimax designado para determinar a estratgia ptima para o MAX, e para decidir
qual o melhor primeiro movimento.

- Gerar toda a rvore do jogo

- Aplicar a funo de utilidade a cada terminal, para obter o seu valor

- Usar a utilidade dos estados terminais para determinar a utilidade dos ns um nvel acima.
Podemos tambm obter o valor para os ns do MIN, pensando que ele vai optar pelo melhor
movimento.

- Continuar a andar para trs at raiz, um nvel de cada vez.

- Neste ponto, o MAX escolhe o movimento que conduz ao maior valor, a que se chama a deciso
minimax, porque ela maximiza a utilidade sob a assuno que o oponente jogar perfeitamente
para a minimizar.

Se a profundidade mxima da rvore m, e h b lances legais em cada ponto, ento a


complexidade em tempo do algoritmo minimax O(bm). O algoritmo depth-first e os seus
requisitos em espao so apenas lineares com m e b.

Fig. 5.3. function MINIMAX-DECISION(game) returns an operator

5.3. DECISES IMPERFEITAS

Habitualmente o tempo de procura completo no praticvel. Ento o programa deve cortar a


procura mais cedo e aplicar uma funo de avaliao heurstica. A funo de utilidade
substituda por uma funo de avaliao EVAL, e o teste terminal substitudo por um teste de
corte CUTOFF-TEST.
Funes de Avaliao
Retorna uma estimativa da utilidade esperada do jogo para uma dada posio.

Por exemplo, os livros introdutrios de xadrez do um valor aproximado para cada pea (valor
material).

Deve ficar claro que a perfomance de um programa de jogo extremamente dependente da


qualidade da sua funo de avaliao.

Primeiro, a funo de avaliao deve concordar com a funo utilidade nos estados terminais.
Segundo, no deve demorar muito tempo. Terceiro, uma funo de avaliao deve reflectir
apuradamente as actuais chances de ganhar.

O ponto importante que dado um dado valor de avaliao, ele cobre muitas diferentes posies,
baseado na experincia.

Isto sugere que a funo de avaliao assuma que o valor da pea pode ser julgado
independentemente das outras peas presentes no tabuleiro. Este tipo de funo de avaliao
chamado funo linear pesada, porque pode ser expressa como:

w1*f1 + w2*f2 + ... + wn*fn

onde os ws so os pesos e os fs so as caractersticas da posio particular.

Cortar a Procura
A aproximao mais directa fixar um limite para a profundidade, de modo a que o teste de corte
tenha sucesso para todos os ns nesse nvel ou abaixo uma profundidade d.

Estas aproximaes podem ter algumas desastrosas consequncias devido natureza de


aproximao da funo de avaliao. Podemos ter de ver em avano mais um ply.

Obviamente, preciso um teste de corte mais sofisticado. A funo de avaliao deve ser apenas
aplicada a posies que so quiescentes, isto , que no estejam sujeitas a exibir mudanas
selvagens num valor num futuro prximo.. No xadrez, por exemplo, posies nas quais capturas
podem ser feitas no so quiescentes para uma funo de avaliao que apenas conta o material.
Posies no quiescentes podem ser expandidas at que posies quiescentes sejam atendidas.

O problema do horizonte mais difcil de eliminar... as pretas podem ir dando cheques por uma
quantidade grande de lances, mas inevitavelmente o peo das brancas ser rainha. No presente,
uma soluo geral para o problema do horizonte ainda no foi encontrada.

5.4. APRUMO ALFA-BETA

Felizmente, possvel computar a deciso minimax correcta sem olhar para todos os ns da
rvore. O processo de eliminar um salto (branch) de procura numa rvore de procura sem o
examinar, chamado aprumo da rvore. A tcnica particular que examinaremos a alfa-beta.
Quando aplicada a rvores standard minimax, retorna o mesmo movimento que o minimax
retornaria, mas elimina saltos que no podem influenciar a deciso final.

O princpio geral : Considerar um n n algures na rvore, tal que o jogador tem a escolha de se
mover para aquele n. Se o Jogador tem uma escolha melhor m no n pai de n, ou em qualquer
ponto de escolha acima, ento n nunca ser atingido no jogo actual. assim, uma vez que
descubramos o suficiente acerca de n (examinando alguns dos seus descendentes) para chegar a
esta concluso, podemos aprum-lo.

Relembremos que a procura minimax depth-first. Consideremos alfa ser o valo da melhor
escolha que encontrmos at aqui, em qualquer ponto de escolha ao longo do caminho para o
MAX, e beta o valor do melhor escolha (mais baixo valor)...para o MIN. A procura alfa-beta
actualiza o valor de alfa e beta medida que vai andando e apruma uma subrvore (isto ,
termina a chamada recursiva) logo que seja sabido que pior que os valores correntes de alfa e
beta.

Efectividade do Aprumo Alfa-Beta


Depende da ordem em que os sucessores so examinados. Isto sugere que pode ser rentvel
tentar examinar primeiro os sucessores que parecem ser os melhores. Se assumirmos que eisto
pode ser feito, o alfa-beta s precisa examinar O(bd/2) ns em vez de O(bd). Isto significa que o
factor de branch efectivo Vb em vez de b para o xadrez, 6 em vez de 35. Dito de outra
maneira, o alfa-beta pode olhar em avano 2 vezes mais que o minimax, ao mesmo custo.

Se os sucessores forem ordenados aleatoriamente ... O((b/log b)d) e o factor de branching efectivo
b/log b, que no muito menor que b. Por outro lado, a frmula assimpttica apenas apurada
para b > 1000 em outras palavras, nem para todos os jogos podemos usar com razoabilidade
esta tcnica.

5.5. JOGOS QUE INCLUIEM UM ELEMENTO DE ACASO

O gamo um jogo tpico que combina capacidades com sorte. Os dados so rolados no princpio
de cada jogada para determinar o conjunto de jogadas permitidas que ficaro disponveis para o
jogador.

Apesar das brancas quais os seus lances legais, no sabe o que as pretas vo obter com o
lanamento dos dados. Isto significa que as brancas no podem construir um rvore completa do
jogo, da maneira que vimos para o jogo do galo e xadrez.

preciso ento incluir ns de acaso em adio aos ns de MAX e de MIN. So crculos. Os dados
podem dar 21 resultados diferentes.

Em vez disso, podemos apenas calcular uma mdia do valor expectvel, onde a mdia tirada
sobre todas as possibilidades dos resultados dos dados.

Para os ns terminais, usamos a funo utilidade, tal como nos jogos determinsticos. Subindo um
nvel na rvore, chegamos a um n de acaso. Consideremos que est etiquetado com C. Seja di
um possvel resultado dos dados, e P(di) a chance ou probabilidade de obter aquele resultado.
Para cada resultado dos dados, calculamos a utilidade do melhor movimento do MIN, e depois
somamos as utilidades, pesadas pela chance que esse particular resultado ocorra. Se for S(C, di)
deotar o conjunto de posies geradas por aplicao de lances legais para os resultados dos
dados P(di) posio em C, ento podemos calcular o chamado valor expectimax de C usando a
frmula: expectimax(C) = P(di) maxsS(C,di)(utility(S))

Andando mais um nvel para cima, para os ns MIN, podemos agora aplicar a frmula normal de
minimax.

Este processo pode ser aplicado recursivamente pela rvore acima, excepto no nvel de topo onde
o resultado dos dados j conhecido. Para calcular o melhor movimento, ento, substitumos
apenas o VALOR-MINIMAX pelo VALOR-EXPECTMINIMAX, o que fica como exerccio.
Avaliao da Posio em Jogos com Ns de Acaso
Temos de ser mais cautelosos acerca do que os valores de avaliao significam. No minimax
podemos usar valores quaisquer (ex: 1,2,3,4 ou 1,20,30,400). Aqui perdemos essa liberdade.

Complexidade de Expectminimax
Ser O(bmnm) onde n o nmero de resultados dos dados diferentes.

Mesmo que a profundidade da rvore seja limitada a um valor pequeno d, o custo extra
comparado com o minimax torna irrealista considerar olhar em avano muito longe em jogos como
o gamo, onde n 21 e b usualmente volta de 20 mas pode atingir 4000. 2 ply
provavelmente o mximo que poderemos atingir.

Em jogos com dados no h sequncias de movimentos boas.

Podemos aplicar algo parecido com o alfa-beta e com um pouco de ingenuidade. Mas se
colocamos fronteiras nos possveis valores da funo de utilidade, podemos chegar a fronteiras
para a mdia. Por exemplo, se dissermos que todos os valores da utilidade esto entre 1 e 1,
ento o valor das folhas est fronteirado, e em troca podemos colocar uma fronteira superior no
valor do acaso sem olhar para todos os seus filhos.

5.6. ESTADO DA ARTE DOS PROGRAMAS DE JOGOS

Perceber como escolher aces em domnios complexos com futuros incertos.

Xadrez

A procura alfa-beta, aumentada com biblioteca de aberturas e algoritmos de fim de jogo infalveis
uma tomada de deciso hbrida.

O Deep Thought examina cerca de meio bilio de posies por segundo, permitindo atingir uma
profundidade de 10 ou 11. O Deep Blue atinge um bilio (100-200 biles por lance) e atinge
profundidade 14.

Damas

H um programa (Samuel) que aprende a sua prpria funo de avaliao jogando contra si
prprio milhares de vezes. Permanece uma das grandes feitos da AI.

Othello - Gamo - Go - .....

5.7. DISCUSSO

Novas abordagens.

No minimax... na realidade, avaliaes so habitualmente estimativas cruas do valor duma


posio, e podem ser consideradas ter grandes erros associados.
Uma maneira de lidar com este problema ter uma avaliao que retorne uma distribuio de
probabilidade sobre valores possveis.

Infelizmente, os valores dos ns irmo so habitualmente altamente correlacionados, e assim


pode ser muito caro calcular e pode ser necessria informao detalhada sobre a correlao, que
difcil de obter.

O problema mais evidente com a procura alfa-beta que ele no s designado para seleccionar
um bom movimento, mas tambm calcular os valores de todos os movimentos legais.

Muitos dos clculos do alfa-beta so altamente irrelevantes.

Numa situao de um claro favorito melhor chegar a uma deciso rpida. Isto conduz noo
de uma expanso de um n. Uma boa procura deve seleccionar expanses de ns de alta
utilidade.

Isto meta-raciocnio.

Este tipo de raciocnio ir directo ao goal ou planear, algumas vezes elimina procura combinatria.

CAP. 6 AGENTES QUE RACIOCINAM LOGICAMENTE

Ler captulo 7, com 38 pginas. Estima-se o tempo de leitura em 4h, e aconselha-se dois periodos de
leitura.
Tpicos a saber: equivalncias lgicas; regras de inferncia: modus ponens / and-elemination;
resolution; CNF; grfico and-or; clausulas Horn; algoritmo DPLL; algoritmo WalkSAT; agentes
inference-based / circuit-based
Trabalho: Simule os diversos mtodos de resoluo lgica, com o auxlio do gerador de problemas
de Lgica Proposicional. Faa bastantes exerccios, medida que resolve um, gerado outro de
maior dimenso, tente fazer at maior dimenso que conseguir, de forma a dominar
completamente os mtodos.

Onde veremos agentes que formam representaes do mundo, usam um processo de inferncia
para derivar novas representaes e usam estas novas representaes para deduzir o que fazer.

Introduziremos o desenho bsico de um agente baseado-no-conhecimento. Agentes que podem


ser vistos como conhecedores do seu mundo e raciocinando acerca das possveis aces
seguintes.

Este tipo de agente precisa saber muitas coisas: o estado corrente do mundo; como inferir
propriedades escondidas do mundo a partir das percepes; como o mundo evolui ao longo do
tempo; onde quer chegar; e o que as suas aces fazem em determinadas circunstncias.
6.1. UM AGENTE BASEADO-NO-CONHECIMENTO

O componente central a base de conhecimento ou KB. Informalmente um conjunto de


representaes de factos acerca do mundo. Cada uma frase. As frases so expressas numa
linguagem chamada Linguagem de Representao do Conhecimento. Tem de haver uma maneira
de acrescentar novas frases e uma maneira de questionar o que conhecido. Os nomes standard
para estas tarefas so TELL e ASK. A resposta deve seguir o que foi TELLED. Determinar o que
segue a tarefa do mecanismo de inferncia, o outro componente principal do agente.

A KB pode ter inicialmente algum conhecimento de fundo. De cada vez que o programa agente
chamado, ele faz duas coisas. Primeiro, ele TELLs base de conhecimento o que ele
percepciona. Segundo, ele ASKs base de conhecimento que aco deve realizar. No processo
de responder a esta questo, raciocnio lgico usado para provar que uma aco melhor que
as outras, dado o que o agente sabe e quais so os seus goals. Ento o agente executa a aco
escolhida.

function KB-AGENT(percept) returns an action

static: KB, uma base de conhecimento

t, um contador, inicialmente a 0, indicando o tempo

TELL(KB, MAKE-PERCEPT-SENTENCE(percept,t))

action ASK(KB, MAKE-ACTION-QUERY(t))

TELL(KB, MAKE-ACTION-SENTENCE(action,t))

t <-- t + 1

return action

Em qualquer altura podemos descrever o agente a 3 nveis:

1 O nvel de conhecimento o epistemolgico que o mais abstracto. Podemos descrever o


agente dizendo o que ele sabe. Se o TELL e ASK funcionarem bem, na maior parte do tempo
podemos trabalhar neste nvel.

2 O nvel Lgico o nvel no qual o conhecimento est codificado em frases

3 O nvel de implementao o nvel que suporta a arquitectura do agente; muito importante


para a eficincia.

possvel construir um agente baseado-no-conhecimento TELLing it o que ele precisa de saber.

O programa inicial do agente, antes de ele comear a receber percepes, construdo


acrescentando uma a uma as frases que representam o conhecimento do ambiente. Esta
chamada a aproximao declarativa pois usa-se uma linguagem de representao.

Tambm se pode desenhar mecanismos de aprendizagem que do como sada conhecimento


gearl acerca do ambiente dada uma srie de percepes. Juntando um mecanismo de
aprendizagem a um agente baseado-no-conhecimento , podemos fazer um agente totalmente
autnomo.
6.2. O AMBIENTE DO MUNDO WUMPUS (ver este ex. no livro muito bem especificado)

Vamos descrever uma classe de ambiente simples o mundo wumpus.

Especificando o Ambiente

Para especificar a tarefa do agente, especificamos as suas percepes, aces e goals:

a stench

a breeze

a glitter

a bump

a scream

as percepes sero dadas ao agente na forma de uma lista de 5 smbolos. ex: [Stench, Breeze,
Glitter, None, None]. O agente no consegue percepcionar a sua localizao.

as aces so ir para afrente, virar direita a 90 , virar esquerda 90. A aco Grab para
pegar um objecto nesse quadrado; a Shoot para disparar uma seta (s tem uma); Climb para
sair da cave.

O agente morre se o quadrado tem um buraco ou o wumpus

O objectivo pegar no ouro e sair da cave.

Os buracos tm probabilidade de 0,2. Na maioria dos ambientes da classe, h uma maneira de o


agente encontrar o ouro. Nalguns outros, o agente tem de escolher entre voltar a casa de mos a
abanar ou arriscar um passo que pode lev-lo morte ou ao ouro. Em cerca de 21% dos
ambientes no h maneira de obter o ouro 8est num buraco ou rodeado de buracos).

Agindo e Raciocinando no Mudo do Wumpus

O agente tem de ter algum tipo de raciocnio lgico. segue-se uma descrio de um exemplo
(pg.155-157).

As inferncias so difceis pois combinem conhecimento ganho em diversas alturas (tempos) em


diferentes lugares, e baseia-se na falta de uma percepo para fazer um passo crucial.

6.3. REPRESENTAO, RACIOCNIO, E LGICA

Vamos ver a natureza das linguagens de representao, das linguagens lgicas em particular e
explicar em detalhe a ligao entre a linguagem e o mecanismo de raciocnio.

O objectivo da representao do conhecimento expressar o conhecimento duma forma tratvel


em computador. Uma linguagem de representao definida em 2 aspectos:

A sintaxe descreve as possveis configuraes que podem constituir frases.


A semntica determina os factos do mundo aos quais as frases se referem. O agente
acredita na frase correspondente.

Desde que estas sejam descritas com preciso, podemos chamar linguagem, lgica, e delas
podemos derivar um mecanismo de inferncia.

importante distinguir entre factos e a sua representao.

Porque as frases so configuraes fsicas de partes do agente, o raciocnio tem de ser um


processo de construir novas configuraes fsicas a partir das antigas. O raciocnio adequado
deve assegurar que as novas configuraes representam factos que na realidade seguem dos
factos que as velhas representaes representam.

Queremos gerar novas frases que so necessariamente verdade, dado que as antigas o so. Esta
relao entre frases chama-se vnculo. Matematicamente: KB entails ou KB |= .

Um processo de inferncia pode fazer uma de duas coisas: dada uma base de conhecimento,
gerar novas frases vinculadas a KB. Ou, dada uma KB e outra frase, ver se essa frase vinculada
por KB. Um procedimento de inferncia que gere apenas frases vinculadas chamado sound ou
truth-preserving. KB |-i que se diz: alfa derivada de KB por i ou i deriva alfa de KB. Por
vezes o procedimento implcito e i omitido.

O registo de uma operao de uma inferncia sound chama-se prova.

Vnculo como a agulha no palheiro. A prova encontr-la.

Um procedimento de inferncia completo se puder encontrar uma prova de qualquer frase que
est vinculada.

A inferncia sound desejvel. Como pode ser atingida?

A chave para a inferncia sound ter os passos de inferncia respeitando a semntica das frases
que operam. Isto , dada uma KB, os passos de inferncia devem apenas derivar novas frases
que representam factos que se seguem dos factos representados por KB. Examinando a
semntica das linguagens lgicas, podemos extrair aquilo que se chama a teoria de prova da
linguagem, a qual especifica os passos de raciocnio que so sound.

Representao
vamos aprofundar a natureza da representao do conhecimento com o objectivo de criar sintaxe
e semntica apropriadas.

As linguagens de programao so boas para descrever algoritmos e estruturas de dados


concretos.

Mas ns queremos que a nossa linguagem de representao do conhecimento suporte o caso


onde no temos a informao completa onde no temos a certeza de certas coisas, mas apenas
sabemos algumas possibilidades de como deve ou no ser. Uma linguagem que no nos permita
fazer isto no suficientemente expressiva.

As linguagens naturais so certamente expressivas, mas so mais adequadas a preencher as


necessidade de comunicao do que de representao. O significado da frase depende da frase e
do seu contexto e sofre de ambiguidade.
Uma boa linguagem de representao de conhecimento deve combinar as vantagens das
linguagens naturais e das linguagens formais. Devem ser expressivas e concisas, no ambguas e
independentes do contexto. Neste livro concentrar-nos-emos na lgica de 1 ordem.

Semntica
Na lgica, o significado de uma frase o que ela diz acerca do mundo. Ento, como adquire uma
frase o seu significado? O escritor tem de atribuir uma interpretao para ela.

Na prtica, todas as linguagens de representao impem um relao sistemtica entre frases e


factos. As linguagens com que lidaremos so todas composicionais o significado de uma frase
uma funo do significado das partes.

Na seco 6.4. descrevemos a semntica de uma linguagem simples, a linguagem da lgica


proposicional, que obedece a constries como estas. Essas constries tornam mais fcil
especificar uma teoria de prova que respeita a semntica.

Uma frase verdadeira sob uma determinada interpretao se o estado de coisas que
representa o caso.

Note que a verdade depende da interpretao da frase e do estado actual do mundo.

Inferncia
Neste cap. estamos preocupados com o raciocnio, que chamaremos de deduo ou inferncia
lgica. Esta um processo que implementa o vnculo entre frases. H um n variado de caminhos
de fazer a aproximao ao design dos sistemas de inferncia lgica. Vamos comear com a ideia
frase necessariamente verdadeira.

Validade e Satisfao
Uma frase vlida ou necessariamente verdadeira se e s se verdadeira sob todas as possveis
interpretaes em todos os possveis mundos, isto , analisando o suposto significado e o estado
de cosias no universo descrito. Por ex. H um stench em [1,1] ou no h um stench em [1,1].

H vrios sinnimos de frase vlida frase analtica ou tautologia.

Uma frase satisfatria se e s se h alguma interpretao nalgum mundo para o qual


verdadeira. Se no insatisfatria, como por ex. as frases auto-contraditrias.

Inferncia em Computadores
Veremos que a validade e insatisfao so cruciais para a capacidade de um computador
raciocinar.

O computador sofre de 2 handicaps: ele no sabe necessariamente a interpretao que ns


usamos para as frases na KB, e no sabe nada acerca do mundo para alm do que aparece na
KB.
Mas o mecanismo de inferncia formal pode muito bem lidar com frases vlidas da forma if KB
the P, onde KB uma conjuno de milhares de frases.

Para reiterar, a grande coisa acerca da inferncia formal que pode ser usada para derivar
concluses vlidas mesmo quando o computador no sabe a interpretao que estamos a usar. O
computador apenas reporta concluses vlidas.

A palavra you neste pargrafo pode ser igualmente aplicada aos agentes humanos e
computacionais.

Lgicas
Para sumariar, podemos dizer que uma lgica que consista no seguinte:

1. Um sistema formal para descrever estados de coisas consistindo em

1.a). A sintaxe da linguagem

1.b). A semntica de linguagem

2. A teoria de prova um conjunto de regras para deduzir os vnculos de um conjunto de


frases.

Vamos concentrar-nos em 2 tipos de lgica: proposicional ou Booleana e de primeira-ordem.

Na proposicional, os smbolos representam proposies (factos). Os smbolos proposicionais


podem ser combinados usando conectores booleanos para gerar frases com significados mais
complexos. Esta lgica faz poucos comprometimentos com a forma como as coisas so
representadas, por isso no nos d muita margem de manobra.

A lgica de 1 ordem compromete-se com a representao dos mundos em termos de objectos e


predicados de objectos (isto , propriedades dos objectos e relaes entre eles), bem como usa
conectores e quantificadores, o que permite que as frases sejam escritas acerca de tudo do
universo.

Os compromissos ontolgicos tm a ver com a natureza da realidade. Lgica Temporal.

Os compromissos epistemolgicos tm a ver com os possveis estados do conhecimento que um


agente pode ter usando vrios tipos de lgica. Sistemas que usam a teoria das probabilidades, por
outro lado, podem ter qualquer grau de acreditao, desde 0 a 1. Sistemas baseados na lgica
fuzzy podem ter vrios graus de crena numa frase e tambm vrios graus de verdade.

Linguagem Compromisso Ontolgico (o que Compromisso Epistemolgico (o


existe no mundo) que um agente cr acerca dos
factos

Lgica Proposicional factos true/false/unknown

Lgica de 1 ordem factos, objectos, relaes true/false/unknown

Lgica Temporal factos, objectos, relaes, factos true/false/unknown


temporais

Teoria das Probabilidades grau de verdade degree of belief 0...1


Lgica Fuzzy degree of belief 0...1

6.4. LGICA PROPOSICIONAL: UMA LGICA MUITO SIMPLES

Sintaxe
Os smbolos da lgica proposicional so constantes lgicas True e false, smbolos de proposies
tais como P e Q, os conectores lgicos , V, , => e ~ e os ( ). Todas as frases so feitas
colocando estes smbolos com as seguintes regras:

As constantes lgicas True e False so frases

Um smbolo de proposio tal como P ou Q so frases

Colocar ( ) numa frase conduz a uma frase

Uma frase pode ser formada combinando frases simples com um dos 5 conectores:

(implies): Uma frase como (P and Q) => R chamada uma implicao (ou
condicional). A sua premissa ou antecedente P and Q, e a sua concluso ou
consequncia R. Implicaes so tambm conhecidas como regras ou if-then
frases.

Uma gramtica para a lgica proposicional dada a seguir na notao BNF. A gramtica introduz
frases atmicas (smbolo nico, ex: P) e frases complexas (contm conectores ou ( )). O termo
literal usado para designar uma frase atmica ou a sua negao.

Sentence -> AtomicSentence | ComplexSentence

AtomicSentence -> True | False

| P | Q | R |...

ComplexSentence -> (Sentence)

| Sentence Conective Sentence

| ~Sentence

Conective -> and | V | | =>

Estritamente falando a gramtica ambgua, por isso damos prcedncias aos operadores e
usamos parnteses. A ordem ~, and, V, =>,

Semntica
Definimo-la pela especificao da interpretao dos smbolos e constantes da proposio, e
especificando o significado dos seus conectores lgicos. Um smbolo proposicional pode ser tudo
o que se quiser. Uma frase contendo apenas um smbolo proposicional satisfatria mas no
vlida verdade apenas quando o facto que refere o caso. Com as constantes no h
hiptese.

Uma frase complexa tem o seu significado derivado do significado das suas partes. Cada conexo
pode ser pensada como uma funo. Uma maneira de definir uma funo atravs duma tabela
que apanhe todas as possveis combinaes possveis das entradas no nosso caso a tabela
da verdade.ex:

P Q ~P P and Q PVQ P =>Q PQ

F F T F F T T

F T T F T T F

T F F F T F F

T T F T T T T

De alguma maneira, o conector implicao o mais importante, e a sua tabela pode ser confusa
primeira vista, porque no se enquadra bem na nossa compreenso intuitiva de P implica Q ou
if P then Q. Por alguma razo a lgica proposicional no requer qualquer relao de causa ou
relevncia entre P e Q. O sentido Se P verdade, ento eu reclamo que Q verdade. De outro
modo eu no reclamo nada.

Validade e Inferncia
As tabelas da verdade podem ser usadas no s para definir conectores mas tambm para testar
a validade das frases. Se a frase for verdade em todas as linhas, ento a frase vlida. ex: ((P V
Q) and ~H) => P

Isto importante. Diz que uma mquina tem algumas premissas e uma possvel concluso, ela
pode determinar se a concluso verdadeira. Pode fazer isso construindo uma tabela da verdade
para a frase Premissas => Concluso e checar todas as linhas. Se todas as linhas forem verdade,
a concluso vinculada pelas premissas.

Modelos
Qualquer mundo no qual uma frase verdade sob uma interpretao particular chamado um
modelo dessa frase sob essa interpretao.

Os modelos so muito importantes na lgica, para recolocar a definio de vnculo, uma frase alfa
vinculada por uma KB se os modelos de KB forem modelos de alfa.

Alguns autores preferem pensar os modelos como objectos matemticos. Neste ponto de vista,
um modelo na lgica proposicional simplesmente um plano dos smbolos proposiconais
directamente para a verdade ou falsidade, isto , a etiqueta para uma linha numa tabela da
verdade. Ento os modelos da frase so apenas aqueles planos que tornam a frase verdade.
Regras de Inferncia para a Lgica Proposicional
uma generalizao. O padro de inferncia (usado nas tabelas da verdade...) pode ser captado
e chamado regra de inferncia. Uma vez a regra estabelecida, ela pode ser usada sem ir pelo
entediante processo de construir tabelas da verdade.

As letras , representam qualquer frase e nos s smbolos proposicionais.

Uma regra de inferncia sonora se a concluso verdade em todos os casos onde as


premissas so verdade.

1. Modus Ponens ou Implicao-Eliminao (de uma implicao e da premissa da implicao,


podemos inferir a concluso)

=> ,

------------------

2. And-Eliminao (de uma conjuno, pode inferir-se qualquer dos conjunctos)

1 and 2 and ... and n

----------------------------------

3. And-Introduo (de uma lista de frases, pode inferir os seus conjunctos)

1, 2, ... , n

---------------------------------

1 and 2 and ... and n

4. Or-Introduo (de uma frase, pode inferir a sua disjuno sm mais nada)

-------------------------

1 V 2 V ... V n

5. Eliminao da Dupla Negao


~~

------

6. Resoluo Unitria (de uma disjuno, se um dos disjuntos falso, ento pode-se inferir
que o outro verdade)

V , ~

----------------

7. Resoluo (esta a mais difcil. Porque no pode ser simultaneamente verdade e falso,
um dos outros disjuntos tem de ser verdade em uma das premissas. Ou,
equivalentemente, implicao transitiva)

V , ~ V ~ => , =>

---------------------- ou equivalentemente --------------------------

V ~ V

Para melhor compreender a ltima, ver fig. 6.14 (pg.173) tab. verdade demosntrativa.

Complexidade da Inferncia Proposicional

O mtodo da tabela da verdade completo; por outro lado a complexidade exponencial em n


e, por isso, impraticvel. Podemos querer saber se existe um procedimento de prova com
tempo-polinomial para a lgica proposicional usando as regras de inferncia. Teoricamente
no h, mas em muitos casos, a prova de uma dada frase refere-se somente a um pequeno
conjunto de KB e pode ser encontrado rapidamente.

Para usar as regras de inferncia para chegar a concluses baseamo-nos numa propriedade
de certas lgicas chamada monoticidade. Uma lgica monotnica quando ns
acrescentamos novas frases KB e todas as frases vinculadas pela KB original se mantm
vinculadas na nova KB. fcil mostrar que a lgica proposicional e a de 1 ordem so
montonas. Uma regra de inferncia como a Modus Ponens local porque as suas premissas
tm de ser comparadas com uma pequena poro da KB (2 frases, na realidade).

H tambm uma til classe de frases para as quais a inferncia em tempo polinomial existe.
a classe chamada frase de Horn, que tem a seguinte forma:
P1 and P2 and ... and => Q

onde P1 e Q so tomos no negados. H 2 casos especiais importantes: Primeiro quando Q


a constante False, ficamos com uma frase que equivalente a ~P1 V ... V ~Pn. Segundo,
quando n=1 e P1 = True, ficamos com True => Q, o que equivalente frase atmica Q.

Nem todas as KB podem ser escritas como uma coleco de frases Horn, mas para as que
podem, podemos usar uma regra de inferncia simples: aplique o Modus Ponens onde for
possvel at novas inferncias no poderem ser feitas.

6.5. UM AGENTE PARA O MUNDO DO WUMPUS...

CAP. 7 (2 Edio) AGENTE LGICO

Equivalncias Lgicas Standard

() () comutatividade de

(V) (V) comutatividade de V

(()) (()) associatividade de

((V)V) (V(V)) associatividade de V

() eliminao da dupla negao

( ) ( ) contraposio

( ) ( V ) eliminao da implicao

( ) (( ) ( )) eliminao biconditional

() ( V ) de Morgan

(V) ( ) de Morgan

((V)) (() V ()) distributividade de sobre V

(V()) ((V) (V)) distributividade de V sobre

Infelizmente, todos os algoritmos de inferncia conhecidos para a lgica proposicional tem


uma complexidade do pior caso que exponencial com o tamanho da entrada. No
esperaremos melhor do que isto porque o seguimento proposicional co-NP-completo.
Duas frases so logicamente equivalentes se so ambas verdade no mesmo conjunto de
modelos. Escrevemos isto como . Por exemplo, podemos facilemnte mostrar que PQ e
QP so logicamente equivalentes. Tm o mesmo papel na lgica que as identidades na
aritmtica. Uma definio alternativa :

se e s se |= e |=

Muitos problemas na cincia computacional so na verdade problemas de satisfabilidade. Por


ex. os CSPs perguntam essencialmente se as restries so satisfeitas por alguma
associao. Com transformaes apropriadas, os problemas de procura tambm podem ser
resolvidos verificando a satisfabilidade. Validade e satisfabilidade esto, calro, ligadas:
vlida se e s se insatisficvel; em contarposio satisficvel sse no vlida.
Temos tambm o seguinte resultado til:

|= sse a frase ( ) no satisfeita.

Provando de por verificao da insatisfabilidade de () corresponde exactamente


tcnica de prova matemtica standard de reduo ao absurdo. Tambm chamada de prova
por refutao ou contradio. Assumimos uma frase como false e mostramos que isto
conduz a uma contradio com os axiomas conhecidos. Esta contradio exactamente o
significado de dizer que a frase () insatisfeita.

Forma Normal Conjuntiva

A regra de resoluo aplica-se s a disjunes de literais, logo pode parecer relevante ter KB e
questes consistindo desse tipo de disjunes. Como pode isso conduzir a um procedimento
de inferncia para toda a lgica proposicional? A resposta que toda a frase da lgica
proposicional logicamente equivalente a uma conjuno de disjunes de literais.

Uma frase expressa numa conjuno de disjunes diz-se que est na Forma Conjuntiva
Normal ou CNF. H tambm a k-CNF.

Exemplo: converter a frase B1,1 (P1,2 V P2,1)

Os passos so:

1. Eliminar , substituindo por ( ) ( )

2. Eliminar , substituindo por V

3. O CNF requer que aparea s em literais, logo movemos para dentro dos parnteses
pela aplicao repetida das seguintes equivalncias: eliminao da dupla negao e leis de
Morgan.
4. Agora temos uma frase contendo opeardores e V aninhados aplicados a literais.
Aplicamos a lei distributiva (V sobre sempre que possvel)

A frase original est agora na CNF. Ser mais difcil de ler, mas pode ser usada como entrada
de um procedimento de resoluio.

Um Algoritmo de Resoluo

Os procedimentos de inferncia baseados na resoluo trabalham usando o princpio da prova


por contradio. Isto , para mostrar que KB|=, mostramos que (KB) insatisfeito.
Fazemos isto provando uma contradio.

O algoritmo : primeiro (KB) convertida na CNF. Depois, a regra de resoluo aplicada


s clasulas resultantes. Cada par que contm literias complementares resolvido para
produzir uma nova clusula, que adicionada ao conjunto se ainda no estiver presente. O
processo continua at que uma de 2 coisas acontea:

- No h novas clususlas que possam ser adicionadas, e assim no segue

- Uma aplicao da regra da resoluo deriva a clusula vazia, e assim segue

A clusula vazia uma disjuno sem disjuntos) equivalente a falso porque uma disjuno
s true se pelo menos um dos disjuntos o for.

Completeza da Resoluo

PL-Resoluo completo, prova-se que termina sempre.

O teorema de completeza para a resoluo na lgica proposicional chamado de teorema de


resoluo ground: Se um conjunto de clusulas insatisfazvel, ento o fecho de resoluo
dessas clusulas contm a clusula vazia.

Encadeamento para a frente e para trs

A completeza da resoluo faz dela um mtodo importante de inferncia. Em muitas situaes


prticas, contudo, o poder total da resoluo no preciso. As KB do mundo real, muitas
vezes, contm apenas clusulas de um tipo restrito, chamadas clusulas Horn. uma
disjuno de literais dos quais no mximo um positivo.

Esta restrio pode parecer arbitrria mas importante por 3 motivos:

1- Todas as clusulas Horn podem ser escritas como uma implicao cuja premissa uma
conjuno de literais positivos e cuja concluso um nico literal positivo. Por ex. (L1,1 V
Breeze V B1,1) pode ser escrita como a implicao (L1,1 Breeze) => B1,1 mais fcil de ler.
Este tipo de clusulas Horn com exactamente um literal positivo so chamadas clusulas
definidas. O literal positivo chamado de cabea e os litearais negativos forma o corpo da
clusula. Uma clusula definida sem litaerais negativos simplesmente assertam uma dada
proposio por vezes chamado de facto. As clusulas definidas formam a base para a
programao lgica. Uma clusula Horn sem literais positivos pode ser escrita como uma
implicao cuja concluso o litaeral false. ex. (W1,1 V W1,2) equivalente a W1,1 W1,2 =>
false. Estas frases so chamadas restries de integridade na KB.

Nos algoritmos que se seguem assumimos que que as KB contm apenas clusulas definidas
e sem restries de integridade, isto , esto na forma de Horn.

2- A inferncia com clsulas Horn pode ser feita atravs de algoritmos de forward chaining e
backward chaining fceis para os humanos.

3- Decidir o seguimento com clusulas Horn pode ser feito em tempo linear no tamanho da
KB.

O algoritmo FC PL-FC-ENTAILS?(KB,q) determina quando uma proposio simples q a


questo seguimento da KB de clsulas Horn. Comea com factos conhecidos (literais
positivos) na KB. Se todas as premissas de uma implicao so conhecidas, ento a sua
concluso adicionada ao conjunto de factos conhecidos. Por ex. se L1,1 e Breeze so
conhecidos e (L1,1 Breeze) => B1,1 est na KB, ento B1,1 pode ser adicionada. Este processo
continua at que q adicionada ou at que mais nenhuma inferncia possa ser feita.

A melhor maneira de compreender o algoritmo atravs dum ex.

Nos grficos AND-OR, ligaes mltiplas juntas por um arco indicam uma conjuno todos
os links devem ser provados enquanto links mltiplos sem um arco indicam uma disjuno
qualquer link pode ser provado. fcil ver como o algoritmo FC funciona no grfico. As folhas
conhecidas (aqui A e B) so setadas, e a inferncia propaga-se para cima, no grfico, to
longe quanto possvel. Sempre que uma conjuno aparece, a propagao espera art que os
conjunctos sejam conhecidos, antes de prosseguir.
fcil de ver que o FC sound: todas as inferncias so essencialmente uma aplicao do
Modus Ponens. Tambm completo: todas as frases atmicas seguidas sero derivadas.

FC um ex. do conceito geral raciocnio conduzido pelos dados.

O algoritmo backward chaining, como o nome sugere, trabalha da frente para trs a partir da
query. Se a query q conhecida como true, ento no preciso qualquer trabalho. de outro modo,
o algoritmo encontra aquelas implicaes na KB que concluem q. Se todas as premissas de uma
dessas implicaes pode ser provada como true (por encadeamento para trs), ento q true. No
nosso ex. desce no grfico at atingir um conjunto de factos conhecidos que forma a base da
prova. O algoritmo completo deixado como exerccio. A sua implementao tambm linear no
tempo. um ex. de raciocnio direccionado para o goal.

Um Algoritmo Backtracking Completo

o algoritmo David-Putnam (DPLL). ele toma como entrada uma frase na forma CNF um
conjunto de clusulas. Como o BACKTRACKING-SEARCH e TT-ENTAILS?, essencilamente
recursivo, enumerao depth-first de modelos possveis. Envolve 3 melhoramentos sobre o TT-
ENTAILS?

- Terminao mais cedo detecta se a frase false ou true mesmo com um modelo parcialmente
completo. Uma clusula true se algum literal true, mesmo que os outros ainda no tenham
ainda valor true. Por ex., a frase (AVB) (AVC) true se A true. Similarmente, uma frase false
se alguma clusula false, o que ocorre quando cada um dos literaris false. Evita pois
examinao de subrvores inteiras no espao de procura.

- Heurstica de Smbolos Puros. Um smbolo puro um smbolo que aparece sempre com o
mesmo sinal em todas as clusulas. Por ex. nas 3 clusulas (AVB), (BC) e (CVA), o smbolo
A puro. B tambm. C no. fcil de ver que se uma frase tem um modelo, ento tem um modelo
com os smbolos puros associados de modo a fazer os seus litearis true, porque dessa maneira
nunca podem fazer uma clusula false. Note-se que, na determinao da pureza de um smbolo, o
algoritmo pode ignorar clusulas que so j conhecidas serem true no modelo construdo at a.
Por ex., se o modelo contm B=false, ento a clusula (BVC) j true e C torna-se puro
porque parece apenas em (CVA).

- Heurstica de Clusula Unitria uma clusula com apenas um literal. No contexto do DPLL,
tambm significa clusulas nas quais todos os literais menos um esto j associados false pelo
modelo. Por ex. se o modelo cont, B=false, ento (BVC) torna-se equivalente a (false VC) ou
apenas C. Faz isto 8associao) a todas antes de prosseguir.

Uma consequncia importante disto que qualquer tentativa de provar 8por refutao) um literal
que j est na KB tem sucesso de imediato. Veja-se tambm que associar uma clusula unitria
pode ciar uma outra clusula unitria por ex. quando C posta a false, (CVA) torna-se uma
unitria, causando que true seja associado a A. esta cascata de associa~eos foradas
chamada de propagao unitria. parecido com FC.

Se a expresso CNF contm apenas clusulas Horn ento o DPLL essencialmente replica o FC.
Algoritmos de Procura Local
Porque o goal encontrar uma associaoque satisfaz todas as clusulas, uma funo de
avaliao que conte o n de clusulas no satisfeitas, faz o trabalho.

O objectivo, tal como nos CSPS encontrar o balano entre a ganncia e a aleatoriedade.

Um dos mais simples e eficientes algoritmos a emergir o WALKSAT. Em cada iterao, o


algoritmo pege uma clusula insatisfeita e pega num smbolo da clusula para mudar. Escolhe
aleatoriamente entre 2 caminhos para pegar que smbolo a mudar: (1) um passo min-conflicts
que minimiza o n de clusulas insatisfeitas no novo estado, e (2) um passo randmico que pega
no smbolo aleatoriamente. Pode nunca terminar. Se retorna falha no sabemos se satisfazvel
ou no. So pois mais teis quando esperamos que uma soluo exista.

Agentes Baseados Em Circuitos


um caso particular de agente reflexo com estados, como definido no cap.2. As percepes so
entradas para um circuito sequencial uma rede de portas, cada uma das quais implementa uma
conexo lgica, e registos, cada um dos quais guarda o valor lgico de uma proposio simples.
As sadas do circuito so registos correspondendo a aces por ex. a sada Grab setada a
true se o agente quer apanhar algo.

Os circuitos so avaliados duma forma dataflow. Em cada instante/passo, as entradas so


setadas e os sinais propagam-se pelo circuito. Sempre que uma gate tem todas as entradas,
produz uma sada. o processo parecido com o FC e AND-OR.

Alivet Screamt Alivet-1

A lgica proposicional e a de 1 ordem so designadas para representar true, false e proposies


desconhecidas automaticamente, mas os circuitos no. os registos precisam ter true ou false
mesmo antes do valor verdadeiro ser descoberto. A soluo, para no conduzir confuso usar
2 bits, um indica o valor K e o outro o K(). Quando ambos so false quer dizer que no sabemos
o valor verdadeiro. Os 2 true bug.

Em geral, representamos cada potencial proposio indeterminada com duas proposies de


conhecimento que declara quando a proposio em causa conhecida como true ou false.

Dizemos que um ambiente exibe uma localidade se a true de cada proposio de interesse pode
ser determinada olhando apenas para um n constante de outras proposies. Minesweeper no
local (temos de olhar para trs o que for preciso), o que no bom para ABC.

Um circuito acclico se todos os caminhos que conectam a sada de um registo para


trs/feedback para a sentradas tem um elemento de atraso. Queremos que todos os circuitos
sejam acclicos.

Comparao:

O agente baseado em inferncia representa o extremo declarativo, enquanto o baseado em


circuitos, o procedimental.

- Conciso: o ABC, ao contrrio do ABI, no precisa de ter cpias separadas do seu conhecimento
para qualquer passo no tempo. Em vez disso, ele refer-se apenas aos passos correntes e
anteriores no tempo. ambos precisam de cpias da fsica (expressas como circuitos ou frases)
para cada quadrado e depois no se do bem com ambientes grandes. para isso so melhores os
de 1 ordem.

- Eficincia Computacional: No pior caso, a inferncia pode tomar tempo exponencial no n de


smbolos, enquanto avaliar um circuito toma tempo linear no tamanho do circuito. Na prtica,
contudo, vimos que o DPLL completa as inferncias requeridas em tempo rpido.... linear tb.

- Completeza: ABC incompleto.

- Facilidade de Construo: difcil ser preciso.

Em suma, quando a conexo entre percepes e aces simples (ex. Glitter Grab) um circuito
parece ptimo. Para conexes mais complexas, a aproximao declarativa pode ser melhor.

Os pequenos animais so ABC e os humanos ABI hbrido tem o melhor dos 2 mundos.

Lio 6 Cap. 7, 8 e 9

Palavras/Conceitos Chave

Tpicos a saber: diferncias entre lgicas; traduzir uma expresso lgica para texto e vice-versa;
passar de lgica de 1 ordem para lgica proposicional; unificao; algoritmo forward-chaining /
backward-chaining; ontologias; redes semnticas; dedues com informao de omisso
Trabalho: Construa uma lista de 10 provrbios populares em lgica de primeira ordem, e tente
encontrar dois provrbios que estejam em contradio.

CAP.7 LGICA DE PRIMEIRA ORDEM

Onde veremos uma lgica que suficiente para construir agentes baseados-no-conhecimento

Infelizmente, a lgica proposicional tem uma ontologia muito limitada, comprometendo-se


apenas em que o mundo consiste de factos.

A lgica de 1 ordem tem comprometimentos mais fortes. O primeiro que o mundo consiste
em objectos, que tm propriedades que os distinguem. Entre estes objectos existem relaes.
Algumas delas so funes.

Dividir o mundo duma certa maneira ajuda-nos a raciocinar sobre ele. Combinada com os
conectores da lgica proposicional, podemos estabelecer leis gerais e regras.

H um comprometimento com coisas como categorias, tempo e eventos.

Esta lgica permite-nos a liberdade de escolha de descrever as coisas de um modo


apropriado a cada domnio.

H muitos esquemas em uso na AI. Alguns so teoricamente equivalentes lgica de 1


ordem e outros no, mas esta universal no sentido que pode expressar qualquer coisa que
pode ser programada.
Escolhemos estudar a representao do conhecimento e o raciocnio usando a lgica de 1
ordem, porque de longe a mais estudada e melhor compreendida at hoje.

7.1. SINTAXE E SEMNTICA

Na lgica proposicional toda a expresso uma frase, que representa um facto. A lgica de 1
ordem tem frases, mas tambm tem termos, que representam objectos. Smbolos de
constantes, variveis, e smbolos de funo so usados para construir termos, e
quantificadores e predicados so usados para construir frases.

Smbolos de Constantes: A, B, C, John, ...

Cada um nomeia exactamente um objecto, mas nem todos precisam de ter nomes e h
aqueles que tm mais de 1 nome.

Smbolos de Predicado: Redondo, Irmo,...

Especifica uma relao particular. Num dado modelo, a relao definida pelo conjunto de
tuplos de objectos que a satisfazem. Um tuplo uma coleco de objectos arranjados numa
ordem fixa. So escritos com parntesis angulares cercando os objectos. Ex. num modelo com
3 objectos (KJ, RtL e Robin Hood), a relao de irmandade definida por:

{ < King John, Ricahrd the Lionheart>,

< Ricahrd the Lionheart, King John> }

Smbolos de Funo: Coseno, PaiDe, PernaEsquerdDe,...

Algumas relaes so funcionais, isto , qualquer objecto est relacionado exactamente com
outro.

Ao contrrio dos smbolos de predicado, os quais so usados para dizer que as relaes so
entre certos objectos, os smbolos de funo so usados para referir objectos particulares sem
usar o seu nome.

Termos

Um termo uma expresso lgica que se refere a um objecto. Constantes so termos. Por
vezes mais conveniente usar uma expresso para referir um objecto. Por ex., em Ingls
podemos usar a expresso King Johns left leg em vez de lhe dar um nome. para isto que
servem as funes: em vez de usar uma constante, usamos LeftLegOf(John). No caso gearl,
um termo complexo formado por um smbolo de funo seguido por uma lista de termos
como argumentos da funo, entre parntesis.

Frases Atmicas
Podemos juntar predicados e termos para formar frases atmicas que referem factos. Uma
frase atmica formada por um predicado seguido por uma lista de termos entre parntesis:

Brother(Richard, John)

Married(FatherOf(ricahrd), MotherOf(John))

Um frase atmica true se a relao referida pelo predicado se verifica entre os objectos
referidos pelos argumentos. A relao verifica-se apenas no caso do tuplo de objectos estar na
relao.

Frases Complexas

Podemos usar conectores lgicos para construir frases mais complexas:

Brother(Richard,John) Brother(John, Richard)

Older(John, 30) V Younger(John,30)

Older(John,30) => ~Younger(John,30)

~Brother(Robin, John)

Quantificadores

Para expressar coleces inteiras de objectos, em vez de ter de enumerar os objectos pelo
nome.

Quantificao Universal ()

x Cat(x) => Mammal(x)

Usamos a conveno que todas as variveis comeam por letra minscula, e todas as
constantes, predicados, e funes so capitalizadas.

Um termo que no tenha variveis chamado de termo ground.

Assim, a tabela da verdade para => parece ser perfeita escrever regras gerais com
quantificadores universais.

Quantificao Existencial ()

Similarmente, podemos fazer uma frase acerca de alguns objectos no universo, sem os
nomear.

x Sister(x, Spot) Cat(x)


O and () o conectivo natural para usar com o .

Por ex: se: x Sister(x, Spot) => Cat(x)

Uma implicao true se ambas a premissa e a concluso forem true, ou se a sua premissa
for falsa. Assim, se RtL no for irm de Spot, ento a implicao Sister(Spot, Richrd) =>
Cat(Richard) true e a disjuno completa true.

Quantificadores Aninhados

x,y Parent(x,y) => Child(y,x)

x,y Brother(x,y) => Sibling(y,x)

x y Loves(x,y)

y x Loves(x,y)

A ordem dos quantificadores muito importante.

Uma dificuldade menor surge quando dois quantificadores so usados com o mesmo nome de
varivel: x [Cat(x) V (x Brother(Richard,x))]

A regra que a varivel pertence ao quantificador mais interior que a menciona.

Todas as variveis devem ser introduzidas por um quantificador antes de serem usadas. Uma
frase como x P(y) est incorrecta. Surge ento o termo frmula bem formada (well-formed
formula ou wff).

Ligaes Entre e

Os 2 quantificadores esto intimamente ligados atravs da negao:

x ~Likes(x,Parsnips) equivalente a ~x Likes(x, Parsnips)

x Likes(x,IceCream) equivalente a ~x ~Likes(x,IceCream)

Eles obedecem s Leis de Morgan

x ~P = ~x P ~P ~Q = ~(PVQ)

~x P = x ~P ~(PQ) = ~P V ~Q

x P = ~x ~P PQ = ~(~P V ~Q)

x P = ~x ~P P V Q = ~(~P ~Q)
Assim, no precisamos na realidade de ambos, tal como no precisamos de ambos and e or.

Igualdade

A lgica de 1 ordem inclui mais de uma maneira de construir frases atmicas, para alm de
usar predicados e termos como descrito atrs. Podemos usar o smbolo de igualdade:

Father(John) = Henry

A igualdade pode ser vista como um smbolo de predicado e fixo referir relao de
identidade.

x,y Sister(Spot,x) Sister(Spot,y) ~(x=y)

7.2. EXTENSES E VARIAES NOTACIONAIS

Lgica de Ordem-Mais-Alta

A lgica de ordem mais alta permite-nos quantificar sobre relaes e funes tal como os
objectos na de 1 ordem.

x,y (x=y) (p p(x) p(y))

f,g (f=g) (x f(x) = g(x))

Expresses Funcionais e de Predicado Usando o Operador

Ex. de -expresso:

(x,y x2-y2)(25,24) = 252 242 =49

x,y Gender(x) != Gender(y) Address(x) = Address(y)

O Quantificador Unicidade !

Diz que um nico objecto satisfazendo um dado predicado existe.

!x King(x)

Podemos pensar no como o acrescentar de um novo quantificador, mas como sendo uma
abreviao conveniente para a frase mais longa:

x King(x) y King(y) => x=y


O Operador Unicidade

s vezes ainda mais conveniente ter um termo representando o nico objecto directamente.

Dead( r Ruler(r, Freedonia)) a abreviatura de :

!r Ruler(r, Freedonia) s Ruler(s,Freedonia) => Dead(s)

Variaes Notacionais

H quadro completo na pg.196

No Prolog: usa-se maisculas para variveis e minsculas para constantes; Inverte a ordem
das implicaes, escrevendo Q :- P em vez de P => Q; Uma vrgula usada tanto para
separar argumentos como para conjuno; e um ponto final marca o fim de uma frase.

cat(X) :- furry(X), meows(X), has(X,claws).

7.3. USANDO LGICA DE 1 ORDEM

Na representao do conhecimento, um domnio uma seco do mundo acerca daqual ns


queremos expressar algum conhecimento.

O Domnio Kinship

O primeiro exemplo que consideramos o domnio das relaes familiares.

Claramente, os objectos so pessoas; as propriedades incluem gnero e esto relacionados


por relaes tais como paternidade, irmandade, casamento, etc. Temos 2 predicados unrios,
Macho e Fmea. Muitas das relaes sero predicados binrios: Pai, Irmo, Irmo, Irm,
Filho, Filha, Filho, Esposa, Mulher, Marido, Av, Neto, Primo, Tia, Tio. Usaremos funes para
Me e Pai.

m,c Mother(c)=m Female(m) Parent(m,c)

Axiomas, Definies e Teoremas

Os matemticos escrevem axiomas para captar os factos bsicos acerca de um domnio,


definem outros conceitos com base nos axiomas e usam axiomas e definies para provar
teoremas. Em AI no se usa o termo teorema, mas as frase que esto na base de
conhecimento inicialmente so por vezes chamadas de axiomas e habitual falar de
definies. Isto traz a questo importante: como sabemos que escrevemos axiomas
suficientes para especificar completamente um domnio? Uma maneira decidir de um
conjunto de predicados bsicos (ex. Child, Spouse, Male e Female) e definir os outros em
termos destes.

Um axioma independente um que no pode ser derivado dos outros. Em AI comum incluir
axiomas redundantes, de modo a tornar o processo de prova mais eficiente.

Um axioma da forma x,y P(x,y) = ... frequentemente chamado de definio de P.

O Domnio dos Conjuntos

Queremos ser capazes de representar conjuntos individuais, incluindo o conjunto vazio.

EmptySet uma constante; Member e Subconjunto so predicados; Intersection, Union e


Adjoin so funes.

Os 8 seguintes axiomas provm isso:

1. s Set(s) (s = EmptySet) V (x,s2 Set(s2) s = Adjoin(x,s2))

2. ~x,s Adjoin(x,s)=EmptySet

3. x,s Member(x,s) s=Adjoin(x,s)

4. x,s Member(x,s) y,s2 (s=Adjoin(y,s2) (x=y V Member(x,s2)))

5. s1,s2 Subset(s1,s2) (x Member(x,s1) => Member(x,s2))

6. s1,s2 (s1=s2) (Subset(s1,s2) Subset(s2,s1))

7. x,s1,s2 Member(x, Intersection(s1,s2)) member(x,s1) Member(x,s2)

x,s1,s2 member(x, Union(s1,s2)) Member(x,s1) V Member(x,s2)

O domnio das listas muito similar ao domnio dos conjuntos. A diferena que as listas
esto ordenadas e o mesmo elemento pode aparecer mais de uma vez.

Notaes Especiais para Conjuntos, Listas e Aritmtica

A notao apenas uma abreviatura para a notao normal da lgica de 1 ordem sintaxe
aucarada.

0 = EmptySet [] =Nil {x} = Adjoin(x,EmptySet) [x] = Cons(x,Nil)

{x,y} = Adjoin(x,Adjoin(y,EmptySet)) [x,y] = Cons(x,Cons(y,Nil))

{x,y|s} = Adjoin(x,Adjoin(y,s)) [x,y|l] = Cons(x, Cons(y.l))


r U s = Union(r,s) r s = Intersection(r,s) x s = Member(x,s) r s = Subset(r,s)

tambm usamos notao standard aritmtica nas frases lgicas, por ex. x > 0 em vez de >(x,0)
e 1+2 em vez de +(1,2)

Perguntar Questes e Obter Respostas

Se quisermos acrescentar a relao a uma KB:

TELL(KB, (m,c Mother(c) = m Female(m) Parent(m,c))

Assim, se j fizemos o TELL TELL(KB,(Female(Maxi) Parent(Maxi,Spot) Parent(Spot,


Boots))), podemos ento:

ASK(KB, Grandparent(Maxi, Boots)) e receber uma resposta afirmativa. As frases


acrescentadas usando o TELL so chamadas asseres e as questes colocadas usando o
ASK so queries/consultas ou goals/metas.

ASK(KB, x Child(x,Spot)) quer dizer algo como H algum x que... e resolvemo-la dando
como resultado tal x. A forma standard para uma resposta deste tipo uma substituio ou
uma lista binding que um conjunto de pares de variveis/termos.

7.4. AGENTES LGICOS PARA O MUNDO DO WUMPUS

Com a lgica de 1 ordem, temos todo o poder representacional que precisamos e podemos
colocar a questo interessante de como deve um agente organizar o que sabe em ordem a
tomar as aces correctas. vamos considerar 3 arquitecturas de agente: agentes reflexos que
meramente classificam as suas percepes e agem de acordo; agentes baseados em modelo
que constrem uma representao interna do mundo e a usam para actuar; e agentes
baseados no goal que formam goals e tentam atingi-los (tambm so baseados em modelos).

O primeiro passo definir a interface entre o ambiente e o agente. Uma frase tpica de
percepo :

Percept([Stench, Breeze, Glitter, None, None], 5).

As aces so Turn(Right), Turn(Left), Forward, Shoot, Grab, Release, Climb

function KB-AGENT(percept) returns an action

static: KB, a knowledge base

t, a counter, inicialmente a zero, indicando o tempo


TELL(KB, MAKE-PERCEPT-SENTENCE(percept,t))

action <- ASK(KB, MAKE-ACTION-QUERY(t))

TELL(KB, MAKE-ACTION-SENTENCE(action,t))

t <- t + 1

return action

Para determinar qual aco a melhor, a funo MAKE-ACTION-QUERY cria uma query tal
como: a Action(a,5) com a intena de ASK retiornar uma lista binding tal como {a/Grab} e
Grab est assignado como o valor da varivel action. O programa do agente chama ento
TELL mais uma vez para gravar que aco foi tomada.

7.5. UM AGENTE REFLEXO SIMPLES

O mais simples um agente que tem regras que ligam directamente percepes a aces
instintos.

s,b,u,c,t Percept([s,b,Glitter,u,c],t) => Action(Grab,t)

o que pode ser feito mais abstractamente:

...

s,b,u,c,t Percept([s,b,Glitter,u,c],t) => AtGold(t)

e ento: t AtGold(t) => Action(Grab,t)

Num ambiente mais complexo, a percepo pode ser um array inteiro de valores de cor ou
cinzento, mas a viso de computador uma tarefa complicada, apesar da ideia base ser a
mesma.

Limitaes dos Agentes de Reflexos Simples

No pode ter a certeza quando Climb, porque nem ter o ouro nem estar no quadrado de
entrada parte da sua percepo; h coisas que o agente s sabe formando uma
representao do mundo. Os agentes reflexos so tambm incapazes de evitar loops infinitos:
a randomizao pode provocar uma soluo, mas s a troco do risco de fazer aces sem
frutos.
7.6. REPRESENTANDO A MUDANA DO MUNDO

Todas as percepes so acrescentadas na KB, e em princpio o histrico da percepo est


todo l. Se permitirmos regras para referir a percepes passadas tal como corrente tudo
bem. Mas essas regras so entediantes de escrever, a menos que adoptemos certos padres
de raciocnio que correspondem a manter um modelo interno do mundo. Ex. procurar as
chaves...

Pode ser demonstrado que qualquer sistema que toma decises na base de percepes
passadas pode ser reescrito para usar em vez disso um conjunto de frases acerca do estado
presente do mundo.

Regras descrevendo o modo como o mundo muda (ou no muda) so chamadas de


diacrnicas, do Grego ao longo do tempo. Representar a mudana uma das mais
importantes reas na representao do conhecimento.

A maneira mais simples de lidar com a mudana simplesmente mudar a KB, escrevendo por
cima. Uma segunda possibilidade um agente procurar atravs de um espao de passados e
futuros estados, onde cada estado representado por uma KB diferente. mas isto no deixa o
agente raciocinar acerca de mais que uma situao em simultneo.

Em princpio, representar situaes e aces no diferente de representar objectos mais


concretos tal como ces e gatos, ou relaes concretas como irmandade. Precisamos de
decidir nos objectos e relaes apropriados e depois escrever os axiomas acerca deles.

Clculo de Situaes

o nome para um particular modo de descrever a mudana na lgica de 1 ordem. Ele


concebe o mundo como consistindo uma sequncia de situaes, cada qual um snapshot do
estado do mundo.

As situaes so geradas das prvias atravs de aces.

Todas as relaes ou propriedades que podem mudar ao longo do tempo so lidadas por uma
dado argumento de situao extra correspondente ao predicado. Usamos a conveno que o
argumento da situao sempre o ltimo e as constantes de situao esto na forma Si.
Assim, em vez de At(Agent, location) podemos ter:

At(Agent, [1,1], S0) At(Agent,[1,2], S1)

para descrever a localizao do agente nas 2 primeiras situaes da figura 7.3.Relaes ou


predicados que no mudam no precisam de argumento extra de situao. Por exemplo,
como as paredes no se movem podemos s dizer Wall([0,1]).
O prximo passo representar como o mundo muda de uma situao para a seguinte. O
clculo de situao usa a funo Result(action, situation) para denotar a situao que resulta
de executarmos uma aco numa dada situao inicial. assim,

Result(Forwrd,S0) = S1

Result(Turn(Right),S1) = S2

Result(Forward,S2) = S3

Aces so descritas escrevendo os seus efeitos.

Portable(Gold)

s AtGold(s) => Present(Gold,s)

x,s Present(x,s) Portable(x) => Holding(x,Result(Grab,s))

Um axioma similar diz que o agente no segurou nada depois de uma aco de Release

x,s ~Holding(x,Result(Release,s))

Estes axiomas so chamados de axiomas de efeito. Infelizmente, no so suficientes para


manter o rasto de o agente segurou o ouro ou no. Precisamos tambm de dizer que se o
agente segura alguma coisa e no o release, ele ser segurado no estado seguinte.

6 LIO LGICA DE 1 ORDEM E REPRESENTAO DO CONHECIMENTO


Captulos 8, 9 e 10

Tpicos a saber: diferncias entre lgicas; traduzir uma expresso lgica para texto e vice-versa;
passar de lgica de 1 ordem para lgica proposicional; unificao; algoritmo forward-chaining /
backward-chaining; ontologias; redes semnticas; dedues com informao de omisso
Trabalho: Construa uma lista de 10 provrbios populares em lgica de primeira ordem, e tente
encontrar dois provrbios que estejam em contradio.

CAP.8 CONSTRUIR UM BASE DE CONHECIMENTO

Uma lgica no oferece qualquer guia de como os factos devem ser expressos, nem que
vocabulrio deve ser usado para os expressar.

O processo de construir uma KB chamado de engenharia de conhecimento. Cria uma


representao formal de objectos e relaes no domnio, para alm de determinar os
conceitos importantes desse domnio.

H pois que entrevistar experts no processo de aquisio do conhecimento.


preciso prtica e exposio a lotes de exemplos antes de algum conseguir desenvolver um
bom estilo em qualquer linguagem.

Vermos como representar o tempo, mudana, objectos, substncias, eventos, aces,


dinheiro, medidas, etc. So importantes porque aparecem em vrios domnios. Representar
estes conceitos gerais chama-se engenharia ontolgica.

8.1. PROPRIEDADES DAS BOAS E MS BASES DE CONHECIMENTO

Devem ser expressivas, concisas, no ambguas, insensveis ao contexto e efectivas, para


alm de correctas e claras.

O criador da KB deve evitar preocupar-se apenas com o contedo da KB e no com o


processo de inferncia.

No possvel fazer, ou compreender a engenharia do conhecimento apenas s por falar


dela.

Todas as KB tm 2 potenciais consumidores: leitores humanos e procedimentos de inferncia.


Um erro comum escolher nomes de predicados que so significativos apenas para os
humanos e depois assumir que o procedimento de inferncia tambm os assume.

ENGENHARIA DO CONHECIMENTO VS. PROGRAMAO

Escolher uma lgica Escolher uma linguagem de programao

Construir uma base de conhecimento Escrever um programa

Implementar a teoria de prova Escolher ou implementar um compilador

Inferir novos factos Correr o programa

A principal vantagem da engenharia do conhecimento que se compromete menos e assim


menos trabalhosa. Um engenheiro de conhecimento tem apenas de decidir que objectos e
relaes devem ser representados e quais as relaes entre eles se verificam.

As KB podem, em princpio ser reutilizadas, o debugging mais fcil, enquanto a correco de


uma instruo de um programa depende muito fortemente do seu contexto.

Numa boa KB, BearOfVerySmallBrain(Pooh) ser substitudo por:

1. Pooh um bear; bears so animals; animals so physical things

Bear(Pooh)

b Bear(b) => Animal(b)

a Animal(a) => PhysicalThing(a)

O nvel de generalidade assim muito maior.


2. Pooh tem um brain very small

RelativeSize(BrainOf(Pooh), BrainOf(TypicalBear) = Very(Small)

prov um sentido preciso a very small

3. Todos os Animals (e apenas animals) tm um brain, que parte do animal

a Animal(a) <=> Brain(BrainOf(a))

a PartOf(BrainOf(a),a)

4. Se algo parte de uma physical thing enta tambm o

x,y PartOf(x,y) PhysicalThing(y) => PhysicalThing(x)

5.

a RelativeSize(BrainOf(a), BrainOf(TypicalMember(speciesOf(a)))) Small => Silly(a)

b Bear(b) SpeciesOf(b) = Ursidae

TypicalBear = TypicalMember(Ursidae)

6.

x PhysicalThing(x) => s Size(x) = s

Tiny < Small < Medium < Large < Huge

a,b RelativeSize(a,b) = Size(a)/Size(b)

7.

Medium = 1

x x>Medium => Very(x) > x

x x<Medium => Very(x) < x

Cada vez que escrevemos uma frase devemos questionar-nos sobre:

Porque que isto true? Posso escrever antes os factos que tornem isto true?

Com que generalidade posso aplicar? Posso declarar isto para uma classe mais larga de
objectos?

Preciso de um novo predicado para denotar esta classe de objectos? como se relaciona esta
classe com as outras? parte de uma classe mais lata? Tem esta classe outras subclasses?
Quais so as outras propriedades dos objectos desta classe?
8.2. ENGENHARIA DO CONHECIMENTO

Metodologia de 5 passos:

Decidir do que falar:

Compreender o domnio suficientemente bem para saber de que objectos e factos


necessrio falar e quais os que podem ser ignorados.

Decidir de um vocabulrio de predicados, funes e constantes:

Isto , traduzir os conceitos importantes do domnio para nomes lgicos. a Ontologia.

Codificar o conhecimento geral acerca do domnio

Escrever frases lgicas ou axiomas, o que cumpre 2 objectivos. Primeiro, tornamos os termos
mais precisos para interpretao humana. Segundo, tornamos possvel correr procedimentos
de inferncia.

Um erro tpico :

x Animal(x) => b Brain(x) = b

que se corrige adicionando o conjuncto Brain(b)

As instrues das linguagens de programao tendem a depender muito do contexto,


enquanto as frases lgicas so mais auto-contidas. So, por assim dizer, mais como uma
rotina.

Codificar a descrio de uma instncia problema especfica

Colocar questes ao procedimento de inferncia e obter respostas.

8.3. O DOMNIO DOS CIRCUITOS ELECTRNICOS

Analisar um somador completo de 1 bit.

a meta prover uma anlise que determina se o circuito de facto um somador, e que pode
responder a questes acerca do valor do fluxo corrente em vrios pontos do circuito.

Decidir do que falar

fios e gates e sinais.

H 4 tipos de gates: AND, OR, XOR e NOT. Todas as gates tm exactamente um terminal de
output. Os circuitos so compostos de gates e tm terminais de entrada e de sada.

Ento temos de falar de circuitos, terminais, sinais, gates e tipos de gates.

Tudo o que interessa a conectividade dos terminais.


Uma ontologia special-prupose depende no s do domnio mas tambm da tarefa a ser
resolvida.

Decidir do vocabulrio

escolher funes, predicados e constantes e nome-los.

Primeiro, precisamos de distinguir as gates umas das outras. X1, X2, etc.

Depois, precisamos de saber o tipo da gates. Type(X1) = XOR

De seguida consideramos os terminais. Out(1,X1)

A conectividade entre os terminais representada pelo predicado Connected.

Connected(Out(1,X1), In(1,X2))

Codificar as Regras Gerais

Devem ser o menor n possvel de regras e cada regra deve declarar claramente e
concisamente.

1. Se 2 terminais esto conectados, ento tm o mesmo sinal

t1,t2 Connected(t1,t2) => Signal(t1) = Signal(t2)

2. O sinal em qualquer terminal on ou off (mas no os 2)

t Signal(t) = On V Signal(t) = Off

On != Off

3. Connected um predicado comutativo

t1,t2 Connected(t1,t2) <=> connected(t2,t1)

4. A sada de uma porta OR est on se e s se alguma das suas entradas est On

g Type(g) = OR => Siganl(Out(1,g)) = On <=> n Signal(In(n,g))=On

5. A sada de uma porta AND Off se e s se alguma das entradas for Off

g Type(g)=AND => Signal(Out(1,g))=Off <=> n Signal(In(n,g))=Off

6. Uma sada de uma porta XOR est On se e s se as suas entradas so diferentes:

g Type(g)=XOR => Signal(Out(1,g))=On <=> Signal(In(1,g))!=Signal(In(2,g))

7. A sada de uma porta NOT diferente da sua entrada

g Type(g)=NOT => Signal(Out(1,g))!=Signal(In(1,g))


Codificar a Instncia Especfica

Type(X1)=XOR ....

Connected(Out(1,X1),In(1,X2))

Colocar as questes ao procedimento de inferncia

i1,i2,i3 signal(In(1,C1)) = i1 Signal(In(2,C1))=i2 signal(In(3,C1))=i3


Signal(Out(1,C1))=Off Signal(Out(2,C1))=On

A resposta :

(i1 = On i2=On i3=On) V

(i1 = On i2=Off i3=On) V

(i1 = Off i2=On i3=On)

Podemos tambm fazer uma questo que uma verificao do circuito. (FAZER...est na
pg226).

8.4. ONTOLOGIA GERAL

codificada dentro da lgica de 1 ordem mas faz muitos mais compromissos que aquela no
faz.

H 2 caractersticas mais importantes das ontologias de general-purpose que as distinguem


das coleces de ontologias special-purpose.

- Deve ser aplicvel em mais ou menos qualquer special-purpose domnio (com a adio de
axiomas especficos do domnio)

- Em qualquer domnio suficientemente demandador, reas diferentes do conhecimento


podem ser unificadas porque o raciocnio e resoluo de problemas podem envolver vrias
reas em simultneo.

Vamos ver como declarar:

Categorias Vrios objectos tm um n de propriedades em comum. descrevemos como as


categorias podem ser elas prprias objectos de pleno direito, e como so ligadas numa
taxinomia hierrquica de unificao.

Medidas

Objectos Compostos Objectos que pertencem a vrias categorias por virtude da sua
estrutura constituinte.

Tempo, Espao e Mudana


Eventos e Processos ex. compra.

Objectos Fsicos Tm muito em comum com os eventos

Substncias

Objectos Mentais e Crenas

Representar o conhecimento do senso comum pode ser muito iluminador. No nos vamos,
para j, preocupar com excepes e defaults.

Representar Categorias

Muito do raciocnio tem lugar ao nvel de categorias.

Tambm servem para fazer previses acerca de objectos, uma vez classificados.

H 2 escolhas principais para representar categorias na lgica de 1 ordem. A primeira que


as categorias so representadas por predicados unrios. Tomato(x) quer dizer que x um
tomato.

A 2 reificar a categoria. A reificao o processo de tornar um predicado ou uma funo


num objecto na linguagem.. Usamos Tomatoes como uma constante que se refere ao objecto
que o conjunto de todos os tomates. Usamos x Tomatoes para dizer que x um tomate.
isto permite-nos fazer asseres acerca da categoria ela prpria, em vez de sobre membros
da categoria. Ex. Population(Humans)=5.000.000.000

Servem para organizar e simplificar o conhecimento com base na herana. Relaes de


subclasse organizam as categorias numa taxonomia hierrquica.

A lgica de 1 ordem torna mais fcil declarar factos acerca de categorias ou relacionando
objectos a categorias ou quantificando sobre os seus membros.:

- Um objecto membro de uma categoria:

Tomato Tomatoes

- Uma categoria uma subclasse de outra:

Tomatoes Fruit

- Todos os membros de uma categoria tm algumas propriedades:

x x Tomatoes => Red(x) Round(x)

- Membros de uma categoria podem ser reconhecidos por algumas propriedades:

x Red(Interior(x)) Green(Exterior(x)) x Melons => x Watermelons


- Uma categoria como um todo tem algumas propriedades:

Tomatoes DomesticatedSpecies

Veja que DomesticatedSpecies uma categoria de categorias.

Tambm queremos ser capazes de declarar relaes entre categorias que no so subclasses
uma da outra. Para isso usamos a disjuno, a decomposio exaustiva e, se for ambos,
uma partio. ex:

Disjoint ({Animals, Vegetables})

ExhaustiveDecomposition({Americans, Canadians, Mexicans},NorthAmericans)

Partition({males, Females},Animals)

A definio destes predicados :

s Disjoint(s) (c1,c2 c1s c2s c1!=c2 => Intersection(c1,c2)=EmptySet)

s,c ExhaustiveDecomposition(s,c) (i ic c2 c2s ic2)

s,c Partition(s,c) Disjoint(s) ExhaustiveDecomposition(s,c)

As categories podem tambm ser definidas providenciando as condies necessarias e


suficientes para os seus membros. Ex.

x Bachelor(x) Male(x) Adult(x) Unmarried(x)

MEDIDAS

Combinando uma funo de unidades com um n

Length(L1) = Inches(1.5) = Centimeters(3.81)

A converso entre unidades:

l Centimeters(2.54*l) = Inches(l)

t Centigrade(t)=Fahrenheit(32+1.8*t)

medidas podem ser usadas para descrever objectos como se segue:

Mass(Tomato)=Kilograms(0.16)

Price(Tomato)=$(0.32)

d dDays => Duration(d)=Hours(24)


H outras medidas que apresentam mais problemas, porque no tm uma escala de valores
convencionada. mas desde que possa ser ordenadas...

e1,e2 e1Exercises e2Exercises Wrote(Norvig,e1) Wrote(Russel,e2) => Difficulty(e1)


> Difficulty(e2)

e1,e2 e1Exercises e2Exercises Difficulty(e1) > Difficulty(e2) => ExpectedScore(e1) <


ExpectedScore(e2)

Este tipo de relaes montonas entre medidas forma a base do campo fsica qualitativa.

GNEROS NATURAIS

Em vez de ter uma definio completa de tomates, temos uma srie de caractersticas que
servem para identificar objectos que so claramente tomates tpicos.

A ideia chave separar o que true para todas as instncias da categoria do que true
apenas das instncias tpicas. assim, em adio categoria Tomatoes, temos tambm a
categoria Typical(Tomatoes). aqui Typical uma funo que mapeia uma categoria
subclasse dessa categoria que contm apenas instncias tpicas:

c Typical(c) c

x xTypical(Tomatoes) => Red(x) Spherical(x)

OBJECTOS COMPOSTOS

Usamos a relao geral part of para dizer que uma coisa parte de outra. PartOf reflexiva e
transitiva.

PartOf(Bucharest,Romania)

PartOf((Romania,EasternEurope)

Part of(EasternEurope,Europe)

Qualquer objecto que tenha partes chamado de objecto composto. As categorias de objectos
compostos so frequentemente caracterizadas pela estrutura desses objectos, isto , as
partes e como as partes so relacionadas. Ex:

a Biped(a) =>

l1,l2,b Leg(l1) Leg(l2) Body(b)

PartOf(l1,a) PartOf(l2,a) PartOf(b,a)

Attached(l1,b) Attached(l2,b)

l1!=l2 l3 Leg(l3) part of(l3,a) => (l3=l1 V l3=l2)


Uma descrio genrica de evento deste tipo chamada de esquema ou script.

BunchOf({Apple1, Apple2, Apple3})

denota o objecto composto com 3 mas como partes.

REPRESENTANDO A MUDANA COM EVENTOS

O cculo de situaes perfeito para o mundo vcuo, o mundo do wumpus, ou qualquer


mundo em que um nico agente toma aces discretas. mas tem 2 problemas que limitam a
sua aplicabilidade. primeiro, situaes so pontos instantneos do tempo, os quais no so
muito teis para descrver o crescimento gradual de uma gatinha para gata, por ex. em que as
mudanas ocorrem continuamente no tempo. Segundo, o clculo de situao funciona melhor
quando apenas uma aco ocorre de cada vez.

Se h diferentes aces que tm duraes diferentes, ou cujos efeitos dependem da durao,


o clculo de situao nem pode ser aplicado.

Ento temos de ir para o clculo de eventos.

Um evento , informalmente, apenas um chunk deste universo com extenso temporal e


espacial.

Vejamos um ex. A World War II tem partes que se referem a subeventos:

Subevent(battleOfBritain), WorldWarII) mas tambm ela subevento

SubEvent(WorldWarII, TwentiethCentury)

O sculo XX um tipo especial de evento, chamado intervalo.

No clculo de situao, um dado facto true numa particular situao. No clculo de eventos,
um dado evento ocorre durante um intervalo particular.

Tambm os eventos podem ser agrupados em categorias

w wWars SubEvent(w,AD1967) part of(Location(w),MiddleEast)

j jJourneys Origin(NewYork,j) (Destination(NewDelhi,j) Traveller(Shankar,j)


SubEvent(j,Yesterday) pode ser mais simples:

Go(Shankar,NewYork,NewDelhi) com,

e,x,o,d eGo(x,o,d) eJourneys Traveller(x,e) Origin(o,e) Destination(d,e)

Finalmente, usamos a notao E(c,i) para dizer que um evento da categoria c um subevento
do evento (ou intervalo) i:

c,i E(c,i) e ec SubEvent(e,i)


Assim, temos:

E(Go(Shankar,NewYork,NewDelhi),Yesterday)

LUGARES

In(NewYork,USA)

x,l Location(x) = l At(x,l) l2 At(x,l2) => In(l,l2)

Esta ltima frase um exemplo de uma construo lgica standard minimizao

PROCESSOS

Os eventos que vimos so eventos discretos.

Flying(Shankar) tem uma qualidade diferente. De facto true para qualquer subintervalo.

Categorias de eventos com esta propriedade so chamados de processos ou eventos lquidos.

E(Flying(Shankar),Yesterday)

T(Working(Stuart),TodayLunchHour)

T(c,I) significa que algum evento do tipo c ocorreu durante exactamente o intervalo i.

Os eventos lquidos tambm pode descrever eventos de no-mudana contnua so os


estados.

In(Mary,Supermarket)

T(In(mary,Supermarket),ThisAfternoon)

Um intervalo pode tambm ser uma sequncia de tempos decontnua

T(Closed(Supermarket),BunchOf(Sundays))

NOTAO ESPECIAL PARA COMBINAR PROPOSIES

tentador escrever

T((at(Agent,Loc1) At(Tomato1,Loc1)),I3) mas no faz sentido, porque uma frase aparece


como 1 argumento do predicado T e todos os argumentos dos predicados tm de ser termos,
no frases. Para corrgir, introduzimos uma funo And que toma 2 categorias de eventos
como argumentos e retorna uma categoria de eventos compostos do tipo apropriado.

T(And(At(Agent,Loc1), At(Tomato1,Loc1)),E) sendo And definida por:


p,q,e T(And(p,q),e) T(p,e) T(q,e)

o paralelo.

Uma vez que o mtodo para conjunctar categorias de eventos est definida, conveniente
extender a sintaxe para permitir smbolos conectivos infixos:

T(pq,e) T(And(p,q),e) T(p,e) T(q,e)

Pode-se definir tambm disjuno e negao.

T(p V q,e) T(p,e) V T(q,e) a definio de disjuno. H outra: aberturas de lojas


intermitentemente.

TEMPOS, INTERVALOS E ACES

Os intervalos esto particionados em momentos e intervalos extendidos.

Partition({Moments, ExtendedIntervals},Intervals)

i iIntervals => (iMoments Duration(i)=0)

Agora inventamos uma escala de tempo e associamos pontos dessa escala a momentos,
dando-nos tempos absolutos. Medimos em segundos e dizemos que o tempo 0 1 de Janeiro
de 1900 s 0 horas.

A funo Start e End pegam nos momentos iniciais e finais de um intervalo. A Time entrgea um
ponto da escala de tempo para um momento.

i Interval(i) => Duration(i)=Time(end(i)) Time(Start(i)))

Time(Start(AD1900))=Seconds(0)

TimeStart(AD1991)) = Seconds(2871694800)

Time(End(AD1991)) = Seconds(2903230800)

Duration(AD1991) = Seconds(31536000)

Para toornar isto mais simples de ler, introduzimos a funo Date com 6 argumentos.

Time(Start(AD1991)) = date(00,00,00,Jan,1,1991)

date(12,34,56,Feb,14,1993)=Seconds(2938682096)

A mais simples relao entre intervalos Meet. Dois intervlaos Meet se o final do tempo do 1
igual ao start time do segundo.

i,j Meet(i,j) Time(end(i)) = TimeStart(j))


I,j Before(I,j) Time(End(i)) < Time(Start(j))

I,j After(j,I) Before(i,j)

I,j During(I,j) Time(Start(j)) Time(Start(i)) e(End(i)) Time(End(j))

I,j Overlap(I,j) k During(k,I) uring(k,j)

exemplos:

After(ReignOf(ElizabethII), ReignOf(GeorgeVI))

Overlap(Fifties,ReignOf(Elvis))

Start(Fifties) = Start(AD1950)

End(Fifties)=End(AD1950)

As relaes temporais entre intervalos so usadas principalmente para descrever aces, que
aqui d como resultado um intervalo em que um certo estado ocorre.

Exemplos, para ilustrar a ideia:

1. Se duas pessoas esto noivas, ento num futuro intervalo, elas casaro ou rompero o
noivado:

x,y,i0 T(Engaged(x,y),i0) =>

i1 (Meet(i0,i1) V After(i1,io) T(Marry(x,y) V BreakEngagement(x,y),i1)

2. Quando 2 pessoas se casam, so esposos durante algum intervalo a comear no fim do


evento de casamento.

x,y,i0 T(Marry(x,y),i0) => i1 T(Spouse(x,y),i1) Meet(i0,i1)

3. O resultado de ir de um lado para outro estar nesse outro lugar:

x,a,b,i0 i1 T(Go(x,a,a),i0) => T(In(x,b),i1) Meet(i0,i1)

OBJECTOS REVISITADOS

Um propsito do clculo de situao era permitir que os objectos tivessem propriedades


diferentes em diferentes tempos. O clculo de eventos atinge a mesma meta.

T(Area(Poland,SqMiles(233000)), AD1426)

T(Area(Poland,SqMiles(117000)), AD1950)

pois perfeitamente consistente ver a Polnia como um evento.


T(Democrat(President(USA)), AD1994)

Os objectos como a Polnia e Presidente so chamados de fluentes.

T(Male(President(USA)), 19thCentury)

Fixed(Location(EmpireStateBuilding))

SUBSTNCIAS E OBJECTOS

H uma certa poro da realidade que parece desafiar uma individualizao bvia diviso
em objectos distintos. Damos a esta poro o nome de stuff.

Esta a maior distino entre coisas e stuff. Se cortarmos uma aardvark ao meio no ficamos
com 2 aardvarks. A distino a mesma que entre eventos lquidos e no lquidos. Por isso
tambm se chama a coisas como a manteiga substncias espaciais enquanto os eventos
lquidos so apelidados de substncias temporais.

O Ingls refora esta distino: dizemos an aardvark mas no a butter. Os linguistas


distinguem entre count nouns (substantivos contveis), tais como aardvarks, buracos,
teoremas, e mass nouns, tais como manteiga, gua, energia.

x,y xButter part of(y,x) => y Butter

x Butter(x) => MeltingPoint(x,Centigrade(30))

H algumas propriedades que so intrnsecas: pertencem substncia do objecto, em vez de


ao objecto como um todo.

Por outro lado, as propriedades extrnsecas so o oposto: propriedades como peso,


comprimento, forma, funo, etc, no so retidas sob a subdiviso.

Uma classe de objectos que inclui na sua definio apenas propriedades intrnsecas ento
uma substncia, ou mass noun. Uma classe que inclua alguma propriedade extrnseca na sua
definio um count noun.

A categoria Stuff a categoria mais geral das substncias. A classe Thing a categoria mais
geral dos objectos discretos.

Segue-se que um objecto pertence a ambas as classes.

BunchOf(Butter)

PartOf

OBJECTOS MENTAIS E EVENTOS MENTAIS


Os agentes que construmos at agora tm crenas e podem deduzir novas crenas. Mas
nenhum deles tem qualquer conhecimento acerca de crenas e deduo. Para domnios de
agente-nico, o conhecimento acerca do prprio conhecimento e processos de raciocnio til
para controlar a inferncia.

Nos domnios multi-agente, torna-se importante para um agente raciocinar acerca dos
processos mentais dos outros agentes (ex. perguntar a quem...num supermercado).

Mas ns queremos um modelo abstracto que diga que se um agente lgico acredita P V Q e
aprende P, ento ele deve crer que Q.

O primeiro passo perguntar como os objectos mentias so representados. Isto , se tivermos


a relao Believes(Agent,x), que tipo de coisa x?

x no pode ser uma frase lgica porque apenas termos podem ser argumentos de relaes.

Mas se for reificado comofluente j andidato a ser um objecto mental. e Believes pode ser
uma relao que toma um agente e uma proposio fluente em que o agente cr.

believes, Knows e Wants so chamadas atitudes proposicionais.

H um problema com esta abordagem:

(Superman=Clark) |= (Believes(Lois,Flies(Superman)) Belives(Lois,Flies(Clark)))

Tecnicamente, a propriedade de ser capaz de livremente substituir um termo por um termo


igual chamado de transparncia referencial. Em lgica de 1 ordem todas as relaes o so.
assim, gostaramos de definir Believes como relaes cujo segundo argumento fosse opaco.

Ento, ... Teoria Sintctica dos Objectos mentais. Representamos os objectos mentais como
strings.

Nesta formulao Clark != Superman. A ideia o agente ter a KB com strings que so
adicionadas via TELL.

Agora s temos que prover uma sintaxe, semntica e teoria de prova para a linguagem de
representao de strings.

Comeamos por definir Den como a funo que mapeia a string ao objecto que ela denota, e
Name como a funo que mapeia um objecto string que o nome da constante que denota
o objecto.

Den(Clark) = ManOfSteel Den(Superman)=ManOfSteel

Name(ManOfSteel)=K11

O prximo passo definir regras para os agentes lgicos.

Correcto :
a,p,q LogicalAgent(a) Believes(a,p) (Believes(a,Concat(p,=>,q) => Believes(a,q) para o
Modus Ponens.

Concat(p,=>,q) pode ser p => q

Para alm das regras normais precisamos de regras especficas do Belief

a,p LogicalAgent(a) Believes(a,p) => Believes(a,Believes(Name(a),p))

Podemos ir em 3 direces.

Uma a omniscincia lgica, mas mais realista definir agentes racionais limitados, pois
impossvel ter agentes lgicos instantneos.

Outra definir axiomas para outras atitudes proposicionais.

a,p Knows(a,p) Believes(a,p) T(Den(p)) T(Den(KB(a)) => Den(p))

isto o know that. O know wheter :

a,p KnowsWhether(a,p) knows(a,p) V Knows(a, -p)

O conceito de knowing what mais complicado. Uma melhor definio diz que o agente tem
de know algum x que string de dgitos a que Bob um n:

a,b KnowsWhat(a,PhoneNumber(b)= x Knows(a, x=PhoneNumber(b)) DigitString(x)

Claro que para outras questes temos um critrio diferente para uma resposta aceitvel. Para
uma questo de qual a capital de New York aceitmaos um nome. Para lidar com isto definimos
o KnowWhat como uma relao de 3 lugares: um agnte, um termo e um predicado que deve
ser a resposta da questo. Por exemplo:

KnowsWhat(Agent, Capital(NewYork), ProperName)

KnowsWhat(Agent, PhoneNumber(Bob), digitString)

Uma 3 direco reconhecer que as atitudes proposicionais mudam com o tempo.


Similarmente podemos usar Believe(agent, string, interval) para significar que um agente cr
na proposio num dado intervalo. Por ex.

Believes(Lois, Flies(Superman), Yesterday)

CONHECIMENTO E ACO

As aces tm precondies de conhecimento e efeitos de conhecimento. Por exemplo, a


aco de ligar o n de telefone de uma pessoa tem a precondio de saber o n e a aco de
ligar ao assistente tem o efeito de sabe o n.
8.5. O MUNDO DAS COMPRAS NA MERCEARIA

Seremos capazes de definir o conhecimento que um agente precisa para comprar uma refio
numa loja.

Percepes:

1. tacto, som e viso

2. o tacto s esbarrar ou no esbarrar

3. O som uma lista de palavras faladas. Percebe dentro de 2 quadrados.

4. se zoomar percebe os objectos do quadrado zoomado

5. se no zoomar percebe nos 3 quadrados imediatos

6. a viso consiste em localizao, tamanho, cor, forma

Aces

1. falar uma string de palavras

2. Ir para o quadrado seguinte

3. virar 90 esquerda ou direita

4. zoomar a cmera

5. pegar num objecto no seu quadrado. Precisa ento de especificar as coordenadas relativas
do objecto e de estar de mos vazias

6. Largar um objecto

O goal do agente, inicialmente, comprar todos os itens numa lista de compras. Este goal
pode ser modificado se alguns itens no estiverem disponevis ou forem muito caros. Deve
comprar rapidamente e evitar esbarrar nas coisas.

O ambiente o interior de uma loja, com todos os objectos e pessoas dentro dela. deve sair
da loja pelo mesmo quadrado. H placas de EXIT.

...

CAP. 9 INFERNCIA NA LGICA DE 1 ORDEM

9.1. REGRAS DE INFERNCIA ENVOLVENDO QUANTIFIADORES

Na seco 6.4. vimos as regras de inferncia para a lgica proposicional: Modus Ponens, And-
Elimination, And-Introduction, Or Introduction e Resoluo. Estas regras mantm-se na lgica
de 1 ordem. Mas precisamos de adicionais que so 3 e que so mais complexas, porque
temos de falar de substituies de indivduos particulares para as variveis. Usaremos a
notao SUBST(,) para denotar o resultado de aplicar a substituio frase . Por ex:

SUBST({x/Sam, y/Pam), Likes(x,y)) = Likes(Sam, Pam)

UNIVERSAL ELIMINATION

-----------------------

SUBST({v/g}, )

Por exemplo, de x Likes(x,IceCream) podemos usar a substituio {x/Ben} e inferir


Likes(Ben, IceCream)

EXISTENTIAL ELIMINATION

--------------------------

SUBST({v/k}, )

Por exemplo, de x Kill(x,Victim), podemos inferir Kill(Murderer, Victim), desde que Murderer
no aparea em mais lado nenhum na KB

EXISTENTIAL INTRODUCTION

------------------------

v SUBST({g/v}, )

Por exemplo, de Likes(Jerry, IceCream) podemos inferir x Likes(x, IceCream)

9.2. A PROVA DE UM EXEMPLO

Depois de definir as regras de inferncia vamos us-las para fazer a prova.

a aplicaao da sregras uma simples questo de fazer bater as premissas com as frases da
KB e depois adicionar as concluses.

Exemplo:

... crime um Americano vender armas a naes hostis

(1) x,y,z American(x) Weapon(y) Nation(z) Hostile(z) Sells(x,z,y) => Criminal(x)


Nono tem alguns msseis

(2) x Owns(Nono,x) (Missile(x)

Todos esses msseis foram vendidos por Colonel West

(3) x Owns(Nono,x) Missile(x) => Sells(West, Nono, x)

tambm precisamos de saber que os msseis so armas:

(4) x Missile(x) => Weapon(x)

e que um inimigo da Amrica um hostil

(5) x Enemy(x, America) => Hostile(x)

West, que americano...

(6) American(West)

O pas Nono

(7) Nation(Nono)

Nono, um inimigo da Amrica

(8) Enemy(Nono, America)

(9) Nation(America)

A Prova Consiste Numa Srie de Aplicaes das Regras de Inferncia

de 2 e da Existential Elimination:

(10) Owns(Nono, M1) Missile(M1)

Da 10 e do And-Elimination

(11) Owns(Nono,M1)

(12) Missile(M1)

da 4 e da Universal Elimination

(13) Missile(M1) => Weapon(M1)

da 12 e da 13 e do Modus Ponens:

(14) Weapon(M1)

de 3 e da Universal Elimination:
(15) Owns(Nono,M1) Missile(M1) => Sells(West, Nono,M1)

da 15 e da 10 e de Modus Ponens

(16) Sells(West, Nono, M1)

da 1 e de Universal Elimination (3 vezes)

(17) American(West) Weapon(M1) Nation(Nono) Hostile(Nono)


Sells(West,Nono,M1) => Criminal(West)

da 5 e da Universal Elimination

(18) Enemy(Nono,America) => Hostile(Nono)

da 8, 18 e Modus Ponens

(19) Hostile(Nono)

da 6, 7, 14, 16, 19 e And-Introduction

(20) American(West) Weapon(M1) Nation(Nono) Hostile(Nono) Sells(West,


Nono, M1)

da 17 e 20 e Modus Ponens

(21) Criminal(West)

Esta prova , obviamente, a soluo do problema de procura e, tambm obviamente, deve ser
um programa inteligente para seguir o caminho certo.

Como um problema de procura, temos:

Estado Inicial = KB (frases de 1 a 9)

Operadores = Regras de Inferncia aplicveis

Teste de Goal = KB contendo Criminal(West)

Este exemplo ilustra algumas caractersticas importantes:

- A Prova tem 14 passos

- O factor de salto cresce medida que a KB cresce

- A Universal Elimination pode ter um enorme factor de salto, porque podemos substituir a
varivel por qualquer termo ground

- Gastamos muito tempo a combinar frases atmicas em conjunes, instanciando regras


universais para bater, e depois aplicando o Modus Ponens.
Isto pode conduzir a exploso combinatria. Como temos um padro dos operadores
(combinar frases atmicas, instanciar regras universais e depois aplicar o Modus Ponens) era
bom que consegussemos definir um espao de procura melhor com um operador nico que
fizesse estes 3 passos -> maior eficincia.

9.3. MODUS PONENS GENERALIZADO

faz num nico passo o que fazem And-Introduction, Universal Eliminatiuon e Modus Ponens. A
ideia por ex. tirar da KB:

Missile(M1)

Owns(Nono,M1)

x Missile(x) Owns(Nono,x) => Sells(West, Nono, x)

e inferir num passo:

Sells(West, Nono, M1)

mais em geral, se h alguma substituio envolvendo x que torna a premissa da implicao


idntica a frases j na KB, ento podemos assertoar a concluso.

Na verdade podemos pr o Modus Ponens ainda a fazer mais:

Suponhamos que sabe y Owns(y,M1) ainda melhor.

Modus Ponens Generalizado

p1, p2, ... , pn, (p1 p2 ... pn => q)

-----------------------------------------------------------

SUBST (,q)

O Modus Ponens generalizado uma regra eficiente por 3 razes:

1. D passos maiores combinando vrias regras de inferncia numa

2. Toma passos sensveis usa substituies que garantidamente ajudam, em vez de


aleatrias tentativas da Universal Eliminations. O algoritmo de unificao toma 2 frases e
retorna uma substituio que as torna parecer a mesma se essa substituio existir.

3. Usa uma precompilao que converte todas as frases na KB na forma cannica.

FORMA CANNICA

Cada frase na KB pode ser ou uma frase atmica ou uma implicao com uma conjuno de
frases atmicas no lado esquerdo e um tomo do lado direito. Frases nesta forma so
conhecidas por Frases de Horn.
Convertemos frases em frases Horn quando entram na KB, usando a Existencial Elimination e
And Elimination. Por ex. x Owns(Nono,x) Missile(x) convertido em 2 frases de Horn
atmicas Owns(Nono,M1) e Missile(M1)

UNIFICAO

Unificar tomar 2 frases atmicas p e q e retornar uma substituio que faz p e q parecer o
mesmo. Formalmente:

UNIFY(p,q) = onde SUBST(,p) = SUBST(,q)

o chamado unificador das 2 frases. Por ex. suponha que temos:

Knows(John,x) => Hates(John,x)

e uma KB:

Knows(John,Jane)

Knows(y,Leonid)

Knows(y,Mother(y))

Knows(x,Elizabeth)

Relembre-se que x e y so implicitamente universalmente quantificados.

Unificar a regra com cada uma das frases d:

UNIFY(Knows(John,x), Knows(John,Jane) = {x/Jane}

UNIFY(Knows(John,x), Knows(y,Leonid) = {x/Leonid, y/John}

UNIFY(Knows(John,x), Knows(y,Mother(y)) = {y/John, x/Mother(John)}

UNIFY(Knows(John,x), Knows(x,Elizabeth) = fail

A ltima falah porque estamos a usar a mesma letra, mas podemos substituir por x1 por
exemplo e j d.

H mais uma complicao que tem a ver com o facto de existirem infinitas substituies que
do. Mas usamsop s a Most Geneal Unifier.

EXEMPLO DE PROVA REVISITADO

American(x) Weapon(y) Nation(z) Hostile(z) Sells(x,z,y) => Criminal(x)

Owns(Nono,M1)
(24) Missile(M1)

Owns(Nono,x) Missile(x) => Sells(West,Nono,x)

(26) Missile(x) => Weapon(x)

(27) Enemy(x,America) => Hostile(x)

American(West)

Nation(Nono)

(30) Enemy(Nono,America)

Nation(America)

Prova:

de 24, 26 e MPG

Weapon(M1)

de 30, 27 e MPG

Hostile(Nono)

de 23, 24, 25 e MPG

Sells(West, Nono, M1)

de 28,32, 29, 33, 34 e 22 e MPG

Criminal(West)

9.4. ENCADEAMENTO PARA TRS E PARA A FRENTE

CAP.10

10.6 SISTEMAS DE FRAMES E REDES SEMNTICAS

Charles Pierce props grafos existenciais para representar a lgica de 1 ordem, dando origem
s redes semnticas. H maneiras de traduzir para a linguagem da lgica de 1 ordem
habitual.
O importante com qualquer linguagem de representao perceber a sua semntica e a teoria
da prova.

Os programadores podem construir uma grande rede e ainda assim manter uma boa ideia
acerca de que questes so eficientes, porque (a) fcil visualizar os passos que o
procedimento de inferncia dar, e (b) a linguagem das questes to simples que questes
difceis no podem ser colocadas.

SINTAXE E SEMNTICA DAS REDES SEMNTICAS

A sintaxe concentra-se em categorias de objectos e nas relaes entre elas.

subset

Cats > Mammals

em vez de x Cat(x) => Mammal(x)

um exemplo de herana como explicado em cap.8

Define-se 1 uma verso onde no so permitidas excepes. Para alm dos links Subset e
Member, temos de ter R que mantm uma relao entre 2 objectos, A e B; outra que mantm
uma relao entre todos os elementos de uma classe A e o objecto B; e outra que mantm
uma relao entre todos os elementos de A e alguns elementos de B.

Tipo de Ligao Semntica Exemplo

A Subset B AB Cats Mammals

A Member B AB Bill Cats

ARB R(A,B) Bill Age 12

A R| B x xA => R(x,B) Bill | Legs 2

A R|| B x y xA => yB R(x,y) Birds || Parent Birds

HERANA COM EXCEPES

temos de mudar a semntica de um R em caixa de A para B para querer dizer que todos os
membros de A devem ter uma relao R para B, a menos que haja algum interveniente A para
o qual Rel(R,A,B). Note-se que Rel(R,A,B)agora quer dizer que B um valor por defeito, mas
esse valor pode ser overridden por outra informao.

instrutivo definir esta relao na semntica da lgica de 1 ordem. O primeiro passo reificar
relaes: uma relao R torna-se um objecto, no um predicado. O que quer dizer que j no
podemos escrever R(x,B). Usamos val(R,x,B) para significar que o equivalente de R(x,B)
explicitamente assertado na rede semntica, e Holds(R,x,B) para significar que R(x,B) pode
ser inferida. Definimos ento Hold dizendo que uma relao R se mantm entre x e b se existir
uma predicado Val explcito ou houver uma Rel numa classe pai de que x seja elemento, e no
houver Rel em qualquer classe interveniente i. (uma classe interveniente se x for um
elemento de i e i um subconjunto de p). Pode ser posto em linguagem simblica (pg.319).

O prximo passo reconhecer o que Rel e Val mantm mas tambm o que no mantm.
Suponhamos que tentamos encontrar o n que satisfaz Holds(Legs,Opus,n). sabemos que
Rel(Legs,Birds,2) e que Opus um Bird, mas da definio de Hold, temos que provar ainda
que no h Rel(Legs,i,b) para i=Penguins ou outra categoria interveniente. Se a KB s tiver
Rel positivos e atmicos estamos fritos. Por isso deve incluir frases que digam que Rel e Val
que so mostradas so as nicas verdadeiras.

r,a,b Rel(r,a,b) 8r,a,b] 7[Alive,Animal,T],[Flies,Animal,F9,...}

a,b,r Val(r,a,b) 8r,a,b] {8Friend,Opus,Bill9, [Friend,Bill,Opus],...}

HERANA MLTIPLA

Um objecto pode pertencer a mais do que uma categoria e assim herdar propriedades ao
longo de vrios caminhos.

possvel, contudo, para dois caminhos de herana produzirem respostas conflituosas. Por
ex. Opus pinguim e figura e BD, o que implica vocalizaes diferentes.

Sem informao adicional indicando alguma preferncia por um caminho, no h maneira de


resolver o conflito.

HERANA E MUDANA

Na lgica de 1 ordem usvamos o TELL e tnhamos a monoticidade.

Mas a herana com excepes no-monotnica. H 2 maneiras de lidar com isso.

Primeira, podemos mudar da lgica de 1 ordem para uma lgica no-monotnica que lide
explicitamente com valores por defeito. Segunda, podemos adicionar uma nova frase como
um RETRACT seguido de um TELL. Em vez de usarmos frases do tipo TELL(KB, Rel(R,A,B))
usamos:

TELL(KB, r,a,b Rel(r,a,b) ...) onde ... significa todas as Rels possveis. Assim, adicionar
rel(Legs,Cats,3), implica ter de remover a antiga frase equivalente e substitui-la por uma nova.

IMPLEMENTAO DAS REDES SEMNTICAS


Com um provador de teoremas ou uma linguagem de programao lgica. mas para redes
com semntica simples, h um modo mais directo de implementao. Um n numa rede
representado por uma estrutura de dados com campos para as conexes taxonmicas
bsicas: de que categorias mebro, que elementos tem, quais os subconjuntos e
superconjuntos imediatos.

datatype SEM-NET-NODE

components: NAME, MEMBERSHIPS, ELEMENTS, SUPERS, SUBS,

RELS-IN, RELS-OUT, ALL-RLS-IN, ALL-RELS-OUT

cada um destes campos de Rels est organizado como uma tabela indexada pela relao.
usamos a funo LOOKUP(key, table) para encontrar o valor associado com a chave na
tabela. assim, se tivermos 2 links Opus Friend Bill e Opus Friend Steve, ento o
LOOKUP(Friend, RELS-OUT(Opus) d {Steve, Bill}.

O cdigo no maneja com ligaes em caixa dupla nem com excepes.

Um problema com esta abordagem ficarmos preocupados com a estrutura e olvidarmos a


semntica.

EXPRESSIVIDADE DAS REDES SEMNTICAS

So muito limitadas na sua expressividade. Por ex. no possvel representar a negao


(Opus no guia uma bicicleta), a disjuno (Opus aparece em Times e Dispatch), ou
quantificao (todos os amigos de Opus so figuras da BD), constructos que so essenciais
em muitos domnios.

As vantagens so: habilidade em capturar a informao de herana numa forma modular, e a


sua simplicidade torna-as fceis de compreender. A eficincia tambm reclamada como uma
3 vantagem, porque a inferncia feita seguindo links, mas o Prolog compilado quase igual
neste aspecto.

PARTE IV ACTUANDO LOGICAMENTE

Lio 7 Planeamento
Ler captulos 11 e 12, com 70 pginas. Estima-se o tempo de leitura em 7h, pelo que se aconselha a
realizar trs a quatro periodos de leitura.
Tpicos a saber: traduzir de texto para STRIPS e vice-versa; plano de ordem parcial; passar de
STRIPS para lgica proposicional; planeamento condicional
Trabalho: Utilize o STRIPS para formular o problema das 8 damas.
CAP. 11 PLANEAMENTO

11.1. UM AGENTE DE PLANEAMENTO SIMPLES


11.4. REPRESENTAO BSICA PARA PLANEAMENTO

A aproximao clssica que muitos planeadores usam hoje descrever estados e operadores
numa linguagem restrita conhecida por STRIPS, que conduz a algoritmos de planeamento
eficientes.

REPRESENTAES PARA ESTADOS E GOALS

Os estados so representados por conjunes de funes de literais ground, isto ,


predicados aplicados a constantes, possivelmente negados.

At(Home) -Have(Milk) -Have(Bananas) -Have(Drill)

Os Goals so tambm descritos por conjunes de literais:

At(Home) have(Milk) Have(Bananas) Have(Drill)

Os Goals tambm podem ter variveis:

At(x) Sells(x,Milk)

Porque muitas aces mudam apenas uma parte pequena da representao dos estados,
mais eficiente manter rasto das mudanas.

REPRESENTAO DAS ACES

Os operadores de STRIPS consistem em 3 componentes:

- a descrio da aco

- a pr-condio

- o efeito

Ex. da formao de um operador:

Op(ACTION:Go(there), PRECOND:At(here) Path(here,there), EFFECT: At(there) -At(here)

Usaremos notao grfica para descrever operadores.

At(here), Path(here,there)

frame-col-xpos:1,489583in; wrap-mode:above-text; frame-height:0,311111in; frame-


type:textbox; frame-pref-page:95; frame-col-ypos:0,015972in; ypos:0,015972in; frame-
width:1,489583in; xpos:1,489583in; position-to:block-above-text
At(there), -At(here)

Um operador com variveis conhecido como um operador esquema, porque no


corresponde a uma nica aco executvel mas a uma famlia de aces, uma por cada
instanciao diferente das variveis.

Dizemos que um operador aplicvel num estado s se h alguma maneira de instanciar as


variveis em o de modo a que todas as pr-condies de o true em s, isto , se Precond(o)
s. No estado resultante, todos os literais positivos em Effect(o) se mantm, como todos os
literais que se mantm em s, excepto aqueles que so literais negativos em Effect(o). Ex:

inicial contm At(Home), Path(Home,supermarket),...

entoa aco Go(Supermarket) aplicvel, e a situao resultante contm os literais

-At(Home), at(Supermarket), Path(Home,Supermarket),...

ESPAO DE SITUAES E ESPAO DE PLANOS

Se quisermos, podemos tomar um problema descrito em STRIPS e resolv-lo comeando no


estado inicial e aplicando operadores, um de cada vez, at atingirmos um estado que inclua
todos os literais do goal mtodos search. Mas podemos tambm considerar um plano.
Podemos chamar um plano de espao de situao porque procura no espao de possveis
situaes, e plano progressivo porque vai do inicial para o final. O problema o alto factor de
salto e o grande tamanho do espao de procura.

Uma maneira de cortar no factor de salto procurar para trs (plano regressivo). Esta
abordagem prefervel porque nos problemas tpicos o estado goal tem apenas algumas
conjunes, cada qual com um conjunto de operadores apropriados pequeno, enquanto,
habitualmente, o estado inicial tem muitos operadores aplicveis. Um operador apropriado a
um goal se o goal um efeito do operador. Infelizmente isto difcil, pelo facto de que,
frequentemente, temos de atingir uma conjuno de goals e no apenas um.

Uma alternativa procurar atravs do espao de planos. Comeamos com um simples e


incompleto plano a que chamamos plano parcial. Depois vamos expandindo. As operaes em
planos vm em 2 categorias. Operadores de refinamento que tomam um plano parcial e lhe
adicionam restries. Outra maneira usar operadores de modificao e ir
alterando/debuggando um plano inicialmente errado. Usaremos apenas os primeiros.

REPRESENTAES PARA PLANOS

Ex. planos parciais para um problema simples.

goal: RightShoeOn LeftShoeOn


o estado inicial no tem literais

os 4 operadores so:

Op(ACTION: RightShoe, PRECOND: RightSockOn, EFFECT: RightShoeOn)

Op(ACTION: RightSock, EFFECT: RightSockOn)

Op(ACTION: LeftShoe, PRECOND: LeftSockOn, EFFECT: LeftShoeOn)

Op(ACTION: LeftSock, EFFECT: LeftSockOn)

Um plano parcial para este problema consiste em 2 passos RightShoe e LeftShoe. Mas qual
tomar 1? Muitos planeadores usam o princpio do menor compromisso que diz que que
devemos apenas fazer escolhas acerca de coisas que interessam na altura, deixando as
outras para depois.

Um planner que consegue representar planos nos quais alguns passos esto ordenados
(antes ou depois) com respeito uns aos outros e outros passos esto desordenados,
chamado um planner de ordem parcial. A alternativa um planner de total ordem (uma simples
lista de passos), e que chamado uma linearizao de P.

Os planeadores tambm se comprometem a ligaes para variveis nos operadores. Por


exemplo, suponha que um dos Goals Have(Milk), e tem a aco Buy(item,store). Um
comprometimento sensvel escolher esta aco com a varivel item em Milk. Contudo, no
h razo para substituir store, devido ao princpio do menor comprometimento.

Planos em que todas as variveis so instanciadas a uma constante, so chamados planos


totalmente instanciados.

Um plano formalmente definido como uma estrutura de dados consistindo dos seguintes 4
componentes:

- Um conjunto de passos de plano. Cada passo um dos operadores para o problema.

- Um conjunto de restries ordem dos passos (Si<Sj, quer dizer Si antes de Sj).

- Um conjunto de restries s ligaes (bindings) das variveis (forma v=x).

- Um conjunto de ligaes causais: Si c Sj que quer dizer Si atinge c por Sj)

O plano inicial, antes de qualquer refinamento, descreve simplesmente o problema ainda no


resolvido. Consiste em 2 passos, chamados Start e Finish, com a restrio de ordem Start <
Finish. ambos tem aces nulas associados e assim quando tempo de executar o plano, so
ignorados. O apsso Start no tem pr-condies, e os seus efeito adicionar todas as
proposies que so true ao estado inicial. O passo Finish tem o estado goal como pr-
condio e no tem efeitos.

Plan(STEPS: {S1: Op(ACTION: Start),

S2: Op(ACTION: Finish, PRECOND: RightShoeOn LeftShoeOn)},


ORDERINGS: {S1 < S2},

BINDINGS: {},

LINKS: {})

Como nos operadores individuais, usamos uma notao grfica para descrever os planos.

Por exemplo se adicionarmos um casaco ao problema, ser ainda um plano parcial que
representa as solues, mas haver 180 linearizaes desse plano parcial.

SOLUES

Uma soluo um plano que um agente pode executar, e que garante o atingimento do
objectivo.

Uma soluo um plano completo e consistente.

Um plano completo um em que todas as pr-condies de todos os passos so atingidas por


outro passo. Um passo atinge uma condio se a condio um dos efeitos do passo, e no
h outro passo que possa cancelar a condio.

Um plano consistente um no qual no h contradies na ordem ou ligao das restries.

11.5. UM EXEMPLO DE UM PLANO DE ORDEM-PARCIAL

regressivo e procura atravs do espao dos planos. Em cada iterao junta mais um passo.
Se isso conduzir a um plano inconsistente, volta a trs e tenta outro branch do espao de
procura. O planeador apenas considera a adio de passos que servem para atingir uma pr-
condio que ainda no foi atingida.

O estado inicial :

Op(ACTION: Start, EFFECT: At(Home) Sells(HWS,Drill) Sells(SM,Milk)


Sells(SM,Banana))

O estado goal o Finish

Op(ACTION:Finish, PRECOND: Have(Drill) Have(Milk) Have(Banana) At(Home))

As aces so:

Op(ACTION: Go(there), PRECOND: At(Here), EFFECT: At(there) - At(Here))

Op(ACTION): Buy(x), PRECOND: At(store) Sells(store,x), EFFECT: Have(x))

A primeira coisa que se v que h muitas maneiras de elaborar o plano. Algumas funcionam
outras no.
Comeamos por seleccionar 3 aces de Buy para atingir 3 das pr-condies da aco
Finish.

A seta a bold denota as linhas causais O planeador deve garantir que as condies
atingidas devem manter-se protegidas.

As setas no a bold mostram a ordem das restries. Por isso deve-se pensar tambm nas a
bold como se tivessem por baixo umas a no bold.

O segundo estgio mostra a situao depois do planeador ter escolhido atingir as pr-
condies Sells ligando-as ao estado inicial.

De seguida vamos estender o plano pela escolha de 2 aces Go para nos levar loja de
ferragens e ao supermercado, atingindo assim as pr-condies At das aces de Buy.

Infelizmenter isto conduz-nos a um problema. O passo Go(HWS) junta a condio At(HWS),


mas tambm apaga a condio At(Home). assim, se o agente vai at loja de hardware, no
pode mais ir de casa para o supermercado. isto, a menos que introduza um passo para voltar
a cas mas a ligao causal significa que o passo start, no outro, atinge a pr-condio
At(Home).

Neste ponto atingimos um beco sem sada na procura de uma soluo e devemos voltar atrs
e procurar outra escolha. O interessante ver que o planeador pode ver que este plano est
morto sem perder muito tempo com ele.

A chave que as ligaes causais no plano parcial so ligaes protegidas. Uma ligao
causal est protegida assegurando que ameaa isto , passos que possam apagar (ou
clobber) a condio protegida esto ordenados para virem antes ou depois da ligao
protegida.

A maneira de resolver a ameaa adicionar restries ordenadas. Se a nova aco posta


antes chamada demotion, se depois promotion.

No nosso caso cada Go ameaa o outro, ento temos de voltar atrs.

Suponhamos que a prxima escolha tentar uma diferente maneira de atingir a pr-condio
At(x) do passo Go(SM), desta vez adicionado uma ligao causal de Go(HWS) para Go(SM).
Isto introduz uma nova ameaa (ir ao HWS e no comprar a Drill).

Tecnicamente o passo Go(SM) ameaa a pr-condio At(HWS) de Buy(Drill), que est


protegido por uma linha causal. A ameaa resolvida por restrio do Go(SM) vir depois do
Buy(Drill).

Finalmente adicionamos um passo Go(Home), mas introduz uma prcondio que tem de ser
atingida. Outra vez a proteco das ligaes causais ajudam o planeador a decidir como fazer:

vejamos o que conseguido com o planeador de ordem-parcial. Ele pega num problema que
requereria uitos milhares de esatdos de procura segundo uma aproximao de resoluo-de-
problema, e resolve-o em poucos esatdos de procura. Mais ainda, a natureza de menor
compromisso significa que ele s precisa de procurar em lugares em que os subplanos
interagem uns com os outros. Finalmente, as ligaes causais permitem ao planeador
reconhecer quando abandonar um plano sem sada sem perder muito tempo a expandir partes
irrelevantes.

CAP. 13 PLANEANDO E AGINDO

Para aplicar os algoritmos anteriores, o mundo tem de ser acessvel, esttico e determinstico.
Mais, as descries das aces tm de ser correctas e completas, descrevendo todas as
consequncias exactamente. Nos domnios do mundo real, os agentes tm de lidar com a
incompleteza e incorreco da informao.

H 2 maneiras de fazer isso:

- Planeamneto Condicional (Planeamento Contingente), lida com a falta de informao


construindo um plano condicional que tem em conta casda possvel situao de contingncia
que pode aparecer. O agente encontra que parte do plano executar, incluindo aces de
sensoriamento.

- Execuo Monitorizada (o contrrio dos anteriores, que eram de olhos fechados no


usava percepes para seleccionar aces). Monitorizando o que est a acontecer enquanto
executa o plano, o agente pode notar quando as coisas correm mal. Ento pode replanear, de
modo a encontrar um caminho de atingir os goals a partir da nova situao.
Elas esto relacionadas, mas, ao contrrio do condicional, a monitorizao realmente defere o
trabalho de lidar com essas condies de erro, at que elas aconteam mesmo.

13.1. PLANEAMENTO CONDICIONAL

Comeamos por ver a natureza dos planos condicionais e co o o agente os executa.

A Natureza dos Planos Condicionais

Ex. arranjar um pneu:

Op(ACTION:Remove(x),

PRECOND:On(x),

EFFECT:Off(x) ClearHub(x) On(x))

Op(ACTION:PutOn(x),

PRECOND:Off(x) ClearHub(x),

EFFECT:On(x) ClearHub(x) Off(x))

Op(Action:Inflate(x),

PRECOND:Intact(x) Flat(x),

EFFECT:Inflated(x) Flat(x))

o goal On(x) Inflated(x)

as condies iniciais so Inflated(Spare) Intact(Spare) Off(Spare) On(Tire1) Flat(Tire1)

ento, os planeadores standard tero o seguinte plano [Remove(Tire1), PutOn(Spare)]

Se a ausncia de Intact(Tire1) no estado inicial, realmente significa que o pneu no est intacto
(como os satndard assumem), ento tudo est bem. Mas supondo que temos uma
informaoincompleta do mundo, o pneu est furado. ento seria melhor que o agente
usassse um plano condicional: Se o Tire1 est intacto, ento enche. Se no, remove-o e
coloca o sobresselente. para expressar isto formalmente, podemos extender a nossa notao
original para os passos do plano com um passo condicional If(<Condition>, <ThenPart>,
<ElsePart>,). Assim, o plano seria:

If(Intact(Tire1), [Inflate(Tire1)], (Remove(Tire1), putOn(Spare)])

Pode haver aninhamentos.


A parte crucial na execuo de planos condicionais que o agente precisa, na altura de
execuo de um passo condicional, ser capaz de decidir da verdade ou falsidade da condio
isto , a condio deve ser conhecida do agente naquele ponto do plano. Ex. se no sabe se
est intacto o Tire1, no pode executar o plano.

O que o agente sabe num determinado ponto, deteminaod pela sequncia de percepesat
esse ponto, a sequncia de aces at a, e o conhecimento inicial do agente.

Para assegurar que um plano condicional executvel, o agente tem de saber inserir
aces que causem que as condies relevantes sejam conhecidas pelo agente.

Factos tornam-se conhecidos atravs doas percepes, logo o que queremos dizer que o
agente tem de agir duma forma de se assegurar que recebe as percepes adequadas. ex.
para saber se o pneu est intacto uma maneira colocar-lhe algum ar e ver se h
hiss/assobio.

Suponhamos que se usa CheckTire(x) para referir uma aco que estabelece o estado de x.
Esta um exemplo de uma aco de sensoriamento.

Usando o clculo de situaes, podemos escrever:

x,s Tire(x) => KnowsWhether(Intact(x), Result(CheckTire(x),s))

No nosso formato de esquema, escreveramos:

Op(ACTION:CheckTire(x),

PRECOND:Tire(x),

EFFECT:KnowsWheter(Intact(x)))

Note que tal como ter efeitos no conhecimento, uma aco de sensoriamento pode ter efeitos
ordinrios. por ex., se a aco CheckTire usar o mtodo da gua, o pneu fica molhado. Aces
de sensoriamento podem ter tambm prcondies que precisem de ser estabelecidas. Por
ex., podemos precisar de pegar numa bomba em ordem a meter algum ar.

Um planeador condiconal assim, deve algumas vezes criar planos que envolvem carrear
aces ordinrias para o propsito de obter alguma informao necessria.

Um Algoritmo para Gerar Planos Condicionais

muito parecido com o standard. O principal constructo adicional o contexto de um passo


no plano. simplesmente a unio de condies que devem ser reunidas em ordem a executar
o passo. Por ex. a aco Inflate(Tire1) tinha o contexto Intact(Tire1). Uma vez estabelecido
que o passo tem um certo contexto, ento os passos subsequentes no plano herdam esse
contexto. os contextos so essenciais para manter o rasto de que passos podem ser
estabelecidos ou violar que precondies de que outros passos. Ex.
Podemos adicionar o passo CheckTire ao plano como uma link condicional. O passo
CheckTire chamado de passo condicional porque se toorna um ponto de salto/branch point
no plano final. O passo inflate e o passo final adquirem agora uma etiqueta de contexto que
diz que eles assumem a sada de Intact(Tire1) em vez de Intact(Tire1). Porque CheckTire
no tem precondies na nossa formulao simples, o plano est completo dado o contexto
do passo final.

Obviamente, no podemos ficar por aqui. precisaomos de um plano que actue nos 2 casos. o
planeador condicional assegura isso adicionando uma segunda cpia do estado final,
etiquetado com o contexto que a negao do contexto existente.

No caso do planeador standard o passo Remove(Tire1) ameaaria a ligao causal protectora


de On(Tire1) do primeiro passo final. Enta teramos de promover ou demover esse passo de
remove para no interferir. No condicional, podemos tambm resolver a ameaa
condicionando o passo de modo a que o seu contexto seja incompatvel com o contexto do
passo em que que essa precondio seja ameaada (neste caso, o 1 passo final).

CAP. 14
INCERTEZA

8 Incerteza, Probabilidades e Deciso


Ler captulos 13, 14, 15, 16 e 17, com um total de 157 pginas. Estima-se o tempo de leitura de 16
horas, aconselhando-se o aluno a no fazer esta lio num s dia, e a dividir a leitura em periodos
de durao no superior a 2 horas. Parte da matria inicial o aluno j saber, e se tiver o tempo
muito limitado, poder no realizar esta lio, arriscando-se no entanto a no ter bases para fazer
entre 2 a 6 valores no exame.
Tpicos a saber: incerteza/probabilidades bsicas; tabela de frequncias; frmula de bayes; rede
bayseana; incerteza e tempo; HMM, DBN; funo utilidade; multiatributo / alternativas dominadas;
valor da informao; teoria dos jogos; ponto de equilbrio
Trabalho: Considere um problema de deciso simultnea que tenha um s ponto de Hash. Faa um
estudo do que acontece se se ignorar que a deciso simultnea (utilize o MiniMax, com limite do
nmero de jogadas).

14.1. ACTUANDO DEBAIXO DE INCERTEZA

Um problema com a lgica de 1 ordem, e assim com a aproximao do agente lgico, que
os agentes quase nunca tm acesso a toda a verdade acerca do seu ambiente.

O agente tem pois de actuar debaixo de incerteza. Por ex. o agente wumpus no consegue
saber qual dos 2 quadrados tem um pit; se esses quadrados fizerem parte do caminho para o
ouro, o agente tem de tomar uma deciso e entrar num desses quadrados.

A incerteza tambm pode emergir devido imcompletitude (muitas condies e por vezes
desconhecidas algumas) e incorreco da compreenso do agente das propriedades do
ambiente.

O plano A90 levar-nos- ao aeroporto a tempo, desde que o meu carro no avarie ou fique
sem gasolina, no tiver um acidente, o avio no sair mais cedo, no houver um terramoto,...

Apesar disso suponhamos que A90 de facto a coisa certa a fazer; no h certeza mas pode
levar a um grau de crena que ser atingido o objectivo.

A coisa certa a fazer, a deciso racional, depende pois da relativa importncia das vrias
metas e da semelhana e grau com que sero atingidas.

LIDANDO COM CONHECIMENTO INCERTO

Nesta seco, veremos mais de perto a natureza do conhecimento incerto. Usaremos um


diagnstico simples para ilustrar os conceitos envolvidos.

p Symptom(p,Tootache) => Disease(p,Cavity) est errado

p Symptom(p,Tootache) => Disease(p,Cavity) V Disease(p,GumDisease) V


Disease(p,ImpactedWisdom) lista quase ilimitada

p Disease(p,cavity) => Symptom(p,Tooache) errada tambm.

Tentar usar a lgica de 1 ordem para um domnio como o diagnstico mdico falha por:

- Vagareza (grande lista, difcil de trabalhar)

- Ignorncia Terica

- Ignorncia Prtica (testes que no podem ser executados)

O mesmo vlido para outros domnios, como: justia, negcios, design, reparaes
automveis, jardinagem, etc. O conhecimento do agente, no mximo prov apenas um grau
de crena nas frases relevantes. a nossa principal ferramenta a teoria das probabilidades,
que associa um grau de crena numrico, entre 0 e 1, s frases.

As probabilidades provm um meio de sumariar a incerteza que advm da vagareza e da


ignorncia. Pode derivar de dados estatsticos, de regras gerais ou combinao de fontes de
evidncia.

importante notar que grau de crena no o mesmo que grau de verdade. Grau de verdade,
como oposto de grau de crena, o sujeito da lgica fuzzy.

Tal como o estado de seguimento pode mudar quando mais frases so adicionadas KB, as
probabilidades podem mudar quando mais evidncias so captadas.

Antes da evidncia ter sido obtida, falamos de probabilidade priori ou incondicional; depois
a probabilidade condicional ou posteriori.

INCERTEZA E DECISES RACIONAIS

a presena da incerteza muda radicalmente o modo como o agente toma decises.

Para fazer escolhas, um agente precisa primeiro ter preferncias entre diferentes possveis
sadas/consequncias dos vrios planos. Usaremos a teoria da utilidade para representar o
raciocnio com preferncias. a teoria da utilidade diz que todos os estados tm um grau de
utilidade para um agente e que o agente prefere estados em que a utilidade seja maior.

No h escala para gostos e preferncias. Permite o altrusmo.

Teoria da Deciso = Teoria das Probabilidades + Teoria da Utilidade

A ideia fundamental da teoria das decises que um agente racional se e s se escolher a


aco que conduz a uma utilidade esperada mais alta. o princpio da Utilidade Mxima
Esperada.

DESIGN PARA UM AGENTE TEORTICO-DECISIONAL

Neste captulo e no seguinte, concentramo-nos na tarefa de computar probabilidades para os


estados correntes e para as possveis sadas das aces.

14.2. NOTAO BSICA DAS PROBABILIDADES

Precisamos duma linguagem formal para representar e raciocinar com conhecimento incerto.
Deve ser capaz de lidar com duas coisa principais: a natureza das frases nas quais os graus
de crena so associados e a dependncia do grau de crena do estado de conhecimento do
agente.
PROBABILIDADE PRIORI

P(A)

P(Cavity) = 0,1

significa que, na ausencia de outra informao, o agente associar a probabilidade de 0,1 do


paciente ter uma crie.

As proposies tambm podem incluir igualdades envolvendo variveis randmicas:

P(Weather, Sunny) = 0,7

Cada varivel randmica X tem um domnio de valores possveis (x1,..,xn) que pode tomar.

Tambm podemos ver as proposies de smbolos como variveis randmicas, se


assumirmos que tm um domnio (true, false). assim, P(Cavity) = P(Cavity=true). Usamos
letras A,B,... para variveis randmicas Booleanas e X,Y,... para variveis multivaloradas.

Se quisermos falar de todos os valores de uma varivel randmica usamos P(weather) que
denota um vector de valores. Podemos escrever

P(weather) = <0.7, 0.2, 0.08, 0.02>

Esta frase define uma distribuio de probabilidade para a varivel randmica Weather.

Por ex. P(Weather,Cavity) denota uma tabela de probabilidades de 4x2. esta notao
simplifica muitas equaes.

Podemos usar conectivos: P(Cavity -Insured) = 0,06

PROBABILIDADE CONDICIONAL

P(A|B) a probabilidade de A dado que conhecemos B

ex: P(Cavity|Tootache) = 0,8

P(A) um caso especial ... P(A| )

P(X|Y) uma tabela bidimensional com os valores P(X=xi|Y=yj)

As probabilidades condicionais podem ser dadas em termos das incondicionais:

P(AB)

P(A|B) = -------------- (14.1.)

P(B)
Pode ser escrita tambm:P(AB) = P(A|B) P(B)

que chamada a regra do produto.

Tambm pode ser P(AB) = P(B|A) P(A)

Usaremos as probabilidades condicionais como veculo para a inferncia probabilstica.

P(X,Y) = P(X|Y) P(Y)

Assim, uma das equaes pode ser: P(X=x1 Y=y2) = P(X=x1|Y=y2) P(Y=y2)

Em geral estamos interessados em saber a probabilidade da proposio A e temos de


acumular evidncia de B, e ento a quantidade que temos de calcular P(A|B). Por vezes no
temos esta probabilidade condicional disponvel na KB, e temos de i pela inferncia
probabilstica, que veremos a seguir.

14.3. OS AXIOMAS DA PROBABILIDADE

Para definir apropriadamente a semntica das frases da teoria das probabilidades, precisamos
de descrver como as probabilidades e os conectores lgicos interagem.

1. Todas as probabilidades esto entre 0 e 1

0 P(A) 1

2. Necessariamente verdadeiro, isto vlidas, proposies tm a probalidade de 1, e as


proposies necessariamente falsas (i.e. no satisfazveis) tm probalidade 0

P(True) = 1; P(False) = 0

3. A probabilidade de uma disjuno dada por

P(AVB) = P(A) + P(B) P(AB)

Destes 3 axiomas podemos derivar todas as outras propriedades das probabilidades.

P(A V A) = P(A) + P(-A) P(A -A) pela 3 com B=-A

P(True) = P(A) + P(-A) P(False) pela equivalncia lgica

1 = P(A) + P(-A) pela 2

P(-A) = 1- P(A) pela lgebra

PORQUE OS AXIOMAS DAS PROBABILIDADES SO RAZOVEIS


Com as probabilidades, por outro lado, as frases referem-se no ao mundo directamente, mas
ao estado de conhecimento do agente. Porqu, ento, pode um agente no manter o seguinte
conjunto de crenas, dado que estas probailidades claramente violam o 3 axioma?

P(A) = 0,4 P(B) = 0,3 P(AB) = 0,0 P(AVB)=0,8

Dcadas de intenso debate.

A chave do argumento de Finetti a conexo entre o grau de crena e as aces.

Se o agente 1 expresa um conjunto de graus de crena que violem os axiomas da teoria das
probabilidades, ento h uma estratgia de apostas para o Agente 2 que garante que o Agente
1 perde dinheiro.

Vamos ver agora como os axiomas podem ser usados para fazer inferncias.

A DISTRIBUIO DE PROBABILIDADE DA JUNO

Definimos joint (abreviada), que especifica completamente as associaes de probabilidades


de um agente a todas as proposies do domnio.

Um modelo probabilstico de um domnio consiste num conjunto de variveis randmicas que


podem tomar valores particulares com certas probabilidades. Sejam as variveis X1,...,Xn. Um
evento atmico uma asociao de valores particulares a todas as variveis em outras
palavras, a especificao do estado do domnio.

A Juno P(X1,...,Xn) associa probabilidades a todas os possveis eventos atmicos. Ex:

Tootache -Tootache

Cavity 0.04 0.06

-Cavity 0.01 0.89

Porque os eventos atmicos so mutuamente exclusivos, qualquer conjuno de eventos


atmicos necessariamente falsa.

Porque so colectivamente exaustivos, a sua disjuno necessariamente verdadeira (soma


da tabela =1).

A juno pode ser usada para computar estatisticamente qualquer frase que queiramos saber
acerca do domnio, expressando a frase como uma disjuno de eventos atmicos e
adicionando as suas probabilidades:

P(Cavity) = 0,06 + 0,04 = 0,10

P(Cavity V Tootache) = 0,04 + 0,01 + 0,06 = 0,11


Usando 14.1 e a juno:

P(Cavity Tootache) 0,04

P(Cavity|Tootache) = -------------------------------------- = --------------------- = 0,80

P(Tootache) 0,04 + 0,01

O problema que a tabela muito grande se forem muitas variveis.

O moderno raciocnio probabilstico salta pela juno e trabalha directamente com as


probabilidades condicionais, que so os valores que realmente interessam.

14.4. A REGRA DE BAYES E O SEU USO

Relembrando:

P(AB) = P(A|B) P(B)

P(AB) = P(B|A) P(A)

Igualando os dois lados direitos e dividindo por P(A), obtemos a Regra de Bayes

P(B|A) = P(A|B) P(B) / P(A)

Esta simples regra suporta todos os modernos sistemas de AI de inferncia probabilstica.

No caso mais geral de variveis multivaloradas:

P(Y|X) = P(X|Y) P(Y) / P(X)

ou, ainda mais geral, condicionada nalgumas evidncias sabidas:

P(Y|X,E) = P(X|Y,E) P(Y|E) / P(X|E)

APLICANDO A REGRA DE BAYES: O CASO SIMPLES

Seja S a proposio que o paciente tem o pescoo inchado e M a proposio que o paciente
tem meningite, temos:

P(S|M) = 0,5

P(M) = 1/50000

P(S) = 1/20

P(M|S) = P(S|M) P(M) / P(S) = 0,5 * 1/50000 / 1/20 = 0,0002


Questo bvia: Porque podemos ter disponvel a probabilidade condicional num sentido e no
noutro? Se houver uma epidemia, a P(M) sobe e P(S|M) no afectado pela epidemia.

NORMALIZAO

Consideremos:

P(M|S) = P(S|M) P(M) / P(S)

Suponhamos que tambm estamos preocupados com a possibilidade do doente sofrer de W


dado que tem pescoo inchado.

P(W|S) = P(S|W) P(W) / P(S)

Olhando para as duas, vemos que, em ordem a computar a semelhana relativa da M e da W,


dado um pescoo inchado, no precisamos aceder a P(S).

Suponha que P(S|W) = 0,8 e P(W)=1/1000, ento:

P(M|S) P(S|M) P(M) 0,5 * 1/50000

--------------- = ----------------- = ----------------------- = 1/80

P(W|S) P(S|W) P(W) 0,8 * 1/1000

Isto , W 80 vezes mais provvel que a meningite, dado um pescoo inchado.

Em alguns casos, a semelhana relativa suficiente para tomar decises, mas quando, como
no nosso caso, as duas possibilidades conduzem a radicalmente diferentes utilidades para
aces de tratamento, precisamos dos valores exactos, em ordem a tomar decises racionais.

possvel evitar o acesso directo a probabilidades incondicionais dos sintomas, considerando,


considerando um conjunto exaustivo de casos. Por ex. podemos escrever equaes para M e
para M

P(M|S) = P(S|M) P(M) / P(S)

P(-M|S) = P(S|-M) P(-M) / P(S)

Somando as duas e sabendo que P(M|S) + P(-M|S) =1, obtemos:

P(S) = P(S|M) P(M) + P(S|-M)) P(-M)

Substituindo na equao de P(M|S), temos:

P(S|M) P(M)

P(M|S) = -------------------------------------------

P(S|M) P(M) + P(S|-M) P(-M)


o processo chamado de normalizao, porque trata 1/P(S) como uma constante de
normalizao que permite que os termos condicionais somem 1. Assim, sabendo P(S|-M)
podemos evitar o acesso a P(S) e usar na mesma a regra de Bayes.

No caso multivalorado:

P(Y|X) = P(X|Y) P(Y)

em que a constante de normalizao necessria para fazer as entradas na tabela P(Y|X)


somar 1. A maneira normal de usar a normalizao calcular os valores no normalizados, e
depois escal-los de modo a que somem 1.

USANDO A REGRA DE BAYES: COMBINANDO EVIDNCIAS

Suponha

P(Cavity|Tootache) = 0,8

P(Cavity|Catch) = 0,95

que podamos ter obtido de aplicar a regra de Bayes. Que pode um dentista concluir se
catches no dente a doer do paciente? Se soubermos toda a juno, ser fcil ler P(Cavity|
Tootache Catch). Alternativamente, podemos usar a regra de Bayes para reformular o
problema:

P(Tootache Catch|Cavity) P(Cavity)

P(Cavity|Tootache Catch) = ------------------------------------------------

P(Tootache Catch)

Apesar de parecer fazvel estimar as probabilidades condicionais (dado Cavity) para n


variveis individuais, pesado esse clculo que se torna em n2 pares de variveis. E o
diagnstico depende de dezenas de variveis...

A aplicao da Regra de Bayes pode simplificar para uma forma que requeira poucas
probabilidades. O primeiro passo tomar uma viso diferente do processo de incorporao de
mltiplas peas de evidncia. O processo de Actualizao Bayesiano incorpora uma evidncia
de cada vez, modificando a crena anterior na varivel desconhecida. Comeando por
Tootache, temos (escrevendo a regra de Bayes de maneira a revelar o processo de
actualizao):

P(Tootache|Cavity)

P(Cavity|Tootache) = P(Cavity) -----------------------


P(Tootache)

Quando o catch observado aplicamos a regra com Tootache como constante de


condicionamento do contexto:

P(Catch|Tootache Cavity)

P(Cavity|Tootache Catch) = P(Cavity|Tootache) ------------------------------------

P(Catch|Tootache)

P(Tootache|Cavity) P(Catch|Tootache Cavity)

= P(Cavity) --------------------------------------- ------------------------------------------------

P(Tootache) P(Catch|Tootache)

Assim, na actualizao de Bayes, cada nova pea de evidncia que observada, a crena na
varivel desconhecida multiplicada por um factor que depende da nova evidncia.

Encontrar um valor para o numerador, P(Catch|Tootache Cavity), no necessariamente


mais fcil que para P(Tootache Catch|Cavity). Vamos ter que fazer uma assuno
substantiva em ordem a simplificar as expresses. A observao chave, no caso da cavity,
que a cavity uma causa directa de ambas a Tootache e a probe catching no dente.
Matematicamente:

P(Catch|Cavity Tootache) = P(Catch|Cavity)

P(Tootache|Cavity Catch) = P(Tootache|Cavity)

Estas equaes mostram a independncia condicional de Tootache e Catch, dado Cavity.

Com esta independncia podemos simplificar a expresso da actualizao:

P(Tootache|Cavity) P(Catch|Cavity)

P(Cavity|Tootache Catch) = P(Cavity) ------------------------------- -----------------------------

P(Tootache) P(Catch|Tootache)

H ainda o termo P(Catch|Tootache), que parece envolver todos os pares de sintomas, mas
defacto este termo vai for a. Veja que o produto dos denominadores P(Catch|Tootache)
P(Tootache), ou P(Tootache Catch). Podemos eliminar este termo por normalizao, desde
que tenhamos acesso a P(Tootache|-Cavity) e P(Catch|-Cavity).

Assim, apenas temos de calcular a incondicional para a causa e as condicionais de cada um


dos seus efeitos.
CAP. 15 SISTEMAS DE RACIOCNIO
PROBABILSTICO

O cap. anterior deu a sintaxe e semntica de teoria das probabilidades. Agora vamos ver o
mecanismo de inferncia para construir um sistema de raciocnio sobre a incerteza.

A principal vantagem do raciocnio probabilstico sobre o lgico que este permit ao agente
atingir decises racionais mesmo quando no h informao suficinete para provar que uma
dada aco resulta. Comearemos por ver como capturar conhecimento incerto de uma forma
natural e eficiente. Depois veremos como a inferncia probablistica, apesar de exponencial no
pior caso, pode ser feita eficientemente em muitas situaes prticas.

15.1. REPRESENTAO DO CONHECIMENTO NUM DOMNIO INCERTO

Vimos que a distribuio de probabilidade da juno intratvel. Vimos tambm, no contexto


de usar a regra de Bayes, que as relaes condicionalmente independentes podem simplificar
a computao de resultados de consultas e reduzir grandemente o n de probabilidades
condicionais que precisam ser especificadas. Usamos uma estrutura de dados chamada de
rede de crena (rede de Bayes) para representar a dependncia entre variveis e para dar
uma especificao concisa da distribuio de probabilidade da juno. um grfico que tem:

- um conjunto de variveis randmicas que forma os ns da rede

- um conjunto de links direccionados ou setas conectam pares de ns. O significado intuitivo


de uma seta do n X para o n Y que X tem influncia directa em Y.

- Cada n tem a tabela de probabilidade condicional que quantifica os efeitos dos pais no n.
Os pais de um n so todos os que tm setas apontando para ele.

- O garfo no tem ciclos direccionados (assim, um grafo direccionado e acclico, ou DAG)

habitual fcil para um expert do domnio decidir que relaes de dependncia condicional o
domnio tem mais fcil que especificar as prprias probabilidades. Uma vez a topologia da
rede especificada, precisamos apenas de especificar as probabilidades condicionais para os
ns que participam em dependncias directas, e usar essas para computar quaisquer outros
valores de probabilidades.

Ex. alarm... Dada a evidncia de quem telefonou ou quem no telefonou, podemos estimar a
probabilidade do roubo.

A topologia da rede pode ser pensada como uma KB abstracta, porque representa a estrutura
gearl dos processos causais no domnio, em vez de quaisquer detalhes das individualidades
da populao. fig. 15.1 uma rede tpica

As probabilidades realmente sumarizam um conjunto potencialmente infinito de possveis


circunstncias... Um pequeno agente pode lidar com um mundo muito largo, pelo menos
aproximadamente.
Uma vez espoecificada a topologia, precisamos de especificar a tabela de probabilidades
condicionais ou CPT para cada n. Cada linha na tabela contm a probabilidade de cada n
para um caso condicional, que apenas uma possvel combinao de valores para os ns
pais (um mini evento atmico). Ex:

P(Alarme|
Roubo,Terramoto)

Roubo Terramoto True Falso

True True 0,950 0,050

True False 0,950 0,050

False True 0,290 0,710

False False 0,001 0,999

15.2. A SEMNTICA DA REDE DE BAYES

H 2 modos de compreender a semntica da rede. O primeiro ver a rede como uma


representao da distribuio de probabilidade de juno. a segunda v-la como uma
codificao de uma coleco de frases de independncia condicional. As 2 so equivalenmtes
mas a 1 usa-se para construir redes e a segunda pata desenhar procedimentos de inferncia.

figura 15.2

Representao da Distribuio de Probabilidade da Juno

Uma rede fornece uma descrio completa do domnio. Cada entrada na JDP pode ser
calculada da informao da rede.

P(x1,...,xn) = P(xi|Parents(xi)) (15.1)

Assim, cada entrada na juno representada pelo produto dos elementos apropriados da
tabela de probabilidade condicional (CPTs) na rede de crena. Os CPTs assim fornecem uma
representao decomposta da juno. Para ilustrar isto vamos calcular a probabilidade do
evento em que o alarme toca mas nem ocorreu um roubo nem um terramoto e ambos john e
Mary telefonaram:

P(JMABE) = P(J|A)P(M|A)P(A|BE)P(E) = 0.90 x 0.70 x 0.001 x 0.999 x 0.998 =


0.00062

A seco 14.3 explicava que a distribuio da juno podia ser usada para responder a
qualquer consulta acerca do domnio. Se um rede de crena uma representao da juno,
ento tambm pode. Trivialmente, isso pode ser feito computando primeiro todas as entradas
da juno. Mas h mtodos melhores.

Um Mtodo par Construir Redes de Crena

a eq. 15.1. implica certas independncias condicionais que podem ser usadas para guiar a
engenharia de conhecimento na construo da topologia da rede. Primeiro, reescrevemos a
juno em termos de probabilidade condicional usando a definio de probabilidade
condicional:

P(x1,...,xn) = P(xn|xn-1,...x1)P(xn-1,...., x1)

Depois repetimos esteprocesso, reduzindo cada probabilidade conjuntiva a uma probabilidade


condicional e um conjuno mais pequena. Acabamos com o grande produto:

P(x1,...,xn) = P(xn|xn-1,...,x1)P(xn-1|xn-2,...,x1)...P(x2|x1) =

piatrio de i=1 a n de P(xi|xi-1,...,x1)

Comparando esta equao 15.1, vemos que a especificao da juno equivalente a


assero geraal que:

P(xi|xi-1,...,x1)=P(xi|Parents(x1))

desde que Parents(Xi){xi-1,...,x1}. Esta condio facilmente satisfeita etiquetando os ns


em qualquer ordem que seja consistente com a ordem parcial implcita na estruturad o grafo.

O que a equao precedente diz que a rede de crena uma representao correcta do
domnio apenas se cada n for condicionalmente independente dos seus predecessores na
ordenao dos ns, dados os seus pais. S temos pois que escolher os pais de cada n de
modo a que esta propriedade seja respeitada. Intuitivamente, os pais do n Xi devem conter
todos os ns em X1,...,Xi-1 que influenciam directamente o Xi. Por ex. os pais de MaryCalls s
devem ser o alarme, logo:

P(MaryCalls|JohnCalls, Alarm, Earthquake, Burglary) = P(MaryCalls|Alarm)

O procedimento para construir a rede :

1. Escoljher um conjunto relevante de variveis Xi que descrevem o domnio

2. Escolher uma ordem para as variveis

3. enquanto houver variveis:

a) apanhare uma varivel Xi e adicionar um n rede para ela.

b) colocar os parents(Xi) a um conjunto mnimo de ns j na rede de modo a que a


independncia condicional seja satisfeita.

c) definir a tabela de probabilidade condicional para Xi.


porque cada n conectado apenas a ns anteriores, este mtodo de construo garante que
a rede acclica.

Campacticidade e Ordenao dos ns

um ex. de uma propriedade geral de sistemas de estrutura local (tambm chamada de


sparse).

...

Representao de Tabelas de Probabilidade Condicional

Escrever a tabela pode ser complicado e fastidioso. Para melhorar a eficincia dessa tarefa,
usualmente as relaes caem numa de vrias categorias que tm distribuies cannicas
padro, pelo que podemos especificar o nome do padro e dar uns poucos parmetros.

O ex. mais simples so os ns determinsticos, que tem o seu valor especificado pelos valores
dos seus pais, sem incerteza (ex. a relao entre Mexicano, Norte Americano, Canadiano e o
filho Norte-Americano, que o filho a disjuno dos pais; ou o preo mnimo).

Relaes incertas podem ser habitualmente caracterizadas pela chamada relao noisy. O
ex. standard o chamado noisy-Or, que uma generalizao do Or lgico. Na lgica
proposicional podemos dizer que Fever true sse Cold, Flu or Malaria. O noisy-Or adiciona
alguma incerteza a esta aproximao lgica estrita. O modelo faz 3 assunes: 1 assume
que cada causa tem uma probabilidade independente de causar o efeito. 2 assume que
todas as possveis causas esto listadas. 3 assume que o que impedir, por ex. Cold de
causar Fever idependente do que inibe Flu de causar Fever. Estes inibidores no so
representados como ns mas como parmetros noise. SE P(Fever|Cold) = 0.4, P(Fever|Flu) =
0,8 e P(Fever|Malaria) = 0,9, ento os parmetros noise so 0,6 0,2 e 0,1, respectivamente.
Se nenhum n pai for verdade, ento a sada 100% false com certeza Para o nosso ex.
temos:

Cold Flu Malaria P(Fever) P(Fever)

F F F 0.0 1.0

F F T 0.9 0.1

F T F 0.8 0.2

F T T 0.98 0.02=0.2*0.1

T F F 0.4 0.6

T F T 0.94 0.06=0.6*0.1

T T F 0.88 0.12=0.6*0.2

T T T 0.988 0.012=0.6*0.2*0
.1

15.3. INFERNCIA NAS REDES DE CRENA

A tarefa bsica de um sistema de inferncia probabilstica calcular a distribuio de


probabilidade posterior para um conjunto de variveis de consulta, dados valores exactos para
algumas variveis de evidncia. Isto , o sistema calcula P(Query|Evidence). No exemplo do
alarme, o roubo uma varivel de consulta bvia, e JohnCalls e M<aryCalls podem servoir de
variveis de evidncia. Mas as redes so flexveis suficientemente para que cada n possa ser
de evidncia ou de consulta.

Em geral, um agente apanha valores para as variveis de evidncia a partir das sua
percepes (ou de outro raciocnio), e pergunta acerca de possveis valores de outras
variveis de modo a poder decidir que aco tomar.

A Natureza das Inferncias Probabilsticas

Qeu tipos de coisas os algoritmos podem atingir.

Considerando P(Roubo|JohnCalls). A dificuldade no a complexidade do problema, mas


manter o raciocnio correcto. Uma incorrecta, mas comum, linha de raciocnio comea por
observar que quando o alarme no toca, JohnCalls ser verdade 90% das vezes. O probelam
com este raciocnio que esta linha de pensamento ignora a probabilidade priori de
JohnCalls que de 0.05, logo d 0,02 e no 0,9. P(Roubo|JohnCalls|MaryCalls) de 0,29.

As redes podem fazer 4 tipos de inferncia:

- de Diagnstico (de efeitos para causas) P(Roubo|JohnCalls)=0,016

- Causais (de causas para efeitos) P(JohnCalls|Roubo) = 0,86

- Intercausais (entre causas de um mesmo efeito) P(Roubo|Alarme)=0,376, mas se tivermos


evidncias de um terramoto P(Roubo|Alarme Terramoto)=0,003. mesmo sabendo que
terramotos e roubos so independentes, a ocorrncia de um faz o outro menos provvel. este
padro de raciocnio chamado de explicao por fora.

- Mistas (combinao de 2 ou mais anteriores) P(Alarme|JohnCalls Terramoto)=0,003 de


diagnstico e causal.

as redes de crena tambm podem ser usadas para:

- tomar decises baseadas em probabilidades e utilidade para o agente

- Decidir que evidncias adicionais devem ser observadas em ordem a ganhar informao til
- executar anlise sensitiva apar compreender que aspectos do modelo tem maior impacto nas
probabilidades da consulta

- explicar resultados de inferncia probabilstica ao utilizador.

Um Algoritmo para Responder a Consultas

muito tcnico/matemtico. Mas o algoritmo simples. a nosaa verso trabalha como o


algoritmo de encadeamento backward (cap.9), em que comea na varivel de consulta e
encadeia ao longo dos caminhos desse n at chegar a ns evidncia. Vamos ver s o caso
em que as redes so conectadas simplesmente (polytrees), i.e, h no mximo um caminho
indirecto entre quaisquer 2 ns da rede.Resumidamente devemos fazer:

- Expressar P(X|E) em ermos de contribuies de Ex+ e Ex-

- Computar a contribuio de Ex+, computando o seu efeito nos pais de X, e depois passar
esse efeito para X. Repare que computar o efeito em cada pai de X uma instncia recursiva
do probelam de computar o efeito em X.

- Computar a contribuio de Ex-, computando o seu efeito nos filhos de X, e depois passar
esse efeito para X. Repare que computar o efeito em cada filho de X uma instncia recursiva
do probelam de computar o efeito em X.

CAP. 16 TOMANDO DECISES


SIMPLES

A teoria da utilidade combinada com a das probabilidades levam a um agente de deciso-


teortico, que pode tomar decises em contextos onde a incerteza e goals conflituosos deixam
o agente sem maneira de decidir.

A seco 16.1 introduz o princpio bsico da teoria de deciso: a maximizao da utilidade


esperada. A seco 16.2 mostra que o comportamento de qualquer agente racional pode ser
capatado supondo uma funo de utilidade que est a ser maximizada. A 16.3 discute a
natureza das funes de utilidade em mais pormenor. em 16.5 introduzimos um formalismo
chamado de redes de deciso (tambm conhecidos por diagramas de influncia), que
extendem as redes de crena incorporando aces e utilidades.

16.1. COMBINANDO CRENAS E DESEJOS SOB A INCERTEZA

As preferncias de um agente entre estados so capatadas por uma funo de utilidade, que
associa um nmero para expressar a desejabilidade do estado. Utilidades so combinadas
com probabilidades de sada para aces, para dar a utilidade expectvel para cada aco.
U(S) denota a utilidade do estado S. Estados so snapshot completos do mundo, similares s
situaes do cap.8. Os estados pode ser decompostos sob certas circunstncias para
propsitos de associao de utilidade.

Antes da execuo de A, o agente associa probabilidades P(Resulti(A)|Do(A),E) a cada sada.


Depois pode calcular a utilidade expectvel da aco dada a evidncia, eU(A|E), usando a
frmula: EU(A|E) = somatrio em i de P(Resulti(A|E,Do(A) U(Resulti(A)),

o princpio da utilidade mxima expectvel (MEU) diz que um agente racional deve escolher
uma aco que maximiza a utilidade expectvel pelo agente.

Mas isto no a soluo da AI toda pois as computaes envolveidas podem ser proibitivas, e
por vezes at difcil formular o problema completamente. Tambm h dificuldade em saber a
utilidade de cada estado. Assim, a teoria da deciso no a panaceia mas fornece uma
framework.

Se um agente maximiza a funo de utilidade que correctamente reflecte a medida de


desempenho pela qual julgado, ento ele atinge o desempenho mais elevado possvel, se a
tomarmos a mdia sobre os possveis ambientes em que pode operar. a central justificao
do MEU.

16.2 A BASE DA TEORIA DA UTILIDADE

Restries nas Preferncias Racionais

Escrever as restries uma maneira de definir a semntica das preferncias.

Na linguagem da teoria da utilidade, os cenrios complexos so chamados de lotarias. A


lotaria L, na qual h 2 possveis sadas, estado A com probabilidade p e estado B com
probabilidade 1-p, escrita: L = [p,A; 1-p,B]

Cada sada pode ser um estado atmico ou outra lotaria. Uma lotaria com apenas uma sada
pode ser escrita A ou [1,A]. funo do tomador de decises escolher entre lotarias. A
seguinte notao usada:

A > B a preferido a B

A ~ B o agente indiferente a A e B

A >~ B o agente prefere A a B ou indiferente

As seguintes 6 restries so conhecidas como os axiomas da teoria da utilidade

- Ordenabilidade o agente deve saber o que prefere

(A > B) V (B > A) V (A ~ B)

- Transitividade
(A > B) (B > C) => (A > C)

- Continuidade

A > B > C => p [p,A; 1-p,C] ~B

- Substitubilidade

A ~ B = [p,A; 1-p,C] ~ [p,B; 1-p,C]

- Monoticidade

A > B = (p q [p,A; 1-p,B] >~ [q,A; 1-p,B]

- Decomponibilidade

[p,A; 1-p,[q,B; 1-q,C]] ~ [p,A; (1-p)q,B; (1-p)(1-q),C]

... e Depois H a Utilidade

A preferncia assumida como sendo a propriedade principal dos agentes racionais. A


existncia de uma funo de utilidade segue-se dos axiomas da utilidade:

1. Princpio da Utilidade

Se as preferncias de um agente obedecem aos axiomas da utilidade, ento existe uma


funo de vaor real U que opera nos estados tal como U(A) > U(B) sse A prefervel a B, e
U(A)=U(B) se o agente indiferente entre A e B.

U(A) > U(B) A > B

U(A)=U(B) A ~ B

2. Princpio da Maximizao da Utilidade Esperada

A utilidade de uma lotaria a soma das probabilidades de cada sada vezes a utilidade dessa
sada. U([p1,S1;...;pn,Sn]) = somatrio em i de pi U(Si)

Embora a aco mais racional no seja sempre maximizar a funo de utilidade, observando
as preferncias do agente, contudo, possvel construir a funo de utilidade que representa
o que as aces do agente esto a tentar atingir.

16.3 FUNES DE UTILIDADE

Utilidade uma funo que mapeia estados a nmeros reais. Para alm das restries
listadas antes, um agente pode ter as preferncias que quiser. As preferncias tambm podem
interagir. Felizmente, as preferncias de agentes reais so habitualmente mais sistemticas.

A Utilidade Do Dinheiro
a economia fornece um candidadto bvio para a medida de utilidade: dinheiro.

Se restringirmos a nossa ateno a aces que afectam apenas a quantidade de dinheiro que
o agente tem, dizemos que o agente exibe uma preferncia monotnica por dinheiro. Isto no
suficiente para garantir que o dinheiro se torna numa funo de utilidade. tecnicamente
falando o dinheiro torna-se uma funo valor ou medida de utilidade ordinal, considerando que
apenas prefere mais a menos em quantias finais-certas. Para percebermos as decises
monetrias tomadas sob incerteza, temos tambm de analisar as preferncias do agente entre
lotarias envolvendo dinheiro. ex. ganhei 1000 -> 3000 ou nada. O valor monetrio esperado
(EMV) do jogo * 0 + * 3000 = 1500, o que mais que 1000. Mas isso no significa que
aceitar jogar seja a melhor deciso. Suponhamos que temos k:

EU(Accept) = U(Sk) + 1/2U(Sk+3000)

EU(Decline) = U(Sk+1000)

Para determinar o que fazer, precisamos de associar utilidade s sadas. a utilidade no


directamente propocional ao valor monetrio porque a utilidade a mudana positiva no estilo
de vida para o primeiro milho muito elevada, enquanto a utilidade dos milhes seguintes
muito menor. Suponhamos que associamos 5 a sk e 10 a sk+3000 e 8 a Sk+1000. Ento a
aco racional seria declinar, porque a utilidade esperada de aceitar s 7.5 (menos que 8).
Por outro lado, se tiver muitos milhes no banco j d outro resultado.

...EMV(St.P.) = P(Carasi)MV(Carasi) = 1/2i * 2i = 2/2 + 4/4 + 8/8 +.. =

Bernoulli resolveu o paradoxo dizendo que a utilidade do dinheiro medida numa escala
logartmica (pelo menso para quantidades positivas).

U(Sk+n) = log2 n

Com esta funo de utilidade, a utilidade esperada do jogo 2, o que quer dizer que o agente
racional com essa escala de utilidade s pagaria at 4 para jogar o jogo, pois U(Sk+4) = log2
4= 2.

Em 1960 Beard disse: U(Sk+n) = -263.31 + 22.09 log(n+150,000) para uma gama entre n=-
150000 e 800000.

Se restringirmos a nosaa ateno s partes positivas das curvas, onde a inclinao diminui,
ento para qualquer lotaria L, a utilidade de ser presenteado com essa lotaria menor que a
utilidade de ser manejado o valor esperado monetrio da lotaria, como uma coisa segura:
U(SL)<U(SEMV(L))

Isto , o agente com curvas deste tipo averso ao risco: prefere uma coisa segura com um
pagamento menor que um valor esperado de um jogo. Por outro lado, na regio desesperada
negativa, o comportamento de procura do risco.

O equivalente certo de 0 ou 1000 400. A diferena entre o valor monetrio esperado por uma
lotaria e o seu equivalente certo chamdo de prmio de seguro. A averso ao risco a base
da indstria dos seguros.
Um agente que tem uma curva linear diz-se de risco neutro, o que acontece para jogos com
pequenas quantias.

Escalas de Utilidade e Valorizao da Utilidade

Os axiomas da utilidade no especificam uma nica funo para um agente, dado o seu
comprtamento preferencial. simples de ver que um agente usando a funo U(S) = k1 + k2
U(S), em que k1 uma constante e k2 uma qualquer constante positiva, se comportar de
forma idntica a um agente com U(S), se tiver as mesmas crenas. A escala de utilidade
algo arbitrria. Um procedimento comum para valorizar as utilidades estabelecer uma escala
com um melhor possvel prmio em U(S)=ut e uma pior catstrofe possvel com U(S)=ul.
Utilidades normalizadas usam uma escala com ul=0 e ut=1. Utilidades de estados intermdias
so valorizadas perguntando ao agente para indicar a preferncia entre a sada dada em S e
uma lotaria standard [p,ut; (1-p)ul). A probabilidade p ajustada at que o agente seja
indiferente entre S e a lotaria standard. Assumindo utilidades normalizadas, a utilidade de S
dada por p.

Em medicina, transportes, e problemas de deciso ambientais, entre outros, vidas so postas


em jogo. Nesses casos, ul o valor associado a morte imediata. Paradoxalmente, a recusa
em colocar uma importncia monetria como valor da vida, significa que a vida
subvalorizada. Dois valores correntes so usados na medicina e anlise de segurana:
micromort (um num milho de possibilidade de morte) e a QALY, ou um ano sem
enfermidades, que se usam em riscos incrementais, no necessariamente em grandes rsicos.

16.4 FUNES DE UTILIDADE COM MULTIATRIBUTOS

Problemas como este (ex. decidir se uma substncia cancergena pode circular no ambiente,
construir um aeroporto), em que as sadas so caracetrizadas por 2 ou mais atributos, so
lidadas pela teoria da utilidade com multiatributos, ou MAUT.

Dominncia

Suponha que o local para o aeroporto S1 custa menos, gera menos barulho e mais seguro
que o local S2. Ningum hesitar em rejeitar S2. Dizemos que h uma dominncia estrita de
S1 sobre S2. Em geral, se uma opo de menor valor em todos os atributos que uma outra
opo, no precisa de ser mais considerada da para a frente.

Felizmente, h uma mais til generalizao chamada de dominncia estocstica, que ocorre
frequentemente em problemas reais. mais fcil de compreender no contexto de um atributo
simples. Suponha que se acredita que o custo de construir o aeroporto em S1 seja
normalmente distribudo volta de 3,8 bilies de dlares, com desvio padro de 0,4 bilies; e
o custo de ser em S2 normalmente distribudo com mdia de 4 bilies, com desvio padro
de 0,35. A figura 16.3(a) mostra estas distribuies, como o custo plotado como um valor
negativo. Ento, dada essa nica informao, que a utilidade decresce com o custo, podemos
dizer que S1 domina estoxcasticamente S2 isto , S2 pode ser descartada. importante
notar que isso no se segue de comparar os custos esperados. Por ex., se soubssemos que
o custo de S1 seria exactamente 3,7 bilies, ento seramos incapazes de tomar uma deciso
sem informao adicional da utilidade do dinheiro.

...

16.6 O VALOR DA INFORMAO

Na anlise precedente, assumimos que toda a informao relevante, ou pelo menos toda a
informao disponvel, dada ao agente antes de ele tomar a deciso. Na prtica, isso
raramente acontece. Uma das partes mais importantes da tomada de deciso saber que
questes colocar.

Ex. um mdico no pode fazer todos os testes e questes. A sua importncia depende de 2
factores: Se as diferentes possveis respostas/sadas faro uma diferena significativa para o
curso ptimo da aco, e a semelhana das vrias sadas.

Esta seco descreve a teoria do valor da informao, que permite ao agente escolher que
informao adquirir. Ela adquirida por aces de sensoriamento; temos de avaliara as
aces de sensoriamento pelo seu efeito nas aces subsequentes do agente.

Um Exemplo Simples

- Com probabilidade 1/n, a sondagem mostra que o bloco 3 contm petrleo. Neste caso a
companhia comprar o bloco 3 por C/n dlares, e far um lucro de C-C/n=(n-1)C/n dlares.

- Com probabilidade (n-1)/n, a sondagem mostra que o bloco 3 no tem petrleo, e a


companhia ter de comprar outro bloco. Agora a probabilidade de encontrar petrleo num dos
outros blocos ser de 1/(n-1), e assim a companhia far um lucro esperado de C/(n-1) C/n =
C/n (n-1) dlares.

Agora podemos calcular o lucro esperado, dada a informao da sondagem:

1/n * (n-1)C/n + (n-1)/n * C/N(n-1) = C/n

assim, a companhia dever estar disposta a pagar ao sismlogo at C/n pela informao: a
informao vale tanto como o prprio bloco.

Uma Frmula Geral

simples derivar uma forma geral matemtica para o valor da informao. Habitualmente,
assumimos que a evidncia exacta obtida acerca de alguma varivel randmica Ej, e ento
a frase valor da informao perfeita (VPI) usado. Seja o conhecimento do agente, E. Ento o
valor da melhor aco corrente ser:

EU(|E) = max A somatrio em i de U(Result.(A)) P(Resulti(A)|E, Do(A))

e o valor da nova melhor aco (depois da nova evidncia Ej ser obtida):

EU(Ej|E,Ej) = max A somatrio em i de U(Result.(A)) P(Resulti(A)|E, Do(A),Ej)


mas o Ej uma varivel randmica cujo valor corrente desconhecido, ento temos de
calcular a mdia sobre todos os avlores possveis ejk que podemos ter para Ej, usando as
nossas crenas correntes acerca do seu valor. O valor de descobrir Ej ento definido por:

VPIE(Ej) = ( som. em k P(Ej=ejk|E)EU(ejk|E,Ej=ejk)) EU(|E)

Em ordem a termos alguma intuio para esta frmula, considere o caso simples onde h s 2
aces A1 eA2 por onde escolher. As suas utilidade esperadas correntes so U1 e U2. A
informao Ej conduzir a uma nova expectativa de U1 e U2 para as aces, mas antes de
obter Ej, temos alguma distribuio de probabilidade sobre os possveis valores de U1 e U2
(que asumimos independentes). Por exemplo A1 e A2 so 2 diferentes estradas no Inverno. Ej
a informao do satlite. No vale a pena pagar pela informao do satlite. Mas se for por 2
estradas parecidas e carregarnmos uma pessoa ferida, j vale apena pagar pela informao
do satlite.

Em suma, podemos dizer que a informao tem mais valor quando pode causar uma mudana
de plano e que este seja bem melhor.

Propriedades do Valor da Informao

- no negativo j,E VPIE(Ej) 0

- no aditivo VPIE(Ej,Ek) VPIE(Ej) + VPIE(Ek)

- independente da ordem VPIE(Ej,Ek) = VPIE(Ej) + VPIE,Ej(Ek) = VPIE(Ek) + VPIE,Ek(Ej)

CAP.5 ED.2 PROBLEMAS DE SATISFAO DE


CONSTRIES

4 CSP e Procura Adversa


Ler captulo 5 e 6, com 42 pginas. Estima-se o tempo de leitura em 4h, e aconselha-se a realizao
de dois periodos de leitura.
Tpicos a saber: CSPs; heurstica do valor menos restrictivo; "forward checking"; "backtracking" /
"backjumping"; "Min-conflits"; jogos; minimax: algoritmo; cortes alfa-beta; acaso nos jogos;
estados acreditados
Trabalho: Simule os diversos algoritmos de procura adversa, com o auxlio do gerador de rvore de
Estados. Faa bastantes exerccios, e com rvores grandes, de forma a dominar completamente os
algoritmos.

Veremos como tratar estados como sendo mais que pequenas caixas negras conduz
inveno de uma gama de novos e poderosos mtodos de procura e a uma compreenso
mais profunda da estrutura do problema e da sua complexidade.

Nos CSP, os estados e o teste de goal conformam-se com um standard, estruturado, e de


representao muito simples (Seco 5.1.).

Os algoritmos de procura podem tirar vantagem da estrutura de estados e usar propsito-geral


em vez de heursticas de problemas-especficos para atingir a soluo de uma vasta gama de
problemas (seco 5.2. e 5.3.).

Talvez mais importante: a representao standard do teste de goal revela a estrutura do


problema ela prpria (seco 5.4.). Isto conduz a mtodos de decomposio do problema e a
uma compreenso da conexo ntima entre a estrutura do problema e a dificuldad de resolv-
lo.

5.1. CSP Problemas

Formalmente definido por um conjunto de variveis, X1, X2,...,Xn, e um conjunto de


restries, C1,C2,...,Cm. Cada varivel Xi tem um domnio no vazio Di de valores possveis.
Cada restrio Ci envolve algum subconjunto de variveis e especifica as possveis
combinaes de valores para esse subconjunto. Um estado do problema definido por uma
associao de valores a algumas ou todas as variveis, {Xi=vi, Xj=vj,...}. Uma associao que
no viola nenhuma restrio chamada de consistente ou legal. Uma associao completa
uma na qual cada varivel mencionada, e uma soluo do CSP uma associao completa
que satisfaz as restries todas. Alguns CSPs tambm requerem uma soluo que maximize
uma funo objectivo.
Ex. Colorir cada regio de um mapa de vermelho, verde ou azul sem que haja 2 regies
vizinhas da mesma cor. Para formular este CSP, definimos as variveis como sendo as
regies: WA, NT, Q, NSW, V, SA e T. O domnio de cada varivel o conjunto {vermelho,
verde, azul}. As restries requerem que regies vizinhas tenham cores distintas; por exemplo,
as combinaes permitidas para WA e NT so os pares:

[(vermelho,verde), (vermelho,azul), (verde,vermelho), (verde, azul), (azul, vermelho), (azul,


verde)}

(A restrio tambm pode ser representada mais sucintamente como a inigualdade WA!=NT,
desde que o algoritmo tenha maneira de avaliar expresses desse tipo).

H muitas solues para o problema.

til visualizar o CSP como um grfico de restries (Fig. 5.1.b). Os ns do grafo


correspondem a variveis do problema e os arcos correspondem a restries.

A estrutura do grafo pode ser usada para simplificar o processo de soluo, em alguns casos
dando uma reduo exponencial de complexidade.

Um CSP pode ser dado uma formulao incremental como um problema de procura standard:

- Estado inicial: A associao vazia {}, na qual todas as variveis no esto associadas.

- Uma funo sucessor: Um valor pode ser associado a qualquer varivel, desde que no
conflitue com as variveis previamente associadas.

- Teste de goal: A associao corrente completa

- Custo de caminho: Um custo constante (eg.1) por cada passo.


A rvore de procura estende-se apenas na profundidade n. Por esta razo, os algoritmos
depth-first so populares para os CSPs.

O caminho por que a soluo atingida irrelevante.

Por outro lado, podemos usar tambm uma formulao estado-completo, na qual todos os
estados so uma associao completa que pode ou no satisfazer as restries. Os mtodos
de procura local trabalham bem com esta formulao.

O caso mais simples de CSP envolve variveis que so discretas e tm domnios finitos. O
problema da 8 rainhas (cap.3) pode tambm ser visto como um CSP de domnio finito, onde as
variveis Q1,...,Q8 so as posies de cada rainha nas colunas 1, ..., 8 e cada varivel tem o
domnio {1,2,3,4,5,6,7,8}.

O n mximo de associaes completas O(dn) isto , exponencial no n de variveis.

Os CSPs de domnio finito incluem os CSPs Booleanos.

Na maioria das aplicaes prticas, contudo, algoritmos de propsito-geral CSP podem


resolver problemas ordens de magnitude maiores do que aqueles resolvveis via algoritmos de
procura de propsito-geral que vimos no cap.3.

As variveis discretas tambm podem ter domnios infinitos. Uma linguagem de restries tem
de ser usada. Por ex. StartJob1 + 5 StartJob3. Tambm no possvel resolver estes
problemas de CSP enumerando todas as possveis associaes.

H algoritmos especiais para restries lineares e no-lineares.

A categoria mais conhecida de domnio contnuo de CSPs so os problemas de progranmao


linear, onde as restries tm de ser desigualdades lineares formando uma regio convexa.
Podem ser resolvidos num tempo polinomial no n de variveis.

O tipo mais simples a restrio unria. Uma restrio binria relaciona 2 variveis. Por ex.
SA!=NSW uma restrio binria. Um CSP binrio um que tem apenas restries binrias;
pode ser representada num grafo de restries.

Restries de ordem maior envolvem 3 ou mais variveis. Um exemplo familiar so os puzzles


cryptharitmetic. Ex. restrio das 6 variveis Alldif(F,T,U,W,R,O). Alternativamente, pode ser
representado por uma coleco de restries binrias tais como F!=T. A adio das restries
nas 4 colunas do puzzle tambm envolve vrias variveis e pode ser escrita como:

O + O = R + 10 * X1

X1 + W + W = U + 10 * X2

X2 + T + T = O + 10 * X3

X3 = F
Onde X1, X2 e X3 so variveis auxiliares representado o dgito (0 ou 1) de transporte para a
prxima coluna. Restries de ordem elevada podem ser representadas num hipergrafo de
restries.

As restries descritas at aqui so absolutas. Muitos CSPs incluem preferncias indicando


que solues so preferidas. Usualmente podem ser codificadas como custos nas
associaes individuais de variveis.

5.2. PROCURA BACKTRACKING PARA CSPs

Qualquer algoritmo de procura que vimos nos cap. 3 e 4 podem resolver os CSPs. Mas
suponhamos que aplicvamos o breadth-first. algo de terrvel acontece: Geramos uma rvore
com n! * dn folhas, mesmo pensando que h apenas dn associaes possveis.

A nossa formulao possvel mas naive ignora uma propriedade crucial comum a todos os
CSPs: a comutatividade se a ordem de aplicao de uma qualquer conjunto da aces no
tem influncia na sada. Alm disso, todos os algoritmos de procura CSP geram sucessores
considerando as possveis associaes apenas para uma nica varivel em cada n na rvore
de procura. Por ex. na pintura do mapa de Austrlia nunca vamos escolher azul ou vermelho
para o SA. Assim, com estas restries, o n de folhas dn co o espervamos.

O termo procura backtracking usado para uma procura depth-first que escolhe valores para
uma varivel num dado instante e rasteia quando uma varivel no valores legais para
associar.

o algoritmo est na pg. 142.

Parte da rvore de procura gerada por backtracking simples para a colorao do mapa.

raiz WA-red, WA-green, WA-blue

WA-red WA-red e NT-green; WA-red e NT-blue

WA-red e NT-green WA-red e NT-green e Q-red; WA-red e NT-green e Q-blue.

O backtracking puro cego, por isso no devemos esperar que seja muito eficiente em
problemas grandes.

No captulo das procuras cegas, usmos o conhecimento especfico do domnio para reduzir a
dimenso da procura, aqui vamos usar mtodos gerais para responder s questes:

1. Que varivel deve ser associada a seguir, e em que ordem devem os valores ser tentados?

2. Quais so as implicaes das associaes correntes para as outras ainda no associadas?

3. Quando um caminho falha (varivel no tem valores legais possveis) pode a procura evitar
repetir esta falha nos caminhos subsequentes?

Ordem das Variveis e dos Valores


O algoritmo backtracking tem a linha:

var SELECT-UNSAIGNED-VARIABLE(VARIABLES[csp], assignment, csp)

Por defeito associa simplesmente a prxima dada na lista VARIABLES[csp]. A ideia intutiva
escolher a varivel com o menor n de valores legais chamada a MRV (Minimum
Remaining Values) heurstica. Tambm pode ser chamada de varivel mais restrita ou falha-
primeiro. Assim, a rvore aprumada. Se h uma varivel X com 0 valores legais, o MRV
escolhe X e a falha detectada imediatamente, evitando procuras inteis. O MRV+BT melhora
o BT em 3 a 3000 vezes.

Mas o MRV no ajuda em escolher a primeira. Neste caso a heurstica grau til. ela tenta
reduzir o factor de ramificao nas escolhas futuras, seleccionando a varivel que est
envolvida no maior n de restries nas outras variveis inassociadas. No nosso caso SA.
til como tie-braker da MRV.

Uma vez que uma varivel foi escolhida, o algoritmo tem de decidir em que ordem vai
examinar os valores. Para isto a heurstica valor-menos-restrito pode ser eficiente. Ela prefere
o valor que que regula as menos escolhas para as variveis vizinhas no grfico de restries.
Por ex. suponhamos que j tinhamos WA=red e NT=green e a seguinte era Q. O blue m
escolha porque elimina o ltimo valor legal para o vizinho de Q, SA. Ela tenta pois deixar a
maior flexibilidade para as associaes seguintes.

Propagar a Informao das Restries

At agora os algoritmos de procura consideram as restries de uma varivel apenas quando


essa varivel escolhida pelo SELECT-UNASSIGNED-VARIABLE. Mas olhando para algumas
restries mais cedo na procura, podemos reduzir drasticamente o espao de procura.

FORWARD CHECKING

Quando uma varivel X associada, o FC olha para cada uma das no associadas ainda Y
que est ligada a X por uma restrio e apaga do domnio de Y qualquer valor que seja
inconsistente com o valor escolhido para X.

A heurstica MRV continua a usar-se aqui.

Vejamos a evoluo:

WA NT Q NSW V SA T

Domnio RGB RGB RGB RGB RGB RGB RGB


s Inicias

Depois R GB RGB RGB RGB GB RGB


de
WA=red

Depois R B G RB RGB B RGB


de
Q=green

Depois R B G R B RGB
de
V=blue

CAP. 18 (1 edio) APRENDENDO DAS OBSERVAES

9 Mtodos de Aprendizagem
Ler captulos 18, 19, 20 e 21, com um total de 116 pginas. Estima-se o tempo de leitura desta lio
em 12h. Aconselha-se a realizar esta lio em dois dias, com periodos de leitura no superiores a 2h
cada. Para um aluno com o tempo muito limitado, esta lio pode ser dispensada, arriscando-se no
entanto a no ter bases para fazer entre 2 a 4 valores no exame.
Tpicos a saber: rvore de deciso; mtodo dos k-vizinhos; redes neuronais
Trabalho: Faa numa folha de calculo um perceptro com algoritmo de aprendizagem.
...

18.3. APRENDIZAGEM POR RVORES DE DECISO

um mtodo indutivo dos mais simples e, ainda assim, das forma com mais sucesso de
algoritmos de aprendizagem.

RVORES DE DECISO COMO ELEMENTOS PERFOMANTES

Uma rvore de deciso toma como entrada um objecto ou situao descrita por um conjunto
de propriedades e d como sada uma deciso sim/no. Representam assim funes
booleanas.

Cada n interno corresponde a um teste do valor de um das propriedades, e o salto de um n


etiquetado com os valores possveis do teste. cada folha especifica o valor booleano
retornado se essas folha for atingida.

Ex. esperar por uma mesa no restaurante. O objectivo aprender uma definio para o
predicado goal WillWait, onde a definio expressa como uma rvore de deciso.

Primeiro temos de decidir que propriedades ou atributos esto disponveis para descrever
expls. no domnio. Suponhamos que decidimos pela lista:

Alternate se h restaurante alternativo por perto

Bar se o restaurante tem bar confortvel para esperar

Fri/Sat se sexta ou sbado


Hungry se temos fome

Patrons quantas pessoas h no restaurante (None, Some, Full)

Price gama de preos ($, $$, $$$)

Raining se est a chover

Reservation Se fizemos uma reserva

Type o tipo do restaurante (French, Italian, Thai, or Burguer)

WaitEstimate Estimativa da espera (0-10 minutos; 10-30, 30-60, >60)

Logicamente, a rvore pode ser expressa como uma conjuno de implicaes individuais
correspondentes aos caminhos atravs da rvore terminando nos nsYes. por ex. o caminho
para um restaurante cheio de pessoas, com estimativa de espera de 10-30 minutos quando o
agente no est com fome, expressa pela frase lgica:

r Patrons(r,Full) WaitEstimate(r,0-10) Hungry(r,N) => WillWait(r)

EXPRESSIVIDADE DAS RVORES DE DECISO

A linguagem das rvores de deciso essencialmente proposicional, com cada atributo de


teste sendo uma proposio. No as podemos usar para representar testes que se referem a
2 ou mais objectos diferentes. Isto significa, dito de outra forma, intratvel adicionar todos os
atributos.

So completamente expressivas dentro da classe das linguagens proposicionais, isto ,


qualquer funo Booleana pode ser escrita como uma rvore de deciso. isto pode ser feito
trivialmente tendo em cada linha da tabela da verdade a funo correspondente a um
caminho. pode no ser bom pois a tabela cresce exponencialmente com os atributos. Mas
pode ser problema, por exemplo para os problemas da funo paridade e maioria.

No h formas de representao melhores para todas as funes. h 22 levantado a n funes


diferentes, com n atributos. Vemos pois que o espao grande -> h que escolher algoritmos
engenhosos para encontrar hipteses consistentes.

INDUZIR RVORES DE DECISO A PARTIR DE EXEMPLOS

Um exemplo descrito pelos valores dos atributos e o valor do predicado goal, a que
chamamos a classificao do ex. Se for true um exemplo positivo, caso contrrio negativo.
Um conjunto de ex. para o problema do restaurante dado na tabela seguinte. O conjunto
chamado de conjunto de treino.
Exempl Goal
o
WillW
ait

Alt Bar Fri Hu Pat Pric Rai Re Type Est


n e n s

X1 Ye No No Yes So $$$ No Yes Frenc 0- Yes


10
s me h

X2 Ye No No Yes Full $ No No Thai 30- No


60
s

X3 No Yes No No So $ No No Burgu 0- Yes


10
me er

X4 Ye No Yes Yes Full $ No No Thai 10- Yes


30
s

X5 Ye No Yes No Full $$$ No Yes Frenc > 60 No


s h

X6 No Yes No Yes So $$ Yes Yes Italian 0- Yes


10
me

X7 No Yes No No Non $ Yes No Burgu 0- No


10
e er

X8 No No No Yes So $$ Yes Yes Thai 0- Yes


10
me

X9 No Yes Yes No Full $ Yes No Burgu > 60 No


er

X10 Ye Yes Yes Yes Full $$$ No Yes Italian 10- No


30
s

X11 No No No No Non $ No No Thai 0- No


10
e
X12 Ye Yes Yes Yes Full $ No No Burgu 30- Yes
60
s er

O problema de encontrar a rvore de deciso que concorde com o conjunto de treino pode
parecer difcil mas de facto h uma soluo trivial. Podemos simplesment construir a rvore
que tem um caminho para uma folha para cada exemplo. Quando for dado o mesmo exemplo
outra vez a rvore classificar correctamente. Infelizmente no teremos assim informao
qualquer sobre os outros casos. O problema com esta rvore trivial que apensa memoriza as
observaes. No extrai qualquer padro, de modo a que possamos extrapolar para ex. nunca
vistos.

Extrair padro significa ser capaz de descrever um grande n de casos duma forma concisa,
pelo que devemos tentar encontrar uma rvore concisa. este um ex. do princpio geral de
aprndizagem indutiva, frequentemente chamado de Ockhams Razor: A hiptese mais
provvel a mais simples que consistente com todas as observaes.

Infelizmente encontrar a rvore de deciso mais simples um problema intratvel, mas com
heurstica simples podemos fazer um bom trabalho em enontrar uma pequena.

A ideia bsica por trs da Aprendizagem-por-rvore-de-deciso testar o atributo mais


importante primeiro. Assim, os caminhos sero pequenos e a rvore em si tambm.

So-nos dados 12 exemplos que classificamos em conjuntos positivos e negativos. Depois


decidimos que atributo usar como 1 teste na rvore. A figura mostra que Patrons um
importante, porque se o valor None ou Some, somos deixados com conjuntos de exemplos
para os quais a resposta definitiva (No e Yes respectivamente). Se for Full preciso testes
adicionais. Vemos que Type um atributo pobre porque nos leva a 4 possveis sadas, cada
qual com o mesmo n de positivas e negativas. Escolhemos o mais importante como raiz.

Depois dop primeiro teste ter partido os exemplos, cada sada uma nova rvore de deciso
com menos exemplos e menos atributos. H 4 casos para considerar nestes problemas
recursivos:

1. Se h ex. positivos e negativos, ento escolher o atributo mais imposrtante para os partir. A
figura mostar que Hungry, no nosso ex.

2. Se os exemplos restantes forem todos positivos (ou negativos), ento est acabado:
podemos responder Yes ou No. A fig. mostra casos destes nos casos None e Some.

3. Se no restaram exemplos, significa que esse ex. no foi observado ainda, e retornamos a
um valor por defeito calculado pela classificao maioritria no n pai.

4. Se no restam atributos, mas sim ex. negativos e positivos, temos um problema. Significa
que h exemplos com a mesma descrio mas com classificaes diferentes. Isto , h dados
incorrectos dizemos que h rudo nos dados. Tambm acontece quando os atributos no do
informao suficiente para descrever completamente a situao ou quando o domnio
fortemente no determinstico. Uma maneira simples de resolver o problema ir a votos.

Aplicando obtemos uma rvore diferente da dada anteriormente (trivial). bvio que se
dermos mais exemplos podemos chegar a uma rvore diferente.

Se o algoritmo induz uma rvore consistente com os exemplos, mas incorrecta, quo
incorrecta estar? A prxima seco dir-nos- como calcular experimentalmente.

+ X1,X3,X4,X6,X8,X12

- X2,X5,X7,X9,X10,X11

Patrons?

None Some Full

+ + X1,X3,X6,X8 + X4,X12

- X7,X11 - X2,X5,X9,X10

---------------------------------------------------------------------------------------------------------------------------

+ X1,X3,X4,X6,X8,X12

- X2,X5,X7,X9,X10,X11

Type?

French Italian Thai Burguer

+ X1 + X6 + X4,X8 + X3,X12

- X5 - X10 - X2,X11 - X7,X9

---------------------------------------------------------------------------------------------------------------------------

+ X1,X3,X4,X6,X8,X12

- X2,X5,X7,X9,X10,X11

Patrons?

None Some Full


+ + X1,X3,X6,X8 + X4,X12

- X7,X11 - X2,X5,X9,X10

Yes No Hungry

Y N

+ X4,X12 +

- X2,X10 - X5,X9

---------------------------------------------------------------------------------------------------------------------------

Patrons

None Some Full

No Yes Hungry

No Yes

Type No

French Italian Thai Burguer

Yes No Fri/Sat Yes

No Yes

No Yes
PERFOMANCE DO ALGORITMO DE APRENDIZAGEM

O algoritmo bom se faz um bom trabalho a prever classificaes de exemplos no vistos


ainda. Embora possa ser estimada em avano (seco 18.6), para j vamos ver posteriori.

Vemos com um conjunto de teste. Deve ser adoptada a metodologia seguinte:

1. Colectar um grande conjunto de exemplos.

2. Dividi-lo em 2 conjuntos: o de treino e o de teste

3. Usar o algoritmo de aprendizagem com o de treino para gerar a hiptese H

4. Medir a % de exemplos do de teste correctamente classificados por H

5. Repetir os passos anteriores para conjuntos de diferentes tamanhos e diferentemente (e


aleatoriamente) conjuntos de treino de cada tamanho.

Traamos depois grfico da curva de aprendizagem do algoritmo para um particular domnio.


Vemos que medida que o conmjunto de treino cresce, a perfomance tambm.

CAP. 20 (2 Edio) MTODOS DE APRENDIZAGEM ESTATSTICOS

Os agentes podem lidar com a incerteza do mundo real usando mtodos probabilsticos e
teoria da deciso. Mas primeiro tm de aprender as suas teorias probabilsticas a partir da
experincia. Vamos ver como formular a tarefa da aprendizagem como um processo de
inferncia probabilstica.

20.1. APRENDIZAGEM ESTATSTICA

Os conceitos chave so os dados e as hipteses. Os dados so a evidncia isto ,


instanciaes de algumas ou todas as variveis aleatrias que descrevem o domnio. As
hipteses so teorias probabilsticas de como o domnio funciona.

vamos considerar um exemplo simples: rebuados de 2 sabores, embrulhados no mesmo


papel opaco e os prprios pacotes so indistinguveis.

h1 100% cereja

h2 75% cereja e 25% limo

h3 50% cereja e 50% limo

h4 25% cereja e 75% limo

h5 100% limo
medida que os pacotes so abertos so revelados os dados D1, D2, ..., Dn, com cada Di
sendo limo ou cereja. A tarefa do agente prever qual o sabor do prximo.

A aprendizagem Bayesiana simplesmente calcula a probabilidade de cada hiptese, dados os


dados, e faz previses nessa base. Assim, a aprendizagem reduzida a inferncia
probabilstica. se D for o conjunto de dados, a probabilidade de cada hiptese :

P(hi|d) = P(d|hi) P(hi)

Agora suponha-se que queremos fazer uma previso acerca de uma quantidade
desconhecida X:

P(X|d) = (20.2)

onde assumimos que cada hiptese determina uma distribuio de probabilidade sobre X.
Esta equao mostra que as previses so mdias ponderadas sobre as previses das
hipteses individuais. As hipteses so intermedirias. As quantidades chave na aproximao
de Bayes so as hipteses priori, P(hi), e a semelhana dos dados sobre cada hiptese, P(d|
hi).

No nosso ex. assumimos que h1,...,h5 (0.1, 0.2, 0.4, 0.2, 0.1), dados pelo fabricante. A
semelhana dos dados calculada debaixo da assuno de que as observaes so i.i.d., e
ento:

P(d|hi) = (20.3.)

Por ex. suponhamos que temos um saco s limo e os primeiros 10 rebuados so todos
limo; ento P(d|h3) = 0,510.

Em grfico, vemos que as probabilidades posteriori (P|hi), medida que os rebuados so


observados. Veja-se que as probabilidades comeam com os seus valores priori e depois
vo variando. Um outro grfico, com origem na equao 20.2 mostra a probabilidade do
prximo rebuado ser limo, que cresce monotonicamente para 1.

O ex. mostra que a hiptese verdadeira domina a previso Bayesiana.

Mais importante, a previso de Bayes ptima, para pequenas ou grandes amostras. Isto tem
um preo para aprendizagem real, o espao de hipteses muito grande ou infinito, pelo
que, em muitos casos, temos de proceder a simplificaes ou aproximaes.

Uma aproximao comum fazer previses baseadas numa nica hiptese mais provvel
isto , um hi que maximiza P(hi|d). chamado um mximo posteriori (MAP). Essas
previses hMAP so aproximadamente Bayesianas numa extenso onde P(X|d) P(X|hMAP). No
nosso ex., hMAP = h5 depois de desembrulhar 3 rebuados de limo e assim o MAP prev que
o 4 ser de limo com probabilidade 1.0 mais perigoso que a Bayesiana que dizia 0.8.
quanto maisor for a amostra mais se aproximam. Embora o nosso ex. no demonstre,
encontrar hipteses MAP frequentemente mais simples que a aprendizagem bayesiana.
Em geral, ambas penalizam as hiptese complexas (so mais, usualmente). Por outro lado as
hiptese mais complexas tm grande capacidade de se adaptar aos dados. Assim, a hiptese
priori traduz uma negociao entre a complexidade e o seu grau de se adaptar aos dados.

O mtodo de comprimento mnimo de descrio tenta minimizar o tamanho da hiptese e dos


dados codificados em vez de trabalhar com probabilidades.

Uma simplificao final assumir uma priori uniforme sobre o espao de hipteses. Nesse
caso, a aprendizagem MAP reduz-se a escolher a hi que maximiza P(d|Hi). chamado a
mxima semelhana (ML), hML. razovel quando no h qualquer razo para preferir uma
hiptese sobre outra, priori ex. quando so todas igualmente complexas. Aproxima-se do
MAP e da Bayes quando a amostra grande.

20.2. APRENDIZAGEM COM DADOS COMPLETOS

Comeamos com a tarefa mais simples: aprendizagem de parmetros com dados completos.
Envolve encontrar os parmetros numricos para um modelo probabilstico cuja estrutura
fixa.

APRENDIZAGEM DE PARMETROS NA MXIMA-SEMELHANA: MODELOS DISCRETOS

Suponhamos que comprvamos um saco de rebuados de um novo fabricante, de cujas


propores no sabemos nada. temos um continuum de hipteses. O parmetro, neste caso,
a que chamamos , a proporo de rebuados de cereja, e a hiptese h. Se modelarmos
a situao com uma rede de Bayes, s precisamos de uma varivel aleatria Sabor (o sabor
de um rebuado aleatoriamente escolhido do saco). Tem valores: cereja e limo. Agora
suponhamos que desembrulhmos N rebuados, em c so cereja e l limo. de acordo coma
equao 20.3. a semelhana deste particular conjunto de dados :

P(d|h) =

A hiptese de mxima semelhana dada pelo valor de que maximiza esta expresso. O
mesmo valor obtido maximizando o log da semelhana.

L(d|h) = log P(d|h) = log P(dj|h) = c log + l log(1-)

Derivamos L em ordem a e igualamos a zero, obtendo:

= c / c+l = c/N

Ou seja, hML diz que a proporo de cerejas no saco igual proporo observada at agora.
Embora parea termos descoberto o bvio, tirmos um mtodo standard para a aprendizagem
dos parmetros ML.

1. Escrever uma expresso para a semelhana dos dados como funo dos parmetros
2. Derivar o log da semelhana com respeito a cada parmetro

3. Encontrar os valores dos parmetros que tornem a derivada igual a zero.

O passo mais difcil o ltimo. O ex. tambm ilustra um dos problemas do ML: quando o
conjunto de dados pequeno e alguns eventos no foram observados ex: nenhum rebuado
de cereja o ML associa a probabilidade zero a esse eventos. vrios truques so usados para
evitar este problema, tal como, por ex. iniciar a contagem por 1.

Vamos supor agora que o fabricante embrulhava em cores diferentes cada sabor. O papel para
cada rebuado escolhido probabilisticamente, de acordo com alguma (desconhecida)
distribuio condicional, de acordo com o sabor. O modelo mostrado na fig 20.2.b):

Agora temos 3 parmetros: , 1 ( P(W=red|F) ), 2. Com estes parmetros, a semelhana


de um rebuado de cereja num papel verde, pode ser obtida da semntica standard para a
rede Bayesiana (pg.495).

P(Flavor = cereja, papel = verde|h,1,2)

= P(Flavor = cereja|h,1,2)P(Wrapper=verde|flavor=cherry,h,1,2) = * (1 - 1)

Desembrulhando n e obtendo c e l. os papis so contados assim: rc 0 n de cerejas em


papis vermelhos. A semelhana dos dados dada por:

P(d|h,1,2) = c(1-)l * 1rc(1-1)gc * 2rl(1-2)gl

Logaritmizamos, para quando derivarmos obtermos 3 equaes independentes, uma em cada


varivel, igualando tambm a zero depois, obtemos:

= c / c+l 1=rc / rc+gc 2 = rl / rl+gl

Estes resultados so muito reconfortantes, e fcil ver que os podemos extender a qualquer
rede Bayesiana cujas probabilidades condicionais so representadas em tabelas.

O ponto mais importante a reter que, com dados completos, a ML decompe a


aprendizagem de vrios parmetros em problemas e aprendizagem separados.

MODELOS DE BAYES NAIVE

Provavelmente o modelo de rede Bayesiana mais comum na aprendizagem de mquinas, o


modelo naive. Neste, a varivel de classe (que deve ser prevista) a raiz e as variveis
atributo xi, so as folhas. O modelo naive porque assume que as folhas so
condicionalmente independentes. O anterior era naive s com um atributo/folha.

assumindo variveis booleanas os parmetros so:

= P(C=true), i1 = P(Xi=true|C=true), i2 = P(Xi=true\C=false)

A probabilidade de cada classe :


P(C|x1,...,xn) = P(C)

Uma previso determinista pode ser obtida, escolhendo a classe mais semelhante. No
aprende to bem como a rvore de deciso. Mas, escala bem para problemas muito grandes:
com n atributos Booleanos, h apenas 2n+1 parmetros, e no precisa procura para
encontrar hML. tambm no tem dificuldade com dados rudo.

...

20.4. APRENDIZAGEM BASEADA EM INSTNCIAS

At agora, a nossa discusso de aprendizagem estatstica focou-se em adaptar parmetros de


uma famlia restrita de modelos de probabilidade a um conjunto de dados no-restrito.

a aprendizagem paramtrica. Os seus mtodos so simples e efectivos, mas assumir uma


particular e restrita famlia de modelos, frequentemente simplifica muito o que se passa no
mundo real, donde vm os dados. se isto Ok quando temos poucos dados, quando temos
muitos, podemos (e devemos) tornar as hipteses mais complexas.

A aprendizagem no-paramtrica, permite que a complexidade cresa com os dados. Vamos


s ver 2 famlias de aprendizagem baseada nas instncias (ou baseada na memria).

MODELOS DOS VIZINHOS MAIS PRXIMOS

A ideia chave que as propriedades de qualquer ponto de entrada x so provavelmente


similares quelas dos pontos na vizinhana de x. Por ex. se queremos fazer estimativa de
densidade isto , estimar o valor de uma densidade de probabilidade x desconhecida
podemos simplesmente medir a densidade dos pontos na vizinhana de x.

uma soluo definir a vizinhana para ser suficientemente larga para incluir k pontos -> o
tamanho da vizinhana varia.

Na prtica, um valor de k entre 5 e 10 d bons resultados para a maioria dos problemas de


dimenses pequenas.

Para identificar os vizinhos de um ponto precisamos da distncia mtrica, D(x1,x2). Se o


problema for bidimensional a distncia Euclideana. Se as escalas forem diferentes, temos de
standardizar a escala de cada dimenso. Para isso, medimos o desvio padro de cada
caracterstica sobre todo o conjunto de dados e expressamos os valores das caractersticas
como mltiplos do desvio padro ( o caso da distncia de Mahalanobis, que tambm
considera a covarincia). Finalmente, para caractersticas discretas podemos usar a distncia
de Hamming, que define D(x1,x2) como o n de caractersticas nas quais x1 e x2 diferem.

Aqui no podemos ter variveis escondidas, mas ainda podemos usar a estimativa da
densidade para prever um valor alvo y dados valores de uma caracterstica de input x,
calculando

P(y|x) = P(y,x) / P(x), desde que os dados incluam valores para a caracterstica alvo.
Tambm possvel usar a ideia de vizinhos mais prximos para supervisionar directamente a
aprendizagem. Dado um ex de teste com input x, o output y=h8x) obtido dos y valores dos k
vizinhos mais prximos de x. No caso discreto podemos obter um previso por maioria de
votos. No caso contnuo, podemos fazer uma mdia dos k valores.

O algoritmo muito simples de implementar, requer pouco na afinao e frequentemente


trabalha bem. uma boa primeira tentativa para problemas de aprendizagem. Para conjuntos
grandes de pontos pode demorar muito o clculo dos vizinhos, pelo que h mtodos para
tentar ultrapassar esta dificuldade, mas que no se comportam bem para um n grande de
caractersticas.

MODELOS DE KERNEL

....

20.5. REDES NEURONAIS

Um neurnio uma clula do crebro cuja principal funo captar, processar e disseminar
sinais elctricos. A IA tenta criar redes neuronais artificiais (tambm chamadas de
conexionismo ou processamento paralelo distribudo ou computao neural).

H modelos matemticos do neurnio. Basicamente ele dispara quando uma combinao


linear das entradas excede um determinado limiar.

UNIDADES NAS REDES NEURAIS

As redes neuronais so compostas por ns ou unidades ligadas por links directos. um link da
unidade j para a i serve para propagar a activao aj de j para i. Cada link tem um peso Wj
associado, que determina o a intensidade e sinal da conexo. Cada unidade i primeiro
computa a soma pesada das entradas:

ini =

depois aplica uma funo de activao g a esta soma, para derivar a sada:

ai = g(ini) = g () (20.10.)

Repare que incluimos um peso bias W0,i conectado a uma entrada fixa a0=-1

A funo g tem 2 funes: Pimeiro, queremos que a unidade fique activa (perto do +1) quando
as entradas certas esto presentes e inactiva (perto de 0) quando as entradas erradas esto
presentes. segundo, a activao tem de ser no linear, caso contrrio toda a rede cai numa
funo linear.

H 2 escolhas par g: a funo limiar e a funo sigmod (funo logstica). Esta ltima tem a
vantagem de ser diferencivel. Ambas tm um limiar no zero. O peso bias W0,i coloca o limiar
actual para a unidade.
Podemos sentir a operao de um unidade individual, comparando-a com portas lgicas. A
figura 20.17 mostra que o And, Or e Not podem ser representadas por estas unidades de
limiar com pesos adequados. Isto importante pois significa que podemos usar estas
unidades para construir uma rede para computar qualquer funo Booleana das entradas.

And W0=1.5 W1 e W2 = 1

Or W0=0.5 W1 e W2 = 1

Not W0=0.5 W1=1

ESTRUTURAS DE REDE

H 2 categorias principais: acclicas (ou feed-forward) e cclicas (ou recorrentes).

A primeira representa uma funo da sua entrada corrente; assim, no tem estados internos
para alm dos pesos. A segunda alimenta as entradas com as sadas. Isto significa que
podemos ter nveis de activao para um sistema dinmico que pode atingir um estado estvel
ou entrar em oscilaes ou at catico. Mais, a resposta a entradas depende do estado inicial,
que depende de entradas anteriores (tm memria).

Considere-se a rede simples da figura:

1 W1,3 3

W1,4 W3,5

W2,3

2 W2,4 4 W4,5
Tem 2 unidades de entrada, duas unidades escondidas e uma unidade de sada (para manter
simples omitimos as unidades de bias).

Dado um vector de entrada x=(x1,x2), as activaes das unidades de entrada so colocadas a


(a1,a2) = (x1,x29 e a rede computa:

a5 = g(W3,5 a3 + W4,5 a4) = g(W3,5 g(W1,3 a1 + W2,3 a2) + W4,5 g(W1,4 a1 + W2,4 a2))

Vemos que os pesos actuam como parmetros da funo; escrevendo W para os parmetros,
a rede computa a funo hW(x). Ajustando os pesos, mudamos a funo. assim que a
aprendizagem ocorre nas redes neuronais.

Uma rede neuronal pode ser usada para classificao ou regresso. Para a classificao
Booleana com sadas contnuas (isto unidades sigmod) tradicional ter uma nica sada
com um valor acima de 0.5 interpretado como 1 e abaixo como 0. Para classificao k-modos
podemos dividir a sada e k pores mas mais usual ter k sadas.

As redes feed-forward so normalmente arranjadas em camadas (layers), de mod que cada


unidade s recebe entradas de unidades na camada imediatamente precedente.

REDES NEURONAIS FEED-FORWARD DE CAMADA NICA (PERCEPTRES)

Todas as entradas esto conectadas directamente com as sadas. Como cada unidade de
sada independente das outras cada peso afecta apenas uma das sadas podemos
limitar o nosso estudo a perceptres com apenas uma sada.

Qual o espao de hipteses que o perceptro pode representar? Com uma funo de
activao de limiar podemos v-lo como representando uma funo Boolena. Para alm das
funes bsicas pode representar outras mais complexas de forma compacta. Ex. a funo
maioria que d 1 apenas se mais de metade das entradas for 1, pode ser representada por um
perceptro com cada Wj=1 e limiar=n/2. uma rvore de deciso precisaria de O(2n) ns para
representar esta funo.

Infelizmente h muitas funes Booleanas que o perceptro de limiar no consegue


representar. Olhando para a equao 20.10 vemos que o perceptro s retorna 1 se a soma
das entradas pesadas for positiva. Ento W.x define um hiperplano no espao de entradas de
modo a que s retorna 1 se a entrada estiver dum lado desse plano. Por isso, o perceptro de
limiar chamado separador linear. S consegue pois representar a funes linearmente
separveis (o que no acontece, por ex. ao XOR), que uma pequena fraco das funes.

Apesar disso, tem vantagens: H um algoritmo simples de aprendizagem que se adequa a


um perceptro de limiar para qualquer conjunto de dados linearmente separveis.

A ideia ajustar os pesos da rede para minimizar alguma medida de erro no conjunto de
dados. assim, a aprendizagem formulada como uma optimizao da procura no espao de
pesos.
A medida clssica do erro a soma dos erros quadrados. O erro quadrado para um ex. com
entrada x e sada true y escrito como:

E = Err2 = (y-hW(x))2

em que hW(x) a sada do perceptro no ex. e T o verdadeiro valor da sada.

Podemos usar o gradiente descent para reduzir o erro quadrado, calculando a derivada parcial
de E com respeito a cada peso, o que vai dar:

dE/dWj = -Err * g(in) * xj

No algoritmo do gradiente descendente, onde queremos reduzir E, actualizamos os pesos


como se segue:

Wj Wj + * Err * g(in) * xj

Onde a taxa de aprendizagem


NOTAS/DVIDAS/COMPLEMENTOS

1 1.3.3. ABORDAGEM BIOLGICA livro em portugus

algoritmos genticos.

Ao contrrio das outras abordagens, que transformam uma soluo candidata, estes
algoritmos trabalham com uma populao de solues candidatas.

Tem de haver:

- um mecanismo de seleco, que pode ser a seleco por roleta.

- um operador de recombinao (de cruzamento de um ponto) baseado na ordem

- um operador de mutao por troca de genes.

1. Criar aleatoriamente populao com P indivduos;

2. Determinar a qualidade dos indivduos;

3. Se estamos satisfeitos ento terminar

Seno

3.1. Seleccionar |P|/2 pares de indivduos de acordo com a sua qualidade;

3.2. Usar, estocasticamente, o operador de cruzamento sobre cada par, gerando

dois (novos) filhos;

3.3. Usar, estocasticamente, o operador de mutao sobre cada indivduo

resultante da etapa anterior;

3.4. Substituir a populao antiga pela nova;

3.5. Avaliar os indviduos da nova populao;

3.6. Voltar a 3.

H que concretizar melhor a representao e os operadores.

representao:

Cada indivduo ter apenas um cromossoma (haplide) de tamanho igual ao n de rainhas.


Cada gene representar a linha de uma rainha numa dada coluna (implcita), pelo que os
alelos variam entre 1 e N. No sendo permitdas repeties (de linhas), cada indivduo ser
pois representado por uma permutao de inteiros de 1 a N.

qualidade:
o fentipo. Por ex. pode ser dada pelo somatrio de ataques. ex: mrito(Ck)=2.

mrito(Ck)=[() N ] /2

a funo ataca ser 1 caso as rainhas estejam na mesma linha i=n, na mesma coluna j=m ou
diagonal i-j = n-m ou i+j = n+m.

Um par de indivduos ser seleccionado com base no seu mrito relativo:

mrito_relativo(Ck) = mrito(Ck) /

Este mtodo designado por mtodo da roleta. ex: 4 configuraes com Ck de 1, 2, 3 e 4. a


primeira ter 0.1 de mrito relativo, logo tem 10% de hipteses de ser seleccionada.

recombinao e mutao:

devem ser definidos de modo a no gerar indivduos impossveis.

no caso da recombinao usamos um operadord e ponto de cruzamento baseado na ordem.


Define-se aleatoriamente uma posio no par de cromossomas seleccionado e cruzando o
respectivo material gentico de modo a que no verifiquem repeties de valores: o material
esquerda do ponto de corte mantido inalterado nos 2 cromossomas. O direita trocado
se se encontrar um que j exista, salta-se para o seguinte. No fim acrescenta-se o(s) que
falta(m).

No caso da mutao, o problema de no criar tambm indivduos impossveis, leva a utilizar


um operador de mutao por troca. Seleccionam-se aleatoriamente dois genes e os alelos so
trocados.

Para que a definio fique completa h que definir a forma de iniciar a populao e respectiva
dimenso, o critrio de paragem.

Caractersticas:

- tratamos em paralelo vrias solues

- apenas uma parte do espao de configuraes analisado abordar problemas complexos

- no necessrio ter grande conhecimento do domnio para encontrar soluo.

- funo de mrito guia a procura.

completo para espaos finitos, pois a funo de recombinao e mutao percorrero


todo o espao de configuraes.

no ptimo pois como a escolha do ponto de cruzamento e da mutao aleatrio, nada


nos garante que no teria sido possvel encontrar uma soluo com menso passos.

complexidade espacial constante, pois s h que guardar a populao em anlise x 2,


isto a populao em anlise (antiga/de partida) e a que est a ser gerada/mutada/nova que
vai substituir a antiga.
complexidade temporal depende da funo de mrito ou no? a componente de
aleatoriedade na escolha do ponto de corte para a funo de recombinao e dos genes para
mutao ter influncia? Em todo o caso, parece-me que no pode exceder n!*P sendo N o n
de alelos e P a Populao com que se trabalha.

LIVRO ADOPTADO

20.8 ALGORITMOS GENTICOS E PROGRAMAO EVOLUCIONRIA

O algoritmo gentico comea com um conjunto de um ou mais indivduos e aplica operadores


de seleco e reproduo para evoluir para um indivduo que tem sucesso, medido pela
funo de avaliao.

Ele simplesmente procura no espao de indivduos directamente com a meta de encontrar um


que maximize a funo de avaliao. A procura paralela porque cada indivduo na populao
pode ser visto como uma procura separada. Trepa-Colinas porque fazemos pequenas
mudanas genticas para mudar os indivduos e usar o melhor resultado da prole. Se
ignorarmos completamente os indivduos menos prometedores podemos cair num mximo
local.

Antes de aplicar o algoritmo devemos responder a:

- Qual a funo de avaliao

- Como o indivduo representado

- Como so os indivduos seleccionados

- Como se reproduzem os indivduos

A funo depende do problema mas toma sempre o indivduo como input e retorna um
nmero.

No algoritmo clssico o indivduo representado por uma string de um alfabeto (geralmente o


binrio se for outro mais complexo, temos a programao evolucionria) finito. Cada
elemento da string um gene.

A estratgia de seleco geralmente a aleatria com a probabilidade proporcional


avaliao. O mesmo indivduo pode ser seleccionado e reproduzir mais vezes.

A reproduo acompanhada por cruzamento e mutao. Primeiro, os indivduos


seleccionados so aleatoriamente emparelhados. Depois, para cada par, um pornto de
cruzamento aleatoriamente escolhido. Ex. se o ponto for 10 o filho toma 1 a 10 do primeiro
pai e os restantes do 2 pai (me). Mas cada gene pode ser depois mutado aleatoriamente
para um novo valor com pequena probabilidade independente.

You might also like