Skip to content

Inicio / Investigación de Operaciones / Calculadora del Problema de Asignación

Investigación de Operaciones y Optimización

Calculadora del Problema de Asignación (Método Húngaro)

En breve: el problema de asignación empareja agentes con tareas uno a uno al mejor total. Ingresa una matriz de costo o valor abajo y elige minimizar o maximizar, y este solucionador con método húngaro devuelve la asignación óptima y el total, manejando números desiguales de agentes y tareas automáticamente.

Resuelve un problema de asignación

empareja agentes con tareas uno a uno → método húngaro → costo o ganancia total óptima

Total óptimo

49

Ingresa una matriz de costos para hallar la asignación óptima.

Qué resuelve el problema de asignación

El problema de asignación responde una pregunta que se repite en operaciones: dados un conjunto de agentes y un conjunto de tareas, donde cada agente puede realizar cada tarea a un costo o con un valor conocido, ¿cómo los emparejas uno a uno para que el total sea el mejor? Cada agente toma exactamente una tarea y cada tarea va a exactamente un agente, y el objetivo es minimizar el costo total, de tiempo, dinero o distancia, o maximizar el valor total, de ganancia, producción o preferencia. Es el modelo detrás de asignar trabajadores a trabajos, máquinas a órdenes, cuadrillas a rutas, proyectos a equipos e incluso jugadores a posiciones, siempre que el emparejamiento sea exclusivo y cada combinación cargue su propio número.

Lo que hace limpio el problema es la exclusividad del emparejamiento. Como cada agente y cada tarea se usan una vez, la decisión es una permutación, un emparejamiento, y el mejor puede hallarse de forma exacta y rápida en lugar de buscarse por ensayo y error.

El número de asignaciones posibles crece explosivamente con el tamaño, así que revisarlas todas es inútil incluso para problemas modestos, pero la estructura especial hace que un algoritmo dedicado, el método húngaro, vaya directo al óptimo.

Y como su padre el problema de transporte, el problema de asignación siempre devuelve una asignación entera limpia, nunca una fraccionaria, porque esa misma estructura de red garantiza soluciones enteras.

Este calculador halla la asignación óptima uno a uno para cualquier matriz de costo o valor que ingreses. Escribe un agente por línea con un costo para cada tarea, elige minimizar o maximizar, y devuelve qué agente toma qué tarea, el total óptimo y, cuando los números de agentes y tareas difieren, qué agentes o tareas quedan sin asignar. Resalta las celdas elegidas en la matriz, grafica el valor de cada emparejamiento y maneja los problemas rectangulares automáticamente. Todo corre en tu navegador y nada de lo que ingresas se guarda.

Cómo funciona este calculador, paso a paso

Empieza eligiendo el objetivo. Selecciona minimizar cuando la matriz contiene costos, tiempos o distancias que quieres lo más pequeños posible, y maximizar cuando contiene ganancias, puntajes o producciones que quieres lo más grandes posible. Luego ingresa la matriz: un agente por línea, y en cada línea el costo o valor de ese agente al hacer cada tarea, separados por espacios o comas, con las tareas en el mismo orden entre líneas. El calculador abre con una minimización resuelta de cuatro agentes y cuatro tareas ya cargada, para que veas una asignación óptima completa y su total antes de cambiar nada.

En cuanto la matriz es válida la herramienta la resuelve con el método húngaro. Si la matriz no es cuadrada, la rellena a cuadrada con agentes o tareas ficticios a costo cero para que el algoritmo pueda correr, luego quita los ficticios de la respuesta reportada. Para una maximización primero convierte los valores a una forma de costo equivalente, resuelve y traduce de vuelta, así que el total que reporta está en las unidades que ingresaste. Todo el cálculo es instantáneo y se vuelve a ejecutar en vivo mientras editas, así que puedes ver cómo cambiar un solo costo reordena el emparejamiento óptimo.

El panel de resultados encabeza con el total óptimo, luego muestra la matriz de costos con las celdas elegidas resaltadas, para que leas la asignación de un vistazo: cada celda resaltada es un emparejamiento agente-tarea en el plan óptimo. Debajo, una nota indica si minimizó o maximizó y lista cualquier agente o tarea sin asignar cuando el problema está no balanceado. Un gráfico muestra el costo o valor de cada emparejamiento elegido, lo que señala los emparejamientos más y menos costosos. Descarga un PDF o CSV de la asignación o compártelo; todo ocurre de forma local.

