Una relación de orden total permite comparar cualquier par de elementos del conjunto. Es la base de ordenamientos lineales, rankings, prioridades estrictas y listas ordenadas.
En un orden parcial no todos los elementos tienen que ser comparables. En cambio, en un orden total, cualquier par de elementos del conjunto puede compararse.
Esta idea aparece cuando ordenamos números, fechas, prioridades, puntajes, versiones o elementos de una lista según un criterio único.
Una relación R sobre un conjunto A es una relación de orden total si cumple las propiedades de orden parcial y, además, todo par de elementos es comparable.
La relación ≤ sobre números es un orden total. Dados dos números cualesquiera, siempre podemos compararlos.
Para cualquier par de números a y b, al menos una de estas afirmaciones es verdadera: a ≤ b o b ≤ a.
Las fechas también pueden ordenarse totalmente si usamos la relación “ocurre antes o en el mismo momento que”.
Esto permite ordenar eventos, logs, tareas, publicaciones y versiones temporales.
La diferencia principal con el orden parcial es la comparabilidad. En un orden total no puede haber elementos incomparables.
| Relación | ¿Todos los pares son comparables? | Tipo |
|---|---|---|
| ≤ sobre números | Sí | Orden total |
| ⊆ sobre conjuntos | No siempre | Orden parcial |
| Orden alfabético sobre palabras | Sí | Orden total |
| Dependencias entre tareas | No siempre | Orden parcial |
Cuando usamos un criterio de ordenamiento que puede comparar cualquier par de elementos, estamos trabajando con una idea de orden total.
const puntajes = [42, 15, 99, 73, 15];
puntajes.sort((a, b) => a - b);
console.log(puntajes);
El comparador numérico permite decidir el orden relativo de cualquier par de puntajes.
El orden alfabético o lexicográfico también puede verse como un orden total sobre cadenas, siempre que el criterio de comparación esté bien definido.
const nombres = ["Marta", "Ana", "Luis", "Carlos"];
nombres.sort((a, b) => a.localeCompare(b));
console.log(nombres);
Cualquier par de nombres puede compararse alfabéticamente.
Si representamos una relación como pares ordenados, debemos verificar que sea orden parcial y que todos los elementos sean comparables.
function contienePar(relacion, a, b) {
return relacion.some(([x, y]) => x === a && y === b);
}
function todosComparables(conjunto, relacion) {
for (const a of conjunto) {
for (const b of conjunto) {
if (!contienePar(relacion, a, b) && !contienePar(relacion, b, a)) {
return false;
}
}
}
return true;
}
La función revisa todos los pares posibles. Si encuentra dos elementos sin comparación en ningún sentido, la relación no es total.
Representemos el orden ≤ sobre el conjunto {1, 2, 3}.
const A = [1, 2, 3];
const menorOIgual = [
[1, 1],
[1, 2],
[1, 3],
[2, 2],
[2, 3],
[3, 3]
];
function contienePar(relacion, a, b) {
return relacion.some(([x, y]) => x === a && y === b);
}
function todosComparables(conjunto, relacion) {
return conjunto.every(a =>
conjunto.every(b =>
contienePar(relacion, a, b) || contienePar(relacion, b, a)
)
);
}
console.log(todosComparables(A, menorOIgual));
Todos los elementos pueden compararse con todos los demás, por eso la relación cumple la condición de totalidad.
La inclusión entre conjuntos es un ejemplo clásico de orden parcial que no siempre es total.
Como existe al menos un par de elementos incomparables, la relación no es de orden total.
| Uso | Criterio de orden total | Ejemplo |
|---|---|---|
| Ordenar números | Menor o igual | Ranking de puntajes |
| Ordenar fechas | Anterior o igual | Logs del sistema |
| Ordenar textos | Orden lexicográfico | Lista de usuarios |
| Ordenar prioridades | Nivel numérico | Colas de tareas |
| Ordenar versiones | Comparación semántica | Dependencias de software |
Las relaciones de orden total permiten organizar todos los elementos de un conjunto en una secuencia comparable. Son fundamentales para ordenar datos, construir rankings, analizar prioridades y procesar listas.
En el próximo tema estudiaremos diagramas de Hasse, una forma visual de representar órdenes parciales eliminando información redundante.