Sistemas Baseados em Conhecimento
Prof. Cláudio M. N. A. Pereira
Sumário
1. Introdução
2. Estrutura de um SBC
3. Representação do conhecimento
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.
Introdução
DADO
x
INFORMAÇÃO
x
CONHECIMENTO
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
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
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
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).
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
SBC x Sistemas Convencionais
Sistemas Convencionais
SBC
Estruturas de Dados
Representação do conhecimento
Manipulam dados
Manipulam conhecimento
Algoritmos bem determinados
Busca / Heurística
Conhecimento embutido no
código
Conhecimento representado
explicitamente e separado do
programa que o manipula
Difícil explicar o raciocínio
Facilidade p/ explicar raciocínio
Estrutura geral de um SBC
Usuário
IHM
Motor de Inferência
Memória de Trabalho
ou
Base de Fatos
Base de
Conhecimento
Explicação do
raciocínio
Aquisição do
conhecimento
Especialista
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;
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;
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;
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.
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.
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
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)
Representação por Regras
• Forma mais natural
SE (condições)
ENTÃO (conclusões/ações)
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
Representação por Redes Semânticas
Exemplo
• Uma ave é um animal.
• A forma de deslocamento das aves é voando.
• Uma ave possui atividade diurna.
• Um albatroz é uma ave.
• Uma albatroz é preto e branco.
• O tamanho médio do albatroz é 115 cm.
• O Alberto é um albatroz.
• O tamanho do Alberto é 120 cm.
• Um pinguim é uma ave.
• Um pinguim é branco e preto.
• A forma de deslocamento dos pinguins é andando.
• O Tweety é um pinguim.
Exemplo de questões:
– Qual forma de deslocamento de Alberto ?
– Qual o forma de deslocamento de Tweety ?
Representação por Redes Semânticas
Exemplo
• Uma ave é um animal.
é um
Ave
Animal
Representação por Redes Semânticas
Exemplo
• Uma ave é um animal.
• A forma de deslocamento das aves é voando.
é um
Ave
Animal
deslocamento
Voando
Representação por Redes Semânticas
Exemplo
• Uma ave é um animal.
• A forma de deslocamento das aves é voando.
• Uma ave possui atividade diurna.
Diurna
atividade
é um
Ave
Animal
deslocamento
Voando
Representação por Redes Semânticas
Exemplo
• Uma ave é um animal.
• A forma de deslocamento das aves é voando.
• Uma ave possui atividade diurna.
• Um albatroz é uma ave.
Diurna
atividade
é um
Ave
é uma
Albatroz
Animal
deslocamento
Voando
Representação por Redes Semânticas
Andando
Exemplo
• Uma ave é um animal.
deslocamento
• A forma de deslocamento das aves é voando.
é umdiurna.
• Uma ave possui
atividade
Tweety
Pinguim
• Um albatroz é uma ave.
• Uma albatroz é preto e branco. cor
• O tamanho médio do albatroz é 115 cm. é uma
• O Alberto é um albatroz.
Preto e
• O tamanho do Alberto é 120 cm. Branco
• Um pinguim é uma ave.
é uma
• Um pinguim é branco e preto. cor
é umdos pinguins é andando.
• A forma de deslocamento
Alberto
Albatroz
• O Tweety é um pinguim.
tamanho
tamanho
Exemplo de questões:
– Qual
forma de deslocamento
120 cm
115 cmde Alberto ?
– Qual o forma de deslocamento de Tweety ?
Diurna
atividade
é um
Ave
Animal
deslocamento
Voando
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.
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)
Exemplo: Blocos
a
b
c
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”.
Exemplo: Blocos
Representação com Regras
Base de Conhecimento
Regra 1: SE X está SOBRE Y ENTÃO X está ACIMA de Y
Regra 2: SE Z está SOBRE Y E X está ACIMA de Z ENTÃO X está ACIMA de Y
Exemplo: Blocos
Representação com Regras
Base de Fatos / Memória de Trabalho
A está SOBRE B
B está SOBRE C
Exemplo: Blocos
Executando o Sistema
B está SOBRE C
Regra 1
B está ACIMA de C
(novo fato)
A está SOBRE B
Regra 1
A está ACIMA de B
(novo fato)
Exemplo: Blocos
Executando o Sistema
Base de Fatos / Memória de Trabalho
A está SOBRE B
B está SOBRE C
B está ACIMA de C
A está ACIMA de B
Exemplo: Blocos
Executando o Sistema
B está SOBRE C
E
A está ACIMA de B
Regra 2
A está ACIMA de C
(novo fato)
C onclusão:
A está ACIMA de C
Exemplo: Blocos
Representação com Regras (Orientada a Objetos): 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 “)”)
)
Exemplo: Blocos
Representação com Regras (Orientada a Objetos): 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])
)
Exemplo: Blocos
Representação com Regras (Orientada a Objetos): LISP
(defrule direta
SE X está SOBRE Y
(sobre ?X ?Y)
ENTÃO X está ACIMA de Y
=>
(assert (acima ?X ?Y))
(printout t (send ?X imprime) “acima de ” (send ?Y imprime))
)
(defrule indireta
(sobre ?Z ?Y)
SE Z está SOBRE Y E X está ACIMA de Z
(acima ?X ?Z)
ENTÃO X está ACIMA de Y
=>
(assert (acima ?X ?Y))
(printout t (send ?X imprime) “acima de ” (send ?Y imprime))
)
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])
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).
Download

Representação do Conhecimento - Universidade Castelo Branco