Instanciação e Validação

Como já foi observado, uma maneira simples de detectar os erros apontados no final da seção [*] é criar um mecanismo que analise o exercício em várias instâncias (instanciação) e somente após um número considerável de validações o sistema devolve o resultado final da validação . A simulação do procedimento que utiliza em diversas instâncias o algoritmo apresentado na seção [*] pode ser visualizada na Figura [*].

Figura: Validação Automática

A cada iteração do algoritmo de validação automática (Figura [*]) os objetos geométricos devem ter suas posições alteradas. Essa alteração é feita através da movimentação ``aleatória'' de todos os pontos ``soltos'' da construção. A escolha da nova posição de um ponto é feita modificando suas coordenadas $(x, y)$ para $(x', y')$ , $x-k < x' < x+k$ e $y-k < x' < y+k$, onde $k$ é um valor aleatório tal que $0 < k \leq 20$. O valor de $k$ foi determinado empíricamente e permite que a modificação nas coordenadas sejam suficientes para identificar possíveis problemas em uma construção.

Na Figura [*], apresentamos a construção incorreta do ponto médio. Ao modificarmos as coordenadas $(x, y)$ do ponto $B$ para $(x+10, y+10)$, observamos que o ponto $D$ ``descolou-se'' de $c1$ (ou seja, $D$ não é um ponto de interseção entre $c0$ e $c1$).

Figura: Construção incorreta do ponto médio identificada ao movimentar o ponto $B$

Ao final destes passos, retornamos um valor inteiro entre 1 e 3: (1) correto, não encontrou nenhum contra-exemplo; (2) incorreto, porém encontrou instâncias consideradas corretas e outras incorretas; (3) incorreto, encontrou apenas instâncias incorretas.

Seiji Isotani 2006-10-04