Para ser útil, um sistema inteligente de qualquer domínio deve ser adequadamente verificado e validado. Entretanto são diversas as definições dadas para estes termos, gerando confusão na interpretação e na realização destas tarefas.
De acordo com SUEN, GROGONO e SHINGHAL (1990) os termos “verificação e
validação” (V & V) são utilizados para denotar todas as questões envolvidas em assegurar que o sistema irá realizar as tarefas para que foi desenvolvido, e complementa informando que diversos autores utilizam o termo “V & V” como se fosse um sinônimo grosseiro da palavra avaliação.
GONZALEZ e BARR(2000) apresentam definições dadas por diversos autores sobre os termos verificação e validação. Começando com a definição dada pelaIEEE(1990apud GONZALEZ; BARR,2000, tradução nossa) para validação e verificação de sistemas convencionais, conforme a seguir:
Verificação é o processo de avaliar um sistema ou componente para determinar se produtos de uma determinada fase de desenvolvimento satisfazem as condições impostas no início daquela fase.
Validação é o processo de avaliar um sistema ou componente durante ou no fim do processo de desenvolvimento a fim de determinar se ele satisfaz os requisitos especificados.
Outra definição é dada pelo DoDD (199xapud GONZALEZ; BARR, 2000, tradução
nossa) para validação e verificação de modelos de simulação:
Verificação é o processo de determinação que uma implementação de um modelo representa com precisão as descrições e especificações conceituais do desenvolvedor.
Validação é o processo de determinar o grau em que um modelo é uma representação precisa do mundo real a partir da perspectiva de uso pretendida do modelo.
As definições apresentadas se contradizem, pois esta implica que a verificação é a comparação com as especificações, enquanto que na definição da IEEE, a comparação com as especificações ocorre durante a validação. Como um sistema baseado em conhecimento não é um sistema convencional, e também é bastante diferente de um modelo de simulação, os autores passam a apresentar definições de outros autores para “V & V” especificamente no contexto de sistemas inteligentes.
Os autores começam apresentando a definição dada porO’Keefe, Balci e Smith(1987 apud GONZALEZ; BARR, 2000, tradução nossa) que é a mais citada na literatura da área:
Verificação refere-se à construção do sistema corretamente (isto é, comprovando que um sistema implementa corretamente suas especifi- cações).
Validação refere-se à construção do sistema certo (isto é, comprovando que o sistema executa com um nível aceitável de precisão).
Para os autores, apesar da definição de verificação fazer sentido, especialmente na explicação entre parênteses, a definição de validação não faz, uma vez que deixa algumas dúvidas: O que constitui um “sistema certo”? O que é precisão? Precisão em relação a que?.
Os autores apresentam diversas outras definições de “V & V” no contexto de sistemas inteligentes dadas por outros autores e finalizam apresentando a própria definição (ou descrição) para as tarefas de verificação e validação (GONZALEZ; BARR,2000, tradução nossa):
Verificação é o processo de assegurar que o sistema inteligente 1) está em conformidade com as especificações, e 2) sua base de conheci- mento é consistente e completa dentro de si.
A validação é o processo de assegurar que a saída do sistema inteli- gente é equivalente à dos especialistas humanos quando recebem as mesmas entradas.
Apesar de definirem os termos,GONZALEZ e BARR(2000) não descrevem as técnicas de verificação de um sistema baseado em conhecimento, o que, por sua vez, foi feito porSUEN, GROGONO e SHINGHAL(1990) e porO’KEEFE e O’LEARY(1993).
SegundoSUEN, GROGONO e SHINGHAL (1990), o processo de verificação trata o
sistema baseado em conhecimento com uma “caixa de vidro”, sendo necessário ter acesso, pelo menos, à base de regras e, em alguns casos, ao motor de inferências. Os autores informam ainda que a verificação pode ser feita utilizando: análise estática, em que a base de conhecimento é examinada sem executar o sistema baseado em conhecimento, a fim de analisar a consistência, integridade e correção do conhecimento;
análise dinâmica, em que o sistema baseado em conhecimento é executado para saber se o sistema está produzindo as respostas corretas e está utilizando o processo de raciocínio correto.
Os testes aplicados durante o processo de verificação incluem (SUEN; GROGONO;
SHINGHAL,1990;O’KEEFE; O’LEARY,1993):
1) Detecção de regras redundantes, quando duas ou mais regras sucedem na mesma situação e têm as mesmas conclusões.Exemplo:
• se X e Y então A,
• se Y e X então A;
2) Detecção de regras conflitantes, quando duas ou mais regras possuem o mesmo atributo antecedente, mas com conclusões contraditórias. Exemplo:
• se X então A,
• se X então não A;
3) Detecção de regras circulares, quando existe uma cadeia de raciocínio que começa com alguma condição e retorna para a mesma condição. Exemplo:
• se X então Y,
• se Y então Z,
• se Z então X;
4) Detecção de subsunção, quando duas ou mais regras possuem a mesma conclusão, mas uma possui restrições adicionais sobre as situações que terá êxito. Exemplo:
• para todo x, se P(x) então Q,
• se P(9) então Q;
5) Uso de nome ou descritor diferente para o mesmo objeto. Exemplo:
• As regras não devem mencionar tanto “a estrela da manhã” quanto “a estrela da tarde” quando o mesmo objeto (Vênus) é pretendido;
• se P então tempo necessário é -3 segundos.
Uma vez que a verificação das regras foi realizada deve-se partir para a validação do
sistema. Conforme sugerem SUEN, GROGONO e SHINGHAL(1990), o processo de
validação trata o sistema baseado em conhecimento como uma “caixa preta”. Testes são realizados a fim de verificar se o sistema baseado em conhecimento atende aos requisitos sem acessar sua estrutura interna.
Os autores descrevem como implementar o processo de validação do sistema. Segundo eles, no processo de validação o sistema baseado em conhecimento é aplicado a um conjuntos de problemas teste e suas respostas são analisadas.
Primeiramente, deve ser escolhido um conjunto de problemas teste apropriado, que deve incluir problemas que não foram usados para guiar o desenvolvimento do sistema. Posteriormente, as soluções produzidas pelo sistema baseado em conhecimento devem ser examinadas tanto pelo especialista, para assegurar que os resultados são tecnicamente aceitáveis, e pelo tipo de pessoas que eventualmente utilizará o sistema, para assegurar que os resultados são significativos para eles. Os autores propõem ainda que, sempre que possível, os resultados da validação sejam checados por métodos estatísticos padrão.
A seção a seguir descreve como foi realizado o processo de verificação e validação da base de conhecimento desenvolvida neste trabalho.