Você está na página 1de 55

CIC 316024 Introdução à Inteligência Artificial

Turma A, 01/2022

PPGInf - CIC/UnB
Prof. Li Weigang
weigang@unb.br
Lógica proposicional

• Material:
• Agentes inteligentes
• Capítulo 6 – Russell & Norvig
• Seções 6.1, 6.2 e 6.3
• Contato:
weigang@unb.br
weigangbr@gmail.com
• Página web:
https://cic.unb.br/~weigang/

Introdução à Inteligência Artificial  – IIA, 2020


Lógica proposicional

Introdução à Inteligência Artificial  – IIA, 2020


Sumário
• Preâmbulo – O Mundo do Wumpus
• Agentes baseados em conhecimento
• Lógica como representação do conhecimento
• Lógica proposicional
• Agente baseado em lógica proposicional para o Mundo do
Wumpus
Bengio in AAAI 2020: Logical Reasoning –
system 2

https://proceedings.neurips.cc/
paper/2019/file/
9c19a2aa1d84e04b0bd4bc888792bd
1e-Paper.pdf
Bridging Machine Learning and Logical
Reasoning by Abductive Learning, NeurIPS 2019

https://www.jiqizhixin.com/
articles/2020-10-12-4
Preâmbulo
• O mundo do Wumpus

Wumpus

Agente caçador
de tesouros
Preâmbulo
• O mundo do Wumpus
• Formulação do problema
• Ambiente:
• agente, Wumpus, cavernas, buracos, ouro
• Estado inicial:
• agente na caverna (1,1) com apenas uma flecha
• Wumpus e buracos em cavernas quaisquer
• Objetivos:
• pegar a barra de ouro e voltar à caverna (1,1) com vida
• Percepções:
• fedor, brisa, luz, choque (contra a parede da caverna) e grito do Wumpus
Preâmbulo
• O mundo do Wumpus
• Formulação do problema
• Ações:
• avançar para próxima caverna
• girar 90 graus à direita ou à esquerda
• pegar um objeto na mesma caverna que o agente
• atirar na direção para onde o agente está olhando (a flecha pára quando encontra uma
parede ou mata o Wumpus)
• sair da caverna
Preâmbulo
• O mundo do Wumpus
• Conhecimento do agente
• no início do jogo, depois de receber sua primeira percepção
• depois do 1º movimento, com a seqüência de percepções
[nada, brisa, nada, nada, nada]

Fedor Grito do Wumpus

Brisa Choque
Luz (contra a parede da caverna)
Preâmbulo
• O mundo do Wumpus
• Conhecimento do agente
4 B?
[f b l - -]
3 W! A B?
 ok
2 [f - - - -] [- - - - -]
A B?
A
 ok  ok ok
[- - -l - -] [- b - - -]
1
A A B?
B!
 ok  ok

1 2 3 4
Preâmbulo
• O mundo do Wumpus
• Vamos achar o ouro?
4 B!

3 O

2
B!
B? W!

1
A

1 2 3 4
Preâmbulo - O mundo do Wumpus
• Tipo de ambiente?
Preâmbulo
• Agentes baseados em busca (guiados por objetivo) ...
• ... são eficientes na solução de problemas que podem ser formalizados por (i)
um estado inicial, (ii) ações (operadores) e (iii) um conjunto de estados finais
• Porém, não resolvem problemas que exigem raciocínio baseado em
conhecimento sobre o mundo
Exemplo: diagnóstico médico, provador de teoremas, sistemas especialistas em geral,... mesmo
o Wumpus
Esses problemas não podem ser modelados por um espaço de estados
Agentes baseados em conhecimento
• Agentes baseados em conhecimento ...
• ... são agentes que ...
• ... conhecem seu mundo
• ... raciocinam sobre suas possíveis ações
• ... e sabem ...
• ... o estado atual do mundo (propriedades relevantes)
• ... como o mundo evolui
• ... como identificar estados desejáveis do mundo
• ... como avaliar o resultado das ações
• ... conhecimento sobre conhecimento (meta-conhecimento)
• ...
Agentes baseados em conhecimento
• Principais componentes
• Base de Conhecimento
• Conjunto de representações de fatos sobre o mundo
• Cada representação é chamada de uma sentença
• Sentenças são expressas em uma Linguagem de Representação de Conhecimento
• Conhecimento em forma “tratável” pelo computador
• Mecanismo de Inferência
• Determina o que se pode inferir a partir dos fatos na Base de Conhecimento
Agentes baseados em conhecimento
• Arquitetura
Agente
sensores
Tell
ambiente
Base de Conhecimento
Máquina de Inferência
Mecanismo de Aprendizagem

