Raciocnio Viviane Torres da Silva viviane silvaic uff

  • Slides: 41
Download presentation
Raciocínio Viviane Torres da Silva viviane. silva@ic. uff. br http: //www. ic. uff. br/~viviane.

Raciocínio Viviane Torres da Silva viviane. silva@ic. uff. br http: //www. ic. uff. br/~viviane. silva/2010. 1/isma

Raciocínio Ø Racionalização é o processo cognitivo de ver a razão para uma determinada

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.

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 conclusao 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 garantem a verdade da conclusão

Raciocínio Indutivo I/II Ø A verdade das premissas não garantem 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

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

Forward channing e Backward channing

Regras If…Then Ø Uso de regras if…then para fazer a representação do conhecimento em

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

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 é executadas 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

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

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

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

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

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 a pergunta são executadas

Exemplo: Backward channing II/IV Ø Vamos supor queremos saber se o veículo que temos

Exemplo: Backward channing II/IV Ø Vamos supor 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 autobús é necessário que as condiciones 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

Exemplo: Backward channing III/IV Ø A condição veículo=veículo_motorizado está relacionada a regra 2, então … Ø Para que as condiciones na regra 3 sejam verdades, é necessário que as condiciones 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. Si não están, 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

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 Nebulosa (Fuzzy Logic)

Lógica Clássica Ø Uma declaração é verdadeira ou falsa Ø Uma declaração não pode

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 viola estas premissas

Lógica Nebulosa Ø Algo pode e deve coexistir com seu oposto Ø A experiência

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 agradable caliente

Raciocínio na Lógica Nebulosa 1. Transformação das variáveis do problema em valores nebulosos 2.

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

Raciocínio com Normas

Objetivo Ø Como um agente sabe o conjunto de normas aplicadas a ele? –

Objetivo Ø Como um agente sabe o conjunto de normas aplicadas 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

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

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 normalmente está associada a 4 regras em

Normas x Regras em Jess Ø Cada 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: – O agente tem uma obrigação para executar uma

Tipos de Normas Ø Obrigação: – O agente tem uma obrigação para executar uma ação Ø Permissão: – O agente tem um permissão para executar uma ação Ø Proibição: – O agente tem uma proibição para executar uma ação Ø Norma informa sobre uma obrigação, proibição ou permissão para executar uma ação dada alguma condição

Tipos de Normas Ø Obrigação, permissão ou proibição simples Ø Obrigação, permissão ou proibição

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

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

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

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 ; (rule i) (defrule handle. Ball_rule_i => (assert (FORBIDDEN-non-dialogical-action-plan … (status ACTIVATED))))

Exemplo: Proibição simples ; (rule iv) (defrule handle. Ball_rule_iv ? forbidden <- (FORBIDDEN-non-dialogical-action-plan …)

Exemplo: Proibição simples ; (rule iv) (defrule handle. Ball_rule_iv ? forbidden <- (FORBIDDEN-non-dialogical-action-plan …) ? fact. Violating. Norm <- (non-dialogical-action-plan (plan play) (action handle. Ball). . . ) => (if (= (fact-slot-value ? fact. Violating. Norm role) (fact-slot-value ? forbidden role)) then (assert (Norm. Status_per_Agent (agent (fact-slot-value ? fact. Violating. Norm entity)) (norm (fact-id ? forbidden))(status VIOLATED) (reason (fact-id ? fact. Violating. Norm)))) (assert (PUNISHMENT …)) )

Obrigação, permissão ou proibição que deve ocorrer antes de um fato Y Ø Obrigação

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

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

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, permissão ou proibição que deve ocorrer antes de um fato Y O

Exemplo: Obrigação, permissão ou proibiçã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 check. Equipment_rule_i => (assert (OBLIGED-non-dialogical-action-plan. . . (status ACTIVATED))))

Exemplo: Obrigação, permissão ou proibição que deve ocorrer antes de um fato Y O

Exemplo: Obrigação, permissão ou proibiçã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á tiva e Y está na base de fatos ; (rule ii) (defrule check. Equipment_rule_ii ? obliged <- (OBLIGED-non-dialogical-action-plan. . . (status ACTIVATED)) ? fact. Deactivating. Norm <- (dialogical-action (scene game) (state si)(content game. Start). . . ) => (modify ? obliged (status DEACTIVATED)) )

Exemplo: Obrigação, permissão ou proibição que deve ocorrer antes de um fato Y O

Exemplo: Obrigação, permissão ou proibiçã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 check. Equipment_rule_iii ? obliged <- (OBLIGED-non-dialogical-action-plan. . . (status ACTIVATED)) ? fact. Fulfilling. Norm <- (non-dialogical-action-plan (plan managing. Game) (action check. Equipment). . . ) => (if (= (fact-slot-value ? fact. Fulfilling. Norm entity) (fact-slot-value ? obliged entity)) then (assert (Norm. Status_per_Agent (norm (fact-id ? obliged)) (agent (fact-slot-value ? fact. Fulfilling. Norm entity)) (status FULFILLED) (reason (fact-id ? fact. Fulfilling. Norm)))) (assert (REWARD. . . ))) )

Exemplo: Obrigação, permissão ou proibição que deve ocorrer antes de um fato Y O

Exemplo: Obrigação, permissão ou proibiçã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 check. Equipment_rule_iv ? obliged <- (OBLIGED-non-dialogical-action-plan. . . (status DESACTIVATED)) => (bind ? result (assert (Norm. Status_per_Agent (agent (fact-slot-value ? agents)) (norm ? obliged) (status FULFILLMENT)))) (try (= false ? result) ; the agent has fulfilled the norm catch (modify ? result (status VIOLATED)) (assert (PUNISHMENT. . . )) )

Obrigação, permissão ou proibição que deve ocorrer entre dois fatos Ø Obrigação para executar

Obrigação, permissão ou proibição que deve ocorrer entre dois fatos Ø Obrigação para executar a ação X antes de um fato Y e depois de um fato W Ø Obrigação (i) Ativar a obrigação se o fato W é incluído na base de fatos (ii) Desativar a obrigação se a obrigação está ativa e Y está na base de fatos (iii) Informar sobre o cumprimento e o prêmio 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 entre dois fatos Ø Permissão para executar

Obrigação, permissão ou proibição que deve ocorrer entre dois fatos Ø Permissão para executar a ação X antes de um fato Y e depois de um fato W Ø Permissão (i) Ativar a permissão se o fato W é incluído na base de fatos (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 ou antes do fato W Podemos assumir duas coisas: 1) Se não existe uma permissão explícita então é proibido 2) O agente não sabia que era proibido pois a norma ainda não tinha sido disparada

Obrigação, permissão ou proibição que deve ocorrer entre dois fatos Ø Proibição para executar

Obrigação, permissão ou proibição que deve ocorrer entre dois fatos Ø Proibição para executar a ação X antes de um fato Y e depois de um fato W Ø Proibição (i) Ativar a proibição se o fato W é incluído na base de fatos (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