Você está na página 1de 23

Solver y Programacin Lineal

Veremos ahora la utilizacin de Solver para resolver casos de Programacin Lineal, aplicndolas a un ejemplo muy elemental, tomado del libro de Eppen, Gould y Schmidt, Investigacin de Operaciones en la Ciencia Administrativa, 3ra edicin, Editorial Prentice Hall. En ste y en otros libros de Investigacin Operativa, se encontrarn numerosas aplicaciones de Programacin Lineal y no Lineal. Nota Las inestabilidades (por malas soluciones iniciales) del algoritmo de optimizacin no lineal no se presentan en casos de Programacin Lineal, dado que Solver utiliza el Mtodo Simplex.

El Modelo de la Protrac La Protrac Inc., fabrica dos tipos de productos qumicos, E y F, cuya utilidad neta
es de $5000 y $4000 por tonelada respectivamente. una disponibilidad limitada.

Ambos pasan por operaciones de 2 departamentos de produccin, que tienen El departamento A dispone de 150 horas mensuales; cada tonelada de E utiliza
10 horas de este departamento, y cada tonelada de F, 15 horas.

El departamento B tiene una disponibilidad de 160 horas mensuales. Cada


tonelada de E precisa de 20 horas, y cada tonelada de F precisa de 10 horas para su produccin.

Para la produccin global de E y F, se debern utilizar al menos 135 horas de


verificacin en el prximo mes; el producto E precisa de 30 horas y F de 10 horas por tonelada de verificacin . La alta gerencia ha decretado que es necesario producir al menos una tonelada de F por cada 3 de E . Un cliente ha solicitado 5 toneladas, cualquiera sea su tipo, de E o F. Por otro lado, es evidente que no pueden producirse cantidades negativas de E ni de F. Se trata de decidir, para el mes prximo, las cantidades a producir de cada uno de los productos para maximizar la utilidad global.

El Modelo
Variables controlables E : toneladas de tipo E a producir; F: toneladas de tipo F a producir; Modelo Max 5000 E + 4000 F sujeto a 10 E + 15 F 150 20 E + 10 F 160 30 E + 10 F 135 E-3F 0 E +F 5 E 0, F 0 {Funcin objetivo: maximizar la utilidad global} {escribimos ahora las restricciones o requerimientos} {horas del departamento A} {horas del departamento B} {horas de verificacin} {al menos una de F cada 3 E significa E 3 F} {al menos 5 toneladas} {no negatividad}

Antes de introducir este modelo en la planilla, conviene preparar una tabla con los coeficientes de las variables:

Productos: Utilidad marginal: Restricciones Departamento A: Departamento B: Verificacin: Al menos un E cada 3F: Al menos 5:

E 5000 10 20 30 1 1

F 4000 15 10 10 -3 1 150 160 135 0 5

Las restricciones de no negatividad no las hemos incluido en la tabla, pero s las tendremos muy en cuenta al poner restricciones en la planilla. De otro modo, podramos llegar a obtener soluciones absurdas.

Introduccin de Datos
Abra una nueva planilla de clculo. Antes de introducir los datos en la planilla, conviene aumentar el ancho de la columna A para que aparezcan completos los rtulos de esta columna. Las dems columnas pueden quedar sin alterar. Comenzaremos suponiendo que no producimos nada de E ni de F, por lo que escribiremos 0 (cero) en las celdas B5 y C5.

Ingrese: =B4*B5+C4*C5

Ingrese: =sumaproducto(B$5:C$5,B7:C7)

Copie la frmula de la celda D7

Una vez introducidos estos datos, podemos probar con distintas cantidades a producir de E y de F, y ver fcilmente si se cumplen las restricciones, y cul ser la utilidad global. As, por ejemplo, poniendo 6 en la celda B5 y 2 en la celda C5, se respetan todas las restricciones y se obtiene una utilidad global de $38000. Pruebe con stos y otros valores.

Optimizacin
Observe que en la planilla hemos introducido la funcin objetivo en la celda A2; el lado izquierdo de las restricciones en el rango D7:D11, y el lado derecho de las restricciones en el rango F7:F11. Seleccione del men Herramientas / Solver... Aparecer el cuadro de dilogo Parmetros de Solver, en la que ingresaremos los datos. Cuando el dato sea una celda o un bloque de celdas, puede seleccionarlas haciendo clic en la hoja de clculo y arrastrando el mouse.

