Problemas de Asignación

40
PROBLEMAS DE ASIGNACIÓN El problema de asignación es una variación del problema original de transporte, variación en la cual las variables de decisión X(i,j) solo pueden tomar valores binarios, es decir ser cero (0) o uno (1) en la solución óptima, lo que supone que la oferta y la demanda están perfectamente alineadas, de hecho ambas son iguales a uno (1). Múltiples son los casos en los que como ingenieros industriales podemos hacer uso del problema de asignación para resolver diversas situaciones, entre los que cabe mencionar se encuentran la asignación de personal a maquinas, herramientas a puestos de trabajos, horarios a maestros, candidatos a vacantes, huéspedes a habitaciones, comensales a mesas, vendedores a zonas territoriales etc. En el modelo de asignación la idea fundamental de resolución es ¿qué fuente satisface mejor el destino?, y dado que hemos asociado el modelo a una gran diversidad de circunstancias esta pregunta puede plantearse en múltiples contextos, como ¿qué candidato es el idóneo para la vacante?, o ¿qué personal es el indicado para la línea productiva?, o ¿qué personal es el mejor para ejecutar determinada tarea?. Una característica

description

Método de asignación

Transcript of Problemas de Asignación

Page 1: Problemas de Asignación

PROBLEMAS DE ASIGNACIÓN

El problema de asignación es una variación del problema original de transporte, variación en la cual las variables de decisión X(i,j) solo pueden tomar valores binarios, es decir ser cero (0) o uno (1) en la solución óptima, lo que supone que la oferta y la demanda están perfectamente alineadas, de hecho ambas son iguales a uno (1). Múltiples son los casos en los que como ingenieros industriales podemos hacer uso del problema de asignación para resolver diversas situaciones, entre los que cabe mencionar se encuentran la asignación de personal a maquinas, herramientas a puestos de trabajos, horarios a maestros, candidatos a vacantes, huéspedes a habitaciones, comensales a mesas, vendedores a zonas territoriales etc.

En el modelo de asignación la idea fundamental de resolución es ¿qué fuente satisface mejor el destino?, y dado que hemos asociado el modelo a una gran diversidad de circunstancias esta pregunta puede plantearse en múltiples contextos, como ¿qué candidato es el idóneo para la vacante?, o ¿qué personal es el indicado para la línea productiva?, o ¿qué personal es el mejor para ejecutar determinada tarea?. Una característica particular del modelo de asignación es que para su resolución no se hace necesario que el número de fuentes sea igual al número de destinos, lo cual es muy común en la vida real teniendo en cuenta su aplicación, pues generalmente la cantidad de aspirantes es exageradamente

Page 2: Problemas de Asignación

superior al número de vacantes (lógicamente haciendo referencia a la aplicación del modelo al contexto de oferta y demanda laboral).

MÉTODO HÚNGARO

Apartándonos un poco de la idea expresada en módulos anteriores respecto a la facilidad de resolver problemas atinentes a la investigación operativa en especial aquellos de transporte mediante el uso de herramientas tecnológicas como lo son WinQSB, LINGO, TORA, STORM, Excel etc.. vale la pena ya sea para fines académicos o de cultura ingenieril realizar la resolución del problema de asignación mediante el algoritmo que se creó para tal fin, como lo es el Método Húngaro. El método Húngaro es un método de optimización de problemas de asignación, conocido como tal gracias a que los primeros aportes al método clásico definitivo fueron de Dénes König y Jenő Egerváry dos matemáticos húngaros. El algoritmo tal como se detallará a continuación está diseñado para la resolución de problemas deminimización únicamente, será entonces cuestión de agregar un paso adicional para abordar ejercicios de maximización.

ALGORITMO HÚNGARO, PASO 1Antes que nada cabe recordar que el método húngaro trabaja en una matriz de costos n*m (en este caso conocida como matriz m*m, dado que el número de filas es igual al número de columnas n = m), una vez construida esta se debe encontrar el elemento más pequeño en cada fila de la matriz.