Cómo el método húngaro llega al óptimo

El motor detrás de este calculador es el método húngaro, el algoritmo diseñado específicamente para el problema de asignación, y su lógica es lo bastante elegante para seguirla aunque el calculador haga la aritmética. Se apoya en una observación simple: restar una constante de cada entrada de una fila, o de una columna, no cambia cuál asignación es óptima, porque cada asignación completa usa exactamente una celda de esa fila o columna y así se reduce en la misma constante. El método usa esa libertad para crear ceros. Resta la menor entrada de cada fila de esa fila, luego la menor de cada columna de esa columna, para que cada fila y columna tenga al menos un cero.

Con los ceros expuestos, la meta se vuelve hallar una asignación completa que use solo celdas de costo cero, que entonces sería óptima en la matriz reducida y por tanto en la original. Si tal asignación existe, el método termina.

Si no, cubre todos los ceros con la menor cantidad posible de líneas por filas y columnas, halla la menor entrada no cubierta, la resta de todas las entradas no cubiertas y la suma a las entradas cubiertas dos veces, lo que crea nuevos ceros sin perder la estructura anterior, e intenta de nuevo.

Cada ronda acerca una asignación completa de costo cero, y el proceso está garantizado a terminar en el óptimo en un número de pasos que crece solo como el cubo del tamaño de la matriz. Este calculador implementa una versión eficiente en tiempo cúbico de exactamente este procedimiento, así que devuelve la asignación óptima probada con rapidez incluso para matrices grandes.

Vale la pena apreciar cuánto importa esa eficiencia, porque la alternativa es inútil. Una búsqueda por fuerza bruta probaría cada emparejamiento uno a uno posible, y el número de esos crece como el factorial del tamaño de la matriz: un problema cinco por cinco tiene 120 asignaciones, uno diez por diez tiene más de tres millones, y uno quince por quince tiene más de un billón, más allá de cualquier enumeración práctica.

El método húngaro esquiva esa explosión por completo trabajando sobre la estructura de costos y no sobre las asignaciones, llegando al óptimo en un número de operaciones que crece solo con el cubo del tamaño, así que duplicar el problema multiplica el trabajo por unos ocho en vez de por un factor astronómico.

Esa brecha entre factorial y cúbico es precisamente por qué existe un algoritmo dedicado y por qué el problema de asignación se considera resuelto de una forma en que muchos problemas combinatorios superficialmente similares no lo están.

Cinco ejemplos resueltos que puedes seguir

Ejemplo 1: el cuatro por cuatro por defecto

El calculador abre minimizando una matriz de costos de cuatro agentes y cuatro tareas, y la asignación óptima tiene un costo total de 49. Leer las celdas resaltadas muestra qué agente se empareja con qué tarea, y puedes confirmar que cada agente tiene exactamente una tarea y cada tarea exactamente un agente. Esta es la forma canónica del problema: una matriz cuadrada, una minimización y un óptimo de apariencia única, y es un buen punto de partida para cambiar un solo costo y observar cómo toda la asignación se reordena en respuesta, lo que a menudo sorprende.

Ejemplo 2: maximizar en su lugar

Cambia el objetivo a maximizar y lee la misma matriz como valores, digamos una tabla de la ganancia que cada vendedor generaría en cada territorio. Ahora el calculador halla la asignación uno a uno con el mayor total, emparejando personas con territorios para maximizar la ganancia combinada. El cambio es un solo control, y demuestra que el modelo es agnóstico respecto a la dirección: costo a minimizar o valor a maximizar, el método húngaro resuelve ambos, y el resultado se reporta en las unidades que ingresaste, así que el total se lee directo como pesos, horas o puntos.

Ejemplo 3: más agentes que tareas

Ingresa una matriz con más filas que columnas, digamos cinco trabajadores pero solo tres trabajos. El calculador rellena la matriz con tareas ficticias a costo cero, resuelve y reporta los tres emparejamientos óptimos trabajador-trabajo más los dos trabajadores sin asignar. Esos agentes sin asignar son la respuesta práctica a quién queda ocioso esta ronda bajo el plan más barato, lo que importa cuando decides no solo cómo asignar sino a quién mantener en reserva, y es información que la matriz cruda no te entrega hasta resolver el problema.