1. Con el cuadro de dilogo abierto, haga clic en la celda A2 de la planilla. En la


caja debajo de Celda objetivo se borra el contenido anterior y se muestra $A$2.

2. Haga clic en la opcin Mximo. 3. Haga clic en la caja debajo de Cambiando las celdas. Haga clic en la celda B5,
y arrastre el mouse sin soltarlo para seleccionar tambin la celda C5. restricciones. Aparece el cuadro de dilogo Agregar restriccin.

4. Haga clic en el botn Agregar..., debajo de Sujetas a las siguientes

Use la caja debajo de Referencia de la celda: para poner el lado izquierdo de la restriccin. Use la lista desplegable del centro para elegir un smbolo. Use la caja debajo de Restriccin para agregar el lado derecho de la restriccin.

Haga clic en el botn Agregar para agregar ms restricciones, o en el botn Aceptar para finalizar. E

El cuadro de dilogo Parmetros de Solver debe quedar:

Haga clic en el botn Opciones, con lo que aparecer el cuadro de dilogo Opciones de Solver.

Como nuestro modelo es lineal, seleccione la casilla de verificacin Adoptar modelo lineal, y luego haga clic en el botn Aceptar. Resolucin Una vez introducidos estos datos, seleccione Resolver, y Solver, si todo anduvo bien, mostrar un mensaje con:

Utilizar solucin de Solver planilla} Restaurar valores originales Guardar escenario Informes Seleccione:

