Raciocínio
Viviane Torres da Silva
[email protected]
http://www.ic.uff.br/~viviane.silva/isma
Raciocínio

Racionalização é o processo cognitivo de ver a razão para uma
determinada crença, conclusão ou ação

Existem dois tipos de raciocínio:
– Raciocínio dedutivo
– Raciocínio indutivo

Algoritmos utilizados
– Encadeamento para traz (Backward channing)
– Encadeamento para frente (Forward channing)
– Lógica nebulosa
Raciocínio Dedutivo

O raciocínio dedutivo se baseia na análise de premissas, i.e.,
nas razões para chegar a conclusão

Se as premissas forem verdadeiras, a conclusão será verdadeira

Exemplo:
– Premissa 1: Todos os seres humanos são mortais
– Premissa 2: João é um ser humano
– Conclusão: João é mortal

Varias lógicas formais foram propostas para descrever o
raciocínio dedutivo:
– Lógica modal, lógica proposicional, lógica de predicados, …
Raciocínio Indutivo
I/II

A verdade das premissas não garante a verdade da conclusão

A conclusão de um argumento indutivo descreve a
probabilidade da conclusão ser verdadeira

Normalmente se utiliza quando é difícil ou impossível
conhecer todos os fatos para chegar a conclusão
Raciocínio Indutivo

II/II
Exemplo:
– Premissa: O sol nasceu no oriente todas as manhãs até hoje
– Conclusão: O sol nascerá no oriente amanhã
– Premissa: Todas as pessoas que vi nesta cidade são baixas
– Conclusão: Todas as pessoas desta cidade são baixas
Forward channing e
Backward channing
Regras If…Then

Uso de regras if…then para fazer a representação do
conhecimento em aplicações de Inteligência Artificial

Dois exemplos de algoritmos que se baseiam em regras
if…then:
– Forward chaining
– Backward chaining

Forward channing: utilizado para produzir novos fatos

Backward channing: verifica se a conclusão é verdadeira ou
falsa
Forward channing I/V

O encadeamento começa com o conjunto de dados disponíveis
para alcançar a conclusão

Utiliza regras de inferência para extrair novos dados até
alcançar a conclusão

Uma máquina de inferência que utiliza forward channing busca
no conjunto de regras de inferência uma onde a condição no IF
seja verdadeira

Quando encontra, a regra é executada e a informação no THEN
passa a ser verdade, i.e., o novo dado entra no conjunto de
dados da máquina
Forward channing II/V

São três os elementos básicos:
– A base de regras e os fatos
– A memória de trabalho para guardar os dados durante a inferência
– A máquina de inferência que executa as regras
Exemplo:
Regra 1: IF num_rodas < 4
THEN veículo=bicicleta
Regra 2: IF num_rodas >= 4 and motor=sim
THEN veículo=veículo_motorizado
Regra 3: IF veículo=veículo_motorizado and tamanho=grande
THEN veículo=ônibus

Forward channing III/V

Fatos iniciais na base de dados:
– Num_rodas=4, motor=sim, tamanho=grande
Regra 1: IF num_rodas < 4
THEN veículo=bicicleta
FALSO
Regra 2: IF num_rodas >= 4 and motor=sim
THEN veículo=veículo_motorizado
VERDADEIRO
INCLUSÃO NA
MEMÓRIA
Regra 3: IF veículo=veículo_motorizado and tamanho=grande
VERDADEIRO
THEN veículo=ônibus
INCLUSÃO NA
MEMÓRIA
Forward channing IV/V

Fatos finais na base:
– Num_rodas=4
– motor=sim
– tamanho=grande
– veículo=veículo_motorizado
– veículo=ônibus
Ciclo do Forward channing V/V
1.
Colocar as regras na máquina de inferência e colocar todos os
dados na base da fatos na memória
2.
Verificar se as condições para executar as regras estão na
memória. O conjunto de regras que tem as condições na
memória chamamos conjunto de conflitos
3.
Utilizar um algoritmo para selecionar uma regra do conjunto
4.
Atualizar a memória com os fatos criados pela nova regra
5.
Repetir os passos 2, 3 e 4 até que não existam mais regras no
conjunto
Backward channing I/IV

A conseqüência ou conclusão é avaliada primeiro

Utiliza as regras para responder perguntas que verificam se a
conseqüência é verdadeira ou falsa