ALGORITMO HÚNGARO, PASO 2Una vez se cumple el procedimiento anterior se debe construir una nueva matriz n*m, en la cual se consignarán los valores resultantes de la diferencia entre cada costo y el valor mínimo de la fila a la cual cada costo corresponde (valor mínimo hallado en el primer paso).

ALGORITMO HÚNGARO, PASO 3Este paso consiste en realizar el mismo procedimiento de los dos pasos anteriores referidos ahora a las columnas, es decir, se halla el valor mínimo de cada columna, con la diferencia que este se halla de la matriz resultante en el segundo paso, luego se construirá una nueva matriz en la cual se consignarán los valores

Page 3: Problemas de Asignación

resultantes de la diferencia entre cada costo y el valor mínimo de la columna a la cual cada costo corresponde, matriz llamada "Matriz de Costos Reducidos".

ALGORITMO HÚNGARO, PASO 4A continuación se deben de trazar líneas horizontales o verticales o ambas (únicamente de esos tipos) con el objetivo de cubrir todos los ceros de la matriz de costos reducidos con el menor número de líneas posibles, si el número de lineas es igual al número de filas o columnas se ha logrado obtener la solución óptima (la mejor asignación según el contexto de optimización), si el número de líneas es inferior al número de filas o columnas se debe de proceder con el paso 5.

ALGORITMO HÚNGARO, PASO 5Este paso consiste en encontrar el menor elemento de aquellos valores que no se encuentran cubiertos por las lineas del paso 4, ahora se restará del restante de elementos que no se encuentran cubiertos por las líneas; a continuación este mismo valor se sumará a los valores que se encuentren en las intersecciones de las lineas horizontales y verticales, una vez finalizado este paso se debe volver al paso 4.

RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE EL MÉTODO HÚNGARO

EL PROBLEMALa compañía de manufactura "Jiménez y Asociados" desea realizar una jornada de mantenimiento preventivo a sus tres máquinas principales A, B y C. El tiempo que demanda realizar el mantenimiento de cada máquina es de 1 día, sin embargo la jornada de mantenimiento no puede durar más de un día, teniendo en cuenta que la compañía cuenta con tres proveedores de servicios de mantenimiento debe de asignarse un equipo de mantenimiento a cada máquina para poder cumplir con la realización del mantenimiento preventivo. Teniendo en cuenta que según el grado de especialización de cada equipo prestador de servicios de mantenimiento el costo de la tarea varía para cada máquina en particular, debe de asignarse el equipo correcto a la máquina indicada con el objetivo de minimizar el costo total de la jornada. Los costos asociados se pueden observar en la siguiente tabla:

Page 4: Problemas de Asignación

Bryan Antonio Salazar Lopez

PASO 1Encontramos el menor elemento de cada fila

Bryan Antonio Salazar López

PASO 2Construimos una nueva matriz con las diferencias entre los valores de la matriz original y el elemento menor de la fila a la cual corresponde.

Bryan Antonio Salazar López

PASO 3En la matriz construida en el paso anterior se procede a efectuar el paso 1 esta vez en relación a las columnas, por ende escogemos el elemento menor de cada columna. Igualmente construimos una nueva matriz con la diferencia entre los valores de la matriz 2 y el elemento menor de la columna a la cual corresponde cada valor.

Page 5: Problemas de Asignación

Bryan Antonio Salazar López

PASO 4En este paso trazaremos la menor cantidad de combinaciones de líneas horizontales y verticales con el objetivo de cubrir todos los ceros de la matriz de costos reducidos.

Bryan Antonio Salazar LópezComo se puede observar el menor número de líneas horizontales y/o verticales necesarias para cubrir los ceros de la matriz de costos reducidos es igual a 2, por ende al ser menor que el número de filas o columnas es necesario recurrir al paso 5.

PASO 5En este paso seleccionamos el menor elemento de los elementos no subrayados.

