You are on page 1of 37

Representao de Conhecimento

Introduo Inteligncia Artificial


Profa. Josiane

David Poole, Alan Mackworth e Randy Goebel Computational Intelligence A logical approach - cap. 5 julho/2007
1

Problemas e solues

Tipicamente o problema a ser resolvido ou a tarefa a ser feita tambm constitui uma soluo e definida informalmente

Entregue os pacotes prontamente quando eles chegarem Determine o que est errado com o sistema eltrico da casa

Para resolver um problema precisamos:


Expandir a tarefa e determinar o que constitui uma soluo Representar o problema E somente ento usar um computador para resolv-lo

O que considerar para resolver um problema


O que uma soluo para o problema? O que necessrio na linguagem para representar o problema? Como podemos mapear a descrio informal do problema para uma representao? Quais distines do mundo so importantes para resolver o problema? Qual o conhecimento necessrio? Qual o nvel de detalhes necessrio?

O que considerar para resolver um problema


Quais estratgias de raciocnio so adequadas? O desempenho do pior caso e do caso mdio so tempos crticos a minimizar? importante que algum entenda como a resposta foi derivada? Como podemos adquirir conhecimento? De especialistas? Ou de experincias? Como podemos debugar, manter e melhorar o conhecimento?

Framework de Representao de Conhecimento

Definindo uma soluo

Com uma definio informal de um problema, precisamos determinar o que constituir uma soluo Tipicamente problemas no so bem definidos

Muita coisa no especificada, e o que no especificado pode ser preenchido de qualquer forma Quando ordenamos a um rob entregador que leve todo o material dispensvel para o lixo, no esperamos que ele leve todas as coisas para l

Muito do trabalho em IA motivado pelo raciocnio de sensocomum:

Queremos que o computador seja capaz de fazer concluses de senso comum sobre suposies no-declaradas

Qualidade das solues

Qual a importncia se a resposta for errada ou alguma resposta estiver faltando? Classes de solues:

Soluo tima: a melhor soluo de acordo com alguma medida de qualidade (utilidade) Soluo Satisfatria: uma que boa o bastante de acordo com alguma descrio de quais solues so adequadas Soluo Aproximadamente tima: uma para qual a medida de qualidade est muito perto daquela teoricamente possvel Soluo Provvel: uma que est apta a ser uma soluo
7

Decises e conseqncias

Uma boa deciso aquela que geralmente conduz a conseqncias boas.

Boas decises podem ter conseqncias ruins. Decises ruins podem ter conseqncias boas. Um agente necessita de uma informao e decide acessar uma fonte de conhecimento

A informao est l conseqncia boa A informao no est l conseqncia ruim

Disponibilidade da informao e qualidade da soluo

Atividades dos agentes tem custo associado - determinar custo x benefcio Nem toda a informao necessria para o agente est diretamente disponvel para ele

Aes necessrias para obter informaes tem custo associado

Informao pode ser valiosa porque conduz a decises melhores: valor da informao Quando definir uma soluo temos que nos preocupar com:

Qual informao necessria? Como ela pode ser obtida? Custo x benefcio associado com as aes de obt-las?
9

Custo da computao e qualidade da soluo

Uma boa soluo pode depender do tempo de inferncia

Ex: A deciso de atravessar a rua deve ser rpida

Algoritmo a qualquer tempo: um algoritmo para o qual a qualidade da soluo melhora com o tempo Compromisso entre encontrar a melhor soluo e encontrar uma resposta rapidamente
10

Escolhendo uma linguagem de representao

Necessitamos representar um problema para resolv-lo no computador Problema


Especificao do problema Computao apropriada

Exemplos de representao: C++, CILog/Prolog, ling. natural

Mapeamento (problema representao), ambigidade

Uma lgica uma linguagem + a especificao do que segue de um conjunto de sentenas da linguagem
11

Hierarquia das representaes

12

Hierarquia das representaes

13

Nveis de abstrao

Nvel de Conhecimento: em termos do que o agente sabe e quais so os objetivos dele (sobre o mundo externo)

No especificado como a soluo ser computada Nem mesmo quais das muitas estratgias possveis disponveis o agente ir utilizar