Ask Tell
efetuadores

Tell - adiciona novas sentenças à BC


Ask - consulta a BC
Agentes baseados em conhecimento
• Algoritmo
função Agente-BC(percepção) retorna uma ação
t := 0 //contador de tempo
Tell(BC, Percepções-Sentença(percepção,t))
ação <- Ask(BC, Pergunta-Ação(t))
Tell(BC, Ação-Sentença(ação,t))
t <- t + 1
retorna ação
Agentes baseados em conhecimento
• Níveis de conhecimento e etapas de desenvolvimento
• Nível do conhecimento: aquisição de conhecimento
• Conhecimento em “estado puro”
Exemplo: táxi automático - a ponte Princesa Isabel liga a Rua da Imperatriz à Rua Nova
• Nível lógico: formalização
• Conhecimento codificado em sentenças
Exemplo: sentença lógica: Liga(Ponte-Princesa-Isabel,R-Imperatriz,R-Nova)
• Nível de máquina: implementação
• Estrutura de dados representando as sentenças do nível lógico
Exemplo: listas, tabelas, etc.
Agentes baseados em conhecimento
• Uma linguagem de representação do conhecimento é definida por ...
• ... uma sintaxe, que descreve as configurações que podem constituir
sentenças daquela linguagem
• ... uma semântica, que liga cada sentença aos fatos no mundo que ela
representa
• Cada sentença faz uma afirmação a respeito do mundo
• O agente acredita nas sentenças que correspondem a sua configuração interna
• ... mecanismos de inferência, conjunto de regras para gerar novas implicações
à partir um conjunto de expressões
Agentes baseados em conhecimento
• Representação, raciocínio e Lógica
• Raciocínio é um processo de construção de novas sentenças a partir de
sentenças existentes
• Raciocínio plausível (sound) ...
• ... garante que as novas sentenças representam fatos que se seguem dos fatos
representados pelas sentenças existentes na BC
• ... implementa a relação de “implicação” entre sentenças

segue-se
fatos fatos
Mundo
semântica

semântica
Representação implica
sentenças sentenças
Agentes baseados em conhecimento
• Tipos de raciocínio
• Dedução: fatos + regras de inferência  novos fatos
Exemplo: Em todo lugar que há fogo, há fumaça. Aqui tem fogo, logo...
Premissa 1: Você precisa trazer um guarda-chuva quando chove (admitimos por padrão)
Premissa 2: Vai chover amanhã
Conclusão: Traga um guarda-chuva amanhã

Premissa maior: Todos morrem


Premissa menor: Sócrates é um homem
Conclusão: Sócrates vai morrer
• Abdução: inverso da dedução
Exemplo: Se há fumaça, há fogo
Agentes baseados em conhecimento
• Tipos de raciocínio
• Indução: parte-se dos fatos para gerar regras
Exemplo: Se a Sheila morena não canta bem, Sheila loira não canta bem... então nenhuma dançarina canta bem
Premissa: A está morto, B está morto, C está morto, D está morto...
Conclusão: As pessoas são sempre mortais.

• Analogia: casos + regras de adaptação


