Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.

30
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.

Sistemas Baseados em Conhecimento

Prof. Cláudio M. N. A. Pereira

Page 2: 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

Page 3: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.

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.

Introdução

DADO

x

INFORMAÇÃO

x

CONHECIMENTO

Page 5: Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).