Page1 DAS-5341: Representação do Conhecimento e Raciocínio Prof. Eduardo Camponogara.
-
Upload
raphael-mascarenhas-sintra -
Category
Documents
-
view
214 -
download
2
Transcript of Page1 DAS-5341: Representação do Conhecimento e Raciocínio Prof. Eduardo Camponogara.
Page1
DAS-5341: Representação do Conhecimento
e Raciocínio
Prof. Eduardo Camponogara
Page2
Agenda• Aqui estamos interessados em habilidades
de raciocínio lógico em agentes
– Um agente baseado em uma base de conhecimento e lógica começa com algum conhecimento do mundo e de suas próprias ações
– O agente faz uso de dedução lógica para atualizar a descrição do mundo à medida que novas medições de sensores são recebidas, e para deduzir um curso de ação que atingirá o seu objetivo
Page3
Agentes com dedução lógica• Nas próximas transparências, desenvolvemos
o projeto básico de um agente baseado em conhecimento
• A abordagem base-de-conhecimento é uma forma poderosa de se construir o programa do agente– Agentes baseados em conhecimento são
capazes de aceitar novas tarefas na forma de tarefas explícitas
Page4
Agente
AmbienteAgente
percepção
ações
?
Sensores
Atuadores
Como projetar isto?
Page5
Representação Interna: agente com metas
Estado
Am
biente
Agente Sensores
Qual é o estadodo mundo
Que ação devotomar neste agora
Atuadores
Metas
Como que o mundo evolui
Quais são minhas ações
Qual será o estadose eu tomar a ação A
Page6
Agente basedo em conhecimento
• O elemento central de um agente baseado em conhecimento é sua base de conhecimento (knowledge base, KB)– Informalmente, a base de conhecimento é
um conjunto de representações de fatos sobre o mundo
Page7
Base de conhecimento
Descrição do mundo
Conhecimento sobre o estado do mundo
Especificação explícitia do que o agente conhece
Page8
Base de conhecimento• Informalmente, uma base de conhecimento é um
conjunto de representações de fatos sobre o mundo– Cada representação individual é uma sentença– As sentenças são representadas em uma
linguagem dita linguagem de representação do conhecimento
• Deve existir uma forma de adicionar novas sentenças à base, bem como executar buscas– TELL– ASK
Page9
Esqueleto de um agente baseado em conhecimento
função KB-Agente(percepção) retorna açãoestático: KB, uma base de conhecimento
t, um contador que indica o tempo
Tell(KB,constrói-sentença-percepção(percepção))ação <- ASK(KB,constrói-pergunta-ação(t))Tell(KB,constrói-sentença-ação(ação,t))t <- t + 1retorna ação
Page10
Esqueleto de um agente baseado em conhecimento
• constrói-sentença-percepção toma como entrada dados dos sensores e retorna uma sentença representando o “fato” que o agente pecebeu
• constrói-sentença-ação retorna uma sentença que pergunta qual ação será executada
Page11
Três níveis de descrição• A base de conhecimento pode ser descrita em
três níveis– Nível de conhecimento
• Mais abstrata• Descreve um agente em termos do que ele
sabe– Nível lógico
• Nível no qual o conhecimento é codificado em sentenças
• Exemplo: links(HercílioLuz,Florianópolis,SãoJosé)
Page12
Três níveis de descrição• A base de conhecimento pode ser descrita em
três níveis– Nível de implementação
• O nível que executa na arquitetura do agente
• Sentenças tais como Links podem ser representadas na KB como listas de caracteres “links(HercílioLuz,Florianópolis,SãoJosé)”
Page13
Construindo agentes• Abordagem declarativa
– É possível construir um agente baseado em conhecimento dizendo o que ele precisa saber
– O projetista adiciona sentenças que representam seu conhecimento sobre o ambiente
• Abordagem por aprendizado
Page14
O mundo de Wumpus• Um ambiente simples que oferece desafios
suficientes para ilustrar dedução lógica
Page15
O mundo de Wumpus
Wumpus
Agente
Mau cheiro
Vento
Buraco
Prêmio
Page16
O mundo de Wumpus• Para especificar a tarefa de um agente,
devemos definir a percepção, as ações, e os objetivos– Nos quadrados contendo o Wumpus e nos
quadrados diretamente adjacentes, o agente percebe mau cheiro
– No quadrado que contém ouro, o agente percebe brilho
– Quando o agente se move em direção a uma parede, ele sente uma batida
– Quando o Wumpus é morto, ele grita– No quadrado diretamente adjacente a um
buraco o agente percebe vento
Page17
O mundo de Wumpus• A percepção será recebida na forma de uma
lista de símbolos– Exemplo: [mau cheiro, vento, brilho, batida,
grito]– O agente não percebe sua própria localização
• Há ações para se mover para frente, girar 90o à direita, girar 90o à esquerda
• Disparar um dardo em linha reta
• O objetivo do agente é encontrar o ouro e trazê-lo à posição de início o mais rápido possível
Page18
Ambientes gerados aleatoriamente
• Na maioria dos ambientes, existe uma maneira do agente atingir seu objetivo
• Em alguns ambientes, o agente deve decidir entre retornar de mãos vazias ou arriscar a morte pelo Wumpus
• Em 21% dos ambientes o ouro está em um buraco ou cercado por buracos, não havendo portanto maneira de recuperar o ouro
Page19
Agindo e raciocinando no mundo de Wumpus
• Um exemplo mostrará porque um agente eficaz deverá ser dotado de alguma habilidade de dedução lógica
Page20
Mundo de Wumpus
A
4,4
4,3
4,2
4,1
3,4
3,3
3,2
3,1
2,4
2,3
2,2
2,1
1,4
1,3
1,2
1,1
A: Agente
A partir de que não há mau cheiro nem vento, o agente infere que as células (1,2), (1,1) e (2,1) são seguras
Page21
Mundo de Wumpus
Ok
4,4
4,3
4,2
4,1
3,4
3,3
3,2
3,1
2,4
2,3
2,2
2,1
1,4
1,3
1,2
1,1
OK: célula okV: ventoP: buracoVi: visitada
• Na célula (2,1) o agente detecta vento, permitindo que ele deduza que há um buraco em (2,2) e/ou (3,1)
• Há apenas uma célula Ok que não foi visitada
Ok
Ok
AVVi Vi
Page22
Mundo de Wumpus
Ok
4,4
4,3
4,2
4,1
3,4
3,3
3,2
3,1
2,4
2,3
2,2
2,1
1,4
1,3
1,2
1,1
OK: célula okV: ventoP: buracoVi: visitadaM: mau cheiroW: Wumpus
• Na célula (1,2) o agente detecta mau cheiro; uma vez que o Wumpus não pode estar nas células (2,2) e nem em (1,1), o agente conclui que ele está em (1,3)
Ok
OkA
V
P?
P?
M
Vi Vi
Vi
W!
Page23
Mundo de Wumpus
Ok
4,4
4,3
4,2
4,1
3,4
3,3
3,2
3,1
2,4
2,3
2,2
2,1
1,4
1,3
1,2
1,1
A: agenteOK: célula okV: ventoP: buracoVi: visitadaM: mau cheiroW: Wumpus
• A falta de vento na céclula (1,2) indica que não há buraco na célula (2,2), mas apenas na célula (3,1)
Ok
OkA
V
OK
P!
M
Vi Vi
Vi
W!
Page24
Mundo de Wumpus
Ok
4,4
4,3
4,2
4,1
3,4
3,3
3,2
3,1
2,4
2,3
2,2
2,1
1,4
1,3
1,2
1,1
A: agenteOK: célula okV: ventoP: buracoVi: visitadaM: mau cheiroW: Wumpus
• Só há uma célula não visitada que seja segura, (2,2), nesta posição o agente detecta o ouro
Ok
Ok A
V
OK
P!
M
Vi Vi
Vi
W!
Vi
Page25
Representação, Dedução e Lógica
• O objetivo da representação do conhecimento é expressar o conhecimento em computador, de uma forma tratável, de forma que este possa ter bom desempenho
• Uma linguagem de representação é definida por dois elementos:– Sintaxe: descreve as possíveis
configurações que constituem sentenças– Semântica: determina os fatos do “mundo”
referenciados pelas sentenças
Page26
Sintaxe e Semântica• Se a sintaxe e a semântica são definidas
precisamente, então dizemos que a linguagem é uma lógica
Lógica = Sintaxe + Semântica
• A partir da sintaxe e da semântica, podemos produzir um mecanismo de inferência para um agente que usa esta linguagem
Page27
Dedução• Exemplo:
– A sintaxe da linguagem de expressões aritméticas diz que, se x e y são expressões denotando números, então x y é uma sentença sobre números
– A semântica da linguagem diz que se x y é falso quando y é um número maior do que x, e verdadeiro caso contrário
Page28
Sintaxe e Semântica
Sentenças Conclusões(base de conhecimento)
Fatos Fatos
Inferência
Implica
Computador
Mundo real
SemânticaΔ α
Δ α
x y , y z ∣= x zDedução: no nível sintáticoExemplo:
Page29
Derivação• Deseja-se gerar sentenças que são
necessariamente verdadeiras, dados que as sentenças da KB são verdadeiras – Esta relação entre sentenças será dita
derivação
KB |- • A chave para inferência é garantir que os
passos respeitem a semântica das sentenças. – Ou seja, dada uma KB, os passos de
inferência devem derivar novas sentenças que representem fatos que seguem dos fatos da KB
Page30
Derivação• Exemplo:
KB: E = mc2 |- ET = mc2T
• Linguagens lógicas são da mesma natureza que a linguagem da equação acima
Page31
Representação• Duas linguagem familiares para representação
– Linguagens de programação– Linguagem natural
Page32
Linguagens de programação• Adequadas para descrever algoritmos e
estruturas de dados concretas
• Poderíamos utilizar uma grade de 4x4 para representar o mundo de Wumpus
World[2,2] <- buraco – A sentença acima seria natural nesta
linguagem
• Entretanto, as linguagens de programação tipicamente não oferecem uma forma simples de dizer “tem um buraco em [2,2] ou [3,1]”
Page33
Linguagem natural• Linguagem natural é certamente expressiva
• Todavia, linguagens evoluíram de maneira a atender a necessidade de comunicação, não de representação do conhecimento
• Dependência do contexto
Page34
Propriedades de uma linguagem• Uma boa linguagem de representação deve combinar
as vantagens das linguagens naturais e formais – Deve ser expressiva e concisa de forma que se possa
expressar tudo de uma forma sucinta– Deve ser não-ambígua e independente do contexto– Deve ser eficaz, no sentido que um procedimento de
inferência possa gerar novas sentenças
• Várias linguagens foram desenvolvidas com o propósito de satisfazer este critérios– Lógica de primeira ordem (first-order logic)
Page35
Semântica• Em lógica, o significado de uma sentença
consiste no que é dito sobre o mundo, que o mundo é deste jeito e não daquele
• As linguagens com as quais vamos trabalhar são composicionais– O significado de uma sentença é função do
significado das partes– Da mesma forma que x2 + y2 está
relacionado ao significado de x2 e y2
Page36
Inferência• Os termos “raciocínio” e “inferência”
geralmente se referem a processos através dos quais conclusões são obtidas– Estamos interessados em raciocínio
plausível, o qual chamamos de inferência lógica ou dedução
Page37
Validação e Satisfação• Uma sentença é válida ou necessariamente
verdadeira se, e somente se, ela é verdadeira qualquer que seja a interpretação
• Exemplo:– “Há mau cheiro na célula [1,1] ou não há
mau cheiro na célula [1,1]”
Page38
Observações• Inferência lógica pode ser usada para derivar
conclusões válidas mesmo quando o computador não conhece a interpretação
• O computador retorna apenas conclusões válidas, que devem ser verdadeiras qualquer que seja a interpretação
• Uma vez que você conhece a interpretação, a conclusão terá sentido
Page39
LógicasUma lógica consiste do seguinte• Um sistema formal que descreve o estado,
consistindo em:– a sintaxe da linguagem, que descreve
como sentenças são construídas– a semântica da linguagem, que descreve
como as sentenças se relacionam aos fatos
Uma teoria de prova• Um conjunto de regras para dedução das
derivações de um conjunto de sentenças
Page40
Lógica Proposicional• Símbolos representam sentenças completas
(fatos)– Ex:
• D pode ter a interpretação “O Wumpus está morto”
• Símbolos proposicionais podem ser combinados usando conetivos Booleanos para gerar sentenças com significado mais complexo
Page41
Lógica de Primeira Ordem• Representa o mundo em termos de objetos e
predicados sobre os objetos, fazendo uso de conetivos e quantificadores, o que nos permite escrever sentenças sobre qualquer coisa
• Lógica de primeira ordem captura grande parte do conhecimento que temos sobre o mundo, e tem sido estudada por mais de 100 anos
Page42
Observações• Lógica proposicional
– Assume que fatos são verdadeiros ou falsos
• Lógica de primeira ordem– Assume que o mundo consiste de objetos
com certas relações entre eles, que podem ser verdadeiras ou não
• Lógica temporal– Assume que o mundo é ordenado através
de um conjunto de pontos no tempo
Page43
Observações
Grau de certezaGrau de veracidade
Teoria Fuzzy
Grau de certezaFatosTeoria das probabilidades
Verdadeiro/falso/desconhecido
Fatos, objetos, relações, tempo
Lógica temporal
Verdadeiro/falso/desconhecido
Fatos, objetos, relações
Lógica de primeira ordem
Verdadeiro/falso/desconhecido
FatosLógica proposicional
Crença de um agente sobre fatos
O que existe no mundo
Linguagem
Page44
Lógica proposicional• A despeito de sua limitada capacidade de
expressão, a lógica proposicional pode ser utilizada para ilustrar muitos conceitos de lógica
Page45
Lógica Proposicional: Sintaxe• Sentença -> Sentença_Atômica
| Sentença_Complexa• Sentença_Atômica -> True | False | P | Q | R ...• Sentença_Complexa -> ( Sentença )
| Sentença Conetivo Sentença | Sentença
• Conetivo -> | | |
Page46
Lógica Proposicional: Semântica• A semântica da lógica proposicional também é
simples– A semântica é definida através da
especificação da interpretação dos símbolos proposicionais e constantes
– E da interpretação dos conetivos
Page47
Lógica Proposicional: Semântica• A interpretação de P pode ser o fato de que
– “Paris é a capital da França” ou – “Wumpus está morto”
• Cada conetivo pode ser pensado como uma função– Da mesma forma que o operador “+” toma
duas entradas e retorna um número, o operador “and” toma dois símbolos proposicionais e retorna verdadeiro ou falso
Page48
Validade e Inferência• Tabelas verdade podem ser utilizadas para
testar a validade de sentenças
• Exemplo:((P H) H) P
TFTTTTTTFTTFTTFTFFFF
((P H) H) P((P H) H)P HHP
Page49
Tabela Verdade• Para cada linha, calcula-se o valor verdade da
sentença completa– Se a sentença é verdadeira em cada linha,
então a sentença é válida
• Se uma máquina tem algumas premissas e uma possível conclusão, então ela pode determinar se a conclusão é válida– Basta construir uma tabela verdade para a
sentença
Premissas Conclusões
Page50
Complexidade da Lógica Proposicional
• O método de inferência baseado na tabela verdade é completo– É possível enumerar todas as 2n linhas de
uma proposição envolvendo n variáveis
• Cook (1971) desenvolveu a teoria da completude, onde mostra que o problema de satisfazer um conjunto de sentenças é NP-Completo e, portanto, improvável de se obter um algoritmo de tempo polinomial
Page51
Complexidade da Lógica Proposicional
• Há uma classe de sentenças para as quais se conhece um algoritmo de tempo polinomial.– Essa classe é dita classe de Horn
• Uma sentença tipo Horn tem a formaP1 P2 ... Pn Q
Page52
O Mundo de Wumpus
Wumpus
Agente
Mau cheiro
Vento
Buraco
Prêmio
Page53
Um agente para o mundo de Wumpus
• A cada passo, os valores dos sensores são convertidos em sentenças e adicionados à base de dados, juntamente com sentenças derivadas– V: vento– M: mau cheiro– W: Wumpus
Page54
Configuração Inicial
Ok
4,4
4,3
4,2
4,1
3,4
3,3
3,2
3,1
2,4
2,3
2,2
2,1
1,4
1,3
1,2
1,1
A: agenteOK: célula okV: ventoP: buracoVi: visitadaM: mau cheiroW: Wumpus
Ok
OkA
V
OK
P!
M
Vi Vi
Vi
Page55
Base de Conhecimento
• Base de conhecimento inicialM1,1 V1,1
M2,1 V2,1
M1,2 V1,2
Page56
Base de Conhecimento
• O agente também precisa de conhecimento sobre o ambiente.
• O agente sabe que se uma célula não tem cheiro ruim, então o Wumpus não está na vizinhança
R1: M1,1 W1,1 W1,2 W2,1
R2: M2,1 W1,1 W2,1 W2,2 W3,1
R3: M1,2 W1,1 W1,2 W2,2 W1,3
Page57
Outros fatos• Se há mau cheiro em [1,2], então o Wumpus
deve estar em [1,2] ou em uma célula adjacente
R4: M1,2 W1,3 W1,2 W2,2 W1,1
• O objetivo do agente é encontrar o Wumpus
Page58
Encontrando o Wumpus• Dadas as sentenças acima, o agente pode
concluir W1,3 (Wumpus está na célula [1,3])• Basta o agente construir a tabela verdade para
a sentençaKB |= W1,3
• Qual seria a dificuldade?
Page59
Encontrando o Wumpus• Existem doze símbolos proposicionais,
portanto a tabela verdade teria 212 = 4096 linhas– Teríamos de verificar se em cada linha em
que KB é verdadeira se W1,3 também é verdadeiro
Page60
Inferência através das regras• Em vez de utilizar a tabela verdade, vamos
utilizar regras de inferência para se concluir W1,3
• A partir de M1,1 e R1, R1: M1,1 W1,1 W1,2 W2,1,
obtemos:W1,1 W1,2 W2,1
1. Assim obtemosW1,1 W1,2 W2,1
Page61
Inferência através das regras• A partir de M2,1 e R2,
R2: M2,1 W1,1 W2,1 W2,2 W3,1,obtemos:W2,1
W2,2
W3,1
• A partir de M1,2 e R4, R4: M1,2 W1,3 W1,2 W2,2 W1,1, obtemos: W1,3 W1,2 W2,2 W1,1
Page62
Inferência através das regras1. Aplicando resolução nas proposições abaixo
W1,3 W1,2 W2,2 W1,1
W1,1 obtemos:
W1,3 W1,2 W2,2
2. Aplicando resolução nas proposições abaixo W1,3 W1,2 W2,2
W2,2 obtemos:
W1,3 W1,2
Page63
Inferência através das regras1. Finalmente, aplicando resolução em
W1,3 W1,2
W1,2 obtemos:
W1,3
Page64
Transformando conhecimento em ação
• Conhecimento é útil apenas se ele ajuda o agente a tomar ações. – Para que isto seja feito, vamos necessitar de
regras adicionais que relacionam o estado corrente do mundo para ações a serem tomadas
• Exemplo:– Se o Wumpus está na célula à frente, então é
uma má idéia avançar nesta direção– Podemos expressar isto com uma série de
regras, uma para cada localização e orientaçãoA1,1 EastA W2,1 Forward
Page65
Transformando conhecimento em ação
• Uma vez que tenhamos regras, tais como a regra acima, precisamos perguntar à base de dados que ação deve ser tomada.– A Lógica Proposicional não é poderosa o
suficiente para expressar a questão: “Que ação devo tomar?”
Page66
Transformando conhecimento em ação
• Todavia, Lógica Proposicional pode responder questões como:– “Devo avançar?”– “Devo girar para à direita?”
Page67
Problemas com o agente proposicional
• Lógica proposicional é tão fraca que ela não consegue tratar um domínio tão simples, quanto o mundo de Wumpus– O problema é que existe um número
excessivo de proposições– A regra simples “não vá para frente se o
Wumpus está na sua frente” é expressa em lógica proposicional por meio de 64 sentenças (16 células x 4 orientações)
Page68
Problemas com o agente proposicional
• Outro problema é lidar com a dinâmica– Quando um agente faz o primeiro
movimento, a proposição A1,1 se torna falsa e A2,1 se torna verdadeira
– Pode ser útil para o agente se lembrar que ele já esteve na célula [1,1]
Page69
Problemas com o agente proposicional
• Para evitar confusão, vamos necessitar de diferentes símbolos proposicionais para a localização do agente a cada passo
• Dificuldades:– Precisamos saber o número de passos do
jogo– Precisamos escrever versões de regras
dependentes do tempoA1,1
t Eastt W2,1t Forwardt
• Em lógica de primeira ordem, as 6400 regras são reduzidas a uma única regra
Page70
Referências• Stuart Russel and Peter Norvig, Artificial
Intelligence: A Modern Approach, Prentice Hall, 1995.
Page71
Fim• Obrigado pela presença!