Exemplo: Para construir este hospital, vou me basear no projeto daquele outro
Dedução e Indução:
• ponto de partida do pensamento é diferente: o raciocínio indutivo é o processo cognitivo do particular para o
geral; o raciocínio dedutivo é o processo cognitivo do geral para o específico.
• A precisão é diferente: a conclusão do raciocínio indutivo excede o alcance determinado pela premissa, e sua
conclusão pode não ser garantida como completamente correta; enquanto a conclusão do raciocínio dedutivo
não excede o alcance determinado pela premissa, um raciocínio dedutivo como a premissa é verdadeira e a
forma de inferência está correta, então , a conclusão deve ser verdadeira.
Agentes baseados em conhecimento
• Categorias de conhecimento
• Declarativo
• Representação descritiva dos fatos
• É o que está na base de conhecimento!
• Procedimental
• Inclui seqüências de instruções, podendo indicar como usar o conhecimento declarativo
e como fazer inferência
• Meta-conhecimento
• Conhecimento sobre o conhecimento disponível (Como operar um sistema baseado em
conhecimento e qual sua capacidade de raciocínio?)
Agentes baseados em conhecimento
• Linguagens representação de conhecimento
• Linguagens de programação ...
• ... são precisas, porém não são suficientemente expressivas
• Linguagens naturais ...
• ... são muito expressivas, porém são ambíguas
• Linguagens de representação de conhecimento (KRL) ...
• ... estão entre as as anteriores
• ... tem 3 grandes classes:
• Linguagens declarativas
• Linguagens procedimentais
• Linguagens híbridas
Agentes baseados em conhecimento
• Linguagens representação de conhecimento
• Linguagens declarativas
• Nível do conhecimento: conceitos (objetos) e regras
• Nível de formalização
• Linguagens Lógicas
• Lógica proposicional, de predicados, temporal, lógicas simplificadas para programação
em lógica, regras de produção, etc.
• Linguagens Baseadas em Objetos
• Redes demânticas, frames, scripts, linguagens de classes, linguagens de atores, etc.
• Linguagens híbridas
• Lógicas descritivas, etc.
• Nível de implementação: sistemas de programação em lógica, provadores de teoremas,
sistemas de produção, etc.
Agentes baseados em conhecimento
• Principais critérios de avaliação de uma KRL
• Expressividade: o que é possível dizer na linguagem?
• Inferência disponível: que tipo de inferência é possível fazer na linguagem?
• Corretude: a inferência é plausível (sound)? A semântica é bem definida?
• Eficiência: a inferência se realiza em um tempo razoável?
• Modularidade: é fácil identificar e reutilizar partes do conhecimento?
• Legibilidade: é fácil de ler e entender o que está escrito?
• Eficiência aquisicional: é fácil adicionar conhecimento?
Lógica como representação de conhecimento
• Semântica
• Uma sentença lógica não significa nada por si só...
• É necessário estabelecer a correspondência entre fatos e sentenças, fixando
seu significado através de uma interpretação da sentença
Exemplo: “O Papa já está no Rio” pode ser uma mensagem secreta trocada entre dois agentes
do FBI que significa que os documentos sobre as armas atômicas da Rússia (o Papa) foram
entregues ao Pentágono (o Rio) a salvo (já está)
Lógica como representação de conhecimento
• Satisfatibilidade
• Uma sentença é válida (tautologia) se ela é verdade sob todas as possíveis
interpretações em todos os mundos possíveis.
Exemplo: “Existe um buraco em (1,2), ou não existe um buraco em (1,2)” é sempre verdade,
independente da interpretação e do valor-verdade de “existe um buraco em (1,2)” em
qualquer mundo possível
• Uma sentença é (in)satisfatível sse (não) existe alguma interpretação em
algum mundo sob a qual ela é verdade
Exemplo: sentenças contraditórias são insatisfatíveis quando a contradição não depende da
interpretação dos símbolos:
“existe um buraco em (1,2), e não existe um buraco em (1,2)”
Lógica como representação de conhecimento
• Raciocínio lógico
• Computadores têm conhecimento limitado sobre o mundo
• Não sabem que interpretação foi dada às sentenças na BC
• Não sabem nada sobre o mundo, apenas o que existe na BC
• Então, como responder à pergunta “Está OK mover o agente para (2,2)?”
• Para verificar se a sentença “(2,2) está OK” é implicada a partir da BC, o
procedimento de inferência deve mostrar que a sentença “Se a BC é verdade,
então (2,2) está OK” é válida
Lógica como representação de conhecimento
• Raciocínio lógico
• O computador não necessita saber qual a interpretação utilizada, nem qual o
estado atual do mundo: basta testar a validade da sentença
• Dada uma BC, o processo pode gerar novas sentenças implicadas pela BC
(encadeamento para frente)
• Dada uma BC e uma sentença, o processo pode determinar se ela pode ser
implicada (derivada) ou não a partir da BC (encadeamento para trás)
• A inferência pode ter várias propriedades: corretude, completude,
composicionalidade, monotonicidade, localidade, eficiência, etc.
Lógica como representação de conhecimento
• Raciocínio lógico
• O computador não necessita saber qual a interpretação utilizada, nem qual o
estado atual do mundo: basta testar a validade da sentença
• Dada uma BC, o processo pode gerar novas sentenças implicadas pela BC
(encadeamento para frente)
• Dada uma BC e uma sentença, o processo pode determinar se ela pode ser
implicada (derivada) ou não a partir da BC (encadeamento para trás)
Lógica como representação de conhecimento
• Raciocínio lógico
• A inferência pode ter várias propriedades:
• Corretude (sound): gera todas as sentenças corretas
• Completude: gera apenas sentenças válidas
• Composicionalidade: o significado de uma sentença é uma função do significado de suas
partes
• B(1,2) = existe um buraco na caverna (1,2)
• B(2,3) = existe um buraco na caverna (2,3)
• B(1,2) e B(2,3) = existem buracos nas cavernas (1,2) e (2,3)
Lógica como representação de conhecimento
• Raciocínio lógico
• A inferência pode ter várias propriedades:
• Monotonicidade: Uma Lógica é dita monotônica quando
• Tudo que era verdade continua sendo depois de uma inferência
• se BC1 |= a então (BC1  BC2) |= a
• todas as sentenças implicadas pela BC original são ainda implicadas pela BC aumentada pelas
novas sentenças inferidas
Exemplo: Lógicas Proposicional e de 1ª Ordem
Contra-exemplo: Teoria da Probabilidade
Lógica como representação de conhecimento
• Raciocínio lógico
• A inferência pode ter várias propriedades:
• Localidade:
• Regras como Modus Ponens são ditas locais porque sua premissa só necessita ser comparada
com uma pequena porção da BC (2 sentenças)
• Localidade só é possível devido à monotonicidade, uma vez que esta garante que o resto da
BC não vai afetar a corretude da inferência
• ...
Obs.: Localidade e composicionalidade são centrais na construção de sistemas por possibilitar
modularidade
Lógica proposicional
• Sintaxe
• Símbolos
• Constantes lógicas Verdade e Falso
• Símbolos proposicionais tais como P e Q
• Conectivos lógicos Ø Ù Ú Þ Û
• Parênteses ( )
• Sentenças
• <Sentença> ® <SentençaAtômica> | <SentençaComplexa>
• <SentençaAtômica> ® Verdade | Falso | P | Q | ...
• <SentençaComplexa> ® <Sentença>
| <Sentença> <Conectivo> <Sentença>
| Ø<Sentença>
• <Conectivo> ® Ø | Ù | Ú | Þ | Û
Lógica proposicional
• Semântica
• Especifica, através de Tabelas-Verdade,...
• ... a interpretação dos símbolos e das constantes proposicionais
• ... o significado dos conectivos lógicos
• É composicional
Exemplo de tabela-verdade:
Lógica proposicional
• Validade
• A validade pode ser verificada de duas maneiras:
• Tabelas-Verdade
• Regras de inferência
Lógica proposicional
• Validade
• Tabelas-Verdade
Exemplo: Validade de ((P  H)  H)  P ?