Page 6: Problemas de Asignación

Luego se procede a restarse de los elementos no subrayados y a adicionarse a los elementos ubicados en las intersecciones de las líneas, en este caso existe una única intersección (3).

Bryan Antonio Salazar LópezAhora ya efectuado este paso pasamos al paso 4.

Bryan Antonio Salazar LópezAhora observamos cómo se hace necesario trazar tres líneas (la misma cantidad de filas o columnas de la matriz) por ende se ha llegado al tabulado final, en el que por simple observación se determina las asignaciones óptimas.

Page 7: Problemas de Asignación

Bryan Antonio Salazar LópezPor ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.

RESOLUCIÓN DE UN PROBLEMA DE MAXIMIZACIÓN MEDIANTE EL MÉTODO HÚNGARO

EL PROBLEMAUna organización de recolección de café cuenta con tres equipos de siembra y cosecha del mismo (equipos 1, 2, 3). Estos equipos de trabajo se encuentran entrenados para trabajar en condiciones particulares del proceso, condiciones como lo son el tipo de suelo, las condiciones del clima y el tipo de grano. La organización cuenta con cuatro terrenos disponibles para efectuar el proceso de siembra y cosecha (terrenos A, B, C, D), estos terrenos tienen condiciones particulares de suelo, clima y tipo de grano. Cada equipo cuenta con la capacidad de efectuar el proceso en solo uno de los terrenos disponibles, salvo el  equipo 2, que cuenta con una serie de herramientas tecnológicas que le permiten realizar la siembra y cosecha del grano en dos de los terrenos disponibles. Se ha contratado a un Ingeniero Industrial con el objetivo de realizar las asignaciones precisas que maximicen la cantidad de sacos de café cosechados en total. El siguiente tabulado muestra la capacidad (en cientos de sacos) de cosecha de café de cada uno de los equipos dependiendo de cada uno de los terrenos.

Page 8: Problemas de Asignación

RESOLUCIÓNEn este problema debemos recordar un concepto fundamental para la aplicación del método húngaro, este concepto nos dice que el número de filas debe ser exactamente igual al número de columnas. Por ende, la acción a realizar debería ser crear un equipo ficticio, el cual nos deje el tabulado balanceado y a este asignarle un número de sacos cosechados equivalente a cero en cada uno de los terrenos. Sin embargo el problema nos indica que uno de los equipos se encuentra en capacidad de que se le asignen dos terrenos, en este caso crearemos un equipo 2 alternativo (Equipo 2B) el cual nos balanceará el tabulado y nos hará prescindir del equipo ficticio pensado inicialmente. A este equipo 2B que crearemos le corresponderá la misma capacidad de cosecha del equipo 2 (en adelante equipo 2A) según el terreno, lógicamente.

Una vez balanceado el tabulado debemos de cuestionarnos acerca del criterio de optimización, pues recordemos que el método húngaro se encuentra diseñado para ejercicios de minimización. En este caso nuestro objetivo es maximizar, por lo que tendremos que aplicar un paso adicional. Lo primero que debemos hacer es ubicar el mayor valor del tabulado inicial.

Page 9: Problemas de Asignación

En este caso este valor es 15, por lo cual procederemos a realizar la siguiente operación con cada uno de los valores: Restaremos a 15, el valor de cada una de las celdas y este valor quedará en cada una de las celdas correspondientes.

Ahora nuestro tabulado inicial quedará de la siguiente manera:

A partir de este tabulado ya podemos aplicar el algoritmo del método húngaro como se aplicaría en un caso e minimización (normalmente). Ahora encontramos el menor elemento de cada fila.

Page 10: Problemas de Asignación

y se lo restamos a todas las celdas de la fila.

Ahora efectuamos este mismo paso, pero esta vez con las columnas. Elegimos el menor de los valores de cada columna y se lo restamos a cada una de las celdas de la columna correspondiente.

Page 11: Problemas de Asignación

