Agentes Baseados em Conhecimento

Slides:



Advertisements
Apresentações semelhantes
Sistemas Baseados em Conhecimento e Sistemas Especialistas
Advertisements

Lógica de Predicados e Representação de Conhecimento
Inteligência Artificial I
Fundamentos de Prolog: uma breve introdução à programação em lógica Jacques Robin, DI-UFPE
Capítulo 7 Tableaux semânticos e resolução na Lógica Proposicional
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Tópicos de Lógica Proposicional
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
Introdução à Programação Lógica
Resolução.
Inteligência Artificial
Representação de Conhecimento na Máquina
Sistemas Baseados em Conhecimento
Agentes Baseados em Regras de Produção
Agentes Baseados em Conhecimento
Agentes Baseados em Conhecimento
Bem-vindos ao “Mundo do Wumpus”
PLANEJADORES PRÁTICOS Jacques Robin DI-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema * porque.
Programação em lógica e lógica
Inferência em lógica de primeira ordem
Aula 5 - Cap. 7 Fundamentos da IA Mestrado – FEI
Agentes Cognitivos Adaptativos
Agentes Cognitivos Adaptativos
Sistemas Baseados em Regras de Produção
AXIOMATIZAÇÃO Equipe: André Augusto Kaviatkovski, Daniel Elias Ferreira, Vinicius Zaramella.
Indução Métodos de prova já vistos Excepções
Linguagem de 1ª ordem da teoria de conjuntos
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Inteligência Artificial
Conceitos Básicos.
Introdução a Programação em Lógica e Prolog
Sistemas Inteligentes
INF 1771 – Inteligência Artificial
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE.
Modelos Matemáticos Usados como tipos em especificações baseadas em modelos Apresentados como teorias ou sistemas formais Uma teoria é definida em termos.
Lógica de Predicados Implementação de Resolução. Em Lógica de 1ª. Ordem Resolução não é uma simples extensão da Resolução da Lógica Proposicional O processo.
Agentes Baseados na Lógica Proposicional
Paradigmas de Inteligência Artificial
Introdução a Programação em Lógica e Prolog
Raciocínio Não Monotônico e Abdução
Lógicas e Inferência para IA
Plano de Aula Arquiteturas de Agentes Baseados Em Lógica Reativas BDI
Agentes Baseados em Regras de Produção
Paradigmas de Inteligência Artificial
Jacques Robin CIn-UFPE
Sistemas Especialistas
Sistemas Inteligentes
Sistemas Inteligentes Sistemas Baseados em Conhecimento
Agentes Cognitivos Autônomos
Lógica de Predicados/Primeira Ordem
Lógica de Predicados/Primeira Ordem
Marcílio C. P. de Souto DIMAp/UFRN
1 Sistemas Inteligentes Sistemas baseados em LPO Extrato de Aula resumida... Flávia Barros.
Sistemas Inteligentes Aula: Sistemas Baseados em Conhecimento 1.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
CIn- UFPE 1 Construindo Bases de Conhecimento Lógica de Primeira Ordem eficiente para representar conhecimento e para raciocinar porém, nada diz sobre.
Semântica de uma fórmula da lógica da 1a ordem via modelo de Herbrand
Programação em Lógica Indutiva Jacques Robin DI-UFPE.
Introdução a Programação em Lógica e Prolog Jacques Robin CIn-UFPE Aula I/II.
Decidibilidade, Corretude, Completude, Consistência
Agentes Baseados em Conhecimento
Sistemas Inteligentes Aula: Agentes Baseados em Conhecimento Obs.: esta aula não foi totalmente baseada no livro- texto AIMA... Flávia Barros 1.
Sistema Formal Um Sistema Formal para a lógica proposicional é uma 2-tupla < L, R >, onde: L: linguagem proposicional R: conjunto de regras de inferências.
Representação do Conhecimento em Lógica Clássica Jacques Robin CIn-UFPE.
CIn- UFPE 1 Paradigmas da IA Jacques Robin Geber Ramalho CIn-UFPE.
Inteligência Artificial I
Sistemas Baseados em Conhecimento
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 1 Planejamento Baseado em Lógica André Novaes CIn - UFPE.
Sistemas de Produção Jacques Robin CIn-UFPE. Roteiro  Definição de um sistemas de produção  Regras de produção  Inferência com regras de produção 
Transcrição da apresentação:

Agentes Baseados em Conhecimento Jacques Robin Geber Ramalho CIn-UFPE

Exemplo introdutório: West é criminoso? West é criminoso ou não? “A lei americana diz que é proibido vender armas a uma nação hostil. Cuba possui alguns mísseis, e todos eles foram vendidos pelo Capitão West, que é americano” Como resolver automaticamente este problema de classificação? Segundo a IA (simbólica), é preciso: Identificar o conhecimento do domínio (modelo do problema) Representá-lo utilizando uma linguagem formal de representação Implementar um mecanismo de inferência para utilizar esse conhecimento

Agente baseado em conhecimento Ambiente Raciocínio Automático Sensores Base de Conhecimento Especializada Máquina de Inferência Genérica Ask Tell Retract Representação e Aquisição de Conhecimento Atuadores

O que é conhecimento? Dado, informação ou abstração formatado de maneira a permitir raciocínio por um ser humano ou por uma máquina, por exemplo Classes e objetos Formula da lógica Distribuição de probabilidade prévia e condicional de variáveis aleatórias O que é raciocínio? Mecanismo sistemático para inferir ou derivar novo conhecimento a partir de novas percepções e/ou de conhecimento prévio, por exemplo: Herança de atributos entre classe, sub-classes e objetos Prova de teorema por refutação, resolução e unificação Cálculo de probabilidade posterior de um evento pelo Teorema de Bayes

Exemplo de raciocínio automático com conhecimento: West é criminoso? Sabendo que: 1. É criminoso para um americano vender armas para uma nação hostil aos EUA 2. Nono tem mísseis 3. Nono comprou todos seus mísseis do Capitão West 4. O Capitão West é americano 5. Nono é uma nação 6. Nono “está” inimiga dos EUA 7 . Um míssil é um tipo de arma 8. A inimizade é uma forma de hostilidade 9. Os EUA são uma nação Pode se inferir que: 0. O Capitão West é criminoso? Representando esse conhecimento em lógica dos predicados da 1a ordem ( P,W,N american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) //1  ( W owns(nono,W)  missile(W)) //2  ( W owns(nono,W)  missile(W)  sells(west,nono,W)) //3  american(west) //4  nation(nono) //5  enemy(nono,america) //6   W missile(W)  weapon(W) //7   N enemy(N,america)  hostile(N) //8  nation(america) //9 Provador de teorema pode ser usado para tentar inferir: criminoso(west) //0

Revisão de lógica Refutação: Formal normal (implicativa): Para provar BC  C verdadeiro, provar BC  C falso Porque? Por que (BC  C)  (BC  C)  (BC  C)  BC  C Formal normal (implicativa): Para qualquer formula da lógica dos predicados da 1a ordem, existe uma formula com mesmas valores de verdades da forma: X1, ..., Xk P1(...,Xi,...)  ...  Pm(...,Xj,...)  C1(...,Xu,...)  ...  Cm(...,Xv,...) Skolemização: substituir variáveis existencialmente quantificadas por constantes ex, x míssil(x) por míssil(m1) Regra de resolução (implicativa): Caso proposicional: ((A  B)  (B  C))  (A  C) A  B e B  C se resolvam em A  C Caso da 1a ordem: (A  B)  (C  D)  (B) = (C)  ((A)  (D)) onde  é o conjunto de substituições de variáveis que unificam B com C A  B e C  D se resolvam em (A)  (D) pela unificação de B com C via  Unificação: conjunto de substituições variável/constante ou variável1/variável2 em 2 termos a unificar para torná-los iguais

Exemplo de raciocínio automático com conhecimento: West é criminoso? Prova por refutação: mostrar que ( P,W,N american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) //1  ( W owns(nono,W)  missile(W)) //2  ( W owns(nono,W)  missile(W)  sells(west,nono,W)) //3  american(west) //4  nation(nono) //5  enemy(nono,america) //6   W missile(W)  weapon(W) //7   N enemy(N,america)  hostile(N) //8  nation(america) //9  criminoso(west) //0 é inconsistente. 1o passo: colocar formula em forma normal (american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) // 1  T  owns(nono,m1) // skolemização 2a  T  missile(m1) // 2b  (owns(nono,W)  missile(W)  sells(west,nono,W)) //3  T  american(west) //4  T  nation(nono) //5  T  enemy(nono,america) //6  missile(W)  weapon(W) //7  enemy(N,america)  hostile(N) //8  T  nation(america) //9  criminoso(west)  F //0