P H (P  H) ((P  H)   H) ((P  H)   H)  P

F F F F T

F T T F T

T F T T T

T T T F T
Lógica proposicional
• Validade
• Regras de inferência
   ,
• Modus Ponens:

• E-eliminação: 1   2  ...   n
i
• E-introdução:  1 ,  2 ,...,  n
• Ou-introdução:  1   2  ...   n
i
• Eliminação de dupla negação: 1 2  ...n
 
• Resolução unidade: 
   ,
• Resolução:

   ,       ,   

    
Lógica proposicional
• Validade
• Regras de inferência
• Modus Ponens: aluno do CIC eh aluno da UnB, Pedro (Alfa) eh aluno do CIC eh verdade    , 

• então, Pedro eh aluno da UnB (Beta)
1   2  ...   n
• E-eliminação: a1=ana, a2=lucas, a3=Gabriel
i
a1&a2&a3 sao Brasileiros, assim, a1 eh brasileiro, a2 eh brasileiro, a3 eh brasileiro

• Resolução unidade: alfa = team brasileiro; beta eh team argentino. Sabemos alfa OU beta venceu,
   ,
e beta perdeu, alfa ganhou!

Lógica proposicional
• Complexidade
• Checar se um conjunto de sentenças é satisfatível é um problema NP-
completo
• Tabela verdade para uma sentença envolvendo n símbolos tem 2n colunas (exponencial!)
• Cláusulas de Horn
• Classe de sentenças úteis que permitem inferência em tempo polinomial (usada em
Prolog)
P1  P2  P3  ...  Pn  Q
• 2 casos especiais das cláusulas de Horn
• se Q é falso, P1  P2  P3  ...  Pn
• se n = 1 e P1 = verdadeiro, Verdadeiro  Q, que é idêntico a Q, que é um fato simplesmente
Agente baseado em lógica proposicional para o Mundo do
Wumpus
• Base de Conhecimento
• Sentenças representando as percepções do agente
• Sentenças válidas implicadas a partir das sentenças das percepções
• Regras utilizadas para implicar novas sentenças a partir das sentenças
existentes
Agente baseado em lógica proposicional para o Mundo do
Wumpus
• Base de Conhecimento
• Representação
• A(x,y): “o agente está na caverna (x,y)”
• B(x,y): “existe um buraco na caverna (x,y)”
• W(x,y): “o Wumpus está na caverna (x,y)”
• O(x,y): “o ouro está na caverna (x,y)”
• b(x,y): “existe brisa na caverna (x,y)”
• f(x,y): “existe fedor na caverna (x,y)”
• l(x,y): “existe luz na caverna (x,y)”
Agente baseado em lógica proposicional para o Mundo do Wumpus

