Professional Documents
Culture Documents
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.
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)
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.
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.
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:
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.
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.
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.
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.
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.
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
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 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.
Onde se ver como a informao acerca do espao de estados pode impedir os algoritmos de
navegar no escuro. H maior eficincia.
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.
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.
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.
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.
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.
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
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.
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
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.
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.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.
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).
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
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)
=> ,
------------------
4. Or-Introduo (de uma frase, pode inferir a sua disjuno sm mais nada)
i
-------------------------
1 V 2 V ... V n
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.
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.
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.
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.
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))
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).
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)
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.
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.
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.
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))
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
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.
------------------------
v SUBST({g/v}, )
Por exemplo, de Likes(Jerry, IceCream) podemos inferir x Likes(x, IceCream)
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.
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.
At(here), Path(here,there)
Go(There)
At(there), -At(here)
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.
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.
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.
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.
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.
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
No Yes Hungry
No Yes
Type No
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.
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-)
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 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.
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.
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.