Ejemplo 4: más tareas que agentes

El caso inverso es igual de común: más trabajos que personas para hacerlos. Ingresa más columnas que filas, y el calculador rellena con agentes ficticios, resuelve y reporta qué tareas quedan sin hacer en el plan óptimo. Esto te dice no solo cómo desplegar a las personas que tienes para el mayor efecto, sino exactamente qué trabajo no se cubrirá, para que decidas si contratar, diferir o subcontratar las tareas sobrantes. Hacer explícito el faltante es una de las fortalezas silenciosas de resolver el modelo en vez de asignar a mano.

Ejemplo 5: un caso verificable a mano

Prueba una pequeña matriz tres por tres donde puedas verificar la respuesta tú mismo, por ejemplo costos que hagan un emparejamiento obviamente el más barato. Con solo seis asignaciones posibles en un problema tres por tres, puedes enumerarlas en papel y confirmar que el calculador elige el mínimo, lo que construye confianza antes de confiar en él en una matriz mayor donde la enumeración es imposible. Un empate, donde dos asignaciones distintas comparten el total más bajo, también vale la pena probar: el calculador devuelve una de ellas, y ver que una respuesta distinta igualmente óptima no está mal es una lección útil.

Tres consejos de experto para una solución limpia

Mantén la matriz rectangular y alineada

Cada fila debe tener una entrada por tarea, en el mismo orden. La herramienta balancea los conteos desiguales por ti, pero un costo corrido o faltante dentro de una fila resuelve en silencio un problema distinto.

Lee la lista de sin asignar

En un problema no balanceado, los agentes ociosos o las tareas no cubiertas son resultado real. Te dicen quién sobra o qué no se hará, que a menudo es la decisión que en realidad enfrentas.

Ajusta la dirección a la meta

Minimiza costos y tiempos; maximiza ganancias y puntajes. Resolver la dirección equivocada da una respuesta técnicamente correcta a la pregunta opuesta, así que confirma el interruptor antes de confiar en el total.

Minimizar o maximizar: el mismo modelo, dos direcciones

Una de las comodidades del modelo de asignación es que maneja tanto la minimización como la maximización sin cambio en el método, solo una transformación de los números. Cuando quieres el emparejamiento más barato o rápido, ingresas costos o tiempos y minimizas directamente.

Cuando quieres el emparejamiento más rentable o de mayor puntaje, ingresas valores y maximizas, y el truco estándar es convertir la maximización en una minimización restando cada valor del mayor valor de la matriz.

Eso voltea el problema para que los emparejamientos más valiosos se vuelvan las celdas de menor costo, el método húngaro minimiza como siempre, y la asignación que halla es exactamente la que maximiza el total original.

Este calculador hace esa conversión por ti cuando seleccionas maximizar, y reporta la respuesta de vuelta en tus unidades originales, así que el total que ves es la ganancia o el puntaje máximo real, no la cifra transformada.

La conclusión práctica es que una sola herramienta cubre un amplio rango de decisiones reales que se ven distintas pero comparten la misma estructura: asignar trabajadores a trabajos para minimizar el costo laboral, asignar vendedores a regiones para maximizar el ingreso, asignar máquinas a órdenes para minimizar el tiempo de preparación, asignar egresados a plazas para maximizar la satisfacción de preferencias.

Lo que las une es la exclusividad uno a uno y un total aditivo, y una vez que un problema encaja en esa forma, elegir minimizar o maximizar es la única decisión que necesitas tomar sobre la dirección. Acertar ese interruptor importa, porque minimizar una matriz de ganancia o maximizar una de costo produce una respuesta de apariencia válida pero exactamente equivocada.

Un caso especial del problema de transporte

El problema de asignación no es una especie separada del problema de transporte; es el problema de transporte con cada oferta y cada demanda fijadas en uno. Cada agente es un origen con una unidad que dar, cada tarea es un destino que necesita una unidad, y el costo de enviar esa unidad es el costo del emparejamiento.

Visto así, un problema de asignación podría entregarse al calculador de transporte o incluso al programa lineal general, y la respuesta sería idéntica.

La razón de que reciba su propia herramienta y su propio algoritmo es la eficiencia: la estructura de solo unos es tan especial que el método húngaro la explota para resolver el problema más rápido que el método de transporte, que a su vez le gana al símplex general.

