24. Propiedades de las relaciones

Las relaciones pueden clasificarse por propiedades como reflexividad, simetría, antisimetría y transitividad. Estas propiedades permiten reconocer equivalencias, órdenes, conexiones y reglas estructurales.

24.1 Introducción

Una relación no solo se define por los pares que contiene. También puede analizarse según las propiedades que cumple. Estas propiedades describen patrones generales dentro de la relación.

Las propiedades más importantes son reflexividad, simetría, antisimetría y transitividad. Más adelante las usaremos para estudiar relaciones de equivalencia y relaciones de orden.

24.2 Relaciones sobre un mismo conjunto

Muchas propiedades se estudian en relaciones definidas sobre un mismo conjunto. En ese caso, la relación es un subconjunto de A × A.

R ⊆ A × A

Por ejemplo, si A = {1, 2, 3}, una relación sobre A puede contener pares como (1, 1), (1, 2) o (3, 2).

24.3 Relación reflexiva

Una relación R sobre un conjunto A es reflexiva si cada elemento de A está relacionado consigo mismo.

Para todo a ∈ A, se cumple (a, a) ∈ R

Esto significa que todos los pares de la forma (a, a) deben estar presentes.

24.4 Ejemplo de reflexividad

A = {1, 2, 3} R = {(1, 1), (2, 2), (3, 3), (1, 2)}

La relación es reflexiva porque contiene (1, 1), (2, 2) y (3, 3).

24.5 Relación irreflexiva

Una relación es irreflexiva si ningún elemento está relacionado consigo mismo.

Para todo a ∈ A, se cumple (a, a) ∉ R

Por ejemplo, la relación "menor que" sobre números es irreflexiva, porque ningún número es menor que sí mismo.

24.6 Relación simétrica

Una relación es simétrica si cada vez que a está relacionado con b, también b está relacionado con a.

Si (a, b) ∈ R, entonces (b, a) ∈ R

La relación "ser amigo de" suele modelarse como simétrica si la amistad se considera mutua.

24.7 Ejemplo de simetría

A = {1, 2, 3} R = {(1, 2), (2, 1), (2, 3), (3, 2)}

La relación es simétrica porque cada par tiene su par inverso.

24.8 Relación antisimétrica

Una relación es antisimétrica si, cuando a está relacionado con b y b está relacionado con a, entonces necesariamente a = b.

Si (a, b) ∈ R y (b, a) ∈ R, entonces a = b

La relación "menor o igual que" es antisimétrica: si a ≤ b y b ≤ a, entonces a = b.

24.9 Simétrica y antisimétrica no significan lo opuesto

Una relación puede no ser simétrica y tampoco ser antisimétrica. También puede ser ambas en casos especiales.

Relación Simétrica Antisimétrica
{(1, 2), (2, 1)} No
{(1, 2)} No
{(1, 1), (2, 2)}
{(1, 2), (2, 1), (2, 3)} No No

24.10 Relación transitiva

Una relación es transitiva si, cada vez que a está relacionado con b y b está relacionado con c, entonces a está relacionado con c.

Si (a, b) ∈ R y (b, c) ∈ R, entonces (a, c) ∈ R

La relación "menor o igual que" es transitiva: si a ≤ b y b ≤ c, entonces a ≤ c.

24.11 Ejemplo de transitividad

A = {1, 2, 3} R = {(1, 2), (2, 3), (1, 3)}

La relación es transitiva para esa cadena porque contiene (1, 3) cuando aparecen (1, 2) y (2, 3).

24.12 Resumen de propiedades

Propiedad Condición Ejemplo típico
Reflexiva Todo a se relaciona consigo mismo a = a, a ≤ a
Irreflexiva Ningún a se relaciona consigo mismo a < a es falso
Simétrica Si aRb, entonces bRa amistad mutua
Antisimétrica Si aRb y bRa, entonces a = b
Transitiva Si aRb y bRc, entonces aRc ≤, divisibilidad

24.13 Representación en JavaScript

Podemos representar una relación como arreglo de pares y convertir cada par en una clave para consultar pertenencia.

