Quiero generar aletoriamente relación transitiva entre los primeros n números naturales. Para ello, primero creo una matriz triangular \( A = (a_{ij})_{0\leq i < j < n} \) y le asigno aleatoriamente valores verdadero/falso, de forma que \( a_{ij} \) = verdadero sii i está relacionado con j.
Para asegurarme que sea transivita, aplico el siguiente algoritmo:
FOR i=0 TO n-1
FOR j=i+1 TO n-1
FOR k=j+1 TO n-1
IF \( a_{ij} \) AND \( a_{jk} \) THEN \( a_{ik} \) = TRUE
Juraría que es correcto, pero no lo es porque me ha generado (para n=6) una relación que no es transitiva.
¿Dónde está el error y cómo puede solucionarse?