Somente as regras que são relevantes à pergunta são
executadas
Exemplo: Backward channing II/IV

Vamos supor que queremos saber se o veículo que temos é um
ônibus

Começamos com a memória vazia

Testamos a regra que verifica se o veículo é um ônibus
Regra 3: IF transporte=veículo_motorizado and tamanho=grande
THEN veículo=ônibus
 Para que o veículo seja um ônibus é necessário que as
condições na regra 3 sejam verdadeiras
Exemplo: Backward channing III/IV

A condição veículo=veículo_motorizado está relacionada a
regra 2, então …

Para que as condições na regra 3 sejam verdades, é necessário
que as condições na regra 2 sejam verdade
Regra 2: IF num_rodas >= 4 and motor=sim
THEN veículo=veículo_motorizado

Verifico se a informação num_rodas >= 4 e motor=sim, e
tamanho=grande estão na memória. Se não estão, então
perguntar ao usuário se seu veículo tem estas propriedades
Ciclo do Backward channing IV/IV
1.
Colocar as regras na máquina de inferência e colocar todos os
fatos da base de fatos na memória
2.
Especificar a conclusão que deve ser confirmada
3.
Encontrar o conjunto de regras que tenha a conclusão no
termo THEN
4.
Pegar uma regra do conjunto de regras
5.
Tentar verificar se a regra é verdadeira verificando todos os
antecedentes
6.
Repetir os passos 3, 4 e 5 até que não tenha mais regras que
executar. Perguntar ao usuário se necessário
Lógica Nebulosa (Fuzzy Logic)
Lógica Clássica

Uma declaração é verdadeira ou falsa

Uma declaração não pode ser ao mesmo tempo parcialmente
verdadeira ou parcialmente falsa

A e ¬ A formam todas as possibilidades para A

Lógica difusa ou nebulosa viola estas premissas
Lógica Nebulosa

Algo pode e deve coexistir com seu oposto

A experiência humana não pode ser classificada sempre como
verdadeira ou falsa

O sim ou o não podem ser respostas incompleta
– Alguém pode ter dúvida sobre a resposta

Conjunto da lógica clássica:
– O elemento pertence ou não ao conjunto

Conjunto nebuloso:
– A certeza com a que um elemento pertence ao conjunto varia entre [0,1]
frío
agradável
quente
Raciocínio na Lógica Nebulosa
1.
Transformação das variáveis do problema em valores
nebulosos
2.
Aplicação dos operadores nebulosos
3.
Aplicação da implicação
4.
Combinação entre todas as saídas nebulosas possíveis
5.
Transformação de resultado nebuloso em resultado nítido
Raciocínio com Normas
Objetivo

(Parte I)
Como um agente sabe o conjunto das normas aplicado a ele?
– Normas que estão ativas e que necessitam ser seguidas

Como um agente sabe que outros agentes violaram normas?
– Normas violadas por outros agentes podem influenciar o
comportamento de outro agente

Implementar um mecanismo que pode, de acordo com o
conjunto de ações, dizer para os agentes quais são as normas
ativas e as violadas
Implementando Normas com JESS

Jess é um sistema baseado em regras que mantém uma coleção
de fatos na sua base de conhecimento

Fatos são incluídos na base de fatos e regras são ativadas de
acordo com os novos fatos

Regras: LHS => RHS
– LHS (left-hand side): lado esquerdo da regra
• Fatos que foram incluídos na base
– RHS (right-hand side): lado direito da regra
• Fatos que serão incluídos na base
Implementando Normas com JESS

Fatos:
– As ações executadas pelos agentes
– Os objetos no ambiente
– A informação sobre as normas: cumprida, ativa, inativa, e violada
– A informação sobre as punições e os prêmios

Regras:
– Ativar e desativar uma norma
– Informar sobre o cumprimento e a violação de uma norma
– Informar sobre as punições e os prêmios de um agente
Normas x Regras em Jess

Cada norma normalmente está associada a 4 regras em Jess
Regra 1: Ativa a norma de acordo com as condições de ativação
Regra 2: Desativa a norma de acordo com as condições de
desativação
Regra 3: Informa sobre o cumprimento da norma e os prêmios se
a norma foi cumprida
Regra 4: Informa sobre a violação da norma e as punições se a
norma foi violada
Tipos de Normas

Obrigação, permissão ou proibição simples