Ese linaje carga una garantía valiosa. Como el problema de asignación es un programa lineal con estructura de red, hereda la propiedad de integralidad: con cualquier matriz de costos, la solución óptima es automáticamente un emparejamiento limpio uno a uno, nunca una fracción de un agente repartida entre tareas. Por eso nunca tienes que redondear el resultado, y es la misma propiedad que hace que el problema de transporte devuelva envíos enteros. El parentesco también aclara cuándo buscar cuál herramienta.

Si tu problema genuinamente empareja conjuntos del mismo tamaño uno a uno, el calculador de asignación y el método húngaro son el instrumento más afilado; si envía cantidades divisibles de orígenes a destinos, encaja el calculador de transporte; y si tiene una estructura más general, el calculador de programación lineal es el recurso.

Los tres viven en el grupo de optimización del hub de Investigación de Operaciones precisamente porque son variaciones del mismo tema.

Hay una razón práctica para que la especialización importe más allá de la velocidad pura. Como el problema de asignación es el más ajustado de los tres modelos, plantear una decisión como una asignación impone una disciplina útil: te obliga a declarar la exclusividad explícitamente, un agente a una tarea, y a confrontar si eso es realmente cierto antes de resolver. Ese planteo a menudo aclara la decisión misma.

Un gerente que dice a la ligera “asigna al equipo a los proyectos” puede descubrir, al construir la matriz, que dos personas se necesitan en un proyecto o que una persona abarcará dos, y ese descubrimiento, impulsado por la forma estricta del modelo, es en sí valioso porque revela la estructura real del problema.

Cuando el marco uno a uno sí encaja, su rigidez rinde en una respuesta rápida, inequívoca y entera; cuando no, el intento de forzarlo es la señal para pasar al modelo de transporte o al lineal general, y la familia de herramientas del calculador está dispuesta para que ese paso sea un movimiento corto y no un reinicio.

Errores comunes a evitar

Un puñado de errores se repite y produce asignaciones equivocadas o engañosas. Vigílalos.

  • Dirección de objetivo equivocada. Minimizar una tabla de ganancia o maximizar una de costo da una respuesta precisa a la pregunta opuesta. Ajusta el interruptor para que coincida con lo que significan los números.
  • Filas desalineadas. La fila de cada agente debe listar un costo por tarea en el mismo orden. Una entrada corrida o faltante resuelve una matriz distinta sin aviso.
  • Ignorar la lista de sin asignar. En un problema no balanceado los agentes ociosos o las tareas no cubiertas son el punto, no sobras que descartar; son quién sobra o qué queda sin hacer.
  • Forzar una matriz cuadrada a mano. No necesitas rellenar la matriz tú mismo; la herramienta lo hace correctamente. Agregar tus propias filas ficticias con costos adivinados puede distorsionar el óptimo.
  • Suponer que el óptimo es único. Los empates son comunes cuando los costos se repiten. Una asignación distinta con el mismo total es igualmente óptima, no un error.
  • Valor no aditivo. El modelo supone que el valor de un emparejamiento no depende de los demás. Si asignar A a la tarea 1 cambia lo que vale B en la tarea 2, el modelo simple de asignación no aplica.
  • Bloquear emparejamientos imposibles con un blanco. Si un agente no puede hacer una tarea, dale a esa celda un costo muy grande (para minimizar) para que el optimizador la evite, en vez de dejarla vacía.

Dónde encaja este modelo en las herramientas

El problema de asignación está en el grupo de optimización de la investigación de operaciones, el más pequeño y afilado de los tres modelos de red que el hub de Investigación de Operaciones agrupa.

Es el caso especial uno a uno del problema de transporte, que a su vez es un programa lineal estructurado, así que los tres forman una familia de lo más específico a lo más general: usa asignación cuando el emparejamiento es exclusivo y del mismo tamaño, transporte cuando cantidades divisibles fluyen de orígenes a destinos, y programación lineal cuando la estructura es arbitraria.

Elegir la herramienta más específica que encaje da la respuesta más rápida y limpia, por lo que el calculador de asignación existe junto a los otros en vez de fundirse en ellos.

