Verificação de Sistemas Baseados em Conhecimento Destinados a Centros de Condução Jorge Santos(1), Carlos Ramos(1), Zita A. Vale(2), Albino Marques(3) (1) Instituto Politécnico do Porto, Instituto Superior de Engenharia, Departamento de Engenharia Informática - Rua de S. Tomé – 4200 Porto {jsantos|csr}@dei.isep.ipp.pt (2) Instituto Politécnico do Porto, Instituto Superior de Engenharia Departamento de Engenharia Electrotécnica - Rua de S. Tomé – 4200 Porto [email protected] (3) REN–Rede Eléctrica Nacional,S.A. Apartado 1003 - 4471 Maia Codex [email protected] Resumo A utilização de Sistemas Baseados em Conhecimento (SBC) nos Centros de Condução permite o melhor aproveitamento dos recursos instalados na rede de transporte. As fases de Verificação e Validação (V&V) são fundamentais no desenvolvimento e manutenção deste tipo de sistemas. Este artigo trata o tema da Verificação e Validação de Sistemas Baseados em Conhecimento em geral, focando em particular a V&V do SPARSE, um SBC desenvolvido para a Rede Eléctrica Nacional (REN) para assistência aos operadores na análise de incidentes e reposição em serviço. O VERITAS é uma ferramenta de verificação automática que foi utilizado na V&V do SPARSE. Esta ferramenta permite realizar um conjunto de testes lógicos às Bases de Conhecimento com vista à detecção de eventuais anomalias. Palavras-Chave: Verificação, Validação, Sistemas Baseados em Conhecimento, Raciocínio Temporal e Centros de Condução 1. Introdução Os actuais Centros de Controlo e Condução das redes eléctricas assumem uma importância fundamental na respectiva exploração. Estes Centros recebem informação, em tempo real, sobre o estado da rede que lhes diz respeito, devendo os respectivos operadores tomar decisões adequadas, em face do estado da rede. Em situação de incidente, a quantidade de informação que chega a estes Centros é de tal forma elevada que a sua correcta interpretação se torna humanamente impossível. Há alguns anos, as empresas de electricidade começaram a introduzir nos seus Centros, aplicações baseadas em Inteligência Artificial [Amelink-86] [Cigre-93] [Kirschen-92] [Talukdar-86] [Vale-93] [Wollenberg-86], de modo a fazer face a estes problemas e a constituírem ferramentas de apoio à decisão. Estas aplicações são usadas em situações de incidente, nas quais o seu desempenho correcto e eficiente deve ser garantido, através da aplicação de técnicas de Verificação e Validação (V&V). A V&V destas aplicações inteligentes não está, contudo, ainda tão difundida quanto seria desejável, sendo frequentemente realizada de forma pouco sistemática. A aplicação sistemática de técnicas formais de V&V poderá ser uma chave para transmitir aos utilizadores a confiança necessária ao sucesso destas aplicações, mesmo aquelas que actuam em áreas críticas. A validação permite avaliar o correcto funcionamento de um produto ou serviço, através da análise do seu desempenho na realização das tarefas para o qual foi concebido e produzido. A validação é levada a cabo através da execução de um conjunto de testes que visam garantir que, para um determinado conjunto de entradas, serão obtidos os resultados esperados. A verificação, por oposição à validação, pressupõe o conhecimentos das técnicas e do saber utilizados na concepção e desenvolvimento do produto a verificar. Esta condição é fundamental para se realizar correctamente a verificação. Assim, a verificação analisa os mecanismos utilizados durante o funcionamento do sistema ou produto, com vista à satisfação das necessidades do utilizador e dos requisitos previamente especificados. O software é um produto e, por consequência, tem de ser validado e verificado. A multiplicidade das aplicações possíveis, a quase omnipresença destes produtos, a complexidade crescente das soluções utilizadas e as leis do mercado da concorrência, entre outros factores, justificam a utilização de recursos cada vez mais importantes no processo de V&V. Como consequência directa desta evolução, foi criado um vasto leque de técnicas que podem ser utilizadas na realização do referido processo, das quais se destacam aquelas que se baseiam na utilização de métodos formais. Dentro dos produtos próprios da Engenharia de Software, distinguem-se duas famílias distintas: a de aplicações normalmente designadas por software convencional e a das aplicações inteligentes que incluem, naturalmente, os Sistemas Baseados em Conhecimento (SBC). No que diz respeito à V&V de aplicações da Área de Inteligência Artificial (IA) em geral e de SBC em particular, existe uma consciencialização cada vez maior da necessidade de realizar a V&V destes produtos. Uma das técnicas que mais se evidenciou pela sua objectividade e pelos resultados obtidos, foi a detecção de anomalias em Bases de Conhecimento. Esta técnica consiste em pesquisar e isolar situações que possam produzir erros durante o funcionamento de um SBC. A detecção de anomalias em Bases de Conhecimento pertence à área de verificação, visto que visa garantir a consistência e a inexistência de deficiências no conhecimento representado nesta componente dos SBC. As técnicas vocacionadas para garantir a efectividade dos mecanismos de inferência e raciocínio empregues são normalmente conotadas com a validação. A detecção de anomalias é, em princípio, tanto mais efectiva quanto mais formal e objectiva for a classificação das referidas anomalias. Na presente secção foram introduzidos os conceitos de Validação e Verificação relacionando-os com as aplicações informáticas. Na secção seguinte são apresentadas as definições formais de alguns conceitos fundamentais considerados ao longo deste documento. Na secção 3 é apresentado o sistema SPARSE, focando as características particulares deste SBC que mais dificultaram o trabalho de verificação. Na secção 4 é descrito com algum detalhe o VERITAS, uma ferramenta de verificação automática, sendo apontados os motivos que levaram ao desenvolvimento desta ferramenta, a sua arquitectura e as técnicas utilizadas na detecção de anomalias. Finalmente, na última secção são apresentadas algumas conclusões e apontados desenvolvimentos futuros. 2. Definições Base Em parte devido a alguma juventude da área em questão ainda não existe uma nomenclatura perfeitamente definida [Hoppe-91]. Com base no trabalho realizado, foi possível obter algumas definições que serão consideradas ao longo deste documento, a saber: VALIDAÇÃO – Este processo permite assegurar que as respostas fornecidas pelo SBC apresentam um grau de confiança semelhante ao das que seriam fornecidas por um perito do domínio de conhecimento modelizado. Os testes realizados durante este processo devem realizar-se sob condições tão semelhantes quanto possível às do ambiente real. Durante a fase de validação, o sistema é considerado como uma “caixa preta” cujo avaliação depende apenas da relação existente entre as entradas e os saídas do sistema. VERIFIÇÃO – Este processo permite assegurar que o SBC foi bem construído e foram utilizadas as técnicas adequadas ao longo de todo o processo de desenvolvimento. Durante o processo de verificação é examinado o interior do SBC com vista à detecção de possíveis erros. Esta abordagem é normalmente designada por “caixa de cristal”. ANOMALIA – Uma anomalia no conhecimento constitui um sintoma de um (ou vários) erros. No entanto, por si só, não garante a existência de um erro. 3. O Sistema SPARSE O SPARSE [Vale-93] [Vale-97] é um Sistema Baseado em Conhecimento destinado a auxiliar os operadores dos Centros de Controlo e Condução da Rede Nacional de Transporte de Energia Eléctrica no processamento de alarmes e na reposição em serviço. A sua arquitectura está esquematizada na Figura 1. Eventos Interface Software Comandos Motor de Inferência Explicações Base de Conhecimento Meta-Regras Interface Factos Módulo de Manutenção de Conhecimento Regras Módulo de V&V Módulo de Aquisição de Conhecimento Figura 1 – Arquitectura do sistema SPARSE As características próprias do sistema SPARSE condicionam a selecção e a implementação das técnicas a utilizar na verificação. As características que mais dificultam a sua verificação são: •= existência de um mecanismo de selecção de regras a disparar; •= modelização de raciocínio temporal e não monotónico; •= utilização de variáveis nas regras. 4. VERITAS, uma ferramenta de verificação O VERITAS [Santos-99] [Santos-99a] é uma ferramenta de verificação automática, independente do domínio de conhecimento e da gramática utilizada na representação da Base de Regras. Esta ferramenta permite a detecção de um conjunto de anomalias passíveis de existirem em Bases de Conhecimento. A definição das anomalias e a respectiva detecção baseiam-se em métodos formais. A utilização de métodos formais em ferramentas de verificação permite aumentar o grau de confiança dos utilizadores nos SBC verificados, bem como garantir a coerência das regras existentes na Bases de Conhecimentos (BC) destes sistemas. O VERITAS foi utilizado em testes sobre três SBC que actuam em domínios distintos e cujas BC não utilizam uma sintaxe comum. Para além do SPARSE, foram também verificados dois Sistemas Periciais destinados ao auxílio no diagnóstico de doenças do foro da Cardiologia, o ARCA [Rocha-90] (mais precisamente, para patologias associadas às arritmias cardíacas) e da Otologia [Sampaio-96]. 4.1. Motivação A necessidade de realizar a verificação da Base de Conhecimento do SPARSE deve-se fundamentalmente a dois aspectos. Em primeiro lugar, tendo em conta a dimensão do projecto SPARSE e o elevado grau de fiabilidade que este deveria fornecer aos utilizadores finais, após o desenvolvimento deste sistema, e antes da sua entrada em funcionamento, foi realizado um conjunto variado de testes durante a fase de validação, incluindo testes de campo e avaliação de desempenho num número elevado de casos. Alguns deles descrevem situações reais, anteriormente coleccionados e outros foram criados especificamente para os testes. Atendendo à definição de validação, o facto dos resultados serem positivos, isto é, de o sistema apresentar o desempenho esperado perante um conjunto de casos, tal não garante idêntico resultado para todos os casos possíveis. Por outras palavras, a fase de validação não é capaz, por si só, de assegurar a correcção e consistência do conhecimento representado na BC do sistema. Deste modo, revela-se necessário efectuar, além da validação, a verificação do SBC. A verificação consiste num conjunto de técnicas e procedimentos que pretendem assegurar de forma complementar o correcto funcionamento de um SBC, neste caso particular do SPARSE. A segunda razão para se realizar a verificação do SPARSE está relacionada com o facto de alguns dos testes realizados durante a validação do SPARSE, nomeadamente aqueles que envolveram a utilização de instalações e a consequente colocação fora de serviço de parte das mesmas, implicarem elevados custos económicos e humanos. Durante estes testes, alguns dos recursos estavam indisponíveis para a sua utilização normal, era necessário um conjunto de pessoas envolvidas nas operações e, para além disso, os testes eram morosos, devido às dificuldades de coordenação e às deslocações que era necessário realizar aos locais escolhidos para os testes. Ora, como é sabido, uma das dificuldades em garantir a qualidade do conhecimento armazenado num SBC prende-se, em geral, com a necessidade de actualizar este conhecimento regularmente. O custo elevado da realização dos testes de campo e a relativa regularidade com que a Base de Conhecimento pode ser actualizada fazem com que a hipótese de realizar a validação após cada alteração da BC apresente características proibitivas. Desta forma, a verificação com base em métodos formais afigurou-se como um método que poderia garantir a consistência da BC após cada alteração, de uma forma aceitável em termos de utilização de recursos. 4.2. Arquitectura Para que a arquitectura do VERITAS (ver Figura 2) pudesse ser fortemente modular, as entradas e saídas de cada módulo são sempre realizadas através de ficheiros. Isto significa que, apesar dos diferentes módulos terem de ser executados de forma sequencial, o processo de verificação não precisa de ser executado de uma só vez. Para além disso, após a execução de um módulo, os resultados obtidos podem ser utilizados inúmeras vezes pelos módulos seguintes. Na primeira fase de funcionamento, o módulo conversor, como o próprio nome indica, converte as regras contidas na BC do SBC a analisar numa representação canónica que é reconhecida e utilizada pelos restantes módulos do sistema. Após terem sido importadas as regras externas, é necessário classificar toda a informação, tornando possível uma representação mais compacta dos dados, mas também a extracção de novo conhecimento, pertinente para o processo de detecção de anomalias propriamente dito. O gestor da BD Interna, a partir da base de regras (na forma canónica), faz a extracção e classificação de toda a informação necessária à detecção de anomalias. No primeiro passo, os literais extraídos das regras são classificados da seguinte forma: •= Facto – se só aparece no lado esquerdo da regra; •= Conclusão – se só aparece no lado direito da regra; •= Hipótese – se aparece em ambos os lados da regra. Esta classificação é independente do domínio de conhecimento e só é pertinente no âmbito do processo de verificação. No segundo passo, é gerada informação necessária para definir as restrições de valor único. O VERITAS considera os seguintes tipos de restrições: •= Restrição Semântica – é um conjunto de literais que não podem coexistir simultaneamente na BC. Note-se que esta restrição é inerente ao domínio de conhecimento e, portanto, tem de ser introduzida pelo utilizador. O exemplo seguinte está relacionado com o regime de exploração de uma subestação: {remoto(Data,Instalacao), local(Data,Instalacao)} •= Restrição de Valor Único – neste caso, a restrição é formada por literais idênticos mas com parâmetros distintos, conforme o exemplo seguinte, no qual D,I,P representam a Data, a Instalação e o Painel, respectivamente: {disjuntor(D,I,P,aberto), disjuntor(D,I,P,fechado), disjuntor(D,I,P,movimento) } •= Restrição Lógica – esta restrição inclui dois tipos: {A e ~A} significando que um literal não pode coexistir com a sua negação e {A e naoFisico(A)}, sendo este caso utilizado em sistemas não monotónicos nos quais é possível retirar um literal da base de conhecimento. Gestor da Base de Dados Interna Gramática 1 BC 1 Forma Canónica Gramática 2 Operações de Base de Dados BC 2 ... n Blocos ... Gramática n BC n Utilizador Conversor Correções Propostas Base de Dados Interna Editor de Regras Operações de Refinamento Ferramentas de Verificação Anomalias Detectadas Ferramentas de Refinamento Figura 2 - Arquitectura da ferramenta VERITAS O módulo de detecção de anomalias (Ferramentas de Verificação) pode funcionar de duas formas: em modo de tarefa, sem a intervenção do utilizador, ou através do assistente de actualização que, entre outras funcionalidades, permite a edição de regras. A representação gráfica das regras é feita com base numa técnica designada hipergrafos dirigidos [Ramaswamy-97]. Um hipergrafo permite identificar as relações existentes entre as regras de uma forma bastante clara. Note-se que, para um conjunto de regras, existe sempre um e apenas um hipergrafo. Quando as bases de conhecimento verificadas são de grandes dimensões (a dimensão de uma BC é normalmente avaliada em função do número de regras e do comprimento das cadeias de inferência), a informação gerada após a detecção pode ser muito elevada, o que pode desmotivar os utilizadores. Para evitar este efeito negativo foi desenvolvida uma interface que permite um conjunto de operações sobre os resultados obtidos, das quais se destacam: agrupamento, selecção e ordenação de dados. 4.3. Detecção de Anomalias A detecção de anomalias baseia-se fundamentalmente no cálculo das expansões das regras e na análise das restrições anteriormente introduzidas. Este método foi utilizado por algumas ferramentas descritas na literatura, como o COVER [Preece-90] e o KB-Reducer [Ginsberg-87]. No cálculo de expansões foi utilizada uma variação do método ATMS (Assumption Truth Maintenance System) [Kleer-86], foi necessário considerar uma alteração a este método porque o SPARSE, conforme foi já referido, tem características próprias como a existência de uma mecanismo de selecção de regras a disparar e a implementação de raciocínio temporal e não monotónico. As anomalias detectadas foram classificadas segundo o esquema apresentado na Figura 3, no qual são considerados três grandes grupos, por sua vez divididos em diversos casos particulares. Directa Circularidade Indirecta Considerando Conclusões Identicas Regra não Utilizável Redundância Regra Duplicada ou Especialista Regra Duplicada Considerando Conclusões Idênticas Entre Grupos de Regras Através de Cadeia Simples Ambivalência Através de Múltiplas Cadeias Figura 3 - Classificação das anomalias detectadas São consideradas as seguintes anomalias seguintes: CIRCULARIDADE - Uma Base de Conhecimento contém circularidade se e só se possui um conjunto de regras que permitem que aconteça uma situação de ciclo aquando do disparo de uma regra. AMBIVALÊNCIA - Uma Base de Conhecimento é ambivalente se e só se, para um ambiente permissível, é possível inferir um conjunto de hipóteses não permissível. REDUNDÂNCIA - Uma Base de Conhecimento é redundante se e só se o conjunto de hipóteses finais passíveis de serem inferidas é o mesmo na presença ou na ausência de uma regra ou literal. Apesar de ainda não ter sido desenvolvido trabalho específico na detecção da anomalia deficiência foi considerada a seguinte definição: DEFICIÊNCIA - Uma Base de Conhecimento diz-se deficiente se e só se existe um ambiente possível para o qual uma ou mais hipóteses poderiam ser inferidas e não o são. Esta classificação tem uma estrutura semelhante à que foi apresentada por Alun Preece [Preece-94], com algumas modificações. Em primeiro lugar, foram consideradas as variáveis livres na análise das regras, o que significa que tem de ser considerado um conjunto distinto de anomalias. No exemplo seguinte: r1: t(a) ∩ r(X) s(a) r2: s(a) r(a) para X=a alguns mecanismos de inferência podem entrar em ciclo infinito. Outra situação diz respeito à redundância entre grupos de regras. Esta situação é comum em sistemas de Data Mining que podem gerar de forma automática um número muito elevado de regras. No seguinte exemplo: r1: a ∩ b ∩ c z r2: ~a ∩ c z r3: ~b ∩ c z as regras r1, r2 e r3 são equivalentes à regra seguinte: rx: (a ∩ b ∩ c) ∪ (~a ∩ c) ∪ (~b ∩ c) z Aplicando um conjunto de propriedades da lógica à expressão anterior, é possível obter a seguinte regra rx’ (simplificada). rx’: c z O VERITAS detecta este tipo de situações utilizando o método clássico de simplificação de expressões Quine-McCluskey com algumas optimizações. A aplicação deste método divide-se nos seguintes passos: (1) determinação do conjunto de regras que permite a inferência de uma determinada conclusão; (2) cálculo da expressão resultante da disjunção entre os LHS do conjunto de regras calculado no passo anterior; (3) simplificação da expressão através da determinação/simplificação dos primos implicantes do método de Quine-McCluskey; (4) comparação entre a expressão obtida e o conjunto de regras original, sendo reportada uma anomalia caso a nova expressão seja mais simples. A redundância entre grupos de regras é uma generalização de uma situação já descrita na literatura [Preece-94] designada por “literal não utilizado”. 5. Conclusões e Trabalho Futuro Este artigo focou alguns aspectos importantes da utilização de Sistemas Baseados em Conhecimento em Centros de Condução. A utilização sistemática de métodos de Verificação e Validação permitem aumentar a confiança dos utilizadores finais no sistema desenvolvido. A utilização de ferramentas de Verificação baseadas em métodos formais simplifica a actualização das Bases de Conhecimento, e reduz os custos e o tempo necessários à realização dos testes. O VERITAS é uma ferramenta de verificação baseada em métodos formais que permite realizar um conjunto de testes estruturais em Bases de Conhecimento com vista a detectar anomalias do conhecimento. Esta ferramenta foi desenvolvida segundo uma abordagem generalista, de forma a poder ser utilizada no maior número possível de SBC. A um núcleo genérico foram acrescentadas camadas que permitiram a análise de um sistemas bastante complexo como é o caso do SPARSE, um SBC concebido para a assistência aos utilizadores na análise de incidentes e reposição em serviço. Actualmente, está a ser desenvolvido trabalho no sentido de utilizar o VERITAS na verificação de sistemas de Data Mining e como elemento integrador em Bases de Conhecimento com múltiplas fontes de dados. Referências [Amelink-86] Herman Amelink, Anthony M. Forte and Robert P. Guberman, "Dispatcher Alarm and Message Processing", IEEE Transactions on Power Systems, vol. 1, n. 3, pp. 188-194, August 1986 [Cigre-93] CIGRE - Working Group 38.06.03, "Expert Systems: Development Experience and User Requirements", Electra, n. 146, pp. 29-67, February 1993 [Ginsberg-87] A.Ginsberg – A new approach to checking knowledge bases for inconsistency and redundancy, In proceedings 3rd Annual Expert Systems in Government Conference, IEEE Computer Society, Washington, D.C., pp.102-111, Outubro, 1987 [Hoppe-91] T.Hoppe e P.Meseguer - On the terminology of VVT, EuroVAV’91-Proceedings of the European Workshop on the Verification and Validation of Knowledge-Based Systems, Logica Cambridge, pp.3-13, Cambridge, England, 1991 [Kirschen-92] Daniel S. Kirschen, Bruce F. Wollenberg, "Intelligent Alarm Processing in Power Systems", Proceedings of the IEEE, vol. 80, n. 5, pp. 663-672, May 1992 [Kleer-86] J.de Kleer – An assumption-based TMS, Artificial Intelligence (Holanda), Vol.28, Nº2, pp.127-162, 1986 [Preece-90] A.D.Preece – Towards a methodology for evaluating expert systems, Expert Systems (UK), Vol.7, Nº4, pp.215-223, Novembro, 1990 [Preece-94] A.D.Preece e R.Shinghal – Foundation and Application of Knowledge Base Verification, Intelligence Systems, Nº9, pp.683-701, 1994 [Ramaswamy-97] M.Ramaswamy e S.Sarkar – Global Verification of Knowledge Based Systems via Local Verification of Partitions EuroVAV’97-Proceedings of the European Symposium on the Verification and Validation of Knowledge-Based Systems, pp.145-154, Leuven, Bélgica, 1997 [Rocha-90] J.Rocha – Concepção e Implementação de um Sistema Pericial no Domínio da Cardiologia, Tese de Mestrado, Faculdade de Engenharia do Porto, Setembro, 1990 [Sampaio-96] I.Sampaio – Sistemas Periciais e Tutores Inteligentes em Medicina – Diagnóstico, terapia e apoio de Otologia, Tese de Mestrado, Faculdade de Engenharia do Porto, Setembro, 1996 [Santos-99] J.Santos, C.Ramos, Z.Vale, A.Marques – Verificação de Sistemas Baseados em Conhecimento: Como e Porquê?. In Proceedings of Sextas Jornadas Luso-Espanholas de Engenharia Electrotécnica, Lisboa, Portugal, 1999 [Santos-99a] J.Santos, L.Faria, C.Ramos, Z.Vale, A.Marques – Verification of Knowledge-Based Systems for Power System Control Centers. In Proceedings of 12th International Conference on Industrial & Engineering Applications of Artificial Intelligence and Expert Systems (IEA-AIE), pp.333-342, Cairo, Egypt, 1999 [Talukdar-86] S. N. Talukdar, E. Cardozo, T. Perry, "The Operator's Assistant - An Expandable Program for Power System Trouble Analysis", IEEE Transactions on Power Systems, vol.1, n.3, pp. 182-187, August 1986 [Vale-93] Z.Vale e A.M.Moura - An Expert System with Temporal Reasoning for Alarm Processing in Power System Control Centres, IEEE Transactions on Power Systems, Vol. 8, Nº.3, pp.1307-1314, Agosto 1993 [Vale-97] Z.Vale, C.Ramos, L.Faria, J.Santos, M.F.Fernandes, C.Rosado, A.Marques – Knowledge-Based Systems for Power System Control Centers: Is Knowledge the Problem?, ISAP’97International Conference on Intelligent System Application to Power Systems, Seoul, Coreia, Julho, 1997 [Wollenberg-86] Bruce F. Wollenberg, "Feasibility Study for an Energy Management System Intelligent Alarm Processor", IEEE Transactions on Power Systems, vol.1, n.2, pp. 241-247, May 1986