Un diagrama de Hasse representa un orden parcial eliminando bucles, flechas transitivas y direcciones redundantes. Así muestra la estructura esencial de una jerarquía.
Las relaciones de orden parcial pueden representarse con pares ordenados, matrices o grafos dirigidos. Sin embargo, esas representaciones a veces incluyen información repetida o evidente.
Un diagrama de Hasse es una forma visual simplificada de representar un orden parcial. Se usa para mostrar jerarquías, inclusiones, divisibilidad, dependencias y estructuras comparables.
Para construir un diagrama de Hasse a partir de un orden parcial se eliminan tres tipos de información:
Tomemos el conjunto {1, 2, 3, 6} con la relación “divide a”.
En el diagrama de Hasse no dibujamos 1 conectado directamente con 6, porque esa relación se deduce por los caminos 1 - 2 - 6 y 1 - 3 - 6.
El diagrama de Hasse del ejemplo anterior puede pensarse así:
Los elementos más grandes según la relación se ubican arriba. Los elementos menores se ubican abajo.
En un diagrama de Hasse se dibuja una línea entre a y b cuando b cubre a a. Esto significa que a < b y no existe un elemento intermedio c tal que a < c < b.
El cubrimiento conserva solo las comparaciones inmediatas.
Para el conjunto {a, b}, consideremos todos sus subconjuntos ordenados por inclusión.
El diagrama de Hasse ubica ∅ abajo, {a} y {b} en el nivel intermedio, y {a, b} arriba.
| Representación | Qué incluye | Qué busca |
|---|---|---|
| Grafo dirigido de la relación | Pares reflexivos, transitivos y dirección explícita. | Mostrar todos los vínculos de la relación. |
| Diagrama de Hasse | Solo relaciones inmediatas de cubrimiento. | Mostrar la estructura esencial del orden. |
Podemos obtener los pares que deberían dibujarse en un diagrama de Hasse eliminando los pares reflexivos y los pares que tienen un elemento intermedio.
const elementos = [1, 2, 3, 6];
function divide(a, b) {
return b % a === 0;
}
function cubre(a, b) {
if (a === b || !divide(a, b)) return false;
return !elementos.some(c =>
c !== a && c !== b && divide(a, c) && divide(c, b)
);
}
const cubrimientos = elementos.flatMap(a =>
elementos
.filter(b => cubre(a, b))
.map(b => [a, b])
);
console.log(cubrimientos);
El resultado contiene solo las relaciones inmediatas que se dibujan como líneas en el diagrama.
Los diagramas de Hasse suelen organizarse por niveles. Los elementos mínimos se ubican abajo y los elementos máximos arriba.
| Nivel | En divisibilidad sobre {1, 2, 3, 6} | Interpretación |
|---|---|---|
| Superior | 6 | Elemento mayor en esta estructura. |
| Intermedio | 2, 3 | Elementos entre 1 y 6. |
| Inferior | 1 | Elemento mínimo. |
Los diagramas de Hasse permiten ver la estructura esencial de un orden parcial sin repetir información que puede deducirse por reflexividad o transitividad. Son especialmente útiles para jerarquías y relaciones de dependencia.
En el próximo tema estudiaremos clausura reflexiva, simétrica y transitiva, una forma de completar relaciones para que cumplan propiedades específicas.