Más allá del grupo de optimización, las decisiones de asignación alimentan y se nutren del resto de las herramientas. Los costos en la matriz suelen venir de estudios de tiempos, tarifas o puntajes de capacidad medidos en otra parte, y el rol resultante alimenta los planes de programación y personal. Donde la teoría de colas dimensiona cuántos servidores necesita un sistema, el problema de asignación decide qué servidores o personas específicas toman qué deberes específicos una vez fijado ese número.

En la gestión de proyectos y operaciones el mismo modelo empareja cuadrillas con trabajos y equipos con sitios, y su supuesto de exclusividad es justo lo que lo hace la herramienta correcta para esas decisiones uno a uno y la equivocada cuando las tareas pueden compartirse. Visto en contexto, es el instrumento preciso para el emparejamiento exclusivo, un miembro de la familia de optimización que buscas cuando el emparejamiento debe ser limpio.

Vuelve al hub de Investigación de Operaciones para el conjunto completo de modelos.

El origen del método húngaro

El problema de asignación y su famoso algoritmo tienen una historia genuinamente internacional y en capas. El método fue publicado en 1955 por el matemático estadounidense Harold Kuhn, quien lo llamó método húngaro en homenaje a los dos matemáticos húngaros en cuyos teoremas anteriores se apoya: Dénes König, cuyo trabajo sobre emparejamientos en grafos aportó la columna combinatoria, y Jenő Egerváry, que generalizó un resultado clave. Kuhn construyó sus ideas en un procedimiento práctico de tiempo polinomial, y James Munkres luego lo revisó y refinó, por lo que el algoritmo también se llama de Kuhn-Munkres.

Hay un giro adicional que hace de la historia una favorita en la historia de la optimización: más tarde surgió que el método esencial había sido descrito décadas antes, en la década de 1890, por el matemático alemán Carl Gustav Jacobi, en un trabajo publicado póstumamente en latín y largamente pasado por alto. Ese redescubrimiento no disminuye la contribución de Kuhn, que hizo el método utilizable y lo conectó con la teoría más amplia de la programación lineal y la dualidad que cristalizaba en la década de 1950.

El método húngaro tiene un lugar especial porque fue uno de los primeros problemas de optimización combinatoria demostrados resolubles en tiempo polinomial, un hito en el camino a la teoría moderna de algoritmos eficientes.

Que un procedimiento limpio y seguible a mano sobre una cuadrícula de costos resultara a la vez prácticamente indispensable y teóricamente profundo es por lo que el problema de asignación sigue siendo un fijo de todo curso de investigación de operaciones y por lo que un calculador que aplica el método húngaro a cualquier matriz es una herramienta genuinamente útil.

El alcance del método hoy es silenciosamente enorme. El mismo algoritmo que Kuhn escribió para emparejar personas con trabajos ahora corre dentro de sistemas de rastreo que emparejan detecciones de radar con objetos cuadro por cuadro, dentro de plataformas de transporte que emparejan conductores con pasajeros, dentro de tuberías de visión por computadora que enlazan puntos entre imágenes, y dentro de motores de programación en manufactura y logística. Cada uno de estos es, por debajo, la misma matriz de costos y la misma búsqueda del mejor emparejamiento uno a uno, lo que es una demostración notable de que una abstracción bien elegida sobrevive al problema que la inspiró.

Plantear una decisión real de emparejamiento

Convertir una situación real en un modelo de asignación es sobre todo nombrar los dos conjuntos con limpieza y llenar un número honesto en cada celda. Los agentes son de lo que tienes exactamente uno para dar por emparejamiento, trabajadores, máquinas, cuadrillas, vehículos, y las tareas son aquello con lo que cada agente se emparejará, trabajos, órdenes, rutas, turnos.

La prueba definitoria es la exclusividad: un agente toma una tarea y no más, y una tarea la hace un agente y no más.

Si eso no es literalmente cierto, si un trabajador puede tomar dos trabajos, o un trabajo necesita dos personas, el modelo simple de asignación es la forma equivocada y se necesita un modelo más rico, así que vale la pena verificar la exclusividad antes que nada.

Cada celda contiene el costo o valor de ese emparejamiento específico, y hacerlos comparables es el trabajo real. Cada entrada debe estar en la misma unidad y debe ser genuinamente el costo de ese agente al hacer esa tarea de forma aislada, las horas que tomaría, el dinero que costaría, el ingreso que generaría, el puntaje de preferencia que satisfaría. Si dos de estos importan a la vez, digamos costo y calidad, tienes que combinarlos en un solo número por celda primero, quizá un puntaje ponderado, porque el método optimiza un total. Decide la dirección para que coincida: minimizar para costos, tiempos y distancias; maximizar para ganancias, producciones y puntajes de satisfacción.

