3.6 Ferramentas de Verificação
3.6.5 Expert System Validation Associate
O Expert System Validation Associate (EVA) foi desenvolvido integralmente em PROLOG e surgiu na Lockheed Corporation. Este sistema é composto por um grande conjunto de ferramentas de V&V que têm a particularidade de poderem funcionar de forma independente.
Para a execução de tarefas de verificação, este conjunto permite a análise de anomalias relacionadas com a estrutura, a lógica e as omissões. O EVA in- troduziu o conceito de uma meta-linguagem, que permite aos utilizadores a introdução de informação pertinente para as tarefas de verificação, designada-
mente: declaração de restrições semânticas (dependentes do domínio), tipos e valores para os parâmetros de predicados.
De notar que o EVA não foi concebido para nenhuma linguagem específica, sendo possível fazer a verificação de sistemas baseados em diferentes lingua- gens ou ambientes de desenvolvimento, nomeadamente: ART, OPS5, LES. Desta forma torna-se óbvio o poder de uma meta-linguagem (independente do sistema a validar) no contexto da verificação.
3.6.5.1 Descrição do Funcionamento
Antes de iniciar as rotinas de verificação (o EVA também possuía ferramentas de validação), as bases de conhecimento a analisar são convertidas para uma representação interna. Esta técnica torna o sistema mais independente dos formatos externos. As ferramentas de V&V do sistema EVA estão estruturadas segundo um modelo em cascata. A base de conhecimento é sujeita a sucessivos testes e em cada fase são reportados os erros encontrados (caso existam) de forma que, em princípio, no final dos testes a base de conhecimento estará livre de quaisquer erros (ver figura 3.5).
3.6.5.2 Anomalias Detectadas
Como o EVA surgiu na Lockheed Corporation, na sequência do trabalho CHECK (ver secção 3.6.3), o tipo de anomalias detectado é idêntico. As técnicas utilizadas para a sua detecção são descritas a seguir:
Circularidade – para detecção de regras circulares, o EVA traduz as regras para uma representação canónica na qual existe informação sobre as regras que contribuíram para a expansão de cada regra. Deste modo,
Modificações Verificação Estrutural (estática) Verificação Lógica X (estática) Verificação Semântica (estática) Auxilio à alteração de regras Verificação Dinâmica Verificação Estrutural X (estática) Verificação Lógica (estática) Ferramenta VV&T Meta-Regras Especificações de design
(regras & factos)
Erros detectados Erros detectados Erros detectados Erros detectados Erros detectados Erros detectados Alterações sugeridas DESEMPENHO
Figura 3.5: Funcionamento do Sistema EVA
a detecção de circularidade limita-se a determinar se uma regra aparece repetida numa cadeia de expansão;
Redundância – para além dos casos de detecção de regras não disponí- veis (tanto em encadeamento directo como inverso), este sistema detecta redundância (caso geral), utilizando o mecanismo de prova de teoremas inerente ao PROLOG. Assim, para determinar uma regra redundante, i.e., uma regra cuja falta não altera o comportamento do SBC, é seguido o seguinte método:
1. Retirar a regra da base de conhecimento;
2. Inserir os literais (antecedentes) que suportam a regra, com parâme- tros de entrada substituídos por variáveis livres (com o objectivo de criar o ambiente);
3. Determinar se o consequente pode ser inferido com as regras restan- tes;
4. Se tal for possível, a regra anteriormente retirada é redundante. Ambivalência – para fazer a detecção de ambivalência, o sistema gera
factos que representam todos os literais ambivalentes do tipo {P, ¬P }. No entanto, o sistema também permite a inserção, pelo utilizador, de restri- ções que não possam ser detectadas automaticamente (restrições semân- ticas). Após a introdução das restrições, o sistema tenta provar cada uma delas, utilizando o encadeamento inverso. Provar uma restrição significa determinar se os literais que a compõe podem ser concluídos, assumindo que os literais de entrada (exclusivamente de entrada) existem na base de conhecimento. Se a conclusão de uma restrição for possível então na árvore de prova respectiva existirão ramos ambivalentes;
Deficiência – a detecção de deficiências no conhecimento é levada a cabo pelo Omission Checker, uma das ferramentas que compõe o sistema EVA. No entanto, nesta classe de anomalia, o trabalho de detecção é muito limitado, resumindo-se à análise de valores em falta. Esta tarefa baseia-se na verificação de todos os valores possíveis (previamente definidos) para um parâmetro utilizado nas regras.
3.6.6 Comprehensive Verifier
O Comprehensive Verifier (COVER) é uma ferramenta de verificação que foi inicialmente desenvolvida no Reino Unido com o objectivo de ser aplicada no sistema da segurança social. O seu desenvolvimento foi posteriormente continuado na Universidade de Concórdia (Canadá) num projecto misto com a Bell Canada Incorporate.
3.6.6.1 Descrição do Funcionamento
Este sistema utiliza em parte do seu trabalho, uma abordagem semelhante ao KB-Reducer e ao COVADIS [Rousset, 1988] designadamente na análise
de cadeias de inferência. O COVER utiliza uma representação interna das regras e, como tal, necessita de fazer uma conversão semi-manual da sintaxe utilizada nas bases de conhecimento a analisar. Tal como o EVA, o COVER é uma aplicação desenvolvida em PROLOG e utiliza o mecanismo de prova de teoremas inerente a esta linguagem.
3.6.6.2 Anomalias Detectadas
Para efeitos de uma abordagem eminentemente prática, o COVER divide a detecção em diferentes categorias, sendo que cada uma agrupa rotinas para detecção de anomalias (casos particulares) segundo a complexidade dos algo- ritmos utilizados:
Verificação de Integridade – A detecção deste tipo de anomalia é ba- seada em algoritmos de ordem simples (O(n)). As anomalias detectadas são: condição não passível de ser satisfeita, item não utilizável (ainda que neste caso os testes não sejam integrais), valor de inquérito não utilizável, regra não utilizável, regra sem saída e valor em falta;
Verificação de Regras – O conjunto de rotinas empregue neste tipo de verificação utiliza algoritmos de ordem quadrática (O(n2)). Isto é, as
comparações são feitas entre cada par de regras. As anomalias detectadas na verificação de regras incluem: regra duplicada ou sub-assumida e regras conflituosas;
Verificação de Cadeias de Inferência – A detecção de anomalias ao longo de cadeias de inferência é baseada num conjunto de algoritmos de complexidade não polinomial. Isto deve-se ao facto da captura de todas as cadeias de inferência (neste caso em encadeamento inverso) se basear na geração de todas as expansões possíveis de uma conclusão (final ou
não). Concretamente, estes algoritmos permitem detectar: circularidade indirecta, regras duplicadas, sub-assumidas ou conflituosas. Apesar de, em teoria, estes algoritmos poderem ser intratáveis no pior caso, o CO- VER introduziu algumas heurísticas com vista a controlar a profundidade das pesquisas e reduzir o tempo associado a estas tarefas. De notar que a circularidade é a primeira anomalia a ser tratada dentro deste grupo, pois de outra forma não poderiam ser geradas as cadeias de inferência (expansões) caso existisse circularidade, com risco de se gerarem expres- sões de comprimento infinito (em teoria). No caso da deficiência, uma das anomalias de mais difícil tratamento devido à complexidade temporal dos algoritmos necessários ser muito elevada, o COVER introduz duas heu- rísticas que resultam na redução do tempo necessário à sua detecção. A primeira heurística baseia-se no facto de que só é necessário gerar combi- nações plausíveis, isto é, baseando-se não em todos os literais existentes na base de conhecimento, mas apenas naqueles que existem nas regras que contribuem para um determinada conclusão. A segunda heurística baseia- se em testar os ambientes mais pequenos em primeiro lugar. Desta forma são reportadas as deficiências para ambientes mais pequenos, evitando-se a análise de ambientes mais extensos, visto que se um ambiente em falta for detectado este é retirado do espaço de pesquisa.
O COVER provou constituir uma ferramenta útil na área de verificação atra- vés da sua aplicação bem sucedida em diferentes organizações (por exemplo: serviços de saúde ingleses, 3M Corporation, NASA, Bell Company).
3.7 Conclusões
Neste capítulo foi introduzida a questão da verificação e validação de soft- ware em geral e de sistemas baseados em conhecimento em particular. Foram apresentadas algumas das definições mais relevantes na área de verificação e validação e as técnicas utilizadas no processo de V&V. As anomalias de uma base de conhecimento foram apresentadas como sintomas de possíveis er- ros, cuja detecção constitui a base de muitas ferramentas de verificação. As anomalias referidas foram agrupadas de acordo com a classificação proposta por Preece em quatro famílias: redundância, ambivalência, deficiência e cir- cularidade. Finalmente, foram apresentadas as ferramentas que marcaram a evolução da área de V&V de sistemas baseados em conhecimento.
O Problema da Verificação
“Não me considero um cínico, mas sei que me coube viver numa época que considera a ingenuidade uma causa perdida, e o acaso é apresentado como um sucedâneo da vontade. Tudo parece pro- gramado de antemão e lentamente perdemos a capacidade de nos deixar surpreender, de aceitar que o insólito é possível.”
Luis Sepúlveda, “Encontro de amor num país em guerra”, 1998
Resumo
Neste capítulo são discutidos os aspectos relativos à verificação de sistemas baseados em conhecimento aplicados em ambientes reais, com natural desta- que para aqueles que recorrem ao raciocínio e representação temporal no seu funcionamento. Na perspectiva de caso de estudo é apresentado o Sparse, um sistema baseado em conhecimento que pretende solucionar um problema no domínio do diagnóstico de incidentes em redes eléctricas. A discussão sobre o problema da verificação é o ponto de partida para a apresentação do Veritas, a ferramenta de verificação automática que materializa algumas soluções para o referido problema.
4.1 Introdução
Os sistemas periciais e, mais genericamente, os sistemas baseados em conheci- mento conseguiram incorporar parte significativa da investigação desenvolvida na Inteligência Artificial, dando origem a aplicações de mérito reconhecido, efectivas e economicamente rentáveis.
O desenvolvimento de inúmeros sistemas periciais para domínios complexos e exigentes, tanto em termos de fiabilidade como de segurança (e.g., medicina, banca, centrais nucleares, transportes, redes de telecomunicações e energia), motivou o estudo de técnicas e métodos que visavam assegurar a consistência e robustez dos sistemas desenvolvidos, enquadráveis na área designada de veri- ficação e validação de sistemas baseados em conhecimento (conforme descrito no capítulo 3).
Na secção 4.2 é apresentado o Sparse, um sistema baseado em conhecimento que teve como objectivo principal o diagnóstico de incidentes e geração auto- mática de conselhos para os operadores da Rede Eléctrica Nacional (REN) de forma a minimizar o tempo necessário à reposição do serviço. Nesta secção são detalhados os componentes principais e arquitectura do sistema na perspectiva do trabalho de verificação e validação. Na secção 4.3 é descrito o trabalho de validação do Sparse, com destaque para os testes de campo e para o desen- volvimento/aplicação de um simulador de cenários de teste. As limitações do processo de validação são discutidas e apresentadas como parte da motivação para o início do trabalho de verificação que pretende exactamente colmatar essas limitações (secção 4.4). Depois de apresentado o Sparse, o processo de validação e os objectivos da verificação, na secção 4.5 é discutido o problema da verificação de sistemas baseados em conhecimento aplicados a domínios
reais, tendo como fio condutor aspectos particulares do sistema Sparse.