Ahora procedemos a cubrir la mayor cantidad de ceros, con la menor cantidad de líneas, si el número de líneas que empleemos es igual al grado de la matriz (en este caso matriz grado 4, 4x4) habremos llegado al final del ejercicio.

Dado que el número de líneas es igual al grado de la matriz, hemos concluido el algoritmo. Lo único que quedará será asignar a cada equipo el terreno en el que el intercepto es igual a 0 (cero).

Las asignaciones, como es lógico deberán iniciarse por el equipo al cual solo corresponda un terreno, en este caso al Equipo 3 le corresponde el Terreno A. De esta manera al Equipo 1 le corresponde el Terreno D. Mientras tanto el Equipo 2 se encargará de la cosecha en los terrenos B y C. Según el tabulado del problema (recordemos que es de maximización), la cantidad de sacos (expresada en cientos de sacos) será así:

Page 12: Problemas de Asignación

RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE PROGRAMACIÓN LINEAL

EL PROBLEMALa compañía de manufactura "Jiménez y Asociados" desea realizar una jornada de mantenimiento preventivo a sus tres máquinas principales A, B y C. El tiempo que demanda realizar el mantenimiento de cada máquina es de 1 día, sin embargo la jornada de mantenimiento no puede durar más de un día, teniendo en cuenta que la compañía cuenta con tres proveedores de servicios de mantenimiento debe de asignarse un equipo de mantenimiento a cada máquina para poder cumplir con la realización del mantenimiento preventivo. Teniendo en cuenta que según el grado de especialización de cada equipo prestador de servicios de mantenimiento el costo de la tarea varía para cada máquina en particular, debe de asignarse el equipo correcto a la máquina indicada con el objetivo de minimizar el costo total de la jornada. Los costos asociados se pueden observar en la siguiente tabla:

VARIABLES DE DECISIÓNLas variables de decisión de este tipo de problemas es igual a las variables de cualquier modelo de transporte tradicional, es decir variables X i,j donde i {Equipo de mantenimiento 1,2,3} y j {Máquina 1,2,3}, y corresponden a variables binarias en las cuales el valor 1 significa la asignación de un equipo de mantenimiento a una máquina en particular.

RESTRICCIONESDado que un equipo de mantenimiento no puede ser asignado a más de una maquinaria, esta característica debe de restringirse mediante las siguientes inecuaciones.

Page 13: Problemas de Asignación

 X1,1 + X1,2 + X1,3 = 1X2,1 + X2,2 + X2,3 = 1X3,1 + X3,2 + X3,3 = 1 Además debe restringirse el hecho de que cada máquina solo requiere de un equipo de mantenimiento, por ende X1,1 + X2,1 + X3,1 = 1X1,2 + X2,2 + X3,2 = 1X1,3 + X2,3 + X3,3 = 1 Además se hace necesario que para efectos de resolución en cualquier paquete de herramientas se especifique que estas variables corresponden al conjunto de los enteros (por obvias razones) y que deben ser mayores que cero (dado que es un problema de minimización esta restricción se hace muy necesario). Xi,j ≥ 0Xi,j ∈ {Z}

FUNCIÓN OBJETIVOZMIN = 10X1,1 + 9X1,2 + 5X1,3 + 9X2,1 + 8X2,2 + 3X2,3 + 6X3,1 + 4X3,2 + 7X3,3

 

INGRESANDO LOS DATOS A WINQSB

RESULTADOS OBTENIDO MEDIANTE EL WINQSB

Page 14: Problemas de Asignación

Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.

RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE WINQSB - NETWORK MODELING

La facilidad de resolver un problema de asignación mediante WinQSB es aún mayor a la que se incurre mediante programación lineal, y esta metodología justifica el pensar en que el método húngaro es sumamente anacrónico únicamente contemplado para fines históricos y académicos. En el módulo NETWORK MODELING del paquete de herramientas WinQSB se puede resolver el modelo tan solo traspasando los costos de una matriz n*m a otra que brinda el módulo n*m.