Dos situaciones prácticas surgen con suficiente frecuencia para planearlas. Cuando un agente particular simplemente no puede hacer una tarea particular, no dejes la celda en blanco; ingresa un costo prohibitivamente grande (para una minimización) o un valor muy bajo (para una maximización) para que el optimizador trate el emparejamiento como disponible en principio pero nunca digno de elegir.

Y cuando los dos conjuntos son de distinto tamaño, ingresa la matriz rectangular tal cual y deja que la herramienta la balancee en vez de inventar tus propias filas ficticias, porque el relleno debe hacerse a un costo neutral para evitar distorsionar el óptimo.

Con los conjuntos nombrados, las celdas llenas de forma consistente, los emparejamientos imposibles bloqueados y la dirección elegida, el modelo es una imagen fiel de la decisión, y el solucionador hace el resto.

Cuando el uno a uno es la forma equivocada

El modelo de asignación es deliberadamente estrecho, y su estrechez es justamente la exclusividad que lo hace rápido y limpio, así que la frontera honesta de la herramienta es el punto donde esa exclusividad se rompe.

La desviación más común es la capacidad: si un agente puede manejar varias tareas, o una tarea necesita varios agentes, el problema se vuelve un problema de asignación generalizada, donde cada agente tiene una capacidad y cada tarea un requerimiento, y necesita métodos de programación entera en vez del algoritmo húngaro.

Forzar tal problema a una matriz uno a uno, dividiendo agentes en copias, a veces es una aproximación viable pero es fácil de equivocar sutilmente, así que es mejor reconocerlo como un modelo distinto.

Una segunda desviación es el objetivo. El problema de asignación simple minimiza o maximiza una suma, lo que es correcto cuando los totales genuinamente se suman, pero algunas decisiones se preocupan por el peor emparejamiento en vez del total, por ejemplo minimizar el tiempo de terminación más tardío entre todos los trabajos en vez de la suma de tiempos. Ese es el problema de asignación de cuello de botella, y necesita un método distinto porque el objetivo es un máximo, no una suma.

Los valores que interactúan son una tercera desviación: el modelo simple supone que el valor de emparejar A con la tarea 1 no cambia lo que vale B en la tarea 2, y cuando existen sinergias o conflictos entre emparejamientos, el supuesto aditivo falla y aplica un modelo de asignación cuadrática, que es mucho más difícil.

Ninguno de estos es razón para desconfiar del calculador de asignación en las muchas decisiones que sí son uno a uno con un total aditivo; simplemente marcan dónde deberías buscar un modelo más general, y reconocer la forma de tu problema antes de resolver es lo que mantiene la respuesta significativa.

Más allá del total: empates, equidad y segundos criterios

El total óptimo es el titular, pero una buena decisión de emparejamiento a menudo debe considerar más que el número único, y entender qué resuelve y qué no el modelo te evita sobreleer su salida. La sutileza más común son los empates: cuando varios costos son iguales, más de una asignación puede lograr el mismo total óptimo, y el calculador devuelve una de ellas sin implicar que las otras sean peores.

Si tienes una preferencia secundaria, dar a un trabajador particular un trabajo que prefiere cuando el costo es idéntico, evitar una asignación que alguien hizo la última vez, el modelo no la conocerá a menos que la codifiques, lo que puedes hacer ajustando la celda relevante en una cantidad diminuta para que el empate se rompa en la dirección que quieres sin cambiar cuál asignación es genuinamente la más barata.

La equidad es una preocupación relacionada que el total simple ignora.

Minimizar la suma de costos puede concentrar las tareas desagradables o costosas en un agente mientras el total se mantiene el más bajo, lo que puede ser eficiente pero no aceptable, y si el balance entre agentes importa o agregas un término de equidad a cada celda o revisas el gráfico de valor por emparejamiento que dibuja el calculador para ver si la carga está desnivelada.

Ese gráfico, que muestra el costo o valor de cada emparejamiento elegido, es la forma más rápida de detectar una asignación que es óptima en total pero incómoda en distribución, y a menudo motiva un pequeño ajuste manual que cambia un poco de costo total por mucho balance.

