Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
Transcript of Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
![Page 1: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/1.jpg)
Sistemas Baseados em Conhecimento
Prof. Cláudio M. N. A. Pereira
![Page 2: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/2.jpg)
Sumário
1. Introdução
2. Estrutura de um SBC
3. Representação do conhecimento
![Page 3: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/3.jpg)
Introdução
Uma definição
SBC são sistemas computacionais que utilizam e manipulam o conhecimento representado de forma explícita visando resolver problemas em um dado domínio.
![Page 4: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/4.jpg)
Introdução
DADO
x
INFORMAÇÃO
x
CONHECIMENTO
![Page 5: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/5.jpg)
Introdução
DADO é a estrutura básica de um sistema de informação. É quantificável e não depende de uma interpretação. Podem ser selecionados, gravados e recuperados de uma base de dados, arquivo ou memória.
Ex:
preço = 10
quant = 70
![Page 6: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/6.jpg)
Introdução
INFORMAÇÃO é criada a partir da análise e dos dados. Envolve a interpretação dos dados para um dado contexto.
Ex:
preço = 10; preço_mercado = 12 => BARATO
quant = 70; estoque_mínimo = 100 => ESTOQUE BAIXO
![Page 7: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/7.jpg)
Introdução
CONHECIMENTO é a habilidade de criar um modelo que indique ações e decisões a serem tomadas.
Ex:
se CARO e ESTOQUE BAIXO então COMPRAR Qt_min
se CARO e ESTOQUE NORMAL então COMPRAR 0
se MUITO BARATO então COMPRAR Qt_max
![Page 8: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/8.jpg)
Características de um SBC
• capacidade de questionar o usuário para obter informações de interesse;
• capacidade de desenvolver raciocínio a partir das informações e do conhecimento nele representado;
• capacidade de explicar o raciocínio (como chegou a uma certa conclusão).
![Page 9: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/9.jpg)
Características de um SBC
• todo o conhecimento a respeito do domínio da utilização do SBC deve estar representado em sua Base de Conhecimento (BC);
• deve haver um mecanismo de inferência capaz de interpretar e utilizar o conhecimento contido na BC;
• resolve problemas para os quais não se conhece procedimento determinístico que garanta a solução
![Page 10: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/10.jpg)
SBC x Sistemas Convencionais
Estruturas de Dados Representação do conhecimento
Sistemas Convencionais SBC
Manipulam conhecimentoManipulam dados
Busca / HeurísticaAlgoritmos bem determinados
Conhecimento representado explicitamente e separado do programa que o manipula
Conhecimento embutido no código
Explicam o raciocínioDifícil explicar o raciocínio
![Page 11: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/11.jpg)
Estrutura geral de um SBC
Memória de Trabalho
Base de Conhecimento
Motor de Inferência Explicação do raciocínio
Aquisição do conhecimento
Usuário
Especialista
IHM
![Page 12: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/12.jpg)
Estrutura geral de um SBC
• IHM - módulo que realiza toda a interação com o usuário, de forma a obter informações sobre o problema;
• Memória de trabalho - módulo que contêm:
– a descrição do problema (situação atual, os dados);
– possíveis ações a serem executadas;
– hipóteses e novos cenários que o sistema já tenha produzido;
![Page 13: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/13.jpg)
Estrutura geral de um SBC
• Base de Conhecimento - módulo que contêm o conhecimento declarado.
– Utiliza alguma técnica de representação do conhecimento
• Módulo de aquisição do conhecimento - responsável por fazer a aquisição do conhecimento via interface com o especialista;
![Page 14: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/14.jpg)
Estrutura geral de um SBC
• Explicação do raciocínio - módulo responsável por explicar como as conclusões ou respostas do SBC foram obtidas
• Motor de Inferência - módulo que gerencia e controla a utilização do conhecimento, estabelecendo critérios para identificação (matching), ativação e agendamento de regras, além de verificação de consistência e resolução de conflitos;
![Page 15: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/15.jpg)
Representação do Conhecimento
A Representação do Conhecimento (RC) é uma forma sistemática de se estruturar e codificar o que se sabe sobre um dado domínio de aplicação.
![Page 16: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/16.jpg)
Características de uma RC
• O conhecimento representado deve ser compreensível ao ser humano;
• Abstração dos detalhes internos de como funciona o seu interpretador (máquina de inferência)
• Ser robusta. Permitir funcionamento mesmo que não sejam abordadas todas as situações possíveis.
![Page 17: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/17.jpg)
Algumas técnicas de RC
• Representação Lógica
• Representação por Regras
• Representação por Redes Semânticas
• Orientação a Objetos
• Entre outras
![Page 18: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/18.jpg)
Representação Lógica
Inferências dedutivas Baseadas em lógica matemática Linguagem PROLOG
Exemplo: Lógica proposicional
“todos os seres vivos são mortais”
C [ser_vivo(C) mortal(C)]
Exemplo: Lógica de predicados
pai (joão) = antônio mãe (joana) = maria
amigos(pai (joão), mãe (joana)) = amigos (antônio, maria)
![Page 19: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/19.jpg)
Representação por Regras
• Forma mais natural
SE (condições) ENTÃO (conclusões/ações)
![Page 20: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/20.jpg)
Representação por Redes Semânticas
Grafo direcionado, que representa objetos (conceitos, situações, etc) e suas relações
Os nós representam objetos (físicos ou abstratos), as suas propriedades e valores
Os arcos representam relações entre os nós
![Page 21: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/21.jpg)
Representação por Redes Semânticas
Exemplo• Uma ave é um animal.• A maneira normal de movimentação das aves é voar.• Uma ave está ativa durante o dia.• Um albatroz é uma ave.• Uma albatroz é preto e branco.• O tamanho normal do albatroz é 115 cm.• O Alberto é um albatroz.• O tamanho do Alberto é 120 cm.• Um pinguim é uma ave.• Um pinguim é branco e preto.• A maneira normal de movimentação dos pinguins é andar.• O Tweety é um pinguim.
Questões: – Qual o método de movimentação do Alberto ?– Qual o método de movimentação do Tweety ?
![Page 22: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/22.jpg)
Representação por Redes Semânticas
IS-A
Albatroz
diurna
AnimalAvePreto eBranco
Pinguimtweety
Vôo
115 cm
Alberto IS-A
IS-A
IS-A
cor deslocação
tamanho
IS-A
actividade
120 cm
tamanho
cor
deslocação
andar
![Page 23: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/23.jpg)
Orientação a Objetos
A estrutura hierárquica da Programação Orientada a Objetos, bem como o conceito de encapsulamento e mensagens entre objetos, permitem a Representação do Conhecimento de forma similar a das Redes Semânticas.
![Page 24: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/24.jpg)
Linguagens de Programação
A rigor, qualquer linguagem pode ser utilizada para implementar conceitos da IA, entretanto, algumas possuem facilidades para serem utilizadas na implementação de sistemas de IA.
- LISP (LISt Processing)
- PROLOG (PROgramming in LOGic)
![Page 25: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/25.jpg)
Exemplo: Blocos
c
b
a
Objetivo: Dados os fatos que configuram o cenário, deseja-se informar quais blocos estão acima de um outro. Consideraremos os seguintes fatos:- “a” está sobre “b” e- “b” está sobre “c”.
![Page 26: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/26.jpg)
Exemplo: Blocos
Representação Orientada a Objetos com Regras: LISP
(defclass bloco (is-a USER) (role concrete) (slot nome (type STRING) (create-accessor read-write)) (slot cor (type STRING) (create-accessor read-write)) (slot tamanho (type STRING) (create-accessor read-write)))
(defmessage-handler bloco imprime() (printout t “Bloco “ ?self:nome “ (“ ?self:cor “ ,” ?self:tamanho “)”))
![Page 27: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/27.jpg)
Exemplo: Blocos
Representação Orientada a Objetos com Regras: LISP
(definstances blocos (a of bloco (nome “a”) (cor “branco”) (tamanho “pequeno”) ) (b of bloco (nome “b”) (cor “verde”) (tamanho “medio”) )
(c of bloco (nome “c”) (cor “azul”) (tamanho “grande”) ))
(deffcats exemplo (sobre [a] [b]) (sobre [b] [c]))
![Page 28: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/28.jpg)
Exemplo: Blocos
Representação Orientada a Objetos com Regras: LISP
(defrule direta (sobre ?X ?Y) => (assert (acima ?X ?Y)) (printout t (send ?X imprime) “acima de ” (send ?Y imprime)))
(defrule indireta (sobre ?Z ?Y) (sobre ?X ?Z) => (assert (acima ?X ?Y)) (printout t (send ?X imprime) “acima de ” (send ?Y imprime)))
![Page 29: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/29.jpg)
Exemplo: Blocos
Execução do programa
1) Inicialmente o Motor de Inferência do LISP tenta casar pré-condição da regra direta com os fatos existentes;(Obs.: A verificação é feita na ordem inversa da declaração dos fatos)Logo, tem-se que o fato (sobre [b] [c]) dispara a regra direta
2) Com o disparo da regra direta, um novo fato (acima [b] [c]) é adicionado na Memória de Trabalho.
3) Um novo ciclo é iniciado e a regra direta é novamente disparada pela pré-condição (sobre [a] [b]), adicionando o fato (acima [a] [b]) na Memória de Trabalho.
4) Outro ciclo se inicia e as pré-condições (sobre [b] [c]) e (acima [a] [b]) disparam a regra indireta, gerando o fato (acima [a] [c])
![Page 30: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.](https://reader036.fdocument.pub/reader036/viewer/2022081602/552fc15f497959413d8e6781/html5/thumbnails/30.jpg)
Exemplo: Blocos
Representação Lógica: PROLOG
cor (a, branco).cor (b, verde).cor (c, azul).
tamanho (a, pequeno).tamanho (b, médio).tamanho (c, grande).
sobre (a, b).sobre (b, c).
acima (X, Y) :- sobre (X, Y).acima (X, Y) :- sobre (Z, Y), acima (X, Z).