El problema de asignación consiste en encontrar la forma de asignar ciertos recursos disponibles (máquinas o personas) para la realización de determinadas tareas al menor coste, suponiendo que cada recurso se destina a una sola tarea, y que cada tarea es ejecutada por uno solo de los recursos. Es uno de los problemas fundamentales de optimización combinatoria de la rama de optimización o investigación operativa en matemática. El modelo se puede aplicar a la asignación de empleados a tareas, de fábricas a productos, de vendedores a territorios, de postores a contratos, etc. Con una sencilla manipulación, el método también se puede aplicar al caso en el que se pretende maximizar cierta cantidad.

Formalmente, el problema de la asignación consiste en encontrar un emparejamiento de peso óptimo en un grafo bipartito ponderado. El problema de asignación es un caso particular del problema de transporte, en el que la oferta en cada origen y la demanda en cada destino son ambas de valor 1.

Historia El problema de asignación tuvo su origen en la revolución industrial, ya que el surgimiento de las máquinas hizo que fuera necesario asignar una tarea a un trabajador.

Thomas Jefferson en 1792 lo sugirió para asignar un representante a cada estado, pero formalmente aparece este problema en 1941, cuando F.L. Hitchcook publica una solución analítica del problema. Pero no es hasta 1955 cuando Harold W. Kuhn plantea el método húngaro, que fue posteriormente revisado por James Munkres en 1957. Dicho método está basado fundamentalmente en los primeros trabajos de otros dos matemáticos húngaros: Dénes Köning y Jenö Egervary.

Hoy en día en pleno apogeo de la globalización surge cada vez con mayor frecuencia el uso de este problema en la rama de la investigación de operaciones. Podemos decir que es la aplicación del método científico para asignar los recursos o actividades de forma eficaz, en la gestión y organización de sistemas complejos. Su objetivo es ayudar a la toma de decisiones.

Definición del problema de asignación En su forma más general, el problema es como sigue: Hay un número de agentes y un número de tareas. Cualquier agente puede ser asignado para desarrollar cualquier tarea, contrayendo algún coste que puede variar dependiendo del agente y la tarea asignados. Es necesario, para desarrollar todas las tareas, asignar un solo agente a cada tarea de modo que el coste total de la asignación sea mínimo.

Este tipo de problemas son lineales, con una estructura de transporte, solo que la oferta en cada origen es de valor uno y la demanda en cada destino es también de valor uno. Sería muy ineficiente resolver este tipo de problemas por medio del método simplex o por medio del algoritmo de transporte. Debido a la estructura propia de los problemas de asignación, existen métodos de solución llamados "algoritmos de asignación" que son más eficientes que el simplex o que el método de transporte.

Los problemas de asignación presentan una estructura similar a los de transporte, pero con dos diferencias: asocian igual número de orígenes con igual número de demandas y las ofertas en cada origen es de valor uno, como lo es la demanda en cada destino.

La restricción importante para cada agente es que será asignado a una sola tarea.

Características El problema de asignación presenta las siguientes características:

El Problema de Asignación debe estar equilibrado, es decir, que la relación entre las ofertas y las demandas sean igual a 1. Un elemento importante para el problema de asignación es la matriz de costos. Si el número de renglones o columnas no son iguales el problema está desbalanceado y se puede obtener una solución incorrecta. Para obtener una solución correcta la matriz debe ser cuadrada. Si el número de agentes y tareas son iguales y el coste total de la asignación para todas las tareas es igual a la suma de los costes de cada agente (o la suma de los costes de cada tarea, que es lo mismo en este caso), entonces el problema es llamado problema de asignación lineal. Normalmente, cuando hablamos de problema de asignación sin ninguna matización adicional, nos referimos al problema de asignación lineal.

Oferta: Cantidad que representa la disponibilidad del artículo en la fuente/fábrica de donde proviene. 4

Demanda: Cantidad de artículos que necesita recibir el destino para cumplir sus necesidades. 4

Diferencias con el Modelo de Transporte y Asignación El problema de asignación es un caso particular del problema de transporte y constituyen la clase más sencilla de los problemas lineales, en el cual los trabajadores representan las fuentes y los puestos representan los destinos.

En el problema de transporte existen orígenes y destinos, y el flujo se realiza desde un origen hacia cada uno de los diferentes destinos. Si en este caso permitimos el flujo en ambos sentidos (de origen a destino y destino a origen) se puede hablar de un problema de orígenes y destinos. A este tipo de problemas se les conoce con el nombre de problemas de transbordo (transhipment problems) o transporte con nodos intermedios. En el caso más general, cada punto de origen o destino puede ser un punto de transbordo, es decir, cada origen puede evitar o transportar a otros orígenes o a distintos; y los destinos pueden transportar a su vez a otros destinos o volver a los orígenes. Un punto conserva su identidad, origen o destino, solamente cuando sea respectivamente, un punto que originalmente disponga de un suministro o un punto que tenga una demanda a satisfacer. En los problemas de asignación las ofertas en cada origen es de valor uno, como lo es la demanda en cada destino; una gran diferencia con respecto a los problemas de transporte.

Formas de representación de un problema de asignación Red Modelo de programación lineal Matriz de costos Tabla de transporte