Por último, trata los costos como estimaciones y contrasta el plan con el sentido común. Si la asignación óptima empareja un agente con una tarea que la intuición dice que es un mal ajuste, vale la pena investigarlo: o el costo se ingresó mal, o el modelo está revelando un emparejamiento genuinamente contraintuitivo pero mejor, y ambos resultados son valiosos.

El calculador de asignación da el emparejamiento matemáticamente óptimo para los números que proporcionas; juzgar si esos números, y el marco aditivo uno a uno, capturan la decisión real es trabajo del analista, y leer la asignación con sentido crítico en vez de aceptarla a ciegas es lo que convierte la herramienta de una máquina de respuestas en una ayuda para decidir.

Formato de entrada y referencia rápida

Elige minimizar o maximizar, luego ingresa la matriz con un agente por línea y un costo o valor para cada tarea en esa línea, separados por espacios o comas, manteniendo las tareas en el mismo orden entre líneas. La matriz no necesita ser cuadrada; la herramienta la balancea y reporta cualquier agente o tarea sin asignar. La referencia de abajo explica cada parte del resultado.

Cómo leer el resultado de asignación
SalidaQué significa
Total óptimoEl costo total mínimo, o el valor total máximo, sobre todas las asignaciones uno a uno
Celdas resaltadasLos emparejamientos agente-tarea elegidos que componen la asignación óptima
Agentes sin asignarAgentes sin tarea, cuando hay más agentes que tareas
Tareas sin asignarTareas sin agente, cuando hay más tareas que agentes
Valor por emparejamientoEl costo o valor de cada emparejamiento elegido, graficado para comparar

Preguntas frecuentes

¿Qué es el problema de asignación?

El problema de asignación es un modelo de optimización clásico que empareja un conjunto de agentes con un conjunto de tareas uno a uno de modo que el costo total se minimice (o el valor total se maximice). Cada agente puede realizar cada tarea a un costo conocido, y la regla es que cada agente recibe exactamente una tarea y cada tarea exactamente un agente. Responde preguntas como qué trabajador debe hacer qué trabajo, qué máquina debe correr qué orden o qué equipo debe tomar qué proyecto, siempre que el emparejamiento deba ser uno a uno y cada combinación tenga su propio costo o beneficio.

¿Qué es el método húngaro?

El método húngaro, también llamado algoritmo de Kuhn-Munkres, es la técnica estándar para resolver el problema de asignación de forma exacta y eficiente. Trabaja sobre la matriz de costos restando los mínimos de filas y columnas para exponer ceros, luego halla una asignación que use solo celdas de costo cero, ajusta la matriz y repite hasta que exista una asignación completa así. Lleva el nombre de los matemáticos húngaros König y Egerváry, en cuyos teoremas se apoya, y corre en tiempo cúbico, así que resuelve incluso problemas grandes con rapidez. Este calculador lo implementa directamente.

¿Puede maximizar ganancia en lugar de minimizar costo?

Sí. Cambia el objetivo a maximizar e ingresa una matriz de valor o ganancia en lugar de una de costos, y el calculador halla la asignación uno a uno con el mayor valor total. Internamente convierte la maximización en una minimización equivalente restando cada valor del mayor, la resuelve con el método húngaro y reporta el resultado en tus términos originales. Así, la misma herramienta maneja tanto minimizar el costo total como maximizar la ganancia total, el rendimiento o el puntaje de preferencia.

¿Qué pasa si tengo distinto número de agentes y tareas?

El método húngaro clásico necesita una matriz cuadrada, pero los problemas reales suelen ser rectangulares, con más agentes que tareas o al revés. Este calculador lo maneja automáticamente rellenando la matriz a cuadrada con agentes o tareas ficticios a costo cero, resolviendo y luego reportando qué agentes o tareas reales quedaron sin asignar. Así puedes ingresar cualquier matriz rectangular; la herramienta la balancea, halla el emparejamiento óptimo uno a uno del lado menor y te dice qué sobra.

¿Cómo se relaciona el problema de asignación con el de transporte?

