Identificação de Ambiguidade

Como apontado anteriormente, consideramos que uma construção é uma função que recebe um conjunto de objetos de entrada e devolve um conjunto de objetos resposta (representação [*]). Esta função é considerada ambígua quando não é bijetora, ou seja, quando possuir mais de um conjunto de resposta para um mesmo conjunto de entrada. Na GD, isso pode ocorrer se for utilizado algum ponto ``solto''. Um exemplo é apresentado no problema [*].


Problema 5..5   Dado dois pontos A e B, construir um triângulo isósceles $\bigtriangleup$ABC.


Observe que este problema é intrinsecamente ambíguo, possuindo infinitas soluções, pois o ponto $C$ pode localiza-se em qualquer posição da reta mediatriz de $A$ e $B$. Dessa forma, independentemente de $A$ e $B$, o ponto $C$ pode ser movido, modificando a resposta (Figura [*]).

Figura: Para uma mesma posição dos pontos $A$ e $B$, temos potencialmente infinitas soluções para o problema [*]

Com o intuito de identificar este problema de ambiguidade implementamos um algoritmo que faz esta identificação durante a construção do gabarito, avisando o usuário qual é o objeto que torna a construção ambígua (no caso do problema acima seria o ponto $C$). Este aviso é muito útil para corrigir possíveis distrações do professor durante a criação de um exercício. Os programas C.a.R. e Cinderella, não possuem algoritmo semelhante.

Quando o professor faz a construção do gabarito e seleciona os objetos de entrada e de resposta, o algoritmo de identificação de ambiguidade verifica se existe algum objeto-resposta dependente de algum ponto $P$ que não pertence aos objetos de entrada e nem é determinado unicamente por eles. Caso exista, verificamos ao movimentar este ponto $P$ se a posição de algum objeto-resposta se altera.

No exemplo do triângulo $\bigtriangleup ABC$ isósceles, caso um professor crie um gabarito selecionando os pontos A e B como entradas e os segmentos $\overline{AC} e \overline{BC}$ como resposta, o algoritmo identifica a ambiguidade devolvendo uma mensagem ao professor avisando que o ponto $C$ precisa ser selecionado como entrada para remover a ambiguidade do gabarito.

Vale notar que um objeto-resposta que depende de um ponto ``solto'' não pertencente às entradas do exercício, nem sempre terá sua posição modificada quando o ponto ''solto'' é movido. Um exemplo é a construção de um gabarito para o problema [*].

Problema 5..6   Dado a reta r e o ponto A, construir a reta s que passa por A formando um ângulo de 60 graus à r.


Figura: Gabarito para a o problema [*]
r5.3cm
O gabarito para este problema pode ser visto na Figura [*]. Os objetos selecionados como entrada são a reta r e o ponto A, e o objeto selecionado como resposta é a reta s. Observe na construção da Figura [*] que a reta s é dependente do ponto C. Este ponto não foi selecionado como entrada, contudo ao movimentá-lo a posição da reta não se modifica e, portanto, o gabarito não é ambíguo (Figura [*]).

O algoritmo desenvolvido para detectar este caso utiliza parte do mecanismo da validação automática apresentada na seção [*], fazendo a comparação entre a construção na configuração inicial, com a construção na configuração após a movimentação dos objetos.

Figura: Movimentação do ponto C para a posição C'



Subsections
Seiji Isotani 2006-10-04