Asignación Inicial Implica asignar números a las celdas para satisfacer las restricciones de oferta y demanda. Para realizar esto se puede emplear alguno de estos métodos: El método de la esquina noroccidental, el método de menor costo y el método de aproximación de Vogel.

Elementos del problema de asignación miniatura|Tabla de transporte Tabla de transporte: Otra forma de plantear el problema de transporte ( recordemos que el problema de asignación es un caso especial del de transporte) es mediante una tabla llamada tabla de transporte, la cual tiene forma de matriz donde los renglones representan las fuentes y las columnas los destinos o trabajos. En las casillas que se encuentran en la esquina se colocan los coeficientes de costo. Una vez realizado esto, utilizamos alguno de los métodos (Vogel, esquina noroeste, costos mínimos) para obtener una solución inicial Donde no exista un coeficiente de costo se le anota una M. 4

Matriz de costos: Es una matriz cuadrada de n*n, donde cada elemento representa el costo de asignar el enésimo trabajador al enésimo trabajo; renglones = trabajadores. Es la tabla en donde, se identifica, se evalúa y se cuantifica los beneficios económicos, costos y riesgos de los productos/servicios, después de definir la necesidad el alcance y el alineamiento estratégico de los productos/servicios, en donde se evalúa el beneficio total de la propiedad (características). Una vez creada la matriz se demuestra el valor económico para la realización del producto o servicio correspondiente. 4

Matriz de Costos Reducida Es la matriz que se obtiene después de haber restado el elemento más pequeño a cada renglón (reducción de renglones) y restarle a esa nueva matriz el elemento más pequeño a cada columna (reducción de columnas).

Distribución óptima: Sean un conjunto de fragmentos y una red formada por el conjunto de sitios en la cual un conjunto de aplicaciones se ejecutan. El problema de la asignación implica encontrar la distribución óptima de F sobre S. (multi)

Método Simplex: Método de solución de los problemas de programación lineal donde se obtiene una solución factible y óptima (en donde se pueden obtener resultados como solución múltiple, solución no acotada, o que el problema no tenga solución).

Solución Óptima: El conjunto de los vértices del recinto se denomina conjunto de soluciones factibles básicas y el vértice donde se presenta la solución óptima se llama solución máxima (o mínima según el caso).

Red Muchos problemas de redes son más que una representación abstracta de procesos o actividades, tales como el camino crítico en las actividades entre las redes de un proyecto. Para definir lo que es una red necesitaremos saber qué es un nodo.

Nodo: Es uno de los elementos de una lista enlazada, de un árbol o de un grafo. Cada nodo será una estructura o registro que dispondrá de varios campos, y al menos uno de esos campos será un puntero referencia a otro nodo, de forma que, conocido un nodo, a partir de esa referencia, será posible en teoría tener acceso a otros nodos de la estructura.

Una red consiste en una serie de nodos enlazados con arcos (o ramas). La notación para describir una red es , donde es el conjunto de nodos y es el conjunto de arcos. Redes

Casos especiales Oferta y demanda desiguales. Cuando la oferta y la demanda son desiguales, se asigna una actividad ficticia con un costo de cero para mantener la condición de método que deben ser igual número de ofertas y demandas

Problemas de Maximización. Considere un problema de asignación en el que la respuesta a cada asignación es una utilidad en vez de un costo. Considere la matriz de utilidades del problema como la característica nueva la cual consiste en que el número que aparece en cada celdilla representa un beneficio en lugar de un costo.

Problemas con asignación inaceptable. Supóngase que se está resolviendo un problema de asignación y que se sabe que ciertas asignaciones son inaceptables. Para alcanzar esta meta, simplemente asigna un costo arbitrariamente grande representado mediante la letra M. M es un número tan grande que si se le resta un número finito cualquiera, queda todavía un valor mayor que los demás.

Problema de selección: Es un caso especial donde la función u objetivo es maximizar pero el problema se trata igual que una minimización al multiplicar por (-1).

Método de Selección Cuando el problema de asignación es de maximización se le llama problema de selección.

Balanceado Se dice que un problema de asignación se encuentra balanceado, si los recursos totales son iguales a las demandas totales. En caso contrario se dice que no está balanceado el problema.

Además en el modelo, (obtener una matriz cuadrada), en donde número de renglones y es número de columnas.

Para lograr que el modelo este balanceado se pueden agregar trabajadores/tareas ficticias con costos de cero.

Algoritmos y generalizaciones El algoritmo Húngaro es uno de los muchos algoritmos que han sido diseñados para resolver el problema del asignación lineal con un tiempo acotado por una expresión polinómica del número de agentes.

El problema de asignación es un caso especial del problema del transportador, que es un caso especial del problema del flujo de coste mínimo. El problema de asignación también puede ser resuelto por medio del algoritmo simplex (creado en 1947 por el matemático George Dantzig). El método simplex se utiliza, sobre todo, para resolver problemas de programación lineal en los que intervienen tres o más variables. Es un método iterativo que permite ir mejorando la solución en cada paso. Cada especialización tiene algoritmos más eficientes tomando ventaja de su estructura espacial.

Si entonces se asigna el trabajador a la tarea y si entonces no se asigna el trabajador a la tarea . Cij: Costo de asignar al trabajador i la tarea j.

Parámetro M: M es un número muy grande en los problemas de asignación. Se utiliza para representar que al trabajador i no se le puede asignar la tarea j.

Modelo binario