Aprendizaje Interactivo de Teoría de Grafos
Aprendizaje Interactivo de Teoría de Grafos
Guest User
Using app without sign in
Herramienta interactiva de clustering k-means
Divide los puntos en k grupos alternando asignación al centroide más cercano y recálculo
Selecciona un algoritmo y genera pasos para comenzar la visualización
El agrupamiento k-means reparte puntos en k grupos asignando cada punto a su centro de grupo más cercano y moviendo cada centro a la media de sus puntos asignados. Aplicado a redes logísticas, agrupa clientes en territorios de servicio o zonas candidatas de depósito.
El algoritmo de Lloyd alterna dos pasos hasta estabilizarse: asignar cada punto al centroide más cercano y luego recalcular cada centroide como el promedio de sus puntos. Cada iteración cuesta O(nk) cálculos de distancia y el objetivo, la suma de distancias al cuadrado, nunca aumenta. La inicialización importa: k-means++ distribuye los centroides iniciales de forma probabilística y produce resultados esperados demostrablemente mejores. El método del codo o las puntuaciones de silueta guían la elección de k.
En el diseño de cadenas de suministro, k-means crea zonas de reparto y ubica almacenes candidatos en los centros de los grupos antes de la optimización exacta. Más allá de la logística impulsa la segmentación de clientes, la compresión de imágenes, las líneas base de detección de anomalías y la cuantización vectorial en flujos de aprendizaje automático.
Dos pasos que se alternan hasta que nada cambia: asignar cada punto al centroide más cercano, y después mover cada centroide al promedio de los puntos que le fueron asignados.
KMedias(puntos, k):
inicializar k centroides (aleatorio, o k-means++)
repetir hasta que las asignaciones no cambien:
// Paso de asignación
para cada punto p:
grupo[p] = argmin sobre c de distancia(p, c)
// Paso de actualización
para cada centroide c:
c = media de todos los puntos con grupo[p] == c
devolver grupos y centroidesCada paso reduce la suma de cuadrados dentro de los grupos, o la deja igual, y solo hay un número finito de asignaciones posibles, así que el algoritmo termina siempre. Lo que no garantiza es terminar en el óptimo global: converge a un mínimo local que depende por completo de la inicialización, y esa es la limitación práctica que hay que gestionar.
Agrupa cuatro puntos en dos grupos partiendo deliberadamente de una inicialización mala, con ambos centroides dentro del mismo grupo real.
Grafo de ejemplo: Puntos en (1,1), (2,1), (8,8) y (9,8). Centroides iniciales colocados en (1,1) y (2,1), es decir los dos dentro del grupo inferior izquierdo.
La convergencia llega en dos iteraciones y la suma de cuadrados dentro de los grupos cae de 61,333 a 1,0. Fíjate en que el algoritmo se recuperó de una inicialización deliberadamente mala, con ambos centroides dentro del mismo grupo real. Eso no está garantizado: con otros datos, una inicialización así puede dejarte atrapado en un mínimo local. Por eso k-means++ elige los centroides iniciales bien separados y por eso conviene ejecutar el algoritmo varias veces con inicializaciones distintas.
Tiempo: O(n · k · i · d) · Espacio: O(n + k·d)
Cada iteración asigna n puntos comparándolos con k centroides en d dimensiones, lo que da O(n por k por d), y el paso de actualización recorre los puntos una vez más con el mismo coste. Con i iteraciones el total es O(n por k por i por d). En la práctica i suele ser pequeño, del orden de decenas, aunque en el peor caso puede crecer de forma superpolinómica. El espacio es la asignación de grupo por punto más los k centroides. Hallar el agrupamiento óptimo por suma de cuadrados es NP-difícil incluso con k igual a 2, así que el algoritmo de Lloyd que se usa universalmente es una heurística: rápido y bueno en la práctica, sin garantía de optimalidad.
Elige según la forma que esperes en los grupos y según si conoces k de antemano.
| Alternativa | Prefiérela cuando | Coste |
|---|---|---|
| K-medias con k-means++ | La opción por defecto. Grupos aproximadamente esféricos y de tamaño parecido, con k conocido. | O(n · k · i · d) |
| DBSCAN | Los grupos tienen formas arbitrarias o hay ruido, y no conoces k de antemano. | O(n log n) con índice |
| Agrupamiento jerárquico | Quieres un dendrograma y decidir el número de grupos después de ver la estructura. | O(n^2 log n) |
| K-medoides (PAM) | Necesitas que los centros sean puntos reales de los datos, o hay valores atípicos que distorsionan las medias. | O(k·(n-k)^2) |
| Mezcla de gaussianas | Quieres pertenencia difusa y grupos elípticos en lugar de asignaciones duras y esféricas. | O(n · k · i · d^2) |
Leer el artículo completo: Operations Research and Graph Theory
Algoritmos relacionados: Localización de Instalaciones, Rutas con Múltiples Vehículos