{cambia los valores de las variables en la {deja los valores iniciales de las variables}
{guarda los valores de las variables como escenario}

{hasta 3 tipos de informes, en hojas separadas}

Utilizar solucin de Solver y elija los 3 informes. Para esto, seleccione el primero y mantenga apretada la tecla del mouse, hasta seleccionar los 3, o ubquese en el primero y mantenga apretada la tecla Alt. Despus de unos segundos, Solver habr agregado 3 hojas de clculo en su libro, una por cada informe. stos son: El Informe de Respuestas, el Informe de Sensibilidad y el Informe de Lmites.

Los Datos de la Planilla

Si no ha cometido errores, Solver ha encontrado los valores ptimos de las variables controlables, y, por tanto, en las celdas B5 y C5 se muestra la solucin ptima: Producir 4.5 toneladas de E y 7 de F. La utilidad mxima del mes prximo ser $50500.

El Informe de Respuestas
Los informes de Solver son tan claros que apenas merecen aclaracin. La razn principal de su claridad se debe a que bajo cada columna Nombre, pone la interseccin de fila y columna de rtulos. As, por ejemplo, observe que en Celdas Cambiantes, debajo de Nombre, el informe puso: Produccin: E; "Produccin" es el rtulo de la fila y "E" el de la columna de la planilla. Es importante notar esto, ya que puede tener en cuenta esta caracterstica en sus futuros problemas.

Microsoft Excel 5.0 Informe de respuestas Hoja de clculo: [PLEXC1.XLS]Hoja1 Informe creado: 15/3/98 15:03 Celda objetivo (Mx) Celda Nombre $A$2 Utilidad global Celdas cambiantes Celda Nombre $B$5 Produccin: E $C$5 Produccin: F

Valor original 0

Valor final 50500

Valor original 0 0

Valor final 4.5 7

Restricciones Celda Nombre Valor de la celda Frmula Estado Divergencia $D$7 Departamento A: Valor 150 $D$7<=$F$7 Obligatorio 0 $D$8 Departamento B: Valor 160 $D$8<=$F$8 Obligatorio 0 $D$9 Verificacin: Valor 205 $D$9>=$F$9 Opcional 70 $D$10 Una F cada 3E: Valor -16.5 $D$10<=$F$10 Opcional 16.5 $D$11 Al menos 5: Valor 11.5 $D$11>=$F$11 Opcional 6.5 $B$5 Produccin: E 4.5 $B$5>=0 Opcional 4.5 $C$5 Produccin: F 7 $C$5>=0 Opcional 7 En Celda Objetivo aparece la celda de la funcin objetivo, el Nombre, el valor inicial antes de optimizar y el valor ptimo (valor final). En Celdas Cambiantes aparecen las celdas de las variables controlables, el nombre, la solucin inicial o valores iniciales de las variables y la solucin ptima (valor final). En Restricciones se tiene:

Valor de la celda: es el valor que toma el lado izquierdo de cada restriccin en la

solucin ptima. As, por ejemplo, en la primera restriccin, de horas del departamento A, se tiene, al remplazar: 10*E+15*F = 10*4.5 + 15*7 = 150 horas utilizadas en el departamento A.

Frmula: nos recuerda las restricciones que hemos introducido, incluyendo si es de


, = o .

Estado: Nos indica si la restriccin se cumple exactamente, con una igualdad, y no


hay un margen. En otras palabras, nos indica si la restriccin es activa.

Divergencia: es el margen que tiene cada restriccin. Si la desigualdad es ,


entonces es el lado derecho de la restriccin (la constante) menos el lado izquierdo. Si la desigualdad es , es el lado izquierdo menos el lado derecho (la constante). Si la restriccin es activa, desde luego el margen ser cero.

El Informe de Sensibilidad
Microsoft Excel 5.0 Informe de sensibilidad Hoja de clculo: [PLEXC1.XLS]Hoja1 Informe creado: 15/3/98 15:04 Celdas cambiantes Celda Nombre $B$5 Produccin: E $C$5 Produccin: F Restricciones Celda $D$7 $D$8 $D$9 $D$10 $D$11 Valor Sombra Restriccin Aumento Disminucin Nombre final precio lado derecho permisible permisible Departamento A: Valor 150 150 150 90 47.14285714 Departamento B: Valor 160 175 160 73.33333333 40 Verificacin: Valor 205 0 135 70 1E+30 Una F cada 3E: Valor -16.5 0 0 1E+30 16.5 Al menos 5: Valor 11.5 0 5 6.5 1E+30 Valor Costo Coeficiente Aumento Disminucin final reducido objetivo permisible permisible 4.5 0 5000 3000 2333.333333 7 0 4000 3500 1500

Celdas Cambiantes Valor: nos recuerda los valores ptimos de las variables controlables.

Costo reducido: indica cunto deber cambiar el coeficiente de la funcin objetivo

para que la variable tome un valor positivo. En este caso, las dos variables controlables son positivas (conviene producir ambos productos), por lo que su costo reducido es cero.

Coeficiente objetivo: son los coeficientes de la funcin objetivo. Aumento permisible: incremento admisible en los coeficientes de la funcin
objetivo sin que cambien los valores ptimos de las variables controlables.

Disminucin permisible: disminucin admisible en los coeficientes de la funcin objetivo sin que cambien los valores ptimos de las variables controlables. Restricciones Valor final: es el valor que toma el lado izquierdo de cada restriccin en la solucin
ptima. As, por ejemplo, en la primera restriccin, de horas del departamento A, se tiene, al remplazar: 10*E+15*F = 10*4.5 + 15*7 = 150 horas utilizadas en el departamento A.

Sombra precio: son los precios duales, o precios sombra de los recursos (o
requerimientos) indicados en las restricciones. Indican la mejora en el valor de la funcin objetivo si se "relaja" una desigualdad, o el empeoramiento si se la restringe. Por ejemplo, si dispusiramos de ms tiempo en el Departamento B, podramos mejorar la utilidad global incrementndose en $175 por cada hora extra.

Restriccin lado derecho: indican los lados derechos de las desigualdades.

Aumento permisible: representa en cunto puede incrementarse el lado derecho


(Constante) sin que se altere el precio Dual. Por ejemplo, se puede incrementar el nmero de horas extras del Departamento B, mejorando en $175 por cada hora extra. Sin embargo, este anlisis es vlido slo para un incremento de hasta 73.3333 horas. Si disponemos de ms de 160+73.3333 horas, el precio dual ser otro, seguramente menor.

Disminucin admisible: indica en cunto puede disminuir el lado derecho de la


restriccin sin que cambie el precio dual de un recurso (o requerimiento).

El Informe de Lmites Microsoft Excel 5.0 Informe de lmites


Hoja de clculo: [PLEXC1.XLS]Hoja1 Informe creado: 15/3/98 15:04

Celda objetivo Celda Nombre $A$2 Utilidad global

Valor 50500

Celdas cambiantes Celda Nombre Valor $B$5 Produccin: E 4.5 $C$5 Produccin: F 7

Lmite Resultado inferior objetivo 2.166666667 38833.33333 1.5 28500

Lmite Resultado superior objetivo 4.5 50500 7 50500

Celdas Cambiantes Valor: nos recuerda los valores ptimos de las variables controlables. Lmite inferior: es el menor valor que puede tomar la variable (suponiendo que las dems mantienen el valor ptimo encontrado), y satisfacer todas las restricciones. Resultado objetivo: valor de la funcin objetivo si la variable toma el valor del lmite inferior y las dems mantienen el valor ptimo encontrado. Lmite superior: es el mayor valor que puede tomar la variable (suponiendo que las dems mantienen el valor ptimo encontrado) sin violar las restricciones. Resultado objetivo: valor de la funcin objetivo si la variable toma el valor del lmite superior y las dems mantienen el valor ptimo encontrado.

Conclusiones
El informe de respuestas de Excel no slo brinda la solucin ptima de un Programa Lineal, sino tambin los Precios Duales correspondientes a cada restriccin y el Anlisis de Sensibilidad de los coeficientes de la funcin objetivo y de las constantes del lado derecho de cada restriccin. Esta informacin ha demostrado ser muy til en el anlisis de diversos problemas.

Opciones de Solver

Pueden controlarse las caractersticas avanzadas del proceso de solucin, cargarse o guardarse definiciones de problemas y definirse parmetros para los problemas lineales y no lineales. Cada opcin tiene una configuracin predeterminada adecuada a la mayora de los problemas.

Tiempo mximo Limita el tiempo que tarda el proceso de solucin. Puede introducirse un valor de hasta 32.367, pero el valor predeterminado 100 (segundos) es adecuado para la mayor parte de los problemas. Iteraciones Limita el tiempo que tarda el proceso de solucin, limitando el nmero de clculos provisionales. Aunque puede introducirse un valor de hasta 32 767, el valor predeterminado 100 es adecuado para la mayor parte de los problemas pequeos. Precisin Controla la precisin de las soluciones utilizando el nmero que se introduce para averiguar si el valor de una restriccin cumple un objetivo o satisface un lmite inferior o superior. Debe indicarse la precisin mediante una fraccin entre 0 (cero) y 1. Cuantos ms decimales tenga el nmero que se introduzca, mayor ser la precisin; por ejemplo, 0,0001 indica una precisin mayor que 0,01. Cuanto mayor sea la precisin, ms tiempo se tardar en encontrar una solucin. Tolerancia El porcentaje mediante el cual la celda objetivo de una solucin satisface las restricciones externas puede diferir del valor ptimo verdadero y todava considerarse aceptable. Esta opcin slo se aplica a los problemas que tengan restricciones enteras. Una tolerancia mayor tiende a acelerar el proceso de solucin. Convergencia Si el valor del cambio relativo en la celda objetivo es menor que el nmero introducido en el cuadro Convergencia para las ltimas cinco iteraciones, Solver se detendr. La convergencia se aplica nicamente a los problemas no lineales y debe indicarse mediante una fraccin entre 0 (cero) y 1. Cuantos ms decimales tenga el nmero que se introduzca, menor ser la convergencia; por ejemplo, 0,0001 indica un cambio relativo menor que 0,01. Cuanto menor sea el valor de convergencia, ms tiempo se tardar en encontrar una solucin.

Adoptar modelo lineal

Seleccinelo cuando todas las relaciones en el modelo sean lineales y desee resolver un problema de optimizacin o una aproximacin lineal a un problema no lineal. Mostrar resultado de iteraciones Seleccinelo para que Solver muestre temporalmente los resultados de cada iteracin. Esta opcin es vlida slo en modelos no lineales. Usar escala automtica Seleccinelo para utilizar la escala automtica cuando haya grandes diferencias de magnitud entre las entradas y los resultados; por ejemplo, cuando se maximiza el porcentaje de beneficios basndose en una inversin de medio milln de dlares. Adoptar no-negativo Hace que Solver suponga un lmite de 0 (cero) para todas las celdas ajustables en las que no se haya definido un lmite inferior en el cuadro Restriccin del cuadro de dilogo Agregar restriccin. Cargar modelo Muestra el cuadro de dilogo Cargar modelo, donde puede especificarse la referencia del modelo que desee cargar. Guardar modelo Muestra el cuadro de dilogo Guardar modelo, donde puede especificar la ubicacin en que desee guardar el modelo. selo nicamente cuando desee guardar ms de un modelo con una hoja de clculo; el primer modelo se guardar de forma automtica.

Opciones para Modelos No Lineales Estimacin Especifica el enfoque que se utiliza para obtener las estimaciones iniciales de las variables bsicas en cada una de las bsquedas dimensionales. Lineal Utiliza la extrapolacin lineal de un vector tangente.

Cuadrtica Utiliza la extrapolacin cuadrtica, que puede mejorar en gran medida los resultados de problemas no lineales. Derivadas Especifica la diferencia que se utiliza para estimar las derivadas parciales del objetivo y las funciones de la restriccin. Progresivas Se utilizan para la mayor parte de los problemas, en que los valores de restriccin cambien relativamente poco. Centrales Se utiliza en los problemas en que las restricciones cambian rpidamente, especialmente cerca de los lmites. Aunque esta opcin necesita ms clculos, puede ser til cuando Solver devuelve un mensaje diciendo que no puede mejorarse la solucin. Buscar Especifica el algoritmo que se utiliza en cada iteracin para determinar la direccin en que se hace la bsqueda. Newton Utiliza un mtodo cuasi Newton que normalmente necesita ms memoria pero menos iteraciones que el mtodo de gradiente conjugado. Gradiente Conjugado Necesita menos memoria que el mtodo Newton, pero normalmente necesita ms iteraciones para alcanzar un determinado nivel de precisin. Use esta opcin cuando se trate de un problema grande o cuando al hacer un recorrido a travs de iteraciones se descubra un progreso lento.

Bibliografa Chapra, Steven y Canale, Raymond - Mtodos Numricos para Ingenieros - Mac Graw Hill - 1988.

Eppen, Gould y Schmidt - Investigacin de Operaciones en la Ciencia Administrativa - 3ra edicin, Editorial Prentice Hall - 1996.

CONTINUACIN DE LA UTILIZACIN DE SOLVER EN LA PROGRAMACIN LINEAL (08/09/09) PROGRAMACIN LINEAL ENTERA


El problema con la programacin lineal entera, es que no existe un algoritmo rpido para hallar la solucin. El mtodo ms frecuentemente utilizado, se llama Branch and Bound (ramificar y acotar), y es una adaptacin de la solucin continua. Este algoritmo toma la solucin del programa continuo y la divide en dos problemas si sta no fue entera (si lo hubiera sido ya habramos terminado, pero eso slo sucede en las pelculas), cada uno con una restriccin de ms. Por ejemplo, si la solucin continua fue X1 = 7.25, se dividira en dos problemas, uno con la restriccin X1<=7 y el otro con la restriccin X2 >= 7 . Se encuentran las soluciones, para estos problemas y se comparan, le mejor gana; si no es entera se repite el proceso de nuevo. Como se puede ver, ste mtodo consume muchos ms recursos de mquina; en un problema de Planeacin Agregada, con unas cien variables y unas sesenta restricciones, y algo de mala suerte, se podran estar resolviendo unos cuantos miles de problemas continuos asociados, y cada uno de estos podra consumir bastante tiempo. Tal vez con los nuevos estudios en mtodos de punto interior, como el de Karmakar, se pueda derivar un mtodo mucho ms eficiente que el de branch and bound. A propsito, Solver utiliza branch and bound para la programacin lineal entera. Resolver: Max Z = 3 X1 + 4X2 4 X1 + 2X2 <= 8 2X1 + 5X2 <= 10 X1, X2 enteros positivos. Lo modelamos de igual manera que el ejemplo continuo, y en las restricciones especificamos que X1 y X2 son enteros. No es ms.

Y en las restricciones...

Para los programas Lineales enteros es muy importante que Solver, est debidamente configurado para un nmero suficiente de iteraciones, de tiempo, de precisin y de convergencia, para esto ver los detalles de Solver.

PROBLEMAS DE TRANSPORTE
A alguien quin no haya tomado un curso de Investigacin de Operaciones, el ttulo de sta pgina le recordar los trancones de las seis, los huecos o cosas por el estilo. A mi me pas, que buscando algo especfico sobre teora de cuerdas (lo ms avanzado en fsica), llegue a la pgina de una ferretera donde vendan todo tipo de ... cuerdas!!! El mtodo de transporte es un problema clsico dentro de la programacin matemtica; se analiza la manera de obtener el costo mnimo de transportar una serie de productos desde n fabricas, hasta m almacenes; cada envo tiene un costo particular que estar en funcin de la distancia, el tipo de carretera, la cantidad y otras variables. Como siempre, se entiende mejor con un ejemplo: (Tomado de un libro, es que me da algo de locha inventarme uno)

La ms famosa empresa dentro de las aulas universitarias, la empresa XXX, tiene tres fabricas donde manufactura su famossimo producto P, con capacidades de produccin de 25 (unidades por micronanosegundo, por segundo, hora, ao... no importa, es lo mismo para todos), 25,10 y debe surtir a 4 almacenes con demandas de 20,15,20,5 (unidades por micronanosegundo, segundos.. o lo que sea, siempre y cuando se maneje la misma unidad temporal en todo el problema). Los costos de enviar desde cualquier fabrica a cualquier almacn se pueden ver en la tabla abajo.

Capacidad de Produccin (u/t) Fabrica 1 25 Fabrica 2 25 Fabrica 3 10

Demanda de los Almacenes (u/t) Almacn 1 20 Almacn 2 15 Almacn 3 20 Almacn 4 5

Costo de Transporte desde la Fabrica i al almacn j $/unid Almacn 1 Almacn 2 Almacn 3 Fabrica 2 2 0 1 Fabrica 5 9 8 2 Fabrica 6 4 3 3 Almacn 4 4 3 2

Okay, Ahora la pregunta del milln es cunto se debe enviar desde cada fabrica a cada almacn con el fin de obtener el mnimo costo. Min Z = 2X11 + 2X12 +0X13 +4X14 +5X21 +9X22 +8X23 +3X24 +6X31+4X32 + 3X33 +2X24 Sujeto a: 1. Satisfacer la demanda de los almacenes: X11+X21+X31 >= 20 X12+X22+X32 >= 15 X13+X23+X33 >= 20 X14+X24+X34 >= 5 2. No sobrepasar la capacidad disponible de las fabricas X11+X12+X13+X14 <= 25 X21+X22+X23+X24 <= 25 X31+X32+X33+X34 <= 10 3. Por supuesto la condicin de no negatividad y todas las variables enteras. Bueno, aqu la formulacin es un poco diferente a como lo hicimos en los dos ejemplos anteriores. La idea aqu es la de tener dos matrices y dos vectores; una matriz se corresponder con las variables de decisin, y la otra matriz con los costos. La primera la dejamos simplemente sealada, con algn formato para distinguirla, y la otra la digitamos. La celda objetivo ser la suma del producto de cada una de las posiciones de cada matriz con su correspondiente en la otra; esto lo podemos hacer rpidamente con la funcin "sumaproducto" del Excel. Las restricciones estarn en las columnas de "Consumo" y de "entregado". Primero preparemos el formato del problema, as:

Las variables de decisin estn en el rango [B4-E6]. La celda objetivo sera algo as como esto: = B4*B10+C4*C10+... pero eso sera muy largo. La manera corta es:=SUMAPRODUCTO(B4:E6,B10:E12). La cantidad entregada a cada almacn se ve en la fila 8. Por ejemplo para la celda B8, su frmula es:=B4+B5+B6. La restriccin de la capacidad de las fabricas la escribiremos en funcin del consumo en la columna G; por ejemplo para la celda G4:=B4+C4+D4+E4. Las restricciones las escribiremos en el cuadro de dilogo como lo entregado debe ser mayor o igual a lo requerido, y lo consumido debe ser menor igual que lo disponible, tal como se puede ver en la captura siguiente:

Las variables de decisin deben ser enteras. Luego de introducir los datos en ste cuadro de dilogo y de hacer click en resolver, se hallar la solucin. Nota: Muy tal vez, obtendr que no encuentra una respuesta, esto depende de la configuracin actual de su Solver, si es as, visite el apartado de Detalles del Solver. Sino tendr la siguiente respuesta:

PROBLEMAS DE ASIGNACIN Muchas de las situaciones en la vida exigen una de dos respuestas posibles: si o no. As es que podemos representar stas posibilidades con los valores 0 (no) y 1 (si), y aprovechar las matemticas para que nos den una mano ante decisiones difciles; a esto es lo que solemos llamar -por obvias razonesProgramacin Binaria. Una de las muchsimas aplicaciones de la Programacin Binaria, es el problema de la Asignacin. Este mtodo analiza el problema de asignar un cierto nmero de recursos a un determinado nmero de tareas, con base en algn tipo de valoracin para cada recurso. Cada recurso, podr ser asignado a una sola tarea. Se debe asignar el recurso i a la tarea j ? Si o no? He ah la cuestin, =p Ejemplo: Se tienen tres personas (recurso) para asignarlos a tres labores diferentes. Cada uno de ellos puede efectuar cualquiera de las tareas existentes, pero con diferente nivel de especialidad. Sus respectivos jefes los han calificado de 1 a 10, para cada tarea en particular. Por supuesto el objetivo es el de asignar a las personas de manera tal que la calificacin en conjunto sea la mxima. Ver tabla de calificaciones abajo. Nota: Tambin funciona para minimizar. Por ejemplo, en vez de calificacin podran ser tiempos de manufactura de cualquier tipo de productos, y el objetivo sera el de minimizar el tiempo total de manufactura. Calificacin de Operario por Tarea Operario 1 Operario 2 Operario 3 Tarea 1 8 9 6 Tarea 2 6 7 5 Tarea 3 4 3 7

Xij = 1 si asignamos el operario i a la tarea j, de lo contrario 0 En ste orden de ideas, nuestro deseo es maximizar la calificacin total al asignar los operarios a las diferentes tareas.

Max Z = 8X11 + 6 X12 + 4 X13 + 9X21 +7 X22 +3X33 +6X31 +5X32 +7X33 Sujeto a: 1. Cada operario slo puede tener una tarea asignada

X11 +X12 +X13 = 1 (Es decir, slo se puede responder Si una sla vez.) X21 +X22 +X23 = 1 X31 +X32 +X33 = 1 2. Cada tarea puede tener un slo operario asignado (la restriccin anterior no necesariamente garantiza esto, seguro!) X11 + X21 + X31 = 1 X12 + X22 + X32 = 1 X13 + X23 + X33 = 1 3. La obvia: Xij = 0,1 para toda i y toda j. Ahora en Excel... Este puede ser el formato:

Las variables de decisin, estn localizadas en el rango de celdas B4:D6, como ya habamos dicho son binarias, van a tomar el valor de 1 si se asigna ese operario a esa tarea, cero de lo contrario. La calificacin que se logre est en la celda B4, y es el resultado de sumar el producto de dichas variables con su respectiva calificacin en la matriz de abajo. Ya se haba dicho que esto se logra faclmente as: =SUMAPRODUCTO(B4:D6,B9:D11). Como un operario slo se puede asignar a una tarea, colocamos una columna de Suma (E), sta es por ejemplo para la celda E4: =B4+C4+D4. Cuando agreguemos las restricciones, sta columna debe ser igual a uno, pues slo se puede responder que si una vez, ni ms, ni menos. De igual manera agregamos una fila (7), para asegurarnos que a una tarea slo se asigne un operario, por ejemplo la celda B7: =B4+B5+B6 Deber ser igual a 1. Ahora en el cuadro de dilogo de los parmetros de Solver, lo colocamos as:

Luego de hacer click en resolver...

La calificacin mxima lograda es de 22. Y se asign el operario 1 a la tarea 2, el operario 2 a la tarea 1 y el operario 3 a la tarea 3. Fcil, no? Para los programas Lineales enteros es muy importante que Solver, est debidamente configurado para un nmero suficiente de iteraciones, de tiempo, de precisin y de convergencia, para esto ver los detalles de Solver. Preguntas (esto es tarea para la casa):

A que ritmo crece el no de combinaciones posibles a medida que se agrega una columna? Una fila y una columna? Cmo se podra modificar el ejemplo anterior para darle diferente porcentaje de importancia a cada tarea o a cada recurso? Por ejemplo, supongamos que la tarea 2 es un cuello de botella y estamos subordinando las dems tareas a l, con una relevancia de 20,60,20 % respectivamente. Como cambia esto la respuesta? Cmo se puede modificar el "ejemplo clsico de asignacin", para utilizarlo en balanceo de linea, donde se puede asignar a ms de un recurso por tarea, o al revs, utilizando programacin binaria?

DETALLE DE SOLVER

Segn el Programa Matemtico que se tenga, ser muy til revisar los parmetros por defecto de Solver, para garantizar que se encuentre la solucin, sobre todo en programas enteros y no lineales de crecimiento rpido. Segn la documentacin en lnea, Solver utiliza el mtodo de optimizacin no lineal GRG2 desarrollado en la Universidad Leon Lasdon de Austin Texas y la Universidad de Allan Waren en Cleveland e implementado por el equipo de programacin de Frontline Systems y de Optimal Methods Inc. Es muy importante tener en cuenta las opciones de Solver al resolver un programa, debido a que la resolucin de un problema lineal y de uno no lineal difieren bastante. Los problemas lineales son por mucho, ms fciles de resolver que los no lineales. Existen algoritmos bastante eficientes como lo son las variantes del Simplex y los de Punto Interior utilizados en la resolucin de los primeros. El problema est con los no lineales... Hace 400 aos un ingls cre el clculo diferencial para describir la mecnica celeste y la filosofa de la naturaleza, hoy en da, los analistas de Investigacin de Operaciones lo utilizamos para describir la mecnica terrestre ($$$) y la filosofa humana. En este orden de ideas (o mejor desorden?), al buscar el ptimo de un programa no lineal, efectuamos una serie de derivadas parciales que representarn el ritmo de crecimiento o decrecimiento de la funcin objetivo, encontramos el mximo o el mnimo al igualar a cero y despejamos los valores de las variables, para esto se puede utilizar el mtodo de Newton de varias variables, modificamos la base e iteramos hasta que converja al ptimo segn un valor de tolerancia. Las alternativas a tener en cuenta son estas: (Al hacer click en el botn de Opciones...) Tiempo: Por defecto es de 100 segundos, si al cabo de ste tiempo Solver no ha convergido (segn la tolerancia), mostrar un mensaje diciendo que no ha

hallado la solucin. Dependiendo del tamao del problema se debe aumentar ste valor, para que Solver tenga tiempo de buscar la solucin ptima. Hasta el momento no he necesitado ms de 300 segundos en problemas de hasta 200 variables (por supuesto esto depender de la velocidad de la mquina). No se puede establecer un valor mayor a 32367 segundos, pero... hay alguien dispuesto a esperar todo eso? Iteraciones: La eleccin de ste parmetro depende de nuevo del tamao del problema; por defecto es de 100, pero en los problemas de programacin entera, ser mejor el aumentar ste valor para asegurar la convergencia (siempre y cuando exista una solucin). Precisin: En la prctica las restricciones no son tan inflexibles como las solemos tratar en los modelos acadmicos, siempre hay un nivel de desfase por pequeo que sea que se puede permitir. Solver introduce ste parmetro para especificar la precisin. Es un valor entre 0 y 1 (sin tomarlos) , a mayor precisin menor debe ser ste parmetro es decir ms cercano a cero. Tolerancia: En porcentaje que tan lejos de la solucin ptima se considera aceptable. Al haber una mayor tolerancia se encuentra ms rpido una solucin, pero no se garantiza la optimidad en ese mismo porcentaje. Convergencia: Cada cambio que haga Solver en las variables de decisin se reflejar en la celda objetivo, cuando estos cambios en las variables proveen cambios muy pequeos en la celda objetivo se dice que est convergiendo. Podemos establecer que valor de cambio es el que dar la convergencia. Supongamos que se establece 0.1; en las ltimas cinco iteraciones si Solver encuentra un valor de la celda objetivo de 7.1 y luego de 7.2 (para maximizar), se detendr. A mayor exactitud menor debe ser ste parmetro. Adoptar Modelo Lineal: Es necesario cuando el modelo es lineal. Asumir No Negativos: Si se chequea sta opcin, las variables de decisin sern mayores o iguales a cero; no ser necesario incluir sta restriccin a mano.

Você também pode gostar