SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Agentes que Raciocinam
Logicamente

      Prof. Júlio Cesar Nievola
                PPGIA
               PUC-PR
Um agente baseado em
conhecimento
• Componente central: a base de
  conhecimentos (KB ou BC)
• A BC é um conjunto de representações de
  fatos acerca do “mundo”
• Cada representação individual é uma
  sentença
• As sentenças são expressas em uma
  linguagem de representação do
  conhecimento
Um agente genérico baseado em
conhecimento
function KB-AGENT( percept) returns an action
  static:  KB, a knowledge base
           t, a counter, initially 0, indicating time
  TELL(KB,MAKE-PERCEPT-SENTENCE(
                                        percept, t))
  action ¬ ASK(KB,MAKE-ACTION-QUERY(t))
  TELL(KB,MAKE-ACTION-SENTENCE(action,
                                               t))
  t ¬ t +1
  return action
Níveis de descrição de um agente
baseado em conhecimento
• Nível de conhecimento ou epistemológico:
  nível abstrato. Ex.: A ponte Golden Gate
  liga São Francisco e Marin County
• Nível lógico: conhecimento codificado em
  sentenças. Ex.: liga(PonteGG,SF,Marin)
• Nível de implementação: é o nível
  executado na arquitetura de agentes. Ex.:
  lista de strings, tabela indexada etc.
Construção de um agente
baseado em conhecimentos
• É possível construir um agente baseado em
  conhecimento “informando-o” do que ele
  precisa saber.
• Abordagem declarativa: o agente recebe o
  conhecimento na forma de sentenças em
  uma linguagem de representação
• Aprendizagem: constrói-se um mecanismo
  de aprendizagem sobre as percepções
O mundo do WUMPUS
Situação inicial e após um
movimento
Situação após o terceiro e o
quinto movimentos
Representação do conhecimento

• Permite expressar o conhecimento em uma
  maneira compreensível pelo computador
• É definida por dois aspectos:
  – Sintaxe: descreve as formas corretas de se
    construir uma sentença
  – Semântica: realiza o mapeamento entre as
    sentenças e os fatos do “mundo” considerado,
    indicando a “crença” de um agente na sentença
Conexão entre sentenças e fatos
Nomenclatura

• A partir de sentenças verdadeiras a vinculação
  gera somente sentenças verdadeiras
• KB vincula a: KB |= a
• Um procedimento de inferência que gera somente
  sentenças vinculadas é chamado de são
• a é derivado de KB através de i: KB |- a
• Um procedimento de inferência é completo se ele
  pode gerar uma prova para qualquer sentença que
  for vinculada
Inferência

• Uma sentença é valida (ou tautologia ou
  uma sentença analítica) sse ela é verdadeira
  em todas as interpretações em todos os
  mundos possíveis
• Uma sentença é satisfatível sse há pelo
  menos uma interpretação para a qual ela é
  verdadeira, caso contrário ela é
  insatisfatível.
Lógica

• Uma lógica consiste dos elementos:
  – Um sistema formal para descrever condições:
     • Sintaxe: descreve como criar sentenças corretas
     • Semântica: estabelece as restrições sistemáticas na
       forma como as sentenças se relacionam com o
       mundo
  – Um sistema de prova: um conjunto de regras
    para deduzir as vinculações a partir de um
    conjunto de sentenças
Lógica Proposicional

• Na Lógica Proposicional símbolos
  representam fatos e podem ser ligados por
  conectivos booleanos
• Compromisso ontológica tem a ver com a
  natureza da realidade
• Compromisso epistemológico se refere aos
  possíveis estados de conhecimento que um
  agente pode ter
Linguagens Formais


         Linguagem             Compromisso Ontológico          Compromisso Epistemológico
                                (o que existe no mundo)         (o que um agente acredita)
Lógica Proposicional        Fatos                             V/F/desconhecido
Lógica de Primeira Ordem    Fatos, objetos, relações          V/F/desconhecido
Lógica Temporal             Fatos, objetos, relações, tempo   V/F/desconhecido
Teoria das Probabilidades   Fatos                             Grau de crença 0…1
Lógica Difusa               Grau de verdade                   Grau de crença 0…1
Sintaxe da Lógica Proposicional

• As constantes lógicas verdadeiro e falso são, em si
  mesmas, sentenças
• Um símbolo proposicional, como P é, em si
  mesmo, uma sentença
• Parênteses em torno de uma sentença produzem
  uma sentença
