UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE ENGENHARIA DE COMPUTAÇÃO AMBIENTE COMPUTACIONAL PARA MODELAGEM E SIMULAÇÃO DE REDES BAYESIANAS Área de Inteligência Artificial por Thales Lange Raimundo Celeste Ghizoni Teive, Dr. Orientador São José (SC), dezembro de 2008 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE ENGENHARIA DE COMPUTAÇÃO AMBIENTE COMPUTACIONAL PARA MODELAGEM E SIMULAÇÃO DE REDES BAYESIANAS Área de Inteligência Artificial por Thales Lange Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Engenharia de Computação para análise e aprovação. Orientador: Raimundo C. Ghizoni Teive, Dr. São José (SC), dezembro de 2008 SUMÁRIO LISTA DE ABREVIATURAS....................................................................................v LISTA DE FIGURAS................................................................................................vi LISTA DE TABELAS...............................................................................................vii LISTA DE EQUAÇÕES..........................................................................................viii RESUMO.....................................................................................................................ix ABSTRACT.................................................................................................................x 1. INTRODUÇÃO.......................................................................................................1 1.1. PROBLEMATIZAÇÃO................................................................................................................3 1.1.1. Formulação do Problema...........................................................................................................3 1.1.2. Solução Proposta.........................................................................................................................3 1.2. OBJETIVOS...................................................................................................................................4 1.2.1. Objetivo Geral.............................................................................................................................4 1.2.2. Objetivos Específicos...................................................................................................................4 1.3. METODOLOGIA...........................................................................................................................4 1.4. ESTRUTURA DO TRABALHO..................................................................................................5 2. FUNDAMENTAÇÃO TEÓRICA..........................................................................6 2.1. PROBABILIDADE........................................................................................................................6 2.1.1. Probabilidade incondicional.......................................................................................................6 2.1.2. Probabilidade condicional..........................................................................................................6 2.1.3. Probabilidade conjunta e regra fundamental da probabilidade............................................7 2.1.4. Regra de Bayes.............................................................................................................................8 2.1.5. Regra da cadeia............................................................................................................................8 2.2. REDES BAYESIANAS..................................................................................................................9 2.2.1. Redes causais..............................................................................................................................10 2.2.2. Evidências...................................................................................................................................11 2.2.3. D-separação em redes causais..................................................................................................12 2.2.3.1. Conexões seriais......................................................................................................................12 2.2.3.2. Conexões divergentes.............................................................................................................12 2.2.4. Propagação de evidências.........................................................................................................13 2.2.4.4. Rede Bayesiana dada a evidência M Ligou.........................................................................22 2.2.4.6. Rede Bayesiana dada as evidências em M Ligou e J Ligou...............................................24 2.3. ALGORITMOS PARA PROPAGAÇÃO DE EVIDÊNCIAS.................................................25 2.3.1. Junction Tree.............................................................................................................................26 2.3.1.1. Grafos triangulados................................................................................................................26 2.3.1.2. Grafos de domínios não triangulados..................................................................................29 2.3.1.3. Construção da join tree..........................................................................................................31 2.3.1.4. Marginalização e normalização............................................................................................32 2.3.1.5. Propagação na junction tree.................................................................................................33 2.3.2. Amostragem de Gibbs...............................................................................................................35 2.3.2.1. Cálculo das probabilidades dos estados...............................................................................36 2.3.2.2. Influência do número de amostras.......................................................................................38 2.3.2.3. Cálculo das probabilidades dos estados dado evidências..................................................40 2.3.2.4. Influência do número de amostras dado evidências...........................................................41 3. DESENVOLVIMENTO........................................................................................44 3.1. VISÃO DE NEGÓCIO................................................................................................................44 iii 3.1.2.1. Requisitos funcionais..............................................................................................................45 3.1.2.2. Requisitos não funcionais......................................................................................................48 3.1.2.3. Regras de negócio...................................................................................................................49 3.2. VISÃO DE CASO DE USO.........................................................................................................49 3.2.1. Ator do sistema: Projetista.......................................................................................................50 3.2.2. Telas do sistema.........................................................................................................................50 3.2.3. Casos de Uso...............................................................................................................................51 3.3. VISÃO DINÂMICA.....................................................................................................................51 3.3.1. Pacotes do sistema.....................................................................................................................52 3.3.2. Diagramas de classe por componente.....................................................................................53 3.3.3. Diagramas de atividade da interface de desenho...................................................................58 3.3.4. Algoritmos para propagação de evidências............................................................................60 4. SIMULAÇÕES......................................................................................................63 4.1. REDE BAYESIANA PARA ANÁLISE DO MERECIMENTO DO CRÉDITO..................63 4.2. AMOSTRAGEM DE GIBBS......................................................................................................64 4.2.1. Simulação sem evidências.........................................................................................................64 4.2.2. Simulação com múltiplas evidências.......................................................................................65 4.2.3. Influência do número de amostras..........................................................................................67 4.2.4. Desempenho...............................................................................................................................68 4.3. JUNCTION TREE.......................................................................................................................70 4.3.1. Grafo moral................................................................................................................................70 4.3.2. Triangulação..............................................................................................................................70 4.3.3. Construção da Join Tree...........................................................................................................71 4.3.4. Simulação sem evidências.........................................................................................................72 4.3.5. Simulação com evidências........................................................................................................74 4.3.6. Considerações finais da implementação do Junction Tree...................................................75 5. CONSIDERAÇÕES FINAIS................................................................................76 5.1. SUGESTÕES PARA TRABALHOS FUTUROS.....................................................................77 iv LISTA DE ABREVIATURAS GUI IA INPE TCC UFV UML UNIVALI Graphical User Interface Inteligência Artificial Instituto Nacional de Pesquisas Espaciais Trabalho de Conclusão de Curso Universidade Federal de Viçosa Unified Modeling Language Universidade do Vale do Itajaí v LISTA DE FIGURAS Figura 1. Um grafo cíclico. Isto não é permitido nas Redes Bayesianas...............................................10 Figura 2. Rede causal para o problema reduzido da falha da partida do motor de um carro.................11 Figura 3. Rede causal com conexão serial..............................................................................................12 Figura 4. Rede causal com conexão divergente......................................................................................13 Figura 5. Rede causal com conexão convergente...................................................................................13 Figura 6. Rede Bayesiana para o problema do alarme...........................................................................14 Figura 7. Rede Bayesiana com probabilidades dos estados...................................................................18 Figura 8. Rede Bayesiana para o problema do alarme dada a evidência MLigou.................................23 Figura 9. Rede Bayesiana para o problema do alarme dada as evidências MLigou e JLigou...............25 Figura 10. Grafo moral não direcionado para a rede causal do problema do alarme.............................27 Figura 11. Grafo resultante dado a eliminação do nó Alarme................................................................28 Figura 12. Eliminação das variáveis Ladrão, Terremoto e Maria..........................................................29 Figura 13. Grafo moral não triangulado..................................................................................................29 Figura 14. Grafo moral G' não triangulado, depois da seqüência de eliminação A, C, H, I e J............30 Figura 15. Os cliques, separadores e índices resultantes da Figura 10...................................................32 Figura 16. Join tree para cliques e separadores da Figura 15.................................................................32 Figura 17. Junction Tree para o problema do alarme.............................................................................34 Figura 18. Junction Tree com transmissão de mensagens, dado a evidência MLigou..........................34 Figura 19. Junction Tree com transmissão de mensagens, dado a evidência JLigou............................35 Figura 20. Fluxograma do algoritmo amostragem de Gibbs..................................................................37 Figura 21. Gráfico erro (%) versus número de amostras para LSim e JLigou (1º ensaio)..........................39 Figura 22. Gráfico erro (%) versus número de amostras para LSim e JLigou (2º ensaio)..........................39 Figura 23. Gráfico erro médio (%) versus número de amostras para LSim e JLigou.................................39 Figura 24. Gráfico erro (%) versus número de amostras para TSim e LNão (1º ensaio)............................41 Figura 25. Gráfico erro (%) versus número de amostras para LNão e TSim (2º ensaio)............................42 Figura 26. Gráfico erro médio (%) versus número de amostras para TSim e LNão...................................42 Figura 27. Tela de desenho e simulação (TFMain)................................................................................50 Figura 28. Telas para configurações: (a) TFBNProperties ; (b) TFNodeProperties..............................51 Figura 29. Casos de Uso..........................................................................................................................51 Figura 30. Pacotes do sistema: (a) pacotes da visão macro; (b) pacotes do Motor da BN....................52 Figura 31. Diagramas de componentes: (a) visão macro; (b) Motor da RB..........................................53 Figura 32. Diagramas de classe para o componente Interface Gráfica..................................................54 Figura 33. Diagramas de classe para o componente Desenho................................................................54 Figura 34. Diagramas de classe para o componente Motor da RB.........................................................56 Figura 35. Diagrama de classe para o componente Controladora..........................................................58 Figura 36. Diagrama de atividade para a ferramenta de inserção de arestas entre nós..........................59 Figura 37. Diagrama de atividade para a ferramenta de seleção............................................................59 Figura 38. Visão macro da implementação do algoritmo JunctionTree.................................................60 Figura 39. Triangular o grafo G..............................................................................................................61 Figura 40. Determinar os cliques e separadores.....................................................................................61 Figura 41. Conectar os separadores aos seus respectivos cliques..........................................................62 Figura 42. Rede Bayesiana para análise do merecimento do crédito.....................................................63 Figura 43. Erro médio e máximo conforme o número de amostras.......................................................68 Figura 44. Erro médio e tempo de execução versus número de amostras..............................................69 Figura 45. Grafo moral............................................................................................................................70 vi LISTA DE TABELAS Tabela 1. Tabela de probabilidades condicionais.....................................................................................7 Tabela 2. Nomes das variáveis e estados................................................................................................14 Tabela 3. Probabilidades incondicionais para as variáveis: (a) Ladrão; (b) Terremoto.........................15 Tabela 4. P (A | L , T)..............................................................................................................................16 Tabela 5. P (J | A)....................................................................................................................................16 Tabela 6. P (M | A)..................................................................................................................................16 Tabela 7. P (A , L , T) e P (A).................................................................................................................17 Tabela 8. P (J , A) e P (J).........................................................................................................................17 Tabela 9. P (M , A) e P (M).....................................................................................................................18 Tabela 10. P (A | e = M Ligou)...................................................................................................................19 Tabela 11. P (J , A) e P(J | e = M Ligou)....................................................................................................19 Tabela 12. P (A , T).................................................................................................................................20 Tabela 13. P (A | T).................................................................................................................................20 Tabela 14. P (T | A) não normalizadas....................................................................................................20 Tabela 15. P (T | A ) normalizadas..........................................................................................................21 Tabela 16. P (T , A) e P (T | e = M Ligou)..................................................................................................21 Tabela 17. P (A , L).................................................................................................................................21 Tabela 18. P (A | L).................................................................................................................................22 Tabela 19. P (L | A) não normalizadas....................................................................................................22 Tabela 20. P ( L | A) normalizadas..........................................................................................................22 Tabela 21. P ( L , A ) e P (L | e = M Ligou)................................................................................................22 Tabela 22. P (A | e = M Ligou , J Ligou)........................................................................................................24 Tabela 23. P (T , A) e P(T | e = M Ligou , J Ligou).......................................................................................24 Tabela 24. P (L , A) e P (L | e = M Ligou , J Ligou)......................................................................................24 Tabela 25. Domínio para cada variável...................................................................................................27 Tabela 26. Domínio para cada variável do grafo da Figura 13..............................................................30 Tabela 27. Domínio para cada variável do grafo G'...............................................................................30 Tabela 28. P (A , L , T) e P (A)...............................................................................................................33 Tabela 29. Cobertura de Markov para as variáveis da Rede Bayesiana da Figura 6 ............................36 Tabela 30. Vetor com estados aleatórios para as variáveis....................................................................36 Tabela 31. Amostragem de Gibbs e erro percentual...............................................................................38 Tabela 32. Amostragem de Gibbs e erro percentual, dada as evidências MLigou e JLigou.................40 Tabela 33. Probabilidades a posteriori e erro..........................................................................................65 Tabela 34. Evidências instanciadas ........................................................................................................66 Tabela 35. Probabilidades a posteriori e erro – múltiplas evidências....................................................67 Tabela 36. Probabilidades a posteriori e diferença.................................................................................73 Tabela 37. Probabilidades a posteriori e diferença, para simulação com múltiplas evidências............74 Tabela 38. Evidências instanciadas.........................................................................................................75 vii LISTA DE EQUAÇÕES Equação 1...................................................................................................................................................6 Equação 2...................................................................................................................................................6 Equação 3...................................................................................................................................................7 Equação 4...................................................................................................................................................7 Equação 5...................................................................................................................................................7 Equação 6...................................................................................................................................................7 Equação 7...................................................................................................................................................8 Equação 8...................................................................................................................................................8 Equação 9...................................................................................................................................................8 Equação 10.................................................................................................................................................8 Equação 11.................................................................................................................................................9 Equação 12.................................................................................................................................................9 Equação 13...............................................................................................................................................17 Equação 14...............................................................................................................................................17 Equação 15...............................................................................................................................................17 Equação 16...............................................................................................................................................19 Equação 17...............................................................................................................................................19 Equação 18...............................................................................................................................................20 Equação 19...............................................................................................................................................20 Equação 20...............................................................................................................................................20 Equação 21...............................................................................................................................................21 Equação 22...............................................................................................................................................31 Equação 23...............................................................................................................................................33 Equação 24...............................................................................................................................................33 Equação 25...............................................................................................................................................33 Equação 26...............................................................................................................................................33 Equação 27...............................................................................................................................................33 Equação 28...............................................................................................................................................34 Equação 29...............................................................................................................................................36 Equação 30...............................................................................................................................................37 Equação 31...............................................................................................................................................68 viii RESUMO LANGE, Thales. Ambiente Computacional para modelagem e simulação de Redes Bayesianas. São José, 2008. 98 folhas. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, São José, 2008. O presente trabalho aborda o paradigma simbólico da Inteligência Artificial (IA), especificamente as Redes Bayesianas. Como as Redes Bayesianas possuem um modelo matemático considerado NPDifícil e necessitam de um modelo conceitual adequado para que um sistema computacional raciocine coerentemente, desenvolveu-se um ambiente computacional para modelagem visual e simulação de Redes Bayesianas, onde o modelo matemático para propagação de evidências é abstraído. Antes do desenvolvimento do ambiente computacional, verificou-se a necessidade de conhecer os princípios básicos das Redes Bayesianas, como a regra fundamental da probabilidade, regra de Bayes, regra da cadeia de Bayes, probabilidades condicionais e incondicionadas, evidências, redes causais, dseparação e algoritmos para propagação de evidência. Com intuito de não comprometer a aplicabilidade real das Redes Bayesianas, necessita-se utilizar algoritmos eficientes para a propagação de evidências, uma vez que considera-se esta tarefa NP-Difícil. A fim de atender ao critério de precisão, com custo computacional aceitável, implementou-se o algoritmo exato Junction Tree e como alternativa, também implementou-se o algoritmo de simulação amostragem Gibbs. Para a implementação do ambiente computacional, inicialmente realizou-se a modelagem completa do sistema no Enterprise Architect, com foco na minimização do acoplamento e generalização das classes e componentes, para aumentar a reusabilidade. Depois de concebida a arquitetura do sistema, realizou-se a codificação do modelo conceitual em linguagem C++, com o auxílio das bibliotecas gráficas do QT. Após a implementação, determinou-se o processo de avaliação do sistema, principalmente dos algoritmos. O processo de avaliação ocorreu através do emprego da Rede Bayesiana da análise do merecimento do crédito. Com essa Rede Bayesiana, realizou-se ensaios comparativos entre os algoritmos desenvolvidos e um algoritmo exato, proveniente de um software comercial. Para o algoritmo amostragem de Gibbs realizou-se ensaios com intuito de verificar a precisão das probabilidades posteriores e mensurar o seu desempenho computacional. Para o algoritmo Junction Tree, realizou-se ensaios para verificação da acurácia do algoritmo, além da descrição do processo de cálculo das probabilidade a posteriori. Palavras-chave: IA, Redes Bayesianas, algoritmos para propagação de evidência. ix ABSTRACT This present work approaches the symbolic paradigm of Artificial Intelligence (AI), especially the Bayesian Networks. As the Bayesian Networks have a mathematical model considered NP-Hard and they need a suitable conceptual model so that a computational system reasoning consistently, a computational environment was developed to model, and simulate, Bayesian Networks,where, the mathematical model to belief update is abstracted. Before the develop of computational environment, the author found the necessity to know the basic principles of the Bayesian Networks, as the probability's key rule, Bayes' rule, Bayes' chain rule, unconditional probability and conditional probability, evidences, causal networks, d-separation and belief update algorithms. In order to avoid jeopardizing the real applicability of the Bayesian Networks, the algorithms must be efficient, since the belief update is considered NP-Hard. In order to meet the precision, with acceptable cost, the Junction Tree algorithm was developed, and as alternative, the algorithm Gibbs Sampling. Before the develop of computational system, the system was fully modeled in the Enterprise Architect, as focus on minimizing the coupling and generalizing the classes and components to achieve better re usability. After the system's architecture was designed, the conceptual model was codified in the language C++, with the help of QT's graphical libraries. After the system's develop, the system was assessed, specially the algorithms. The assessment occurred through the use of the Bayesian Network to analysis of credit worthiness. With this Bayesian Network was realized comparative trials between the algorithms developed and a commercial software algorithm. For the algorithm Gibbs sampling, trials were realized in order to check the probability precision, and measure the computational performance. For the Junction Tree algorithm was realized trials to check the accuracy, beyond the process description of the probability's calculus Keywords: AI, Bayesian Networks,belief update algorithms x 1. INTRODUÇÃO A Inteligência Artificial (IA) é um ramo da Ciência da Computação que é ao mesmo tempo atual e antiga, pois a IA nasceu a partir de idéias filosóficas, científicas e tecnológicas herdadas de outras ciências (BITTENCOURT, 1998). A IA moderna para alguns autores divide-se em 5 paradigmas: simbólica, conexionista, evolucionária, multi-agente e híbrido (BITTENCOURT, 1998). Este trabalho segue o paradigma simbólico da IA, focado nas Redes Bayesianas. Schreiber (2002), cita que: “O raciocínio probabilístico é uma das formas de processar a incerteza. As redes Bayesianas, baseadas no teorema de Bayes, podem ser utilizadas como mecanismo de raciocínio incerto, alterando (atualizando) as probabilidades de ocorrência de um evento posterior segundo a observação dos eventos presentes e anteriores”. Orlandeli (2005, p. 57) define as Redes Bayesianas como: “redes de conhecimento que descrevem um modelo do mundo real baseado em informações de independência condicional entre os eventos, não sendo necessário usar uma enorme tabela de probabilidades conjuntas para listar todas as combinações possíveis dos eventos”. Redes Bayesianas são aplicadas nas áreas que incluem diagnóstico, investigação, reconhecimento de imagens, planejamento e controle, reconhecimento de voz – resumidamente, quase qualquer tarefa que requisite conclusões que são retiradas de pistas incertas e informações incompletas (PEARL, 1988). Como casos de aplicações, podem-se citar: • DiagSD, Instituto de Telecomunicações de Portugal e Instituto Superior de Engenharia de Lisboa, 2000. Sistema para diagnóstico de doenças do sono. Esse sistema indica as prováveis doenças do paciente, conforme os sintomas relatados (MILHO e FRED, 2002); • ADVOCATE II, Ifremer, ATLAS Elektronik, University of Alcalá de Henares, 2004. Utilizado em veículos aquáticos. Sistema para classificação ou decisão em situações de erro, dados incompletos ou duvidosos, em problemas que envolvam análise sensitiva, análise de conflitos e cálculo do valor da informação; • Delineamento de culturas agrícolas usando informações contextuais, INPE (Instituto Nacional de Pesquisas Espaciais) e UFV (Universidade Federal de Viçosa), 2007. Classificação de imagens em sensoriamento remoto. Este projeto utiliza Redes Bayesianas na classificação de imagens, para aumentar a precisão da estimativa de área plantada de cada cultura em questão (MELLO et al, 2007); • Spamassassin, Apache sistema Foundation, 2008. Sistema para reconhecimento de Spam's. Este sistema é utilizado em servidores de correio eletrônico para detectar e bloquear automaticamente Spam's; e • COMET, A collaborative tutoring system for Medical Problem-Based Learning, 2007. Sistema para melhorar as habilidades de raciocínio clínico de estudantes, sem o uso de tutor humano (SUEBNUKARN E HADDWY, 2004). Em casos reais, como os descritos anteriormente, geralmente são aplicadas Redes Bayesianas em ambientes computacionais, em função do modelo matemático envolvido, principalmente para o cálculo da propagação de evidências nos nós (JENSEN, 2001). Em razão do modelo matemático, utilizam-se GUI's (graphical user interface) para modelagem de Redes Bayesianas genéricas que propiciam modelagem intuitiva, abstraem o modelo matemático independentemente do tamanho e/ou complexidade da rede, facilitam a verificação e validação do modelo, melhoram a produtividade, uma vez que os desenvolvedores focam-se apenas no modelo conceitual da rede e na obtenção das probabilidades. No mercado existem GUI's específicas para modelagem de Redes Bayesianas que permitem a criação de redes de forma visual, realizam inferência, aprendizado, permitem escolha de algoritmos para propagação de evidências, geração de código e exploração automática de todos os casos na rede (JENSEN, 2001), contudo todas possuem limitações de uso em licenças gratuitas. Como exemplos de ferramentas para modelagem de Redes Bayesianas pode-se citar: Hugin, GeNIe e NETICA Application. Com intuito de desenvolver a própria ferramenta (shell) para modelagem e simulação de Redes Bayesianas, este TCC apresenta o desenvolvimento do sistema SRB (Simulador de Redes Bayesianas). Com esse sistema, permite-se modelar Redes Bayesianas genéricas de maneira visual e realizar ensaios a partir de evidências, onde abstrai-se o modelo matemático para propagação de evidências, independentemente do tamanho e/ou complexidade da rede. A licença de uso do sistema é gratuita, pois o objetivo de sua criação é oferecer um sistema gratuito e de código “aberto” para uso educacional. A execução deste projeto se justifica em nível de TCC para o curso de Engenharia de Computação porque trata do desenvolvimento de um sistema que faz uso de tecnologias, conceitos e teorias relevantes, como: linguagem de programação; orientação a objetos; ergonomia; uso de técnicas da Engenharia de Software para modelagem e documentação; Redes Bayesianas; UML (Unified Modeling Language) e teoria da probabilidade. 2 Outro ponto importante que merece destaque, é a implementação dos algoritmos amostragem de Gibbs e Junction Tree. Ambos realizam os cálculos das probabilidades a posteriori em Redes Bayesianas, mas eles diferem essencialmente, pois a amostragem de Gibbs trata-se de um algoritmo de simulação com resultados aproximados, enquanto que o Junction Tree trata-se de um algoritmo exato. Este projeto não buscou implementar todas as funcionalidades disponíveis nos sistemas comerciais, uma vez que existem vários sistemas, alguns com anos de desenvolvimento contínuo. 1.1. PROBLEMATIZAÇÃO 1.1.1. Formulação do Problema A implementação prática de Redes Bayesianas somente é viável em sistemas computacionais em razão dos cálculos necessários para a propagação de evidências. Para facilitar a modelagem e simulação são utilizados GUI's específicas, que geralmente são proprietárias ou possuem limitações de uso em versões gratuitas. Ainda como fatores estimulantes para o desenvolvimento da GUI, ressalta-se que: • a maioria das GUI's comerciais para modelagem e simulação de Redes Bayesianas não permitem a escolha do algoritmo de propagação de evidências; e • as aplicações comerciais não disponibilizam o código fonte dos algoritmos para propagação de evidências. 1.1.2. Solução Proposta Este trabalho compreende a implementação de uma GUI específica para a modelagem e simulação de Redes Bayesianas para uso acadêmico, com licença gratuita que permita a escolha do algoritmo de propagação de evidência e com código fonte “aberto”. 1.2. OBJETIVOS 1.2.1. Objetivo Geral Desenvolver um sistema (shell) com ambiente visual que permita a criação e simulação de Redes Bayesianas genéricas, onde o modelo matemático para propagação de evidências é abstraído. 1.2.2. Objetivos Específicos Os objetivos específicos deste projeto de pesquisa são: • Estudar a teoria da probabilidade; • Estudar os algoritmos para propagação de evidências; 3 • Analisar sistemas similares e bibliotecas para Redes Bayesianas; • Modelar a arquitetura do sistema; • Implementar (codificar) o sistema; • Avaliar o sistema através de um caso realístico; e • Elaborar a documentação. 1.3. Metodologia São necessárias sete etapas a fim de executar esse projeto de forma que atinja os objetivos específicos. São elas: (1) Estudar teoria, (2) Estudar algoritmos, (3) Analisar sistemas e bibliotecas, (4) Modelar, (5) Implementar, (6) Avaliar e (7) Documentar. 1. Estudar a teoria: estudo da teoria de Redes Bayesianas para permitir a correta modelagem e implementação do programa. 2. Estudar algoritmos: estudo de dois algoritmos para propagação de evidências em Redes Bayesianas, especificamente os algoritmos: Junction Tree e amostragem de Gibbs; 3. Analisar sistemas e bibliotecas: visa a análise das funcionalidades e metodologias oferecidas por alguns sistemas comerciais de modelagem e simulação de Redes Bayesianas. Após verificadas as funcionalidades e metodologias, são pesquisadas e analisadas, bibliotecas para simulação de Redes Bayesianas; 4. Modelar: Esta etapa visa a análise e modelagem da arquitetura do sistema com uso das técnicas de Engenharia de sistema, linguagem UML e ferramenta automatizada para modelagem de sistema; 5. Implementar: visa transformar o modo conceitual no sistema real, basicamente através de codificação; 6. Avaliar: o sistema e os algoritmos de propagação de evidências serão avaliados através da simulação de um caso realístico e resultados serão comparados com simulações realizadas em ferramentas comerciais; e 7. Elaborar documentação: Esta etapa visa registar todo o processo pertinente à pesquisa científica. A documentação deve permitir a outros pesquisadores a reprodução dos resultados e testes realizados. Esta etapa ainda visa o desenvolvimento de um artigo científico para posterior publicação. 4 1.4. Estrutura do trabalho Esse TCC está dividido em cinco capítulos, que mantêm uma seqüência lógica e coerente. O primeiro capítulo, a Introdução, além de uma visão geral do escopo do trabalho, também apresenta a problematização (justificativa), objetivos (gerais e específicos) e a metodologia geral de trabalho. No Capítulo 2, Fundamentação teórica, descrevem-se os conceitos relevantes de probabilidade aplicados nas Redes Bayesianas, as definições teóricas, um exemplo de propagação de evidências através das regras básicas da probabilidade e a descrição teórica, com exemplos, dos algoritmos Junction Tree e amostragem de Gibbs. Também apresentam-se os resultados obtidos com a implementação da versão não genérica do algoritmo amostragem de Gibbs. No Capítulo 3, Desenvolvimento, apresenta-se a documentação e arquitetura do sistema empregada na implementação. Demonstram-se os pacotes, componentes, classes, diagramas de atividade e fluxogramas pertinentes ao projeto e implementação do ambiente computacional. No Capítulo 4, Simulações, revelam-se e discutem-se os resultados obtidos com os ensaios realizados nos algoritmos amostragem de Gibbs e Junction Tree. Apresentam-se ensaios para determinação do erro das probabilidades a posteriori em cenários em que existem evidências instanciadas ou não. Também verifica-se ensaios para determinação do desempenho computacional. No Capítulo 5, Conclusões, apresentam-se os comentários finais do autor sobre todas as atividades realizadas e resultados obtidos. Ainda propõem-se sugestões para trabalhos futuros. 5 2. FUNDAMENTAÇÃO TEÓRICA Neste capítulo apresenta-se a parte relevante, para este TCC, dos fundamentos teóricos das Redes Bayesianas. São apresentados: os fundamentos da probabilidade, redes causais e algoritmos para propagação de evidências em variáveis discretas. Este trabalho não abrange técnicas para diagramas de influência, aprendizado, análise sensitiva, cálculo da “força das influências”, 2,50notação específica para redes temporais e variáveis contínuas. 2.1. Probabilidade Nesta seção mostram-se os fundamentos matemáticos necessários para o adequando entendimento de Redes Bayesianas. Inicialmente são apresentadas as diferenças entre probabilidade incondicional, condicional e conjunta para que então seja possível o adequado entendimento da regra fundamental da probabilidade, do teorema de Bayes e da regra da cadeia. 2.1.1. Probabilidade incondicional Conforme Russell e Norvig (2004, p. 455), “A probabilidade incondicional ou probabilidade a priori é o grau de crença acordado para a proposição (variável) na ausência de quaisquer outras informações”. A representação de uma probabilidade incondicional associada a uma variável A é demonstrada na Equação 1, onde xn representa a probabilidade associada ao evento n (JENSEN, 2001). P A= x 1 , x 2 ,... , x n Equação 1 A probabilidade para cada evento xn da variável A é um número no intervalo de [0,1], onde a distribuição das probabilidades para os estados obedecem à Equação 2. Em notação textual, a somatória das probabilidades da variável A deve ser igual a 1 (JENSEN, 2001). n ∑ P Ax =1 1 n Equação 2 2.1.2. Probabilidade condicional Pearl (1988) afirma que as relações condicionadas são importantes, pois elas são compatíveis com a organização do conhecimento humano. Sempre que a declaração da probabilidade da variável A é condicionada por outras fatores conhecidos, é dito que essa probabilidade é condicional. A notação utilizada para relação condicional é demonstrada na Equação 3, que representa a seguinte frase: dado o evento bn da variável B, a probabilidade do evento an da variável A é x (JENSEN, 2001). P A∣B=x Equação 3 Na Tabela 1 é demonstrada a tabela de probabilidade condicional genérica uma vez dado a Equação 3. Observa-se que a distribuição das probabilidades, para cada estado bn da variável B, deve respeitar a Equação 2, onde a somatória das probabilidades devem ser iguais a 1 (JENSEN, 2001). Tabela 1. Tabela de probabilidades condicionais A\B a1 ... ak b1 x1,1 ... xk,1 b2 x1,2 ... xk,2 ... ... ... ... bn x1,n ... xk,n O número de probabilidades condicionais da variável A condicionada a n variáveis, é dada pela Equação 4, onde NEstados é o número de estados da variável. Se a variável A não for condicionada, então essa variável não possui probabilidades condicionais, mas sim probabilidades incondicionais, desta forma a Equação 4 não é aplicada (JENSEN, 2001). n NEstados A∗∏ NEstados pai n Equação 4 1 2.1.3. Probabilidade conjunta e regra fundamental da probabilidade Probabilidade conjunta é a probabilidade dado que P (A = an) e P (B = bn) sejam verdadeiras simultaneamente (RUSSELL e NORVIG, 2004). A probabilidade conjunta das variáveis A e B é obtida através da regra fundamental do cálculo da probabilidade, apresentada na Equação 5 (JENSEN, 2001). Na Equação 6 é demonstrada a probabilidade conjunta no sentido contrário. P A , B=P A∣B∗P B Equação 5 P A , B=P B∣A∗P A Equação 6 Diferentemente da probabilidade incondicional e condicional, a distribuição das probabilidades condicionais é dada pela Equação 7, onde n é o número de estados da variável A e m é o número de estados da variável B. Em linguagem textual: na tabela de probabilidade conjunta, a soma de todas as probabilidades devem ser iguais a 1 (JENSEN, 2001). 7 n m 1 1 ∑ ∑ x n m=1 Equação 7 Observa-se que as P (A , B) são idênticas às P (B , A); a única diferença é a forma da representação da tabela com as probabilidades conjuntas. Já nas probabilidades condicionais as P (A | B) diferem das P (B | A) (JENSEN, 2001). 2.1.4. Regra de Bayes A Regra de Bayes é a equação básica utilizada para propagar evidências nas Redes Bayesianas (JENSEN, 2001). Na Equação 8 e Equação 9 revela-se a dedução matemática da Regra de Bayes. Na Equação 8 é igualada a regra fundamental da probabilidade (Equação 5) e a regra fundamental da probabilidade inversa (Equação 6), pois ambas resultam na P (A ^ B) (Russell e Norvig, 2001). P A∣B∗P B=P B∣A∗P A Equação 8 Através de operações matemáticas básicas na Equação 8 é obtida então a Regra de Bayes, demonstrada na Equação 9 (JENSEN, 2001). P B∣A= P A∣B∗P B P A Equação 9 Na Equação 10 mostra-se que a Regra de Bayes pode ser condicionada a mais variáveis (JENSEN, 2001). P B∣A ,C = P A∣B ,C ∗P B∣C P A∣C Equação 10 2.1.5. Regra da cadeia A regra da cadeia é uma metodologia para realizar a propagação de evidências em Redes Bayesianas, quando é conhecida a probabilidade conjunta universal de todas as variáveis. O método para o cálculo de P(U) é descrito na Equação 11. (JENSEN, 2001) PU =∏ P Ai∣pais Ai Equação 11 A equação para propagação de evidências (crenças) e1,...,en, sobre o universo U de variáveis numa Rede Bayesiana é demonstrada na Equação 12. (JENSEN, 2001) 8 PU , e=∏ P Ai∣pais Ai ∏ ei Equação 12 A distribuição conjunta universal é um método completo para responder consultas probabilísticas para variáveis discretas, mas em razão do rápido crescimento da tabela P(U), dado o aumento do número de variáveis, logo se torna completamente impraticável definir o vasto número de probabilidades. (RUSSELL e NORVIG, 2004) Ainda, a respeito da aplicabilidade da distribuição conjunta universal, Jensen (2001, p. 25) cita que, “P(U) cresce exponencialmente com o número de variáveis do problema, e U não necessita ser muito grande antes das tabelas tornarem-se demasiadamente grandes”. 2.2. Redes Bayesianas As Redes Bayesianas provém um formalismo para o raciocínio a respeito de crenças parciais sobre condições de incerteza. (PEARL, 1988) A seguir apresentam-se as definições básicas sobre Redes Bayesianas conforme Russell e Norvig (2004): • Um conjunto de variáveis que constituem os nós da redes; • Um conjunto de vínculos orientados conecta pares de nós. Se houver uma seta do nó X até o nó Y, X será denominado pai de Y; • Cada nó Xi tem uma distribuição de probabilidade condicional P ( Xi | Pais(Xi) ) que quantifica o efeito dos pais sobre o nó; e • O grafo não tem nenhum ciclo orientado (A Figura 1 apresenta um ciclo orientado). Conforme Jensen (2001), Redes Bayesianas consistem basicamente: • Um conjunto de variáveis e um conjunto de arestas direcionadas entre variáveis; • Cada variável tem um conjunto finito de estados mutuamente exclusivos; • As variáveis em conjunto com as arestas direcionadas, formam um grafo acíclico direcionado; e • Para cada variável A com pais B1,...,Bn, é associado uma tabela P (A | B1, ... , Bn). 2.2.1. Redes causais Para este trabalho adota-se a representação de Redes Bayesianas em forma de redes causais (grafos), pois é a linguagem de modelagem mais utilizada no meio comercial e acadêmico (JENSEN, 2001). O motivo da maior utilização das redes causais é que a representação facilita a quantificação 9 das conexões locais, de forma que os parâmetros conceitualmente significativos constituam uma base de conhecimento global consistente (PEARL, 1988). Nas redes causais os nós (círculos ou elipses) representam as variáveis do problema, sendo que essas variáveis podem assumir n estados finitos mutuamente exclusivos. As arestas direcionadas entre as variáveis representam a relação de causa (RUSSELL e NORVIG, 2004). Somente é possível a modelagem de grafos acíclicos direcionados, pois nenhum método matemático foi desenvolvido para suportar grafos cíclicos em redes causais (JENSEN, 2001). Na Figura 1 dá-se a conhecer um grafo cíclico direcionado, no qual o ciclo é formado pelas variáveis (nós) B, C, D e E. (JENSEN, 2001) Figura 1. Um grafo cíclico. Isto não é permitido nas Redes Bayesianas Fonte: Jensen (2001). Nas redes causais as relações entre as variáveis são definidas conforme uma relação familiar (JENSEN, 2001). Por exemplo, na Figura 2 a variável “Medidor de combustível” é definida como filho da variável “Combustível”; já a variável “Combustível” é definida como pai das variáveis “Medidor de Combustível” e “Partida do Motor”. Vale ressaltar que uma variável (nó) pode possuir tanto n finitos pais com também n finitos filhos (RUSSELL e NORVIG, 2004). Na Figura 2 revela-se a rede causal para o problema reduzido da falha da partida do motor de um carro. O exemplo é apresentado para demonstrar como o modelo conceitual de um problema é correlacionado com a metodologia das redes causais. Jensen (2001, p. 3) descreve o problema como: De manhã, o carro não liga. A partida elétrica é ouvida, mas nada acontece. Pode haver várias razões para o problema. Já que a partida é ouvida, então deve existir energia na bateria. Portanto, as causas mais prováveis são que o combustível foi roubado durante a noite ou que as velas do sistema de ignição estão “sujas”. Para descobrir se a causa do problema é a falta de combustível, pode-se observar o medidor de combustível. 10 Figura 2. Rede causal para o problema reduzido da falha da partida do motor de um carro Fonte: Adaptado de Jensen (2001). Pearl (1988, p. 13) afirma que, “As redes causais não são dispositivos auxiliares previstos para fazer o raciocínio mais eficiente, mas sim uma parte integral das semânticas da base de conhecimento”. A representação de Redes Bayesianas através de redes causais (grafos acíclicos direcionados) facilita a compreensão do modelo conceitual da rede, pois sua representação é intuitiva. Mesmo pessoas que somente conhecessem as características intrínsecas do problema, poderiam entender o modelo conceitual, pois as redes causais representam o problema de maneira similar ao raciocínio humano em circunstâncias que envolvem incertezas. (JENSEN, 2001) 2.2.2. Evidências Nas Redes Bayesianas uma evidência é a crença de que determinada variável A esteja no estado an. Suponha que a variável A possua estados a1, a2, a3 e a4. É descoberto que a variável A está no estado a3 (uma crença), então a partir dessa premissa, pode-se determinar que a probabilidade dos demais estados da variável A é 0, pois os estados de uma mesma variável são mutuamente exclusivos; em outras palavras, somente pode ocorrer um estado por variável. (JENSEN, 2001) Quando uma evidência é instanciada numa variável, ela é chamada de evidência “pesada” (crença). Uma evidência é dita “leve”, quando um estado da variável possui probabilidade 1, porém não foi instanciada uma evidência na variável. A evidência “leve” pode ocorrer em decorrência do modelo conceitual da rede e das evidências instanciadas em outras variáveis. (JENSEN, 2001) 2.2.3. D-separação em redes causais De acordo com Pearl (1988, p. 117): “X, Y e Z são três conjuntos separados de nós num grafo direcionado acíclico, então Z é dito d-separado de X e Y se ao longo de todos caminhos entre um nó de X e um nó de Y 11 existir um nó w satisfazendo uma das seguintes condições: w tem arestas convergentes e seus descendentes estão em Z, ou w não tem arestas convergentes e w está em Z.” A direção da aresta não é um fator limitante para os caminhos possíveis entre variáveis, uma vez que a direção representa a relação de causa e não a orientação da influência entre as variáveis. As variáveis que não são d-separadas, são chamadas de d-conectadas (JENSEN, 2001). 2.2.3.1. Conexões seriais A Figura 3 demonstra uma rede causal com conexão serial entre as variáveis A, B e C. Figura 3. Rede causal com conexão serial Fonte: Adaptado de Jensen (2001). Na Figura 3 a variável A influencia variável B e vice-versa, como B influencia a variável C e vice-versa, contudo as variáveis A e C são influenciadas indiretamente através de B. Uma evidência na variável C influencia as probabilidades da variável B, que por sua vez, influencia as probabilidades de A. Por outro lado, uma evidência na variável B influencia A e C, mas depois o canal é bloqueado, pois existe uma crença na variável B (evidência). Desta forma as variáveis A e C são consideradas dseparadas, pois em função da evidência em B, A e C não se influenciam. (JENSEN, 2001) 2.2.3.2. Conexões divergentes Na Figura 4 demonstra-se uma rede causal com conexão divergente. A variável A influencia B1 ... Bn e vice-versa. As variáveis B1 ... Bn se influenciam indiretamente através de A. Já, dado uma evidência em A, ocorre a propagação desta em B1 ... Bn, contudo após essa propagação, A bloqueia o canal de influência entre as variáveis B1 ... Bn. Desta forma é dito que B1 ... Bn são d-separados. (JENSEN, 2001) Figura 4. Rede causal com conexão divergente Fonte: Adaptado de Jensen (2001). 12 2.2.3.3. Conexões convergentes Na Figura 5 é demonstrado uma rede causal com conexão convergente. Figura 5. Rede causal com conexão convergente Fonte: Adaptado de Jensen (2001). Numa situação convergente, como na Figura 5, as variáveis B1 ... Bn influenciam A e viceversa, mas as variáveis B1 ... Bn não se influenciam se não for atribuída uma evidência a A ou a um dos descendentes. Dado uma evidência na variável A, ocorre a propagação nas variáveis B1 ... Bn e depois o canal é aberto, assim as variáveis B1 ... Bn são d-conectadas (JENSEN, 2001) 2.2.4. Propagação de evidências Conforme Russell e Norvig (2004, p. 490) a propagação de evidências “é calcular a distribuição de probabilidades posteriores para um conjunto de variáveis de consulta, dado algum evento observado – isto é, alguma atribuição de valores a um conjunto de variáveis de evidência.” De acordo com Pearl (1988, p. 143), a propagação de evidências: “promove a fusão e propagação de novas evidências e crenças, através da Rede Bayesiana, de modo que cada proposição eventualmente será atribuída a uma medida consistente conforme os axiomas da teoria da probabilidade”. Nesta seção demonstra-se matematicamente como ocorre a propagação de evidências numa Rede Bayesiana, através de um exemplo. 2.2.4.1. Modelagem conceitual do problema Russell e Norvig (2004, p. 481) descrevem o problema como: Você possui um novo alarme contra ladrões em casa. Este alarme é muito confiável na detecção de ladrões, entretanto, ele também pode disparar caso ocorra um terremoto. Você tem dois vizinhos, João e Maria, os quais prometeram telefonar-lhe no trabalho, caso o alarme dispare. João sempre liga quando ouve o alarme, entretanto, algumas vezes confunde o alarme com o telefone e também liga nestes casos. Maria, por outro lado, gosta de ouvir música alta e às vezes não escuta o alarme. Na Figura 6 vê-se o modelo conceitual do problema na forma de uma rede causal. Observa-se que tanto o Ladrão como Terremoto são causas para que o alarme seja ativo, e o alarme a causa da 13 ligação do João e/ou da Maria, mas é atribuída incertezas às causas. Desta forma, apresenta-se, similarmente, o problema descrito, na forma de uma rede causal. (RUSSELL e NORVIG, 2004) Figura 6. Rede Bayesiana para o problema do alarme Fonte: Adaptado de Russell e Norvig (2004). Na modelagem da Rede Bayesiana devem ser consideradas as variáveis e estados que possuem maior relevância para o problema, pois se forem inseridas muitas variáveis e estados irrelevantes, o modelo pode tornar-se muito complexo e até, eventualmente, incoerente. (JENSEN, 2001) Na Tabela 2 descreve-se o nome dos estados para cada variável da Rede Bayesiana da Figura 6 e o apelido da variável, entre parênteses, ao lado do nome da variável, o qual é utilizado para diminuir o tamanho das expressões. Tabela 2. Nomes das variáveis e estados Estado 1 Estado 2 Ladrão (L) Terremoto(T) Alarme(A) João(J) Maria(M) Sim Não Sim Não Ativo Não Ativo Ligou Não Ligou Ligou Não Ligou Fonte: Adaptado de Russell e Norvig (2004). O número de estados iguais, para as variáveis do problema do alarme, são mera coincidência, pois as diferentes variáveis podem possuir n finitos estados. Apenas existem recomendações para facilitar a modelagem da Rede Bayesiana, pois o número de probabilidades condicionais necessárias numa variável aumenta consideravelmente com o número de estados dos pais e do filho. Basta observar a Equação 4, onde o número de probabilidades condicionais de uma variável é determinado por um produtório. (JENSEN, 2001). Depois de definidos os possíveis estados para as variáveis é necessário, então, definir as probabilidades condicionais e incondicionais. A definição das probabilidades incondicionais como as condicionais, pode ser dada através da freqüência (número de vezes que determinado estado ocorre num grupo de amostras) ou pode ser simplesmente subjetiva (JENSEN, 2001). 14 Por exemplo, as probabilidades para a variável Alarme poderiam ser obtidas através de informações quantitativas fornecidas pelo fabricante, mas a probabilidade de João ligar no caso do alarme estar ativo é subjetiva, pois a verificação quantitativa dessa probabilidade é difícil de ser obtida. A respeito da usabilidade de probabilidades subjetivas, Pearl (1988, p. 21) cita que: “Se as pessoas preferem raciocinar qualitativamente, por quê deveriam as máquinas raciocinar com números? Probabilidades são sumário de conhecimento que é deixado para trás quando a informação é transferida para um alto nível de abstração. Os sumários podem ser codificados logicamente ou numericamente; lógica aprecia as vantagens da parcimônia e simplicidade, enquanto número são mais informativos e algumas vezes são necessários.” Na Tabela 3 demonstram-se as probabilidades incondicionais para as variáveis Ladrão (L) e Terremoto (T) conforme Russell e Norvig (2004). As probabilidades das variáveis não representam a realidade brasileira, pois existe uma probabilidade maior de ocorrer um terremoto do que um roubo, contudo essas probabilidades não foram definidas para realidade brasileira, mas sim para a realidade do autor do problema. Desta forma fica evidente que a correta representação do modelo, depende do contexto e do entendimento do problema. Tabela 3. Probabilidades incondicionais para as variáveis: (a) Ladrão; (b) Terremoto Ladrão (L) Estado Probabilidade Sim 0,001 Não 0,999 Terremoto (T) Estado Probabilidade Sim 0,002 Não 0,998 (a) (b) Fonte: Adaptado de Russell e Norvig (2004). Na Tabela 4 expressam-se as probabilidades condicionais para a variável Alarme, dado que essa variável possui 2 pais, ambos com 2 estados. Reitera-se que o número de probabilidades condicionais para esta variável é dado conforme a Equação 4, que neste caso é igual a 8 (oito). (RUSSELL e NORVIG, 2004) Na Tabela 5 e Tabela 6 verificam-se as probabilidades condicionais para as variáveis João e Maria, respectivamente, conforme Russell e Norvig (2004). Tabela 4. P (A | L , T) L Sim A Ativo A Não Ativo T Sim 0,950 0,050 L Não T Não 0,950 0,050 Fonte: Adaptado de Russell e Norvig (2004). 15 T Sim 0,290 0,710 T Não 0,001 0,999 Tabela 5. P (J | A) A Ativo 0,90 0,10 J Ligou J Não Ligou A Não Ativo 0,05 0,95 Fonte: Adaptado de Russell e Norvig (2004). Tabela 6. P (M | A) A Ativo 0,70 0,30 M Ligou M Não Ligou A Não Ativo 0,01 0,99 Fonte: Adaptado de Russell e Norvig (2004). 2.2.4.2. Cálculo das probabilidades dos estados Depois de definidas as probabilidades incondicionais e condicionais, faz-se necessário calcular as probabilidades dos estados nas variáveis, pois deseja-se saber, qual a probabilidade do estado ai da variável A. Para as variáveis incondicionais Ladrão e Terremoto, a probabilidade do evento ai ocorrer é a própria probabilidade do estado, pois essas variáveis não possuem nós pais. Já para os nós com probabilidades condicionais, é preciso calcular a probabilidade conjunta do nó com seus respectivos pais, para então ser determinado a probabilidade do evento ai (JENSEN, 2001). A probabilidade do evento ai ocorrer numa variável A condicionada é determinada pela marginalização (Equação 13), onde n é número de pais de A, mn é o número de estados do pai Bn e ai é um estado de A (JENSEN, 2001). m1 m2 mn 1 1 1 P A=ai=∑ ∑ ... ∑ P A=ai , B1=b m1 , B2=bm2 , ..., B n=bmn Equação 13 Para determinar as probabilidades dos estados da variável Alarme, é necessário calcular as probabilidades conjuntas para as variáveis Ladrão, Terremoto e Alarme. Para tal, é utilizada a regra fundamental da probabilidade (Equação 5). Entretanto a Equação 5 é utilizada para o cálculo da probabilidade conjunta entre 2 variáveis, porém ela pode ser expandida. A Equação 14 mostra a Equação 5 expandida para o cálculo da probabilidade conjunta de Alarme, Terremoto e Ladrão (JENSEN, 2001). P A ,T , L=P A∣T , L∗PT ∗P L Equação 14 Para o cálculo das P (A ^ L ^ T) são obtidas as P (A | T ^ L) na Tabela 4, as P (L) e as P (T) na Tabela 3. Na Equação 15 é demonstrada o cálculo para P (A Não Ativo ^ L Não ^ T Não). 16 P A Não Ativo , L Não ,T Não =P A Não Ativo∣LNão ,T Não ∗P LNão ∗P T Não P A Não Ativo , L Não ,T Não =0,999∗0,999∗0,998=0.996004998 Equação 15 Conforme a metodologia aplicada na Equação 15, é necessário calcular a probabilidade conjunta para todas as combinações de estados. Na Tabela 7 são demonstradas as P (A ^ L ^ T) para todas as combinações de estados. Uma vez calculada a probabilidade conjunta, é utilizada a Equação 13 para determinar as P (A). (JENSEN, 2001) Tabela 7. P (A , L , T) e P (A) L Sim A Ativo A Não Ativo T Sim 1,9*10-6 1,0*10-7 T Não 9,4810*10-4 4,9900*10-5 L Não T Sim T Não -4 5,7942*10 9,97002*10-4 -3 1,41858*10 0,996004998 P (A) 0,002526422 0,997473578 Para calcular as probabilidades dos estados da variável João, é necessário calcular as P ( J , A) através da regra fundamental da probabilidade. Para o cálculo são obtidas as P (J | A) na Tabela 5 e as P (A) na Tabela 7. Depois de calculada as P (J , A) é utilizada a Equação 13 para marginalizar Alarme e obter as P (J). Os resultados são demonstrados na Tabela 8. Tabela 8. P (J , A) e P (J) J Ligou J Não Ligou A Ativo 0,0022737798 0,0002526422 A Não Ativo 0,0498736789 0,9475998991 P(J) 0,0521474587 0,9478525413 O cálculo das probabilidades dos estados de Maria é realizado de maneira similar, inicialmente é utilizada a regra fundamental da probabilidade para o cálculo das P (M , A) para então utilizar a Equação 13 e marginalizar Alarme, a fim de obter as P (M). Os resultados são demonstrados na Tabela 9. Tabela 9. P (M , A) e P (M) M Ligou M Não Ligou A Ativo 0,00176849540 0,00075792660 A Não Ativo 0,00997473578 0,98749884222 P(M) 0,01174323118 0,98825676882 Na Figura 7 demonstram-se as Redes Bayesiana com as probabilidades dos estados nas variáveis. Observa-se que a Rede Bayesiana já permite análise do problema, mesmo sem evidências inseridas, pois é possível gerar conclusões como: João tem maior probabilidade de ligar do que Maria, independentemente do alarme estar ativo ou não. (RUSSELL e NORVIG, 2004) 17 Figura 7. Rede Bayesiana com probabilidades dos estados 2.2.4.3. Propagação dada a evidência M Ligou Para demonstrar os cálculos da propagação de evidência, é pressuposto que Maria ligou para avisar que o alarme está ativo. A evidência neste caso é: Maria = Ligou, também denotada como M . Ligou O processo da propagação da evidência é iniciado na variável Alarme, porque é única variável diretamente conectada a variável Maria. Depois de propagado em Alarme, ocorre a propagação nas demais variáveis da Rede Bayesiana. (RUSSELL e NORVIG, 2004) Propagação na variável Alarme Na Equação 16 apresenta-se a regra de Bayes adaptada para propagação da evidência M Ligou em Alarme. Para os cálculos são obtidas as P (M Ligou | Alarme) na Tabela 6, as P(A) na Tabela 7 e a P (M Ligou) na Tabela 9. P A∣e=M Ligou = P M Ligou∣A∗P A P M Ligou Somente é preciso utilizar a regra de Bayes quando M Equação 16 , pois foi atribuído a esse estado a Ligou evidência. Como o estado M Ligou tem probabilidade 1, a P(M Não Ligou) = 0. Na Equação 17 é demonstrado o cálculo da P (A Ativo | M Ligou). P Aativo∣e=M Ligou = P A Ativo∣e=M Ligou = P M Ligou∣A ativo ∗P A ativo P M Ligou Equação 17 0,7∗0,0025264220 =0,150597001190945 0,01174323118 Na Tabela 10 visualizam-se as P(A | e = M ). É observado o aumento significativo da Ligou probabilidade do Alarme estar ativo, uma vez que Maria dificilmente liga erroneamente, contudo a 18 probabilidade ainda é baixa, uma vez que as probabilidades de existir roubo e/ou terremoto são pequenas. Tabela 10. P (A | e = M Ligou) M Ligou 0,150597001190945 0,849402998809055 A Ativo A Não Ativo Propagação na variável João Na Tabela 11 demonstram-se as P (J , A) e as P (J | e = MLigou). É utilizada a regra fundamental da probabilidade para propagar a evidência na variável Ligação do João, através de Alarme. Para o cálculo são obtidas as P (J | A) na Tabela 5 e as P (A) na Tabela 10. Tabela 11. P (J , A) e P(J | e = M Ligou) J Ligou J Não Ligou A Ativo 0,13553730107 0,01505970012 A Não Ativo 0,04247014994 0,80693284887 P(J | e = M Ligou) 0,17800745101 0,82199254899 Ainda na Tabela 11 observa-se que a probabilidade de João ligar aumentou, uma vez que a probabilidade do alarme estar ativo também aumentou, contudo a probabilidade ainda é baixa, em função das P(LSim) e P (TSim). Propagação na variável Terremoto Para o cálculo da propagação na variável Terremoto utiliza-se a Equação 18, que é a regra de Bayes adaptada para propagação em Terremoto. PT∣A= P A∣T ∗P T P A Equação 18 Para o cálculo são obtidas as P (A) na Tabela 10 e as P (T) na Tabela 3. As P (A | T) são obtidas através da P (A , L , T). Para isso são necessárias duas etapas: • Primeira etapa: obter as P (A , T) das P (A , L , T) (Tabela 7). O procedimento é somar as probabilidades conjuntas para os estados iguais de Terremoto, independentemente de outras combinações, separadamente para cada estado do Alarme (JENSEN, 2001). Na Tabela 12 são demonstrados os resultados para essa operação; e Tabela 12. P (A , T) A Ativo A Não Ativo T Sim 6,0*10-4 1,4*10-3 19 T Não 1,9*10-3 0,9961 • Segunda etapa: obter a P (A | T) através da regra fundamental da probabilidade. Na Equação 19 dá-se a conhecer a fórmula de maneira genérica. Na Tabela 13 são demonstrados os resultados. P A∣T = PA,T P T Equação 19 Tabela 13. P (A | T) T Sim 0,2907 0,7094 A Ativo A Não Ativo T Não 0,0019 0,9981 Depois de calculadas as P (A | T) é possível utilizar a regra de Bayes adaptada para propagação em Terremoto (Equação 18). Os resultados são demonstrados na Tabela 14. Tabela 14. P (T | A) não normalizadas A Ativo 0,0039 0,0129 T Sim T Não A Não Ativo 0,0017 1,1727 Os resultados apresentados na Tabela 14 precisam ser normalizados para 1. Na Equação 20 revela-se o método utilizado para normalizar os valores da Tabela 14, onde MAX é a soma dos valores que são normalizados. (JENSEN, 2001) Valor normatizado= Valor∗1 MAX Equação 20 Na Equação 21 é apresentado o cálculo para normalização de P (T Não | A Não Ativo). PT Não∣A Não Ativo normalizado = PT Não∣A Não Ativo ∗1 PT Não∣A Não Ativo PT Sim∣A Não Ativo PT Não∣A Não Ativo normalizado= 1,1727∗1 1,17270,0017 Equação 21 PT Não∣A Não Ativo normalizado=0,9986 Conforme a metodologia aplicada na Equação 21, é necessário realizar a normalização para as outras probabilidades condicionais. Na Tabela 15 percebem-se os resultados normalizados. Tabela 15. P (T | A ) normalizadas T Sim T Não A Ativo 0,2301 0,7699 A Não Ativo 0,0014 0,9986 Para a obter as probabilidades de Terremoto, é necessário utilizar a regra fundamental da probabilidade em P (T | A) normalizada a fim de obter as P (T , A). Uma vez determinada as P (T , 20 A), é possível calcular as P (T | e = M ). O procedimento é somar todas as probabilidades Ligou conjuntas para cada estado de Terremoto (JENSEN, 2001). Demonstram-se os resultados na Tabela 16. Tabela 16. P (T , A) e P (T | e = M Ligou) T Sim T Não A Ativo 0,0347 0,1159 A Não Ativo 0,0012 0,8482 P(T | e = M Ligou) 0,0359 0,9641 Propagação na variável Ladrão O cálculo da propagação na variável Ladrão é similar ao cálculo da propagação na variável Terremoto. Desta forma revela-se o procedimento de maneira resumida. Inicialmente, é necessário obter as P (A | L) com intuito de utilizar a regra de Bayes. O processo para obter as P(A | L) é similar ao processo para obter as P (A | T). Primeiro é obtido as P (A , L) através das probabilidades da Tabela 7, para então calcular as P (A | L) através da regra fundamental da probabilidade. Nas Tabela 17 e Tabela 18 apresentam-se as P (A , L) e as P (A | L), respectivamente. Tabela 17. P (A , L) A Ativo A Não Ativo L Sim 0,0010 0,0001 L Não 0,0016 0,9974 L Sim 0,000950000 0,000050000 L Não 0,001576422 0,997423578 Tabela 18. P (A | L) A Ativo A Não Ativo Depois de calculada as P (A | L) utiliza-se regra de Bayes para calcular as P (L | A). Para os cálculos são obtidas as P (A | L) na Tabela 18, as P(L) na Tabela 3 e as P(A | e = MLigou) na Tabela 10. Na Tabela 19 especificam-se os resultados não normalizados. Na Tabela 20 apresentam-se as P (L | A) normalizados. Tabela 19. P (L | A) não normalizadas L Sim L Não A Ativo 0,006308226541613 0,010467818001244 A Não Ativo 0,000058864873411 1,174264253126590 A Ativo 0,376025857912890 0,623974142087110 A Não Ativo 0,000050126641049 0,999949873358951 Tabela 20. P ( L | A) normalizadas L Sim L Não 21 Para obter as probabilidades incondicionais da variável Ladrão, dada a evidência, é inicialmente aplicada a regra fundamental da probabilidade em P (L | A) normalizada a fim de obter as P (L , A). Para obter as P (L | e = M Ligou) é necessário somar todas as probabilidades conjuntas para cada estado de Ladrão, que é a definição textual da Equação 13 (JENSEN, 2001). Os resultados são demonstrados na Tabela 21. Tabela 21. P ( L , A ) e P (L | e = M Ligou) L Sim L Não A Ativo 0,056628366571934 0,093968634619011 A Não Ativo 0,000042577719227 0,849360421089828 P(L | e = M Ligou) 0,056670944291161 0,943329055708839 2.2.4.4. Rede Bayesiana dada a evidência M Ligou Na Figura 8 evidenciam-se as probabilidades dos estados nas variáveis após a inserção da evidência M Ligou. Observa-se que essa evidência modificou as probabilidades dos estados nas demais variáveis, de forma coerente com a formulação do problema e a sistemática do raciocínio humano. Por exemplo, dado que Maria ligou, é intuitivo que existe o aumento considerável da probabilidade do alarme estar ativo, uma vez que dificilmente Maria liga quando o alarme está Não Ativo. Em contra ponto, a probabilidade de ocorrer terremoto e/ou roubo é muito baixa. Também é atribuída uma maior probabilidade para João ligar, em decorrência da maior probabilidade do alarme estar ativo (causa e efeito). Figura 8. Rede Bayesiana para o problema do alarme dada a evidência MLigou 2.2.4.5. Propagação dada a nova evidência J Ligou Numa Rede Bayesiana é permitido a inserção de mais de uma evidência na rede, desde que sejam em diferentes variáveis, pois os estados numa mesma variável são mutuamente exclusivos. (JENSEN, 2001) Como continuação do caso do alarme, é pressuposto que João ligou depois de Maria, para avisar que o alarme está ativo. Assim deve ser inserido na rede a nova evidência João = Ligou ). Ligou 22 (J Observa-se que a ordem da inserção das evidências não diferencia as probabilidades dos estados nas variáveis, ao final da inserção, em métodos exatos. As probabilidades das variáveis Alarme, Terremoto e Ladrão são as mesmas, tanto se forem inseridas as evidências M respectivamente, como se forem inseridas as evidências J eM Ligou Ligou eJ , Ligou , respectivamente. (JENSEN, Ligou 2001) Dada a nova evidência J , é necessário propagá-la nas variáveis que são d-conectadas à Ligou João. A variável diretamente conectada a João é Alarme, desta forma é preciso propagar a evidência em Alarme, que por sua vez propaga a evidência nas variáveis Terremoto e Ladrão. A variável Maria não sofre propagação, pois a ela foi instanciada a evidência M Ligou. (JENSEN, 2001) Propagação na variável Alarme Para propagar a evidência em Alarme utiliza-se a regra de Bayes. Para o cálculo das P (A| e = M Ligou , J ligou), são obtidas as P (J Ligou | A) na Tabela 5, as P (A | e = M Ligou) na Tabela 10 e a P (J Ligou | e = M Ligou ) na Tabela 11. Na Tabela 22 observam-se os resultados. Reitera-se que somente é necessário utilizar a regra de Bayes quando J Ligou, pois a este estado foi atribuída a evidência. Tabela 22. P (A | e = M Ligou , J Ligou) P (A | e = M Ligou ^ J Ligou) 0,761413639164106 0,238586360835894 A Ativo A Não Ativo Propagação na variável Terremoto O procedimento para propagar a evidência J utilizado para propagar a evidência M Ligou Ligou em Terremoto é similar ao procedimento em Terremoto. Utiliza-se a regra fundamental da probabilidade para obter as P (T , A). Para os cálculos são obtidas as P (T | A) na Tabela 15 e as P (A | e = M Ligou , J Ligou) na Tabela 22. Depois de calculado as P (T , A) somam-se as probabilidades conjuntas para cada estado de Terremoto, com intuito de obter as P (T | e = M Ligou ,J ). Na Tabela 23 são demonstrados os Ligou resultados. Tabela 23. P (T , A) e P(T | e = M Ligou , J Ligou) T Sim T Não A Ativo 0,175198354320410 0,586215284843696 A Não Ativo P (T | e = M Ligou ^ J Ligou) 0,000339335001805 0,175537689322215 0,238247025834089 0,824462310677785 23 Propagação na variável Ladrão Por último é preciso propagar a evidência J Ligou em Ladrão. O procedimento é similar à propagação na variável Terremoto. Inicialmente é calculado as P (L , A) através da regra fundamental da probabilidade. Para os cálculos são obtidas as P (L | A) na Tabela 20 e as P (A | e = M utiliza-se a Equação 13 para obter as P (L | e = M Ligou ,J Ligou ,J ) na Tabela 22. Então Ligou ). Os resultados são demonstradas na Ligou Tabela 24. Tabela 24. P (L , A) e P (L | e = M Ligou , J Ligou) Alarme L Sim L Não A Ativo 0,286311216893261 0,475102422270845 A Não Ativo 0,000011959532869 0,238574401303025 P(L | e = MLigou ^ JLigou) 0,286323176426129 0,713676823573871 2.2.4.6. Rede Bayesiana dada as evidências em M Ligou e J Ligou Na Figura 9 demonstram-se as probabilidades dos estados dado que tanto Maria como João ligaram. Observa-se o aumento significativo da probabilidade do alarme estar ativo, o qual condiz com a formulação do problema e a sistemática do raciocínio, pois a chance de ambos ligarem erroneamente são baixas. (RUSSELL e NORVIG, 2004) Figura 9. Rede Bayesiana para o problema do alarme dada as evidências MLigou e JLigou Ainda na Figura 9, constata-se que a probabilidade do roubo é maior que probabilidade do terremoto. A princípio, isto aparenta ser uma contradição, pois a probabilidade a priori do roubo é menor do que a do terremoto. Contudo ressalta-se que a probabilidade do alarme ser ativo em função do terremoto é menor que a probabilidade do alarme ser ativo em função do Ladrão. Na Tabela 4 o motivo desse comportamento é descrito, onde a P (AAtivo | LNão , TSim) = 0,29 e não 0,95, como na P (AAtivo | LSim , TNão). Desta forma na maioria dos terremotos, o alarme permanece Não Ativo, enquanto que na maioria dos roubos o alarme é ativo. 24 2.3. Algoritmos para propagação de evidências Nesta seção apresentam-se dois algoritmos para o cálculo das probabilidades posteriores (propagação de evidências) em Redes Bayesianas. Anteriormente demonstrou-se a propagação de evidências no problema do alarme. Contudo a resolução do problema não foi conduzida por uma metodologia formal (algoritmo); ela foi realizada através dos princípios básicos, como a regra fundamental da probabilidade e a regra de Bayes, mecanismos matemáticos necessários para a propagação de evidências. (PEARL, 1988) Porém num sistema computacional necessita-se a utilização de um algoritmo eficiente, pois a propagação de evidências é de fundamental importância na aplicabilidade das Redes Bayesianas. (JENSEN, 2001) Conforme Russell e Norvig (2004), os algoritmos para propagação de evidências em Redes Bayesianas são divididos em 2 grupos: • exatos: resultam em probabilidades posteriores exatas. Exemplos: junction tree, clustering, polytree, cutset conditioning method e relevance-based; • aproximados: resultam em probabilidades posteriores aproximadas. Exemplos: forward sampling (logic sampling), likelihood weighting, gibbs sampling, algoritmo MetropolisHasting, self importance sampling, backward sampling e adaptive importance sampling for Bayesian Networks(AIS-BN). A princípio, é imperceptível a motivação para o desenvolvimento e/ou utilização de métodos aproximados uma vez que existem métodos exatos. Contudo, em Redes Bayesianas de grande porte, pode ocorrer que a quantidade de memória necessária, para métodos de propagação exatos, seja impraticável, em função do hardware disponível. Neste sentido, utilizam-se algoritmos baseados em simulações, que usualmente necessitam menor quantidade de memória (JENSEN, 2001). 2.3.1. Junction Tree O algoritmo junction tree propõem uma metodologia que utiliza a regra da cadeia (Equação 12) em conjunto com a distribuição conjunta universal. Contudo, neste algoritmo propõem-se uma metodologia que faz uso da lei distributiva, com intuito de reduzir e otimizar o tamanho das tabelas. (JENSEN, 2001) Conforme Russell e Norvig (2004, p. 496) a idéia básica do algoritmo junction tree é “unir nós individuais da rede para formar nós de agrupamento, de tal modo que a rede resultante seja uma poliárvore”. 25 Para exemplificar o algoritmo utiliza-se a Rede Bayesiana do problema do alarme, demonstrada na Figura 6. Entretanto, antes de construir a Junction Tree necessita-se verificar se a rede causal (grafo) do problema é triangulado, pois a construção da Junction Tree necessita que o grafo seja triangulado. Caso o grafo não seja triangulado, realiza-se o processo de triangulação. (JENSEN, 2001) 2.3.1.1. Grafos triangulados Para determinar a triangularidade de grafos, inicialmente é necessário transformar o grafo direcionado em um grafo não direcionado. Para isso são substituídas as arestas direcionadas por arestas não direcionadas e são incluídas as conexões morais (JENSEN, 2001). Ainda o mesmo autor descreve: • Conexões morais: são arestas não direcionadas que conectam dois ou mais nós pais que possuem um filho em comum. Na Figura 10 demonstra-se o grafo com a conexão moral para o problema do alarme. Observase que foi inserida apenas uma conexão moral, pois os únicos nós que atendem ao critério são os nós Ladrão e Terremoto, os quais possuem o nó Alarme como filho em comum. Figura 10. Grafo moral não direcionado para a rede causal do problema do alarme Uma vez transformado o grafo em não direcionado e inseridas as conexões morais, é necessário determinar os domínios para cada nó. Jensen (2001) descreve: • Domínios do grafo: deixe ɸ = {Ø1, ... , Øn} ser potenciais sobre o universo de variáveis U = {A1, ... , An} com domínio Øi = Di. O domínio do grafo para ɸ é um grafo não direcionado com as variáveis de U como nós e com conexões (arestas) entre pares de variáveis membros do mesmo domínio Di. Em outras palavras, o domínio para a variável An é composto por todos os nós vizinhos (nós conectados ao nó An) mais An . Na Tabela 25 são demonstrados os domínios para cada variável (nó) da Figura 10. 26 Tabela 25. Domínio para cada variável Domínio ØL ØT Variável Ladrão (L) Terremoto (T) ØA Alarme (A) ØM ØJ Maria (M) João (J) Integrantes Ladrão, Terremoto, Alarme Ladrão, Terremoto, Alarme Ladrão, Terremoto, Alarme, Maria e João Alarme, Maria Alarme, João Conforme visto na Tabela 25, pode ocorrer a repetição de um mesmo domínio para várias variáveis. Por exemplo o domínio de Alarme contém os domínios de Ladrão, Terremoto, João e Maria, então, utiliza-se um único domínio para essas variáveis (JENSEN, 2001). O domínio resultante do grafo é: Ø1 = {L,T,A,J,M}. Uma vez determinados os domínios do grafo, é possível determinar se o grafo é triangulado. Jensen (2001) define que “um grafo não direcionado é triangulado se, e somente se, todos os nós possam ser eliminados por sucessivas eliminações de nós An simplicials”. Para o correto entendimento do processo de verificação é necessário especificar as seguintes definições: família do nó An, cliques, nós simplicials, eliminação de nós (variáveis), seqüência de eliminações e fill-ins. Conforme Jensen (2001): • Família de AN é o conjunto de nós formados pelo nó AN mais seus vizinhos (nós conectados por arestas ao próprio nó AN, também chamados de nós adjacentes); • AN é um clique se existem arestas que conectam todos os membros da família entre si; • Um nó AN é simplicial, se e somente se a família de AN constituir um clique; • É considerado uma eliminação de variável a exclusão (remoção) do nó e suas arestas do grafo; • Um nó AN, somente pode ser eliminado do grafo sem inserção de fill-ins, se o nó AN for simplicial; • Seqüência de eliminação é a ordem de eliminação dos nós do grafo; e • Fill-ins são arestas que são inseridas entre os nós adjacentes de AN, quando a variável AN é eliminada, contudo ela não é simplicial. A introdução dessas novas arestas (fill-ins) destaca o fato que, quando eliminado An, trabalha-se com um potencial sobre um domínio que não está presente originalmente. Tenta-se evitar fill-ins, pois a junction tree construída através de seqüências de eliminações que não introduzem fill-ins são menores do que as geradas por seqüências de eliminações que introduziram fill-ins. 27 Para exemplificar os fill-ins, é eliminado do grafo da Figura 10 o nó não simplicial Alarme. Quando um nó AN não simplicial é eliminado, são inseridos fill-ins entre os nós adjacentes de AN de tal maneira que eles formem um clique. (JENSEN, 2001) Figura 11. Grafo resultante dado a eliminação do nó Alarme Para exemplificar todo o processo da verificação da triangularidade, retorna-se ao grafo da Figura 10. É reiterado que o domínios resultante (ɸ) do grafo da Figura 10 é: Ø1 = {L,T,A,J,M}. Como continuação, é necessário determinar os nós simplicials dos domínios de ɸ (JENSEN, 2001). Os nós simplicials para o domínio Ø1 são {L, T, M, J}. Na Figura 12 é demonstrado o grafo após a eliminação das variáveis simplicials L, T e M. Figura 12. Eliminação das variáveis Ladrão, Terremoto e Maria Para eliminar todos os nós simplicials disponíveis, é ainda necessário eliminar a variável João; desta forma restaria apenas Alarme no grafo. Em alguns grafos, pode ocorrer que sobrem nós no grafo depois de eliminado todos os nós simplicials dos potenciais de ɸ. Nestas ocasiões, é reiniciado o processo com o grafo G' resultante. Então seriam determinados os novos domínios do grafo G', para então eliminar os novos nós simplicials, e assim por diante até que todos os nós do grafo sejam eliminados. No caso do problema do alarme, na reinicialização do processo, o nó Alarme seria simplicial e seria eliminado. Uma vez eliminados todos os nós do grafo, ele é considerado triangulado. (JENSEN, 2001) 28 2.3.1.2. Grafos de domínios não triangulados Entretanto, pode ocorrer em alguns grafos, que em tal ponto não existam mais nós simplicials nos domínios para serem eliminados. Nestes casos, é necessário embutí-los num grafo triangulado (JENSEN, 2001). Para demonstrar o processo de transformação de um grafo não triangulado em triangulado, considere o grafo da Figura 13. Na Tabela 26 mostram-se os domínios para cada variável e se o nó é simplicial. Figura 13. Grafo moral não triangulado Fonte: Jensen (2001). Tabela 26. Domínio para cada variável do grafo da Figura 13 ɸ ØA ØB ØC A,B,C,D Domínio A,B,D B,C,E ,E Simplicial? Sim Não Sim ØD A,B, D,F Não ØE B,C, E,G Não ØF ØG D,F,H, E,F,G, I,G I, J Não Não ØH ØI ØJ H,F F,G,I G,J Sim Sim Sim Na Figura 14 determina-se o grafo G' depois da eliminação dos nós simplicials, na seqüência A, C, H, I e J. Figura 14. Grafo moral G' não triangulado, depois da seqüência de eliminação A, C, H, I e J Fonte: Adaptado de Jensen (2001). Na Tabela 27 visualizam-se os domínios para o grafo G' da Figura 14. É observado que não existem nós simplicials; desta forma, é necessário eliminar um nó não simplicial, que insere fill-ins. (JENSEN, 2001) 29 Na Figura 14 existem várias diferentes ordens de eliminação e muitas delas produzem diferentes grafos triangulados. É recomendado trabalhar para determinar os menores domínios. Infelizmente, determinar a menor seqüência de eliminação é uma tarefa NP-Difícil. Contudo, existe um bom algoritmo heurístico que tem provado dar relativos bons resultados. (JENSEN, 2001) Tabela 27. Domínio para cada variável do grafo G' DomínioVariável ØB ØD ØE ØF ØG Integrantes B, D, E B, D, F B, E, G D, F, G E, F, G Nó simplicial Não Não Não Não Não Jensen (2001, p. 185) descreve a heurística: “Eliminar repetidamente os nós simplicials, e se não existem mais nós simplicials para serem eliminados, deve-se eliminar o nó X com sz (Fx) mínimo.” O sz (Fx) é demonstrado na Equação 22, onde i representa o número de nós da família da variável V e n(Xi) representa o número de estados da variável Xi. Em linguagem textual, sz (V) é o produtório do número de estados das variáveis da família de V. (JENSEN, 2001) sz V =∏ i n X i Equação 22 Jensen (2001, p. 185) exemplifica a heurística: “Deixe que o número de estados para a variáveis da Figura 14 sejam as seguintes: B tem 2 estados, D tem 4 estados, E tem 5 estados, F tem 6 estados e G tem 7 estados. Depois de ter eliminados as variáveis A, C, H, I e J, é necessário eliminar um nó não simplicial. O sz(FB) = 40, sz(FD) = 48, sz(FE) = 70, sz(F F) = 168 e sz(F G) = 210. É escolhido para ser eliminado o nó B, o qual resulta na criação de um fill-in entre os nós D e E. Com essa nova conexão, é obtido novos tamanhos sz(FD) = 120 e sz(FE) = 140. É eliminado o nó D e adicionado um fill-in entre os nós E e F. Agora, o grafo é triangulado. A seqüência de eliminação apresentada não é ótima.” 2.3.1.3. Construção da join tree Jensen (2001, p. 172) define, “Se o grafo G não direcionado é triangulado, então os cliques de G podem ser organizados em uma join tree”. Como primeira etapa da construção da join tree é necessário organizar todos os cliques do grafo G não direcionado triangulado, conforme a ordem de eliminação utilizada, para então determinar os separadores. (JENSEN, 2001) Na Figura 15 revelam-se graficamente os cliques, separadores e índices para o grafo não direcionado triangulado da Figura 10, conforme a ordem de eliminação L, T, M, J e A. Os cliques são 30 representados em forma de elipses e os separadores em forma de retângulo. O conjunto de nós que constituem os separadores são: os nós do clique menos os nós simplicials eliminados. Jensen (2001, p. 166) descreve que a eliminação da variável X “corresponde a usar a lei distributiva no produto. Ao invés de calcular o produto, é mantido os fatores numa “caçamba” e esses não são multiplicados até que sejam forçados a tal.” Os cliques e os separadores são denotados de acordo com o número de nós eliminados (JENSEN, 2001). Por exemplo na Figura 15, o clique {L, T e A} é determinado V2 porque no grafo foram eliminados 2 nós (L e T), já o clique {A, M} é V3, porque foram eliminados os nós L, T e M do grafo. Figura 15. Os cliques, separadores e índices resultantes da Figura 10 Constata-se que existem diferentes seqüências de eliminações possíveis para o grafo da Figura 10, por exemplo, a seqüência de eliminação M, J, T, L e A também poderia ser utilizada. Tanto a seqüência de eliminação M, J, T, L e A, como a seqüência de eliminação utilizada na Figura 15 (L, T, M, J e A), são consideradas seqüências de eliminações perfeitas. Uma ordem de eliminação é considerada perfeita, quando a eliminação de todos os nós não introduz fill-ins; então o grafo moral é originalmente triangulado (JENSEN, 2001). Depois de determinados os cliques e separadores, faz-se necessário construir a join tree. O procedimento é conectar os separadores (retângulos) aos cliques (elipses) com uma aresta não direcionada, de tal forma que o conjunto de nós Vj (clique) contenha o conjunto de nós Si (separador). Somente é conectado um separador a um clique, quando Si for menor do que Vj, em outras palavras, o número que denota S tem que ser menor do que o número que denota V (JENSEN, 2001). Jensen (2001, p. 176) descreve que “qualquer separador S divide o grafo em duas partes, e todos os caminhos conectando as duas partes devem passar através de S”. Cada separador somente é conectado a um clique, pois a estrutura resultante é uma árvore, e nas estruturas em árvores, um nó somente pode ser acessado por um único caminho, não pode existir múltiplos caminhos (JENSEN, 2001). Na Figura 16 é demonstrada a join tree para os cliques e separadores da Figura 15. 31 Figura 16. Join tree para cliques e separadores da Figura 15 2.3.1.4. Marginalização e normalização Antes de especificar o método de propagação de evidências em junction tree, propriamente dito, é necessário especificar o que é normalização e marginalização. Normalização é tornar proporcional as probabilidades conjuntas. O método de normalização já foi utilizado anteriormente (na Equação 21 é demonstrado um exemplo de sua utilização). Marginalização é o nome dado para o cálculo que realiza operação similar à Equação 23 (JENSEN, 2001). m1 m2 mn P A=ai=∑ ∑ ... ∑ P A=ai , B1=b m1 , B2=bm2 , ..., B n=bmn 1 1 Equação 23 1 Verifica-se que a marginalização não precisa ocorrer necessariamente para uma variável, ela pode ocorrer para um conjunto de variáveis, como demonstra Equação 24, onde n representa o número da variável que pertence ao conjunto (variáveis diferentes de A e B) e m representa o número do estado da variável Cn. As variáveis do conjunto (C1, ... , Cn) são ditas marginalizadas (JENSEN, 2001). m1 m2 mn 1 1 1 P A=ai , B=b j =∑ ∑ ... ∑ P A=ai , B=b j , C1=c m1 , C2=cm2 , ..., Cn =Cmn Equação 24 A marginalização representada na Equação 24 está na notação de somatório; contudo, ela também pode ser representada na notação de projeção. Na Equação 25 evidencia-se a notação de projeção, onde as variáveis que compõem o conjunto são marginalizadas, menos A e B (JENSEN, 2001). A , B P A , B= A , B , C1 , ..., Cn Equação 25 Para exemplificar o processo de marginalização, considere a Tabela 28. Essa tabela demonstra as P (A , L , T) e as P (A). É observado que P (A) é obtida através da marginalização, especificamente conforme a Equação 26. O procedimento é somar todas as probabilidades conjuntas que contenha Aativo, independentemente de outras combinações de estados. O processo também é realizado para ANão . Ativo 32 P Ak =∑i ∑ j P A k ,T i , L j Equação 26 Tabela 28. P (A , L , T) e P (A) L Sim A Ativo A Não Ativo T Sim 1,9*10-6 1,0*10-7 T Não 9,4810*10-4 4,9900*10-5 L Não T Sim T Não -4 5,7942*10 9,97002*10-4 1,41858*10-3 0,996004998 P (A) 0,002526422 0,997473578 A Equação 27 demonstra a marginalização da Equação 26 na notação de projeção. P A= A , T , L A Equação 27 2.3.1.5. Propagação na junction tree Inicialmente é necessário construir a junction tree a partir da join tree. Na Figura 17 é demonstrada a junction tree para a join tree da Figura 16. Na Figura 17 os separadores foram expandidos para caixas de mensagens, onde as setas indicam a direção da mensagem (JENSEN, 2001). Figura 17. Junction Tree para o problema do alarme Para demonstrar o funcionamento da propagação de evidências na junction tree, considere que foi inserida a evidência MLigou. A primeira etapa é localizar algum clique (elípse) que contenha a variável M. Na Figura 17 o clique V3 contém M. Então é utilizada a Equação 28 que atualiza as probabilidades conjuntas do clique V3 conforme a evidência MLigou. As P (A , MNão Ligou) são atribuídas com valor 0, pois não existe a possibilidade do evento MNão Ligou ocorrer. Observa-se que podem ser obtidas as probabilidades dos estados, sem necessariamente, existir evidencias instanciadas (JENSEN, 2001). P A , M Ligou =P A∣M Ligou ∗P M Ligou Equação 28 Depois de calculadas as probabilidades conjuntas para o clique V3, é necessário propagá-la pela junction tree. O procedimento é enviar mensagens (Ψx) para os separadores conectados ao clique V3. As mensagens transmitidas através dos separadores S2 e S3 são demonstradas na Figura 18. O fato de Ψ1 e Ψ2 serem a mesma mensagem é coincidência, já que a mensagem é a projeção das variáveis do clique, em função das variáveis do separador (JENSEN, 2001). 33 Figura 18. Junction Tree com transmissão de mensagens, dado a evidência MLigou Depois que V3 enviou as mensagens, o clique V2 recebe a mensagem Ψ1 e V4 recebe a mensagem Ψ2. Receber a mensagem é multiplicar a tabela de probabilidade conjunta do clique pela tabela de probabilidade conjunta transmitida pela mensagem. No caso da Figura 18, as mensagens apenas contém as probabilidades da variável A, pois foi realizada a marginalização da variável M. Após a multiplicação é necessário normalizar os cliques (JENSEN, 2001). Caso os cliques V2 e/ou V4 possuíssem outros separadores conectados, V2 e/ou V4 também deveriam encaminhar mensagens para os separadores vizinhos (menos o separador que enviou a mensagem), e esses iriam recalcular suas probabilidades conjuntas e enviariam mensagens para separadores vizinhos, e assim por diante, até que seja alcançado os cliques folhas e assim toda a junction tree seria atualizada (JENSEN, 2001). A evidência MLigou foi propagada por toda a junction tree. Então é permitido calcular as probabilidades dos estados condicionados a evidência (JENSEN, 2001). Por exemplo, para descobrir as P (L | e = MLigou), apenas seria necessário realizar V2 ↓L. A junction tree permite a instância de várias evidências. Considere a nova evidência JLigou. Inicialmente é localizado algum clique que contenha a variável J, no caso específico o clique V 4. Então são recalculadas as probabilidades conjuntas do clique V4 e depois é enviada uma mensagem para o separador S3. O clique V3 recebe a mensagem Ψ3, recalcula as probabilidades conjuntas, normaliza-as e encaminha uma mensagem para o separador S2. O clique V2 recebe a mensagem Ψ4, recalcula as probabilidades conjuntas e normaliza-as (JENSEN, 2001). Na Figura 19 é demonstrada a junction tree após esses procedimentos. Figura 19. Junction Tree com transmissão de mensagens, dado a evidência JLigou Ao término da propagação é possível calcular, por exemplo, V2↓A, que resulta nas P (A | e = MLigou , JLigou). É observado, que tanto V2↓A, V3↓A como V4↓A resultariam nas P (A | e = MLigou , JLigou). 34 2.3.2. Amostragem de Gibbs O algoritmo de propagação de evidências, amostragem de Gibbs, é uma forma particularmente conveniente da Cadeia de Markov Monte Carlo (CMMC) (RUSSELL e NORVIG, 2004). Como a amostragem de Gibbs é uma variante da CMMC, as cadeias de Markov presentes em cada variável da Rede Bayesiana devem ser ergódica (RUSSELL e NORVIG, 2004). Ainda Russell e Norvig (2004, p. 503) definem ergódicas, “em essência, todo estado tem de ser acessível a partir de qualquer outro estado e não pode haver nenhum ciclo estritamente periódico”. O algoritmo faz uso da cobertura de Markov nas variáveis. Russell e Norvig (2004, p. 502) descrevem que a cobertura de Markov em uma variável é constituída, “dos pais da variável X, os filhos Y da variável X e os demais pais das variáveis Y” 2.3.2.1. Cálculo das probabilidades dos estados O algoritmo é descrito juntamente com um exemplo. Para tal, considere a Rede Bayesiana do problema do alarme, demonstrada na Figura 6. O fluxograma do algoritmo é demonstrado na Figura 20. Inicialmente é necessário definir a cobertura de Markov para cada variável da Rede Bayesiana (RUSSELL e NORVIG, 2004). Na Tabela 29 é demonstrada a cobertura de Markov para as variáveis da Rede Bayesiana da Figura 6. Tabela 29. Cobertura de Markov para as variáveis da Rede Bayesiana da Figura 6 Variável Cobertura de Markov L TeA T LeA A L, T, J e M J A M A Depois de determinada a cobertura de Markov das variáveis, é definido um vetor com os estados aleatórios para cada variável da Rede Bayesiana (RUSSELL e NORVIG, 2004). Na Tabela 30 é demonstrado o vetor gerado com estados aleatórios, sem critério específico. Não existem evidências instanciadas. Tabela 30. Vetor com estados aleatórios para as variáveis Variável Estado Ladrão Não Terremoto Não Alarme Ativo João Não Ligou Maria Ligou Depois de definida a amostra (vetor) inicial é necessário escolher uma variável da Rede Bayesiana e calcular a probabilidade da variável condicionada à cobertura de Markov. Na Equação 29 é demonstrada a fórmula genérica para obtenção das probabilidades da variável A condicionada à cobertura de Markov. Na fórmula, ai representa um estado da variável A, mb(A) representa as variáveis da cobertura de Markov e Yj são variáveis filhos de A (RUSSELL e NORVIG, 2004). 35 Pai∣mb A =Pai∣pais A∗∏Y ∈filhos A P y i∣pais Y j j Equação 29 Com intuito de deixar mais claro o entendimento da Equação 29, na Equação 30 é demonstrada a Equação 29 adaptada para obtenção das P(L | AAtivo , TNão). É observado que os estados das variáveis da cobertura de Markov são definidos pelo vetor de amostra (antigo e/ou atual), neste caso a amostra antiga é definida na Tabela 30. Cada vetor gerado é considerado uma amostra (RUSSELL e NORVIG, 2004). P L∣A Ativo ,T Não =P L∗P A Ativo∣L ,T Não Equação 30 Figura 20. Fluxograma do algoritmo amostragem de Gibbs Depois de calculada a probabilidade de L condicionada à cobertura de Markov, essas probabilidades são normalizadas. Então é sorteado um número aleatório no intervalo de [1,0] e é verificado em qual intervalo de valores o número sorteado é enquadrado (os limites dos intervalos são 36 determinados pelas probabilidades calculadas); e assim é determinado o estado para a variável L na amostra atual (RUSSELL e NORVIG, 2004). Desta maneira, é repetido o processo para todas as variáveis da Rede Bayesiana. É observado que o estado da variável L já foi determinado na amostra atual, então os demais cálculos que necessitarem do estado de L na amostra atual, utilizariam o estado da amostra atual, e não o estado da amostra anterior. Caso não fosse ainda determinado o estado de L na amostra atual, seria utilizado o estado da amostra anterior. (RUSSELL e NORVIG, 2004) Então esse processo é repetido para n número de amostras. Ao término da amostragem, são obtidas as freqüências dos estados nas variáveis. O procedimento é contar o número de vezes que os estados das variáveis ocorreram, independentemente dos estados das outras variáveis na amostra. Uma vez determinada a freqüência dos estados nas variáveis, elas são normalizadas e assim são determinadas as probabilidades dos estados nas variáveis. (RUSSELL e NORVIG, 2004) Para demonstrar na prática, que a amostragem de Gibbs permite a propagação de evidências em Rede Bayesianas, o algoritmo foi implementado em linguagem C++, pois a amostragem de Gibbs necessita de números aleatórios e quantidade significativa de cálculos, que seria inviável realizar manualmente, ao contrário do outro algoritmo apresentado nesse trabalho. Na Tabela 31 são demonstrados os resultados obtidos pela amostragem de Gibbs (10000 amostras) para a Rede Bayesiana da Figura 6 e o erro percentual em relação a probabilidade exata esperada. Observa-se que para os estados com probabilidade exata esperada maior que 0,05, o método da amostragem de Gibbs apresentou erros aceitáveis, contudo para os estados com probabilidade exata esperada menor que 0,05, o erro aumenta significativamente. Tabela 31. Amostragem de Gibbs e erro percentual Variável Ladrão Terremoto Alarme João Maria Estado Freqüência Sim Não Sim Não Ativo Não Ativo Ligou Não Ligou Ligou Não Ligou 22 9978 17 9983 40 9960 536 9464 123 9877 Probabilidade (Gibbs) 0,0022 0,9978 0,0017 0,9983 0,0040 0,9960 0,05 0,95 0,01 0,99 37 Probabilidade (Algorit. Exato) 0,001 0,999 0,002 0,998 0,00253 0,99747 0,05215 0,94785 0,01174 0,98826 Erro (%) 120 -0,12 -15 0,03 58,10 -0,15 -4,12 0,23 -14,82 0,18 2.3.2.2. Influência do número de amostras Para determinar a influência do número de amostras na precisão numérica das probabilidades, na Figura 21 e Figura 22 são demonstrados os gráficos do erro percentual versus o número de amostras do primeiro e segundo ensaio, respectivamente, para os estados LSim e JLigou. Optou-se por essas variáveis e estados, porque Lsim possui probabilidade exata esperada menor que 0,05 e JLigou probabilidade exata esperada maior que 0,05. O motivo da repetição da mesma simulação (Figura 21 e Figura 22), é que o algoritmo amostragem de Gibbs apresenta erros percentuais significativamente diferentes entre distintos ensaios sob mesmas condições. Erro (%) 350 300 2 50 Erro (%) x Número de Amostras 300 2 00 1 50 1 00 50 0 -50 73,33 0 2 2,72 500 -20 -6,04 1000 0 7,96 -4,1 2 5000 -25 13,33 2,01 2 ,52 10000 1 5000 20000 0,74 30000 -15 -3,21 40000 Número de Amostras -8 -10,67 -2 ,01 -0,06 34 -11 0,34 -0,21 29 8,33 2 ,73 0,03 50000 75000 1 00000 1 50000 200000 300000 Ladrão = Sim João = Lig ou Figura 21. Gráfico erro (%) versus número de amostras para LSim e JLigou (1º ensaio) Erro (%) x Número de Amostras 100 80 Erro (%) 50 0 -50 -100 -19,46 20 -100 5,47 -2,97 5,85 0 4,95 20 4,99 6,67 -2 ,7 8 35 0 -0,38 -17,33 -0,75 1,5 -9 8,67 -0,63 -1 ,1 7 5,5 0,7 5 26 1,94 -100 -150 500 1 000 5000 10000 1 5000 2 0000 30000 40000 50000 Número de Amostras 75000 1 00000 1 50000 200000 300000 Ladrão = Sim João = Ligou Figura 22. Gráfico erro (%) versus número de amostras para LSim e JLigou (2º ensaio) Observa-se na Figura 21 e Figura 22 a grande discrepância entre os erros percentuais do estado Lsim para os diferentes ensaios. Para diminuir a influência da instabilidade dos resultados entre um ensaio e outro, na Figura 23 é apresentado o gráfico do erro versus o número de amostras para Lsim e JLigou, porém o valor do erro percentual é a média de 31 simulações distintas (31 simulações para cada número de amostras). 38 Erro Médio (%) x Número de Amostras Erro Médio (%) 300 257,19 250 200 150 143,66 100 50 0 -50 -19,04 6,2 4 500 2,64 1000 4,83 5000 27,98 1 0,95 1 0000 -17,84 -2 ,03 15000 -0,34 20000 10,43 -1 ,18 30000 7,35 24,22 -2,61 40000 Número de Amostras 0,91 -2,81 -0,7 2,33 1 ,06 50000 7 5000 100000 Lad rão = Sim Joã o = Ligou Figura 23. Gráfico erro médio (%) versus número de amostras para LSim e JLigou Na Figura 23 constata-se que na média os ensaios com menores números de amostras apresentam os maiores erros percentuais, especialmente para o estado LSim, pois o valor exato esperado para este estado é pequeno (0,001). Para o estado JLigou é observado uma pequena diminuição do erro com o aumento do número de amostras. Ressalta-se que a diminuição do erro não é proporcional ao aumento do números de amostras, mas o custo computacional aumenta exponencialmente com o número de amostras. Então o número de amostras utilizadas para a obtenção do melhor custo/benefício deve ser um número não tão pequeno, para poder atender ao critério de precisão numérica, porém nem tão grande, para poder atender ao critério de desempenho computacional. Para este caso específico, é observado que um número de amostras entre [5000, 15000] atinge o melhor custo/benefício. 2.3.2.3. Cálculo das probabilidades dos estados dado evidências No caso de inserção de evidências na Rede Bayesiana, o procedimento para determinar as probabilidades dos estados nas variáveis pouco difere. A diferença é que inserido um conjunto de evidências (ai , bj, cj, ...) numa numa Rede Bayesiana com n variáveis (A, B, C, ...), o primeiro vetor de amostra é iniciado com A = ai , B = bj, C = cj, ..., e não com um estado aleatório. Esses estados permanecem os mesmos até o fim da amostragem. Já as variáveis que não possuem evidências, são iniciadas com estados aleatórios e o algoritmo é aplicado normalmente. (RUSSELL e NORVIG, 2004) Russell e Norvig (2004, p. 502) consideram que o fato de um estado a i instanciado permanecer o mesmo até o fim da amostragem, como uma vantagem, pois o algoritmo “vagueia ao acaso pelo espaço de estados – o espaço de atribuições completas possíveis, invertendo uma variável de cada vez, mas mantendo fixas as variáveis de evidência”. 39 Para exemplificar, na Tabela 32 são demonstradas as probabilidades dos estados obtidas pelo método da amostragem de Gibbs (10000 amostras) e erro percentual em relação a probabilidade exata esperada. Percebe-se na Tabela 32 que a amostragem de Gibbs obteve as probabilidades dos estados com precisão numérica aceitável. Como as probabilidades exatas esperadas são maiores do que 0,05, é observado o mesmo comportamento da simulação sem evidência, onde o erro era menor para o estado em que a probabilidade exata esperada é maior que 0,05. Neste ensaio, não é possível afirmar que necessariamente a inserção de evidência melhora a precisão numérica, uma vez que não existem probabilidades exatas esperadas menores que 0,05. Tabela 32. Amostragem de Gibbs e erro percentual, dada as evidências MLigou e JLigou Variável Ladrão Terremoto Alarme João Maria Estado Freqüência Sim Não Sim Não Ativo Não Ativo Ligou Não Ligou Ligou Não Ligou 2917 7083 1711 8289 7639 2361 10000 0 10000 0 Probabilidade (Gibbs) 0,2900 0,7083 0,1711 0,8289 0,7639 0,2361 1 0 1 0 Probabilidade (Algorit. Exato) 0,28632 0,71368 0,17554 0,82448 0,76141 0,23859 1 0 1 0 Erro (%) 1,29 -0,75 -2,53 0,54 0,33 -1,04 0 0 0 0 2.3.2.4. Influência do número de amostras dado evidências Nesta seção realiza-se o estudo da influência do número de amostras no erro das probabilidades, em situações que existem evidências instanciadas. Para os ensaios são utilizadas as evidências LNão e TSim. Em função da existência de grandes discrepâncias entre o erro em diferentes simulações sem evidências instanciadas, na Figura 24 e Figura 25 são apresentados os gráficos do erro percentual versus o número de amostras do primeira e segundo ensaio, respectivamente, para os estados LNão e TSim. O objetivo é confirmar ou não o mesmo comportamento em situações em que existam evidências instanciadas. Verifica-se, na Figura 24 e Figura 25, que a instabilidade, entre ensaios distintos, é similar aos ensaios sem evidências, porém é ressaltado que as probabilidades exatas esperadas para LNão e TSim são maiores do que 0,05, região que também demonstrou maior estabilidade entre ensaios diferentes quando não existem evidências instanciadas. 40 Erro (%) x Número de Amostras 20,00 18,49 15,00 Erro (%) 10,00 5,00 -7,71 0,00 3,97 -5,00 0,18 -0,82 -3,60 3,70 3,19 2,83 -1,22 0,62 -1 ,36 3,13 0,69 0,36 0,95 -1,96 0,37 0,17 0,49 -0,2 8 0,61 0,1 9 0,42 -0,2 9 0,25 -0,01 0,2 6 -1 0,00 500 1000 5000 10000 1 5000 20000 30000 40000 50000 75000 1 00000 150000 200000 300000 Número de Amostras Terremoto = Sim La drã o = Não Figura 24. Gráfico erro (%) versus número de amostras para TSim e LNão (1º ensaio) Erro (%) x Número de Amostras Erro (%) 4,00 1,88 2 ,00 -1 1,13 0,45 1,09 0,69 -0,53 -0,28 -0,64 -0,04 -0,31 -1,67 0,72 0,64 -3,13 0,00 0,15 0,02 0,1 7 0,1 1 -0,01 0,1 4 -0,1 2 -0,09 0,02 0,89 -0,30 -2 ,00 -0,81 -0,96 -4,00 -6,00 -6,68 -8,00 -1 0,00 -12 ,00 500 1000 5000 10000 15000 2 0000 30000 40000 50000 75000 100000 1 50000 200000 300000 Número de Amostras Terremoto = Sim La drã o = Não Figura 25. Gráfico erro (%) versus número de amostras para LNão e TSim (2º ensaio) Com intuito de evitar ensaios tendenciosos e mitigar a instabilidade entre diferentes simulações, na Figura 26 é demonstrado o gráfico do erro versus o número de amostras para os estados LNão e TSim, porém o valor do erro percentual é a média de 31 simulações distintas. Erro Médio (%) x Número de Amostras Erro Médio (%) 5,00 4,00 3,00 2,09 2 ,00 1 ,00 0,00 -1 ,00 -2 ,00 2,13 0,26 4,66 500 -0,86 1000 -0,12 5000 -0,05 -0,05 0,74 10000 0,21 -0,06 15000 0,49 0,13 -0,94 20000 30000 Número de Amostras -0,07 -0,21 -0,16 -0,83 40000 50000 Ladrão = Não -0,02 0,12 -0,22 -0,47 7 5000 1 00000 Terremoto = Sim Figura 26. Gráfico erro médio (%) versus número de amostras para TSim e LNão Na Figura 26 confirma-se o comportamento do método da amostragem de Gibbs conforme a variação do número de amostras. Com pequeno número de amostras, o método apresentada os maiores erros percentuais, contudo a diminuição do erro não é proporcional ao incremento do número de amostras, então reitera-se a importância do adequado número de amostras, pois não pode ser tão 41 pequeno, para poder atender ao critério de precisão, contudo nem tão grande, para poder atender ao critério de desempenho computacional. Também é possível comparar o erro médio para estados com probabilidade exata esperada maior que 0,05. Observa-se que os ensaios apresentam erros médios similares, tanto sem como com evidências, desta forma é possível afirmar que o método da amostragem de Gibbs calcula probabilidades, na média, com precisão numérica similar em ambas circunstâncias. No ensaio sem evidência o erro médio máximo foi 6,24% enquanto que no ensaio com evidência instanciada, o erro médio máximo foi de 4,66%. 42 3. DESENVOLVIMENTO Neste capítulo apresenta-se a documentação da arquitetura do sistema e características importantes da implementação. O capítulo é dividido em três seções: visão de negócio, visão de caso de uso e por fim a visão dinâmica do sistema. 3.1. Visão de negócio Esta seção descreve sucintamente o problema envolvido, o objetivo macro a ser alcançado, a situação no início e a desejada ao término do projeto. 3.1.1. Apresentação do sistema Nome do sistema SRB (Simulador de Redes Bayesianas). Objetivo do sistema Desenvolver um sistema (shell) com ambiente visual que permita a criação e simulação de Redes Bayesianas genéricas, onde o modelo matemático para propagação de evidências é abstraído. Situação no início do projeto A Universidade não possui nenhum projeto de sistema para modelagem e simulação de Redes Bayesianas. Situação desejada Existência de um sistema de modelagem e simulação de Redes Bayesianas desenvolvido na Universidade, tanto para iniciar a produção de uma GUI completa (pois grafos de influência, redes temporais, estados contínuos, entre outros tópicos não são abordados nesse TCC), como também permitir que sejam desenvolvidos outros trabalhos a fim de estender o sistema. 3.1.2. Modelo de Requisitos Nesta seção apresenta-se o detalhamento das necessidades que o sistema precisa atender ao seu término. Os requisitos são divididos em funcionais, não funcionais e regras de negócios. Todos eles apresentam a situação, que suscita a relação entre a implementação realizada versus as características proposta, e a importância, que quantifica sua importância em prol do projeto. 3.1.2.1. Requisitos funcionais REF 001 Construção de Redes Bayesianas visuais Situação: 90% implementado e validado. Importância: Crítico. Representa uma funcionalidade essencial do ambiente computacional. Comentários: Não foi implementado o ajuste do tamanho dos objetos através da interface gráfica. O sistema deve criar Redes Bayesianas em forma de redes causais (grafos). Propor um ambiente em que possam ser: movimentadas as variáveis (elípses, barras gráficas); inseridas arestas direcionadas entre variáveis; movimentado um conjunto de objetivos visuais selecionados; alterados os nomes das variáveis; alteradas as configurações de fonte; alterado o tamanho dos objetos; e excluídos um ou grupo de objetos visuais. REF 002 Abrir/Salvar a Rede Bayesiana Situação: Não Implementado. Importância: crítica. Para fins de utilização prática, a opção de salvar e abrir Redes Bayesianas é fundamental para o ganho de produtividade. Razão: não houve tempo hábil e em função deste requisito possuir caráter secundário em relação ao objetivo marco, optou-se por implementar os requisitos mais importantes. O sistema deve permitir que seja aberto ou salvo uma Rede Bayesiana modelada. Deve ser salvo as propriedades visuais da rede causal, as probabilidades inseridas nas variáveis, configurações da rede, nome das variáveis, as arestas, enfim, todas as informações que foram atribuídas à Rede Bayesiana. Já para abrir uma Rede Bayesiana, “carrega-se” para o sistema todas as informações salvas no arquivo. REF 003 Modos de representação visual da Rede Bayesiana Situação: Implementado e validado Importância: crítico. Representa o meio principal para visualização das probabilidades a posteriori. O sistema deve permitir a visualização da Rede Bayesiana na forma de uma rede causal, como também, numa forma que seja possível ver as probabilidades dos estados no próprio grafo (barra gráfica, por exemplo). REF 004 Inserção de evidências Situação: Validado. Importância: crítico. Permite a simulação de casos. O sistema deve permitir a inserção de evidências na Rede Bayesiana de maneira visual. REF 005 Modos para cálculo das probabilidades dos estados. Situação: Validado. Importância: médio. Ferramenta para aumento da produtividade na simulação. 44 O sistema deve possuir duas maneiras de propagação de evidências: • automática: a cada alteração na Rede Bayesiana, são determinadas as probabilidades dos estados.(inserção/remoção de evidências, alteração de probabilidades condicionais ou incondicionais, inserção de novas variáveis, etc); e • manual: somente são calculadas as probabilidades dos estados quando requisitado. REF 006 Inserção/remoção estados das variáveis Situação: Parcialmente implementado e validado. Importância: crítico. Permite a criação de Redes Bayesianas genéricas. Comentários: as bibliotecas dos algoritmos suportam a inserção e remoção de estados das variáveis, entretanto a interface com o usuário para modificação está incompleta. Razão: sem tempo hábil. O sistema deve permitir que em qualquer variável sejam inseridos n estados. Também deve permitir a remoção de estados. REF 007 Probabilidades condicionais/incondicionais Situação: Parcialmente implementado e validado. Importância: crítico. As Redes Bayesianas são compostas por probabilidades. O sistema deve propor uma método para inserção das probabilidades condicionais ou incondicionais nos estados. No caso da variável ser condicionada, o sistema deve automaticamente combinar os estados dos pais e da variável, na forma de uma tabela. REF 008 Visualização de várias Redes Bayesianas simultâneas Situação: Validado Importância: baixo. Permite a simulação e/ou modelagem de várias Redes Bayesianas. O sistema deve permitir que sejam aberta n Redes Bayesianas distintas numa mesma seção do sistema. REF 009 Opções de Zoom Situação: Validado. Importância: média. Ferramenta que auxilia a visualização dos nós da Rede Bayesiana. O sistema deve implementar opções de zoom para o ambiente visual de desenho da Rede Bayesiana. 45 REF 010 Opção de desfazer/refazer/copiar/colar Situação: Não implementado. Importância: média. Otimiza o processo de modelagem. Razão: Optou-se por não implementar esse requisito em função do tempo hábil insuficiente e por tratar-se de uma necessidade de caráter secundário em relação ao objetivo. O sistema deve implementar opção de desfazer/refazer/copiar/colar para o ambiente visual de desenho da Rede Bayesiana. REF 011 Visualizar variáveis da Rede Bayesiana numa árvore Situação: Não implementado. Importância: baixa. Meio para visualização das variáveis, estados e probabilidades. Razão: Optou-se por não implementar esse requisito em função do tempo hábil insuficiente e por tratar-se de uma necessidade de caráter secundário em relação ao objetivo. O sistema deve permitir a visualização das variáveis da Rede Bayesiana numa árvore. Nesta árvore também percebe-se as probabilidades dos estados. (TreeView) REF 012 Algoritmos de propagação de evidências Situação: Amostragem de Gibbs: implementado e validado. Junction Tree: implementado, entretanto tem funcionamento parcial. Motivo: encontrou-se dificuldades quando o grafo possui domínio não triangulado. Importância: crítica. Os algoritmos permitem os cálculos das probabilidades a posteriori. O sistema deve permitir a seleção do algoritmo de propagação de evidência desejado. Algoritmos que deverão ser implementados: • Exato: junction tree; • Aproximado: amostragem de Gibbs. REF 013 Configurações para algoritmos Situação: Validado. Importância: crítica. Permite a personalização das configurações dos algoritmos. O sistema deve permitir que sejam alterados parâmetros de configuração dos algoritmos de propagação de evidências (por exemplo: número de amostras para algoritmo aproximado). 46 REF 014 Uso de abas flutuantes/ancoradas Situação: Validado. Importância: média. Permite a personalização da interface gráfica. O sistema deve implementar o uso de abas e janelas flutuantes/ancoradas. REF 015 Personalização de objetos visuais Situação: Validado. Importância: baixa. Permite a personalização do grafo. O sistema deve permitir a personalização dos objetos visuais da Rede Bayesiana. Exemplo: cores, largura das linhas, cor de fundo, etc. REF 016 Estatísticas da Rede Bayesiana Situação: Não implementado. Importância: baixa. Mensura a grandeza da Rede Bayesiana. Razão: Optou-se por não implementar esse requisito em função do tempo hábil insuficiente e por tratar-se de uma necessidade de caráter secundário em relação ao objetivo. O sistema deve mostrar as estatísticas da Rede Bayesiana (numero de nós, número de arestas e número de estados). REF 017 Inserção de comentários Situação: Validado. Importância: baixa. Documentação o significado das variáveis ou outras informações relevantes. O sistema deve permitir a inserção de comentários nas variáveis e no ambiente visual da Rede Bayesiana. REF 018 Alternar entre Redes Bayesianas distintas Situação: Validado. Importância: baixa. Simulação de várias Redes Bayesianas simultaneamente. O sistema deve permitir a alternação da Rede Bayesiana que está sendo modelada e/ou simulada. REF 019 Alinhamento de nós Situação: Validado. Importância: média. Ferramenta para organização dos nós da Rede Bayesiana. 47 O sistema deve permitir o alinhamento de um grupo de nós selecionados da Rede Bayesiana. Modos: alinhar para esquerda; centralizar verticalmente; alinhar para direita; alinhamento superior; alinhamento inferior; centralizar horizontalmente; distribuir verticalmente e distribuir horizontalmente; REF 020 Posicionamento das janelas das distintas Redes Bayesianas Situação: Validado. Importância: baixa. O sistema deve permitir forma de auto organizar as janelas das diferentes Redes Bayesianas abertas. Modos: distribuição vertical; distribuição horizontal; auto organizar (organiza janelas na forma de uma matriz) e distribuição em cascata; 3.1.2.2. Requisitos não funcionais RNF 001 Sistema Operacional Windows XP e Vista Situação: Validado. O sistema deve funcionar nos sistemas operacionais Windows XP e Windows Vista. RNF 002 Implementação em C++ Situação: Validado. O sistema deve ser codificado em linguagem C++. RNF 003 Uso das bibliotecas do QT Situação: Validado. O sistema deve usufruir dos recursos gráficos oferecidos pelas bibliotecas de código aberto do QT (TrollTech), principalmente para interface gráfica. 3.1.2.3. Regras de negócio RN 001 Verificação de grafos cíclicos Situação: Não implementado. O sistema não deve permitir a modelagem de grafos cíclicos. RN 002 Verificar probabilidades Situação: Não implementado. Razão: A implementação dessa regra de negócio não foi executado em razão da interface gráfica para inserção das probabilidades estar incompleta. 48 O sistema deve verificar se as probabilidades atribuídas aos estados de uma variável respeitam as regras. Se as probabilidades forem: • incondicionais: a soma das probabilidades dos estados devem ser igual a 1. • condicionais: a soma das probabilidades dos estados, para cada combinação de estados dos pais, devem ser igual a 1. RN 003 Número mínimo de estados = 2 Situação: Validado. O sistema não deve permitir a utilização de variáveis que possuam menos que 2 estados. RN 004 Estados discretos nas variáveis Situação: Validado. O sistema apenas utiliza estados discretos nas variáveis. 3.2. Visão de Caso de Uso Nesta seção apresenta-se o ator, as telas e os Casos de Uso do sistema. 3.2.1. Ator do sistema: Projetista Projetista é quem desenvolve o modelo conceitual e/ou quem realiza simulações da Rede Bayesiana. 3.2.2. Telas do sistema TEL 001 Tela de desenho e simulação (TFMain) Na Figura 27 apresenta-se o protótipo final da tela de desenho e simulação do sistema. Percebe-se que esta tela é encarregada pela maioria das funcionalidades visíveis ao projetista. TEL 002 Tela para configuração da Rede Bayesiana (TFBNProperties) Na Figura 28 (a) revela-se o protótipo da tela de configurações da Rede Bayesiana. Esta tela permite ao projetista alterar o nome, configurar o número de amostras para o algoritmo de simulação, inserir a descrição e apresenta o sumário da Rede Bayesiana. TEL 003 Tela para configuração do nó (TFNodeProperties) Na Figura 28 (b) verifica-se o protótipo da tela para configuração de um nó. Esta tela tem por objetivo permitir a configuração das probabilidades a priori, do número de estados, do nome da variável, do comentário, das opções visuais do nó na área de desenho (aba formato) como também apresenta as probabilidades dos estados com precisão máxima. 49 Figura 27. Tela de desenho e simulação (TFMain) (a) (b) Figura 28. Telas para configurações: (a) TFBNProperties ; (b) TFNodeProperties 3.2.3. Casos de Uso Na Figura 29 são demonstrados os casos de uso do sistema. O sistema basicamente é constituido por três grandes funcionalidades, abrir/salvar ou iniciar um novo projeto, modelar e simular. Verifica-se que o caso de uso modelar abrange a maior parte das funcionalidades que envolvem a construção da Rede Bayesiana, enquanto que o caso de uso Simular é responsável pelos cálculos das probabilidades a posteriori (os algoritmos). Já o caso de uso Nova/Abrir Rede Bayesiana tem caráter auxiliar, principalmente para aumento da produtividade. Os fluxos dos casos de uso são apresentados no apêndice A. 50 Figura 29. Casos de Uso 3.3. Visão dinâmica Nesta seção descrevem-se os pacotes, os componentes, os diagramas de classe para cada componente, a descrição da utilidade de cada classe implementada, diagramas de atividade para comportamentos na ferramenta de desenho de grafos e por fim o detalhamento da implementação do algoritmo Junction Tree. 3.3.1. Pacotes do sistema Nesta seção apresentam-se os quatros principais pacotes do sistema. Na Figura 30 (a) revelamse os pacotes Desenho, Interface Gráfica e Motor da RB, os quais representam as funcionalidades perceptíveis ao projetista. Com intuito de que os pacotes das funcionalidades trabalhem em harmônia e de maneira independente (reduzir o acoplamento), existe o pacote Controladora que serve como interface de comunicação entre os pacotes. (a) (b) Figura 30. Pacotes do sistema: (a) pacotes da visão macro; (b) pacotes do Motor da BN Para facilitar a compreensão da utilidade do pacote Controladora, observe a Figura 28. Esta figura demonstra a tela principal do sistema e nela verifica-se a presença de três Redes Bayesianas distintas abertas na interface de desenho. As três representam instancias distintas para o comportamento do pacote controladora. 51 Em função da necessidade de desenvolver algoritmos desacoplados que possam ser utilizados em outras aplicações, optou-se por dividir o pacote do Motor da RB em outros quatros pacotes, como mostra a Figura 30 (b). Este pacote foi projetado para que possam ser adicionados novos algoritmos com apenas a adição dos pacotes que definem o comportamento do algoritmo. Para atingir esse objetivo, foi desenvolvido dois pacotes de uso geral para os algoritmos, eles são: 1. Topologia da RB: representa a estrutura da topologia da Rede Bayesiana, as probabilidades condicionais/incondicionais das variáveis, as probabilidades dos estados, definição da relação pai filho, tipo de algoritmo, entre outras funcionalidades; e 2. Controladora de Algoritmo: cria uma interface genérica entre os algoritmos e a topologia da rede. Verifica-se que o pacote somente tem uma entrada, a topologia da RB, independentemente do algoritmo utilizado. A fim auxiliar a compreensão do fluxo de dados entre os diferentes pacotes do sistema, na Figura 31 (a) revela-se o diagrama de componentes para os pacotes do sistema na visão macro e na Figura 31 (b) apresenta-se o diagrama de componentes para o pacote Motor da BN. Verifica-se que o nome das interfaces são as classes que realmente fornecem a interface entre o conjunto de classes do componente com o exterior. Por exemplo, um comportamento do componente interface gráfica nunca acessa um comportamento do componente Desenho diretamente. Para que ocorra troca de mensagens entre os dois componentes, necessita-se o intermédio do pacote Controladora. (a) (b) Figura 31. Diagramas de componentes: (a) visão macro; (b) Motor da RB 3.3.2. Diagramas de classe por componente Nesta seção apresentam-se os diagramas de classe para cada componente da visão macro do sistema, além da breve descrição da utilidade das classes. 52 Componente: Interface gráfica Na Figura 32 visualiza-se o diagrama de classe para o componente que contem os comportamentos da interface gráfica do sistema. Observa-se que as classes herdam outras classes que não são demonstradas no diagrama. Essas classes pertencem ao conjunto de classes das bibliotecas do QT, as quais permitem a construção de interfaces gráficas customizadas. A seguir, descrevem-se as principais características das classes do componente: • TFBNProperties: meio para alteração de configurações pertinentes da Rede Bayesiana; • TFNodeProperties: permite a realização de alterações das configurações das propriedades das variáveis (nós); • TFileInterface: responsável por abrir e/ou salvar a Rede Bayesiana num arquivo; e • TFMain: fornece uma interface homem máquina para as principais funcionalidades do sistema (conjunto de ferramentas); Figura 32. Diagramas de classe para o componente Interface Gráfica Componente: Desenho Na Figura 33 revela-se o diagrama de classe do componente Desenho. Percebe-se que algumas classes possuem heranças de outras classes que não estão presentes no diagrama. Essas classes são fornecidas pelas bibliotecas gráficas do QT. Por exemplo, a classe TEllipseDrawing herda a classe QGraphicsPolygonItem, que é uma classe que contem os comportamentos necessários para o desenho de polígonos genéricos. Reitera-se que esse componente somente tem por objetivo representar a Rede Bayesiana numa forma visual. Este componente não implementa os comportamentos necessários para a execução dos algoritmos, entretanto a classe TScene (a interface do componente) emite eventos quando ocorrem alterações na topologia do grafo na área de desenho. Esses eventos são de suma importância para que o componente Topologia da RB seja atualizado conforme as alterações que o projetista realiza na Rede Bayesiana. Entretanto na visão do projetista, este componente aparenta desenhar a Rede 53 Bayesiana e realizar a propagação das evidências, mas a propagação das evidências necessariamente ocorre em outro componente. Figura 33. Diagramas de classe para o componente Desenho A seguir são descritas as principais características das classes do componente da Figura 33: • TScene: classe responsável pela apresentação visual dos polígonos na área de desenho e serve como interface de saída do componente. Também é responsável pela gerência dos eventos provenientes do mouse, entre outras funcionalidades da área de desenho. Esta classe gerencia os comportamentos implementados para a representação da Rede Bayesiana na forma de um grafo; • TRectSelection: permite o desenho de um retângulo de tamanho genérico. Esta classe é utilizada pela classe TScene para implementar o comportamento da seleção de polígonos na área de desenho; • TAlign: executa ações de alinhamento entre polígonos de qualquer formato; • TArrow: gera o desenho de uma aresta direcionada entre dois pontos. Essa classe é tanto utilizada na ferramenta de adição de arestas entre nós como na inserção de arestas permanentes entre nós; • TNodeArrow: gera o desenho de uma aresta entre as bordas dos polígonos de dois nós. Verifica-se que essa classe é compatível com qualquer formato de polígono suportado pela classe TNode; • TResizeDrawing: responsável pelo desenho do retângulo que funciona como ferramenta de alteração das dimensões do polígono; 54 • TResizeBoundingRect: insere oito ou menos TResizeDrawing dispostos simetricamente ao redor de um polígono. Eles representam a ferramenta completa para alteração das dimensões do desenho; • TDrawingSelection: responsável pelo desenho de um retângulo pontilhado ao redor de de um polígono. Neste sistema o retângulo reitera que o desenho está selecionado; • TResizeRect: em funções das classes TDrawingSelection e TResizeBoundingRect estarem associadas aos mesmos comportamentos, criou-se uma interface genérica que controla o comportamento de ambas as classes. • TStatesDrawing: responsável pelo desenho do nome do estado, valor da probabilidade e barra de gráfica; • TText: escreve um texto na área de desenho que respeite as dimensões do polígono no qual o texto está contido. Se o texto ultrapassar o tamanho de alguma borda do polígono, automaticamente o texto é ajustado para que ele fique totalmente contido dentro do polígono; • TBarChart: desenha o nó na forma de barra gráfica. Essa classe desenha o polígono que representa visualmente as probabilidades dos estados da variável; • TEllipseDrawing: desenha o nó em forma de elipse, conforme as especificações das redes causais; • TNodeDrawing: interface genérica para controle das características dos polígonos que representam a variável da Rede Bayesiana na interface de desenho; e • TNode: interface genérica que permite o controle de todas as características associadas ao polígono que representa a variável da Rede Bayesiana na interface de desenho. Componente: Motor da RB Na Figura 34 revela-se o diagrama de classe para o componente Motor da RB. Verifica-se que esse diagrama contém classes pertentes a quatro componentes. Adotou-se essa representação para que seja possível visualizar o projeto das classes na integra. Uma característica importante da implementação separada do componente Motor da RB é o desacoplamento em relação a interface gráfica. Da forma pela qual foi projetado o componente, permite-se sua reutilização em outros projetos, desde que algumas bibliotecas do QT sejam incluídas no projeto, pois em função da necessidade de rápida implementação dos algoritmos, optou-se por utilizar algumas classes do QT que fornecem controle listas e permitem a geração de eventos personalizáveis, entretanto criou-se uma dependência. 55 Figura 34. Diagramas de classe para o componente Motor da RB Segue a baixo as principais considerações sobre as classes do componente: • TMatrix: permite o uso de matrizes adequadas ao contexto das Redes Bayesianas; • TNodeProbs: representa todas as características relevantes de uma variável da Rede Bayesiana, como por exemplo: probabilidades a priori, evidências, estados, nome da variável, lista com os nós pais e filhos entre outros. Também oferece métodos para operações matemáticas; • TTopology: lista com todos os nós da Rede Bayesiana, tipo de algoritmo, entre outras características. Os algoritmos implementados utilizam uma instância dessa classe como base para a execução do comportamento; • TBNAlgorithm : interface genérica para o uso dos algoritmos de propagação de evidências. Para que exista a abstração da implementação dos algoritmos, esta classe somente implementa três métodos públicos, o construtor, o destruidor e o método calc(); • TJunctionTree: interface genérica para os cálculos das probabilidades a posteriori quando utilizado o algoritmo Junction Tree; • TMoralNode: representa os nós da Rede Bayesiana, entretanto os nós são adaptados para grafos morais (arestas não direcionadas); • TMoralTopology: lista de nós que compõem o grafo moral da Rede Bayesiana. Esta classe determina as conexões morais, triangulariza grafos, determina a ordem de eliminação, cliques entre outras funcionalidades; • TClique: conjunto de nós que formam o clique. Esta classe fornece comportamentos necessários para a correta execução do algoritmo Junction Tree; • TSeparator: conjunto de nós do Clique que constituem o separador; 56 • TJoinSet: conjunto formado por um clique e separador com o mesmo identificador. Esta classe é responsável pela transmissão de mensagens entre os diferentes cliques e separadores, além de executar operações matemáticas necessárias para a propagação de evidências na Junction Tree; Componente: Controladora Na Figura 35 revela-se o diagrama de classe para o componente Controladora. Além das classes pertencentes ao componente, apresentam-se classes de outros componentes, as quais fazem interface com o componente atual. O objetivo é fornecer uma visão da interface entre os diferentes componentes do sistema. Ressalta-se que a TUniqueName não é uma classe pertinente ao objetivo do componente Controladora, ela apenas foi adicionada ao diagrama da Figura 35 por conveniência. Ainda observa-se que SRBEnum não é uma classe, mas sim um header que contem todos os enumeradores utilizados no sistema. Adotou-se essa alternativa afim de centralizar a declaração dos enumeradores do sistema. Figura 35. Diagrama de classe para o componente Controladora Segue a baixo as principais considerações sobre as classes do componente: • TUniqueName: funciona como um gerador de nomes únicos, de grande valia quando inserido um novo nó ou quando criada uma nova Rede Bayesiana (não podem existir variáveis com o mesmo nome); e • TFBN: é uma classe que serve de intermédio entre todas as funcionalidades oferecidas pelos diferentes componentes do sistema. 3.3.3. Diagramas de atividade da interface de desenho Nesta seção apresentam-se os diagramas de atividade para os principais comportamentos da interface de desenho da Rede Bayesiana. Na Figura 36 revela-se o diagrama para a inserção de arestas entre nós distintos e na Figura 37 mostra-se o diagrama de atividade para a seleção e movimentação dos desenhos. 57 Com intuito de facilitar a compreensão dos diagramas observe a Figura 27. Nesta figura verifica-se uma das etapas de inserção de arestas, especificamente entre os nós Ladrão e Alarme. Ainda observe que o nó Alarme está selecionado. Figura 36. Diagrama de atividade para a ferramenta de inserção de arestas entre nós Figura 37. Diagrama de atividade para a ferramenta de seleção 58 3.3.4. Algoritmos para propagação de evidências Nesta subseção apresenta-se a documentação do algoritmo Junction Tree. A documentação referente ao algoritmo amostragem de Gibbs não é detalhado em função da sua implementação representar fielmente o fluxograma da Figura 20. Junction Tree O algoritmo para propagação de evidências em Redes Bayesianas Junction Tree, conforme o projeto especificado, pode ser visto no fluxograma da Figura 38, que representa a visão macro do funcionamento do algoritmo. Figura 38. Visão macro da implementação do algoritmo JunctionTree Em função da complexidade de algumas atividades do algoritmo, elas são separadas individualmente em fluxogramas distintos. Na Figura 39 verifica-se o fluxograma do processo de triangulação de grafos, independentemente do grafo ser originalmente triangulado ou não. O processo divide-se basicamente em duas etapas: na primeira determinam-se as conexões morais entre os nós do grafo G e a segunda determina-se a ordem de eliminação. Caso o grafo G' não for originalmente triangulado, adicionamse os fill-ins necessários para transforma-lo num grafo triangulado. Na Figura 40 revela-se o fluxograma para criar os cliques e separadores da Join Tree a partir do grafo G moral triangulado. Em função do grafo G de entrada ser triangulado e de ser conhecida uma ordem de eliminação, não necessita-se verificar se o nó é simplicial antes de elimina-lo. O processo caracteriza-se por eliminar os nós simplicials e formar um novo clique e separador a partir das famílias desses nós, entretanto somente se a família do nó que foi eliminado não estiver contido em outro clique. Se a família do nó estiver contido em outro clique, apenas elimina-se o nó. 59 Figura 39. Triangular o grafo G Figura 40. Determinar os cliques e separadores Na Figura 41 verifica-se o fluxograma para conexão dos separadores aos seus respectivos cliques (construção da Join Tree). Para o correto funcionamento desta etapa, necessita-se que a lista, que contém os cliques e separadores, esteja ordenado crescentemente conforme o número do identificador. A ordenação é importante, pois para qualquer separador (menos o último clique, pois ele não tem separador) sempre existe um clique que contem todos os nós do separador e ele necessariamente deve possuir um identificador de maior valor. Ressalta-se que um separador somente conecta-se a um único clique de identificador superior, entretanto vários separadores podem estar conectados a um mesmo clique. 60 Figura 41. Conectar os separadores aos seus respectivos cliques 61 4. SIMULAÇÕES Este capítulo visa documentar os resultados obtidos com a implementação dos algoritmos Amostragem de Gibbs e Junction Tree, através de um caso. Com intuito de possuir um mesmo referencial de comparação entre os diferentes resultados e simulações, adotou-se a Rede Bayesiana para análise de merecimento do crédito como base para todas as simulações realizadas. Na primeira seção apresenta-se a Rede Bayesiana adotada para as simulações. A segunda seção revela a documentação dos resultados e simulações pertinentes ao algoritmo Amostragem de Gibbs e, por último, a documentação dos resultados e simulações do algoritmo Junction Tree. 4.1. Rede Bayesiana para análise do merecimento do crédito Adotou-se a Rede Bayesiana para análise do merecimento do crédito, visível na Figura 42, como base para todas as simulações, em função da sua topologia com redes convergentes, pelo número de estados, pelo número de arestas e principalmente por tratar-se de um grafo de domínio não triangulado (se considerado arrestas não direcionadas), especialmente importante para simulações com o algoritmo Junction Tree. Figura 42. Rede Bayesiana para análise do merecimento do crédito Verifica-se que as simulações visam o teste da capacidade de cálculos das probabilidades a posteriori para ambos os algoritmos em circunstâncias sem e com múltiplas evidências instanciadas. A capacidade do modelo em representar a relação de causa e efeito real e os valores das probabilidades condicionais e incondicionais não são criticados, pois o objetivo é realizar as críticas necessárias sobre as implementações dos algoritmos e não o domínio do problema. As probabilidade a priori adotadas na Rede Bayesiana para análise do merecimento do crédito são demonstradas no apêndice B. 62 4.2. Amostragem de Gibbs Nesta seção apresentam-se os resultados pertinentes ao algoritmo Amostragem de Gibbs, quando utilizada a Rede Bayesiana para análise do merecimento do crédito. As simulações, resultados e comentários são divididos em quatro sub-seções. Na primeira relata-se a simulação da Rede Bayesiana sem a presença de evidências, a segunda com múltiplas evidências, a terceira visa a influência do número de amostras e a última corresponde aos comentários sobre o desempenho computacional. 4.2.1. Simulação sem evidências Esta simulação visa demonstrar a capacidade do algoritmo em calcular as probabilidades a posteriori quando não existem evidências instanciadas na Rede Bayesiana. Na Tabela 33 são apresentadas as probabilidades a posteriori calculadas pelo algoritmo amostragem de Gibbs (5000 amostras), as probabilidades exatas (obtidas no software GeNIe com o algoritmo Clustering) e o erro percentual da probabilidade em relação ao valor exato. Constata-se que na maioria dos estados, o erro encontrou-se no intervalo de [-5%,+5%]. O maior erro encontrado foi de aproximadamente 13,6%, no estado Baixo da variável Valor. No outro extremo, verificou-se que o valor da probabilidade para estado Não aceitável da variável Histórico de pagamento foi idêntico ao valor exato. Como previsto na teoria, este algoritmo apresenta probabilidades a posteriori aproximadas, entretanto os resultados obtidos são plausíveis com os valores exatos esperados. 63 Tabela 33. Probabilidades a posteriori e erro Nome da variável Probabilidade Probabilidade (Gibbs) (Algorit. Exato) 0,3394000 0,3333333 0,3178000 0,3333333 0,3428000 0,3333334 0,3522000 0,3333333 0,3242000 0,3333333 0,3236000 0,3333334 0,4570000 0,4667778 0,5430000 0,5332222 0,3194000 0,3333333 0,3340000 0,3333333 0,3466000 0,3333334 0,5650000 0,5861489 0,2188000 0,2235270 0,2162000 0,1903241 0,3338000 0,3333333 0,3292000 0,3333333 0,3370000 0,3333334 0,6726000 0,6815710 0,3274000 0,3184290 0,2488000 0,2500000 0,2522000 0,2500000 0,2500000 0,2500000 0,2490000 0,2500000 0,2584000 0,2500000 0,2516000 0,2500000 0,2458000 0,2500000 0,2442000 0,2500000 0,4412000 0,4472768 0,5588000 0,5527232 0,3398000 0,3333333 0,3252000 0,3333333 0,3350000 0,3333334 0,5228000 0,5405550 0,4772000 0,4594450 Nome do estado a0_11100 a11101_25900 a25901_mais s0_30000 Receitas s30001_70000 s70001_mais Favorável Taxa: débitos/receitas Desfavorável Saudáveis Ativos Médios Poucos Alto Valor Médio Baixo Muito rentável Profissão Rentável Pouco rentável Promissora Receitas futuras Não promissora Excelente Aceitável Histórico de pagamento Não aceitável Sem referência Estável Não estável Histórico de trabalho Sem trabalho, justificado Sem trabalho, não justificado Confiável Confiabilidade Não confiável a16_21 Idade a22_65 a66_mais Positivo Merecimento de crédito Negativo Débito Erro (%) 1,8200102 -4,6599905 2,8399794 5,6600106 -2,7399903 -2,9200194 -2,0947400 1,8337160 -4,1799904 0,2000100 3,9799792 -3,6081079 - 2,1147372 13,5956991 0,1400100 -1,2399901 1,0999798 - 1,3162189 2,8172575 - 0,4800000 0,8800000 0,0000000 - 0,4000000 3,3600000 0,6400000 -1,6800000 -2,3200000 - 1,3586245 1,0994314 1,9400102 -2,4399902 0,4999799 - 3,2845871 3,8644451 4.2.2. Simulação com múltiplas evidências Nesta simulação relata-se o comportamento da precisão numérica das probabilidades a posteriori quando inserida múltiplas evidências na Rede Bayesiana. As evidências instanciadas na Rede Bayesiana foram dispostas nas variáveis conforme a Tabela 34. Verifica-se que as evidências instanciadas foram dispostas a fim de maximar o número de propagações em rede convergentes e para que algumas probabilidades exatas sejam menores do que 0,05. O objetivo é explorar o comportamento do algoritmo em extremos e comparar o resultados da implementação algoritmo que suporta topologias genéricas com o resultados do algoritmo estático, apresentado na Fundamentação Teórica. 64 Tabela 34. Evidências instanciadas Nome da variável Valor Taxa: débitos/receitas Merecimento do crédito Estado em que foi atribuída a evidência Baixo Favorável Negativo O motivo da busca de estados com probabilidades menores do 0,05 é que nas simulações com o algoritmo estático, verificou-se a presença dos maiores erros percentuais em estados em que as probabilidades a posteriori exatas eram menores do que 0,05. Os resultados obtidos com a simulação com múltiplas evidências são demonstrados na Tabela 35. Verifica-se que para a maioria das probabilidades a posteriori, o erro encontra-se no intervalo de [-5%, +8%], que de certa forma, representa a mesma tendência de erro encontrada na simulação sem evidências. Constata-se que o estado Saudáveis da variável Ativo apresentou o maior erro percentual, aproximadamente 43,6%, o qual representa um erro percentual significativo. Por outro lado, o erro absoluto da probabilidade desse estado é de 0,0019 (0,19%), que para este caso é pouco significativo. Com intuito de reforçar a necessidade de cautela na interpretação dos erros percentuais, considere o estado Estável da variável Histórico de Trabalho. O erro percentual para este estado é de aproximadamente 5,5% e o erro absoluto da probabilidade é de 0,0117 (1,17%). Verifica-se então que o erro percentual do estado Saudáveis da variável Ativo é maior do que erro do estado Estável da variável Histórico de Trabalho, entretanto o erro absoluto associado ao estado Estável é mais significativo do que o erro em Saudável, conforme o ponto de vista do autor. Ainda em relação aos resultados apresentados na Tabela 35, verifica-se a presença da mesma tendência de erro encontrada nas simulações com o algoritmo estático, apresentado no capítulo da fundamentação teórica. Nesta tendência, constatou-se que o erro percentual aumenta consideravelmente conforme a diminuição da probabilidade a posteriori exata prevista para o estado. Na Tabela 35 observa-se que os dois maiores erros percentuais (em modulo) estão associados a estados em que a probabilidade a posteriori exata esperada é menor do que 0,05. Entretanto não é possível afirmar que necessariamente que todas as probabilidades a posteriori menores do que 0,05 tenham os maiores erros, pois na Tabela 35 visualiza-se casos que afirmam o contrário. Mas pode-se afirmar que existe uma tendência de aumento do erro quando a probabilidade a posteriori exata do estado é inferior a 0,05. 65 Tabela 35. Probabilidades a posteriori e erro – múltiplas evidências Nome da variável Probabilidade (Gibbs) 0,9190 0,0612 0,0198 0,8280 0,1444 0,0276 1,0000 0,0000 0,0062 0,3746 0,6192 0,0000 0,0000 1,0000 0,2598 0,3268 0,4134 0,2444 0,7556 0,1930 0,2256 0,3248 0,2566 0,2226 0,2518 0,2386 0,2870 0,2542 0,7458 0,3152 0,2532 0,4316 0,0000 1,0000 Nome do estado a0_11100 a11101_25900 a25901_mais s0_30000 Receitas s30001_70000 s70001_mais Favorável Taxa: débitos/receitas Desfavorável Saudáveis Ativos Médios Poucos Alto Valor Médio Baixo Muito rentável Profissão Rentável Pouco rentável Promissora Receitas futuras Não promissora Excelente Aceitável Histórico de pagamento Não aceitável Sem referência Estável Não estável Histórico de trabalho Sem trabalho, justificado Sem trabalho, não justificado Confiável Confiabilidade Não confiável a16_21 Idade a22_65 a66_mais Positivo Merecimento de crédito Negativo Débito Probabilidade (Algorit. Exato) 0,9179 0,0639 0,0183 0,8251 0,1468 0,0282 1,0000 0,0000 0,0043 0,3643 0,6314 0,0000 0,0000 1,0000 0,2433 0,3341 0,4226 0,2394 0,7606 0,1961 0,2274 0,3222 0,2544 0,2109 0,2612 0,2446 0,2833 0,2535 0,7465 0,3228 0,2547 0,4225 0,0000 1,0000 Erro (%) 0,1216 -4,1709 8,4795 0,3562 -1,6208 -1,9907 0,0000 0,0000 43,5837 2,8333 -1,9327 0,0000 0,0000 0,0000 6,7949 -2,1820 -2,1863 2,0839 -0,6559 -1,5628 -0,7998 0,8223 0,8783 5,5291 -3,6080 -2,4398 1,3160 0,2833 -0,0962 -2,3468 -0,5999 2,1546 0,0000 0,0000 4.2.3. Influência do número de amostras Esta sub-seção visa descrever a influência do número de amostras na precisão numérica das probabilidades a posteriori. Nesta simulação emprega-se a mesma Rede Bayesiana e conjunto de evidências utilizadas na simulação com múltiplas evidências. Na Figura 43 revela-se o gráfico com o erro percentual médio e máximo para as simulações com diferentes números de amostras. Para o cálculo do erro médio, realizou-se a média dos módulos dos erros de cada estado de cada variável da Rede Bayesiana, conforme pode ser visto na Equação 31. O erro máximo também é um valor absoluto (módulo). 66 n Erro médio= ∑1 ∣erro do estadon ∣ Equação 31 n Erro (%) Erro médio e máximo conforme o número de amostras 45 40 35 30 25 20 15 10 5 0 38,95 30,52 26,04 26,6 2 2,8 19,65 15,7 9 6,59 500 4,73 1000 3,84 2 000 2,99 2 ,44 3000 2,2 7 4000 5000 13,01 12 1 0,7 8 2 ,43 7500 8,5 2,35 10000 Número de amostras 1,04 1 ,1 3 6,1 8 1,09 0,77 2 0000 30000 40000 50000 Erro mé dio (%) Erro má ximo (%) Figura 43. Erro médio e máximo conforme o número de amostras Ainda na Figura 43, percebe-se a diminuição do erro médio conforme o aumento do número de amostras, entretanto a diminuição do erro não é proporcional ao aumento do esforço computacional necessário para os cálculos das probabilidade a posteriori, mas o esforço computacional aumenta exponencialmente conforme o acréscimo do número de amostras. Reitera-se que uma conclusão similar foi apresentada quando utilizado o algoritmo estático. O mesmo comportamento, diminuição do erro conforme o acréscimo do número de amostras, verifica-se para o erro máximo da Figura 43, entretanto percebe-se oscilações conforme o aumento do número de amostras, mas a tendência é a diminuição do erro máximo. Yuan e Druzdzel (2004) também verificaram a mesma tendência de diminuição sucinta do erro conforme o aumento do número de amostras. 4.2.4. Desempenho Nesta sub-seção pretende-se documentar aspectos sobre o desempenho computacional do algoritmo Amostragem de Gibbs. Para as simulações, emprega-se a mesma Rede Bayesiana e conjunto de evidências utilizadas na simulação com múltiplas evidências. Com intuito de comprovar que o esforço computacional aumenta exponencialmente e o erro diminui sucintamente com o acréscimo do número de amostras, na Figura 44 revela-se o gráfico do erro percentual médio e tempo de execução versus número de amostras. Observe que o erro percentual é calculado conforme a Equação 31, a escala de tempo é segundos e os eixo x e y estão representados na forma logarítmica. Realizou-se a coleta dos tempos de execução na mesma plataforma de hardware, sob o mesmo sistema operacional e condições de ensaio. 67 10,91 Valor (% ou segundos) Erro percentual e tempo de execução versus número de amostras 10 8,73 8 6,59 6 6,71 4,73 4 2 0,11 3,84 0,22 0,43 4,86 2,99 2 ,44 2,27 0,66 0 0,88 500 1,1 2,43 1,66 2,44 2 ,35 1 ,04 1 ,1 3 0,77 1,09 5000 Número de amostras 50000 Erro mé dio (%) Tempo (s) Figura 44. Erro médio e tempo de execução versus número de amostras Reitera-se que o desempenho computacional para o algoritmo amostragem de Gibbs não somente depende do número de amostras, mas também do número de variáveis, arestas e estados, enfim, quanto maior for a Rede Bayesiana, maior esforço computacional necessita-se para obtenção das probabilidades a posteriori. Percebe-se a necessidade do uso adequado do número de amostras, pois se o número for insuficiente, os erros associados tornam os resultados insatisfatórios, por outro lado busca-se não utilizar grandes quantidades de amostras, pois o esforço computacional pode ser proibitivo sem grandes melhorias na precisão numérica dos resultados. Quando empregado este algoritmo, deseja-se utilizar uma quantidade de amostras que apresente o melhor custo/benefício na relação precisão dos resultados e esforço computacional. Através do gráfico da Figura 44 constata-se que o algoritmo amostragem de Gibbs não é a solução mais adequada para os cálculos das probabilidades a posteriori em Redes Bayesianas, pois além de se tratar de um algoritmo com solução aproximada, o fator desempenho torna proibitivo o uso do algoritmo para grandes Redes Bayesianas. Ressalta-se que a Rede Bayesiana empregada nas simulações deste trabalho é de pequeno porte. Yuan e Druzdzel (2004) também verificam que o algoritmo amostragem de Gibbs demonstra desempenho insatisfatório quando empregado na resolução de probabilidades a posteriori em Redes Bayesiana de grande tamanho ou mesmo se comparado com outros algoritmos. 4.3. Junction Tree Nesta seção apresenta-se todo o processo pertinente à propagação de evidências, na Rede Bayesiana de análise de merecimento de crédito, quando utilizado o algoritmo Junction Tree. Antes de necessariamente apresentar os valores das probabilidades a posteriori, demonstra-se todo o processo necessário para a construção da Junction Tree. Na primeira sub-seção revela-se o processo de transformação do grafo direcionado acíclico num grafo moral. Na segunda, apresenta-se o 68 processo de triangulação do grafo moral. Na terceira, verifica-se a metodologia para a criação da Join Tree. Na quarta revela-se os resultados obtidos com a simulação sem evidência. Na sexta os resultados da simulação com múltiplas evidências instanciadas e, por último, os comentários finais da implementação. 4.3.1. Grafo moral Esta sub-seção visa demostrar o resultado obtido no processo de transformação do grafo direcionado acíclico num grafo moral (não direcional). Na Figura 45 revela-se o grafo moral para a Rede Bayesiana da análise do merecimento do crédito. Verifica-se que as arestas direcionadas do grafo foram transformadas em não direcionais e que as conexões morais foram determinadas. Observe que as arrestas provenientes das conexões morais são apresentadas com linhas tracejadas, afim de que o leitor discirna as arestas originais das conexões morais. Figura 45. Grafo moral 4.3.2. Triangulação Nesta sub-seção verifica-se o resultado do processo de triangulação do grafo moral e a determinação da ordem de eliminação. Conforme observado anteriormente, a topologia da Rede Bayesiana da análise do merecimento do crédito não forma um grafo de domínio triangulado. De qualquer forma, para o processo de triangulação desenvolvido, não necessita-se saber se o grafo possui ou não domínio triangulado, pois a necessidade de eliminação de nós não simplicials ocorre naturalmente. Então, ao aplicar o procedimento, determina-se a seguinte ordem de eliminação, antes de eliminar um nó não simplicial: Ativos, Débitos, Profissão, Histórico de Pagamento, Histórico de Trabalho, Merecimento do crédito, Idade e Confiabilidade. Desta forma, ainda restam quatro nós não simplicials no grafo moral, conforme percebe-se na Figura 46 (a). 69 (a) (b) Figura 46. (a)grafo moral de domínio não triangulado; (b) grafo moral com fill-in Com intuito de eliminar um nó não simplicials, utiliza-se a heurística que escolhe o nó que tem o menor valor do produtório do número de estados da família. Para este caso específico, os nós Valor e Taxa: débitos/receitas possuem o mesmo valor, então, elimina-se o primeiro, que para este caso é o nó Valor. Depois de eliminado o nó não simplicial Valor, necessita-se inserir os fill-ins, que nada mais são do que arestas não direcionadas entre todos os membros da família do nó eliminado ainda presentes no grafo. Na Figura 46 (b) percebe-se que o nó Valor foi eliminado e que sua família forma um clique, dado a nova aresta (fill-in), que no grafo moral é representado por uma linha tracejada com dois pontos. Em continuação com o processo de triangulação, os nós remanescentes Receitas, Receitas Futuras e Taxa: débitos/receitas são eliminados, nesta seqüência, pois todos são simplicials. 4.3.3. Construção da Join Tree Depois do grafo moral ser triangulado, permite-se a construção da Join Tree, que é constituída por um conjunto de cliques e separadores. Com intuito de determiná-los, o grafo moral é reconstituído, de tal forma que sejam consideradas as arestas originais não direcionadas, as conexões morais e os fill-ins, conforme demonstra a Figura 47. Observe ainda a abreviatura do nome da variável entre parentes. Em função da certeza de existir uma ordem de eliminação de nós simplicials, dado que o grafo é triangulado, utiliza-se a ordem de eliminação dos nós da etapa anterior, a fim de determinar os cliques e separadores da Join Tree. Depois de determinados os cliques e separadores do grafo, necessita-se determinar as conexões entre os separadores aos seus respectivos cliques. Na Figura 48 apresenta-se a Join Tree, o resultado desse processo. 70 Figura 47. Grafo moral triangulado Figura 48. Join Tree Para transformar a Join Tree numa Junction Tree basta transformar os separadores em caixas de mensagens. 4.3.4. Simulação sem evidências Esta simulação visa demonstrar a capacidade do algoritmo Junction Tree em calcular as probabilidades a posteriori da Rede Bayesiana da análise do merecimento do crédito sem a inserção de evidências. Verifica-se na Tabela 36 que a maioria das probabilidades a posteriori não diferem dos resultados obtidos com outro sistema. Entretanto na variável Merecimento de crédito percebe-se a presença de uma diferença entre os resultados. Em primeira instância determinou-se que a razão dessa diferença eram problemas da implementação, entretanto constatou-se que o motivo da diferença é o tipo de representação numérica. Na implementação do algoritmo deste trabalho utilizou-se representação numérica do tipo double (8 bytes), enquanto que o GeNIe utiliza o tipo single (4 bytes). Outro motivo que determinou essa conclusão, é que os mesmos procedimentos são utilizados para os cálculos das outras probabilidades, que não apresentaram diferenças entre os resultados. Ainda constata-se a grande 71 quantidade de multiplicações necessárias para a obtenção das probabilidades a posteriori da variável Merecimento do Crédito. Tabela 36. Probabilidades a posteriori e diferença Nome da variável Probabilidade (Juntion Tree) 0,3333333 0,3333333 0,3333334 0,3333333 0,3333333 0,3333334 0,4667778 0,5332222 0,3333333 0,3333333 0,3333334 0,5861489 0,2235270 0,1903241 0,3333333 0,3333333 0,3333334 0,6815710 0,3184290 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,4472768 0,5527232 0,3333333 0,3333333 0,3333334 0,5440134 0,4559866 Nome do estado a0_11100 Débito a11101_25900 a25901_mais s0_30000 Receitas s30001_70000 s70001_mais Favorável Taxa: débitos/receitas Desfavorável Saudáveis Ativos Médios Poucos Alto Valor Médio Baixo Muito rentável Profissão Rentável Pouco rentável Promissora Receitas futuras Não promissora Excelente Aceitável Histórico de pagamento Não aceitável Sem referência Estável Não estável Histórico de trabalho Sem trabalho, justificado Sem trabalho, não justificado Confiável Confiabilidade Não confiável a16_21 Idade a22_65 a66_mais Positivo Merecimento de crédito Negativo Probabilidade (GeNIe) Diferença (%) 0,3333333 0,3333333 0,3333334 0,3333333 0,3333333 0,3333334 0,4667778 0,5332222 0,3333333 0,3333333 0,3333334 0,5861489 0,2235270 0,1903241 0,3333333 0,3333333 0,3333334 0,6815710 0,3184290 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,2500000 0,4472768 0,5527232 0,3333333 0,3333333 0,3333334 0,5405550 0,4594450 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,6397782 -0,7527241 4.3.5. Simulação com evidências Esta simulação visa demonstrar a capacidade do algoritmo Junction Tree em calcular as probabilidades a posteriori da Rede Bayesiana da análise do merecimento do crédito com a inserção de múltiplas evidências. Apresenta-se as evidências instanciadas na Tabela 37. Os resultados obtidos são revelados na Tabela 38. Constata-se novamente que existem diferenças entre os valores simulados no sistema desenvolvido com os resultados obtidos em outro 72 sistema. Novamente atribui-se essa diferença em função da precisão numérica de representação utilizada pelo outro sistema. Tabela 37. Evidências instanciadas Nome da variável Receitas Valor Merecimento do crédito Histórico de pagamento Estado em que foi atribuída a evidência s0_30000 Baixo Positivo Sem referência Tabela 38. Probabilidades a posteriori e diferença, para simulação com múltiplas evidências Nome da variável Probabilidade (Junction Tree) 0,4207006 0,2896497 0,2896498 1,0000000 0,0000000 0,0000000 0,2771111 0,7228889 0,0006254 0,4371482 0,5622264 0,0000000 0,0000000 1,0000000 0,4889327 0,3320258 0,1790415 0,6865373 0,3134627 0,0000000 0,0000000 0,0000000 1,0000000 0,3052791 0,2248731 0,2650761 0,2047716 0,6214922 0,3785078 0,3302642 0,3772048 0,2925310 1,0000000 0,0000000 Nome do estado a0_11100 a11101_25900 a25901_mais s0_30000 Receitas s30001_70000 s70001_mais Favorável Taxa: débitos/receitas Desfavorável Saudáveis Ativos Médios Poucos Alto Valor Médio Baixo Muito rentável Profissão Rentável Pouco rentável Promissora Receitas futuras Não promissora Excelente Aceitável Histórico de pagamento Não aceitável Sem referência Estável Não estável Histórico de trabalho Sem trabalho, justificado Sem trabalho, não justificado Confiável Confiabilidade Não confiável a16_21 Idade a22_65 a66_mais Positivo Merecimento de crédito Negativo Débito Probabilidade Diferença (%) (Algorit. Exato) 0,4207000 0,0001318 0,2896490 0,0002346 0,2896500 -0,0000807 1,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,2771110 0,0000204 0,7228890 -0,0000078 0,0006254 0,0001439 0,4371470 0,0002785 0,5622270 -0,0001082 0,0000000 0,0000000 0,0000000 0,0000000 1,0000000 0,0000000 0,4889330 -0,0000607 0,3320260 -0,0000730 0,1790420 -0,0002574 0,6865370 0,0000401 0,3134630 -0,0000877 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 0,0000000 1,0000000 0,0000000 0,3052790 0,0000422 0,2248730 0,0000548 0,2650760 0,0000475 0,2047720 -0,0001846 0,6214920 0,0000283 0,3785080 -0,0000464 0,3302640 0,0000596 0,3772050 -0,0000508 0,2925320 -0,0003436 1,0000000 0,0000000 0,0000000 0,0000000 4.3.6. Considerações finais da implementação do Junction Tree Por mais que os resultados obtidos sejam satisfatórios, necessita-se esclarecer que a versão atual do algoritmo Junction Tree falha ao calcular as probabilidades a posteriori em Redes 73 Bayesianas com múltiplas conexões. O motivo dessa dificuldade trata-se dos domínios não triangulados, pois em função da existência de um domínio não realmente presente, existem dificuldades para realização das operações matemáticas pertinentes. Como conseqüência dessa dificuldade, o algoritmo Junction Tree calcula probabilidades a posteriori errôneas para alguns conjuntos específicos de evidências. 74 5. CONSIDERAÇÕES FINAIS O presente trabalho resultou num sistema para modelagem e simulação de Redes Bayesianas que oferece como meio de propagação de evidências os algoritmos Amostragem de Gibbs e Junction Tree. O desenvolvimento adequado das atividades executadas neste trabalho, necessitou a utilização de várias ferramentas, como as seguintes: Eclipse integrado com o QT, MinGw (compilador GCC adaptado para funcionar no sistema operacional Windows), bibliotecas do QT, Enterprise Architect, QT Designer (ferramenta para desenho de telas), GIMP, Hugin, GeNIe, Netica Application, Microsoft Office Vision (desenho de fluxogramas), MatLab e ferramentas do OpenOffice. Com uso das ferramentas apropriadas, permitiu-se o desenvolvimento do sistema na linguagem C++, com o adequado auxilio das bibliotecas do QT, que foram essenciais para a elaboração da interface gráfica, implementação da ferramenta para visualização da Rede Bayesiana na forma de um grafo e implementação dos algoritmos. Reitera-se que os algoritmos foram totalmente desenvolvidos, de tal maneira que eles possam ser reaproveitados em outras aplicações. Constata-se o grande desafio envolvido no desenvolvimento desse trabalho, pois a maioria das ferramentas de desenvolvimento utilizadas eram novidades, os algoritmos para propagação de evidências têm razoável complexidade em função dos modelos matemáticos e por fim o desenvolvimento de um ferramenta de desenho de grafos 2D, pois por mais que a ferramenta de desenho 2D seja simples do ponto de vista do usuário, a sua implementação é complexa. Ainda como dificuldade enfrentada, verifica-se o próprio emprego das bibliotecas do QT, que por mais bem documentadas que elas sejam, elas proporcionaram dificuldades por se tratar de uma tecnologia desconhecida antes da implementação. Verifica-se como um ponto positivo da elaboração deste trabalho o modelo da arquitetura do sistema, pois este visou desacoplar as funcionalidades distintas oferecidas no software e maximizar a reusabilidade. Como exemplo de reusabilidade, a ferramenta de desenho de grafos facilmente pode ser reaproveitada para outros fins que necessitam de desenhos de grafos 2D, como também os algoritmos para propagação de evidências podem ser reutilizados em outras aplicações. Constata-se ainda como ponto positivo, o desenvolvimento da interface gráfica com o usuário, principalmente a ferramenta para criação de grafos direcionados, a qual permite a criação de nós e a inserção de arestas entre os nós, de maneira visual, além de disponibilizar ferramentas para adequar o posicionamento dos nós do grafo entre outras funcionalidades. Essa ferramenta proporciona satisfatório benefício na etapa de elaboração das relações de causas e efeito entre as variáveis, pois a representação visual da rede facilita a compreensão do domínio do problema. Reitera-se a capacidade de simulação propiciada pelo sistema, pois permite-se a simulação de cenários de evidências de maneira visual, através da interface gráfica, além dos modelos de propagação de evidência serem abstraídos tanto para a simulação como para a modelagem da Rede Bayesiana. Em função do exito da implementação do algoritmo Amostragem de Gibbs, permitiu-se a realização de experimentos para mensurar o nível de erro médio, determinar a influência das evidências na obtenção das probabilidades a posteriori, determinar a influência do número de amostras na precisão numérica das probabilidades como também sua influência no desempenho computacional. Já o algoritmo Junction Tree apresentou bons resultados para algumas situações particulares de redes, envolvendo poucas variáveis e poucas evidências simultâneas. Entretanto realizaram-se testes que comprovam, ao menos, o funcionamento parcial do algoritmo. Como descrito anteriormente, o motivo do sucesso parcial é a dificuldade em compreender o processo matemático envolvido quando o grafo não possui domínio triangulado. 5.1. Sugestões para trabalhos futuros Desenvolvimento de algoritmos que abrangessem grafos de influência, variáveis contínuas, aprendizado, determinação de conflitos de evidências ou casos raros, uso de níveis de certeza na inserção de evidências (likelihood), cálculo da probabilidade das evidências, determinação automática de casos, geração automática de código, implementação dos algoritmos de simulação AIS-BN ou/e APIS-BN, determinação das forças das influências, detecção de d-separação e d-conexão, implementação de outros algoritmos exatos e algoritmos para Redes Bayesianas Dinâmicas (grafos temporais). 76 REFERÊNCIAS BIBLIOGRÁFICAS BITTENCOURT, Guilherme. Inteligência Artificial: ferramentas e teorias. 1. ed Florianópolis: Editora da UFSC, 1998. BLANCHETTE, Jasmin; SUMMERFIELD, Mark. C++ GUI Programming with QT 4. 1 ed New Jersey: Prentice Hall, 2006. ERIKSSON, Hans-Erik; PENKER, Magnus; LYONS, Brian; FADO, David. UML 2 toolkit. 1. ed Indianapolis: Wiley, 2004. JENSEN, Finn Verner. Bayesian Networks and Decision Graphs. 1. ed New York: SpringerVerlag, 2001. MARQUES, Roberto L.; DUTRA, Inês. Redes Bayesianas: o que são, para que servem, algoritmos e exemplos de aplicações. Disponível em: “www.cos.ufrj.br/~ines/courses/cos740/ leila/cos740/ Bayesianas.pdf”. Acessado em: 12/03/2008. MELLO, Márcio P. de; VIEIRA, Carlos A. O.; PETERNELLI, Luiz A.; RUDORFF, Bernardo F. T.; SILVA, Gustavo B. S. da. Redes Bayesianas no delineamento de culturas agrícolas usando informações contextuais. Disponível em: “http://sputnik.dpi.inpe.br:1910/rep-/sid.inpe.br/mtcm17@80/ 2007/11.06.02.49”. Acessado em 12/03/2008. MILHO, Isabel; FRED, Ana. Sistema de apoio ao diagnóstico médico baseado em Redes Bayesianas. Lisboa, 2002. Disponível em: “www2.dcce.ufs.br/images/7/72/Diagnostico Medico.pdf”. Acessado em 12/03/2008. ORLANDELI, Rogério. Um modelo markoviano-bayesiano de inteligência artificial para avaliação dinâmica do aprendizado: aplicação à logística. UFSC, Florianópolis, 2005. Tese de doutorado (Engenharia de Produção). PEARL, Judea. Probabilistic reasoning in intelligent systems: networks of plausible inference. 2 ed San Francisco: Elsevier, 1988. RUSSELL, Stuart J; NORVIG, Peter. Inteligência Artificial. 2 ed. Rio de Janeiro: Elsevier, 2004. SCHREIBER, Jacques Nelson Corleta. Um Modelo para Hipermídia Adaptativa utilizando Redes Bayesianas. UFSC, Florianópolis, 2002. Artigo (Departamento de Engenharia de Produção). SHAFER, G. Conditional probability. Int. Statist. Review,1985. SUEBNUKARN, Siriwan. HADDWY, Peter. Comet: a Collaborative Tutoring System for Medical Problem-Based Learning. IEEE Inteligent Systems, 2007. YUAN, Changhe. DRUZDZEL, Marek J. Importance Sampling Algorithms for Bayesian Networks: Principles and Performance. 19th Annual Conference on Uncertainty in Artifical Intelligence, 2004. APÊNDICES A FLUXOS DOS CASOS DE USO DO SISTEMA A.1 USC 001 – NOVA/ABRIR REDE BAYESIANA A.1.1 Fluxo base FLUXO BASE Pré-condição Fluxo Descrição Pós-condições Associado com a etapa Tela 1 TFMain 2 3 TFMain 4 TFMain 5 6 7 8 TFMain 9 10 TFMain 11 TFMain 12 13 O projetista inicializa o sistema. O sistema mostra a tela inicial O sistema inicializa um novo projeto de Redes Bayesianas (RB). O sistema atualiza a interface para estado de modelagem (existe uma RB aberta – mostrar todas as ferramentas) *O projetista opta por abrir projeto salvo. O sistema mostra a tela para escolha do diretório (Dialog). O projetista escolhe o arquivo do projeto. *O projetista confirma. O sistema fecha o projeto de RB criado no início da execução do sistema caso ele não tenha sido modificado ou fechado. Novo projeto associado a etapa: O sistema lê os atributos do arquivo. O sistema mostra na árvore a RB com suas variáveis e estados. O sistema mostra graficamente a RB numa janela MDI conforme os parâmetros do arquivo (posição dos nós, tamanho, cores, fontes), seleciona-a e expande-a. O sistema volta para a etapa 3 5 A.1.2 Fluxo alternativo: Novo Projeto FLUXO ALTERNATIVO Pré-condição A Fluxo 5 Descrição O projetista opta por iniciar um novo projeto. Pós-condições Associado com a etapa Tela TFMain 5-›01 TFMain 5-›02 5-›03 5-›04 5-›05 O projetista inicia um novo projeto de Rede Bayesiana. O sistema fecha o projeto de RB criado no início da execução do sistema caso ele não tenha sido modificado ou fechado. Novo projeto associado a etapa: O sistema cria uma nova janela MDI para modelagem de uma nova Rede Bayesiana. O sistema seleciona essa janela MDI e expande-a. O projetista inicia a modelagem da nova Rede Bayesiana (ver USC 001) 3 A.1.3 Fluxo alternativo: Cancela FLUXO ALTERNATIVO Pré-condição A Fluxo 8 Descrição O projetista opta por cancelar a operação de abrir o projeto salvo. Pós-condições Tela 8-›01 O sistema volta para o passo Associado com a etapa 5 A.2 USC 002 – NOVA/ABRIR REDE BAYESIANA A.2.1 Fluxo Base FLUXO BASE Pré-condição A Fluxo Descrição Estar aberto ao menos uma Rede Bayesiana Pós-condições Associado com a etapa Tela 10 O projetista escolhe a Rede Bayesiana aberta para ser modificada. *O projetista insere os novos nós na Rede Bayesiana. O sistema mostra graficamente os novos nós. O sistema atualiza o sumário (índices das Rede Bayesiana) e árvore. O projetista insere as arrestas direcionadas entre os nós. O sistema atualiza o sumário (índices das Rede Bayesiana) e árvore. O sistema mostra graficamente as arrestas. *O projetista seleciona um ou grupo de nós. O sistema mostra visualmente o nó selecionado. *O projetista opta por configurar as propriedades do nó. 11 O sistema busca as propriedades do nó. TFMain 1 TFMain 2 3 4 TFMain 5 6 7 TFMain 8 9 TFMain TFNodeProperties 14 O sistema mostra a tela para configurar as propriedades dos nós conforme as propriedades do nó selecionado. Caso for um grupo de nós selecionados o sistema mostrará as propriedades do primeiro nó selecionado. O projetista define o nome da variável. O projetista insere a descrição da variável. 15 O projetista insere n número de estados. 16 O sistema ajusta a tabela para inserção das probabilidades. O projetista insere as probabilidades dos estados. O projetista configura as opções de letra e cor da variável O sistema mostra a pré-visualização do nó. *O projetista confirma as configurações. O sistema verifica se o nome da variável é única; verifica critério dos valores das probabilidades. O sistema confirma que os critérios estão adequados. O sistema aplica as novas configurações. O sistema fecha a tela para edição das propriedades do nó. O sistema volta para a etapa 12 13 17 18 19 20 21 22 23 TFNodeProperties 24 25 1 A.2.2 Fluxo alternativo: Salvar como FLUXO ALTERNATIVO Pré-condição A Fluxo 8 B Descrição O projetista opta por salvar o projeto. O projeto ser novo (nunca ter sido salvo) ou seleção da opção de Salvar como. Pós-condições Associado com a etapa Tela 8-›01 8-›02 8-›03 8-›04 8-›05 8-›06 8-›07 O sistema mostra a tela para seleção do diretório e nome do arquivo (Dialog). O projetista seleciona o diretório e insere o nome do arquivo *O projetista confirma O sistema cria um novo arquivo. O sistema salva os parâmetros das Rede Bayesiana no arquivo. O sistema alerta que o arquivo foi salvo com sucesso (Aviso na barra de status). O sistema volta para o passo 1 A.2.3 Fluxo alternativo: Salvar FLUXO ALTERNATIVO Pré-condição A B Fluxo 8 Descrição O projetista opta por salvar o projeto. Opção de salvar e o projeto já ter sido salvo anteriormente. Pós-condições Associado com a etapa Tela 8-›01 8-›02 8-›03 8-›04 O sistema cria um novo arquivo. O sistema salva os parâmetros das Rede Bayesiana no arquivo. O sistema alerta que o arquivo foi salvo com sucesso (Aviso na barra de status). O sistema volta para o passo 1 A.2.4 Fluxo alternativo: Configurar Rede Bayesiana FLUXO ALTERNATIVO Pré-condição A Fluxo 10 Descrição O projetista opta por configurar as propriedades da Rede Bayesiana. Pós-condições Associado com a etapa Tela 1 0-›01 TFBNProperties 1 0-›02 1 0-›03 1 0-›04 1 0-›05 1 0-›06 1 0-›07 O sistema busca as propriedades da Rede Bayesiana selecionada (janela MDI selecionada) O sistema mostra a tela para configuração das propriedades da Rede Bayesiana conforme a Rede Bayesiana selecionada. O projetista altera o nome da Rede Bayesiana. O projetista altera o número de amostras para o algoritmo de Gibbs. O projetista insere a descrição da Rede Bayesiana. *O projetista confirma. O sistema volta para a etapa 1 A.2.5 Fluxo alternativo: Cancelar FLUXO ALTERNATIVO Pré-condição A Fluxo 8-›03 B 10-›06 Descrição O projetista opta por salvar o projeto. OU Opção de salvar e o projeto já ter sido salvo anteriormente. Pós-condições Tela 8->03->01 O sistema não realiza a operação e volta para a etapa Associado com a etapa 1 A.3 USC 003 – SIMULAR A.3.1 Fluxo Base FLUXO BASE Pré-condição A Fluxo Descrição Existir uma Rede Bayesiana aberta e possuir ao menos 1 nó (variável) Pós-condições Associado com a etapa Tela TFMain 1 TFMain 2 TFMain 3 4 5 6 7 8 9 10 11 12 O projetista seleciona a Rede Bayesiana. O sistema busca os parâmetros associados a Rede Bayesiana e atualiza a interface (ex.: algoritmo selecionado, número de amostras, sumário, etc) O sistema mostra a tela da Rede Bayesiana no topo (acima das outras telas) O projetista seleciona o algoritmo de propagação de evidências. *O projetista opta pelo modo de representação que mostra as probabilidades dos estados diretamente no grafo (barras gráficas) O sistema mostra no gráfico as variáveis com seus respectivos estados. *O projetista insere/remove as evidências desejadas. O sistema mostra em quais variáveis foram instanciadas evidências. O projetista opta por atualizar as probabilidades posteriores. O sistema calcula as probabilidades posteriores dada a configuração da Rede Bayesiana e as probabilidades associadas. O sistema atualiza as probabilidades posteriores dos estados nas variáveis. O sistema volta para o passo 7 A.3.2 Fluxo alternativo: Modo de representação FLUXO ALTERNATIVO Pré-condição A Fluxo 5 Descrição O projetista opta por visualizar a Rede Bayesiana em forma de rede causal. Pós-condições Associado com a etapa Tela 5-›01 5-›02 O sistema mostra a Rede Bayesiana na forma de uma rede causal. O sistema volta para a etapa 7 A.3.3 Fluxo alternativo: Propagação automática FLUXO ALTERNATIVO Pré-condição A Fluxo 7 Descrição Opção de atualização automática das probabilidades posteriores ativada Pós-condições Associado com a etapa Tela 7 -›01 7 -›02 7-›03 7 -›04 O sistema calcula as probabilidades posteriores dada a configuração da Rede Bayesiana e as probabilidades associadas. O sistema atualiza as probabilidades posteriores dos estados nas variáveis. *O projetista realiza qualquer operação que altere as probabilidades dos estados (exemplo: inserção de novas arrestas, novos estados, alteração das probabilidades condicionais e/ou incondicionais, etc) O sistema volta para a etapa 7-›01 A.3.4 Fluxo alternativo: Propagação automática desabilitada FLUXO ALTERNATIVO Pré-condição A Fluxo 7-›03 Descrição Atualização das probabilidades posteriores manuais Pós-condições Tela 7 ->03->01 O sistema volta para a etapa Associado com a etapa 1 B PROBABILIDADES A PRIORI B. VARIÁVEIS INCONDICIONAIS Ativos Saudáveis Médios Poucos Receitas 0,333333 0,333333 0,333334 Profissão Muito rentável Rentável Pouco Rentável 0,333333 0,333333 0,333334 Idade a_16_21 a22_65 a66_acima 0,333333 0,333333 0,333334 s0_30000 s30001_70000 s70001_mais Débitos A0_11100 A11101_25900 a25901_mais 0,333333 0,333333 0,333334 Histórico de trabalho Estável Não estável Sem trabalho – justificado 0,250000 0,250000 0,250000 Sem trabalho – não justificado 0,250000 0,333333 0,333333 0,333334 Histórico de pagamento Excelente 0,250000 Aceitável 0,250000 Não Aceitável 0,250000 Sem referência 0,250000 B.1 VARIÁVEIS CONDICIONAIS B.1.1 Variável - Valor Receitas s0_30000 s30001_70000 s70001_mais Ativos Saudáveis Médios Poucos Saudáveis Médios Poucos Saudáveis Médios Alto 0,899 0,001 0,001 0,989 0,699 0,100 0,989 0,907 Médio 0,100 0,300 0,100 0,010 0,300 0,800 0,010 0,092 Baixo 0,001 0,699 0,899 0,001 0,001 0,100 0,001 0,001 Poucos 0,690 0,300 0,010 B.1.2 Variável - Taxa: débitos/receitas Débitos A0_11100 A11101_25900 a25901_mais Receitas s0_30000 s30001_70000 s70001_mais s0_30000 s30001_70000 s70001_mais s0_30000 s30001_70000 s70001_mais Favorável 0,500 0,800 0,999 0,001 0,500 0,800 0,001 0,100 0,500 Desfavorável 0,500 0,200 0,001 0,999 0,500 0,200 0,999 0,900 0,500 B.1.3 Variável – Receitas futuras Valor Profissão Promissora Não Promissora Alto Muito rentável 0,990 0,010 Pouco Muito Rentável Rentável rentável 0,800 0,600 0,850 0,200 0,400 0,150 Médio Baixo Pouco Muito Rentável Rentável Rentável rentável 0,600 0,400 0,800 0,400 0,400 0,600 0,200 0,600 Pouco Rentável 0,010 0,990 B.1.4 Variável - Confiabilidade Histórico de pagamento Confiável Não confiável Estável Não estável Sem trabalho – justificado Sem trabalho – não justificado Estável Não estável Sem trabalho – justificado 0,990000 0,700000 0,700000 0,500000 0,700000 0,550000 0,600000 0,010000 0,300000 0,300000 0,500000 0,300000 0,450000 0,400000 Sem trabalho – não justificado Estável Não estável Não Aceitável Sem trabalho – justificado 0,400000 0,196429 0,010000 0,100000 0,600000 0,803571 0,990000 0,900000 Sem trabalho – não justificado Estável Não estável Sem trabalho – justificado 0,010000 0,700000 0,300000 0,500000 0,990000 0,300000 0,700000 0,500000 Sem trabalho – não justificado 0,200000 0,800000 Excelente Aceitável Sem referência Histórico de trabalho B.1.5 Variável – Merecimento do crédito Confiabilidade Taxa: débitos/receitas Receitas Futuras Promissora Favorável Não Promissora Confiável Promissora Desfavorável Não Promissora Promissora Favorável Não Promissora Não confiável Promissora Desfavorável Não Promissora Idade Positivo Negativo a_16_21 a22_65 a66_acima a_16_21 a22_65 a66_acima a_16_21 a22_65 a66_acima a_16_21 a22_65 a66_acima a_16_21 a22_65 a66_acima a_16_21 a22_65 a66_acima a_16_21 a22_65 a66_acima a_16_21 a22_65 a66_acima 0,900000 0,908257 0,800000 0,700000 0,800000 0,600000 0,700000 0,727273 0,700000 0,250000 0,400000 0,250000 0,700000 0,800000 0,500000 0,300000 0,400000 0,200000 0,500000 0,500000 0,400000 0,001000 0,001000 0,001000 0,100000 0,091743 0,200000 0,300000 0,200000 0,400000 0,300000 0,272727 0,300000 0,750000 0,600000 0,750000 0,300000 0,200000 0,500000 0,700000 0,600000 0,800000 0,500000 0,500000 0,600000 0,999000 0,999000 0,999000