DAS-5341: Sistemas Especialistas

Slides:



Advertisements
Apresentações semelhantes
Introdução a Algoritmos
Advertisements

Sistemas especialistas
SISTEMAS ESPECIALISTAS
Lógica Matemática e Computacional 1.1 – Inteligência Artificial
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Expert Sinta.
Teste de Software.
Identificando requisitos
Diagrama de Classes.
Paradigmas de Programação
Engenharia de Software
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.
SAD - SISTEMA DE APOIO À DECISÃO Prof. Wagner Andrade
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Sistemas Especialistas Inteligência Artificial Profa. Ligia Flávia A. Batista.
Sistemas Baseados em Conhecimento
Adélia Barros Requisitos Adélia Barros
FACENS – Engenharia da Computação Inteligência Artificial
Sistemas Especialistas
Sistemas Especialistas
Análise Léxica Supondo o trecho de programa abaixo:
SIMULAÇÃO EM COMPUTADOR: O PENSAMENTO COMO PROCESSAMENTO DE INFORMÇÕES
Noções de Estrutura de Dados Logica de Programação
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Como Desenvolver Sistemas de Informação
Modelagem de Interações
Classes e objetos Modelagem
INF 1771 – Inteligência Artificial
Conceitos Básicos.
INTELIGÊNCIA ARTIFICIAL (IA OU AI)
Sistemas Distribuídos
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Sistemas Especialistas
Sistemas Inteligentes
Inteligência Artificial
Professor: Márcio Amador
Técnicas de Representação de Conhecimento Diversas.
Disciplina: Inteligência Artificial
Sistemas Baseados em Conhecimento
SISTEMAS DISTRIBUIDOS Aula 4
Princípios da Programação em Prolog
Banco de Dados Aplicado ao Desenvolvimento de Software
Algumas notas sobre a linguagem de programação C
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Introdução a Banco de Dados Aula 04
METODOLOGIA, MÉTODOS E FERRAMENTAS
Métodos Formais.
Requisitos de Software
Pesquisa Operacional na Tomada de Decisões
Programação Lógica com Prolog
Integração de Ferramentas CASE
REVISÃO Prof. Mário Dantas
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Abordagem Sistemática Guilherme Amaral Avelino Avaliação e Controle de Sistemas de Informação.
Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
Projeto de Banco de Dados
Testes (verificação e validação)
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
MÉTODOS QUANTITATIVOS APLICADOS ÀS CIÊNCIAS CONTÁBEIS
TÉCNICAS DE ESTIMATIVAS
Sylvia Campos da Luz e Silva Universidade Federal de Pernambuco Centro de Informática Pós-Graduação em Ciência da Computação.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Aplicação de Métodos Formais no Desenvolvimento de Sistemas Multimídia Distribuídos Cláudia Araújo Ribeiro UFPE Junho/2000.
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 
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

DAS-5341: Sistemas Especialistas Prof. Eduardo Camponogara

Agenda Técnicas e metodologias utilizadas em sistemas especialistas Sistemas de produção Sistemas especialistas Aquisição de conhecimento Métodos de representação do conhecimento Lógica, redes semânticas, quadros, etc. Ferramentas para construção de SE’s Exemplos de sistemas especialistas

Sistemas de Produção Sistema de produção é um nome genérico para todos os sistemas baseados em regras de produção, isto é, pares de expressões consistindo em uma condição e uma ação (condição) -> (ação)

Sistemas de Produção Na sua forma mais simples, um sistema de produção apresenta dois componentes passivos 1) Conjunto de regras Conjunto de pares ordenados (LHS, RHS), onde LHS e RHS são cadeias de caracteres 2) Memória de trabalho Uma seqüência de caracteres O modelo apresenta também um componente ativo, o interpretador

Sistemas de Produção O interpretador segue o procedimento: Para cada regra (LHS,RHS), se a seqüência de caracteres LHS está contida na memória de trabalho, então substituir os caracteres LHS na memória pelos caracteres de RHS; Caso contrário, continuar na próxima regra