Exemplo de raciocínio automático com conhecimento: West é criminoso? 2o passo: aplicar regra de resolução a pares de clausulas tal que premissa de uma se unifica com conclusão da outra (american(P)  weapon(W)  nation(N)  hostile(N)  sells(P,N,W)  criminal(P)) //1  (T  owns(nono,m1)) //2a  (T  missile(m1)) //2b  (owns(nono,W)  missile(W)  sells(west,nono,W)) //3  (T  american(west)) //4  (T  nation(nono)) //5  (T  enemy(nono,america)) //6  (missile(W)  weapon(W)) //7  (enemy(N,america)  hostile(N)) //8  (T  nation(america)) //9  (criminoso(west)  F) //0 Resolver 0 com 1 unificando P/west: american(west)  weapon(W)  nation(N)  hostile(N)  sells(west,N,W)  F //10 2. Resolver 10 com 4: weapon(W)  nation(N)  hostile(N)  sells(west,N,W)  F //11 3. Resolver 11 com 7: missile(W)  nation(N)  hostile(N)  sells(west,N,W)  F //12 4. Resolver 12 com 2b unificando W/m1: nation(N)  hostile(N)  sells(west,N,m1)  F //13 5. Resolver 13 com 5 unificando N/nono: hostile(nono)  sells(west,nono,m1)  F //14 6. Resolver 14 com 8 unificando N/nono: enemy(nono,america)  sells(west,nono,m1)  F //15 7. Resolver 15 com 6: sells(west,nono,m1)  F //16 8. Resolver 16 com 3 unificando W/m1: owns(nono,m1)  missile(m1)  F //17 9. Resolver 17 com 2a: missile(m1)  F //18 10. Resolver 18 com 2b: F

Tipos de conhecimento Intencional x Extensional Diagnóstico x Causal Dedutivo x Terminológico Síncrono x Diácrono Certo x Incerto Explicito x Implícito Preciso x Vago Declarativo x Procedimental De senso comum x Especialista Do problema x Meta-conhecimento (controle, explicação, reuso)

Conhecimento intencional x extensional Conhecimento em intenção: Geral ao domínio de aplicação e classe de problema Hierarquia de conceitos (classes de fatos) ex,  X, wumpus(X)  monstro(X). Restrições de integridades ex,  X,Y wumpus(X)  wumpus(Y)  X = Y. Regras de funcionamento do domínio ex,  X,Y smelly(X,Y)  (loc(wumpus,X+1,Y)  loc(wumpus,X-1,Y)  loc(wumpus,X,Y+1)  loc(wumpus,X,Y-1). Esquema de BD, classes de programação orientada a objetos Conhecimento em extensão: Particular da instância do problema a resolver Fatos, i.e., proposições sobre instâncias de conceitos ex, loc(wumpus,2,1)  loc(wumpus,1,2)  loc(wumpus,2,3) alive(wumpus,4).  alive(wumpus,7). Dados, exemplos, casos, objetos

Conhecimento terminológico x dedutivo Taxonomia de entidades do domínio e seus relacionamentos estáticos Aspectos estruturais e estacionários ex,  M, wumpus(M)  monster(M).  M,T monster(M)  alive(M,T)  dangerous(M,T). Conhecimento dedutivo: Regras de funcionamento e restrições de integridade do domínio Aspectos comportamentais e temporais Ligando elementos em várias regiões da taxonomia ex, M,X,Y,T dangerous(M,T)  loc(M,X,Y,T)   safe(X,Y,T). X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1).

Conhecimento causal x diagnóstico prevê resultados de ações e eventos ex, X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1). Conhecimento diagnóstico: forma hipóteses sobre causas de efeitos observados ex,  X,Y,T smell(stench,X,Y,T)  smelly(X,Y).  X,Y smelly(X,Y)  (loc(wumpus,X+1,Y)  loc(wumpus,X-1,Y)  loc(wumpus,X,Y+1)  loc(wumpus,X,Y-1)).

