Herramienta recomendada

Usa Método Húngaro (Asignación) para comprobar el procedimiento con tus propios números y detectar rangos fuera de límite.

Abrir herramienta

Cuándo conviene usar este flujo

  • Cuando necesitas asignar N trabajadores a N tareas, minimizando el costo, el tiempo o la distancia.
  • Cuando deseas maximizar el rendimiento o las ventas al asignar un conjunto de vendedores a diferentes territorios.
  • Cuando tienes un número diferente de ofertas y demandas y necesitas "equilibrar" el modelo con variables ficticias.
  • Cuando quieres comprobar si una asignación heurística es realmente la solución matemática óptima.

Guía paso a paso

  1. Paso 1: Equilibrar la matriz. Asegúrate de que el número de filas sea igual al número de columnas. Si no es así, agrega filas o columnas "ficticias" con un costo de cero (Cij = 0).
  2. Paso 2: Reducción de filas (pi). Identifica el valor mínimo de cada fila. Resta este valor a todos los elementos de su respectiva fila. Esto garantiza que cada fila tenga al menos un cero.
  3. Paso 3: Reducción de columnas (qi). Trabajando con la nueva matriz, identifica el valor mínimo de cada columna y réstalo a todos los elementos de esa columna. Ahora tendrás una matriz reducida con ceros estratégicos.
  4. Paso 4: Trazado de líneas. Dibuja el número mínimo de líneas horizontales y verticales necesarias para tachar todos los ceros de la matriz.
  5. Paso 5: Prueba de optimalidad. Si el número mínimo de líneas trazadas es exactamente igual al tamaño de la matriz (K), ¡has encontrado la asignación óptima! Procede a asignar en las celdas con ceros. Si es menor, debes ajustar la matriz.
  6. Paso 6: Ajuste con Theta (θ). Si no hay optimalidad, busca el valor mínimo no cubierto por ninguna línea. Este valor se resta a todos los números NO cubiertos, se suma a las intersecciones de dos líneas y los valores cubiertos por solo una línea se mantienen iguales. Repite desde el Paso 4.

Errores comunes

  • Olvidar equilibrar la matriz antes de comenzar, asumiendo que el algoritmo funcionará en matrices rectangulares.
  • Tratar de aplicar el algoritmo para maximizar ganancias sin antes convertir la matriz restando todos sus elementos del valor más alto.
  • Trazar líneas de forma ineficiente, usando más líneas de las realmente necesarias (el número de líneas debe ser el estrictamente mínimo matemático).
  • Confundir las asignaciones finales, asignando dos tareas al mismo trabajador o dejando tareas vacías.

Límites y consideraciones

  • El Método Húngaro clásico está diseñado exclusivamente para problemas lineales de "uno a uno" (un trabajador por cada tarea).
  • Al resolverse de forma manual, las matrices mayores a 5x5 pueden volverse complejas y propensas a errores de cálculo humano (restas y trazado de líneas).
  • Requiere que todos los costos sean valores determinísticos, no probabilidades variables.

Ejemplos reales

  • Asignación de choferes a rutas de entrega de paquetería para minimizar el kilometraje total recorrido.
  • Determinación de qué ingeniero liderará qué proyecto de desarrollo de software para minimizar el tiempo estimado de entrega.
  • Asignación de quirófanos a equipos de cirujanos buscando el mayor rendimiento y rentabilidad.

Análisis Dual y Comprobación de Optimalidad

De acuerdo con la teoría de dualidad en programación lineal, cada problema de asignación tiene un problema "dual" asociado. El Método Húngaro, en realidad, está ajustando las variables duales (los reducidos de fila pi y los reducidos de columna qi).

Una vez que se llega a la solución óptima, se puede aplicar una regla matemática brillante para comprobarla: la sumatoria de todas las deducciones realizadas (los pi, qi iniciales, más los ajustes θ) debe ser exactamente igual a la sumatoria de los costos originales (Cij) de las variables de decisión seleccionadas (Xij). Si Z* = ∑ pi + ∑ qi + ∑ θ, tu solución es matemáticamente impecable.

  • Identifica el costo original de cada asignación final.
  • Suma los valores de pi hallados en el primer paso.
  • Suma los valores de qi hallados en el segundo paso.
  • Si el total es igual a tu Función Objetivo Z, la respuesta está garantizada.

Soluciones Factibles vs. Soluciones Óptimas

Es importante distinguir entre las combinaciones posibles y las asignaciones finales. En una matriz cuadrada de tamaño K × K, existen matemáticamente K! (K factorial) posibles soluciones factibles. Por ejemplo, en una matriz de 4x4, hay 4 × 3 × 2 × 1 = 24 soluciones factibles.

Sin embargo, el objetivo del modelo de asignación es encontrar la solución óptima que compone a exactamente K asignaciones individuales (una por cada trabajador-tarea). Es posible que exista más de una combinación que resulte en el mismo costo mínimo (múltiples soluciones óptimas), pero todas estarán formadas por K asignaciones.

Preguntas frecuentes

¿Por qué se llama Método Húngaro?

Fue desarrollado y publicado en 1955 por Harold Kuhn, quien basó gran parte de su algoritmo en los trabajos matemáticos previos de dos matemáticos húngaros: Dénes Kőnig y Jenő Egerváry.

¿Cómo funciona para maximizar ganancias?

Por su naturaleza, el método minimiza. Para problemas de maximización, debes identificar el número más grande de toda la matriz, y luego restar todos y cada uno de los elementos de la matriz original a ese valor máximo. La matriz resultante será una de minimización y se resolverá de manera tradicional.

¿Qué ocurre si hay celdas "prohibidas"?

Si por alguna razón un trabajador no puede realizar una tarea específica, se le asigna a esa intersección un costo muy alto (suele llamarse "M" mayúscula) que asegura que el algoritmo jamás la seleccionará para el resultado óptimo.