El problema de asignación es un caso especial del problema de transporte en el que cada oferta y cada demanda es igual a uno. Podrías resolverlo con el método de transporte o incluso el símplex general, y obtendrías la misma respuesta, pero por esa estructura especial de solo unos, un método dedicado, el algoritmo húngaro, es mucho más rápido y es la opción estándar. Ese parentesco es por lo que OpsCalculators agrupa los dos: ambos son programas lineales con estructura de red, y ambos devuelven soluciones enteras automáticamente.

¿La asignación siempre sale en asignaciones enteras?

Sí. Como el problema de asignación hereda la propiedad de integralidad de su estructura de red, la solución óptima siempre es un emparejamiento limpio uno a uno, nunca una división fraccionaria de un agente entre tareas. Cada agente se empareja con exactamente una tarea y cada tarea con exactamente un agente, que es justo lo que requiere la decisión real. Nunca tienes que redondear ni interpretar un resultado fraccionario, así que cualquier salida que parezca una asignación parcial indicaría un error de entrada y no un óptimo real.

¿Qué significa un agente o tarea sin asignar?

Cuando el problema está no balanceado, un lado tiene miembros que no todos pueden emparejarse. Si hay más agentes que tareas, algunos agentes quedan sin asignar porque no queda tarea para ellos; si hay más tareas que agentes, algunas tareas quedan sin hacer. El calculador reporta esto explícitamente. Son el residuo práctico del desbalance: los trabajadores sin trabajo esta ronda, o los trabajos que no se cubrirán, y saber cuáles deja fuera el plan óptimo a menudo es tan útil como la asignación misma.

¿Los costos pueden ser tiempos, distancias o puntajes en vez de dinero?

Sí. La matriz puede contener cualquier medida por emparejamiento consistente que quieras optimizar: horas para completar, distancia a recorrer, un puntaje de calidad o preferencia, o un costo o ganancia monetaria. Usa minimizar para cosas que quieres en menor cantidad, como tiempo o costo, y maximizar para cosas que quieres en mayor cantidad, como producción o preferencia. Los únicos requisitos son que cada entrada use la misma unidad y que el valor de un emparejamiento no dependa de los demás, que es lo que hace significativo el total aditivo.

¿Siempre hay una asignación óptima única?

No necesariamente. Algunas matrices de costos tienen varias asignaciones distintas que logran el mismo total óptimo, sobre todo cuando muchos costos son iguales. El calculador devuelve una asignación óptima; un emparejamiento distinto con el total idéntico es igualmente válido y no un error. Si los empates importan por una razón secundaria, como preferir a un trabajador para un trabajo cuando los costos son iguales, puedes romperlos ajustando ligeramente el costo relevante y volviendo a resolver.

¿Estas calculadoras guardan los números que ingreso?

No. Este calculador funciona por completo en tu navegador. La matriz de costos que ingresas nunca se envía a nuestros servidores, ni se guarda, ni se comparte. Puedes descargar un PDF o CSV de tu asignación de forma local, y nada sale de tu dispositivo. Consulta nuestra Política de Privacidad para más detalles.

¿La calculadora del problema de asignación es gratis?

Sí. La calculadora del problema de asignación y método húngaro es completamente gratuita, sin cuenta, registro ni muro de pago, y sin límite de uso. Devuelve la asignación óptima uno a uno, el costo total mínimo o la ganancia total máxima, cualquier agente o tarea sin asignar en problemas no balanceados, y un gráfico de valor por emparejamiento, con exportación a PDF y CSV sin costo.

Fuentes, aviso legal y transparencia editorial

Este calculador resuelve el problema de asignación con el algoritmo húngaro (Kuhn-Munkres), el método estándar de investigación de operaciones, manejando matrices rectangulares por relleno a costo cero y la maximización por transformación de costos. Este calculador y esta guía son creados y revisados por el equipo de OpsCalculators; consulta nuestra Política Editorial para saber cómo se investiga, construye y prueba cada herramienta.

Los resultados son estimaciones precisas para planeación y educación, no asesoría de ingeniería certificada, y suponen un emparejamiento exclusivo uno a uno con un total aditivo cuyos valores por emparejamiento no interactúan; los problemas con tareas compartidas o valores que interactúan necesitan un modelo distinto. Valida contra tus propios datos antes de comprometer asignaciones. Consulta nuestro Aviso Legal completo. OpsCalculators.com es operado por MAFHH INTERNATIONAL LTD. Tus datos se procesan en tu navegador y nunca se guardan; consulta nuestra Política de Privacidad.