410 likes | 516 Views
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 crença, conclusão ou ação Existem dois tipos de raciocínio: Raciocínio dedutivo
E N D
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 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 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 • 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
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 é 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 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 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
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 • Colocar as regras na máquina de inferência e colocar todos os dados na base da fatos na memória • 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 • Utilizar um algoritmo para selecionar uma regra do conjunto • Atualizar a memória com os fatos criados pela nova regra • 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 a 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 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 … • 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 • Colocar as regras na máquina de inferência e colocar todos os fatos da base de fatos na memória • Especificar a conclusão que deve ser confirmada • Encontrar o conjunto de regras que tenha a conclusão no termo THEN • Pegar uma regra do conjunto de regras • Tentar verificar se a regra é verdadeira verificando todos os antecedentes • 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 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 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] agradable caliente frío
Raciocínio na Lógica Nebulosa • Transformação das variáveis do problema em valores nebulosos • Aplicação dos operadores nebulosos • Aplicação da implicação • Combinação entre todas as saídas nebulosas possíveis • Transformação de resultado nebuloso em resultado nítido
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 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: • 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 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 • Ativa a proibição • -- Não é possível informar sobre o cumprimento e dar prêmios ao agente pois esta norma está sempre ativa • Informar sobre a violação e a punição se a ação X foi executada • Obrigação • Ativa a obrigação • Informa sobre o cumprimento e o prêmio se a ação X foi executada • -- 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 • Ativa a permissão • -- Não faz sentido informar sobre o cumprimento e sobre o prêmio • -- 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 ;(rule i) (defrule handleBall_rule_i => (assert (FORBIDDEN-non-dialogical-action-plan … (status ACTIVATED))))
Exemplo: Proibição simples ;(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 …)) )
Problema 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 • Ativar a obrigação • Desativar a obrigação se a obrigação está ativa e Y é incluído na base de fatos • Informar sobre o cumprimento e o premio se a ação X é executada e a obrigação está ativa • 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
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 • Ativar a permissão • Desativar a permissão se a permissão está ativa e Y é incluído na base de fatos • --- • Informar sobre a violação e a punição da permissão se a ação X foi executada depois de Y
Problema 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 • Ativar a proibição • Desativar a proibição se a proibição está ativa e Y é incluído na base de fatos • Informar sobre o cumprimento e o prêmio se a norma é desativada e a ação X não foi executada • 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 juiz tem que verificar o equipamento dos jogadores antes de começar a partida • Obrigação • Ativar a obrigação ;(rule i) (defrule checkEquipment_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 juiz tem que verificar o equipamento dos jogadores antes de começar a partida • Obrigação • Desativar a obrigação se a obrigação está tiva 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, 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 • 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, 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 • 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 ...)) )
Problema 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 • Ativar a obrigação se o fato W é incluído na base de fatos • Desativar a obrigação se a obrigação está ativa e Y está na base de fatos • Informar sobre o cumprimento e o prêmio se a ação X é executada e a obrigação está ativa • 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
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 • Ativar a permissão se o fato W é incluído na base de fatos • Desativar a permissão se a permissão está ativa e Y é incluído na base de fatos • --- • 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: Se não existe uma permissão explícita então é proibido 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 a ação X antes de um fato Y e depois de um fato W • Proibição • Ativar a proibição se o fato W é incluído na base de fatos • Desativar a proibição se a proibição está ativa e Y é incluído na base de fatos • Informar sobre o cumprimento e o prêmio se a norma é desativada e a ação X não foi executada • Informar sobre a violação e a punição se a proibição está ativada e a ação X é executada