Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"
Rc intro fatoreg mp13pr
1. AI: RC - intro - F.Giorno
IA
Representação de
Conhecimento
Fatos, Objetos e Regras
"Knowledge and power meet in one"
Francis Bacon, grande inspirador da moderna ciência
Com a prudência baconiana, o Reino Unido e seu herdeiro cultural, os EUA, tornaram-se donos do mundo
Roberto Romano, professor de Filosofia da Unicamp [Tendências / Debates, Folha, 16/7/01]
2. AI: RC - intro - F.Giorno
Introdução ao Curso
Inteligência Artificial (cap 4)
Introdução, Visualizações Alternativas, Fundamentos e Sub-áreas
Método do Espaço de Estados (MEE) e Classificação Heurística
Sistemas Especialistas (cap 6)
Fundamentos
Utilização
Introdução nas Empresas
Desenvolvimento
Complementos
Representação de Conhecimento (cap 5)
Fatos, Objetos e Regras de Produção
Exercícios, Atividades e Labs
SBCs - Conceitos e Desenvolvimento
3. AI: RC - intro - F.Giorno
BC MT
regras
processamento
Motor de Inferência
(MI)
Sistema computacional no qual um programa interpretador
(Motor de Inferência - MI), com base nos dados correntes
armazenados na Memória de Trabalho (MT), escolhe e aplica
regras de inferência armazenadas em uma Base de
Conhecimento (BC) para realizar tarefas do domínio.
dados
Sistema Baseado em Conhecimento (SBC)
4. AI: RC - intro - F.Giorno
Programa Dados
BC MI MT
Sistema
Convencional
SBC
conhecimento
específico
sobre a
aplicação
5. AI: RC - intro - F.Giorno
Base de Conhecimento (BC)
Repositório onde o conhecimento é
armazenado de forma:
legível
inspecionável
modificável
(Inteligência requer Conhecimento)
BC
6. AI: RC - intro - F.Giorno
Base de Dados Base de Conhecimento
info a nível operacional (dados)
uso via programas
transacionais e geradores de
relatórios
descrição e operação com
base em entidades individuais
base para a solução de
problemas algoritmicos
info a nível abstrato (conhecimento)
uso via programs tipo máquina
ou mecanismo de inferência
descrição e operação com base
em fatos, objetos individuais,
coleção de objetos e classes
base para a solução de
problemas não passíveis de
solução algoritmica
7. AI: RC - intro - F.Giorno
Inteligência e Conhecimento em IA
Inteligência em IA: enfoque indireto
Conhecimento em IA: enfoque pragmático e específico
““““Conhecimento”””” sobre um Domínio de Problemas
–identificar fatos e conceitos relativos ao domínio
–compreender os problemas do domínio
–adquirir senso comum, heurísticas e crenças por meio de
experiência no domínio
–possuir habilidades para resolver problemas no domínio
Inteligência requer Conhecimento
Todo sistema de IA depende da existência de uma BC
9. AI: RC - intro - F.Giorno
Conhecimento
Procedimental / Imperativo
conhecimento na forma de
algoritmos (cjto de passos
consistentes e precisos para resolver
um problema)
Tipos de Conhecimento
Conhecimento
Declarativo / Não-Procedimental
conhecimento na forma de fatos,
assertivas, relações, regras,
heurísticas ...
codificado na forma de estrutura de
dados pois conhecimento
declarativo desempenha o papel de
dados para os procedimentos de
interpretação
10. AI: RC - intro - F.Giorno
Conhecimento
Procedimental / Imperativo
prescrição de como uma tarefa
deverá ser efetuada
how to do
implementada por linguagens de
programação convencionais
Conhecimento
Declarativo / Não-Procedimental
descrição de conhecim/ relevante
para resolver alguma tarefa
what I know
implementada por linguagens de
programação que suportam
processamento simbólico (Lisp,
Prolog, Ferrs IA ...) e, de forma
integrada, regras, objetos, casos e
procedimentos
Tipos de Conhecimento
11. AI: RC - intro - F.Giorno
Conhec Declarativo / Não-Procedimental
Carburador é um elemento do motor.
Bicicleta é um meio de transporte
Há uma associação positiva entre
fumo e câncer.
Um número primo é um número
inteiro que tem no máximo 2
divisores.
A tensão entre 2 pontos é o produto
da resistência existente entre os 2
pontos pela intensidade da corrente
que circula entre os mesmos 2
pontos.
Se o motor não pega e o farol acende,
suspeite do carburador.
Se o paciente é uma criança enfoque
inicialmente doenças infantis.
Conhecimento Procedimental e Declarativo - exemplos
Conhec Procedimental / Imperativo
Calcule a relação entre o preço e o
lucro de uma ação. Se esta relação
for maior que 12, pare sua
pesquisa pois o investimento é de
alto risco. Caso contrário, se esta
relação for menor que 12 , analise
o balanço da empresa.
Teste se um objeto é uma
instância de uma classe.
Crie um novo obj de um dado tipo.
Encontre objs relacionados.
Efetue processamento implicado
pela descrição do obj.
Envie msg a outro obj.
Receba e responda msg enviada
por outro obj.
12. AI: RC - intro - F.Giorno
Benefícios
suporta a representação de
conhecimento de como fazer
coisas
viabiliza a implementação e o uso
de conhecimento declarativo
viabiliza a implementação de
como fazer inferências
Desvantagens
mistura conhecimento com
controle
difícil de ler, verificar ou examinar
difícil de alterar pois o
conhecimento está implícito nos
procedimentos
pouco flexível, sendo usualmente
adotado para uma finalidade
específica
Conhecimento Procedimental
13. AI: RC - intro - F.Giorno
Desvantagens
demanda controle procedimental
Conhecimento Declarativo
Benefícios
separa conhecimento de controle
fácil de ler, examinar e alterar
flexível, podendo ter usos
alternativos
cada assertiva só precisa ser
armazenada uma única vez,
independente do no de maneiras
diferentes nas quais possa ser
utilizada
fácil de acrescentar novas
assertivas ao sistema
14. AI: RC - intro - F.Giorno
Contribuição de Clancey (Stanford)
derivada da análise, seguida da re-engenharia, do sistema especialista MYCIN
Conhecimento
Estático
Dinâmico
Controle
+ Conhecimento de Suporte
16. AI: RC - intro - F.Giorno
Representação de Conhecimento
Conjunto de convenções sintáticas e semânticas que permite
descrever conhecimento associado a um domínio de
problemas
Envolve sintaxe, semântica e método de dedução
Requisitos:
poder de expressão (adequacidade representacional)
conveniência notacional (codificação / legibilidade / transparência)
modularidade
generalidade
eficácia inferencial
potência heurística
suporte para o tratamento de raciocínios inexatos
balanço declarativo / procedimental (extensão na qual o conhecimento
inserido no sistema pode ser separado do modo como ele será usado)
eficiência implementacional
17. AI: RC - intro - F.Giorno
Conh Humano vs Conh Artificial
Vantagens
Perecível Permanente
Difícil de Transferir Fácil de Transferir
Difícil de Documentar Fácil de Documentar
Imprevisível Consistente
Dispendioso Acessível
Vantagens
Criativo Não Inspirado
Adaptativo Deve ser fornecido
Experiência Sensorial Entrada Simbólica
Enfoque Amplo Enfoque Estreito
Senso Comum Técnico
18. AI: RC - intro - F.Giorno
Fatos
Objetos e Conceitos
Eventos, Episódios (casos)
objetos envolvidos
pré / pós condições
relações com outros eventos (seqüencial, causal . . .)
Procedimentos
como fazer coisas
como gerar comportamento relevante p/ atender objetivos ou resolver problemas
Definições, Leis e Axiomas (princípios básicos)
Regras do Mundo Real, Regras Operacionais, Regras de Negócios,
Normas, Heurísticas . . .
Metaconhecimento (conhecimento sobre conhecimento)
como selecionar métodos e estratégias p/ solução de problemas
como monitorar, diagnosticar, tratar e refinar dinamicamente o desempenho do sistema
O Que Representar?
19. AI: RC - intro - F.Giorno
Fatos
listas, triplas OAV, predicados em Lógica (FOL)
Objetos e Conceitos
objetos (de software), frames
Eventos, Episódios (casos)
objetos
Procedimentos
procedimentos, funções e métodos
Definições, Leis e Axiomas (princípios básicos)
regras de produção ou inferência
Regras do Mundo Real, Regras Operacionais, Regras de Negócios,
Normas, Heurísticas . . .
regras de produção ou inferência
Metaconhecimento (conhecimento sobre conhecimento)
metaregras, arquiteturas em meta-nível
O Que e Como Representar?
20. AI: RC - intro - F.Giorno
Métodos de Representação e Processamento de Conhecimento
Dados e Fatos do Mundo Real (MR)
representação: listas, predicados em FOL, variáveis . . .
processamento: regras atuando sobre fatos
Objetos: permitem organizar e estruturar conhec/ de modo natural e eficiente
representação: Modelo do Domínio
processamento: passagem de mensagens, regras atuando sobre objetos
Regras do MR, Operacionais, de Negócios, Normas, Heurísticas . . .
representação: SE <condições > ENTÃO < ações ou conclusões >
antecedentes representam condições (padrões) enquanto
conseqüentes representam ações a serem tomadas ou
conclusões atingidas
processamento: encadeamento direto / inverso / oportunístico
Metaconhecimento: conhecimento sobre conhecimento
representação: metaregras / arquiteturas em meta-nível
processamento:
21. AI: RC - intro - F.Giorno
Métodos de Representação e Processamento de Conhecimento
Lógica (First Order Logic - FOL)
representação de conhecimento axiomático por meio de proposições lógicas e
relações entre proposições, possibilitando derivar novos fatos
base para outros formalismos de RC
forma de representação independente
representação: fórmulas bem definidas em FOL (assertivas e relações)
processamento: resolução / unificação
22. AI: RC - intro - F.Giorno
Representação de Conhecimento
Fatos
do Mundo Real
23. AI: RC - intro - F.Giorno
Desenvolvimento de Sistemas Computacionais
Estático
Dinâmico
Controle
• Estrutura de Dados
• Modelo do Domínio
• fatos
24. AI: RC - intro - F.Giorno
Representação de Fatos
predicado em Lógica (FOL): predicado(arg1, arg2 . . . argN)
lista: (elemento1 elemento2 . . . elementoN)
– tripla OAV ou tripla associativa: (objeto atributo valor)
lista ordenada consistindo do nome de um objeto, o nome de um
atributo específico do objeto e o valor do atributo
Objeto entidade real ou conceitual
Atributo propriedade ou característica do objeto
Valor medida específica associada com o atributo em
uma dada situação
Exemplos: Objeto Atributo Valor
emprestimo taxaJuro 12
imovel areaTerreno 450
carro cor branca
estoque nivel 30
25. AI: RC - intro - F.Giorno
Representação por Triplas OAV - uma obs
OAV caracteriza um tipo de
memória associativa
Então:
A deve ser um atributo (propriedade,
característica) do objeto O, assim
como V deve ser um valor do atributo
A do mesmo objeto O.
26. AI: RC - intro - F.Giorno
Representação de Fatos - exemplos
O primeiro organismo tem sempre a forma de haste.
(organismo-1 forma haste) ; OAV
A profundidade da terceira camada é de 3.000 metros.
(camada-3 profundidade 3000) ; OAV
(camada 3 profundidade 3000 metros) ; lista
A identidade do alvo sete é desconhecida.
(alvo-7 identidade desconhecida) ; OAV
(alvo-7 desconhecido) ; OV/AV
Fadiga domina o estado de stress na parte da estrutura
identificada como sub-estrutura 1.
(subEstrutura1 estadoStress fadiga) ; OAV
27. AI: RC - intro - F.Giorno
Criação / Remoção de Fatos usando shells IA
Fatos são armazenados na MT
Criação de fato na MT:
(assert (fato))
exemplo: (assert (brasil presidente dilma)
na MT: f-13 (brasil presidente dilma)
(deffacts identificador ;;; cmd definicional
(fato1)
(fato2) . . . )
Remoção de fato da MT:
(retract numero-do-fato)
exemplo: (retract 13)
28. AI: RC - intro - F.Giorno
Representação de Conhecimento
Regras
do Mundo Real
29. AI: RC - intro - F.Giorno
Se o cliente é não-fumante, o desconto em seu seguro de
vida é de US$ 50, por mês.
Se o cliente tem status de Platinum, oferecer Seminário de
Planejamento Financeiro Executivo.
Desligar a caldeira caso a temperatura ultrapasse 300ºC.
Se o motor não pega e não há corrente no motor de partida
verifique a bateria.
Toda pessoa que trabalha no setor privado tem direito a
aposentadoria integral após 30 anos de contribuição e 60 anos
de idade se for mulher ou após 35 anos de contribuição e 65
anos de idade se for homem.
Anormalidade renal conduz a anormalidade na anatomia
urológica. Infecção no trato urinário e anormalidade na
anatomia urológica permitem concluir com 80% de certeza
que a identidade do organismo é enterococcus.
Regras no Mundo Real - exemplos em diferentes domínios
30. AI: RC - intro - F.Giorno
Estático
Dinâmico
Controle
• regras de produção ou inferência
Sistemas Computacionais
• Estrutura de Dados
• Modelo de Domínio
• Fatos
31. AI: RC - intro - F.Giorno
Regras de Produção ou Inferência
permitem
representar conhecimento
do mundo real
passível de ser expresso na forma de
regras
Inferência proposição ou generalização derivada pelo raciocínio
a partir de outras proposições ou da evidência.
32. AI: RC - intro - F.Giorno
Definem a lógica de uma aplicação
de forma separada
do modo como são processadas (encadeamento)
Cada regra é: uma direção para fazer alguma coisa
se alguma outra coisa for verdade
SE < condições > ENTÃO < ações ou conclusões >
Condição (cláusula cujo conteúdo pode ser verificado se V)
ação (cláusula cujo conteúdo pode ser processado)
conclusão (cláusula cujo conteúdo pode ser apresentado)
Cláusulas podem referirem-se a valores de parâmetros. Ex:
SE (ceu cor cinzenta) e (vento velocidade ?v / (> ?v 30) )
ENTÃO (assert (tempo predicao "chuva") )
Regras de Produção ou Inferência
33. AI: RC - intro - F.Giorno
Conduzem à Programação Baseada em Regras
Estilo de programação que permite representar
conhecimento relativo a um domínio de problemas de
forma declarativa / procedimental por meio de regras
independentes, não-ordenadas e separadas do modo como
são processadas (técnicas de encadeamentos).
IF < premissa > THEN < ações ou conclusões >
premissa: { < condição 1 > , < condição 2 > . . . }
Regras
respondem / reagem a alterações nos dados, sempre que elas
ocorrem, de forma independente do fluxo de controle, podendo ser
executadas (disparadas), em uma ordem baseada na ordenação
dinâmica destas alterações
definem a lógica de uma aplicação de forma separada do modo como
são processadas (encadeamento)
Regras de Produção ou Inferência
34. AI: RC - intro - F.Giorno
Condições de uma regra
são cláusulas, definindo condições (padrões) de regras - também
chamadas de antecedentes da regra (LER) - passíveis de match com fatos e
objetos da MT
podem incluir vars cuja instanciação ocorre por matching ou designação
podem incluir testes sobre valores de vars
são implicitamente conectadas por AND
podem ser em número ilimitado
são avaliadas na ordem top-down
Ações de uma regra
são cláusulas que definem os conseqüentes da regra (LDR)
efetuam processamento: cálculos, passagem de msgs. . .
podem alterar a MT:
– criando novos fatos e objetos
– removendo (retracting) fatos e objetos da MT, não mais válidos na situação
corrente de solução do problema
– processando fatos e objetos
Regra de Produção - condições e ações
35. AI: RC - intro - F.Giorno
Regra de Produção - nomenclaturas alternativas
SE < premissa > ENTÃO < ações ou conclusões >
SE < condições > ENTÃO < ações ou conclusões >
SE < padrões > ENTÃO < ações ou conclusões >
SE < antecedentes > ENTÃO < conseqüentes >
SE < LER > ENTÃO < LDR >
LER: Lado Esquerdo da Regra
LDR: Lado Direito da Regra
Obs: < condição > é referida por < padrão > em alguns shells
36. AI: RC - intro - F.Giorno
SE
a infecção é meningite ; condicão1
o tipo de infecção é bacteriana ; condição2
nenhum organismo foi diretamente identificado ; condição3
há disponibilidade de valores de análise sangüínea ; condição4
a contagem de leucócitos é menor que 2.500 ; condição5
ENTÃO
os organismos que podem estar causando a infecção são:
pseudomonas (.5)
klebisiella (.5)
e. coli (0.75) ; conclusão
Exemplo de Regra em LN - MYCIN: regra 557
37. AI: RC - intro - F.Giorno
Exemplos
de
Modelagem
38. AI: RC - intro - F.Giorno
“Quando as luzes do carro estão fracas e o motor de partida não aciona,
carregue ou substitua a bateria - ver seção 7-4 do Manual.”
SE as luzes do carro estão fracas E ;;; linguagem natural
o motor de partida não aciona
ENTÃO carregue ou substitua a bateria - ver seção 7-4 do Manual
SE (farol alcance fraco) ;;; estruturacao OAV
(motorPartida comportamento naoAciona)
ENTÃO (imprima "Carregue ou substitua bateria - ver seção 7-4 do Manual")
(defrule r3-farol ;;; sintaxe CLIPS, A*E . . .
(luzFarol estado acesa)
(luzFarol alcance fraco)
(motorPartida comportamento ~aciona)
=>
(printout t "carregue ou substitua a bateria - ver seção 7-4 do Manual" t) )
Regra em Sistema de Diagnose - exemplo
39. AI: RC - intro - F.Giorno
“Para clientes que desejam investir uma quantia pequena em
renda fixa, sem correr riscos, a recomendação deve ser
poupança.” (regra de negócio)
SE cliente deseja investir em renda fixa ; regra prod em LN
cliente não deseja correr risco
cliente não dispõe de grande quantia para investir
ENTÃO
cliente deve investir em poupança
(defrule r1-inv-poup ;;; sintaxe CLIPS, A*E . . .
(cliente categoriaPreferencialInvestimento rendaFixa)
(cliente perfilRisco conservador)
(cliente disponibilidadeInvestimento baixa)
=>
(assert (cliente recomendacaoInvestimento poupanca))
Regra de Produção - exemplo
40. AI: RC - intro - F.Giorno
“Se o período de consultoria previsto for superior a um mês, os
consultores designados devem reportar-se diretamente ao cliente
e resolver possíveis problemas relativos à pós-venda.”
Representar a regra de negócio abaixo por regras de
produção estruturadas por triplas OAV e variáveis (onde
aplicáveis)
42. AI: RC - intro - F.Giorno
Pattern Matching
Função básica requerida pela maioria dos
Sistemas de IA.
É parte essencial de operações mais complexas
de Sistemas de IA, tais como busca e controle.
Pode consumir uma boa fração do tempo de
processamento. Devido a isso, Sistemas de IA
eficientes necessariamente incluem técnicas
eficientes de matching.
43. AI: RC - intro - F.Giorno
Pattern Matching
Operação essencial em diversos Sistemas de IA
para:
controle de uma seqüência de operações
identificação ou classificação de objetos
determinação de um dado valor no meio de
diferentes alternativas
recuperação de itens de uma Base de Dados
. . .
44. AI: RC - intro - F.Giorno
Pattern Matching
Usado em uma variedade de Sistemas de IA. Exs:
Reconhecimento de Voz,
Compreensão de Linguagem Natural
Visão
Aprendizado
Raciocínio Automatizado
Planejamento
Programação Automática
Sistemas Especialistas
. . .
45. AI: RC - intro - F.Giorno
Pattern Matching
Técnica que permite comparar expressões simbólicas
para verificar se
uma dada expressão é similar a outra.
As expressões simbólicas (ou estruturas) comparadas podem
representar uma ampla faixa de objetos incluindo, entre outras,
entidades físicas,
palavras ou frases em alguma linguagem,
classes de coisas,
conceitos gerais,
relações entre entidades complexas.
46. AI: RC - intro - F.Giorno
Pattern Matching no Contexto de Sistemas de Produção
Técnica que permite comparar
cada condição (padrão) de uma regra de produção
com fatos ou instâncias da MT:
se for possível estabelecer a igualdade sintática
entre a condição e um fato ou instância da MT
a condição da regra torna se verdadeira
para o fato ou instância comparado.
47. AI: RC - intro - F.Giorno
Pattern Matching
O match falha se uma expressão simbólica
(padrão) diferir da outra expressão simbólica
(objeto alvo da comparação) em qualquer aspecto.
Por exemplo, considere os strings de caracteres:
"acdebfba" e "acdebeba"
O match falha pois os strings diferem no sexto
carácter.
O mesmo ocorre com os strings:
"acdebfba" e "acdebFba"
48. AI: RC - intro - F.Giorno
Pattern Matching
Em casos mais complexos o processo de
matching pode demandar transformações nos
padrões de modo a atingir a igualdade sintática.
Por exemplo, considere as listas:
(a b (c d) e f) e (a b ?x e f)
O match ocorrerá com sucesso desde que a variável ?x
seja instanciada com a sub-lista (c d).
Mas, no caso das listas:
(a b (c d) e f) e (a b ?x e ?x)
o match falhará pois a variável ?x não pode ser
instanciada com 2 diferentes valores.
49. AI: RC - intro - F.Giorno
“Novos projetos de investimento com taxa de retorno
estimada acima de 30% devem ser considerados viáveis.”
(regra de negócio)
SE (projInv estado novo ou recente)
(projInv roiEstimado ?roi / (> ?roi 30))
ENTÃO (assert (projInv avaliacao viavel))
(imprima “A estimativa de retorno da ordem de ”
?roi “ % torna o projeto viável”)
(defrule r-projInvestimento
(projInv estado novo | recente)
(projInv roiEstimado ?roi &: (> ?roi 30))
=>
(assert (projInv avaliacao viavel))
(printout t “A estimativa de . . . ” ?roi “ % torna o . . . ” t) )
Pattern Matching - exemplo
50. AI: RC - intro - F.Giorno
MT
. . .
f-11 (projInv retEstimado 34)
. . .
f-27 (projInv estado recente)
. . .
BC
(defrule r-projInvestimento
(projInv estado novo | recente) ; match c/ f-27
(projInv retEstimado ?roi &: (> ?roi 30)) ; match c/ f-11
=> . . .
Pattern Matching - exemplo
51. AI: RC - intro - F.Giorno
Lista prioritizada, revisada a cada ciclo do MI, de
cópias de regras (ativações) esperando para serem
executadas
Sempre que cada condição de uma regra de
produção faz “match” com um fato ou um objeto
da Memória de Trabalho (MT):
a regra torna-se apta para execução (disparo) e é ativada
uma cópia da regra, chamada ativação, é criada e colocada na
agenda
a execução (disparo) da regra, se ocorrer, implica que suas
ações são executadas ou suas conclusões são atingidas
Agenda
52. AI: RC - intro - F.Giorno
Agenda
revisada a cada ciclo do MI
pode ser examinada e monitorada em tempo de
desenvolvimento, fornecendo subsídios para o
aprimoramento do SBC em construção
Exemplo:
0 r1 f-3
0 r35 f-11 obj52
0 r17 f-3 f-73 obj8 obj37
53. AI: RC - intro - F.Giorno
(defrule nomeDaRegra
(declare (salience n)) ; n entre - e +
. . .
Excessive use of priorities
to control rule activations
can interfere with the
"opportunistic" nature
of an Expert System
and should be avoided.
Declarando Prioridade de uma Regra
54. AI: RC - intro - F.Giorno
SE inflação é alta ; LN
ENTÃO preço de imóvel é alto
r1-imovel: SE (economia inflacao alta) ; estrut OAV
ENTÃO (assert (imovel preco alto) )
Execução (disparo) de Regra
BC MT
r1-imovel
(economia inflacao alta)
(imovel preco alto)
Regras são executadas (disparadas)
com base na regra de inferência
lógica Modus Ponens
A B
A
B
novo fato
55. AI: RC - intro - F.Giorno
Processamento de Regras
Máquina de Inferência
(MI)
Base de Conhecimento
(BC)
Memória de Trabalho
(MT)
56. AI: RC - intro - F.Giorno
MI
BC MT
regras estado corrente
do sistema
interpretador de regras
Processamento de Regras
57. AI: RC - intro - F.Giorno
Encadeamento Direto ou Progressivo
(Forward Chaining)
–ocorre dos antecedentes para os conseqüentes das regras
–ativado por dados
Encadeamento Inverso ou Regressivo
(Backward Chaining)
–ocorre dos conseqüentes para os antecedentes das regras
–ativado por hipóteses
Encadeamento Oportunístico
–combinação dinâmica dos encadeamentos direto e
inverso
Processamento de Regras
58. AI: RC - intro - F.Giorno
Encadeamento Direto ou Progressivo (Forward Chaining)
Encadeamento de regras dos antecedentes para os
conseqüentes
Demanda inicialização de dados (data-driven)
Inicialização
de Dados
BD
Resultados
Encadeamento
Direto
59. AI: RC - intro - F.Giorno
Reconhecimento
match
conds de regras vs dados
Seleção
Resolução de Conflitos
Ação
execução (disparo) da
1a regra da Agenda
Critérios
• mais prioritária
• mais específica
• mais recente
• . . .
dados: fatos, objetos . . . da MT
Raciocinando com Regras: Ciclo de Encadeamento Progressivo
60. AI: RC - intro - F.Giorno
inferência ocorre de modo progressivo dos dados p/ solução
regras são interpretadas por meio do ciclo de controle
Reconhecimento
antecedentes (condições) de regras são matched contra dados
correntes (fatos e instâncias) da MT para identificar o conjunto
de regras aptas para disparo no ciclo
Seleção
regras identificadas como aptas para disparo no ciclo são
colocadas na agenda, ordenadas de acordo com critérios de
Resolução de Conflitos
Ação
primeira regra da agenda é selecionada e executada: seus
conseqüentes podem conter ações que alteram o estado
corrente da MT influenciando os antecedentes de outras regras
para o próximo ciclo
Raciocinando com Regras: Ciclo de Encadeamento Progressivo
61. AI: RC - intro - F.Giorno
Encadeamento Progressivo - exemplo 1
Base de Conhecimento
(BC)
Memória de Trabalho
(MT)
r1: A
r2: B
Máquina de Inferência
(MI)
B
C
62. AI: RC - intro - F.Giorno
Encadeamento Progressivo - exemplo 1
Base de Conhecimento
(BC)
Memória de Trabalho
(MT)
r1: A
r2: B
Máquina de Inferência
(MI)
B
C
A ; dado inicial
B ; dado intermediário
C
63. AI: RC - intro - F.Giorno
Encadeamento Direto - exemplo 2
A
E
G H
C
B
r1: F & B Z
r2: C & D F
r3: A D
MT:
BC:
64. AI: RC - intro - F.Giorno
Encadeamento Direto - exemplo 2
A
E
G H
C
F B
D
Z
A
E
G H
C
B
A
E
G H
C
F B
D
A
E
G H
C
B
D
r1: F & B Z
r2: C & D F
r3: A D
r1: F & B Z
r2: C & D F
r3: A D
r1: F & B Z
r2: C & D F
r3: A D
match match match
executa executa executa
A D
C
F
B
Z
Cadeia de Inferência: r3 r2 r1Encadeamento:
Resultado Final: Z
MT:
65. AI: RC - intro - F.Giorno
Resolver
Regras:
r1: M -> R, S
r2: F, E -> H
r3: H -> G
r4: R, E -> G
r5: C, D -> F
r6: A, B -> C
Dados: A, B, D, E
66. AI: RC - intro - F.Giorno
Tempo quente e atmosfera úmida implicam a provável
ocorrência de temporal.
Temperatura ambiente acima de 32º C indica tempo quente.
Umidade relativa do ar maior que 65 % torna a atmosfera
úmida.
Exemplo: Predição de Tempo - algumas inferências
67. AI: RC - intro - F.Giorno
r1: SE a taxa de juros diminui
ENTÃO o preço das ações aumenta
r2: SE a taxa de juros aumenta
ENTÃO o preço das ações diminui 3
r3: SE a taxa de juros permanece inalterada
ENTÃO o preço das ações permanece inalterado
r4: SE o dólar aumenta
ENTÃO a taxa de juros diminui
r5: SE o dólar diminui 1
ENTÃO a taxa de juros aumenta 2
r6: SE o preço das ações diminui
ENTÃO compre ações
r7: SE o preço das ações aumenta
ENTÃO invista em renda fixa
Encadeamento Direto
efetuado: r5 r2 r6
Conjuntura Econômica:
taxa do dólar em declínio
BC: Sistema de Apoio a Decisão Financeira
68. AI: RC - intro - F.Giorno
Programação Baseada em Regras
tem como ponto focal a solução do problema ao
invés do fluxo de controle
simplifica manutenções
indicada para aplicações envolvidas com
exploração de grande número de opções (problemas altamente
combinatórios)
processamento simbólico
legibilidade do conhecimento representado
apoio à decisão mesmo com informações incompletas ou
incertas
automatização da perícia humana
conservação, consolidação e comunicação de conhecimento
solução de problemas de interpretação ou construção
. . .
69. AI: RC - intro - F.Giorno
Um paciente usando lentes duras por 3
anos ou mais ou lentes gelatinosas por 18
meses ou mais deve trocar as suas lentes
por um novo par do mesmo tipo pois estas
excederam o seu tempo médio de vida útil.
Representar o conhecimento abaixo por regras de
produção, passíveis de encadeamento, estruturadas por
triplas OAV e variáveis (onde aplicáveis)
70. AI: RC - intro - F.Giorno
SE (lente tipo dura)
(lente tempoUso ?t / (>= ?t 36)) ;;; em meses
ENTÃO
(assert (paciente recomendacao trocarLente))
SE (lente tipo gelatinosa)
(lente tempoUso ?t / (>= ?t 18)) ;;; em meses
ENTÃO
(assert (paciente recomendacao trocarLente))
SE (paciente recomendacao trocarLente)
ENTÃO
(imprima "Lentes excederam tempo médio de vida útil:
devem ser trocadas por lentes do mesmo tipo.")
71. AI: RC - intro - F.Giorno
Tratamento
de
Regras de Negócios
72. AI: RC - intro - F.Giorno
Regra de Negócio
Declaração para se definir ou restringir algum
aspecto do negócio. Tem como objetivo fazer
valer a estrutura do negócio ou controlar ou
influenciar o comportamento do negócio.
Business Rule Group
Regras de Negócios
São cidadãs de primeira classe no Mundo dos
Requisitos;
Estão separadas do processo de negócios.
73. AI: RC - intro - F.Giorno
Regra de Negócio
Como a empresa define suas políticas, seus
procedimentos e suas práticas.
Se o cliente é não-fumante, o desconto em seu seguro de vida é
de US$ 50, por mês.
Se o cliente tem status de Platinum, oferecer Seminário de
Planejamento Financeiro Executivo.
A retirada de uma conta pode ser feita somente se o saldo da
conta for maior que zero.
Um cliente deve ser considerado de alto valor se é VIP; se tem
saldo médio em sua conta corrente de ao menos X; se mantém a
sua conta por mais que Y anos.
. . .
As regras de negócio geralmente são alteradas várias vezes durante o
desenvolvimento e após a implantação do sistema; portanto, flexibilidade e
manutenibilidade são atributos cruciais.
74. AI: RC - intro - F.Giorno
Segundo Ross [2003]:
A representação precisa das decisões do
negócio é a maior vantagem no uso de Regras
de Negócio.
O envolvimento direto das pessoas do negócio
na definição de sistemas de software é
fundamental.
Ross,R.G., Principles of the Business Rule Approach, Addison-Wesley, 2003.
75. AI: RC - intro - F.Giorno
Segundo Ross [2003], em um projeto de sistema de software
deve-se observar em relação às RNs:
RNs devem ser escritas e explicitamente representadas.
RNs são independentes de processos e procedimentos.
RNs são motivadas por fatores identificáveis e importantes do
negócio.
RNs devem ser acessíveis por pessoas autorizadas.
RNs são atômicas e não duplicáveis.
RNs devem ser especificadas por pessoas que detém o
conhecimento do negócio.
RNs devem ser gerenciáveis.
Ross,R.G., Principles of the Business Rule Approach, Addison-Wesley, 2003.
76. AI: RC - intro - F.Giorno
Categorias de Regras de Negócios
Regras de Negócios
Regras de Restrição
Regras de Estímulo / Resposta
Regras de Restrição sobre Operações
Regras de Restrição sobre Estrutura
Regras de Derivação
Regras de Inferência
Regras de Processamento Algoritmico
Martin,J. and J.J.Odell, Object-Oriented Methods: A Foundation, cap.20, Prentice-Hall, 1998.
77. AI: RC - intro - F.Giorno
Abordagens para Implementar RNs aos Sistemas de SW
Programação Convencional e na forma de triggers e stored
procedures em BDs
Arquiteturas Orientadas a Meta-Dados
Padrões de Projetos Dinâmicos
Desenvolvimento Baseado em Componentes
Sistemas Reflexivos e Meta-programação
Programação Orientada a Aspectos (AOP)
Linguagens de Programação como Java e .NET
Linguagens IA (suportam Regras de Produção):
Art-Enterprise, Clips, Jess . . .
Observar que o conceito de RN pode ser aplicado
independente do método utilizado para o desenvolvimento de software.
78. AI: RC - intro - F.Giorno
Problemas com a Implementação de RNs
A transposição ds RNs em código fonte ou estruturas do
Banco de Dados está associada a problemas do tipo:
perda na semântica das regras;
instruções espalhadas por grande parte da aplicação, e
sem ligação aparente entre si;
alteração difícil;
inexistência de documentação que indicaria os locais
onde as regras se encontram no código fonte.
79. AI: RC - intro - F.Giorno
Problemas com a Implementação de RNs
"A representação de RNs em código e seu conseqüente
vínculo ao tempo de desenvolvimento e compilação das
aplicações é a causa da grande dificuldade de alteração
das RNs.
Isto conduz a dificuldades como custo elevado, tempo
desperdiçado e erros difíceis de localizar."
Johnston,T., Business Rules, Meta Data and Late Binding, DM Direct News letter, DM Review
Magazine, February 16, 2001. Disponível em <http://www.dmreview.
com/article_sub.cfm?articleld=3066>. Acesso em 10/01/06.
80. AI: RC - intro - F.Giorno
Problemas com a Implementação de RNs
"As RNs são normalmente implementadas no corpo dos
diversos métodos de um objeto de negócio. Essa regras
normalmente referem-se a outras regras e,
conseqüentemente, aos objetos que as contêm. Muitas
vezes, uma única regra pode ser implementada através de
diferentes métodos, classes, módulos e camadas de uma
aplicação, gerando uma rede de dependências difícil de
localizar e alterar."
Arsanjani,A., Rule Pattern Language: A Pattern Language for Adaptive Manners and Scalable
Business Rule Design and Construction, In Proc. of the 39th Int´l Conf. and Exibition on
Technology of Object-Oriented Languages and Systems (TOOLS´01), 2001.
81. AI: RC - intro - F.Giorno
Arquitetura de Três Camadas
Objetos da Interface de Usuário
Telas, Botões, ...
Objetos do Modelo da Aplicação
Cliente, Produto, ...
Objetos de Mapeamento de BDs
Cliente-map-1, Produto-map-1, ...
GUI
Data Base
Nome
Empregado
EmpTab
Nome Titulo Salario
Jones Mgr 55K
Smith VP 75K
Título
Salário
nome
titulo
salario
Modelo da
Aplicação
82. AI: RC - intro - F.Giorno
Regras de Negócios
GUI
Data Base
Modelo da
Aplicação
• Espalhadas
• Na sintaxe do programa
• Entrelaçadas (entwined)
na lógica de controle
83. AI: RC - intro - F.Giorno
Regras de Negócios
Modelo da
Aplicação
GUI
Data Base • Centralizadas
• Linguagem dos Negócios
• Declarativas
• Oportunísticas
Motor de
Inferência BC
84. AI: RC - intro - F.Giorno
Representação de Conhecimento
Extensões
Metaconhecimento, Metaregras e Rulesets
Representação e Tratamento de Conhecimento Incerto
85. AI: RC - intro - F.Giorno
Metaconhecimento
Conhecimento sobre o conhecimento acerca de um
determinado problema ou domínio de problemas.
isto é
conhecimento acerca do conteúdo, estrutura e uso
do conhecimento do domínio
[Davis e Buchanan, 1977; Davis, 1980]
86. AI: RC - intro - F.Giorno
Inclui
métodos de raciocínio, dedução e julgamento
empregados em um domínio de aplicação durante o
processo de solução de problemas.
informação relativa à seleção, organização e
programação das atividades a serem executadas
para a solução de uma tarefa específica.
Guida e Tasso [1984]
Metaconhecimento
87. AI: RC - intro - F.Giorno
Inclui tudo que é disponível para adicionar ao conhecimento
representado, proporcionando flexibilidade para a solução de
problemas do domínio e indicando:
– os limites do conhecimento do domínio representado;
– os pontos fortes e fracos da representação de um determinado
conhecimento;
– os custos relativos do raciocínio induzido;
– a eficiência esperada de determinadas explorações.
Suporta, ao nível simbólico, de forma dinâmica, a representação de
raciocínios relativos a:
– seleção de conhecimento relevante para a tarefa ativa de solução de
problemas;
– planejamento de estratégias adequadas de solução de problemas;
– monitoração, avaliação e reparo ou melhoria do desempenho de um
sistema.
Boy [1991]
Metaconhecimento
88. AI: RC - intro - F.Giorno
Um modo de incorporar metaconhecimento em
Sistemas Baseados em Regras (SBRs) consiste em
expressá-lo de forma algorítmica na Máquina de
Inferência.
Esse enfoque resulta em uma estrutura bastante
rígida, especialmente na parte relativa às técnicas
gerais de solução de problemas utilizadas.
[Guida e Tasso, 1984].
Metaconhecimento - incorporação
89. AI: RC - intro - F.Giorno
Outro modo de incorporar metaconhecimento em SBRs
consiste em expressá-lo por meio de metaregras, que são
regras acerca de outras regras.
Metaregras permitem que o sistema monitore, analise e tome
decisões em relação a sua própria operação, comportando-se
como um observador externo. Com isso, o sistema pode
raciocinar sobre o seu próprio escopo e as suas limitações,
facilitando o tratamento de problemas complexos e de
situações não previstas.
Metaregras, ao operarem sobre outras regras, permitem
implementar controle. Elas influenciam diretamente o
funcionamento do MI, melhorando a sua eficiência, ao
definirem a aplicabilidade de certa regras, durante o ciclo de
reconhecimento-escolha-ação, para determinadas situações.
Metaconhecimento - incorporação
90. AI: RC - intro - F.Giorno
Metaregras - exemplos
mr-explore-refine
; habilita regras para efetuar um passo adicional de solução por meio da
; técnica de solução de problemas conhecida como explore-e-refine
SE a hipótese corrente tem um descendente não pesquisado ainda
ENTÃO pesquise esse descendente
mr-avaliacao-sob-risco
; habilita regras para enfocar investimentos de baixo risco
; para pessoas com idades avançadas
SE a idade do investidor é maior que 65 anos E
há regras que mencionam risco baixo em suas premissas E
há regras que mencionam risco médio em suas premissas E
há regras que mencionam risco alto em suas premissas
ENTÃO use o primeiro conjunto de regras antes de tentar os demais
91. AI: RC - intro - F.Giorno
Sistema de Produção Estruturado
Ruleset
Conjunto de regras com propriedades comuns, incluindo a
habilidade de serem ativados ou desativados como um grupo e
a designação de uma prioridade ao grupo, estabelecendo a
ordem de disparo do grupo em relação a outros grupos.
A Máquina de Inferência encadeia subconjuntos de regras da
Base de Conhecimento, sendo que nem todos os subconjuntos
podem necessitar de avaliação.
Benefícios
Permite implementar controle
Suporta dividir um problema em subproblemas
92. AI: RC - intro - F.Giorno
Representação e Processamento de Conhecimento Incerto
SBRs permitem a incorporação de procedimentos que levam em
conta incertezas, ruídos e subjetividades inerentes ao
conhecimento.
O termo conhecimento incerto, no contexto de SBRs, refere-se a
diferentes situações nas quais o conhecimento relevante é
deficiente em alguns aspectos como quando:
é incompleto
é afetado de incerteza
é subjetivo
advém de fontes múltiplas e conflitantes
apresenta relação não-absoluta entre causa e efeito
está expresso em uma linguagem de representação
inerentemente imprecisa
93. AI: RC - intro - F.Giorno
Representação e Processamento de Conhecimento Incerto
Abordagens
Teoria da Probabilidade
Teoria da Evidência
Lógica Nebulosa
Fatores de Certeza
94. AI: RC - intro - F.Giorno
Representação e Processamento de Conhecimento Incerto
Teoria da Probabilidade
Abordagem robusta, mas não permite representar dados
aproximados caracterizados por termos linguísticos
("médio", "alto"...) e impõe restrições de independência de
dados e de perfeito conhecimento do espaço amostral
(eventos mutuamente exclusivos e conjunto exaustivo de
eventos).
95. AI: RC - intro - F.Giorno
Representação e Processamento de Conhecimento Incerto
Teoria da Evidência [Dempster, 1967; Shafer, 1976]
Corresponde a uma generalização da Teoria da
Probabilidade, requerendo, por isso, eventos exaustivos e
mutuamente exclusivos, sendo computacionalmente
intratável em muitos casos (sem simplificações apreciáveis).
Difere da Teoria da Probabilidade por não assumir que
todos os resultados possíveis de um experimento possam ser
observados de uma forma precisa. Foi elaborada com base
matemática sólida para proporcionar raciocínio evidencial,
na qual valores entre 0 e 1, correspondendo a graus de
crença em fatos ou eventos, podem ser designados e
manipulados.
96. AI: RC - intro - F.Giorno
Representação e Processamento de Conhecimento Incerto
Lógica Nebulosa [Zadeh, 1983]
Apresenta similaridade com a Lógica de Primeira Ordem, não
exige os pressupostos das duas abordagens anteriores e permite
tratar com várias fontes de incerteza de modo homogêneo e
representar dados imprecisos e variáveis linguísticas que
correspondam a termos de linguagens naturais. Dispõe também
de métodos poderosos de dedução que manuseiam inferências
aproximadas.
97. AI: RC - intro - F.Giorno
Representação e Processamento de Conhecimento Incerto
Fatores de Certeza [Buchanan e Shortliffe, 1984]
Abordagem para representar e tratar incertezas em uma base
subjetiva em detrimento de uma base teórica. O fator de certeza
é um número entre -n e +n (em geral, n = 1), que expressa o grau
de certeza ou confiança em um evento (informação fornecida
pelo usuário, condição de regra, ação de regra...) obtido com
base em evidência ou em avaliações subjetivas. Valor +n indica
certeza absoluta de verdade, -n certeza absoluta de falso e 0
incerteza absoluta se verdade ou falso. Por serem medidos de
forma subjetiva, fatores de certeza são manuseados por métodos
informais e comportam-se de forma diferente de valores
probabilísticos, que representam medidas objetivas.
98. AI: RC - intro - F.Giorno
Representação e Processamento de Conhecimento Incerto
Fatores de Certeza [Buchanan e Shortliffe, 1984]
Abordagem computacionalmente simples para suportar a
inclusão de estimativas de confiança associadas com eventos.
Por outro lado, os resultados proporcionados por essa
abordagem são relativamente pobres. Experimentos com
objetivos de analisar a sensitividade de comportamento do
sistema MYCIN, conduzidos por meio de alterações e posterior
desligamento dos valores dos fatores de certeza especificados
para esse sistema, revelaram que o conhecimento descrito nas
regras contribuem muito mais para o resultado final do que os
valores dos fatores de certeza associados com esse conhecimento.