Conhecimento sincrónico x diacrónico Conhecimento diacrónico: Regras de previsão das propriedades do ambiente entre dois instantes T e T+1 devidas a ações ou eventos ex, X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X,Y+1)  loc(agent,X,Y+1,T+1). Conhecimento sincrónico: Regras de propagação das conseqüências não observáveis do ambiente a partir das observadas no mesmo instante T ex, M,X,Y,T dangerous(M,T)  loc(M,X,Y,T)   safe(X,Y,T).

Conhecimento certo x incerto Epistemologicamente booleano ex,  X,Y smelly(X,Y)   smelly(X+1,Y-1)   smelly(X-1,Y-1)  loc(wumpus,X,Y+1). Conhecimento incerto: Epistemologicamente probabilista: ex,  X,Y smelly(X,Y,1)  (loc(wumpus,X+1,Y,0.25)  loc(wumpus,X-1,Y,0.25)  loc(wumpus,X,Y+1,0.25)  loc(wumpus,X,Y-1,0.25)).

Conhecimento explícito x implícito Sentenças simbólicas explicitamente armazenadas na base de conhecimento Conhecimento implícito: Axiomas que devem ser verificados para que a base de conhecimento reflete o ambiente modelado Idealmente documentadas, no entanto muitas vezes presentes apenas na cabeça do engenheiro do conhecimento Suposições permitindo codificação mais simples e concisa da base de conhecimento Explicitar conhecimento implícito necessário para tornar BC facilmente extensível

Conhecimento explícito x implícito: exemplo de explicitação de conhecimento A codificação see(glitter)  pick. Deixa implícito que: Existe um único agente no ambiente See é uma percepção Pick é uma ação A visão do agente é limitada a caverna no qual se encontra O ouro é o único objeto a brilhar e o único objeto que o agente pode pegar

Conhecimento explícito x implícito: exemplo de explicitação de conhecimento Quando essas suposições não são mais verificadas, a codificação tem que tornar-se mais explícita, ex: A,C,T,X,Y agent(A)  loc(C,[(X,Y)])  time(T)  in(A,C,T)  horizCoord(X)  verticCoord(Y)  percept(A,C,T,vision,glitter)   O physObj(O)  emit(O,glitter)  in(O,C,T). O physObj(O)  emit(O,glitter)  ouro(O). O ouro(O)  treasure(O). A,C,T,X,Y,O agent(A)  loc(C,[(X,Y)])  time(T)  in(A,C,T)  horizCoord(X)  verticCoord(Y)  in(O,C,T)  treasure(O)  chooseAction(A,T+1,pick(O)).

Tipos de raciocínio Dedução: Abdução: Indução: Analogia: Utilização de conhecimento completo Previsão com conhecimento causal Diagnóstico com conhecimento diagnóstico Abdução: Utilização de conhecimento incompleto Diagnóstico com conhecimento causal Previsão com conhecimento diagnóstico (incomum) Indução: Aquisição (aprendizagem) de conhecimento Analogia: Previsão, diagnóstico com conhecimento diagnóstico ou causal Resolução de restrições:

Dedução Conhecimento Prévio Causal em Intenção X c(X)  e(X) CPEC  CPCI |= NCEE Conhecimento Prévio Causal em Intenção X c(X)  e(X) Prévio em Extensão: Causas Observadas c(a), c(b), ... Novo Conhecimento em Extensão: Efeitos Previstos e(a), e(b) ... Dedução CPDI  CPEE |= NCEC Conhecimento Prévio Diagnóstico em Intenção X e(X)  c(X) Prévio em Extensão: Efeitos Observados e(a), e(b), ... Novo Conhecimento em Extensão: Causas c(a), c(b) ...

Dedução: exemplos A partir de: Deduzir: A partir de: Deduzir: Conhecimento prévio causal em intenção: X,Y,T loc(agent,X,Y,T)  orientation(0,T)  forward(T)   loc(wall,X+1,Y)  loc(agent,X+1,Y,T+1) Conhecimento prévio em extensão de causas observadas: loc(agent,1,1,1)  orientation(0,1)  forward(1)   loc(wall,2,1) Deduzir: Novo conhecimento em extensão de efeito previsto: loc(agent,2,1,2). A partir de: Conhecimento prévio diagnóstico em intenção: X,Y,T loc(agent,X,Y,T)  smell(stench,T)  smelly(X,Y). X,Y smelly(X,Y)  loc(wumpus,X+1,Y)  loc(wumpus,X-1,Y)  loc(wumpus,X,Y+1)  loc(wumpus,X,Y-1)). Conhecimento prévio em extensão de efeito observado smell(stench,3)  loc(agent,2,2,3) Deduzir: Novo conhecimento em extensão de causa hipotética: loc(wumpus,3,2)  loc(wumpus,1,2)  loc(wumpus,2,3)  loc(wumpus,2,1)).