• Uma sentença pode ser formada pela combinação
  de sentenças mais simples através dos conectivos:
   Ù (conjunçao)    Ú (disjunção) Þ (implicação)
     Û (equivalência)       Ø (negação)
Gramática BNF de Sentenças em
Lógica Proposicional
Sentença ® SentençaAtômica |
                     SentençaComplexa
SentençaAtômica ® Verdadeiro | Falso
SentençaComplexa ®
               (Sentença)
               |Sentença ConectivoSentença
               | ØSentença
Conectivo ® Ù | Ú | Û | Þ
Semântica na Lógica
Proposicional
• A sentença verdadeira sempre tem como
  sua interpretação a forma como o mundo é
• A sentença falsa sempre tem como sua
  interpretação a forma como o mundo não é
                Tabela-verdade
Entrada de dados x sensores
Modelos
Regras de Inferência para a
Lógica Proposicional (1)
• Modus Ponens
               (a Þ b, a) ® b
• Eliminação-E
           (a1 Ù a2 Ù … Ù an) ® ai
• Introdução-E
    (a1, a2, …, an) ® (a1 Ù a2 Ù … Ù an)
• Introdução-OU
           ai ® (a1 Ú a2 Ú … Ú an)
Regras de Inferência para a
Lógica Proposicional (2)
• Eliminação da dupla negação
                (Ø Ø a) ® a
• Resolução unitária
              (a Ú b, Øb) ® a
• Resolução
          (a Ú b, Øb Ú g) ® a Ú g
                     ou
        (Øa Þ b, b Þ g) ® Øa Þ g
Um agente para o mundo do
WUMPUS (1)
Um agente para o mundo do
WUMPUS (2)
• Base de Conhecimentos:
  – Sentenças:
     ØS1,1       ØS2,1        S1,2
     ØB1,1       B2,1         ØB1,2
  – Regras:
     R1: ØS1,1 Þ ØW1,1 Ù ØW1,2 Ù ØW2,1
     R2: ØS2,1 Þ ØW1,1 Ù ØW2,1 Ù ØW2,2 Ù ØW3,1
     R3: ØS1,2 Þ ØW1,1 Ù ØW1,2 Ù ØW2,2 Ù ØW1,3
     R4: S1,2 Þ W1,3 Ú W1,2 Ú W2,2 Ú W1,1
Um Agente Baseado em
Conhecimento em Lóg. Prop.

Weitere ähnliche Inhalte

Mehr von elliando dias

Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 