INGRESANDO LOS DATOS A WINQSB - NETWORK MODELING

RESULTADOS OBTENIDOS MEDIANTE WINQSB - NETWORK MODELING

Page 15: Problemas de Asignación

Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias. De esta manera se hace evidente cual es la alternativa predilecta para resolver problemas de asignación.

PROGRAMACIÓN LINEAL EN WINQSB

WINQSB es un paquete de herramientas muy versátil que permite el análisis y resolución de modelos matemáticos, problemas administrativos, de producción, proyectos, inventarios, transporte, entre muchos otros. Ofrece una interfaz básica pero amigable, y es la aplicación por excelencia utilizada por profesionales de Ingeniería Industrial y áreas administrativas para la resolución de sus modelos deprogramación lineal, continua o entera.

ACERCA DE LINEAR AND INTEGER PROGRAMMING

Page 16: Problemas de Asignación

"Linear and integer programming "  es el módulo de WinQSB creado con el fin de resolver problemas de programación lineal y programación lineal entera. Un problema de programación lineal implica una función objetivo lineal, un número limitado de restricciones lineales, y una serie de variables que pueden ser acotadas con valores limitados.

SOLUCIÓN DE UN PROBLEMA DE PROGRAMACIÓN LINEAL CON WINQSB

El primer paso para resolver un problema de programación lineal (PL) consiste en el modelamiento matemático, y es en esta fase en la que el profesional de Ingeniería Industrial debe desarrollar su mayor habilidad y destreza. Los pasos para resolver un problema de PL se encuentran en el módulo de programación lineal.

El PROBLEMAUn herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De acero y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales. ¿Cuántas bicicletas de paseo y de montaña deberá fabricar para maximizar las utilidades?

EL MODELO MATEMÁTICOAcero Aluminio Precio de Venta

Bicicleta de paseo (x) 1 kg 3 kg $ 20.000Bicicleta de montaña (y) 2 kg 2 kg $ 15.000Disponibilidad 80 kg 120 kg

Declaración de variables

x = Cantidad de bicicletas de paseo a produciry = Cantidad de bicicletas de montaña a producir

Page 17: Problemas de Asignación

Restricciones de capacidad

Aluminio:x + 2y <= 80

Acero:3x + 2y <= 120

Función Objetivo

Zmax = 20000x + 15000y

INGRESANDO A LINEAR AND INTEGER PROGRAMMING (WINQSB)Una vez se haya ingresado al módulo Linear and Integer Programming, se abrirá una ventana de inicio del módulo, tal como se muestra a continuación:

En esta ventana podremos entonces crear un nuevo problema, o cargar uno que ya hayamos desarrollado. Una vez demos clic en "Nuevo Problema (New Problem)" se abrirá un menú emergente que nos permitirá ingresar los parámetros básicos del problema:

Page 18: Problemas de Asignación

El programa requiere que se definan las especificaciones del problema, que incluye el nombre de problema, el número de variables, el número de restricciones, el criterio de la función objetivo, los tipos de variable por defecto, y el formato de entrada de datos, ya sea en forma de matriz o en forma de modelo normal . El nombre de problema, los nombres de variables, nombres de restricción, el número de variables, número de restricciones , el criterio de la función objetivo, tipos de variables, y la entrada de datos formato se pueden modificar mediante el menú Formato y menú Editar una vez se haya abierto el modelo.Para el problema que estamos abordando es necesario que ingresemos los siguientes parámetros:

Número de variables: 2 (x , y )Número de restricciones: 2 (Disponibilidad de Aluminio y Acero)Función Objetivo: Maximizar (Utilidades)Tipos de variables por defecto: Enteras no negativas (Serán bicicletas, unidades enteras)Formato de entrada: Matriz (Recomendado)

Page 19: Problemas de Asignación

