raciocínio viviane torres da silva [email protected] viviane.silva/isma

42
Raciocínio Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/isma

Upload: internet

Post on 16-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Raciocínio

Viviane Torres da Silva

[email protected]

http://www.ic.uff.br/~viviane.silva/isma

Page 2: Raciocínio Viviane Torres da Silva viviane.silva@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

Page 3: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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, …

Page 4: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 5: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 6: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Forward channing e Backward channing

Page 7: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 8: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 9: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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=bicicletaRegra 2: IF num_rodas >= 4 and motor=sim THEN veículo=veículo_motorizadoRegra 3: IF veículo=veículo_motorizado and tamanho=grande THEN veículo=ônibus

Page 10: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

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

FALSO

VERDADEIRO

INCLUSÃO NA MEMÓRIA

VERDADEIRO

INCLUSÃO NA MEMÓRIA

Page 11: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Forward channing IV/V

Fatos finais na base:– Num_rodas=4

– motor=sim

– tamanho=grande

– veículo=veículo_motorizado

– veículo=ônibus

Page 12: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 13: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 14: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 15: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 16: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 17: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Lógica Nebulosa (Fuzzy Logic)

Page 18: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 19: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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 quenteagradável

Page 20: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 21: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Raciocínio com Normas

Page 22: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 23: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 24: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 25: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 26: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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)

Page 27: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 28: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 29: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

(ii) -- (norma nunca é desativada)

(iii) -- Não é possível informar sobre o cumprimento e dar prêmios ao agente pois esta norma está sempre ativa

;(rule i)

(defrule handleBall_rule_i

=>

(assert (FORBIDDEN-non-dialogical-action-plan … (status ACTIVATED))))

Page 30: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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 …)))

Page 31: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Solução: Verificar se existe uma informação de cumprimento da norma

Problema

Page 32: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 33: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

(iv) Informar sobre a violação e a punição se a proibição está ativada e a ação X é executada

Problema

Solução: Verificar se existe uma informação sobre violação da norma

Page 34: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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))))

Page 35: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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)))

Page 36: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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 ...))) )

Page 37: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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 ...)) )

Page 38: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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.

Page 39: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Raciocínio sobre normas II/V

Arquitetura BDI (Belief, Desire, Intention)

Page 40: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 41: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 42: Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Raciocínio sobre normas: alguns trabalhos no tema V/V

ANA architecture [12]