Nvel de Smbolo: em termos de quais smbolos o agente ir manipular

Quais smbolos o agente usa para implementar o nvel de conhecimento

14

Mapeando o problema para a representao

Qual o nvel de abstrao do problema que queremos representar? Quais objetos e relaes no mundo que queremos representar? Com podemos representar o conhecimento para assegurar que a representao natural, modular e fcil de manter? Como podemos adquirir informaes de dados, sensores, experincias ou outros agentes?

15

Escolhendo um nvel de abstrao

Uma descrio de alto-nvel mais fcil para um ser humana especificar e entender Uma descrio de baixo-nvel pode ser mais precisa e preditivo

Descries de alto nvel extraem detalhes que podem ser importantes para resolver o problema

Quanto mais baixo o nvel, maior a dificuldade de raciocinar com ele Podemos no conhecer a informao necessria para uma representao de baixo-nvel Algumas vezes possvel utilizar mltiplos nveis de abstrao
16

Escolhendo objetos e relaes

Ex: vamos supor que vermelho uma categoria apropriada para classificar objetos

Podemos tratar vermelho como uma relao unria e escrever que um pacote a vermelho: vermelho(a).

Podemos perguntar o que vermelho?: ?vermelho(X). Mas difcil perguntar qual a cor do pacote a?: no podemos perguntar ?X(a).

Nomes de predicados podem ser variveis. Vermelho no precisa ser um predicado. Podemos considerar cores como indivduos

Vermelho uma constante, podemos usar o predicado cor(Obj, Val), para significar que o objeto Obj tem a cor Val O pacote a vermelho: cor(a, vermelho). Qual a cor do pacote a?: cor(a, C).
17

Escolhendo objetos e relaes

Com a representao cor(Obj, Val), no conseguimos perguntar Qual propriedade do pacote a tem valor vermelho? Podemos fazer para toda relao o que fizemos com cor?

Podemos ver a relao cor como um indivduo e escrever: prop(a,cor, red) Agora podemos responder todas as perguntas

A representao objeto-atributo-valor prop(Obj, Att, Val) significa que o objeto Obj tem o valor Val para o atributo Att

O domnio de um atributo o conjunto de valores que o atributo pode assumir

18

Escolhendo objetos e relaes

Para transformar a um pacote (pacote(a)) na representao objeto-atributo-valor


prop(a, _um, pacote), onde _um um atributo especial prop(a, pacote, true), onde pacote um atributo booleano

19

Escolhendo objetos e relaes

Para representar a relao programado(C, S, T, R), onde S uma seo, C um curso, T a hora e R a sala.

seo 2 do curso cs422 est programada para s 10:30 na sala cc208: programado(cs422, 2, 1030, cc208). Para representar da forma objeto-atributo-valor, precisamos inventar novos indivduos Podemos chamar reserva que tem um nmero de propriedades como curso, seo, hora e sala

Podemos nomear a reserva da sala como uma constante, b123:


prop(b123, curso, cs422). prop(b123, seo, 2). prop(b123, hora, 1030). prop(b123, sala, cc208).
20

Uma representao modular e fcil de adicionar um novo atributo

Redes Semnticas

Quando temos somente uma relao, podemos omiti-la sem qualquer perca de informao Assim podemos representar uma relao prop(Obj, Att, Val) como um grafo onde Obj e Val so ns e Att o rtulo do arco Estes grafos so chamados de Redes semnticas

21

Um exemplo de uma rede semntica


Informaes sobre um computador

22

Programa equivalente em lgica


Informaes sobre um computador

23

A notao grfica

Vantagens:

Os humanos entendem os relacionamentos com facilidade sem necessariamente saber a sintaxe Ajuda os construtores da BC a estruturar seu conhecimento No temos que rotular ns os quais os nomes no fazem muito sentido (Ex: b123)

Podemos agrupar todos os pares atributos-valores juntos em um simples objeto, isto um frame

til para trazer todas as informaes sobre um objeto juntas No necessrio criar constantes artificiais Atributos so chamados slots e valores so chamados fillers

24

Frames

Um exemplo de um frame para um computador

Podemos definir uma template de um frame para cada tipo de indivduo

