Transformação e Análise

A transformação numérica quando aplicada sobre um objeto geométrico, devolve uma lista de escalares que representam este objeto. Na maioria dos casos esta transformação é simples como apresentado na seção [*], porém alguns objetos, como o polígono, necessitam além da transformação numérica, a ordenação dos pontos que o representam. Com esta lista de escalares podemos fazer a comparação entre objetos. Assim, para analisar duas construções, o gabarito \( S_{p} \) do professor e a solução \( S_{a} \) do aluno, transformamos os objetos marcados como resposta em listas de escalares para então fazer a avaliação, como esquematizado na Figura [*].

Figura: Transformação numérica e análise

A análise é feita em duas etapas. A primeira etapa consiste no mapeamento entre as listas e a segunda na comparação delas através do critério de distância. A razão da primeira etapa é permitir que o aluno tenha a liberdade de fazer a marcação dos objetos-resposta em qualquer ordem. Por exemplo, caso a solução do professor seja representada pelos pontos $A$ e $B$ e a do aluno pelos pontos $C$ e $D$, a etapa de mapeamento identificará se o ponto $C$ corresponde a $A$ ou a $B$, fazendo o mesmo para $D$.

O mapeamento7 dos objetos de \( S_{a} \) e \( S_{p} \) é realizado comparando-se cada elemento $og$ de \( S_{a} \) com todos os elementos de \( S_{p} \) que pertençam a mesma família de $og$ e minimizando a distância entre eles. Assim, um objeto de \( S_{a} \) será mapeado em um objeto de \( S_{p} \) se ambos pertencerem à mesma família de objetos geométricos, ainda não foram mapeados e a distância entre eles for a menor possível em relação aos outros objetos de \( S_{a} \). Este mapeamento é feito apenas para a primeira instância (a configuração inicial do enunciado do exercício). A segunda etapa da avaliação consiste na comparação entre os pares de objetos geométricos mapeados ( \(og_{i}^{a},og_{i}^{p} \)). Nesta comparação, utilizamos uma versão relaxada do conceito de equivalência expresso na definição [*] (seção [*]), para levar em consideração as imprecisões numéricas ao se empregar diferentes soluções. Assim, adotamos uma margem de erro \( \varepsilon \).

Definição 5..3 (Quase Equivalência)   Fixado um conjunto de entradas $OG$, seja \( S_{p} \) uma construção sobre $OG$ e \( S_{a} \) outra construção sobre o mesmo $OG$. Então \( S_{a} \) e \( S_{p} \) são quase equivalentes se, e somente se, para qualquer configuração $OG_{0}$ da lista $OG$, tivermos $dist(S_{p}(OG_{0}),$ $S_{a}(OG_{0}))$ $< \varepsilon$.

De modo simplificado apresentamos o psedo-código do validador na tabela [*]. As linhas 1 a 12 são referentes ao mapeamento dos objetos e as linhas 13 a 19 são referentes a análise (verificando se cada menor distância entre pares de objetos de mesmo tipo é menor do que a tolerância de erro \( \varepsilon \)).


Tabela: Pseudo-código do validador implementado no iGeom
1 . Recebe duas listas \( S_{a} \) e \( S_{p} \) de objetos geométricos
2 . Crie uma nova lista de objetos geométricos \( S_{t} \) $\leftarrow$ $\emptyset$
3 . Para cada elemento \(og_{i}^{p}\) da lista \( S_{p} \)
4 . MenorDistanciaEncontrada $\leftarrow$ $\infty$
5 . ObjetoCorrespondente $\leftarrow$ $\emptyset$
6 . Para cada elemento \(og_{j}^{a}\) da lista \( S_{a} \)
7 . Se \(og_{i}^{p}\) e \(og_{j}^{a}\) pertencem a mesma famílias de objetos geométricos então
8 . Se dist( \(og_{i}^{p},og_{j}^{a}\)) < MenorDistanciaEncontrada
9 . ObjetoCorrespodente $\leftarrow$ \(og_{j}^{a}\)
10. MenorDistanciaEncontrada $\leftarrow$ dist( \(og_{i}^{p},og_{j}^{a}\))
11. Se ObjetoCorrespondente = $\emptyset$
12. Devolva Falso
13. Senão
14. \( S_{t} \) $\leftarrow$ \( S_{t} \) $\bullet$ ObjetoCorrespodente //concatenação
15. Remove ObjetoCorrespondente de \( S_{a} \) //objeto está mapeado
16. Para cada elemento \(og_{i}^{p}\) da lista \( S_{p} \)
17. Seja \(og_{j}^{t}\) o primeiro elemento \( S_{t} \)
18. Se dist( \(og_{i}^{p},og_{j}^{t}\)) < \( \varepsilon \) então
19. Remova \(og_{j}^{t}\) de \( S_{t} \)
20. Senão
21. Devolva Falso
22. Devolva Verdadeiro

Note que esta parte do algoritmo trata apenas uma instância da solução, considerando uma posição fixa para cada objeto de entrada. Se utilizarmos apenas esta validação da configuração inicial, pode ocorrer, com freqüencia, erros de falso positivo. Por exemplo, no problema do ponto médio o aluno poderia tentar colocar um ponto ``solto'' sobre o segmento $AB$ e movê-lo de modo a ficar próximo à posição do ponto médio, sem efetuar uma construção geométrica válida. Apesar de ser difícil posicionar o ponto de modo que o algoritmo avalie a solução como correta, é possível conseguir isso (este erro aparece no algoritmo avaliador do C.a.R.). Outro exemplo que ilustra este erro de falso positivo é apresentado no problema [*].


Problema 5..4   Dado dois pontos A e B, construir um triângulo eqüilátero $\bigtriangleup$ABC.


Figura: Construção do $\bigtriangleup$ eqüilátero.
Figura: Construção do $\bigtriangleup$ isósceles com $\overline{AB} = \overline{AC} =
\overline{BC}$.
Para resolver este problema são apresentadas duas soluções (Figura [*] e [*]). A primeira representa uma construção correta para o problema. A segunda é a construção de um triângulo isósceles, com o ponto $C$ solto sobre a reta $s$, mas coincidentemente nesta configuração da construção tem o ponto $C$ na posição tal que \(\overline{AB} = \overline{AC} = \overline{BC}\). Neste caso, a construção do triângulo isósceles foi erroneamente utilizada para se produzir um triângulo eqüilátero. Porém, esta ``quase equivalência'' só se verifica para a configuração inicial. Ao movermos todos os pontos ``soltos8'' da construção, em particular o ponto $C$ do triângulo isósceles, ficará claro que $\bigtriangleup$ABC não é equilátero.

Seiji Isotani 2006-10-04