Você está na página 1de 94

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.
Mas, 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 os O estudo das faculdades mentais atravs de
computadores pensar... mquinas com mentes, modelos computacionais (Charniak and
no seu sentido literal (Haugeland, 1985) McDermott, 1985)
[A automatizao de] actividades que O estudo das computaes que tornam
associamos com o pensamento dos humanos, possvel perceber, raciocinar e agir (Winston,
actividades como tomada de decises, 1992)
resoluo de problemas,
aprendizagem...(Bellman, 1978)
A arte de criar mquinas que executam funes Um campo de estudo que procura explicar e
que requerem inteligncia quando executadas emular o comportamento inteligente em termos
por pessoas (Kurzweil, 1991) de processos computacionais (Schalkoff,1990)
O estudo de como fazer os computadores O salto da cincia dos computadores que se
fazer coisas, as quais, no momento, as pessoas preocupa com a automao do comportamento
so melhores (Rich & Knight, 1991) 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 de Sintomas, Questes, testes, Sade do Paciente,
diagnstico findings, tratamentos paciente, Hospital
mdico respostas dos minimizao de
doentes custos
Sistema de variao da Impresso duma Categorizao Imagens do
Anlise de Intensidade dos categorizao da Correcta Satlite em rbita
Imagens Satlite Pixels, cor cena
Robot de Picking Pixels de Pega em peass Colocar peas Correia de fbrica
Peas intensidade e coloca-as em nas vasilhas com peas
varivel vasilhas correctas
Controlador de Temperatura, Abre, fecha maximizar a Refinaria
Refinaria presso (leituras) vlvulas; ajusta a pureza, yeld,
temperatura segurana
Tutor Intercativo Palavras escritas Imprime Maximiza a Conjunto para
de Ingls Exerccios, classificao do estudantes
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 35 100
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, acelerar, travar, rpida, legal, trfego, pees,
GPS, sonar, falar com o confortvel; clientes
microfone 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 diagnstico mdico No No No No No
Sistema de anlise de imagens Sim 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 bd) 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- Uniform- Depth-First Depth- Iterative Bidirecctional
First Cost Limited Deepening (se aplicvel)
d
Tempo b 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 >= Sim Sim
d

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
a) A sintaxe da linguagem
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 Compromisso Epistemolgico
que existe no mundo) (o 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, true/false/unknown
factos 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
----------------------------------
i

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)
i
-------------------------
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
v
-----------------------
SUBST({v/g}, )
Por exemplo, de x Likes(x,IceCream) podemos usar a substituio {x/Ben} e inferir Likes(Ben,
IceCream)
EXISTENTIAL ELIMINATION
v
--------------------------
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)
Go(There)
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.
n
P(x1,...,xn) =
i1
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.) =
i
P(Carasi)MV(Carasi) =
i
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
Domnios RGB RGB RGB RGB RGB RGB RGB
Inicias
Depois de R GB RGB RGB RGB GB RGB
WA=red
Depois de R B G RB RGB B RGB
Q=green
Depois de R B G R B RGB
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.

Exemplo Goal
Alt Bar Fri Hun Pat Price Rain Res Type Est WillWait
X1 Yes No No Yes Some $$$ No Yes French 0-10 Yes
X2 Yes No No Yes Full $ No No Thai 30-60 No
X3 No Yes No No Some $ No No Burguer 0-10 Yes
X4 Yes No Yes Yes Full $ No No Thai 10-30 Yes
X5 Yes No Yes No Full $$$ No Yes French > 60 No
X6 No Yes No Yes Some $$ Yes Yes Italian 0-10 Yes
X7 No Yes No No None $ Yes No Burguer 0-10 No
X8 No No No Yes Some $$ Yes Yes Thai 0-10 Yes
X9 No Yes Yes No Full $ Yes No Burguer > 60 No
X10 Yes Yes Yes Yes Full $$$ No Yes Italian 10-30 No
X11 No No No No None $ No No Thai 0-10 No
X12 Yes Yes Yes Yes Full $ No No Burguer 30-60 Yes

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) = P ( X | d , h ) P ( h | d ) P ( X | h ) P ( h
i
i i
i
| 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) = P (d
j
j | 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 :
n

P(d|h) = P(d j | h ) c * (1 )l
j 01

A hiptese de mxima semelhana dada pelo valor de que maximiza esta expresso. O
mesmo valor obtido maximizando o log da semelhana.
N
L(d|h) = log P(d|h) = j1
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) P( x
i
i | 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:
n
ini = W
j 0
j ,i aj

depois aplica uma funo de activao g a esta soma, para derivar a sada:
n
ai = g(ini) = g ( W
j 0
j ,i aj ) (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
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.
N N N N
mrito(Ck)=[( ataca(r r
i 1 j 1 n 1 m 1
ij nm ) ) 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:
P
mrito_relativo(Ck) = mrito(Ck) / Ckk 1
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.