Obrigação, permissão ou proibição que deve ocorrer antes de
um fato (ou se um fato ocorre)

Obrigação, permissão ou proibição que deve ocorrer depois de
um fato (e se um fato ocorre)

Obrigação, permissão ou proibição que deve ocorrer se um fato
ocorre

Obrigação, permissão ou proibição que deve ocorrer entre dois
fatos (e se um fato ocorre)
Obrigação, permissão ou proibição simples

Obrigação, permissão ou proibição para executar uma ação X

Regra 2 (desativar norma) não pode ser implementada

Proibição
(i) Ativa a proibição
(iii) -- Não é possível informar sobre o cumprimento e dar prêmios ao
agente pois esta norma está sempre ativa
(iv) Informar sobre a violação e a punição se a ação X foi executada

Obrigação
(i) Ativa a obrigação
(iii) Informa sobre o cumprimento e o prêmio se a ação X foi executada
(iv) -- Não é possível verificar a violação pois a qualquer momento o
agente pode executar a obrigação
Obrigação, permissão ou proibição simples

Permissão
(i) Ativa a permissão
(iii) -- Não faz sentido informar sobre o cumprimento e sobre o prêmio
(iv) -- Não existe violação pois a qualquer momento o agente pode
executar a ação
Exemplo: Proibição simples

O jogador de futebol não pode pegar a bola com a mão
Punição: O árbitro informa sobre o pênalti

Proibição: regras
(i)
Ativa a proibição
-- (norma nunca é desativada)
-- Não é possível informar sobre o cumprimento e dar prêmios ao agente
pois esta norma está sempre ativa