Exemplo Exemplo de sistema de produção Um sistema capaz de multiplicar dois números em notação unária (na qual o número n é representado por uma seqüência de n algarismos 1), pode ser especificado através de um conjunto de regras 1) x1* ® B* 6) 2B ® B1 2) 1x11 ® 1Ax1 7) *A ® * 3) 1A ® A21 8) *B ® * 4) 2A ® A2 5) 1B ® B1

Sistemas de Produção: Exemplo Exemplo: multiplicar *11x11* *11x11* ® *11Ax1* ® *1A21x1* ® ® *1A21B* ® *A2121B* ® *A212B1* ® ® *A21B11* ® *A2B111* ® *AB1111* ® ® *B1111* ® *1111* 2 3 1 3 5 6 1 6 5 7 5 7 8

Sistemas de Produção Os sistemas de produção foram utilizados nos anos 70 como uma ferramenta para modelagem de todos os comportamentos baseados em pares estímulo-resposta O sistemas especialistas utilizam o formato de regras de produção como método de representação do conhecimento SE’s são concebidos para reproduzir o comportamento de especialistas humanos na resolução de problemas do mundo real, mas o domínio destes problemas é altamente restrito

Sistemas Especialista Exemplos de sistemas especialistas encontrados no mundo real Sistema Dendral: Capaz de inferir a estrutura molecular de compostos desconhecidos a partir de dados espectrais de massa e de resposta magnética nuclear Sistema Mycin: Auxilia médicos na escolha de uma terapia de antibióticos para pacientes com certas doenças

Arquitetura de Sistema Especialista Base de Conhecimento Memória de Trabalho Base de Regras Motor de Inferência

Sistemas Especialistas Conforme a figura anterior, um SE apresenta três módulos: Memória de trabalho Base de regras Motor inferência Memória de Trabalho No modelo simples, consiste em seq. caracteres Pode conter qualquer estrutura de dados A memória deve respeitar o método de representação do conhecimento

Sistemas Especialistas Método de representação do conhecimento Uma linguagem formal e Uma descrição do seu significado Exemplo de método: lógica de primeira ordem

Sistemas Especialistas Base de regras Contém condições que representam “perguntas” à representação do conhecimento Estas perguntas, no modelo simples, eram limitadas à comparação de símbolos Em geral, elas podem envolver variáveis a serem instanciadas A sintaxe das regras varia: lógica proposicional, lógica de primeira ordem, linguagem natural, etc.

Sistemas Especialistas Motor de inferência O motor de inferência controla a atividade do sistema Esta atividade ocorre em ciclos, cada ciclo consistindo em três fases 1) correspondência de dados Seleciona as regras que satisfazem a situação atual 2) resolução de conflitos 3) ação

Sistemas Especialistas Vantagens Modularidade Uniformidade Naturalidade Desvantagens Influência em tempo de execução Complexidade do fluxo de controle Domínios adequados para SE’s Fatos parcialmente independentes Ações independentes Nítida separação entre conhecimento e ação

Sistemas Especialistas A chave para o sucesso de um SE está no conhecimento armazenado e em sua memória de trabalho Este conhecimento deve: 1) ser obtido de um especialista humano do domínio, 2) depois representado de acordo com as regras formais, e 3) codificado em regras de produção

Sistemas Especialistas Ferramenta de Programação Conhecimento do Domínio Formato do conhecimento Regras Aspectos operacionais

Exemplo Exemplo implementado no sistema FASE (Ferramenta para a construção de Arcabouços e Sistemas Especialistas) FASE foi implementado em Common-Lisp O sistema consiste em um conjunto de bibliotecas de funções com as seguintes funcionalidades Representação do conhecimento: Estratégias de controle Resolução de conflito

FASE A modularidade do ambiente é decorrência dos conceitos de padrão e instância Padrão (pattern) é uma representação genérica de um conjunto de fragmentos de conhecimento, geralmente envolvendo variáveis Instância é uma representação específica de um fragmento de conhecimento