Abdução Conhecimento Prévio Causal em Intenção X co(X)  ca(X)  e(X) Prévio em Extensão: Efeitos Observados e(a), e(b), ... Causais Observadas Incompletas co(a), co(b), ... Novo Conhecimento em Extensão: Causas Hipotéticas ca(a), ca(b) ... Abdução CPCI  CPEC  NCEC |= CPEE Viés sobre Hipóteses: X ca(X)

Abdução: exemplo A partir de: Abduzir: Conhecimento prévio causal em intenção: X,Y,T loc(agent,X,Y,T)  orientation(0,T)  do(forward,T)  loc(wall,X+1,Y)  loc(agent,X,Y,T+1) Conhecimento prévio em extensão incompleto de causas: loc(agent,4,1,1)  orientation(0,1)  do(forward,1) Conhecimento prévio em extensão de efeitos observados: loc(agent,4,1,2) Abduzir: Novo conhecimento em extensão de causa hipotética: loc(wall,5,1)

Indução Conhecimento Prévio Causal em Intenção Incompleto X c(X)  i(X) Conhecimento Prévio em Extensão: Efeitos Observados e(a), e(b), ... Causais Observadas c(a), c(b), ... Novo Conhecimento Causal Hipotético em Intenção X i(X)  e(X) Indução CPCI  NCCI  CPEC |= CPEE Viés sobre Hipóteses: X,Y i(X)  Y(X)

Indução: exemplo A partir de: Induzir: Variação: Conhecimento prévio em extensão: loc(wall,1,1)  loc(wall,0,1)  loc(wall,1,2)  loc(0,2)  ... loc(wall,4,5)  loc(wall,4,4)  loc(wall,3,5)  loc(wall,3,4)  ... Viés sobre hipótese: P1,P2,P3,P4  {>,<,=}, C  {, }, Q1,Q2,Q3  {,}: Q1U1,U2,U3,U4 Q2V1,V2,V3,V4 Q3W P1(U,V1)  P2(U,V2)  P3(U,V3)  P4(U,V4)  loc(W,U,V) Induzir: Novo conhecimento em intenção: X,Y X<1  X>4  Y<1  Y>4  loc(wall,X,Y) Variação: Conhecimento prévio em intenção: X,Y,H,W X<1  X>H  Y<1  Y>W  loc(wall,X,Y)

Indução: exemplo Y P B B? P v6 b v4 v5,7 B? f O v3 v8,10 v9 f W v2 v11 B? P X 7

Analogia Analogia m  l n  l Conhecimento u  l Prévio em Extensão: Causais Observadas c(i), c(j), c(k), ... Efeitos Observados e(i), e(k), e(h), ... Similaridade entre Causas s(c(i),c(j))=m, s(c(j),c(k))=n, ... Similaridade entre Efeitos s(e(i),e(h))=u, s(e(k),e(h))=v, ... m  l n  l u  l v  l Novo Conhecimento em Extensão: Efeitos Previstos e(j) = e(i) ... Causas Hipotéticas c(h) = c(k)... Analogia CPEE  CPES  CPEC | NCEE CPEC  CPES  CPEE | NCEC Regra de inferência: X,Y,P,Q (P(X)  Q(X)  P(Y)  s(P(X),P(Y))  l)  Q(Y)

Analogia: exemplo A partir de: Conhecimento prévio em extensão: ... loc(agent,1,1,3)  orientation(agent,180,3)  do(forward,3)  percept([none,none,none,none,bump],4)  loc(agent,1,1,5)  orientation(agent,90,5)  do(forward,5)  percept([none,none,none,none,none],6)  loc(agent,1,2,7)  orientation(agent,180,7)  do(forward,7)  percept([none,none,none,none,bump],8)  loc(agent,1,2,9)  orientation(agent,90,9)  do(forward,9)  percept([none,none,none,none,none],10) ...  loc(agent,1,3,11)  orientation(agent,180,11)  do(forward,11)  ? Medidas de similaridades: ssa = % de símbolos em comum entre as partes situação e ação das sentenças, desconsiderando as variáveis temporais spp = % de símbolos em comum entre as partes próxima percepção das sentenças, desconsiderando as variáveis temporais Inferir por analogia: percept( [none,none,none,none,bump], 12) Dado que: ssa(sa5,sa1) = 8/9 ssa(sa5,sa2) = 7/9 ssa(sa5,sa3) = 8/9 ssa(sa5,sa4) = 7/9 spp(sa1,sa2) = 6/6

