420 likes | 583 Views
Raciocínio. Viviane Torres da Silva viviane.silva@ic.uff.br 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
E N D
Raciocínio Viviane Torres da Silva viviane.silva@ic.uff.br 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
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 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 à 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 • 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 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] agradável quente 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 (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 • 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 • 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 ;(rule i) (defrule handleBall_rule_i => (assert (FORBIDDEN-non-dialogical-action-plan … (status ACTIVATED))))
Exemplo: Proibição simples • 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 …)) )
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 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 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á 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 • 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 • 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]