Especifica quais slots so necessrios e quais so opcionais para um indivduo daquele tipo Ajuda a construir a BC

25

Um Frame pode ter vrios nveis

formado por um conjunto de slots, que representam atributos dos objetos Slots podem possuir vrias facets, que trazem informaes particulares de cada slot (atributo)

Exemplo: faixa de valores possveis para o slot, ou forma de calcul-los

Uma facet pode possuir vrias views, que representam diferentes contextos em que aquela facet pode ser avaliada Cada view possui um filler, ou seja o valor daquela view, para aquela facet, para aquele slot Podemos ter deamons (procedimentos) associados a slots

Ex: se o valor de determinada facet x, crie a facet y e z.

Exemplo: um Frame de vrios nveis


Nome_frame1 Nome_slot1 Nome_facet1 Nome_view1 filler:valor Nome_slot2 Nome_facet1 Nome_view1 filler:valor Nome_facet2 Nome_view1 filler:valor

Frame1[ slot1[ facet1[ view1[ valor]] ], slot2[ facet1[ view1[ valor]], facet2[ view1[ valor]]

]
]

Uma viso grfica de um frame de vrios nveis


computador _um tipo filler:frame valor filler:mquina valor filler:cp2347 nome tipo filler:string tamanho filler:30

Um frame de vrios nveis representado como listas em Prolog


computador[ _um[ tipo[ [ frame]], valor[ [ mquina]] ] nome[ tipo[ [ string]], tamanho[ [ 30]], valor[ [ cp2347]] ] ]

Relaes primitivas e derivadas


Conhecimento primitivo: definido explicitamente pelos fatos Conhecimento derivado: definido pelas regras

Permite uma representao mais compacta Permite que concluses sejam tiradas das observaes do domnio

Importante porque no observamos tudo diretamente do domnio Muito do que sabemos do domnio inferido pelas observaes e pelo conhecimento mais geral

30

Relaes primitivas e derivadas

Ex: Ao invs de especificar que o computador comp_2347 tem como logo um lemon disc, podemos saber que todos os computadores da marca Lemon tem este logo Associar as propriedades com as classes e no com os indivduos Permitir um atributo especial _um entre um indivduo e uma classe ou entre duas classes

Permitindo herana de propriedade

31

Uma rede semntica estruturada

32

A lgica da herana de propriedade

Uma arco p de uma classe c significa que todo indivduo na classe tem valor n para o atributo p

prop(Obj, p, n) <-- prop(Obj, _um, c). Exemplo:

33

Herana mltipla

Um indivduo normalmente membro de mais de uma classe

Ex: a mesma pessoa pode ser uma me, uma professora, uma rbitra de futebol...

Um indivduo pode herdar propriedades de todas as classes herana mltipla Se existem valores default para as propriedades

Podemos ter um problema quando um indivduo herda valores default conflitantes de classes diferentes: problema da herana mltipla

34

Escolhendo entre relaes primitivas e derivadas

Associar um valor de um atributo com a classe mais geral que contm o valor No associe propriedades contingentes de uma classe com a classe

Ex: Pode ser que todos os computadores de uma empresa sejam de uma determinada marca, com gabinete preto.

No uma boa idia associar a cor preta a todos os computadores Podem ser comprados computadores de outras marcas com cores diferentes

Axiomatize na direo causal. Queremos conhecimento que seja estvel com as mudanas do mundo.

a ^ b, a b ou b a?
35

Escolhendo um procedimento de inferncia

O que afeta a eficincia da computao de uma soluo para um problema?

Muitos algoritmos em IA so baseados em busca


Tamanho do espao de busca Fator de ramificao Profundidade das solues

Existncia de boas heursticas


Mnimos locais tambm so globais No existem plats

36

Escolhendo um procedimento de inferncia

O que afeta a eficincia da computao de uma soluo para um problema?

O algoritmo usado

Ele pode levar em considerao a informao disponibilizada pela heurstica?

O nvel de detalhes afeta diretamente a eficincia, pois modifica o espao de busca Talvez o fator que menos importa a escolha da linguagem de programao

Provavelmente melhor utilizar uma linguagem que foi projetada para o tipo de problema que queremos resolver
37

You might also like