• Base de Conhecimento
• Com base nas percepções do estado abaixo, a BC deverá conter as seguintes
sentenças:
4

3 W! Ø f(1,1) Ø b(1,1)
2 [f - - - -] Ø f(2,1) b(2,1)
A
ok ok
f(1,2) Ø b(1,2)
[- - l- - -] [- b - - -]
1
B?
B!
 ok  ok

1 2 3 4
Agente baseado em lógica proposicional para o Mundo do
Wumpus
• Base de Conhecimento
• O agente também tem algum conhecimento prévio sobre o
ambiente
Exemplo: se uma caverna não tem fedor, então o Wumpus não está nessa
caverna, nem está em nenhuma caverna adjacente a ela
• O agente terá uma regra para cada caverna no seu ambiente
R1: Øf(1,1) Þ ØW(1,1) Ù ØW(1,2) Ù ØW(2,1)
R2: Øf(2,1) Þ ØW(1,1) Ù ØW(2,1) Ù ØW(2,2) Ù ØW(3,1)
R3: Øf(1,2) Þ ØW(1,1) Ù ØW(1,2) Ù ØW(2,2) Ù ØW(1,3)
• O agente também deve saber que, se existe fedor em (1,2),
então deve haver um Wumpus em (1,2) ou em alguma caverna
adjacente a ela:
R4: f(1,2) Þ W(1,3) Ú W(1,2) Ú W(2,2) Ú W(1,1)
Agente baseado em lógica proposicional para o Mundo do
Wumpus

• Inferência (como encontrar o Wumpus)