Resolução de Restrições Conhecimento Prévio em Intenção X,Y,P a(P,[X,Y])  c(X)+c(Y)c(P) Novo Conhecimento em Extensão: a(q,[d,f])  a(q,[e,g]) Conhecimento Prévio em Extensão: c(q) = 120  c(d) = 90  c(e) = 60  c(f) = 30  c(g) = 60 Resolução de Restrições CPI  CPE |= NCE CPI  CPE |= NCI Novo Conhecimento em Intenção: X,Y {d,e,f,g} a(q,[X,Y])  c(X)+c(Y) 120

Agente baseado em conhecimento dedutivo ou abdutivo Ambiente Base de Conhecimento Intencional (BCI): regras, classes, formulas lógicas universalmente quantificadas Sensores Não Monotônica Ask Máquina de inferência dedutiva ou abdutiva Tell Ask Retract Base de Conhecimento Extensional (BCE): fatos, objetos formulas lógicas instanciadas Atuadores

Agente baseado em resolução de restrições Ambiente Sensores Base de Conhecimento Intencional (BCI): restrições universalmente quantificadas Tell Ask Retract Máquina de inferência dedutiva ou abdutiva Tell Ask Retract Base de Conhecimento Extensional (BCE): restrições instanciadas Atuadores

Agente baseado em conhecimento analógico Ambiente Sensores Máquina de inferência analógica Tell Ask Retract Base de Conhecimento Extensional (BCE): fatos, objetos formulas lógicas instanciadas estruturados por similaridades Atuadores

Agentes baseados em conhecimento na tipologia de arquiteturas de agentes O agente baseado em conhecimento é: Reflexo? Autômato? Cognitivo? Deliberativo? Otimizador? Adaptativo? Híbrido? Pode ser qualquer um ! Distinções ortogonais Existe alguma relação entre arquitetura de agente e tipo de raciocínio? A qual? Agente adaptativo baseado em conhecimento inclui necessariamente uma máquina de inferência indutiva ou analógica

Lembram do agente deliberativo? Ambiente Interpretador de percepções Regras: percepção(t)  modelo(t-1)  modelo(t) Modelo dos ambientes (passados) e atual Sensores Atualizador do modelo do ambiente Regras: modelo(t)  modelo(t) Atualizador dos objetivos Regras: modelo(t)  objetivos(t-1)  objetivos(t) Objetivos Previsor de ambientes futuros Regras: modelo(t)  ação(t)  modelo(t+1) e modelo(t)  modelo(t+1) Modelo dos ambientes futuros hipotéticos Escolhedor de ação Regras: resultado([ação(t),...,ação(t+n)]) = modelo(t+n)  modelo(t+n)  objetivo(t)  faz(ação(t)) Atuadores

E lembram do agente baseado em conhecimento? Ambiente Sensores Base de Conhecimento Especializada Máquina de Inferência Genérica Ask Tell Retract Atuadores

Como seria então um agente deliberativo baseado em conhecimento? Ambiente Sensores Atuadores BCE: modelo dos ambientes passados e atual modelo de ambientes futuros hipotéticos BCE: Objetivos BCI: interpretação das percepções BCI: atualização do modelo do ambiente BCI: atualização do objetivos BCI: predição de ambientes futuros BCI: estratégia de escolha de ações Máquina de inferência

Arquitetura alternativa Ambiente Máquina de inferência 1 BCI: interpretação das percepções Sensores BCE: modelo dos ambientes passados e atual Máquina de inferência 2 BCI: atualização do modelo do ambiente BCI: atualização do objetivos Máquina de inferência 3 BCE: Objetivos BCE: modelo de ambientes futuros hipotéticos BCI: predição de ambientes futuros Máquina de inferência 4 BCI: estratégia de escolha de ações Máquina de inferência 5 Atuadores