Una vez se registren los parámetros y al dar clic en el botón OK, se mostrará la siguiente ventana, en aras de utilizar las mismas variables que en el modelo, mostraremos el método de renombrar las variables:

Desde el menú EDIT, también podremos modificar el nombre de las restricciones, tal como se aprecia en la siguiente imagen:

La interfaz para ingresar los valores que controlan el problema es la siguiente:

Page 20: Problemas de Asignación

En ella hemos registrado los datos que controlan nuestro problema de estudio. El siguiente paso, consiste en resolver el problema, para ello damos clic en el botón "Solve and Analize": Este comando resuelve el problema . Si se especifica alguna variable como un entero o binario, el programa utilizará automáticamente el método de Branch and Bound (Rama y Cotas) para resolver el problema. El método simplex modificado es utilizado para resolver problemas de programación lineal continua. Esta opción mostrará automáticamente un tabulado resumen de la solución si el problema tiene una solución óptima, mostrará la inviabilidad de análisis si el problema no es factible, o mostrará si el análisis no acotación si el problema no está acotado en función objetivo o valores de las variables.

Page 21: Problemas de Asignación

Este mensaje nos indica que el problema ha sido resuelto, y que existe una solución óptima que ha sido encontrada. Al dar clic en Aceptar, nos llevará al cuadro resumen de la solución:

Page 22: Problemas de Asignación

Interpretar cada uno de los valores del cuadro solución, es cuan o más importante que obtener la solución óptima, dado que de dicha interpretación podremos extraer un buen análisis de sensibilidad:Solution value: Valor solución, es el valor que toman las variables de decisión en nuestra solución óptima, en este caso nos indica que se deberán producir 20 bicicletas tipo paseo y 30 bicicletas tipo montaña. Unit Cost or Profit: El costo unitario o contribución es el valor que les fue asignado a las variables por nosotros en la función objetivo. Total Contribution: Es la contribución total a la solución objetivo, es el producto del valor solución * costo unitario o contribución. Basic Status: Después de que el problema se resuelve , esto representa si la variable es una variable de base, en el límite inferior, o en el límite superior en la tabla simplex final. Allowable MIN, MAX C(j): Para un coeficiente de la función objetivo en particular. Este es el rango en que la base actual de la solución sigue siendo la misma. Objective Function: Nos muestra el resultado de nuestra función objetivo, en este caso la solución óptima tiene una función objetivo (utilidad) de $ 850.000

Page 23: Problemas de Asignación

 Left Hand Side: Del lado izquierdo, es el valor que toma la ecuación de cada restricción luego de reemplazar las variables que la componen por los valores solución. Por ejemplo, la ecuación de la restricción de Acero que es x + 2y <= 80, al reemplazar los valores solución quedará: (20) + 2(30) <= 80, el valor del lado izquierdo será entonces 80. Right Hand Side: Del lado derecho, es el valor asignado por nosotros a las restricciones como máximo o mínimo recurso disponible. Slack o Surplus: Cuando la restricción en cuestión tiene el operador <=, corresponde a una holgura, es decir, se puede interpretar como el recurso no utilizado. Cuando la restricción en cuestión tiene el operador >=, corresponde a un exceso, es decir, se puede interpretar como el recurso utilizado por encima de la restricción de mínimo uso. Shadow Price: El precio sombra de una restricción, es el cambio marginal de la función objetivo cuando el valor del lado derecho de la restricción aumenta en una unidad. En nuestro ejemplo sería así: por cada kg de acero adicional que tengamos disponible, la función objetivo aumentará en $ 1250.

PROGRAMACIÓN LINEAL EN SOLVER

Solver es una herramienta que forma parte de una serie de comandos a veces denominados de "análisis Y si". Con Solver, puede buscarse el valor óptimo para una fórmula de celda, denominada celda objetivo, en una hoja de cálculo. Solver funciona en un grupo de celdas que estén relacionadas, directa o indirectamente,

Page 24: Problemas de Asignación