function clave(a, b) {
  return `${a}:${b}`;
}

function crearRelacion(pares) {
  return new Set(pares.map(([a, b]) => clave(a, b)));
}

const conjunto = [1, 2, 3];
const relacion = crearRelacion([
  [1, 1],
  [2, 2],
  [3, 3],
  [1, 2]
]);

console.log(relacion.has(clave(1, 1)));

El Set permite consultar rápidamente si un par pertenece a la relación.

24.14 Verificar reflexividad en JavaScript

function clave(a, b) {
  return `${a}:${b}`;
}

function crearRelacion(pares) {
  return new Set(pares.map(([a, b]) => clave(a, b)));
}

const conjunto = [1, 2, 3];
const relacion = crearRelacion([
  [1, 1],
  [2, 2],
  [3, 3],
  [1, 2]
]);

function esReflexiva(conjunto, relacion) {
  return conjunto.every(elemento =>
    relacion.has(clave(elemento, elemento))
  );
}

console.log(esReflexiva(conjunto, relacion));

La función verifica que cada elemento esté relacionado consigo mismo.

24.15 Verificar simetría en JavaScript

function clave(a, b) {
  return `${a}:${b}`;
}

function crearRelacion(pares) {
  return new Set(pares.map(([a, b]) => clave(a, b)));
}

function esSimetrica(pares, relacion) {
  return pares.every(([a, b]) =>
    relacion.has(clave(b, a))
  );
}

const pares = [
  [1, 2],
  [2, 1],
  [2, 3],
  [3, 2]
];

const relacionSimetrica = crearRelacion(pares);

console.log(esSimetrica(pares, relacionSimetrica));

La función exige que cada par tenga su par inverso.

24.16 Verificar transitividad en JavaScript

Para verificar transitividad, se revisan todas las cadenas posibles (a, b) y (b, c).

function clave(a, b) {
  return `${a}:${b}`;
}

function crearRelacion(pares) {
  return new Set(pares.map(([a, b]) => clave(a, b)));
}

function esTransitiva(pares, relacion) {
  return pares.every(([a, b]) =>
    pares.every(([c, d]) => {
      if (b !== c) return true;
      return relacion.has(clave(a, d));
    })
  );
}

const paresTransitivos = [
  [1, 2],
  [2, 3],
  [1, 3]
];

const relacionTransitiva = crearRelacion(paresTransitivos);

console.log(esTransitiva(paresTransitivos, relacionTransitiva));

Si existe una cadena y falta el par final, la relación no es transitiva.

24.17 Aplicaciones prácticas

Propiedad Aplicación Ejemplo
Reflexiva Identidad o autocomparación Todo usuario es igual a sí mismo
Simétrica Vínculos mutuos Amistad bidireccional
Antisimétrica Jerarquías y órdenes Dependencia o prioridad
Transitiva Propagación de relaciones Si A depende de B y B de C, A depende indirectamente de C

24.18 Errores frecuentes

  • Creer que simétrica y antisimétrica son propiedades opuestas.
  • Olvidar revisar los pares (a, a) al evaluar reflexividad.
  • Confundir transitividad con simetría.
  • Verificar una propiedad mirando solo un ejemplo parcial.
  • Olvidar que estas propiedades se estudian respecto de un conjunto base.

24.19 Qué debes recordar de este tema

  • Una relación reflexiva contiene todos los pares (a, a).
  • Una relación simétrica contiene el par inverso de cada par.
  • Una relación antisimétrica permite pares inversos solo cuando ambos elementos son iguales.
  • Una relación transitiva completa cadenas de la forma aRb y bRc con aRc.
  • Estas propiedades permiten clasificar relaciones de equivalencia y relaciones de orden.
  • En JavaScript, se pueden verificar recorriendo pares y consultando pertenencia con Set.

24.20 Conclusión

Las propiedades de las relaciones permiten identificar patrones estructurales. Reflexividad, simetría, antisimetría y transitividad son herramientas esenciales para estudiar equivalencias, órdenes y conexiones.

En el próximo tema estudiaremos relaciones de equivalencia.