UNIVERSIDADE FEDERAL DE SANTA CATARINA 1 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA EMC 6607 Sistemas Especialistas aplicados à Engenharia (3 créditos) Objetivo Apresentar os principais aspectos teóricos e práticos relacionados ao desenvolvimento de Sistemas Especialistas (SE), enfocando sua aplicação no contexto do Projeto de engenharia. Ementa Histórico sobre SE. Vantagens e desvantagens de SE. Componentes e ciclo de vida de um SE. Aspectos relativos à definição do domínio de conhecimento. Técnicas de aquisição e representação do conhecimento. Validação e verificação de SE. Utilização de ferramentas SHELL. • Programa 1. Definições básicas relacionadas a SE. Distinção entre SE e Programas Convencionais. Crescimento da aplicação de SE. Definição e tipos de sistemas SHELL. 2. Viabilidade de SE para certos tipos de problemas. Estudo das características de SE atualmente utilizados em aplicações práticas. Identificação de áreas de projeto aplicáveis para SE. 3. Processo de desenvolvimento de SE - dificuldades mais comuns encontradas. Técnicas de representação do conhecimento. Definição do domínio de aplicação. Escolha da técnica mais apropriada. Seleção da ferramenta SHELL. 4. Questões Humanas relacionadas ao desenvolvimento de SE. Engenharia de conhecimento. Perfil do engenheiro de conhecimento. Questões éticas em SE. 5. Aquisição do conhecimento. Relacionamento com os especialistas do domínio. Diferentes perfis de especialistas. Aplicação de ferramentas computacionais. Protótipo inicial como instrumento para facilitar a aquisição. 6. Validação e Verificação de SE - Comparação com técnicas utilizadas em sistemas convencionais. Metodologia de validação. Casos práticos e procedimento recomendável. 7. Aplicação de ferramentas. Introdução à programação utilizando sistemas SHELL. Estrutura geral, formas de representação do conhecimento, desenvolvimento de exemplos. Forma de apresentação do conteúdo. • Aulas expositivas e práticas. • Demonstração de sistemas. • Utilização de recursos disponíveis na Internet. Forma de Avaliação Trabalhos e apresentação de seminários ao longo da disciplina. Avaliação conceitual geral no final da disciplina. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 2 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Bibliografia Básica 1. WATERMAN, D. A., A Guide to Expert Systems, Addison-Wesley Publ. Company, 1986. 2. DYM, C.L. and LEVITT, R.E..Knowledge-based Syst. in Eng., McGraw-Hill, 1991. 3. GIARRATANO, Joseph and RILEY, Gary, Expert SystemsProgramming, Second Edition, PWS Publishing Company, 1994. Principles and 4. GONZALEZ, Avelino J. and DANKEL, Douglas D., The Engineering of KnowledgeBased Systems- Theory and Practice, Prentice-Hall, Inc., 1993. 5. RICH, E. and KNIGHT, K.. Artificial Intelligence, McGraw-Hill Book Company, 1991. 6. SILVA, Jonny C.. Expert System Prototype for Hydraulic System Design Focusing on Concurrent Engineering Aspects. Tese de Doutorado, Engenharia Mecânica da UFSC, março 1998. 7. ALVES, Guilherme D.. Sistema Especialista Protótipo para Diagnóstico de Falhas em um Sistema Hidráulico Naval. Dissertação de Mestrado em Engenharia Mecânica. Universidade Federal de Santa Catarina, Florianópolis, abril 2001. 8. NORDLANDER, Tomas E.. AI Surveying: Artificial Intelligence in Business, Dept. of Management Science and Statistics, De Monfort University, UK, September 2001. 9. GIARRATANO, Joseph C. CLIPS User´s Guide, Version 6.2- March 2002. 10. VINADÉ, Cesar Augusto do Canto. Sistematização do processo de projeto para confiabilidade e mantenabilidade aplicado a sistemas hidraulicos e implementação de um sistema especialita. Tese de Doutorado em Engenharia Mecânica, UFSC, abril 2003. 11. PASSOS, Alexandra dos. Desenvolvimento de Sistema Especialista aplicado à Assistência Técnica: Estudo de caso em uma organização fabricante de produtos de telecomunicações. Dissertação de Mestrado em Eng. Mecânica, UFSC, março 2005. 12. Starr, R. R.. Contribuições para a detecção de vazamentos em tubulações de gás natural: uma abordagem baseada em conhecimento. Dissertação de Mestrado em Eng. Mecânica, UFSC, julho 2006. 13. Mecabô, L. Desenvolvimento de um protótipo de sistema especialista para apoio à manutenção de turbocompressores de gás natural. Dissertação de Mestrado em Eng. Mecânica, UFSC, junho 2007. Alguns websites de interesse CLIPS: A Tool for Building Expert Systems www.ghg.net/clips/CLIPS.html Aplicações de Sistemas Especialistas www.attar.com/pages/cases.htm AI Yahoo LINKS : www.yahoo.com/Science/Computer_Science/Artificial_Intelligence/ Artificial Intelligence History: www.aaai.org/AITopics/html/history.html Página da disciplina: www.laship.ufsc.br/jonny/sist_esp/ Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Sumário 1. Introdução • Definições básicas relacionadas a SE. • Distinção entre SE e Programas Convencionais. 1.1. Origem dos Sistemas Especialistas 1.1.1. Distinção entre abordagem heurística e algorítmica 1.2. Algumas distinções entre SE e programas convencionais. 1.3. Diferentes perspectivas sobre SE 1.4. Vantagens relacionadas a Sistemas Especialistas 1.5. Elementos de um Sistema Especialista 1.6. Definições 1.7. Outras Definições 1.8. Típicas diferenças entre SE e programas convencionais 2. Crescimento da Aplicação de Sistemas Especialistas 3. Viabilidade de Sistemas Especialistas para certos tipos de problemas 3.1. Adequação da área de aplicação 3.2. Disponibilidade De Recursos 4. Processo de desenvolvimento de Sistemas Especialistas 4.1. Estágios gerais no desenvolvimento de Sistemas Especialistas 4.2. O problema da plataforma 4.3. Manutenção e evolução de SE 4.4. Possíveis erros no desenvolvimento de SE 5. A definição de Qualidade em Sistemas Especialistas 6. Ciclo de vida de um Sistema Especialista 6.1. Custos de Manutenção 6.2. Diferentes modelos de ciclo de vida 7. Definição do Domínio de Aplicação e Identificação das Fontes de Conhecimento 8. Projeto da Base de Conhecimento 9. Escolha da ferramenta de desenvolvimento 9.1. Questões quanto à escolha da ferramenta 9.2. Condições de suporte da ferramenta 9.3. Confiabilidade 9.4. Mantenabilidade 9.5. Características da tarefa 10. Escolha da equipe de desenvolvimento 10.1. Escolha do Engenheiro de Conhecimento 10.2. Desvantagens de ter um especialista como EC 10.3. Escolha do líder da equipe 10.4. Escolha do especialista Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. 3 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 10.5. Critérios relativos à equipe 10.5.1. Sistemas pequenos 10.5.2. Sistemas de médio porte 10.5.3. Sistemas de grande porte 10.6. Problemas relativos à interação com especialistas 10.6.1. O Especialista Cínico 10.6.2. Especialista "sumo sacerdote" no domínio 10.6.3. O Especialista paternalista 10.6.4. O Especialista incomunicável 10.6.5. O Especialista descuidado 11. Estrutura do processo de aquisição do conhecimento 11.1. A entrevista inicial 11.2. Organização das sessões para aquisição do conhecimento 11.3. Sessões para definição de conhecimento genérico 11.4. Sessões para solução de problemas específicos 12. Organização Do Conhecimento 12.1. Técnicas observacionais 12.2. Técnicas intuitivas 13. Protótipo Inicial na aquisição do conhecimento 13.1. Impacto desta abordagem sobre o perfil do EC 14. Relação entre protótipo e sistema final 15. Verificação e Validação 15.1. Comparação de Verificação e Validação (V&V) com Programas Convencionais 15.2. Verificação 15.3. Validação 15.3.1. Metodologias de Validação 15.3.2. Testes de campo 15.3.3. Validação de subsistemas 15.3.4. Quando é apropriado validar? 16. Algumas observações sobre Orientação a Objetos 17. Incerteza 17.1. Redes Bayesianas 17.1.1. Vantagens e desvantagens das Redes Bayesianas 18. Lógica Difusa (Fuzzy Logic) 18.1. Definição de termos 18.2. Operadores difusos ANEXO 1- Roteiro do 1o trabalho ANEXO 2- Roteiro do 2o trabalho Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. 4 UNIVERSIDADE FEDERAL DE SANTA CATARINA 5 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Proposta de Programa (número de aulas por tópico) 1.1 Introdução - apresentação do programa. Aspectos gerais da disciplina. 01 1.2 Definições básicas sobre SE. Distinção entre SE e Programas Convencionais. 01 1.3 Crescimento da aplicação de SE. Definição e tipos de sistemas SHELL. 01 2.1 Viabilidade de SE para certos tipos de problemas. 01 2.2 Estudo das características de SE atualmente utilizados em aplicações práticas. 02 Identificação de áreas de projeto aplicáveis para SE. 3.1 Processo de desenvolvimento de SE - dificuldades mais comuns encontradas. 01 3.2 Técnicas de representação do conhecimento. Definição do domínio de aplicação. 03 Escolha da técnica mais apropriada. Seleção da ferramenta SHELL. 4.1 Questões Humanas relacionadas ao desenvolvimento de SE. Engenharia de 02 conhecimento. Perfil do engenheiro de conhecimento. Questões éticas em SE. 5.1 Aquisição do conhecimento. Relacionamento com os especialistas do domínio. 01 Diferentes perfis de especialistas. 5.2 Aplicação de ferramentas computacionais. Protótipo inicial como instrumento 01 para facilitar a aquisição. 6.1 Validação e Verificação de SE - Comparação com técnicas utilizadas em 01 sistemas convencionais. 6.2 Metodologia de validação. Casos práticos e procedimento recomendável. 01 7.1 Aplicação de ferramentas. Introdução à programação utilizando sistemas 05 SHELL. Estrutura geral e desenvolvimento de exemplos 7.2 Seminários de avaliação Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. 02 UNIVERSIDADE FEDERAL DE SANTA CATARINA 6 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 1. Introdução • Definições básicas relacionadas a SE. • Distinção entre SE e Programas Convencionais. 1.1. Origem dos Sistemas Especialistas No início dos anos 70, os pesquisadores em IA reconheceram que o conhecimento genérico para solução de problemas e as técnicas de busca desenvolvidas na década anterior eram insuficientes para resolver os problemas em fase de pesquisa e orientados a aplicações da época. Eles concluíram: O que era necessário era conhecimento específico sobre um domínio de aplicaçãoparticular e limitado, em vez de conhecimento genérico aplicado a vários domínios. Esta conclusão levou ao desenvolvimento de sistemas baseados em conhecimento ou sistemas especialistas (SE). Desde sua origem, a área de sistemas especialistas tornou-se um dos principais tópicos da IA. De simples conceitos gerados em pesquisas esta área evoluiu para uma indústria de milhões de dólares em aplicações práticas. O conhecimento representado em SE é de especialistas de um domínio. Uma parte deste conhecimento é composta de relações de causa e efeito. Estas relações ou regras práticas (rules of thumb) originam-se da experiência dos especialistas e são comumente denominadas heurísticas. As heurísticas representam conhecimento informal, ou atalhos, que permitem um especialista rapidamente pesquisar a solução de um problema sem ter que realizar uma análise detalhada de uma situação particular, porque ou uma análise de um problema similar já foi realizada, com êxito, anteriormente ou uma relação foi aprendida de uma tentativa mal sucedida de um problema similar. O especialista pode até nem se lembrar de todos os detalhes da análise anterior, mas reconhece que se uma abordagem já funcionou a contento, a mesma abordagem irá provavelmente se adequar a um problema similar em questão. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 7 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Uma heurística frequentemente fornece uma solução correta para um problema. Contudo, considerando que isto não representa uma análise exaustiva, pode ocasionalmente fornece respostas incorretas ou mesmo falhar em prover qualquer resposta. Esta falha em ser sempre bem sucedida é baseada na aplicação de uma escolha "aceitável" em vez de uma resposta completamente certa. Isto ocorre porque: • Algumas vezes o número de possibilidades a serem examinadas pode ser muito grande. • Uma avaliação algorítmica aplicada a cada possibilidade para verificar se esta é uma resposta correta e muito complexa, ou • A avaliação algorítmica é desconhecida e deve ser aproximada. Um especialista é uma pessoa que possui habilidades que lhe permite concluir a partir de experiências e rapidamente focalizar no núcleo de um dado problema. Enquanto um nãoespecialista pode abordar um problema de forma sistemática, empregando uma metodologia orientada e procedural (caso esta realmente exista), esta abordagem pode ser muito complicada e suscetível a erros ou ainda pode necessitar um esforço e tempo inaceitáveis. Este uso cego de uma metodologia pode ser resultado de um entendimento limitado a respeito do domínio de conhecimento e suas relações de causa e efeito. Um especialista, por outro lado, tem um maior êxito na solução de problema, pois já adquiriu um conjunto valioso de relações de causa e efeito com base em sua experiência. Um especialista é capaz de usar este conhecimento básico para rapidamente reconhecer as características relevantes de um problema, categorizá-lo de acordo com tais características e corretamente definir uma solução. 1.1.1. Distinção entre abordagem heurística e algorítmica Exemplo: Um potencial comprador de uma residência, com plano arquitetônico definido deseja uma estimativa de custo antes de comprometer-se em fechar o contrato com um construtor. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 8 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Caso 1: Um certo construtor determinar o preço da obra após uma análise detalhada dos custos. Isto envolve calcular cuidadosamente a quantidade de material necessário para obra; contatar um fornecedor de materiais para obter lista de preços; avaliar cotações de empreiteiras sobre o custo de mão-de-obra; determinar as taxas de supervisão; permitir uma adequada margem para contingências, etc. Este processo tem a vantagem de praticamente garantir o resultado preciso (considerando inexistência de erros de cálculo) e implica em muito pouco risco para o construtor. Todavia, a desvantagem é que isto envolve um considerável esforço e tempo. O que acontece se o comprador precisa a cotação para hoje? Caso 2: Um construtor especialista. Um construtor especialista tem uma outra opção. Ele compara o tamanho desta casa com outras que já tenha construído. Ao encontrar uma obra com aproximadamente a mesma metragem, ele obtém uma estimativa inicial (baseada em experiência) do preço por metro quadrado. Então analisa as diferenças entre as construções que podem aumentar ou reduzir a estimativa. Tais diferenças podem incluir inclusões como uma piscina (aumentando em cerca de $15 mil), simplificações nas instalações de cozinha (reduzindo em $1,5 mil) ou exclusão do tipo menor número de banheiros (reduzindo em $6 mil). Após avaliar tais diferenças, ele é capaz de realizar a estimativa em cerca de 30 minutos. Obviamente, a vantagem é que o especialista pode fornecer uma rápida cotação. A desvantagem é que existe a possibilidade que uma consideração mal feita torne a estimativa inválida. Porém, se o indivíduo é um verdadeiro especialista, isto é improvável que aconteça. A primeira abordagem é algorítmica: completa, detalhada e altamente precisa, mas possivelmente inadequada devido às limitações de tempo e esforço. A segunda abordagem é heurística: não tão completa e detalhada, mas talvez o bastante precisa e desenvolvida em função das limitações de tempo e recursos disponíveis. Sendo assim, enquanto os resultados de procedimentos algorítmicos são sempre precisos, são freqüentes os casos onde uma estimativa heurística com quase a mesma precisão pode ser obtida com muito menos esforço. Porém apenas especialistas são capazes de obtê-la e, às vezes, existe o risco de cometer erros. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 9 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 1.2. Algumas distinções entre SE e programas convencionais. • A separação do conhecimento de um domínio específico de como ele é aplicado. • Uso de conhecimento altamente específico. • Aplicação de abordagem heurística, em vez de algorítmica, do conhecimento empregado. • Capacidade de explicar como as soluções foram obtidas. • O conhecimento é apresentado de forma explícita. 1.3. Diferentes perspectivas sobre SE Função Relacionamento Gerente Para que posso usá-lo? Programador Como posso melhor implementá-lo? Pesquisador Como posso expandi-lo? Usuário Como este sistema poderá me auxiliar? Vale a pena as mudanças e o investimento para aquisição? Quão confiável é o sistema? 1.4. Vantagens relacionadas a Sistemas Especialistas • Aumento da disponibilidade do conhecimento - com este tipo de sistema a experiência torna-se mais disponível. • Redução do custo - o custo de acesso ao conhecimento por usuário é bastante reduzido. • Redução do risco - Sistemas Especialistas podem ser usados em ambientes perigosos para o ser humano. • Permanência - diferentemente de especialista humano (EH) que pode aposentar-se, pedir demissão ou vir a falecer, o conhecimento armazenado em SE terá permanência. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 10 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • Múltiplas especialidades - o conhecimento de múltiplos EH poderá estar disponível para trabalhar simultaneamente e continuamente em um problema a qualquer tempo. Além disto, o nível de conhecimento combinado de vários EH pode superar o de um único especialista. • Aumento da confiabilidade - SE podem aumentar a confiança que uma solução correta foi tomada, pois fornecem uma segunda opinião para um especialista ou servem como desempate no caso de múltiplos EH discordarem entre si. Certamente, isto não ocorrerá se o sistema foi desenvolvido por um dos EH. Um SE sempre concordará com o especialista, a menos que um erro tenha sido cometido pelo especialista (ou no desenvolvimento do sistema). Erros podem ser cometidos por EH como conseqüência de cansaço ou sob estresse. • Explicação - um SE pode (ou deve) explicitamente explicar em detalhes as razões que levaram a uma conclusão, enquanto que um EH pode estar cansado, não desejar ou não ser capaz de prover tal explicação todo o tempo. Esta característica de SE pode aumentar a confiança na solução adotada. • Resposta rápida - em algumas aplicações pode ser necessária uma resposta rápida ou em tempo real. Dependendo do software e hardware utilizados, um SE pode responder mais rapidamente e ser mais disponível que um EH. • Resposta completa, * consistente e imparcial em todas as condições - Isto pode ser muito importante em aplicações de tempo real e situações de emergência quando um operador pode não operar na eficiência máxima devido a estresse ou fadiga. • Tutor inteligente - um SE pode atuar como um tutor conduzido um estudante através de certos problemas e explicando as razões da solução. • Banco de dados inteligente - um SE pode ser usado para acessar um banco de dados de uma forma mais inteligente. • Alta performance - o sistema deve ser capaz de responder em um nível de competência igual ou superior a um especialista do campo de conhecimento. Isto implica dizer que a solução apresentada pelo sistema deve ser de alta qualidade. O processo de desenvolver um SE tem também um benefício indireto, pois o conhecimento dos EH deve ser formulado de forma explícita para ser modelado via computador. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 11 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Por que a capacidade de prover explicação é fundamental? Uma das razões é que algo de grande valor pode depender das respostas do sistema. Devido ao seu grande potencial de causar dano, um SE deve ser capaz de justificar sua resposta de forma semelhante a um EH. A capacidade de explicação é importante também na fase de desenvolvimento do sistema para confirmar se o conhecimento foi corretamente adquirido e modelado no sistema. Tal aspecto é fundamental no debugging do sistema, pois pode prevenir erros de sintaxe ou conceitos mal entendidos entre o Engenheiro de Conhecimento (EC) e o EH. Outra razão é o fato de que devido à forma como um típico SE é desenvolvido é muito difícil entender seu funcionamento através da leitura da listagem. Pois, o fluxo de execução não é seqüencial. 1.5. Elementos de um Sistema Especialista BASE DE CONHECIMENTO MÁQUINA DE INFERÊNCIA MEMÓRIA OPERACIONAL (REGRAS) AGENDA (FATOS) HABILIDADE DE EXPLICAÇÃO HABILIDADE DE AQUISIÇÃO DE CONHECIMENTO INTERFACE COM O USUÁRIO 1.6. Definições • Interface com o usuário - mecanismo de comunicação entre usuário e o SE. • Módulo de explicação - esclarece as razões encontradas pelo SE. • Memória operacional - um "banco de dados" de fatos usados pelas regras. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 12 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • Máquina de Inferência - mecanismo que decide quais regras são satisfeitas, prioriza as regras satisfeitas e executa a regra de maior prioridade. • Agenda - uma lista das regras priorizadas pela Máquina de Inferência, cujas condições são satisfeitas pelos fatos ou objetos na memória operacional. • Módulo de aquisição - propicia ao usuário uma forma automática para inserir conhecimento no sistema, sem necessitar codificação por parte do EC. O módulo de aquisição é um atributo adicional em muitos sistemas. Algumas ferramentas de desenvolvimento (SHELL) oferecem um mecanismo para indução de regras. Contudo, a maioria dos exemplos que permitem indução é baseado em conhecimento advindo de uma forma relativamente simples e bem classificada. • Algumas comparações - Dos modelos propostos pela teoria cognitiva de Newel e Simon (base dos sistemas especialistas) • A Memória Operacional - atua como memória de curto prazo, uma vez que é usada para armazenamento temporário de conhecimento (fatos) durante a solução de um problema. • A Base de Conhecimento (regras) - representa uma memória de longo prazo, onde o conhecimento permanente é armazenado. Uma REGRA corresponde a uma pequena e modular parte do conhecimento (chunk). Na solução de problemas, um especialista humano organiza partes do conhecimento de forma flexível através de conexões com outras partes. Embora a memória de longo prazo possa armazenar centenas de milhares destas partes, a capacidade da memória de curto prazo é muito pequena. Isto pode ser exemplificado da seguinte forma: A maioria dos seres humanos consegue visualizar mentalmente apenas em torno de 4 a 7 números ao mesmo tempo. Certamente, conhecemos mais do que esta quantidade, que na verdade está armazenada na memória de longo prazo. Na busca de uma solução, uma parte do conhecimento é ativada (ou estimulada) e desencadeia a ativação de outras partes. Para que tal processo ocorra, é necessário a existência de um processador cognitivo que tenta determinar que REGRAS serão ativadas por um conjunto determinados de estímulos (FATOS). Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 13 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • A Máquina de Inferência - corresponde ao processador cognitivo. Funções da Máquina de Inferência • Selecionar que regras são ativadas • Priorizar as regras selecionadas • Ativar ou disparar as regras selecionadas na prioridade selecionada • Processar a "refração" das regras disparadas (Analogia com o neurônio) 1.7. Outras Definições • Engenharia de Conhecimento - processo de desenvolvimento de um SE • Engenheiro de Conhecimento - responsável por desenvolver um SE • SHELL - ferramenta computacional para implementação de um SE. • Usuário - pode ser o usuário final (sem conhecimento do domínio), o engenheiro de conhecimento ou o próprio especialista do domínio. 1.8. Típicas diferenças entre SE e programas convencionais Característica Programa Convencional Sistema Especialista Controle Declaração explícita Máquina de Inferência Controle e dados Integração implícita Separação Explícita Solução via Algoritmo Regras e inferência Resolução Algorítmica correta Regras Assumida correta Incompleta, incorreta. Dificuldade para manipular Muito adequado Sempre correta Varia com o problema Explicação Nenhuma Geralmente Aplicações Numérica, arquivos e texto Manipulação simbólica Execução Geralmente seqüencial Regras mais apropriadas Estruturado Pouco ou nenhum Difícil Razoável Feita em saltos Incremental Entrada de dados Entrada imprevista Saída Projeto do sistema Facilidade de mudança Expansão Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 14 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 2. Crescimento da Aplicação de Sistemas Especialistas Desde o início da década de 70 (quando o paradigma de SE foi estabelecido) vários sistemas já foram desenvolvidos, aqui estão alguns exemplos: SISTEMA FUNÇÃO MYCIN (76) Diagnóstico de doenças baseada em amostra de sangue e especificação de tratamento para infecção. Desenvolvido pela Universidade de STANFORD. XCON/R1 (82) Configuração de sistemas computacionais Obs.: Desenvolvido pela Digital Equipament Corporation (DEC) em parceria com a Universidade de Carnegie Mellon, com sua aplicação, a DEC já economizou milhões de dólares por ano. PROSPECTOR Análise geológica de dados para prospecção de minerais Obs.: Através PROSPECTOR foi descoberta uma jazida valendo $100 milhões. (78) ISIS (84) Geração de planos de alocação de mão-de-obra para chão de fábrica. Desenvolvido pela parceria da Universidade de Carnegie Mellon e Westinghouse Electric Corporation. GENAID (86) Monitoramento e diagnóstico de condições operacionais de grande geradores em tempo real. Desenvolvido pela Westinghouse Electric Corporation com suporte da Texas Utilities e da Universidade de Carnegie-Mellon LES (87) Monitoramento e diagnóstico do processo de abastecimento de oxigênio líquido em tanque de naves espaciais. Desenvolvido por MITRE Corporation e NASA-KSC (Kennedy Space Center) PTRANS (83) Suporte ao controle da manufatura e distribuição da DEC. Desenvolvimento conjunto entre DEC e Universidade de Carnegie-Mellon. DENDRAL Interpretação espectrogramas de massa para identificar os elementos químicos. DELTA (83) Diagnóstico / conserto de locomotivas GE. Desenvolvido pela General Electric e atualmente encontra-se em uso nesta empresa. INTERNIST Suporte ao médico no processo de diagnose de infecções de hospitalares. Desenvolvido pela Universidade de Pittsburgh. (82) REACTOR Diagnóstico / conserto de acidentes em reatores STEAMER Instrução de operação de máquinas a vapor. Desenvolvido pela Marinha Americana em colaboração com a BBN Corporation. (84) CADHELP SOPHIE DIPMETER Instrução para CAD Instrução para diagnóstico de falhas em circuitos eletrônicos Análise geológica de dados para prospecção de petróleo. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 15 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA http://www.osha.gov/oshasoft/ OSHA - Organization of Safety and Health Administration, US Department of Labor Desenvolveu alguns Sistemas Especialistas (com versões demo) para aplicações industriais. Exemplos: • HAZARD AWARENESS ADVISOR - um sistema especialista para identificar os riscos nos ambientes industriais. O sistema apresenta um relatório com as recomendações da OSHA. • $AFETY PAYS - uma ferramenta para auxiliar empregadores na análise do impacto financeiro com doenças ou acidentes ocupacionais que causam dias fora do trabalho. • Lead Construction Advisor - fornece regras gerais e orientação sobre procedimentos ligados à exposição o chumbo em construções. • Fire Safety Advisor - apresenta as normas gerais da OSHA para segurança contra incêndio, emergências e sistemas de detecção de incêndio. • Asbestos Advisor 2.0 - sistema dedicado a proprietários, gerentes e locatários de prédios. Após uma entrevista o sistema apresenta um relatório sobre regras quanto à exposição ao asbesto. • Confined Spaces Advisor 2.0 - o sistema auxilia na definição quanto à identificação e permissão relativa às tarefas em espaços confinados. 3. Viabilidade de Sistemas Especialistas para certos tipos de problemas Selecionar a aplicação correta com base numa razão correta pode acarretar numa positiva influência no sucesso final do projeto. Enquanto selecionar mesmo uma aplicação certa por uma razão não adequada pode não ser tão satisfatório. Os critérios para analisar a viabilidade de SE consistem em vários fatores que podem ser agrupados em duas categorias: • Adequação da área de aplicação • Disponibilidade de recursos Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 16 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA A seguir são apresentadas algumas orientações sobre cada uma destas categorias. Nem todas estas orientações devem ser necessariamente seguidas, mas a grande maioria delas deve ser considerada. 3.1. Adequação da área de aplicação Muitas falhas de projetos envolvendo SE podem ser atribuídas a uma definição inapropriada da aplicação. Algumas questões a considerar: O problema realmente existe? A técnica de SE é aplicável? A abordagem de SE é realmente justificável?... • O problema realmente existe? Esta é a primeira questão a ser considerada. O risco de desenvolver um projeto para um problema que realmente não existe é que a solução não terá real impacto na operação da organização. Desta forma o interesse nesta tecnologia pode diminuir ou até desaparecer antes que aplicações de real valor sejam reconhecidas. Além disto, tal aspecto pode ser erroneamente tomada por alguns como justificativa para indicar uma falha da tecnologia. Contra-exemplo: O problema de visitantes numa fábrica de equipamentos de combate a incêndio. Uma solução em busca de um problema, e não um problema real para o qual devese desenvolver uma solução. A verdadeira questão a ser considerada é se um sistema especialista proposto representa um valor considerável para a organização. Considerável valor não necessariamente significa econômico, mas pode envolver, por exemplo, prestígio ou imagem da empresa. Quanto maior o valor mais a organização estará disposta a se empenhar no desenvolvimento do sistema. • A técnica de SE é aplicável? Para auxiliarem neste aspecto, certas sub-questões são postas, a busca destas razões representa em si um processo inexato, e por tanto heurístico. • O tipo de problema reproduz o conhecimento humano na busca de solução? Uma resposta positiva implica que SE pode ser a solução adequada, enquanto uma resposta contrária não necessariamente numa má aplicação. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 17 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • O tipo de problema é heurístico em sua natureza ou é predominantemente algorítmico? Nenhuma tarefa é apenas de uma forma, a maioria dos problemas no mundo real contem ambos elementos. A chave é qual é a forma predominante. • O conhecimento ou especialização muda periodicamente ou permanece constante? Se o conhecimento muda freqüentemente o tipo de problema é aplicável para SE devido à sua facilidade inerente em incorporar mudanças.Isto também pode justificar a aplicação de SE para problemas predominantemente algorítmicos, mas cujas regras mudam freqüentemente. • Se experiência é envolvida, ela é relativamente bem entendida e aceita? Se são difíceis de desenvolver para domínios que não são bem desenvolvidos. Exemplo: é relativamente simples identificar, organizar e representar a experiência de como diagnosticar um problema num automóvel, mas bem mais difícil fazer o mesmo com relação a interpretar sinais de rádio de ondas extra-terrestes ou astrologia. Por outro lado, se a experiência pode ser adequadamente reduzida a fórmulas e modelos matemáticos então programas convencionais podem ser mais adequados. • As entradas do problema são sempre corretas e completas? Se a resposta é não então SE podem apresentar uma vantagem distintiva. • O problema pode ser resolvido por outros meios? Embora SE ofereçam excelentes características para resolver algum tipo de problema, estas características poderão não ser necessárias para outros. Em certos casos, a melhor solução pode não ser computacional. Exemplo: um simples mapa pode ser a solução no caso do contra-exemplo. • O problema passa o teste do telefone? Este teste questiona se um especialista, através apenas de uma conversação por telefone, pode apresentar suficiente solução para permiti-lo a resolver um problema. Este teste não Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 18 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA deve ser tomado ao pé da letra. O teste é um meio de classificar o tipo de conhecimento que é necessário para resolver o problema. Ele certifica que o tipo de conhecimento não é de natureza visual, auditiva ou táctil. Embora uma limitada porção deste tipo de conhecimento pode ser manipulada por um SE caso a informação seja claramente categorizada e organizada, uma predominância deste tipo de conhecimento pode tornar o desenvolvimento de um SE extremamente difícil. • A abordagem via SE é justificável? O custo de desenvolver um SE é geralmente bem superior ao de programas convencionais. Por várias razões, primeiro é necessário recursos (software e "hardware") apropriados. Além disto, há a necessidade de pessoal especializado, tais pessoas são difíceis de encontrar, implicam em alto custo e/ou difíceis de treinar. Sendo assim, a solução via SE deve ser avaliada de acordo com a relação custo/benefício como qualquer outro projeto. 3.2. Disponibilidade de Recursos Mesmo que um problema específico possa satisfazer todos os critérios anteriores, ainda assim pode não se tornar uma implementação bem-sucedida. Alguns fatores podem comprometer o projeto. Primeiro, o engenheiro de conhecimento deve ser altamente capacitado. Em segundo lugar, como tais projetos não existem isoladamente eles estão sujeitos a algumas restrições geralmente encontradas em governo, indústrias, e organizações acadêmicas que afetam o desenvolvimento de projetos. Sendo assim, as próximas questões devem ser consideradas muito cuidadosamente. • Existe apoio gerencial para o projeto? A menos que o desenvolvedor seja proprietário da empresa ou tenha um excelente relacionamento com a direção (CEO), sempre haverá conflitos com a gerência. O apoio da gerência não garante o sucesso do projeto, mas a falta dele implica quase que certamente em sua falha. Tal apoio pode se apresentar de várias formas, todas essenciais à implementação bem sucedida do projeto. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 19 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • Disponibilidade de tempo Isto é a primeira e a mais importante forma de apoio. Existem excelentes aplicações que nunca decolaram devido à falta de tempo do engenheiro de conhecimento. A gerência deve ser bastante consciente da natureza de trabalho intensivo em desenvolver um SE. Além disto, a equipe de engenharia de conhecimento deve considerar o desenvolvimento sua maior prioridade. • Ferramentas e treinamento A escolha das ferramentas de desenvolvimento pode ser geralmente restrita por parâmetros fora do controle direto da gerência. O treinamento pode variar de alocar tempo ao engenheiro de conhecimento para estudar materiais sobre a ferramenta até providenciar cursos específicos sobre a ferramenta. • Disponibilidade do Especialista Neste aspecto, dois problemas podem ocorrer. • Os especialistas do domínio, devido à sua especialidade em uma área, podem ser altamente requisitados. Neste sentido, sua disponibilidade pode ser muito limitada. • Em algumas organizações o especialista e o EC podem pertencer a diferentes unidades. Neste caso, a gerência deve ser um nível suficientemente alto para abranger as duas unidades. • Existe apoio da parte do Especialista? O especialista cooperativo que está estimulado pela idéia de ver seu conhecimento reproduzido é ideal. Todavia, em si, este conceito pode parecer uma ameaça à segurança do especialista, acarretando o fato dele não se mostrar cooperativo. • O Especialista é competente? Em muitos casos o EC não é capaz de julgar se o especialista é competente, devido à sua falta (do EC) de conhecimento sobre o domínio. Além disto, isto pode ser delicado para questionar. Contudo, é fundamental para o sucesso do projeto que o especialista seja verdadeiramente especialista no domínio. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 20 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA A decisão mais importante que o EC deve tomar é se assegurar que existe mais de uma fonte de conhecimento disponível. Seria ideal ter dois ou três especialistas comprometidos com o projeto. Todavia, nesta abordagem existe um risco, ou seja, o principal especialista pode considerar isto uma ofensa. • O Especialista é bem articulado? Isto implica dizer que o especialista deve ser articulado para transmitir não apenas "conhecimento dos livros" mas também, e mais importante, sua própria experiência. O especialista altamente qualificado no problema que afirma: "a solução é tão óbvia, que qualquer idiota pode ver" ou "não posso explicar porque esta é a solução apenas que ela é", não de grande assistência. Neste sentido, o especialista deve ser capaz de verbalizar o processo aplicado para resolver um problema e propor uma solução. O EC dispõe de várias técnicas para "extrair" este conhecimento, as quais serão apresentadas posteriormente. • "O Especialista está fisicamente próximo?" A distância pode limitar o acesso do EC ao especialista, o que pode retardar o processo de desenvolvimento. Embora um especialista cooperativo pode superar tal deficiência. 4. Processo de desenvolvimento de Sistemas Especialistas Como em qualquer projeto, o desenvolvimento de um SE depende dos recursos disponíveis bem como de como o processo é organizado e gerenciado. O gerenciamento do projeto deve englobar: Gerenciamento da Atividade (processo) Planejamento - Definir atividades • especificar prioridades das atividades • recursos • principais eventos (milestones) • duração • responsabilidades Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 21 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Cronograma - Definir datas de início e término • resolver conflitos no encaminhamento de atividades de igual prioridade • monitorar o desenvolvimento • análise de planos, prazos e atividades Gerenciamento do Produto • organizar as diferentes versões do produto • gerenciar propostas de mudança e avaliações do impacto • definir pessoal para executar as modificações • instalar novas versões do produto Gerenciamento dos recursos • prever necessidade de recursos • aquisição de recursos • definir responsabilidades para otimizar o uso dos recursos • prover recursos críticos para minimizar gargalos 4.1. Estágios gerais no desenvolvimento de Sistemas Especialistas • Estudo de Viabilidade • Protótipo Rápido (Inicial) - um SE rapidamente desenvolvido para demonstrar idéias, despertar entusiasmo e impressionar o alto nível de gerência. • Sistema Refinado (α α- teste) - Verificação interna do sistema em problemas reais, executada pelos EC e EH • Teste de Campo (β β - teste) - sistema testado por usuários selecionados (não EC ou EH) • Sistema comercial - validado e testado. Documentação do usuário, treinamento e rápido apoio ao usuário via telefone ou e-mail. • Manutenção ou evolução - corrigir bugs e ampliar as capacidades. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 22 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 4.2. O problema da plataforma Dependendo do número de sistemas a serem fornecidos (amplitude do mercado), o problema de "para qual plataforma o SE será desenvolvido?" Pode ser um importante fator no desenvolvimento, o qual deve ser considerado nos estágios iniciais do processo. De uma forma ideal, os SE devem ser capazes de operar num hardware padrão. Todavia, muitos sistemas desenvolvidos em LISP necessitam de microprocessador especial, que aumenta substancialmente o custo. Deve também ser prevista a comunicação do SE com outros programas. 4.3. Manutenção e evolução de SE Neste contexto, estas atividades são tarefas com fim menos definido (open-ended activity) que no caso de programas convencionais. Devido ao fato de SE não serem baseados em algoritmos, seu desempenho depende do conhecimento. Sendo assim, a medida que um novo conhecimento é adquirido e o antigo modificado, o desempenho do sistema melhora. No aspecto comercial, os desenvolvedores de SE devem estar atentos aos desejos dos usuários, também no aspecto de melhoramento. A identificação e correção de bugs deve ser uma alta prioridade. Num sentido bem real, um sistema especialista comercial pode nunca realmente ser concluído, ele apenas melhora. 4.4. Possíveis erros no desenvolvimento de SE • Erros no conhecimento do especialista - como o especialista é a fonte de conhecimento, seus erros podem se propagar através de todo o processo. A detecção destes erros pode ocorrer quando o conhecimento é explicitado. Para projetos de missão crítica, onde vidas humanas ou propriedades estão em risco, deve ser necessário definir procedimentos formais (com um painel de especialistas e gerentes) para certificar o conhecimento do especialista. • Erros de semântica - erros deste tipo ocorrem quando o significado do conhecimento não é apropriadamente comunicado. Como exemplo, suponha que o especialista diga "você Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 23 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA pode extinguir um incêndio com água" e o engenheiro de conhecimento interprete "todo incêndio pode ser extinto com água". O erro de semântica pode ocorrer se o EC interpretar erroneamente as respostas do EH, ou o EH interpretar erroneamente as perguntas do EC, ou ambos. • Erros de sintaxe - estes são erros simples, correspondem a formas incorretas de definir regras, fatos, etc... As ferramentas de desenvolvimento devem apontar tais erros. • Erros na máquina de inferência - alguns bugs devem aparecer apenas em circunstâncias especiais (por exemplo, ordenamento de condicionais em uma regra), tais bugs devem ser difíceis de detectar. A maioria dos sistemas tem uma lista de usuários, e bugs já consertados, esta experiência deve ser a principal fonte para solucionar este tipo de erro. • Erros na cadeia de inferência - este tipo pode ser causado por uma combinação dos tipos anteriores e mais uma incorreta especificação do encadeamento de regras ou uma má interação entre regras. Outras possibilidades são propagação de incerteza nas regras e não-monotonicidade. No processo de busca de uma solução um especialista humano usa certas hipóteses que posteriormente são provadas falsas, sendo assim as conclusões tomadas com base nestas hipóteses devem ser reconsideradas. Sendo assim, sistemas que admitem não- monotonicidade devem ser capazes de modelar tal propriedade. • Erros devidos aos limites de ignorância - como os especialistas humanos conhecem a extensão de seu conhecimento, seu desempenho gradativamente (espera-se) decresce a medida que se aproximam deste limite. Tal característica deve ser prevista em SE. 5. A definição de Qualidade em Sistemas Especialistas Qualidade é um termo difícil de descrever num sentido geral porque significa coisas diferentes para pessoas diferentes. Uma forma de definir qualidade é um conjunto dos atributos desejáveis de um objeto em uma determinada escala. Os atributos e seus valores são chamados métricas. Por exemplo, a confiabilidade de um dispositivo é uma métrica de sua qualidade, uma medida deste atributo é o MTBF (Mean Time Between Failures). Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 24 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA A lista a seguir fornece algumas métricas relativas à qualidade de SE • Saídas corretas para entradas corretas • Saídas completas para entradas corretas • Saída consistente para a mesma entrada • Confiável, ou seja, o sistema não deve abortar (com freqüência) devido a bugs. • Utilizável e preferencialmente amigável ao usuário • De fácil manutenção, de fácil melhoramento • Validado, comprovado que satisfaz as necessidades do usuário • Viável economicamente • Código re-aproveitável para outras aplicações • Compatível com outros ambientes (hardware/software) • Permite interface com outros softwares • Código compreensível. Sistema preciso • Gradativa queda de desempenho na fronteira do conhecimento • Base de conhecimento verificável • Facilidade de explicação Uma lista de métricas permite mais facilmente priorizá-las, pois pode ser que haja conflitos entre as métricas. Por exemplo, aumentar a fase de testes de um sistema para assegurar sua precisão aumentará também o custo. Decidir quando os testes devem terminar envolve vários fatores como cronograma, custo e requisitos. De forma ideal, todos estes fatores devem ser satisfeitos. Na prática, alguns serão mais importantes. 6. Ciclo de vida de um Sistema Especialista O conceito do ciclo de vida fornece uma continuidade que conecta todos os estágios do desenvolvimento. O planejamento para manutenção e evolução nas primeiras fases do ciclo de vida reduz os custos nos estágios posteriores. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 25 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 6.1. Custos de Manutenção Para sistemas convencionais, a manutenção tipicamente responde por cerca de 60 a 80 % dos custos e é geralmente de duas a quatro vezes o custo do desenvolvimento original. Embora haja limitada informação deste tipo para SE, pelo fato de ser uma tecnologia nova, os dados devem ser provavelmente piores. Sistemas Especialistas que executam bastante inferência com base em incertezas são mais suscetíveis a maiores custos de manutenção e evolução. 6.2. Diferentes modelos de ciclo de vida • Modelo cachoeira (waterfall) - muito familiar entre programadores de sistemas convencionais. Neste modelo, cada estágio termina com uma verificação e validação para minimizar qualquer problema naquele estágio. (Apresentar figura e discutir) • Modelo codificar-&-corrigir - mais comum entre programadores iniciantes. Neste caso, uma certa parte do código é implementada e então consertada quando não funciona adequadamente. As deficiências deste "modelo" levaram ao desenvolvimento de outros. • Modelo incremental - este modelo é um refinamento do waterfall. A idéia básica é desenvolver o sistema com base em incrementos de sua funcionalidade. O modelo incremental foi usado com sucesso no desenvolvimento de grandes programas convencionais. Este modelo é também aplicável a sistemas especialistas onde o incremento de regras amplia as capacidades do sistema numa escala de vários níveis (de um assistente, para um coadjuvante e finalmente para um especialista). A principal vantagem do modelo incremental é que o acréscimo nas capacidades funcionais é mais fácil de testar, verificar e validar que no caso de estágios individuais como no modelo waterfall. Com este modelo, os custos de incorporar correções no modelo são menores. O modelo incremental é equivalente a dizer que o sistema na forma de protótipo inicial se desenvolve ao longo do ciclo de vida, ao invés de implementar um protótipo apenas determinar os requisitos do futuro sistema, ou seja, o protótipo que evolui é o próprio sistema. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 26 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 7. Definição Do Domínio De Aplicação E Identificação Das Fontes De Conhecimento Tarefa Objetivo Identificação da Quem e quais são as fontes de conhecimento, sem considerar fonte disponibilidade Importância Priorizar a lista das fontes em ordem de importância Disponibilidade Listar as fontes de conhecimento de acordo com a disponibilidade. Livros e outros documentos são em geral mais disponíveis que especialistas humanos. Seleção da fonte Selecionar as fontes com base na importância e disponibilidade 8. Projeto da Base de Conhecimento Tarefa Representação Objetivo Especificar como o conhecimento será representado, isto dependerá e implicará na seleção da ferramenta de desenvolvimento Estrutura de controle Definir como as regras terão interação entre si, partição da agenda no sistema ou uma regra global para gerenciar o fluxo de informações Estrutura interna de Fatos Especificar de forma consistente a estrutura interna de fatos, o que auxiliar o entendimento do fluxo de informações Projeto preliminar da Especificar o projeto da interface e obter o mais rápido possível um interface retorno no usuário sobre a interface. Planejamento dos testes Determinar como o código será testado e como os resultados serão analisados. Estratégia de implementação Definir como o sistema será implementado, ou seja, que modelo de desenvolvimento será adotado. Elaboração de relatório Documentar o projeto, incluindo todas as definições anteriores Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 27 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 9. Escolha da ferramenta de desenvolvimento Escolher o correto escopo (meta, finalidade, objetivo) do problema e selecionar a ferramenta certa para desenvolvimento são duas das mais difíceis decisões a tomar no projeto de um SE. Selecionar a ferramenta é uma tarefa difícil, pois, a maioria dos sistemas não foi desenvolvida para aplicação a uma classe particular de problemas. Lei de Davis: Para cada ferramenta existe uma tarefa perfeitamente adequada a ela. Todavia o contrário não é verdade, ou seja, para uma dada tarefa pode existir uma gama de ferramentas igualmente se aplicam. Em alguns casos, a ferramenta foi escolhida por motivos errôneos. • O engenheiro de conhecimento já conhecia o sistema. • A ferramenta era a mais eficiente disponível para o hardware a ser usado. • A ferramenta foi desenvolvida e então domínios foram pesquisados para testá-la- "a solução buscando um problema" 9.1. Questões quanto à escolha da ferramenta • A ferramenta oferece à equipe de desenvolvimento a capacidade e sofisticação necessária? • As condições de suporte da ferramenta são adequadas considerando as restrições de tempo do projeto? • A ferramenta é disponível? • Existe manutenção da ferramenta? • A ferramenta possui as características sugeridas pelas necessidades do problema em questão? Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 28 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Os fatores de desenvolvimento (tempo, recursos financeiros, pessoal, etc.) influenciam a decisão sobre que tipo de ferramenta escolher: uma linguagem de programação (tipo LISP ou PROLOG) ou um sistema de engenharia de conhecimento (SHELL). As linguagens de programação oferecem maior flexibilidade, mas geralmente requerem da equipe de desenvolvimento a implementação da máquina de inferência para acessar a base de conhecimento. Em geral, o desenvolvimento leva mais tempo com uma linguagem de programação, mas o resultado pode ser mais adequado ao domínio do problema. Por outro lado, sistemas SHELL, apesar de oferecerem menos flexibilidade, fornecem mais orientações e mecanismos de como representar e acessar o conhecimento. O desenvolvimento deve ser mais fácil, rápido barato com este tipo de sistema, mas pode resultar num sistema tão eficiente quanto um implementado em linguagem de programação. A orientação neste sentido é: Escolher a ferramenta que complementa os aspectos fortes da equipe de desenvolvimento. 9.2. Condições de suporte da ferramenta Estas devem incluir mecanismos de depuração (debugging), editores de base de conhecimento, adequadas interfaces (I/O), e mecanismos de explicação. 9.3. Confiabilidade O desenvolvimento será seriamente comprometido se a ferramenta não for confiável. Ferramentas não suficientemente validadas podem causar problemas devido a testes incompletos, documentação obsoleta e a linguagem ainda está em especificação. É mais provável que a ferramenta seja confiável se existe uma grande comunidade de usuários e considerada robusta e bem depurada. Orientação: Não implementar um SE numa ferramenta ainda em desenvolvimento. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 29 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 9.4. Mantenabilidade A manutenção é de responsabilidade do desenvolvedor da ferramenta, um sistema antigo pode ser um problema se seu criador não tiver mais interesse em mantê-lo ou fornece adequada documentação. Orientação: Não escolha uma ferramenta que deva ser mantida por você mesmo. 9.5. Características da tarefa Aspectos como: • forma de representação do conhecimento, • habilidade de programação da equipe de desenvolvimento e • tipo de encadeamento de regras a ser aplicado é determinante para a seleção da ferramenta Uma vez escolhida a ferramenta, considere implementar um sistema protótipo num prazo de quatro a seis semanas para testar a eficácia do sistema. Isto envolve aplicar a ferramenta para resolver um problema pequeno, mas representativo no domínio de interesse. Esta etapa coincide com a necessidade de implementar um protótipo rapidamente para verificar se o escopo do problema e o esquema de representação estão bem fundamentados. Durante esta fase, considere com particular atenção a velocidade de execução, pois se o sistema levar horas ou minutos, em vez de segundos, para obter respostas parciais, então testes e refinamentos serão lentos e o desenvolvimento poderá estar comprometido. Outro aspecto de relevância é que a medida que o sistema se torna mais complexo, a performance da ferramenta deve decair gradualmente e não abruptamente. 10. Escolha da equipe de desenvolvimento Uma etapa decisiva é a escolha da equipe. O tamanho e a composição desta equipe varia grandemente dependendo de vários fatores, a seguir abordados: Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 30 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 10.1. Escolha do Engenheiro de Conhecimento Algumas características: • Competência - assim como na engenharia de software, o EC deve possuir habilidades de interpretar os requisitos de uma tarefa e o projeto da solução de forma bem clara. Sendo assim, um completo entendimento de engenharia de conhecimento e das ferramentas é um requisito. • Organização - a capacidade de analisar os requisitos de projeto e planejar uma solução geral no estágio inicial é importante. O processo de gerar um protótipo de forma rápida determina a validade da solução proposta. Se a solução é cuidadosamente organizada e estruturada, as chances de ser incorreta são bem menores. • Paciência - apesar de ser possível adotar o modelo incremental e obter um protótipo de maneira relativamente rápida, o desenvolvimento do sistema pode ser um processo demorado, principalmente em projetos de grande e médio porte. O tempo entre a definição do projeto e seu término pode levar de três a quatro anos. Consequentemente é necessário uma considerável paciência para acompanhar um projeto até seu final. Outro aspecto importante é que a rotatividade de pessoal pode ser um grande problema, pois o desenvolvimento do sistema depende grandemente de como a equipe interpreta o conhecimento sobre o domínio de aplicação. • Facilidade de relacionar-se (friendliness)- não é possível subestimar a importância da habilidade do EC de interagir facilmente com outras pessoas. O EC dedica grande parte de seu tempo para entrevistar e interagir com especialistas. Tais especialistas podem ou não ter resistência a participar do projeto, de qualquer forma sua paciência será levada ao limite. • Habilidade de comunicação interpessoal - para ser efetivo, o EC deve ter a capacidade de se comunicar com os mais variados especialistas, alguns dos quais podem ser muito difíceis de lidar. • Interesse em expandir o conhecimento - aqueles que pretendem desempenhar o papel de EC devem apreciar aprender sobre novos assuntos, caso contrário poderá haver um desestímulo durante o projeto resultando em rotatividade de pessoal. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 31 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • Auto Confiança - como a atividade do EC pode envolver interação com um domínio de conhecimento bem diverso, isto pode levar a uma certa frustração do EC, posto que este terá pouco envolvimento com cada domínio, ou seja, é pouco provável que chegará a ser um especialista em um domínio específico. O candidato ideal a EC é alguém com um excelente entendimento sobre sistemas baseados em conhecimento e uma compreensão básica sobre o domínio de aplicação. Tal pessoa provavelmente não demande extensa "atividade de doutrinação" num certo domínio para ser familiarizado com este domínio. Na realidade, tal combinação é rara e em muitos casos soluções de compromissos devem ser estabelecidas. É mais fácil ensinar quase-especialistas a arte da engenharia de conhecimento que ensinar analistas de sistemas os princípios básicos de um domínio do conhecimento para o qual eles não foram preparados. Algumas vezes pode ser vantajoso que o EC seja completamente "novo" e imparcial num certo domínio de conhecimento. Isto pode acarretar o domínio a ser mais amplamente tratado e resultar numa melhor base de conhecimento. Todavia, existe uma desvantagem: a aquisição de conhecimento pode levar muito tempo, devido ao tempo necessário para o EC entender o domínio de aplicação. Qualquer que seja a situação é fundamental que o EC tenha uma fundamentação em representação e aquisição de conhecimento, pois estas são suas responsabilidades principais. 10.2. Desvantagens de ter um especialista como EC • o sistema não refletirá o conhecimento de uma coletividade sobre o domínio; • a granularidade do sistema (ou seja, o nível de detalhe) pode não ser apropriado à tarefa (em geral muito detalhista); • apesar disto, não se pode dizer que um especialista nunca seja um EC, isto depende do domínio, e principalmente, do próprio especialista; nesta abordagem a vantagem é que não serão necessárias entrevistas e nem a curva de aprendizagem no domínio. O contrário, todavia é verdade, ou seja, o EC nunca deve desempenhar o papel do especialista e tomar decisões sobre o sistema sem consultar o especialista. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 32 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Alguém só se torna um verdadeiro especialista desempenhando tarefas específicas e não apenas interagindo com um especialista. 10.3. Escolha do líder da equipe Os critérios para definição do líder dependem do tamanho da equipe e da sofisticação técnica do sistema. Contudo, independente disto, esta pessoa deve possuir uma significativa experiência no desenvolvimento de sistemas baseados em conhecimento. Isto inclui: • um entendimento a respeito da aquisição de conhecimento, • suficiente experiência na implementação, • bom entendimento da linguagem de programação, • e se possível uma percepção e compreensão do domínio. Tal lista de requisitos é bastante ampla e um aspecto mais realístico seria que o líder tenha pelo menos um conhecimento compatível com o domínio. 10.4. Escolha do especialista • Competência - pode ser medida de várias formas: anos de trabalho, publicações, patentes no domínio, reputação entre os pares, etc. • Capacidade de Articulação - isto facilita grandemente o processo de aquisição do conhecimento. O especialista deve ser capaz de explicar precisamente como e porque chegou a uma conclusão. • Auto-confiança - o especialista deve estar seguro de sua posição na organização. É muito difícil trabalhar com alguém numa posição defensiva sobre seu papel. • Disponibilidade - o desenvolvimento de SE é uma tarefa que demanda tempo, portanto o especialista deve satisfazer também este critério. • Mente aberta - uma abertura para novos campos da tecnologia é importante. Pois a resistência pode ser um grande obstáculo no desenvolvimento do sistema. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 33 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • De fácil relacionamento - embora não seja um requisito absoluto, se existe uma escolha, trabalhar com um especialista que trata os outros de forma equânime é uma vantagem. • Entusiástico - isto auxilia não apenas o processo de entrevista, mas também, e principalmente, o tempo das entrevistas quando são necessárias a documentação e compilação de dados. 10.5. Critérios relativos à equipe O fator mais determinante para composição da equipe é a complexidade do sistema em desenvolvimento. Considerando que haja uma relação direta entre o tamanho do sistema e sua complexidade (o que nem sempre é verdadeiro), a descrição das equipes pode ser dividida em três categorias de sistemas, a saber, pequeno, médio e grande: 10.5.1. Sistemas pequenos - contem aproximadamente de 100 a 200 regras. O conhecimento neste tipo de sistema pode ser exclusivamente heurístico ou uma combinação de procedural e heurístico. A experiência usada nestes sistemas pode estar disponível em literatura ou através de contatos pessoais com especialistas. Algumas características destes sistemas podem incluir: • Geralmente empregam regras como principal forma de representação do conhecimento. • Usam sistemas Shell disponíveis comercialmente. • Normalmente são implementados em PC's. • Geralmente são desenvolvidos pelo próprio especialista. • Usam um único especialista se um engenheiro de conhecimento é necessário. Caso um engenheiro de conhecimento seja necessário haverá apenas um. A duração é de cerca de 6 meses. Estes tipos de sistemas são ideais para treinamento de novos engenheiros de conhecimento. Pelo fato de serem relativamente pequenos, é realístico afirmar que tais sistemas sejam desenvolvidos por estudantes em um semestre acadêmico. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 34 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 10.5.2. Sistemas de médio porte - tais sistemas envolvem domínios mais complexos onde a solução é tipicamente heurística. Estes sistemas contem aproximadamente de 250 a 1000 regras. No entanto, o número de regras nem sempre reflete a complexidade do sistema, pois outras formas de representação, tais como frames, podem ser usadas. Apesar disto, o número de regras pode fornecer uma maneira conveniente de classificar os sistemas. Estrutura da equipe • pelo menos um engenheiro de conhecimento, às vezes mais de um; • no mínimo um especialista do domínio; • possivelmente um analista de sistemas, em tempo parcial. Atividades do líder da equipe - estruturar o sistema, o que minimiza possibilidades de modificações ao longo do projeto. Também coordena as entrevistas com os especialistas, e supervisiona as tarefas do engenheiro de conhecimento júnior. Este por sua vez é responsável por implementar e validar a base conhecimento. O analista de sistemas auxilia os EC's na interface do SE com outros sistemas como banco de dados. Mesmo que vários especialistas sejam empregados no projeto, é importante que um especialista atue como principal fonte de conhecimento. Os outros especialistas podem servir para verificar e também esclarecer o conhecimento implementado. Um importante ponto deve ser destacado. No desenvolvimento de um SE de porte médio ou grande, pode ser arriscado empregar um especialista como EC. Pois, o sistema tenderia a refletir suas opiniões e não a de outros especialistas. Embora isto seja aceitável em sistemas de pequeno porte, não é o caso de sistemas maiores onde é necessária uma maior gama de conhecimento. A duração de projetos de médio porte, da sua concepção à implementação, é tipicamente de 1 a 2 anos. 10.5.3. Sistemas de grande porte - possuem em geral mais de 1000 regras. Aplicam uma combinação de diferentes técnicas de representação do conhecimento. São desenvolvidos para problemas de natureza altamente heurística. Uma estrutura típica para projetos deste porte compreende: • vários EC's juniores sob a supervisão de um líder (um EC mais experiente); • um analista de sistema a tempo integral; Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 35 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • um gerente geral do projeto. A logística inerente a tais projetos possivelmente leva o problema a ser dividido em vários componentes, que são implementados independentemente, cujas fronteiras devem ser definidas pelo líder da equipe. Sempre é necessário definir que o conhecimento não esteja sendo duplicado, isto está entre as tarefas do líder da equipe. Uma grande diferença deste tipo de projeto, comparando com os anteriores, é a necessidade de incluir um gerente para lidar com orçamento e aspectos organizacionais comuns a qualquer projeto de grande porte. 10.6. Problemas relativos à interação com especialistas Segue abaixo uma lista de diferentes perfis de especialistas e formas de abordá-los. 10.6.1. O Especialista fraco ou tímido Este tipo de especialista teme perder seu emprego ou status na organização caso um SE seja desenvolvido para desempenhar sua função. Como conseqüência disto, ele raramente fornece uma resposta direta a qualquer questão. Este tipo é o mais difícil para se trabalhar inicialmente, mas frequentemente o mais fácil de se modificar. Neste caso, o EC deve ser capaz de convencê-lo de que o SE será implementado para livrá-lo de tarefas mais rotineiras. Alguns argumentos • o SE permitirá o especialista se concentrar em tarefas mais desafiadoras; • o SE não poderá substituir totalmente um humano. Tais sistemas carecem de conhecimento de senso comum e criatividade, limitam-se a realizar um sub-conjunto das tarefas do especialista; • um SE não realizar descobertas. Isto ainda será a tarefa do especialista; • a importância e o significado das realizações do especialista são demonstrados pelo interesse da empresa em codificar sua experiência. • a área da Inteligência Artificial representa uma nova tecnologia, a qual alguém se sentirá interessado em aprender. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 36 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA O mais importante é que o EC deve ser cuidadoso no trato com tal especialista, para não despertar insegurança. 10.6.2. O Especialista Cínico Um especialista deste tipo, num caso extremo, detesta seu trabalho, a empresa e seu chefe, e até mesmo a idéia de participar no projeto de um SE. Por várias razões (senioridade, salário, benefícios) prefere continuar na empresa. Algumas dicas para identificar este tipo de especialista: • constante recusa em gravar entrevistas; • críticas de seus pares e/ou superiores; • outro sinal de amargura Este tipo pode compartilhar informação de forma relutante, ou em casos raros, fornecer propositadamente informação incorreta. Se a única opção for trabalhar com tal especialista, o EC deve tomar as seguintes providências: • Examinar cuidadosamente toda informação passada, pois pode haver o risco de sabotagem do projeto. Isto reforça a importância dos testes de validação e de empregar outros especialistas como revisores; • Mostrar simpatia ao especialista. Caso ele perceba o EC também como "vítima" da organização poderá criar uma identificação; • Apelar para o senso de profissionalismo do especialista. Isto pode ser obtido através de uma atitude consciente e precisa do EC, geralmente isto se aplica mais quando ambos trabalham na mesma organização. 10.6.3. Especialista "sumo sacerdote" no domínio Este tipo considera-se acima de todos em seu domínio. Encara o EC como um ser ignorante que gasta seu tempo com questões banais, se arriscando a pensar que ele, o especialista, pode ser substituído por uma máquina. Para este tipo, a tecnologia de SE está extremamente subdesenvolvida. Por causa de sua arrogância, este tipo pode ser muito difícil de se interagir, nunca está disponível para reuniões, Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 37 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA permite várias interrupções durante as poucas audiências, e não se interessa em cumprir as tarefas entre as reuniões. O EC deve ser paciente para lidar com tal especialista, deve conquistar a conquistar sua confiança, através da capacidade intelectual mostrada com o desenvolvimento de um protótipo. Isto ganhará o respeito do especialista e poderá convencê-lo da viabilidade da tecnologia. Reclamar aos superiores é improvável de resultar em melhoras no comportamento deste tipo devido ao alto status do especialista na organização, de fato pode até piorar o relacionamento. 10.6.4. O Especialista paternalista Semelhante a um "velho" professor que deseja auxiliar e agradar um bom ouvinte através da narrativa de suas proezas. Este tipo é difícil de trabalhar apesar de suas boas intenções, pois geralmente fala demais. Este tipo de relação professor-aluno pode ser muito benéfica ao processo de aquisição de conhecimento se adequadamente gerenciada. Na interação com tal especialista, o EC deve tentar: minimizar os longos discursos com diplomacia, e prosseguir para outras questões. Muitas vezes senso de humor pode atingir o efeito desejado. 10.6.5. O Especialista incomunicável Este tipo se expressa via questões curtas e não elabora sobre suas respostas- isto pode frustrar o EC. Este perfil não pretende provocar um dano ao projeto, apenas é um indivíduo calado e introspectivo. Neste tipo de interação, a paciência é extremamente importante. O EC deve explorar cuidadosamente as respostas e explicações, deve estudar o domínio de conhecimento para tentar desvendar outros ângulos enfoques que podem não ser óbvios para ele. 10.6.6. O Especialista descuidado É uma variação do perfil anterior. Nunca discorda do EC, pois simplesmente levaria muito tempo para explicar as razões. O EC deve ter um cuidado extra para entender o domínio a fim de verificar o conhecimento do especialista. O uso de gravação, se o especialista concorda, pode forçá-lo a pensar mais sobre suas respostas. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 38 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 10.6.7. O Especialista "pseudo conhecedor da AI" Este tipo já leu um ou dois artigos sobre sistemas especialistas e pensa que já conhece tudo. Este perfil pode subestimar o processo de aquisição de conhecimento e tentar se envolver em detalhes da implementação do sistema que são da responsabilidade do EC. Este especialista pode continuamente sugerir melhorias no processo de entrevistas e tentar conduzir o EC. A forma de lidar com tal perfil e tentar gentilmente mostrar quem ele é e quem é o EC. 11. Estrutura do processo de aquisição do conhecimento Este processo pode se apresentar de várias formas, mas independente destas a aquisição se processa um a um. De forma ideal, tal processo consiste em uma série de entrevistas, cada uma com diferentes aspectos. 11.1. A entrevista inicial Principal objetivo do primeiro encontro- estabelecer uma relação harmoniosa com o especialista. Neste sentido, o EC deve tentar deixar uma boa impressão. Isto pode ser obtido mostrando ao especialista que o EC já tentou adquirir um certo entendimento básico do domínio de conhecimento antes do encontro. Uma típica agenda • Introdução e uma conversa leve • Uma explicação do que são sistemas especialistas e sua relação com o projeto. • Uma discussão sobre a importância do projeto (se aplicável) • Uma discussão sobre o que é esperado do especialista e também o que ele pode esperar do EC. • Uma discussão de materiais para leitura que o especialista recomenda para que o EC possa se familiarizar com o domínio. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 39 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • A programação para o próximo encontro. Nesta primeira reunião as vantagens de um projeto deste tipo devem ser claramente expostas. A profundidade da discussão deve ser determinada pelo grau de conhecimento que o especialista tem sobre informática. Caso o especialista não tenha conhecimento sobre esta área, pode ser necessária a definição de termos básicos. Um ponto chave é tornar o especialista familiarizado com o que será feito e não os detalhes de como será feito. As regras básicas que definem o desenvolvimento de um SE devem ser discutidas. O principal requisito para estabelecer uma relação harmoniosa entre o especialista e o EC é a identificação das expectativas de ambos. É crítico que o especialista saiba deste o princípio o que lhe será solicitado em termos de tempo, esforço e cooperação. Da mesma forma, é importante que ele saiba o que pode esperar do EC. Por exemplo, no processo de aquisição de conhecimento, será necessário apenas obter do especialista uma orientação geral e o EC saberá definir os passos posteriores? Se o especialista não pode ou não deseja se comprometer com o projeto, é melhor saber disto no início de tal forma que alternativas possam ser exploradas. Juntamente com esta discussão, deverá haver uma descrição do processo de entrevistas, uma explicação do que é o processo incremental, e possivelmente alguns aspectos sobre verificação e testes. É importante que esta primeira reunião seja curta, não mais que uma hora. Lembrando que o objetivo principal é estabelecer uma relação harmoniosa com o especialista. 11.2. Organização das sessões para aquisição do conhecimento Estas podem ser classificadas em dois grupos: • sessões para definição de conhecimento genérico • sessões para solução de problemas específicos O conhecimento adquirido das sessões do primeiro tipo, embora importante e educativo, provavelmente não será codificado na base de conhecimento, mas será vital para obter o entendimento necessário para a solução de problemas específicos. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 40 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 11.3. Sessões para definição de conhecimento genérico As sessões que seguem a entrevista inicial são deste tipo. Os principais objetivos são: • Entender melhor o domínio • Entender as opiniões e pontos de vista do especialista sobre o domínio. • Continuar desenvolvendo uma relação harmoniosa com o especialista Antes destas sessões o EC deve ter se familiarizado com a literatura sugerida pelo especialista e conhecer o vocabulário e o entendimento básico do domínio, para capacitá-lo a dialogar com o especialista. Neste tipo de sessão, a aquisição de conhecimento se dá principalmente através de questões abertas. Este tipo de questão requer uma discussão e não pode ser respondida apenas com sim, não, um termo ou um número. Geralmente, os especialistas apreciam a oportunidade de falar abertamente sobre o domínio. Além disto, este tipo de questão serve com um aprendizado para o EC. Mesmo especialistas que são relutantes ou desconfiados tornam-se mais cooperativos com este tipo de questão. Com este tipo de questão, o EC verifica seu entendimento básico sobre o domínio. Se alguns conceitos ou termos não são entendidos, é aqui o momento de perguntar. O risco com as questões abertas é que o especialista pode divagar nas respostas, e um considerável tempo pode ser perdido. Este tipo de questões requer uma boa dose de tato e paciência do EC para manter controle da entrevista sem provocar desconforto no especialista. Entrevistas deste tipo podem variar de uma a três horas de duração. É frequentemente difícil e indesejável marcar períodos mais longos com especialistas, pois estes são muito requisitados. A habilidade de manter a concentração também diminui após duas ou três horas. Caso seja uma opção, é melhor agendar tais reuniões para o período da manhã, pois a mente ainda está "fresca" e menos provável que o especialista já tenha se envolvido com algum problema. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 41 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA As entrevistas via questões abertas devem continuar até que o EC tenha obtido um adequado entendimento do problema, das opiniões e pontos de vista do especialista. 11.4. Sessões para solução de problemas específicos Uma vez que o EC tenha obtido o entendimento básico do problema, o processo incremental terá início com a definição de uma sub-área que servirá de primeira parte do conhecimento a ser representada. Apesar de ter sua definição um tanto quanto nebulosa esta sub-área deve envolver problemas que são: • Bem entendidos pelo especialista em questão. • Relativamente bem compreendidos pelo EC. • De largura e profundidade suficientes para representar dificuldades na solução de problemas do domínio. • Suficiente pequena para requerer apenas de dois a três meses de esforço. Nesta ocasião deve-se modificar a abordagem de questões genéricas, amplas, para questões altamente direcionadas. O objetivo destas entrevistas é mostrar como o especialista soluciona os problemas específicos. Muitas das questões aqui empregadas são do tipo questões fechadas, cujas respostas podem ser do tipo sim/não ou números. Durante estas entrevistas, deve-se estar atento para manter o especialista focalizado no problema em questão, diplomaticamente evitando que ele divirja das questões apresentadas. Esforços devem ser feitos no sentido de relacionar cada entrevista com as demais, resumir e revisar o conhecimento adquirido nas entrevistas anteriores. Esta revisão permite ao especialista verificar quão corretamente o conhecimento foi entendido, e promove uma continuidade do processo de aquisição. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 42 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 12. Organização Do Conhecimento Uma técnica de organização do conhecimento bastante utilizada é conhecida como saídaentrada-meio. A seqüência é: • Identificar as respostas ou soluções para o problema em questão - as saídas do sistema. Estas representam os objetivos que o especialista e o EC têm quando buscam uma resposta. No caso de existir mais de uma resposta, as diferenças entre elas devem ser claramente identificadas e entendidas pelo EC. • Identificar as fontes de informação que o especialista usa para deduzir a solução - as entradas do sistema. Como estas entradas são identificadas, determinadas e geradas deve também ser entendido pelo EC. • Finalmente e mais importante, determinar as conexões entre entradas e saídas - o meio. Estas conexões representam o núcleo do conhecimento do especialista. Algumas entradas podem não ser necessárias inicialmente. Adicionalmente, algumas metas intermediárias ou hipóteses podem ser requeridas para se completar as conexões. Exemplo: um sistema especialista para diagnose de mau funcionamento no sistema de refrigeração de automóveis. O sistema baseia-se no fato de que o motorista não tem conhecimento de mecânica e que a comunicação entre o motorista e o sistema se dá via telefone, ou seja, o especialista não vê o automóvel. O EC define uma lista de possíveis problemas que podem ocorrer com o sistema de refrigeração do automóvel. SAÍDAS: as possíveis saídas deste tipo de problema são: • Vazamento no radiador. • Correia quebrada no ventilador. • Bomba de água defeituosa. • Perda de refrigerante por evaporação devido à folga da tampa do radiador. • Mangueira de água quebrada ou rachada. • Refrigerante congelado. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 43 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA ENTRADAS: as informações que um mecânico necessita para diagnosticar o mau funcionamento do sistema são: • Indicador de temperatura no painel. • Vapor saindo do capô do motor. • Condições ambientais. • Poça de refrigerante embaixo do motor. A fim de relacionar as entradas às saídas, o especialista define regras. Algumas destas apresentadas a seguir: Regra 1: a presença de indicação "quente" no medidor de temperatura no painel geralmente implica que pelo menos um problema existe. Regra 2: a ausência de indicação "quente" não necessariamente implica na ausência de um problema. Regra 3: uma grande poça de refrigerante embaixo do motor pode indicar vazamento no radiador, mangueiras quebradas, e/ou bomba defeituosa. Regra 4: uma pequena poça de refrigerante embaixo do motor geralmente implica na bomba defeituosa. Regra 5: ausência de poça de refrigerante e uma indicação “quente” no medidor de temperatura indicam uma correia quebrada no ventilador. Regra 6: uma temperatura ambiente abaixo de 10o F sugere o refrigerante congelado. Regra 7: a presença de um ruído chiado e uma pequena poça de refrigerante embaixo do motor indica vazamento no radiador e/ou mangueiras. Embora as técnicas baseadas em entrevistas sejam muito utilizadas, elas nem sempre são as mais eficientes. A razão disto é que alguns especialistas por mais interessados que sejam em cooperar com o EC têm dificuldade em verbalizar o conhecimento. Nestes casos, técnicas alternativas devem ser empregadas, estas podem ser divididas em duas categorias: • Observacionais - onde o EC observa o especialista em sua tarefa e busca entender seu método de resolução Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 44 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • Intuitiva - onde o EC tenta se tornar um "pseudo-especialista" e implementa parte do conhecimento sobre o domínio. 12.1. Técnicas observacionais • Observação em silêncio no local Devido ao fato do raciocínio do especialista não sofre interrupção, ele pode executar uma tarefa de forma bem eficiente. Com a falta de interação o EC pode deixar de perceber detalhes sobre a forma de solução adotada. Consequentemente, esta técnica deve ser considerada apenas para se ter uma noção geral do problema, e não para obter conhecimento detalhado. • Observação no local com discussão Se o problema é rotineiro para o especialista, não haverá uma grande diferença devido à interação. Caso contrário, o especialista pode ter uma certa dificuldade em obter a solução. Alguns sintomas de que essa técnica não é adequada: hesitação para tomar uma decisão, sinais de desconforto, ou recusa em criar uma solução perante o EC. • Exercitando o especialista Baseia-se em preparar casos especiais de dificuldade variável para exercitar o especialista. Isto considera o fato de que, em algumas áreas, os problemas são em sua maioria rotineiros. Formas destas técnicas: • Tarefas com informações limitadas - neste caso, uma tarefa rotineira é executada, mas o especialista não conhece uma certa informação que tipicamente é disponível. • Tarefas com restrições - uma tarefa típica é desempenhada, mas o especialista deve executá-la com restrições, por exemplo, de tempo. • Descrição e análise de problemas Esta técnica é baseada na análise de problemas clássicos de um domínio de conhecimento. Geralmente, são usados problemas de sala de aula que representam importantes relações no domínio. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 45 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA A análise destes problemas pelo EC é tipicamente na forma de estudo de caso, onde algumas questões chaves são: • Por que tais problemas são usados para ensinar este domínio? • Quais são as características que tornam cada um destes problemas importantes? 12.2. Técnicas intuitivas Estas técnicas são idealmente aplicadas para situações onde o EC já tem um significativo entendimento do processo de tomada de decisão e deseja verificar quão correto é este entendimento. Estas técnicas não são aplicadas geralmente para aquisição, mas sim verificação de conhecimento antes de representá-lo. Neste caso, o EC e o especialista trocam de papéis, e o EC tenta resolver um problema na presença de um especialista. Este processo pode esclarecer e modificar abordagens previamente consideradas como adequadas e pode fornecer novas informações de como proceder a solução. 13. Protótipo Inicial na aquisição do conhecimento No início do desenvolvimento de sistemas computacionais, tinha-se como padrão tentar obter uma completa e correta especificação do sistema antes de começar sua implementação. Todavia, para SE, a experiência demonstra que tal forma não mostrou-se eficiente. No início do projeto, as idéias das pessoas envolvidas do que é necessário e como isto se dará na prática são difusas e imprecisas. Uma especificação pode ser difícil de entender, particularmente se for usado um jargão computacional, e é extremamente difícil se imaginar como será "um sistema dinâmico" partindo-se de uma "descrição estática". O processo de "prototipagem" envolve desenvolver um modelo relativamente barato e mais simples de um futuro produto, e usá-lo como um dispositivo para aprender sobre o futuro trabalho. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 46 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Todavia, se este processo não for disciplinado pode ser perigoso, pois o ciclo de construir, modificar e descartar pode se repetir indefinidamente. No contexto de sistemas especialistas, prototipagem geralmente envolve três aspectos: • Protótipo descartável - isto implica em desenvolver um modelo com a intenção de aprender com base nele e depois descartá-lo. • Protótipo incremental - uma versão para teste de um produto. Neste caso, um projeto é dividido em pequenos projetos e a cada estágio de incremento na funcionalidade do sistema, uma versão é apresentada para teste da parte a ser adicionada no sistema. • Protótipo evolutivo - contínua modificação de uma versão em estágio de operação. Neste sentido, o sistema deve ser concebido para permitir constantes atualizações. Na prototipagem, um aspecto chave a ser investigado é a interface do sistema. Alguns estudos mostram que tal aspecto pode significar até 50 % do esforço no desenvolvimento. 13.1. Impacto desta abordagem sobre o perfil do EC Caso a prototipagem seja adotada, o conhecimento técnico do EC sobre programação deve ser consideravelmente mais amplo que no caso de considerar apenas um "modelo no papel". Com o protótipo inicial, a equipe de EC tem condições de receber um rápido retorno sobre: • escopo de conhecimento • necessidades dos usuários • validade das decisões tomadas no projeto. Com isto, caso uma mudança de paradigma seja necessária seu impacto será minimizado pelo fato da mudança ter sido constatada num estágio inicial do desenvolvimento. O desenvolvimento do protótipo envolve o seguinte ciclo: • adquirir partes do conhecimento das fontes • implementar tais partes no sistema • rever o resultado da implementação com especialistas Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 47 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • refinar a base de conhecimento para corrigir os problemas detectados • adquirir outras partes de conhecimento ... Com a progressiva adição de módulos, a base de conhecimento pode ser rapidamente obtida, ainda que com uma funcionalidade parcial, e colocada em teste, embora não esteja completa. Tal abordagem não é aplicável para Programas Convencionais, que por sua natureza procedural, geralmente devem ser completamente implementados antes do uso. 14. Relação entre protótipo e sistema final Algumas referências recomendam que o protótipo seja descartado após sua avaliação e se inicie o desenvolvimento do sistema final da estaca zero, a menos que todas as decisões tomadas no protótipo sejam justificadas (um cenário bem raro). Aspectos Gerais sobre o Protótipo Inicial • A base de conhecimento deve ser suficiente para resolver alguns subproblemas de início ao fim, mas relativamente pequena para não requerer um significativo esforço. Por exemplo, num sistema para diagnóstico de problemas em veículos, um protótipo inicial pode corresponder ao sistema de injeção de combustível. • Uma vez que o conhecimento, as entradas e saídas de, por exemplo, 5 a 10 subproblemas tenham sido implementadas e para expandir o sistema o processo seja simplesmente repetitivo, então o protótipo inicial estará concluído. • A equipe de desenvolvimento deve aprender o máximo possível com o protótipo inicial. E determinar quanto do sistema final já está implementado no protótipo. • O esforço esperado deve ser em torno de 2 a 4 semanas para um sistema pequeno, e de 2 a 4 meses para sistemas de médio e grande porte. • A interface é um aspecto importante a ser verificada com o protótipo. Todavia, a equipe não deve alocar tempo para a interface em detrimento da base de conhecimento. • O protótipo deve ser validado da mesma forma que o sistema final será. Assim, alguns usuários do futuro sistema devem ser permitidos e até estimulados a usarem o protótipo. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 48 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • Um relatório final deve ser escrito na conclusão do protótipo, incluindo aspectos de sua validação. 15. Verificação e Validação O futuro de Sistemas Especialistas será severamente comprometido, se os desenvolvedores destes sistemas não atribuírem a devida atenção ao problema da confiabilidade. Além disto, considerando o fato que SE são considerados programas "inteligentes", a perda de credibilidade pelo usuário pode resultar de conclusões errôneas do sistema. As principais fontes de erro em SE são: • A falta de especificação do sistema, ou quando esta existe, a falta de seu cumprimento. • Erros de semântica e sintaxe introduzidos durante a implementação do sistema (bugs). • A incorreta representação do domínio, resultando numa solução errônea ou na incapacidade de encontrar uma solução para o problema. A verificação aborda as duas primeiras categorias de erros. Examinando o cumprimento das especificações e assegurando a consistência e abrangência da base de conhecimento, que são afetadas por erros de semântica ou sintaxe. A validação envolve várias questões, como as descritas acima, mais ainda, busca detectar se o domínio de conhecimento está correto e que o sistema desenvolve as soluções de forma correta e precisa. 15.1. Comparação de Verificação e Validação (V&V) com Programas Convencionais O que torna V&V diferentes em sistemas convencionais? Parte disto origina-se de como SE são diferentes de sistemas convencionais. • SE não são de natureza completamente objetiva. A estrutura de solução de problemas neles representada é baseada em impressões subjetivas. De fato, para algumas aplicações se a mesma situação for apresentada a dois especialistas de mesma competência, cada Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 49 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA um pode decidir abordar o problema de forma diferente, ainda que correta, tendo como resultado duas soluções diferentes. Mesmo que ambas as soluções sejam apropriadas, cada especialista considerará sua solução a melhor e a do outro menos ótima. • Uma certa dose de incerteza é tolerada em sistemas especialistas. As soluções não são sempre precisas e exatas, mas têm uma incerteza ou imprecisão ou devido aos dados ou ao domínio de conhecimento. • Enquanto para certas aplicações programas convencionais podem ser verificados em laboratórios, SE, por outro lado, não podem facilmente ser verificados em laboratórios. Isto porque eles geralmente não geram um modelo físico, mas sim a impressão compilada de um sistema físico. • Em sistemas convencionais, a questão de correção dos resultados de um teste não é em geral um problema, pois o verificador do sistema sempre pode determinar se a resposta fornecida pelo programa está certa ou não. No caso de SE, como estes modelam o conhecimento de um especialista sobre um domínio, um especialista humano está sempre envolvido. Isto implica que um especialista (ou um grupo de especialistas) é o avaliador final da eficácia de um SE. Dadas estas diferenças, novos métodos de avaliar SE são necessários para assegurar sua confiabilidade. Nenhuma técnica única foi desenvolvida que tenha ganho aceitação universal, ao invés disto, recomenda-se a combinação destas técnicas. 15.2. Verificação Um dos objetivos da verificação é assegurar que existe uma correspondência entre a especificação do sistema e o que este realmente executa. Duas etapas compreendem a verificação de SE: 1 - verificar que o sistema adere às suas especificações e 2 - verificar quanto à existência de erros de semântica e sintaxe na base de conhecimento. Quanto às especificações: • O adequado paradigma de representação do conhecimento foi implementado. • A técnica de raciocínio adequada foi empregada. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 50 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • O projeto e implementação foram modulares. • O sistema tem uma interface apropriada com outros sistemas. • A interface do usuário corresponde às especificações. • A forma de explicação foi apropriada ao usuário pretendido. • Os requisitos de tempo de execução do sistema foram satisfeitos. • O sistema tem manutenção conforme o grau especificado. • O sistema satisfaz as especificações de segurança. • Foram adotadas medidas de segurança para proteger que a base de conhecimento seja modificada sem autorização. A verificação de regras quanto a erros de sintaxe deve checar: • Regras redundantes - duas regras são redundantes se elas possuem premissas idênticas e levam a conclusões idênticas. Isto também acontece mesmo quando as conclusões não são sintaticamente idênticas, mas levam ao mesmo significado, exemplo: Se a umidade for alta e a temperatura quente Então haverá tempestades com trovões OU Se a temperatura é quente umidade for alta Então haverá tempestades com raios. Redundância semântica é menos comum, porém mais difícil de detectar porque o sistema não conhece a diferença entre o significado das conclusões. • Regras conflitantes - quando a premissa de duas regras é idêntica, mas suas conclusões são conflitantes. • Regras incluídas - uma regra é incluída por outra se esta tem mais restrições condicionais com as conclusões idênticas. Exemplo: (Regra 7) Se a temperatura está quente e Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 51 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA a umidade está alta a pressão barométrica é baixa Então Haverá trovoadas (Regra 8) Se a temperatura está quente e a umidade está alta Então Haverá trovoadas A regra 7 está incluída na regra 8, porque a primeira tem uma condição a mais que a última. • Regras circulares - conjunto de regras que apresentam um encadeamento entre si formando loops. (já apresentado) • Condicionais desnecessárias - quando duas regras com conclusões idênticas têm quase as mesmas premissas. • Regra sem-saída (dead-end rules) - no encadeamento direto, estas são regras cujas ações não afetam qualquer conclusão e não são usadas por outras regras para gerar outras conclusões. • Regras "perdidas" - são caracterizadas por fatos que não são usados no processo de inferência, conclusões não afetadas por qualquer outra regra ou função, ou falhas em cobrir todos os possíveis valores das entradas. Se o marcador de combustível indica vazio Então o tanque está vazio Neste caso, se a conclusão não for empregada para conectar a premissa à solução do problema de partida do motor, então esta será uma regra perdida. • Regras inatingíveis - no sistema de encadeamento direto, este tipo de regra indica que suas premissas jamais serão satisfeitas, ou pela ausência de certas regras ou pela falta de dados de entrada. Isto é equivalente a uma "regra sem-saída" no sistema de encadeamento reverso. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 52 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Validação Esta tarefa é inerentemente mais complexa que verificação. Envolve a determinação da eficácia do sistema final com relação às necessidades e requisitos do usuário. O Que Validar? A validação da base de conhecimento pode ser executada validando: • os resultados intermediários • os resultados finais • alguma combinação destes Os resultados finais são as metas principais do sistema, portanto tais resultados não podem estar ausentes na validação. Todavia, a validação de resultados intermediários pode fornecer valiosas orientações quanto à operação do sistema e auxiliar a rapidamente corrigir problemas a custo relativamente baixo. 15.2.1. Metodologias de Validação • Validação Informal - avaliação superficial e qualitativa através de reuniões com um ou mais especialistas do domínio. Embora, tal avaliação seja útil durante o desenvolvimento de um módulo da base de conhecimento, este método não pode ser considerado satisfatório com único meio de avaliar a base de conhecimento. • Validação Formal - isto requer testes predefinidos, onde o sistema é tratado como uma "caixa preta", tendo suas saídas comparadas com respostas de especialistas. Na comparação, as opiniões dos especialistas podem variar de simples respostas na forma de sim ou não, ou uma faixa de valores, tanto qualitativos como quantitativos. Se esta abordagem é adotada, os desenvolvedores devem assegurar que os especialistas/usuários não têm dificuldade em operar o sistema. Uma forma alternativa de eliminar as dificuldades dos usuários é apenas apresentar os resultados a um painel de avaliadores. Deve ser considerado, que alguns especialistas podem ser favoráveis ou desfavoráveis ao uso de computadores, o que neste caso pode influenciar na opinião deles sobre o sistema. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 53 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA É recomendável definir um painel de avaliadores com uma combinação de membros que participaram do desenvolvimento e membros externos. Isto confere objetividade e, ao mesmo tempo, diminui a tendência de preconceitos na avaliação. Uma alternativa de avaliação é baseada no Teste de Turing. Neste contexto, a um avaliador são apresentados resultados obtidos pelo sistema e de um especialista. A idéia básica deste teste é muito simples, porém sua implementação pode ser complicada. O tipo de saída do sistema deve ser na forma de um diálogo. A vantagem desta abordagem é a eliminação da parcialidade pró ou contra o uso de computadores. Um aspecto adicional a ser considerado na elaboração de testes de avaliação é o fato de que à medida que o número de regras ou classes no sistema cresce, o conjunto de testes exaustivos expande exponencialmente. 15.2.2. Testes de campo Independente de quantos testes sejam realizados na fase de desenvolvimento ou quão exaustivos estes sejam, através dos testes de campo sempre descobrem-se erros inesperados ou efeitos indesejáveis. No teste protótipo existe um risco inerente: O sistema pode perder credibilidade antes dos usuários operarem o produto final. Recuperar esta credibilidade pode ser difícil. Algumas etapas para diminuir este risco. • Os usuários devem ser receptivos ao conceito de SE. • Eles devem estar conscientes que estão testando apenas um protótipo. 15.2.3. Validação de subsistemas Este método requer que a base de conhecimento seja particionada em submódulos. Uma metodologia adequada de projeto requer que o sistema seja modular, porém este método possui duas desvantagens: • Nem todos os sistemas são claramente decompostos em sub-sistemas independentes. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 54 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • A validação de todos sub-sistemas não equivale à validação do sistema completo. 15.2.4. Quando é apropriado validar? A abordagem mais amplamente aceita é que o processo de validação deve começar com a especificação do sistema e prosseguir ao longo de seu desenvolvimento. Mesmo assim, deve existir uma validação formal no "estágio final" do sistema. A validação formal deve se iniciar tão logo o protótipo inicial seja desenvolvido. Neste estágio, geralmente conhecido como teste-alfa os objetivos iniciais do projeto do sistema são reconsiderados e as necessárias modificações são feitas. 16. Algumas observações sobre Orientação a Objetos (defclass designer (is-a USER) (role concrete) (pattern-match reactive) ;; importante para permitir que o objeto seja usado no lado esquerdo da regra. (Ver manual pag. 97.) (slot id (type SYMBOL) (create-accessor read-write) ) ) Regras usando objetos: (defrule <nome da regra> ;; this rule is necessary because of inconsistence in the user input (object (is-a <nome da classe>) <uso de alguma variável baseada no slot>... ) ..outros condicionais => ;;ações da regra ) Considerações para definição de classes (manual pag. 105) • a hierarquia da classe deve ser definida em incrementos lógicos de especialização usando a relação "is-a" Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • uma classe é desnecessária se ela possui apenas uma instância • uma classe não deve ser identificada com o mesmo nome de uma instância e viceversa (isto é apenas para eliminar alguma confusão) Algumas funções para manipulação de objetos: (do-for-instance ((?var <nome da classe>)) (comparação de algum atributo) (progn ... ações ) ) Exemplo: imprimir o nome do valor do slot nome de uma instância pessoa cuja idade seja maior que 20 (do-for-instance ((?alguem PESSOA)) (> ?alguem:idade 20) (progn (printout t "pessoa com idade maior que 20" ?alguem:nome) ) ) (do-for-all-instances ( (?var1 <nome da classe>) (?var2 <nome da classe>) ) (comparação de atributos das instâncias) (progn ... ações ) ) Exemplo: imprimir os nomes das pessoas com mesma idade (do-for-all-instances ( (?x1 PESSOA) (?x2 PESSOA) ) (eq ?x1:idade ?x2:idade) (progn ?x2:nome) (printout t "estas pessoas tem a mesma idade" ?x1:nome e ) ) Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. 55 UNIVERSIDADE FEDERAL DE SANTA CATARINA 56 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA 17. Incerteza Mesmo considerando que existem aplicações de SE que podem ser implementadas com solução (abordagem) exata, muitos outros requerem um raciocínio inexato envolvendo fatos ou regras com incerteza. Exemplos clássicos de sistemas que lidam com incerteza são MYCIN e PROSPECTOR. Nestes sistemas, conclusões são obtidas mesmo quando todas as evidências para provar completamente tais conclusões não são conhecidas. Embora seja possível obter uma conclusão mais confiável através de mais testes, existem problemas com o aumento de tempo e custo de testes. Estas restrições de tempo e custo são particularmente importantes no caso de tratamento médico. Atrasar um tratamento devido a mais testes aumenta os custos e, enquanto isto, o paciente pode vir a falecer. No caso de mineração, o custo de testes adicionais também é um fator significante. Pode ser mais vantajoso iniciar as escavações se tem 95% de chance de sucesso do que gastar mais centenas de milhares de dólares para se obter um grau de confiança de 98%. As fontes de incerteza possíveis em SE podem ser causadas por problemas nos dados, por exemplo: • dados ausentes ou não disponíveis; • os dados podem estar presentes mas não confiáveis ou ambíguos devido aos erros de medida, ou medições conflitantes, etc. • a representação dos dados pode ser imprecisa ou inconsistente • os dados podem ser apenas a melhor suposição do usuário • os dados podem ser baseados em valores "default" e tais valores podem ter exceções Além disto, a incerteza pode ser causada pelo conhecimento modelado: • representar as melhores suposições dos especialistas que são baseadas em associações plausíveis ou estatísticas que eles observaram • não ser apropriado em todas as situações Considerando estas várias fontes de erro, a maioria dos SE requer a incorporação de alguma forma de representação de incerteza. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 57 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Ao se implementar um esquema de incerteza, deve-se considerar três questões principais: • como representar dados incertos • como combinar dois ou mais dados incertos • como gerar inferência usando-se dados incertos 17.1. Redes Bayesianas Um dos mais conhecidos métodos de modelar incerteza é a chamada Rede Bayesiana. Este método é baseado na Teoria da Probabilidade. Como se sabe, os SE descrevem o conhecimento no formato Se-Então, no caso de uma regra Bayesiana, este formato é acrescido de um fator de probabilidade: Se X é verdadeiro Então Y pode ser concluído com probabilidade p Por exemplo: Se o paciente está resfriado Então o paciente irá espirrar (0.75) Contudo, o que ocorre quando se observa a presença de Y (i.e. o paciente espirrou) sem nada se saber sobre a existência de X (ou seja, o paciente está resfriado)? O que se pode concluir sobre a possibilidade do paciente estar resfriado? Neste contexto, uma regra bayesiana descreve como calcular esta probabilidade. p( H | E ) = p( E | H ) * p ( H ) p( E ) p(H | E) - a probabilidade da existência da hipótese H dada a existência do evento E. p(H) e p(E) - descrevem as probabilidades das existências da hipótese H e evento E, respectivamente Exemplo: sejam H- hipótese e E- evidência Considerando que: Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 58 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA H- paciente esteja resfriado, E- paciente está espirrando p(H)= p(paciente esteja resfriado)= 0.2 p(E | H)= p(paciente esteja espirrando | ele esteja resfriado)= 0.75 p(E | ~H)= p(paciente esteja espirrando | ele não esteja resfriado)= 0.2 Então p(E)= p(paciente esteja espirrando) p( E ) = p ( E | H ) * p ( H ) + p ( E |~ H ) * p (~ H ) p( E ) = (0.75) * (0.2) + (0.2) * (0.8) = 0.31 Observação: vale destacar que a probabilidade de certo efeito dada uma certa hipótese, ou seja, p(E | H), é o fundamento de toda a construção da base de conhecimento, e deve ser conhecida a priori. Calcular a probabilidade do paciente estar resfriado considerando o fato dele estar espirrando. p( E | H ) * p ( H ) p( E ) P(H|E) =(0.75)*(0.2)/(0.31)= 0.48387 p( H | E ) = Calcular a probabilidade do paciente estar resfriado considerando que ele não esteja espirrando. p( H |~ E ) = p (~ E | H ) * p ( H ) (1 − 0.75) * (0.2) = = 0.07246 p (~ E ) (1 − 0.31) Sendo assim o fato do paciente estar espirrando aumenta a probabilidade dele estar resfriado de aproximadamente 2,5 vezes (de 0.2 para 0.48). Enquanto que o fato dele não estar espirrando diminui a probabilidade de estar resfriado de 3 vezes. No exemplo apresentado, uma evidência afeta apenas uma hipótese. Contudo isto deve ser generalizado pelo fato de que no mundo real se trabalha com "m" hipóteses e "n" evidências. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 59 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Desta forma a equação que determina a probabilidade de uma certa hipótese Hi baseada num conjunto de evidências E1, E2...En, é dada por: p( H i | E1 E 2 ... E n ) = p ( E1 E 2 ... E n | H i ) * p ( H i ) p ( E1 E 2 ... E n ) Esta probabilidade é definida como a probabilidade a posteriori da hipótese Hi com a observação das evidências E1, E2...En. Tal equação é derivada do fato de que as evidências são eventos condicionalmente independentes com base na hipótese. Esta suposição causa dificuldades na implementação deste método. A fim de exemplificar a aplicação deste método considere o seguinte problema: Três hipóteses mutuamente exclusivas H1- paciente resfriado H2- paciente é alérgico H3- paciente é sensível à luz E duas evidências condicionalmente independentes E1- paciente espirra e E2- paciente tosse Apresenta-se a seguinte tabela de probabilidades i=1 i=2 i=3 (resfriado) (alergia) (sensibilidade à luz) p(Hi) 0.6 0.3 0.1 p(E1|Hi) 0.3 0.8 0.3 p(E2|Hi) 0.6 0.9 0.0 Neste caso, sendo observada a evidência E1 (paciente espirra), pode-se calcular a probabilidade posterior da hipótese do paciente estar resfriado (H1) Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 60 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA p( H 1 | E1 ) = p ( E1 | H 1 ) * p ( H 1 ) 0 .3 * 0 .6 = = 0 .4 ∑ p( E1 | H i ) * p( H i ) 0.3 * 0.6 + 0.8 * 0.3 + 0.3 * 0.1 17.1.1. Vantagens e desvantagens das Redes Bayesianas O aspecto mais significante é que este método é fundamentado na lei das probabilidades. É considerada a forma mais bem estabelecida de todos os métodos de manipulação de incerteza. Também possui uma semântica bem definida para suporte à decisão. Algumas desvantagens • Este método requer uma significante quantidade de dados probabilísticos para construir a base de conhecimento. Por exemplo, um sistema de diagnóstico tendo 50 conclusões detectáveis (p) e 300 características observáveis e relevantes (q) requer um mínimo de 15050 (p*q + p) valores de probabilidades, assumindo que todas as conclusões sejam eventos mutuamente exclusivos, que as características sejam condicionalmente independentes para cada conclusão e se todas as características são valores coerentes. Caso estas considerações não sejam satisfeitas a inteira rede pode ser comprometida. • Em que são baseadas as probabilidades usadas? Se estas são baseadas em estatística, o tamanho das amostras deve ser suficiente de tal forma que as probabilidades obtidas sejam precisas. Se os valores foram fornecidos por especialistas humanos, estes valores são consistentes e amplos? • Com freqüência o tipo de relação entre a hipótese e a evidência é importante para determinar como a incerteza deve ser modelada. Reduzir esta associação a simples números remove informações relevantes que podem ser necessárias para uma manipulação adequada da incerteza. Por exemplo, redes bayesianas para sistemas de diagnóstico médico falharam em obter aceitação, pois médicos desconfiam de sistemas que não possam fornecer explicações descrevendo as conclusões obtidas, tal aspecto é difícil de modelar via rede bayesiana. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 61 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • A redução das associações a números também elimina a aplicação deste conhecimento em outras tarefas. Por exemplo, neste tipo de sistema as associações que permitiriam explicar o encadeamento lógico ao usuário são perdidas. 18. Lógica Difusa (Fuzzy Logic) Em meados da década de 60, Zadeh desenvolveu o conceito de conjuntos difusos para considerar vários conceitos usados no raciocínio humano que são intrinsecamente vagos e imprecisos, tais como alto, velho, etc... Mais tarde ele desenvolveu a lógica difusa para considerar a imprecisão de "quantificadores" usados na linguagem natural, tais como muito, poucos, etc... Pelo fato de que muitos especialistas expressam seu conhecimento usando conceitos similares aos conjuntos difusos, a lógica difusa aplica-se naturalmente aos sistemas especialistas. 18.1. Definição de termos Dado um conjunto S={S1,S2,...,Sk} de possíveis membros de um outro conjunto C, o predicado difuso Fp classifica os membros de S na faixa [0 1] dependendo do grau de pertinência em relação ao conjunto C. Fp(Si) -> [0 1] Fp(Si)= 1 define a pertinência de Si em relação a C, e Fp(Si)= 0 define a não-pertinência Os valores entre 0 e 1 descrevem a medida do grau com que um dado elemento Si satisfaz um certo predicado Fp. Sendo assim, este predicado define o conjunto difuso. Sp= {<si ni> si ∈ S, ni ∈ [0 1], Fp(si)= ni} Todas as operações fundamentais da teoria de conjuntos foram expandidas com seus correspondentes conjuntos difusos. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 62 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA • dois conjuntos difusos Sa e Sb são iguais se e somente se A(Si)=B(Si) para todos elementos Si. • O complemento de um conjunto difuso Sp é definido como ~Sp e tem o predicado Fp~(Si)= 1- Fp(Si). • O conjunto difuso Sa é um subconjunto de Sb se e somente se A(Si)≤ B(Si) para todos elementos Si. • A união de dois conjuntos difusos, Sa e Sb , é um conjunto difuso Sc onde C(Si)= MAX[A(Si), B(Si)] para todos Si. • A interseção de dois conjuntos difusos, Sa e Sb , é um conjunto difuso Sc onde C(Si)= MIN[A(Si), B(Si)] para todos Si. Exemplo classificação de pessoas conforme a altura Altura alto baixo gigante 1,5 0.00 1.00 0.00 1,6 0.08 0.92 0.04 1,7 0.32 0.68 0.08 1,75 0.50 0.50 0.18 1,8 0.82 0.18 0.32 1,9 0.98 0.02 0.50 2,0 1.00 0.00 0.75 Esta tabela representa três conjuntos difusos (alto, baixo e gigante) com seus valores de pertinência (ni). Como se definem os conjuntos "estatura média" e "não estatura média"? Pode-se dizer que estatura média é definida como um indivíduo nem alto e nem baixo. Portanto é a interseção dos conjuntos "não alto" e "não baixo". E por definição o conjunto "não estatura média" é o complemento desse. Sendo assim, tem-se: Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng. UNIVERSIDADE FEDERAL DE SANTA CATARINA 63 DEPARTAMENTO DE ENGENHARIA MECÂNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA Altura Não alto Não baixo Estatura média Não Estatura média 1,5 1.00 0.00 0.00 1.00 1,6 0.92 0.08 0.08 0.92 1,7 0.68 0.32 0.32 0.68 1,75 0.50 0.50 0.50 0.50 1,8 0.18 0.82 0.18 0.82 1,9 0.02 0.98 0.02 0.98 2,0 0.00 1.00 0.00 1.00 Por exemplo, se João tem entre 1,70 e 1,75 a possibilidade dele ser considerado alto será: Poss (João ∈ Alto)= MAX ni ∈ {1,70; 1,75}= 0,50 18.2. Operadores difusos • & lógico. Poss(A & B)= MIN [Poss(A),Poss(B)] • OU lógico. Poss(A + B)= MAX [Poss(A),Poss(B)] • Implica. A proposição de que se A então B Poss(B|A)= MIN[1, (1-Poss(A) +Poss(B))] Modificadores comumente usados: "muito" muito A= A2 "não" não A= 1-A "extremamente" A =2A2 para valores entre 0 e 0.5 " mais..ou..menos"± A = =(1- 2(1-A)2) A para outros valores Este operador de intensificação reduz o grau de "difusão" do conjunto. Apesar desta técnica ser amplamente aplicada, ainda existe o debate sobre sua viabilidade tendo em vista as dificuldades inerentes à técnica. Sobretudo, o desenvolvimento das funções de pertinência não é trivial, e geralmente requer um tempo mais longo que o desenvolvimento da base de conhecimento. Sistemas Especialistas aplicados à Engenharia Prof. Jonny Carlos da Silva, Dr. Eng.