con la fórmula de la celda objetivo. Solver ajusta los valores en las celdas cambiantes que se especifiquen, denominadas celdas ajustables, para generar el resultado especificado en la fórmula de la celda objetivo. Pueden aplicarse restricciones para restringir los valores que puede utilizar Solver en el modelo y las restricciones pueden hacer referencia a otras celdas a las que afecte la fórmula de la celda objetivo, lo cual lo constituyen en una herramienta adecuada para solucionar problemas de programación lineal, y programación lineal entera.

ALGORITMOS Y MÉTODOS UTILIZADOS POR SOLVER

La herramienta Microsoft Excel Solver utiliza el código de optimización no lineal (GRG2) desarrollado por la Universidad Leon Lasdon de Austin (Texas) y la Universidad Allan Waren (Cleveland). Los problemas lineales y enteros utilizan el Método Simplex con límites en las variables y el método de ramificación y límite (método de branch and bound), implantado por John Watson y Dan Fylstra de Frontline Systems, Inc. El método de branch and bound corresponde al mismo método utilizado por WinQSB para la solución de problemas de programación lineal entera y/o que utilicen variables binarias.

CÓMO HABILITAR EL COMPLEMENTO SOLVER DE EXCEL?

Aquí se encuentra la explicación acerca de cómo habilitar este complemento para las versiones de Microsoft Excel 2007 (izquierda) y 2010 (derecha).Método para Microsoft Excel 2007: El primer paso consiste en dirigirse al botón de "Office", y seleccionar la opción "Opciones de Excel":

Page 25: Problemas de Asignación

Luego, se abrirá una ventana emergente de "Opciones de Excel", en ella vamos a la opción "Complementos" (ubicada en la barra lateral izquierda). Ya en complementos, nos dirigimos a la opción "Administrar: Complementos de Excel" y damos clic en botón "IR":

Luego se abrirá una pequeña ventana emergente, en ella se podrán observar varios complementos junto con una casilla de verificación cada uno. Activamos la casilla de verificación de Solver y damos clic en "Aceptar":

Page 26: Problemas de Asignación

Método para Microsoft Excel 2010: El primer paso consiste en dirigirse a la pestaña "Archivo", dirigirse a la opción "Ayuda" y seleccionar la opción "Opciones":

Luego, se abrirá una ventana emergente de "Opciones de Excel", en ella vamos a la opción "Complementos" (ubicada en la barra lateral izquierda). Ya en complementos, nos dirigimos a la opción "Administrar: Complementos de Excel" y damos clic en botón "IR":

Page 27: Problemas de Asignación

Luego se abrirá una pequeña ventana emergente, en ella se podrán observar varios complementos junto con una casilla de verificación cada uno. Activamos la casilla de verificación de Solver y damos clic en "Aceptar":

Una vez se ha habilitado el complemento, para ambas versiones, Solver se ubicará en la pestaña de "Datos".

SOLUCIÓN DE UN PROBLEMA DE PROGRAMACIÓN LINEAL CON SOLVER

Page 28: Problemas de Asignación

Al igual que para cualquier otro método de resolución, el primer paso para resolver un problema de programación lineal (PL) consiste en el modelamiento matemático, y es en esta fase en la que el profesional de Ingeniería Industrial debe desarrollar su mayor habilidad y destreza. Los pasos para resolver un problema de PL se encuentran en el módulo de programación lineal. Sin embargo, dada la interfaz de Excel, el modelamiento se hace más simple, siempre y cuando nos caractericemos por organizar muy bien la información.

El PROBLEMAUn herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De acero y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales. ¿Cuántas bicicletas de paseo y de montaña deberá fabricar para maximizar las utilidades?

EL MODELO MATEMÁTICOAcero Aluminio Precio de Venta

Bicicleta de paseo (x) 1 kg 3 kg $ 20.000Bicicleta de montaña (y) 2 kg 2 kg $ 15.000Disponibilidad 80 kg 120 kg