Padrão/Instância ? Resposta Padrão Instância Intuitivamente, um padrão pode ser interpretado como “uma pergunta” à memória de trabalho, e uma instância, como uma resposta a esta pergunta Padrão Instância ? Resposta

Regras FASE As regras utilizadas no ambiente FASE têm a seguinte sintaxe <rule> ::= (<name> <alpha> ({pattern}) ({pattern})) <name> é um símbolo correspondente ao nome da regra <alpha> é o valor numérico associado ao coeficiente de certeza da regra <pattern> depende do método de representação

Regras FASE: Exemplo name alpha pattern (nota-4 0.9 ((logic (nota ?x matematica muito-bom) (nota ?x fisica bom))) ((logic (performance ?x computacao))) ) name alpha pattern

Aquisição de Conhecimento É uma das partes mais sensíveis Não basta adicionar elementos de conhecimento à base; É necessário integrar o novo conhecimento ao já disponível Outro ponto importante na aquisição de conhecimento é o tratamento de incoerências Erros podem resultar da própria natureza do conhecimento Erros da interface homem/máquina

Aquisição de Conhecimento Verificação periódica de inconsistências Linguagens de representação expressivas não contam com procedimentos completos de verificação Problemas NP-Difíceis no sentido forte

Métodos de Representação A parte mais importante no projeto de um sistema SE é a escolha do método de representação de conhecimento A linguagem associada ao método deve ser suficientemente expressiva Em tese, uma representação em lógica seria suficiente

Lógica A lógica é a base para a maioria dos formalismos de representação do conhecimento Tipicamente, as regras podem ser representadas como proposições ou predicados lógicos

Exemplo: Sistema FASE FASE dispõe de um módulo de representação do conhecimento baseado na lógica de primeira ordem Primitivas Store: armazena um fragmento de conhecimento na base Query: obter instâncias que satisfazem às restrições especificadas através de variáveis que ocorrem em seu argumento List: que permite examinar o conteúdo da base

FASE: Linguagem de Acesso <command> ::= (logic-query <query>) | (logic-store <store>) | (logic-list) <query> ::= (<predicate> {<term>}) <store> ::= (<predicate> {<closed term>}) | (off <predicate> {<closed term>}) <closed-term> ::= <constant> | (<function> {<closed-term>}) <term> ::= <constant> | <variable> | (<function> {<term>})

FASE: Exemplo Base de conhecimento Progenitor(Boris, Jane) Progenitor(Boris, Marcia) Progenitor(Adelia, Jane) Progenitor(Jane, Tiago) Codificando o conhecimento em FASE > (logic-store (progenitor Boris Jane)) > (logic-store (progenitor Boris Marcia)) > (logic-store (progenitor Adelia Jane)) > (logic-store (progenitor Adelia Marcia)) > (logic-store (progenitor Jane Tiago))

FASE: Fazendo consulta Uma vez armazenadas as informações, a base de conhecimento pode ser consultada através do comando query > (logic-query (progenitor x Tiago)) ( [Substituicao : (x . Jane))] ) > (logic-query (progenitor Boris y)) ( [Substituicao : (y . Marcia))] ) ( [Substituicao : (y . Jane))] )

FASE: Fazendo consulta Introduzindo regras mais complexas > (logic (progenitor x y) (progenitor y Tiago)) ( [Substituindo : ((x . Boris) (y . Jane))] ) ( [Substituindo : ( (x . Adelia) (y . Jane))] )

Redes Semânticas Rede semântica é um nome utilizado para definir um conjunto heterogêneo de sistemas Um grafo, cujos nós modelam sistemas e cujos arcos indicam as relações binárias Nós Objetos Predicados Classes Palavras de uma linguagem

Redes Semânticas Redes semânticas foram propostas por Quillian como um formalismo computacional da memória humana