(ii)
(iii)
;(rule i)
(defrule handleBall_rule_i
=>
(assert (FORBIDDEN-non-dialogical-action-plan …
(status ACTIVATED))))
Exemplo: Proibição simples
(iv)
Informar sobre a violação e a punição se a ação X foi executada
;(rule iv)
(defrule handleBall_rule_iv
?forbidden <- (FORBIDDEN-non-dialogical-action-plan …)
?factViolatingNorm <- (non-dialogical-action-plan
(plan play) (action handleBall)... )
=>
(if (= (fact-slot-value ?factViolatingNorm role)
(fact-slot-value ?forbidden role)) then
(assert (NormStatus_per_Agent
(agent (fact-slot-value ?factViolatingNorm entity))
(norm (fact-id ?forbidden))(status VIOLATED)
(reason (fact-id ?factViolatingNorm))))
(assert (PUNISHMENT …))
)
Obrigação, permissão ou proibição que deve ocorrer antes de um
fato Y

Obrigação para executar a ação X antes de um fato Y

Obrigação
(i) Ativar a obrigação
(ii) Desativar a obrigação se a obrigação está ativa e Y é incluído na base
de fatos
(iii) Informar sobre o cumprimento e o premio se a ação X é executada e a
obrigação está ativa
(iv) Informar sobre a violação e a punição se a obrigação está desativada e
a ação X não foi executada
Problema
Solução: Verificar se existe uma informação de cumprimento da norma
Obrigação, permissão ou proibição que deve ocorrer antes de um
fato Y

Permissão para executar a ação X antes de um fato Y

Permissão
(i) Ativar a permissão
(ii) Desativar a permissão se a permissão está ativa e Y é incluído na base
de fatos
(iii) --(iv) Informar sobre a violação e a punição da permissão se a ação X foi
executada depois de Y
Obrigação, permissão ou proibição que deve ocorrer antes de um
fato Y

Proibição para executar a ação X antes de um fato Y

Proibição
(i) Ativar a proibição
(ii) Desativar a proibição se a proibição está ativa e Y é incluído na base
de fatos
(iii) Informar sobre o cumprimento e o prêmio se a norma é desativada e a
ação X não foi executada
Problema
(iv) Informar sobre a violação e a punição se a proibição está ativada e a
ação X é executada
Solução: Verificar se existe uma informação sobre violação da norma
Exemplo: Obrigação que deve ocorrer antes de um fato Y


O juiz tem que verificar o equipamento dos jogadores antes
de começar a partida
Obrigação
(i) Ativar a obrigação
;(rule i)
(defrule checkEquipment_rule_i
=>
(assert (OBLIGED-non-dialogical-action-plan ...
(status ACTIVATED))))
Exemplo: Obrigação que deve ocorrer antes de um fato Y


O juiz tem que verificar o equipamento dos jogadores antes
de começar a partida
Obrigação
(ii) Desativar a obrigação se a obrigação está ativa e Y está na base de
fatos
;(rule ii)
(defrule checkEquipment_rule_ii
?obliged <- (OBLIGED-non-dialogical-action-plan ...
(status ACTIVATED))
?factDeactivatingNorm <- (dialogical-action (scene game)
(state si)(content gameStart)...)
=>
(modify ?obliged (status DEACTIVATED))
)
Exemplo: Obrigação que deve ocorrer antes de um fato Y


O juiz tem que verificar o equipamento dos jogadores antes
de começar a partida
Obrigação
(iii) Informar sobre o cumprimento e o prêmio se a ação X é executada e a
obrigação está ativa
;(rule iii)
(defrule checkEquipment_rule_iii
?obliged <- (OBLIGED-non-dialogical-action-plan ... (status ACTIVATED))
?factFulfillingNorm <- (non-dialogical-action-plan
(plan managingGame) (action checkEquipment) ...)
=>
(if (= (fact-slot-value ?factFulfillingNorm entity)
(fact-slot-value ?obliged entity)) then
(assert (NormStatus_per_Agent
(norm (fact-id ?obliged))
(agent (fact-slot-value ?factFulfillingNorm entity))
(status FULFILLED) (reason (fact-id ?factFulfillingNorm))))
(assert (REWARD ...))) )
Exemplo: Obrigação que deve ocorrer antes de um fato Y


O juiz tem que verificar o equipamento dos jogadores antes
de começar a partida
Obrigação
(iv) Informar sobre a violação e a punição se a obrigação está desativada e
a ação X não foi executada
;(rule iv)
(defrule checkEquipment_rule_iv
?obliged <- (OBLIGED-non-dialogical-action-plan ...
(status DESACTIVATED))
=>
(bind ?result (assert (NormStatus_per_Agent
(agent (fact-slot-value ?agent agents))
(norm ?obliged) (status FULFILLMENT))))
(try
(= false ?result) ; the agent has fulfilled the norm
catch
(modify ?result (status VIOLATED))
(assert (PUNISHMENT ...)) )
Raciocínio sobre normas (Parte II)

I/V
Agentes que executam em um sistema normativo necessitam
raciocinar sobre as normas do sistema. Por exemplo:
– Perceber se a norma foi violada ou foi cumprida
– Detectar os conflitos e solucionar os mesmos
– Poder escolher as normas que desejam cumprir e as que desejam violar
– ....

Conclusão: o processo de raciocínio de um agente normativo é
mais complexo que o raciocínio de um agente não normativo

Existem várias abordagens que implementam agentes
normativos BDI (Belief, Desires, Intention)
– Elas estendem a arquitetura BDI para poder implementar o raciocínio
com normas.
Raciocínio sobre normas

II/V
Arquitetura BDI (Belief, Desire, Intention)
Raciocínio sobre normas: alguns trabalhos no tema III/V
BOID architecture [10]
 Considera a influência de obrigações, crenças, intenções e dos
objetivos atuais na geração dos novos objetivos
 A influência ocorre de acordo com o tipo do agente.
– Realista: as crenças são mais valorizadas que os outros itens
– Egoísta: desejos são mais valorizados que as obrigações
– Social: obrigações mais valorizadas que os desejos
NBDI (Norm-Belief-Desire-Intention) architecture [11]
 Verifica se o agente é o responsável por cumprir com a norma
 Percebe que a norma foi ativada ou desativada
 Permite escolher as normas que vai cumprir ou violar
 Permite escolher os objetivos com base na normas
Raciocínio sobre normas: alguns trabalhos no tema
IV/V
ANA architecture [12]
 Verificar se o agente é o responsável por cumprir com a norma
 Perceber que a norma foi ativada ou desativada
 Perceber que a norma foi violada ou foi cumprida
 Detectar os conflitos e solucionar os mesmos
 Poder escolher as normas que desejam cumprir e as que
desejam violar
 Escolher seus objetivos com base na normas que desejam
cumprir e violar
 Escolher os planos a serem executados com base nas normas
que desejam cumprir e violar
Raciocínio sobre normas: alguns trabalhos no tema V/V
ANA architecture [12]
Download

Raciocínio