Declaración de variables

x = Cantidad de bicicletas de paseo a produciry = Cantidad de bicicletas de montaña a producir

Restricciones de capacidad

Aluminio:x + 2y <= 80

Acero:3x + 2y <= 120

Función Objetivo

Page 29: Problemas de Asignación

Zmax = 20000x + 15000y

INGRESANDO LOS DATOS A EXCELTal cómo se mencionó, la importancia de una correcta organización de la información es vital, proponemos la siguiente plantilla para ingresar los datos de nuestro problema:

El siguiente paso corresponde a registrar la información en la plantilla, de acuerdo a los datos que tenemos en el problema:

El siguiente paso consiste en formular la plantilla, para ello debemos considerar ¿qué pasaría si cambiaran las variables de decisión?... Pues, en caso tal de que las variables sufrieran cambios se alteraría la contribución total, y el inventario de recursos. Por ello, debemos formular en consecuencia:

Page 30: Problemas de Asignación

Ahora que ya tenemos nuestra plantilla formulada, el siguiente paso consiste en utilizar Solver para resolver el modelo, para ello, vamos a la pestaña Datos (En cualquier versión de Office), y seleccionamos el complemento Solver:

Una vez iniciemos Solver se abrirá una ventana emergente llamada "Parámetros de Solver", en ella como primera medida seleccionaremos nuestra celda objetivo (Contribución Total) y seleccionaremos el criterio Maximizar:

Page 31: Problemas de Asignación

El siguiente paso, es indicarle a Solver que debe alcanzar el máximo valor para la celda objetivo mediante la variación de las siguientes celdas (Cambiando las celdas), es decir, le indicaremos cuales son las variables de decisión:

Page 32: Problemas de Asignación

El siguiente paso consiste en asignarle las restricciones a las que el modelo está sujeto, las cuales son restricciones de disponibilidad de recursos:

Page 33: Problemas de Asignación

Lo que nos muestra la imagen anterior es la forma de indicarle la restricción a Solver, para que el inventario usado sea menor o igual al inventario disponible. De igual forma debe hacerse para el recurso de Aluminio.

La siguiente restricción es la de no negatividad, es decir, que las variables de decisión no puedan tomar valores menores que cero.

Si quisiéramos resolver el modelo tal cual como está pudiésemos hacerlo, y obtendríamos quizá una respuesta que distaría de su aplicación práctica, dado que es probable que la respuesta nos de variables continuas, y en la práctica vender 0,6 bicicletas es un poco complicado. Por tal razón, agregaremos una restricción que hace que el ejercicio se resuelva mediante programación lineal entera, indicando que las variables de decisión deban ser enteras:

Page 34: Problemas de Asignación

Hecho esto, damos clic en Aceptar y en Resolver... Podemos observar como las variables de decisión, las restricciones (inventario usado) y la contribución total (celda objetivo) han tomado valores, estos son los valores óptimos según el modelo formulado. Ahora nos aparecerá un cuadro de diálogo que nos preguntará si deseamos utilizar la solución de Solver y unos informes que debemos seleccionar para obtener una tabla resumen de la respuesta y un análisis de sensibilidad que se insertarán como hojas al archivo de Excel:

El informe de sensibilidad arrojado por Solver es mucho más básico que el que nos puede proporcionar WinQSB, sin embargo destacamos la información

Page 35: Problemas de Asignación

referente al "Multiplicador de Lagrange" que corresponde al "Shadow Price de WinQSB" conocido como el precio sombra, es decir, el cambio marginal de la función objetivo cuando el valor del lado derecho de la restricción aumenta en una unidad, en este caso, por cada kg de Acero adicional que dispongamos, la función objetivo aumentaría en $ 1250.

Este mismo ejercicio fue resuelto con WinQSB y TORA arrojando iguales resultados, el archivo de Excel utilizado para esta demostración se adjuntará a continuación para su descarga.http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/programaci%C3%B3n-lineal/