Unidad 5
Unidad 5
Es frecuente al tener que resolver problemas en los cuales las soluciones tienen que ser valores enteros como por ejemplo: nmeros de unidades a producir por mquina, nmero de mquinas necesarias, etc. Parte del problema de la programacin entera radica en la diferencia esencial que existe la programacin lineal y la entera, en la programacin lineal se maximiza o minimiza una funcin sobre una regin de factibilidad convexa, mientras que al usar los mtodos de programacin entera se maximiza una funcin sobre una regin de factibilidad que generalmente no es convexa. De tal manera que la programacin entera tiene ms complicaciones que la programacin lineal. En este tema se presenta un tipo de problemas formalmente similares a los Problemas de programacin lineal, ya que en su descripcin solo se establecen expresiones lineales. Sin embargo no responden a problemas lineales ya que algunas (o todas) las variables del problema toman valores que no estn en un conjunto continuo. Por ejemplo, pueden ser variables que toman valores 0 o 1 (binarias), o variables que toman valores enteros no negativos (0,1,2,...), etc. Tras introducir el tipo de problemas se dedica un importante apartado para presentar las posibilidades de modelado que esta herram ienta proporciona: problemas binarios, problemas de carga _ja, problemas con restricciones condicionales o con dicotomas, etc. Tras dedicar una parte importante del tema a presentar estas herramientas de modelado y a plantear numerosos problemas con ellas se procede a mostrar dos mtodos de resolucin. Uno de ellos dedicado a problemas en los que todas las variables son binarias y otro para problemas generales. Ambos mtodos tienen en comn que desarrollan un proceso de enumeracin que permite comprobar explcita o implcitamente todas las soluciones del problema hasta encontrar la ptima, y entran dentro del tipo de mtodos de ramificacin y acotacin.
Un producto tiene una utilidad de $120/unidad. Sin embargo se cuenta con un costo de mantenimiento de la mquina de $2450.00 por tanda de produccin. Este costo sera cero si no se produce ninguna unidad.
Representacin de la situacin: Max Z= 120X 2450Y Y1 X MY X0; Y=0,1
Sea X el nmero de unidades producidas en donde Z es > 0 si X > 0, y Z = 0 si X=0 Sea Y valor de una nueva variable que toma los valores 0 1 Cuando Y = 0, la segunda restriccin obliga a que X sea 0 y Z sea tambin 0; cuando Y = 1, no existe lmite practico sobre X; adems el costo del cargo fijo $2450.00 se deduce de la utilidad .Por lo tanto, el uso de cero/uno o de la variable binaria con enteros Y permite formular este tipo de problemas con restricciones lineales.
Ejemplo 2. Presupuesto de capital. Gran parte de la flexibilidad de modelos obtenida mediante la programacin lineal de enteros se debe al uso de las variables 0-1. En muchas aplicaciones, las variables 0 -1 aportan selecciones o elecciones con el valor de la variable igual a uno si una actividad correspondiente se efecta e igual a cero si la actividad correspondiente no se efecta. Ver el siguiente ejemplo.
Una compaa constructora est pensando en invertir en varios proyectos que tienen necesidades de capital a lo largo de los siguientes tres aos. Los datos de entrada esperados de cada proyecto y los gastos anuales (en millones de pesos) se encuentran en la siguiente tabla.
El modelo de programacin lineal de enteros 0 -1, en millones de pesos est representado de la siguiente manera: X1 = 1 si se acepta efectuar el proyecto A y 0 si no se acepta X2 = 1 si se acepta efectuar el proyecto B y 0 si no se acepta X3 = 1 si se acepta efectuar el proyecto C y 0 si no se acepta La funcin objetivo de la empresa es maximizar el valor del rendimiento en todos los proyectos aceptados. El problema tiene 3 restricciones ya que est sujeto a fondos disponibles para realizar los proyectos por ao. Mx Z = 60 X1 + 40X2 + 35 X3 Sujeto a 15X1 + 10X2 + 15X3 30 10X1 + 15X2 + 10X3 50 10X1 + 20X2 + 10X3 30 X1, X2, X3 = 0,1 La solucin para este problema usando el QSB determina lo siguiente: X1 = 1; X2 = 1; X3 =0 y Z = 100. Esto quiere decir que se aceptan los proyecto A, y B, pero no el C con un valor mximo de Z = 100
Ejemplo 3. Restriccin tipo Y/O . Algunas veces en una situacin de toma de decisiones, debe mantenerse una u otra de las restricciones, pero no ambas. Ver el siguiente ejemplo.
2X1 + 3X2 5 4X1 +2X2 7 Pero no ambas Se identifican una nueve variable llamada Y cero/uno de tal manera que quedara la restriccin 2X1 + 3X2 5 + MY 4X1 +2X2 7 + M (1-Y) Cuando Y = 0, la primera restriccin es obligatoria; pero el lado derecho de la segunda se vuelve muy grande y por lo tanto no es obligatoria. Al contrario, cuando Y = 1, la segunda restriccin obliga, pero la primera no, porque MY es muy grande.
Programacin Entera es un trmino general para los modelos de programacin matemtica que presentan condiciones de integridad (condiciones que estipulan que algunas o todas las variables de decisin deben tener valores enteros). Ya hemos apuntado que los modelos de programacin lineal ent era son modelos de programacin lineal que tienen la caracterstica adicional de que algunas de las variables de decisin deben tener valores enteros. Existen diversas clasificaciones de esta categora de modelos. Un modelo de programacin entera es un mod elo que contiene restricciones y una funcin objetivo idnticas a las formuladas por planeacin lineal. La nica diferencia es que una o ms de las variables de decisin tienen que tomar un valor entero en la solucin final.
MODELOS DE PROGRAMACION ENTERA Existen tres tipos de modelos Pura Binaria Mixta Programas Enteros Puros
de
programacin
entera:
Un modelo entero puro (PLE) es, como su nombre lo indica, un problema en el que se exige que todas las variables de decisin tengan valores enteros. Por ejemplo: Min 61 + 52 + 43 s.a. 1081 + 922 + 583 >= 576 71 + 182 + 223 >= 83 x1, x2, x3 ><0 y enteros Es un modelo entero puro. Sin las restricciones adi cionales de que x1, x2, x3 sean enteros (o sea las condiciones de integralidad) sera un problema de programacin lineal
Programas Enteros Mixtos Algunas de las variables de decisin tienen valores enteros. Las dems cumplen con la suposicin de divisibilidad.
Un problema en el que solo se requieren que algunas variables tengan valores enteros mientras que otras pueden asumir cualquier numero no negativo (es decir, cualquier valor continuo) se llama programacin lineal entera mixta (PLEM). Por ejemplo, supngase que en el problema solo x1 y x2 deben ser enteros y x3 no. El problema resultante es: 3
Ejemplo Programacin de la Produccin de un Ensamble Cierta empresa produce un artculo que se forma con cuatro piezas del componente A y tres piezas del componente B. Las piezas se pueden fabricar en cualquiera de las tres mquinas diferentes que posee la compaa, las cuales transforman las dos materias primas en las piezas que van al ensamble del producto final. La tabla siguiente muestra el nmero de gramos de cada materia prima que deben utilizarse en cada mquina para realizar un ciclo de produccin de las componentes. La misma tabla muestra el nmero de componentes de cada tipo que se obtienen en cada ciclo de produccin de cada una de las maquinas, as como el nmero de gramos disponibles de las materias primas. Cmo debe programarse la produccin pa ra obtener la mxima cantidad de artculos? Construccin del modelo Para un mejor entendimiento elaboremos un diagrama de la situacin
1. Definicin de variables Xi = Nmero de tandas de produccin que realiza la mquina i. Cada tanda de produccin de las mquinas utiliza cierta cantidad de las materias primas y produce cierta cantidad de los componentes A y B, con los cuales se obtiene el ensamble del producto final. Como para cada unidad del ensamble se utilizan cuatro unidades del componente A y tres del componente B, se concluye que el nmero total de ensambles obtenidos ser el resultado de dividir por cuatro el nmero de componentes tipo A, pero tambin debe ser igual al nmero de componentes tipo B, dividido por tres. Necesitamos entonces definir tambin que XA = nmero de componentes de tipo A obtenidas. XB = nmero de componentes de tipo B obtenidas. Un problema en el que solo se requieren que algunas variables tengan valores enteros mientras que otras pueden asumir cualquier numero no negativo (es decir, cualquier valor continuo) se llama programacin lineal entera mixta (PLEM). Por ejemplo, supngase que en el problema anterior solo x1 y x2 deben ser enteros y x3 no. El problema resultante es: Min 61 + 52 + 43 s.a. 1081 + 922 + 583 >= 576 71 - 182 + 223 >= 83 x1, x2, x3 >=0; x1 y x2 enteros
Programas Enteros 01 Binarios
En algunos problemas se restringe el valor de las variables a 0 o 1. Dichos problemas se llaman binarios o programas lineales enteros 0 1. Son de particular inters debido a que se pueden usar las variables 0 1 para representar decisiones dicotmicas (s o no). Diversos problemas de
asignacin, ubicacin de plantas, planes de produccin y elaboracin de cartera, son de programacin lineal entera 0 1. Existen dos mtodos para generar las restricciones especiales que fuercen la solucin ptima del problema, hacia la solucin ptima entera deseada: - Mtodo de ramificar y acotar. - Mtodo de planos de corte. En ambos mtodos las restricciones agregadas eliminan partes del espacio de soluciones, pero nunca alguno de los puntos enteros factibles. Desafortunadamente, ninguno de los dos mtodos es efectivo en la solucin de problemas de programacin lineal entera. No obstante los mtodos de ramificar y acotar son mucho mejores en cuanto al clculo se refiere que los mtodos de plano de corte. Por esta razn, la mayora de los cdigos comerciales se basan en el procedimiento de ramificar y acotar.
El mtodo de diseo de algoritmos Ramificacin y poda (tambin llamado Ramificacin y Acotacin) es una variante del Backtracking mejorado sustancialmente. El trmino (del ingls, Branch and Bound) se aplica mayoritariamente para resolver cuestiones o problemas de optimizacin. La tcnica de Ramificacin y poda se suele interpretar como un rbol de soluciones, donde cada rama nos lleva a una posible solucin posterior a la actual. La caracterstica de esta tcnica con respecto a otras anteriores (y a la que debe su nombre) es que el algoritmo se encarga de detectar en qu ramificacin las soluciones dadas ya no estn siendo ptimas, para podar esa rama del rbol y no continuar malgastando recursos y procesos en casos que se alejan de la solucin ptima. La eficiencia de este mtodo depende fu ndamentalmente del procedimiento de expansin de nodos, o de la estimacin de los nodos padres e hijos. Es mejor elegir un mtodo de expansin que provea que no se solapen los subconjuntos para ahorrarnos problemas de duplicacin de ramas. Idealmente, el procedimiento se para cuando todos los nodos del rbol de bsqueda estn podados o resueltos. En ese punto, todas las subregiones no podadas, tendrn un nodo padre e hijo iguales a una funcin global mnima. En la prctica el procedimiento a menudo termina, cuando finaliza un tiempo dado, hasta el punto que el mnimo de nodos hijos y el mximo de nodos padres sobe todas las secciones no podadas, definen un rango de valores que contienen el mnimo global. Alternativamente, sin superar un tiempo restringido, e l algoritmo debe terminar cuando un criterio de error, tal que (max -min)/(max+min), cae bajo un valor especfico. La eficiencia del mtodo depende especialmente de la efectividad de los algoritmos de ramificacin y poda usados. Una mala eleccin puede llev arnos a una repetida ramificacin, sin poda, hasta que las subregiones se conviertan en muy pequeas. En ese caso el mtodo seria reducido a una exhaustiva enumeracin del dominio, que es a menudo impracticablemente larga. No hay un algoritmo de poda unive rsal que trabaje para todos los problemas, pero existe una pequea esperanza de que alguna vez se encuentre alguno. Hasta entonces necesitaremos implementar cada uno por separado para cada aplicacin informtica, con el algoritmo de ramificacin y poda especialmente diseados para l.
Los mtodos de ramificacin y poda deben ser clasificados acorde a los mtodos de poda, y a las maneras de creacin/clasif icacin de los rboles de bsqueda. La estrategia de diseo de ramificacin y poda, es muy similar al de vuelta atrs (backtracking), donde el estado del rbol es usado para res olver un problema. Las diferencias son que el mtodo de ramificacin y poda no nos limitan a ninguna forma particular de obtener un rbol transverso, y es usado solamente para problemas de optimizacin. Este mtodo naturalmente lleva a una forma de implementacin paralela y distribuida, como podemos ver por ejemplo en el Problema del Viajante de Comercio . [editar]Estrategias de Poda Nuestro objetivo principal ser eliminar aquellos nodos que no lleven a soluciones buenas. Podemos utilizar dos estrategias bsicas. Supongamos un problema de maximizacin donde se han recorrido varios nodos i=1, ,n. estimando para cada uno la cota superior CS(xi) e inferior CI( xi). Vamos a trabajar sobre un problema donde se quiere maximizar el valor (si fuese un problema de minimizacin entonces se aplicara la estrategia equivalente).
Estrategia 1
Si a partir de un nodo xi se puede obtener una solucin vlida, entonces se podr podar dicho nodo si la cota superior CS( xi) es menor o igual que la cota inferior CI(xj) para algn nodo jgenerado en el rbol. Por ejemplo: Supongamos el problema de la mochila, el cual se va a desarrollar en la seccin de ejemplos, donde utilizamos un rbol binario. Entonces: Si a partir de xi se puede encontrar un beneficio mximo de CS( xi) = 4 y a partir de xj, se tiene asegurado un beneficio mnimo de CI( xj) = 5, esto nos llevar a la conclusin de que se puede podar el nodo xi sin que perdamos ninguna posible solucin ptima.
Estrategia 2
Si se obtiene una posible solucin vlida para el problema con un beneficio Bj, entonces se podrn podar aquellos nodos xi cuya cota superior CS(xi) sea menor o igual que el beneficio que se puede obtener Bj (este proceso sera similar para la cota inferior).
Estrategias de Ramificacin
Como se comenta en la introduccin de ste apartado, la expansin del rbol con las distintas estrategias est condicionada por la bsqueda de la solucin 7
ptima. Debido a esto todos los nodos de un nivel deben ser expandidos antes de alcanzar un nuevo nivel, cosa que es lgica ya que para poder elegir la rama del rbol que va a ser explorada, se deben conocer todas las ramas posibles. Todos estos nodos que se van generando y que no han sido explorados se almacenan en lo que se denomina Lista de Nodos Vivos (a partir de ahora LNV), nodos pendientes de expandir por el algoritmo. La LNV contiene todos los nodos que han sido generados pero que no han sido explorados todava. Segn como estn almacenados los nodos en la lista, el recorrido del rbol ser de uno u otro tipo, dando lugar a las tres estrategias que se detallan a continuacin. La ramificacin consiste en dividir cada problema en dos nuevos subproblemas, obtenidos mediante la imposicin de restricciones excluyentes que dividen el conjunto de oportunidades del problema original en dos partes, pero eliminando en ambas partes la solucin no entera del problema original. Cuando en la solucin al PLA una variable que ha de ser entera xi toma el valor xbi no entero, entonces se generan a partir de dicho valor dos restricciones xi [xbi] y xi [xbi]+1 (siendo [xbi] la parte entera por defecto de xbi ), que aadidas cada uno por separado al problema original, da lugar a dos nuevos sub-problemas. Vamos a explicar este proceso a travs de un ejemplo particular:
Consideremos el siguiente problema Max F(x) = 4x1 + 5x2 (1) s.a. 2x1 + x2 8 x2 5 x1,x2 0 y enteras La solucin al PLA, prescindiendo de la condicin de que las variables han de ser enteras es x1 = 1,5, x2 =5 y F(x) = 31 como dicha solucin no verifica las condiciones de integridad se elige la variable x1 que no es entera y a partir de ella se generan dos restricciones x1 1 y x1 2 que aadidas cada una de ellas al problema original dan lugar a dos nuevos subproblemas que seran los siguientes:
Max F(x) = 4x1 + 5x2 (1.1) Max F(x) = 4x1 + 5x2 (1.2) s.a. 2x1 + x2 8 s.a. 2x1 + x2 8 x2 5 x2 5 x1 1 x1 2 x1,x2 0 x1,x2 0 De este modo se han eliminado todas las posibles soluciones no enteras del conjunto de oportunidades tales que 1< x1 < 2. El proceso se repite con cada uno de los dos subproblemas obtenidos, los cuales darn lugar a otros dos subproblemas cada uno de ellos y as sucesivamente hasta que en todos los subproblemas tengan solucin entera o infactible. 8
Utilizando nicamente la ramificacin, el nmero de subproblemas a resolver crece exponencialmente, por este motivo para evitar el tener que resolver todos los subproblemas , la ramificacin se combina con la acotacin. La acotacin se basa en el hecho de que dado que los conjuntos de oportunidades del subproblema 1.1. (S11) y del subproblema 1.2 (S12) son a su vez subconjuntos del conjunto de oportunidades del problema 1 (S1) la solucin ptima de los dos subproblemas siempre ser inferior (problema de mximo o superior para problemas de mnimo) que la solucin ptima del problema 1 por ser los conjuntos de eleccin menores. As pues, el proceso de acotacin consiste, para problemas de mximo, en tomar como cota inferior aquella solucin entera con mayor valor de la funcin objetivo obtenida y dado que cualquier otro subproblema con solucin no entera sabemos que al ramificarlo nos dar como resultado valores de la funcin objetivo menores o iguales, nos permite descartar como subproblemas a ramificar todos aquellos que tengan como solucin ptima un valor de la funcin inferior a la cota establecida. De este modo se reduce el nmero de subproblemas a ramificar y por lo tanto el tiempo necesario para la resolucin de los problemas enteros. El proceso a seguir en la resolucin de problemas enteros mediante el mtodo de ramificacin y acotacin se resume en el siguiente esquema algortmico:
Ejemplo Max F(X) = 8x1 + 10x2 s.a. 4x1 + 6x2 24 8x1 + 3x2 24 x10,x20, x1,x2 Z+ 9
Resolviendo en primer lugar el PLA, es decir Max F(X) = 8x1 + 10x2 s.a. 4x1 + 6x2 24 8x1 + 3x2 24 x10,x20 Se obtiene la solucin x1 = 2, x2 = 8/3, f(x) = 128/3, dado que sta solucin no es entera se ramifica a partir de la variable x2 del siguiente modo subproblema1 subproblema 2 Max F(X) = 8x1 + 10x2 . Max F(X) = 8x1 + 10x2 s.a. s.a. 4x1 + 6x2 24 4x1 + 6x2 24 8x1 + 3x2 24 8x1 + 3x2 24 x2 3 x2 2 x10,x20 x10,x20 solucin x1=1,5, x2=3,F(x)=42 solucin x1=2,5, x2=2,F(x)=38 Como la solucin del subproblema 1, tiene el mayor valor de la funcin Objetivo y no es entera ramificaremos este subproblema a part ir de la variable x1, del siguiente modo: subproblema 1.1 subproblema 1.2 Max F(X) = 8x1 + 10x2 . Max F(X) = 8x1 + 10x2 s.a. s.a. 4x1 + 6x2 24 4x1 + 6x2 24 8x1 + 3x2 24 8x1 + 3x2 24 x2 3 x2 3 x1 1 x1 2 x10,x20 x10,x20 solucin x1=1, x2=10/3,F(x)=124/3 solucin infactible. Dado que de todos los subproblemas todava no ramifica dos (subproblemas 2, 1.1 y 1.2) el que tiene una mayor solucin factible no entera es el subproblema 1.1, ramificaremos este subproblema a partir de la variable x2, es decir, subproblema 1.1.1 subproblema 1.1.2 Max F(X) = 8x1 + 10x2 . Max F(X) = 8x1 + 10x2 s.a. s.a. 4x1 + 6x2 24 4x1 + 6x2 24 8x1 + 3x2 24 8x1 + 3x2 24 x2 3 x2 3 x1 1 x1 1 x2 3 x2 4 x10,x20 x10,x20 solucin x1=1, x2=3,F(x)=38 solucin x1=0, x2=4,F(x)=40 Dado que ya conocemos una solucin entera x1=0, x2=4,F (x)=40, sta solucin actuar como cota inferior y solamente debern ser ramificados aquellos subproblemas con soluciones factible no enteras que tengan un valor para la funcin objetivo que 40. Como el nico subproblema por ramificar es el subproblema 2 y la funcin objetivo vale 38, el proceso se da por terminado,
10
siendo por tanto la solucin ptima al problema entero x1 = 0, x2 = 4, F(x) = 40 el rbol del problema resuelto es el siguiente:
I. Se encuentra la solucin ptima del problema original sin tomar en cuenta que las variables tiene que ser enteras. Si los valores de las variables restringidas a ser enteras resultan enteros el problema se termina. En caso contrario se toma como lmite superior la solucin obtenida. Y se va haciendo un diagrama arbolar para llevar un seguimiento de las ramas, analizando el problema por nivel. II. Se introduce al sistema original la restriccin de que una variable (de las que tienen que ser enteras) estar definida en un rango determinado dependiendo del valor obtenido para esa variable en el paso I. Estableciendo un particin en el rango tomando como base el valor obtenido en la solucin anterior. En este caso para valores de X1, ..Xn. por lo que un conjunto ser valores mayores, partiendo del entero ms cercano y el otro conjunto ser de valores menores que, partiendo del entero ms cercano. Se resuelve por dual simplex III. Se obtiene la solucin de ambos problemas aplicando el mtodo simplex ya que cada rama representa un nuevo problema pues se adic iona una restriccin diferente. IV. Si en la solucin obtenida el valor de X1 es entero se incorpora la restriccin de otra variable (digamos X2) de manera similar a lo hecho en II y se repite el paso III hasta obtener una solucin entera cuyo lmite superior sea mayor (en cada nodo el lmite superior es el valor de la funcin objetivo). V. En caso que no se obtenga una solucin entera de X1 se siguen restringiendo los valores posibles de X1 cada vez en base a la ltima solucin obtenida. Cuando el sistema se vuelva inconsistente, es decir que una de las restricciones sea imposible, el nodo correspondiente representa un absolucin no factible y su LS tendr que ser inconsistente sin solucin.
11
Ejercicio para ilustrar el procedimiento: Max Z = X1 +2X2 2X1 +X2 9 X1 +4X2 12 X1, X2 0 y enteros Paso I Se encuentra la solucin ptima del problema original sin tomar en cuenta que las variables tienen que ser enteras. En este caso se usa el Mtodo Simplex
Sol Z= 7.71, X1=3.42, X2 = 2.14 Como se puede observar en la tabla 1 simplex la solucin X1 y X2 no es entera. Paso II y III Restringir a valores enteros el valor de X1 (puede tomarse cualquiera de las dos pero para seguir un orden se inicia con X1 . Ver grafica
12
Segn el resultado de la tabla 5.3 la solucin es ptima y entera pero si vemos en el diagrama arbolar de la figura 4. se trata del nivel 2 y Z = 7.5 tiene un valor mayor en la tabla 2 cuya solucin no es entera y debido a esta situacin se busca el entero para ese lado de la rama , continuando el anlisis del problema pasando al nivel 2 abriendo cortes para el valores de X2 2 y X2 3. Se continua haciendo iteraciones como se explicaron los pasos del nivel 2. En el desarrollo del problema se encontraron 3 soluciones enteras y se toma como la ptima aquella con un valor de Z mayor para este caso de maximizacin por lo tanto la solucin bsica, factible ptima y entera es, Z= 7 X1=3; X2=2, como se puede observar en la tabla 5.4, y esta se localiza en el nivel 3 de la grafica 5.4. En caso de tratarse de un problema de minimizacin se toma el valor mnimo de Z.
13
5.4
E P
ES i il t i l fi i ti i l l . ti i t l l l l t i i
Y l ill l t l l i l l l l i i l i l t , i i l l l l l i t t l . i t l t i . Si t t l , t l , i
E t t f l i t . t j l t t l i l i . t j t t i . tili t ti ti i i t i t l i t t l l i ti i l i l E t li l i l I t iti l i t i l i l. i ti i i t t t ti ti l i , i i l l i t l i i t ti i . i f i t ti , i i t
f l t ti t t . t
ti ili lt l l l i i
l , l t t
li i
, i i it i l l B
t l ti l . E t ti l t i l
Si t i f
l i f i i .
14
l t AX X , P I. E l i X t t t i l l l
im l i t i l
l i II XBi
i i
l t i l t ti ilit i l l
l l i . .
t l i
i ; il ti . E
ti l l l i l l t l l i Si l i i i
i i ti l t i i i l i ti
l l l i i
ti l t II.
t t l i l l i l l i i l l l t l . l l t i t i l .
l t X P / / t . / ;X II. S l / / / ;S i l i
l l / XBi
i i
i i
ti l
ti
[XBi] f
15
Se selecciona cualquiera de las dos fracciones ya que hay empate. Para este problema seleccionamos la correspondiente a X2 Paso III. Generar el corte o nueva restriccin del problema. (aij - [aij])Xj (XBi [XBi]) (1-1)X2 + (1/2-0)S2 (17/2- 16/2) ; 1/2S2 ... -1/2 S2 -1/2, cambiando a igualdad -1/2S2 + S4 = - 1/2 y se adiciona al sistema, ver tabla
En la tabla 5.7 se puede observar la solucin bsica factible ptima y entera. Con valores X1=2; X2 = 3 y Z= 8 Grficamente el problema se representa con las ec uaciones 1/2X4 se puede transformar mediante la ecuacin 2X2 + S2 = 7 en donde S2 = 7 -2X2; sustituyendo: (7-2X2) 7-2X2 1 de donde 2X2 6
16
17
18
19
l El i
im t l
l l l t l i il li t l t : i j l .
i i S j t :
, l fi E t
t i t l ti i ,
ti i i t fi / . / ,l l t . l i i i t t
20
La idea del algoritmo de planos de corte es cambiar el conjunto convexo del espacio de soluciones, de tal manera que los puntos extremos apropiados lleguen a ser todos enteros. Tales cambios en las fronteras del espacio de soluciones, deben proporcionar todava conjuntos convexos. Tambin este cambio deber hacerse sin partir ninguna de las soluciones enteras factibles del problema original. La figura muestra como dos restricciones secundarias (arbitrariamente elegidas) se agregan al problema proporcionando la solucin ptima entera en el punto extremo nuevo (4, 3). Note que el rea cortada del espacio de soluciones original no incluye ningn valor entero.
21
Otro algoritmo enumerativo importante es el algoritmo aditivo. Es debido originalmente a Egon Balas (1965). Se llama aditivo porque todas las operaciones matemticas que se realizan consisten en sumar o restar. El procedimiento consiste en generar una secuencia de soluciones parciales aadiendo en cada iteracin una variable y considerando las soluciones complementarias (resto de soluciones posibles). De esta forma, podemos por enumeracin implcita, eliminar conjuntos de soluciones sin necesidad de evaluarlos exhaustivamente. La seleccin de la variable aadida se hace en funcin de reducir al mximo la infactibilidad en la solucin actual y eliminar la redundancia. Este mtodo es un procedimiento de enumeracin que encuentra el ptimo en forma ms rpida; en el mtodo de Balas, la eficacia consiste en la evaluacin solo de unas soluciones. El mtodo empieza poniendo todas las variables iguales a cero y luego por medio de un procedimiento sistemtico de forma consecutiva se asigna a una por una de las variables el valor 1. Luego se reemplaza en cada una de las restricciones y se averigua la inf actibilidad. Por esta razn el mtodo es algunas veces llamado el algoritmo aditivo. Para describir el algoritmo, se considera la forma general siguiente de un problema de Programacin Lineal con variables cero uno: Paso 1. La funcin objetivo debe ser del tipo minimizacin, con todos los coeficientes no negativos. Paso 2. Todas las restricciones deben ser del tipo , con los lados derechos negativos de ser necesario. Luego, estas restricciones se convierten a ecuaciones, usando las variables auxiliares en el lado izquierdo de las restricciones. Este mtodo es un procedimiento de enumeracin que encuentra el ptimo en forma ms rpida; en el mtodo de Balas, la eficacia consiste en la evaluacin solo de unas soluciones. El mtodo empieza poniendo todas la s variables iguales a cero y luego por medio de un procedimiento sistemtico de forma consecutiva se asigna a una por una de las variables el valor 1. Luego se reemplaza en cada una de las restricciones y se averigua la infactibilidad. Por esta razn el mtodo es algunas veces llamado el algoritmo aditivo. Para describir el algoritmo, se considera la forma general siguiente de un problema de Programacin Lineal con variables cero uno: Paso 1. La funcin objetivo debe ser del tipo minimizacin, con todos l os coeficientes no negativos. Paso 2. Todas las restricciones deben ser del tipo , con los lados derechosnegativosde ser necesario. Luego, estas restricciones se convierten a ecuaciones, usando las variables auxiliares en el lado izquierdo de las restricciones.
22
Ejemplo:
MAX Z = 3 Y1 + 2 Y2 5 Y3 2 Y4 + 3 Y5 Sujeta a:
Siempre el problema nuevo a resolver consiste en la minimizacin de la funcin objetivo, teniendo en cuenta la medida de la no factibilidad de la holgura. Cuando la infactibilidad da el menor valor, continuamos con el siguiente paso; en el caso de una infactibilidad cero, sta corresponde a la solucin ptima; si encontramos varias infactibilidades iguales a cero, reemplazamos en la funcin objetivo y la respuesta ser la que haga esta fu ncin mnima.
23
Ejemplo:
MAX Z = 3 Y1 + 2 Y2 5 Y3 2 Y4 + 3 Y5 MIN W = 3 Y1 2 Y2 + 5 Y3 + 2 Y4 3 Y5
MIN W = 3 X1 + 2 X2 + 5 X3 + 2 X4 + 3 X5 8 Sujeta a: Sustituimos W + 8 = W MIN W = 3 X1 + 2 X2 + 5 X3 + 2 X4 + 3 X5 Siempre el problema nuevo a resolver consiste en la minimizacin de la funcin objetivo, teniendo en cuenta la medida de la no factibilidad de la holgura. Cuando la infactibilidad da el menor valor, continuamos con el siguiente paso; en el caso de una infactibilidad cero, sta corresponde a la solucin ptima; si encontramos varias infactibilidades iguales a cero, reemplazamos en la funcin objetivo y la respuesta ser la que haga esta funcin mnima. X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0 0 1; 0 2; 0 1; Infactibilidad 3 X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0 0 2; 0 5; 0 12; Infactibilidad 12 X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0 0 2; 0 2; 0 5; Infactibilidad 2
Solucin Optima nica para el problema original: Y*1 = 1; Y*2 = 1; Y*3 = 0; Y*4 = 0; Y*5 = 0; Z* = 5 24
Algunos autores emplean el algoritmo de Balas modificado, el cual consiste en introducirle al modelo una restriccin denominada de filtro, la cual no es otra que la funcin objetivo con una cota inferior del valor ptimo. Histricamente es muy importante, ya que ha demostrado que algoritmos eficaces de programacin en nmeros enteros podran emplear la enumeracin implcita
25
26
27
La programacin dinmica es un enfoque general para la solucin de problemas en los que es necesario tomar decisiones en etapas sucesivas. Las decisiones tomadas en una etapa condicionan la evolucin futura del sistema, afectando a las situaciones en las que el sistema se encontrar en el futuro (denominadas estados), y a las decisiones que se plantearn en el futuro. Conviene resaltar que a diferencia de la programacin lineal, el modelado de problemas de programacin dinmica no sigue una forma estndar. As, para cada problema ser necesario especificar cada uno de los componentes que caracterizan un problema de programacin dinmica. El procedimiento general de resolucin de estas situaciones se divide en el anlisis recursivo de cada una de las etapas del problema, en orden inverso, es decir comenzando por la ltima y pasando en cada i teracin a la etapa antecesora. El anlisis de la primera etapa finaliza con la obtencin del ptimo del problema.
10.1 MODELOS DE PROGRAMACIN DINMICA
Existen tres modelos diferentes manejados por WINQSB. * Problema de la diligencia (Stagecoach Problem) * Problema de la mochila (Snapsack Problem) * programacin de produccin e inventarios (Production and Inventory Scheduling)
10.2 EL PROBLEMA DE LA DILIGENCIA
Ejemplo 10-1: Considrese el grfico que contempla las rutas posibles para ir desde la ciudad 1 hasta la ciudad 10. Cada nodo representa una ciudad y los arcos la infraestructura vial disponible. La tabla recoge el costo asociado al desplazamiento entre cada par de nodos para cada una de las etapas. Supondremos que todos los desplazamientos tienen la misma duracin, y que el viaje ha de realizarse en cuatro etapas. Cada una de ellas se corresponde con un nico desplazamiento entre un par de nodos del grafo, as al finalizar la primera etapa estaremos en una de las ciudades 2, 3 4. La segunda etapa finalizar en la ciudad 5, la nmero 6 la nmero7. La tercera jornada nos llevar a la ciudad 8 o a la nmero 9. La cuarta etapa permite finalizar el viaje en la ciudad 10. 10.3 TERMINOLOGA Y NOTACIN BSICA Perodos o etapas: Sea N= {1, 2,....., n} un co njunto finito de elementos. Mediante el ndice , representamos cada uno de ellos. N es el conjunto de
28
perodos o etapas del proceso. En la ilustracin anterior N= {1, 2, 3, 4}, las cuatro etapas del viaje, cada una de ellas es un perodo y se representa mediante un valor del ndice n, as cuando n =1 nos estamos refiriendo a la primera etapa del proceso. Espacio de estados: { } es una familia de conjuntos, uno para cada perodo n. S se denomina espacio de estados en el perodo n. Cada uno de sus elementos, que se representa mediante Sn, es un estado, que describe una posible situacin del proceso en ese perodo. En nuestro ejemplo, S1 = {1}, S2= {2, 3, 4}, S3= {5, 6, 7}, S4= {8, 9}. La funcin recursiva: Dados unos nodos y unos arcos que conectan estos nodos, el problema de la diligencia intenta encontrar la ruta ms corta que conecta un nodo de arranque con el nodo final (el destino). Sea s: el estado de inicio; j: estado destino * n: la fase, normalmente representa el nmero de arcos hasta el destino. * C(s,j): costo o distancia de ir desde s hasta j. * f(n,s): la poltica de costo mnimo cuando se encuentra en el estado s de la etapa n. La relacin recursiva dinmica se expresa como f(n,s) = mnimo [C(s,j) + f(n-1,,j)] para todos los arcos ( s,j) en la red 10.4 INGRESANDO EL PROBLEMA AL WINQSB El problema contiene 10 nodos claramente identificados: Al pulsar OK podremos ingresar el resto de informacin, el cual se basa en las relaciones existentes entre los nodos: Los valores van de acuerdo a la red estab lecida en el problema: Para resolver el problema pulsamos la opcin Resolver el problema (Solve the Problem) del men Resolver y analizar (Solve and Analyze). La ventana siguiente permite identificar los nodos de inicio y fin: Al pulsar SOLVE generamos la solucin al problema: Si queremos una solucin detallada debemos pulsar sobre Mostrar solucin detallada (Show Solution Detail) en el men Resultados (Results): 10.5 PROBLEMA DE LA MOCHILA O CANASTA DE EQUIPAJE
29
La idea bsica es que existen N tipos distint os de artculos que pueden cargarse en una mochila; cada artculo tiene asociados un peso y un valor. El problema consiste en determinar cuntas unidades de cada artculo se deben colocar en la mochila para maximizar el valor total. Ntese que este enfoque resulta til para la planificacin del transporte de artculos en algn medio, por ejemplo: carga de un buque, avin, camin etc. Tambin es utilizable este modelo en planificacin de produccin, por ejemplo enrutamiento de la produccin a travs de varia s mquinas. Ejemplo 10-2: La carga de un avin se distribuye con el propsito de maximizar el ingreso total. Se consideran 5 elementos y slo se necesita uno de cada uno. La compaa gana 5000 u.m. por elemento ms una bonificacin por elemento. El avin puede transportar 2000 libras. Elemento Peso, lb Volumen, pies3 Valor bonificacin 1 1000 70 700 2 1100 100 800 3 700 100 1100 4 800 80 1000 5 500 50 700a) Cules elementos deben transportarse? b) Si se considera un volumen mximo de 200 pies cbicos. cu les elementos deben transportarse? El problema se desarrolla bajo las dos consideraciones, primero teniendo en cuenta el peso y luego el volumen. Como puede apreciarse este es un problema que bien podra resolverse por programacin lineal entera teniendo en cuenta la funcin objetivo y restricciones siguientes: Siendo xj el elemento j a transportar. Para el caso del volumen se reformara la primera restriccin cambiando los coeficientes por los volmenes de los tems. Sea j: la variable que representa el ar tculo: * x(j): el nmero de unidades el nmero de unidades cargadas del artculo j * w(j): el espacio o el peso que demanda cada unidad del artculo j * R(j,x(j)): la funcin del retorno del artculo j si se llevan x(j) unidades en la mochila, del artculo j * g(j,w): retorno del total acumulativo dado el espacio w disponible para el artculo j La relacin recursiva dinmica se expresa como: g(j,w) = mximo {R(j,x(j)) + g[j-1,w-w(j)x(j)]} para todo posible x(j) Ahora ingresemos los datos al WINQSB:
30
La entrada de datos queda como sigue. Al resolver el problema tenemos: La solucin nos indica que se deben transportar los tems 3, 4 y 5 con un retorno total de 17800 u.m. y utilizacin plena de la capacidad (en peso), disponible del avin. Teniendo en cuent a slo el volumen, el nuevo modelo es: La solucin es: 10.6 PROGRAMACIN DE PRODUCCIN E INVENTARIOS El problema consiste en determinar un programa de produccin para un periodo de tiempo con el fin de minimizar los costos totales relacionados. Hay demandas conocidas para cada periodo, lmites de capacidad tanto para la produccin como para los inventarios (almacenamiento). Cuando hay ms produccin que demanda, se acumula inventario, y cuando la produccin es menor que la demanda, se generarn retrasos en el cumplimiento de pedidos (backorder). Para cada periodo, una produccin no -cero incurre en un costo de preparacin. En programacin dinmica, el costo variable se expresa como una funcin de la produccin (P), el inventario (H), y backorder (B). Sea: * P(n): el nmero de unidades producidas en el periodo n * D(n): la demanda en el periodo n * H(n): el inventario disponible al final del periodo n * B(n): el backorder al final del periodo n * I(n): la posicin del inventario al final del periodo n, es decir , I(n) = H(n) o I(n) =B(n) I(n) = I(n-1) + P(n) - D(n) * S(n): el costo de preparacin en el periodo n * V (P(n), I(n)): el costo variable = funcin de P(n), H(n), y/o B(n) * C(n,P(n),I(n)): = S(n) + V(P(n),I(n)) si P(n)>0, = V(P(n),I(n)) si P(n)=0 * f(n,i): costo total acumulativo dado el nivel del inventario inicial i para el periodo n La relacin recursiva dinmica se expresa como: f(n,i) = mximo {C(n,P(n),i+P(n)-D(n)) + f(n-1,i+P(n)-D(n))} para todo posible P(n).
31
Ejemplo 10-3: La tabla muestra los dato s del siguiente problema de produccin e inventario: la demanda para los meses de enero, febrero, marzo y abril es de 4, 5, 3 y 4 unidades, respectivamente. Las capacidades de produccin son de 6, 4, 7, y 5 unidades; las capacidades de almacenaje son 4, 3, 2 y 4 unidades respectivamente. Los costos de preparacin varan de un mes a otro y son: 500, 450, 500 y 600 u.m. para enero, febrero, marzo y abril. Mes Costos Demanda Capacidad de produccin Capacidad de Almacenamiento Enero 500 4 6 4 Febrero 450 5 4 3 Marzo 500 3 7 2 Abril 600 4 5 4Determinar un programa de produccin con el fin de minimizar los costos totales relacionados. Al igual que en los ejercicios anteriores, se procede a ingresar los datos: La tabla inicial permite ingresar los datos expuestos e n el ejemplo. La ventana debera quedar como sigue: La solucin del problema es: Las cantidades a producir mostradas en la tabla son de tal forma que permiten un costo mnimo en la planeacin: se deben producir 5, 4, 3 y 4 unidades para los meses de enero, febrero, marzo y abril respectivamente. El costo total es de $7080, dividido en $2050 por concepto de costos de preparacin y $5030 de costos variables. La tabla tambin muestra el juego de inventarios resultante de la produccin y la demanda mensuales.
5.6 Ejercicios Problema 1. Considere el siguiente programa lineal de todos enteros. Max. Z = 5X1 + 8X2 Sujeto a 6X1 + 5X2 30 9X1 + 4X2 36 X1 + 2X2 10 X1, X2 0 y enteros a) Haga una grfica de las restricciones de este problema. Utilice puntos para indicar todas las soluciones de enteros factibles b) Encuentre la solucin ptima a la relajacin de programacin lineal. Redondee hacia abajo para encontrar una solucin de enteros factible. Problema 2. Resuelva el siguiente problema Max. Z = 2X1 + 3X2 Sujeto a 5X1 + 7X2 35 4X1 + 9X2 36 X1, X2 0 y enteros a) Usando el algoritmo de ramificar y acotar (Brach and Bound)
32
b) Usando el algoritmo de Gomory c) Hacer la representacin grfica y explicar la respuesta. Problema 3. Resuelva el siguiente problema Min Z = 4X1 + 3X2 Sujeto a 4X1 + 2X2 6 2X1 + 3X2 8 X1, X2 0 y entero a) Usando el algoritmo de ramificar y acotar. b) Usando el algoritmo de Gomory c) Hacer la representacin grfica Problema 4. Utilizando el algoritmo aditivo de Balas, resuelva Min. Z = 10X1 -5X2 + 3X3 Sujeto a X1 + 2X2 - X3 2 2X1 + X2 + X3 3 X1, X2 = 0,1 Problema 5. Sea el problema Min. Z= 2X1 - 4X2 S. A. 2X1 + X2 5 -4X1 + 4X2 5 X1, X2 0 u enteros
Cuya tabla ptima es: a) Determinar por cualquiera de los dos mtodos s iguientes : Mtodo de planos cortante ramificacin y acotamiento la solucin entera al problema b) Graficar el problema con los nuevos cortes ecuaciones encontradas. Problema 6.- Suponga que X1, X2 y X3. sn variables cuyos valores son 1, si se va a abrir una planta en particular y 0 en cualquier otro caso. Escriba una restriccin lineal separada para cada una de las siguientes restricciones de palabra. ( Solamente una restriccin lineal para cada inciso ) a) Si se abre la planta 1, entonces la planta 2 no debera abrirse. b) Si se abre la planta1, entonces la planta 2 debera abrirse c) Al menos una de las tres plantas debera abrirse Problema 7.- Representar grficamente el problema y encontrar la sol. entera en forma grfica. Haciendo cortes. Max. Z=2X1 + 3X2 5X1 + 7X2 35 4X1 + 9X2 36 X1, X2 0 y enteros
33
Problema 8. Dado el siguiente problema cuya tabla ptima esta dada en la tabla siguiente. a) Hacer dos cortes usando el mtodo de Planos cortantes (si es posible) y encontrar las ecuaciones originales de dichos cortes. Sin graficar Max. Z= X1 7X2 + 3X3 2X1 + X2 - X3 4 4X1 3X2 2 -3X1 + 2X2 +X3 3 X1, X2., X3 0 Tabla ptima pero no entera.
34
CONCLUSION
En algunos casos se requiere que la solucin ptima se componga de valores enteros para algunas de las variables. La resolucin de este problema se obtiene analizando las posibles alternativas de valores enteros de esas variables en un entorno alrededor de la solucin obtenida considerando l as variables reales. Muchas veces la solucin del programa lineal truncado est lejos de ser el ptimo entero, por lo que se hace necesario usar algn algoritmo para hallar esta solucin de forma exacta. El ms famoso es el mtodo de 'Ramificar y Acotar' o Branch and Bound por su nombre en ingls. El mtodo de Ramificar y Acotar parte de la adicin de nuevas restricciones para cada variable de decisin (acotar) que al ser evaluado independientemente (ramificar) lleva al ptimo entero.
Bibliografa. 1. Anderson, D.R.-Sweeny, D.J.-William, T.A. "Introduccin a los modelos cuantitativos para administraccin". Ed. Iberoamericana. 2. Bazaraa, M.-Jarvis, J. "Programacin lineal y flujo en redes". Ed. Limusa. 3. Bronson, R. (1983) "Investigacin de operaciones. Teora y 310 problemas resueltos". Mcgraw-Hill,serie Schaum. . Chang, Y.-Sullivan, R. (1990) "QSB+. Quantitative Systems for Business Aplications Plus". Prentince Hall. 5. Fernandez Lechon, R.-Castrodeza Chamorro, C. (1989) "Programacin lineal". Ariel. 6. Garcia, J.-Fernandez, L.-Tejera, P. (1990) "Tcnicas de Investigacin Operativa". Ed. Paraninfo. 7. Gass, S.I. (1966) "Programacin lineal". CECSA. 8. Hillier, F.-Lieberman, G. (1991) "Introduccin a la investigacin de
35
operaciones". Mcgraw-Hill. 9. Infante Macias, R. (1977) "Mtodos de Programacin matemtica". UNED. 10. Luenberger, D.E. (1989) "Programacin lineal y no lineal". Addison -Wesley Iberoamericana. 11. Martn, Q. (2003) "Investigacin Operativa". Prentice Hall. 12. Mora, J.L. (1980) "Investigacin de operaciones e informtica". Ed. Trillas. 13. Prawda Witemberg, J. (1980) "Mtodos y modelos de investigacin de operaciones". Limusa. 1 . Ravindran, A.-Phillips, D.-Solberg, J. (1987) "Operations research. Principles and Practice". Willey. 15. Rios Insua, S. (1988) "Investigacin Operativa. Optimizacin". Ed. Centro de Estudios Ramon Areces. 16. Shamblin, J.E.-Stevens, G.T. (1975) "Investigacin de operaciones: un enfoque fundamental". Mcgraw -Hill. 17. Simonnard, M. (1972) "Programacin linea l". Paraninfo. 18. Taha, H. (1991) "Investigacin de operaciones". Alfaomega. 19. Thierauf, R.J. (1978) "Introducin a la investigacin de operaciones". Ed. Limusa.. 20. Schrage, L. (1984) "Linear,Integer, and Quadratic Programming with LINDO". The Scientific Press, Palo Alto, California. 21. Wayne L. Winston Investigacin de Operaciones Aplicaciones y algoritmos Editorial Iberoamerica BIBLIOGRAFIA http://www-2.dc.uba.ar/materias.com http://www.eumed.net/libros/2006c/216/1j.htm
36