Mehr von elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Kürzlich hochgeladen

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Agentes que RaciocAgentes que Raciocinam Logicamente

  • 1. Agentes que Raciocinam Logicamente Prof. Júlio Cesar Nievola PPGIA PUC-PR
  • 2. Um agente baseado em conhecimento • Componente central: a base de conhecimentos (KB ou BC) • A BC é um conjunto de representações de fatos acerca do “mundo” • Cada representação individual é uma sentença • As sentenças são expressas em uma linguagem de representação do conhecimento
  • 3. Um agente genérico baseado em conhecimento function KB-AGENT( percept) returns an action static: KB, a knowledge base t, a counter, initially 0, indicating time TELL(KB,MAKE-PERCEPT-SENTENCE( percept, t)) action ¬ ASK(KB,MAKE-ACTION-QUERY(t)) TELL(KB,MAKE-ACTION-SENTENCE(action, t)) t ¬ t +1 return action
  • 4. Níveis de descrição de um agente baseado em conhecimento • Nível de conhecimento ou epistemológico: nível abstrato. Ex.: A ponte Golden Gate liga São Francisco e Marin County • Nível lógico: conhecimento codificado em sentenças. Ex.: liga(PonteGG,SF,Marin) • Nível de implementação: é o nível executado na arquitetura de agentes. Ex.: lista de strings, tabela indexada etc.
  • 5. Construção de um agente baseado em conhecimentos • É possível construir um agente baseado em conhecimento “informando-o” do que ele precisa saber. • Abordagem declarativa: o agente recebe o conhecimento na forma de sentenças em uma linguagem de representação • Aprendizagem: constrói-se um mecanismo de aprendizagem sobre as percepções
  • 6. O mundo do WUMPUS
  • 7. Situação inicial e após um movimento
  • 8. Situação após o terceiro e o quinto movimentos
  • 9. Representação do conhecimento • Permite expressar o conhecimento em uma maneira compreensível pelo computador • É definida por dois aspectos: – Sintaxe: descreve as formas corretas de se construir uma sentença – Semântica: realiza o mapeamento entre as sentenças e os fatos do “mundo” considerado, indicando a “crença” de um agente na sentença
  • 11. Nomenclatura • A partir de sentenças verdadeiras a vinculação gera somente sentenças verdadeiras • KB vincula a: KB |= a • Um procedimento de inferência que gera somente sentenças vinculadas é chamado de são • a é derivado de KB através de i: KB |- a • Um procedimento de inferência é completo se ele pode gerar uma prova para qualquer sentença que for vinculada
  • 12. Inferência • Uma sentença é valida (ou tautologia ou uma sentença analítica) sse ela é verdadeira em todas as interpretações em todos os mundos possíveis • Uma sentença é satisfatível sse há pelo menos uma interpretação para a qual ela é verdadeira, caso contrário ela é insatisfatível.
  • 13. Lógica • Uma lógica consiste dos elementos: – Um sistema formal para descrever condições: • Sintaxe: descreve como criar sentenças corretas • Semântica: estabelece as restrições sistemáticas na forma como as sentenças se relacionam com o mundo – Um sistema de prova: um conjunto de regras para deduzir as vinculações a partir de um conjunto de sentenças
  • 14. Lógica Proposicional • Na Lógica Proposicional símbolos representam fatos e podem ser ligados por conectivos booleanos • Compromisso ontológica tem a ver com a natureza da realidade • Compromisso epistemológico se refere aos possíveis estados de conhecimento que um agente pode ter
  • 15. Linguagens Formais Linguagem Compromisso Ontológico Compromisso Epistemológico (o que existe no mundo) (o que um agente acredita) Lógica Proposicional Fatos V/F/desconhecido Lógica de Primeira Ordem Fatos, objetos, relações V/F/desconhecido Lógica Temporal Fatos, objetos, relações, tempo V/F/desconhecido Teoria das Probabilidades Fatos Grau de crença 0…1 Lógica Difusa Grau de verdade Grau de crença 0…1
  • 16. Sintaxe da Lógica Proposicional • As constantes lógicas verdadeiro e falso são, em si mesmas, sentenças • Um símbolo proposicional, como P é, em si mesmo, uma sentença • Parênteses em torno de uma sentença produzem uma sentença • Uma sentença pode ser formada pela combinação de sentenças mais simples através dos conectivos: Ù (conjunçao) Ú (disjunção) Þ (implicação) Û (equivalência) Ø (negação)
  • 17. Gramática BNF de Sentenças em Lógica Proposicional Sentença ® SentençaAtômica | SentençaComplexa SentençaAtômica ® Verdadeiro | Falso SentençaComplexa ® (Sentença) |Sentença ConectivoSentença | ØSentença Conectivo ® Ù | Ú | Û | Þ
  • 18. Semântica na Lógica Proposicional • A sentença verdadeira sempre tem como sua interpretação a forma como o mundo é • A sentença falsa sempre tem como sua interpretação a forma como o mundo não é Tabela-verdade
  • 19. Entrada de dados x sensores
  • 21. Regras de Inferência para a Lógica Proposicional (1) • Modus Ponens (a Þ b, a) ® b • Eliminação-E (a1 Ù a2 Ù … Ù an) ® ai • Introdução-E (a1, a2, …, an) ® (a1 Ù a2 Ù … Ù an) • Introdução-OU ai ® (a1 Ú a2 Ú … Ú an)
  • 22. Regras de Inferência para a Lógica Proposicional (2) • Eliminação da dupla negação (Ø Ø a) ® a • Resolução unitária (a Ú b, Øb) ® a • Resolução (a Ú b, Øb Ú g) ® a Ú g ou (Øa Þ b, b Þ g) ® Øa Þ g
  • 23. Um agente para o mundo do WUMPUS (1)
  • 24. Um agente para o mundo do WUMPUS (2) • Base de Conhecimentos: – Sentenças: ØS1,1 ØS2,1 S1,2 ØB1,1 B2,1 ØB1,2 – Regras: R1: ØS1,1 Þ ØW1,1 Ù ØW1,2 Ù ØW2,1 R2: ØS2,1 Þ ØW1,1 Ù ØW2,1 Ù ØW2,2 Ù ØW3,1 R3: ØS1,2 Þ ØW1,1 Ù ØW1,2 Ù ØW2,2 Ù ØW1,3 R4: S1,2 Þ W1,3 Ú W1,2 Ú W2,2 Ú W1,1
  • 25. Um Agente Baseado em Conhecimento em Lóg. Prop.