Redes Semânticas Mobilia Pessoa Cadeira Assento Couro Ana Cadeira-27 é-um Pessoa Cadeira Assento parte-de é-um é-um Couro Ana Cadeira-27 dono estofamento cor Preto

Redes Semânticas Nos anos 60, redes semânticas foram usadas na implementação de sistemas de processamento de linguagem natural

Desenvolvimentos Seguintes Marvin Minsky (1975) Introduziu a noção de estrutura interna, criando outra estrutura chamada de quadros Woods Sugeriu a fundamentação teórica com ênfase em lógica

Herança de Propriedades Herança é formada por caminhos do grafo Permite que propriedades de um nodo sejam especificadas apenas uma vez Herança é simplificada se a rede formar uma árvore (mais complexa no caso de herança múltipla)

Exemplo Clyde é-um Elefante real é-um é-um elefante não-é-um Cinza

Quadros Quadros foram introduzidos para permitir a expressão das estruturas dos objetos, mantendo a propriedade de representar herança como as redes semânticas Os quadros foram introduzidos por Marvin Minsky “A Framework to Represent Knowledge” O método de quadros dá origem às idéias que levaram à concepção das linguagens de programação orientadas a objetos

Exemplo Frame: Comodo Super-Frame: Lugar-Coberto Frame: Sala Atributo Default Tipo Se-necessário Número de Paredes 4 número Formato retangular símbolo Altura Número (m) 3 É-um Frame: Sala Super-Frame: Comodo

Sistemas Híbridos Os problemas de eficiência, associados aos métodos gerais de representação do conhecimento, baseados nos formalismos lógicos, e a dificuldade em representar certos tipos de conhecimento (e.g., fatos negativos, disjunções e asserções quantificadas) utilizando quadros e redes semânticas levaram às idéias de representação múltipla

Sistemas Híbridos O sistemas de representação do conhecimento atuais fornecem a seus usuários mais de um formalismo de representação Devemos utilizar os formalismos simultaneamente? Que pontos devem ser integrados?

Sistemas Híbridos Em arcabouços para SE´s, a tarefa é deixada para o usuário: Cada formalismo é independente um do outro Facilidade de programação (+) Dificuldade de manter consistência (-) Mais recentemente, teorias e sistemas foram propostos para integração de formalismos (e.g., Krypton) O subsistema tem a semântica integrada

Ferramentas para Construção de SEs As ferramentas variam quanto: A interface com o usuário Interface de desenvolvimento Interface com o S.O. Motor de inferência

Construção de SE´s Interface com o usuário final Tipicamente gráfica Uso de janelas e recursos gráficos Diferentes níveis de usuário (iniciante, avançado) Interface de desenvolvimento Facilidade para manipulação da base de dados Tratamento de erros e verificação Facilidade para documentação

Construção de SE´s Interface com o sistema operacional Ferramentas disponíveis para várias plataformas Mainframes e microcomputadores Linguagens de programação C/C++ Common Lisp Facilidade de comunicação com bancos de dados Grau de segurança

Construção de SE´s Motor de Inferência Características relevantes Modo de raciocínio Estratégia de busca Resolução de conflito Representação de incerteza Representação de conhecimento

Construção de SE´s Motor de Inferência Modo de raciocínio Encadeamento progressivo ou encadeamento para trás Problema de planejamento: encadeamento progressivo Problema de diagnóstico: encadeamento regressivo Estratégia de busca Guiar a pesquisa na memória de trabalho e base de regras Equivalente a algoritmos de busca em grafos

Construção de SE´s Motor de Inferência Resolução de conflito Regras para seleção de regras sensibilizadas Regras: prioridade, etc. Representação de incerteza Área de pesquisa Teoria nebulosa Teoria de probabilidades (redes Bayesianas) SE´s atribuem um número à regra que caracteriza o grau de confiança da regra

Referências Guilherme Bittencourt, Inteligência Artificial: Ferramentas e Teorias, Editora da UFSC, 1998.

Fim Obrigado pela presença!