Como se obtém conhecimento? Durante desenvolvimento: Conhecimento em intencao e em extensao inicial Manualmente via codificação direta Semi-automaticamente via interface de aquisição de conhecimento Semi-automaticamente via aprendizagem de máquina (indução off-line) Usando metodologias de engenharia de conhecimento Durante execução: Conhecimento em extensao Automaticamente via percepção, dedução, abdução ou analogia Conhecimento em intencao Automaticamente via analogia ou indução on-line (agente aprendiz situado)

Engenharia do conhecimento Metodologia para desenvolver sistemas baseados em conhecimento e especialmente bases de conhecimento Orientação a objeto (e também métodos formais) em: Linguagens de modelagem, programação e representação do conhecimento Favoreceu interseção e convergência entre engenharia de software e engenharia de conhecimento Problemática comum: Robustez, escalabilidade, estendibilidade, reusabilidade, desenvolvimento distribuído, elicitação do conhecimento de especialista do domínio leigo em informática Desenvolvimento de uma base de conhecimento: Geralmente em espiral com três níveis principais de captura de conhecimento Nível do conhecimento, nível da formalização, nível da implementação

Engenharia de uma base de conhecimento Elicitação do conhecimento Nível do conhecimento: Nos termos do especialista do domínio de aplicação Linguagem natural, Notações gráficas ad-hoc Formalização do conhecimento Nível semi-formal: Notação textual estruturada padrão (XML) Notação gráfica padrão (UML) Validação com especialista Nível formal: Notação sem ambigüidade com semântica definida matematicamente (Lógica, Probabilidades) Verificação de consistência Implementação do conhecimento Nível da implementação: Codificação em uma linguagem de programação Teste de protótipo

Engenharia de uma base de conhecimento Elicitação do conhecimento Nível do conhecimento: Nos termos do especialista do domínio de aplicação Linguagem natural, Notações gráficas ad-hoc Formalização do conhecimento Nível semi-formal: Notação textual estruturada padrão (XML) Notação gráfica padrão (UML) Validação com especialista Nível formal: Notação sem ambigüidade com semântica definida matematicamente (Lógica, Probabilidades) Verificação de consistência Implementação do conhecimento Nível da implementação: Codificação em uma linguagem de programação Teste de protótipo

Engenharia de uma base de conhecimento Entrevistas estruturadas com especialista Preparação de dados Elicitação do conhecimento Formalização do conhecimento Implementação do conhecimento Nível do conhecimento: Nos termos do especialista do domínio de aplicação Linguagem natural, Notações gráficas ad-hoc Nível semi-formal: Notação textual estruturada padrão (XML) Notação gráfica padrão (UML) Validação com especialista Nível formal: Notação sem ambigüidade com semântica definida matematicamente (Lógica, Probabilidades) Verificação de consistência Nível da implementação: Codificação em uma linguagem de programação Teste de protótipo Ontologias Linguagens semi-formais de representação do conhecimento Linguagens formais de representação do conhecimento Aprendizagem de Máquina Compiladores Máquinas de inferências Aprendizagem de Máquina

Agente indutivo off-line: fase de treinamento Base de Conhecimento Intencional (BCI): regras, classes, formulas lógicas universalmente quantificadas Ask Máquina de inferência indutiva Tell Formação de Hipóteses Retract Ask Verificação de Hipóteses Base de Dados, Exemplos, Casos representativos do ambiente fatos, objetos formulas lógicas instanciadas Ask Máquina de inferência dedutiva e/ou abdutiva Tell Retract Ask

Agente indutivo off-line: fase de utilização Ambiente Base de Conhecimento Intencional (BCI) construída por indução: regras, classes, formulas lógicas universalmente quantificadas Sensores Ask Máquina de inferência dedutiva e/ou abdutiva Tell Ask Retract Base de Conhecimento Extensional (BCE): fatos, objetos formulas lógicas instanciadas Atuadores

Agente indutivo situado Ambiente Retract Base de Conhecimento Intencional (BCI): regras, classes, formulas lógicas universalmente quantificadas Sensores Máquina de inferência indutiva Tell Formação de Hipóteses Ask Verificação de Hipóteses Máquina de inferência dedutiva e/ou abdutiva Ask Base de Conhecimento Extensional (BCE): fatos, objetos formulas lógicas instanciadas Tell Retract Atuadores