• Como provar que o Wumpus está em (1,3)?
• O agente precisa mostrar que BC Þ W(1,3) é uma sentença válida ...
• ... construindo a Tabela-Verdade para a sentença
• Existem 12 símbolos proposicionais na BC, então a Tabela-Verdade terá
12 colunas
• Em cada linha na qual a BC for verdade, W(1,3) também terá que ser
verdade
• ... usando regras de inferência!
Agente baseado em lógica proposicional para o Mundo do
Wumpus
• Inferência (como encontrar o Wumpus)
• Inicialmente, mostrar que o Wumpus não está em nenhuma
   , outra caverna, e então concluir, por eliminação, que ele está em
 (1,3)
1. Modus Ponens em Øf(1,1) = a e R1: ØW(1,1) Ù ØW(1,2) Ù ØW(2,1) = b
1   2  ...   n
2. E-eliminação: ØW(1,1), ØW(1,2), ØW(2,1)
i
3. Modus Ponens em Øf(2,1) e R2, e E-eliminação: ØW(1,1), ØW(2,1) ,
ØW(2,2), ØW(3,1)
4. Modus Ponens em f(1,2) = a e R4: W(1,3) Ú W(1,2) Ú W(2,2) Ú W(1,1)
   , =b

5. Resolução Unidade, onde a é W(1,3) Ú W(1,2) Ú W(2,2) e Øb é ØW(1,1)
(do passo 2, ØW(1,1)): W(1,3) Ú W(1,2) Ú W(2,2)
6. Resolução Unidade, onde a é W(1,3) Ú W(1,2) e b é W(2,2): W(1,3) Ú
W(1,2)
7. Resolução Unidade, onde a é W(1,3) e b é W(1,2): W(1,3)!
Transformando conhecimento em ações
• O conhecimento inferido deve ser usado para auxiliar o agente a
realizar ações
• Definir regras que relacionem o estado atual do mundo às ações
que o agente pode realizar
• Ações:
• avançar para próxima caverna
• girar 90 graus à direita ou à esquerda
• pegar um objeto na mesma caverna que o agente
• atirar na direção para onde o agente está olhando (a flecha para quando
encontra uma parede ou mata o Wumpus)
• sair da caverna
Transformando conhecimento em ações
• Exemplo de Regra:
• O agente está na caverna (1,1) virado para a direita, e
• O Wumpus está na caverna (2,1), então:
A(1,1) Ù Dir Ù W(2,1) Þ Øavançar
• Com essas regras, o agente pode então perguntar à BC que ação
ele deve realizar
• devo avançar?
• devo girar para a esquerda?
• devo atirar?, etc
• Lógica Proposicional ...
• ... é capaz de fazer inferências que resultam em ações
• Contudo, esta lógica é “fraca”, não sendo capaz de lidar com
domínios simples como o Mundo de Wumpus ...
• Agente com Lógica Proposicional
função Agente-BC-Proposicional(percepção) retorna uma ação
Tell(BC, Percepções-Sentença(percepção,t))
para cada ação em lista de possíveis ações faça
se Ask(BC, Pergunta-Ação(t,ação))
então t <- t + 1
retorna ação
• Problemas
• Existem proposições demais a considerar
Exemplo: a regra: “não avance se o Wumpus estiver em frente a você“ só pode
ser representada com um conjunto de 64 regras.
• Serão necessárias milhares de regras para definir um agente eficiente, e o
processo de inferência ficará muito lento
• E para domínios dinâmicos?
• Problemas
• Quando o agente faz seu primeiro movimento, a proposição
A(1,1) torna-se falsa, e A(2,1) torna-se verdadeira
• Não se pode apenas “apagar” A(1,1) porque o agente precisa saber onde
esteve antes
• Solução: usar símbolos diferentes para a localização do agente a cada
tempo t , contudo ...
• ... isso requer regras dependentes do tempo!
• ... a BC tem que ser “reescrita” a cada tempo t
• No entanto, se o agente executar 100 passos, a BC terá 6400 regras
apenas para dizer que ele não deve avançar quando o Wumpus estiver
em frente a ele
Capacitação Inovadora
para o Futuro das Pessoas
e Organizações

Você também pode gostar