Está en la página 1de 40

1 Programacin lineal 1.

1 Introduccin a la programacin matemtica Dentro del campo general de la teora de la optimizacin, tambin conocida como programacin matemtica conviene distinguir diferentes modelos de optimizacin. Los modelos de optimizacin se caracterizan contener: Variables o decisiones a realizar Ecuaciones de restriccin o limitaciones Funcin (es) objetivo Una de las caractersticas de los modelos de optimizacin es la existencia de un nico decisor frente a otras disciplinas donde puede existir ms de un decir (por ejemplo, la teora de juego). Breve clasificacin, atendiendo a varios criterios: Segn la naturaleza de los datos: podemos hablar de modelos deterministas o de modelos estocsticos. Consideraremos problemas deterministas a todos aquellos problemas en donde conocemos con exactitud los datos que intervienen en el modelo, mientras que en otro caso podremos hablar de modelos estocsticos. Segn la variable tiempo: si interviene de forma explcita en el modelo, entonces lo consideraremos como un problema dinmico frente a los problemas estticos, en donde no lo est. Atendiendo a los objetivos del problema: podemos hablar de modelos con objetivo nico frente los problemas con objetivos mltiples o multi-objetivos. Segn tengan o no restricciones: podemos hablar de problemas restringidos o problemas sin restricciones. Atendiendo a la linealidad de las funciones que intervienen: tambin podemos clasificar a los modelos en lineales (todas las funciones son lineales) o modelos no lineales. Atendiendo a la continuidad de las variables: tambin los podemos clasificar como problemas continuos o problemas discretos.

1.2 Programacin lineal

Es un enfoque de solucin de problemas elaborado para ayudar a tomar decisiones. Es un modelo matemtico con una funcin objetivo lineal, un conjunto de restricciones lineales variables no negativas. En el ambiente de negocios actual, pueden encontrarse gran cantidad de aplicaciones. La funcin objetivo define la cantidad que se va a maximizar o minimizar en un modelo de programacin lineal. Las restricciones limitan o reducen el grado en que puede perseguirse el objetivo. Las variables son las entradas controlables en el problema. Para resolver un problema de programacin lineal es recomendable seguir ciertos pasos que son: 1. Entender el problema a fondo. 2. Describir el objetivo. 3. Describir cada restriccin. 4. Definir las variables de decisin. 5. Escribir el objetivo en funcin de las variables de decisin. 6. Escribir las restricciones en funcin de las variables de decisin. 7. Agregar las restricciones de no negatividad.

Trminos utilizados. Modelo Matemtico: Representacin de un problema donde el objetivo y todas las condiciones de restriccin se describen con expresiones matemticas. Restricciones de no negatividad: Conjunto de restricciones que requiere que todas las variables sean no negativas. Solucin Factible: restricciones. Solucin que satisface simultneamente todas las

Regin Factible: Conjunto de todas las soluciones factibles. Variable de holgura: Variable agregada al lado izquierdo de una restriccin de "menos o igual que" para convertir la restriccin en una igualdad. El valor de esta variable comnmente puede interpretarse como la cantidad de recurso no usado.

Forma Estndar: Programacin lineal en el que todas las restricciones estn escritas como igualdades. La solucin ptima de la forma estndar de un programa lineal es la misma que la solucin ptima de la formulacin original del programa lineal.
1

Punto Extremo: Desde el punto de vista grfico, los puntos extremos son los puntos de solucin factible que ocurren en los vrtices o "esquinas" de la regin factible. Con problemas de dos variables, los puntos extremos estn determinados por la interseccin de las lneas de restriccin. Variable de Excedente: Variable restada del lado izquierdo de una restriccin de "mayor o igual que" para convertir dicha restriccin en una igualdad. Generalmente el valor de esta variable puede interpretarse como la cantidad por encima de algn nivel mnimo requerido. La programacin lineal da respuesta a situaciones en las que se exige maximizar o minimizar funciones que se encuentran sujetas a determinadas limitaciones, que llamaremos restricciones. Su empleo es frecuente en aplicaciones de la industria, la economa, la estrategia militar, etc. Funcin objetivo: En esencia la programacin lineal consiste en optimizar (maximizar o minimizar) una funcin objetivo, que es una funcin lineal de varias variables: f(x,y) = ax + by. Restricciones: La funcin objetivo est sujeta a una serie de restricciones, expresadas por inecuaciones lineales:

Cada desigualdad del sistema de restricciones determina un semiplano.

Solucin factible: El conjunto interseccin, de todos los semiplanos formados por las restricciones, determina un recinto, acotado o no, que recibe el nombre de regin de validez o zona de soluciones factibles

Solucin ptima: El conjunto de los vrtices del recinto se denomina conjunto de soluciones factibles bsicas y el vrtice donde se presenta la solucin ptima se llama solucin mxima(o mnima segn el caso).

Valor del programa lineal: El valor que toma la funcin objetivo en el vrtice de solucin ptima se llama valor del programa lineal.
3

Variables: Las variables son nmeros reales mayores o iguales a cero.

En caso que se requiera que el valor resultante de las variables sea un nmero entero, el procedimiento de resolucin se denomina Programacin entera. Restricciones: Las restricciones pueden ser de tipo 1, 2 o 3 y son de la siguiente forma:

Dnde: A = valor conocido a ser respetado estrictamente; B = valor conocido que debe ser respetado o puede ser superado;
4

C = valor conocido que no debe ser superado; j = nmero de la ecuacin, variable de 1 a M (nmero total de restricciones); a; b; y, c = coeficientes tcnicos conocidos; X = Incgnitas, de 1 a N; i = nmero de la incgnita, variable de 1 a N.

En general no hay restricciones en cuanto a los valores de N y M. Puede ser N = M; N > M; o, N < M. Sin embargo si las restricciones del Tipo 1 son N, el problema puede ser determinado, y puede no tener sentido una optimizacin. Los tres tipos de restricciones pueden darse simultneamente en el mismo problema. Funcin Objetivo: La funcin objetivo puede ser:

Dnde:

fi = coeficientes son relativamente iguales a cero.

Programacin entera 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 las 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.

Aplicaciones La programacin lineal constituye un importante campo de la optimizacin por varias razones, muchos problemas prcticos de la investigacin de operaciones pueden plantearse como problemas de programacin lineal. Algunos casos especiales de programacin lineal, tales como los problemas de flujo de redes y problemas de flujo de mercancas se consideraron en el desarrollo de las matemticas lo suficientemente importantes como para generar por si mismos mucha investigacin sobre algoritmos especializados en su solucin. Una serie de algoritmos diseados para resolver otros tipos de problemas de optimizacin constituyen casos particulares de la ms amplia tcnica de la programacin lineal. Histricamente, las ideas de programacin lineal han inspirado muchos de los conceptos centrales de la teora de optimizacin tales como la dualidad, la descomposicin y la importancia de la convexidad y sus generalizaciones. Del mismo modo, la programacin lineal es muy usada en la microeconoma y la administracin de empresas, ya sea para aumentar al mximo los ingresos o reducir al mnimo los costos de un sistema de produccin. Algunos ejemplos son la mezcla de alimentos, la gestin de inventarios, la cartera y la gestin de las finanzas, la asignacin de recursos humanos y recursos de mquinas, la planificacin de campaas de publicidad, etc.

1.3 El algoritmo simplex y programacin de metas Estandarizacin Cuando se plantea un modelo de LP pueden existir igualdades y desigualdades. De la misma forma pueden existir variables que deben ser no negativas o bien sin restriccin de signo (srs). Antes de emplear el mtodo Simplex para resolver un LP, el problema debe ser convertido en uno equivalente en el cual todas las restricciones son ecuaciones y todas las variables son no negativas. Esta versin equivalente se denomina forma estndar del LP. Para convertir un LP en su forma estndar cada desigualdad debe ser transformada en una igualdad. Para ilustrar la tcnica consideremos el siguiente ejemplo:

Una fbrica de zapatos de cuero produce dos lneas: modelos de lujo y modelos regulares. Cada tipo modelo requiere un pie cuadrado de cuero. Un modelo regular necesita 1 hora de mano de obra, mientras que un modelo de lujo requiere 2 horas de mano de obra. Cada semana se dispone de 40 pies cuadrados de cuero y de 60 horas de mano de obra. Cada zapato regular genera una utilidad de 30 mil y cada modelo de lujo representa una utilidad de 40 mil. Para plantear el modelo se emplearn las variables:
6

x1: nmero de zapatos de lujo producidos a la semana x2: nmero de zapatos regulares producidos a la semana Luego, el modelo de LP queda (escribiendo la funcin objetivo en decenas de miles): Max z= 4x1+ 3x2 (Funcin Objetivo) s.t. x1+x2 40 2x1+x2 60 x1,x2 0 (a) Restriccin de cuero (b) Restriccin de mano de obra (c) Restriccin de signo

Para convertir cada desigualdad de tipo en una igualdad introduciremos una variable de holgura si. Cada variable si (una por cada desigualdad de tipo ) representa la cantidad de recurso no empleado de esa restriccin. Luego, en la restriccin (a) se tiene: s1= 40x1x2 o x1+x2+s1= 40 Similarmente, para la restriccin (b) se tiene: s2= 602x1x2 o 2x1+x2+s2= 6 Luego, cualquier combinacin (x1,x2) satisface la restriccin i slo si al reemplazar los valores se obtiene si0. Finalmente, la versin estandarizada del problema queda as: Max z = 4x1+ 3x2 (Funcin Objetivo) s.t. x1+x2+s1=40 2x1+x2+s2= 60 Descripcin General Supongamos que se ha convertido un LP con m restricciones a su forma estndar. Asumiendo que cada restriccin contiene n variables (x1, x2, ...xn) se tiene: (a) Restriccin de cuero (b) Restriccin de mano de obra

Luego, se puede definir:

Por lo tanto, las restricciones del ejemplo anterior pueden ser escritas como un sistema lineal:

Ejemplo: Resolver: Max Z = 18.5X1 + 20 X2 Sujeto a: 0.05 X1 + 0.05 X2 1100 0.05 X1 + 0.10 X2 1800 0.10 X1 + 0.05 X2 2000 C.N.N. (Condicin de No Negatividad) a) Convertir al Modelo Estndar: Cada restriccin debe ser convertida de inecuacin a una igualdad, agregando variables como se requiera. Con las restricciones de tipo , es fcil. Simplemente se agrega una en cada restriccin con coeficiente 1 en la misma restriccin y con coeficiente cero en la funcin objetivo. Por ejemplo: 0.05X1 + 0.05 X2 1100 queda: 0.05X1 + 0.05 X2 + S1 = 1100 La primera restriccin se puede leer como que 0.05 por las unidades de X 1 ms 0.05 por las unidades de X2, no puede exceder a 1100, pero lo mismo da decir que 0.05 por las unidades de X1 ms 0.05 por las unidades de X2, ms lo que sobre guardado en S1 sea totalmente igual a 1100. De esta forma se agregan tres
8

variables, una por cada restriccin y queda como se ve abajo. Para el caso de restricciones del tipo mayor o igual, se ver en el ejemplo de minimizacin. Max Z = 18.5X1 + 20 X2 + 0S1 + 0S2 + 0S3 Sujeto a: 0.05 X1 + 0.05 X2 + S1 0.05 X1 + 0.10 X2 0.10 X1 + 0.05 X2 = 1100 = 1800 = 2000

+ S2 + S3

C.N.N.(Condicin de No Negatividad) b. Escribir en formato de Tabla Simplex. Si lo escribimos como una matriz, indicando los nombres de las variables en negro queda as:

Dnde X1, X2 son las variables de decisin, S1, S2 y S3 son las variables de Holgura (Se suelen llamar con S, porque en ingls se escribe Surplus). R1, R2, R3 son las restricciones y RHS son las disponibilidades de las restricciones, se llama as porque significa Right Hand Side, (por sus siglas en ingls) "el lado derecho". Para facilitar el proceso iterativo se construyen tablas. Hay muchos formatos de tablas Simplex, que significan exactamente lo mismo. Lo importante es entender que significa cada cosa, y lo dems ya vendr por aadidura. En la primera fila (fondo negro), colocamos los coeficientes de la funcin objetivo (18.5,20,0,0,0) y los ttulos de las dems columnas. Recuerda que se mencion anteriormente, que haba que definir un nmero de variables que iban a tomar el valor de cero? Las No Bsicas, para poder resolver el sistema de ecuaciones de manera nica. Entonces como tenemos 3 restricciones y 5 variables hay que dejar 2 como No Bsicas o sea iguales a cero. Siempre se escoge las de holgura (S1, S2, S3) para estar en la base en el inicio y dejamos las variables de decisin como no bsicas. Veamos en la tabla siguiente que no las colocamos en la columna de la base. En la primera columna vamos a colocar los coeficientes de las variables de la base. (Los coeficientes que tienen en la funcin objetivo). En la segunda columna como ya dijimos anteriormente, los nombres de las variables que tenemos
9

actualmente en la base. De la tercera columna en adelante copiamos los coeficientes de las restricciones, luego en la columna RHS, colocamos cuanto tenemos de disponibilidad de las restricciones, lo que los estadounidenses llaman "lado derecho" o RHS. La ltima columna vamos llamarla theta, ms adelante se explicara. c. Definir la variable que entra. Observemos un momento la tabla de abajo; definamos dos filas adicionales. La fila Z y la fila Cj - Zj. En la fila Z vamos a colocar la suma del producto de los coeficientes de las variables que hay actualmente en la base por los coeficientes actuales en el rea de las restricciones. Hagamos el ejemplo para el primero: 0x0.05 + 0x0.05+ 0x0.1 = 0 y lo colocamos en seguida de la z. Para la columna siguiente ser: 0x0.05+0x0.1+0x0.05 = 0 y as para las dems columnas hasta llegar a la columna RHS. Observemos, que se ha puesto una celda en esta fila de color azul ms oscuro. En esta celda nos dir el valor de la funcin objetivo, a medida que vamos iterando. Ah debe quedar el mejor valor de Z cuando hayamos terminado. En la fila Cj - Zj vamos a hacer la siguiente resta: De la fila de coeficientes de la funcin objetivo (la que est de fondo negro), restemos la fila que acabamos de calcular. Para la primera: 18.5 - 0 = 18.5, para la segunda 20 - 0 = 0 y as. Esta fila es importante porque nos dice lo siguiente: qu tanto contribuye una variable si se mete en la funcin objetivo. X1 contribuira con 18.5 y X2 contribuira con 20, etc. Cmo queremos hallar el mximo valor, lo que nos interesa es incluir la variable que ms contribuya, o sea la que mayor valor tenga en esta fila. En este caso, por supuesto, gana X2 con 20. X2 no est en la base, entonces la marcamos para entrar, note que abajo se le puso: "entra".

10

d. Definir la variable que sale.

La variable que sale de la base es la que ms restringe el crecimiento de la funcin objetivo y para ello sacamos un "ratio", es decir una divisin entre el RHS (la disponibilidad) y la columna de la variable que entra, esta queda en la columna que llamamos Theta. Para la primera fila queda: 1100/0.05 = 22,000. Luego de esta columna escogemos el menor valor que sea diferente de cero o de algn valor negativo. e. Iteracin: Gauss-Jordan. Una vez definida la variable que entra y la variable que sale, la interseccin nos define la celda pivote. La celda pivote es la que se tomar como base para hacer toda la iteracin de gauss-jordan. En la tabla el pivote lo he colocado en fondo verde. Debemos, con base en operaciones entre filas, convertir la celda pivote en 1, y con base en ella convertir a las dems celdas en la misma columna en ceros. Entonces: Convertir el pivote en 1: Para ello dividamos toda la fila en el valor del pivote. 0.05 / 0.1 = 0.5 0.10 / 0.1 = 1 0.0 / 0.1 = 0 1.0 / 0.1 =10 Los resultados se copian reemplazando la fila que contena el pivote. Convertir las dems celdas de la columna pivote en ceros. 0.5*(0.05*-1) + 0.05 = 0.025 1.0*(0.05*-1) + 0.05 = 0 0.0*(0.05*-1) + 1 = 1 y lo mismo para la tercera fila

11

Reemplazamos S2 por X2 con su respectivo coeficiente y repetimos el paso c y d.

Repetir hasta que no se llegue al ptimo: Cmo sabremos lo anterior? Cuando al evaluar si hay una variable que entrando mejore el resultado, es decir que la fila Cj - Zj tenga algn valor positivo, an ser posible mejorar la solucin, si no hay ningn valor mayor que cero, significa que hemos llegado al ptimo, como se muestra en la siguiente y ltima tabla.

Minimizacin empleando Simplex Existen dos formas de emplear el mtodo Simplex para resolver problemas de minimizacin. Para ilustrar las dos alternativas consideremos el siguiente ejemplo:

Mtodo 1. El primer mtodo consiste en transformar el problema de minimizacin en uno de maximizacin. Para ello, basta con modificar la funcin objetivo de la siguiente forma: Por lo tanto, para resolver el problema anterior podemos aplicar el mtodo Simplex a:

12

El Cuadro siguiente muestra la primera iteracin del problema. En este caso la variable con mayor precio sombra es x2. El valor mximo con el que puede entrar es 4 y reemplazar a s1 en la base. El nuevo valor de la funcin objetivo ser: z = 4 3 = 12

Aplicando el pivoteo, se construye el Cuadro siguiente, en este caso, en todas las variables se cumple que cj zj 0, por lo tanto se ha alcanzado el ptimo. Luego, la solucin ptima corresponde ax x2 = 4, s2 = 10, x1=s1= 0, con z = 12. Esto significa que en el problema original, el valor ptimo de la funcin objetivo es z = 12, con x2 = 4, s2 = 10 y x1 = s1 = 0. En suma, una opcin para resolver un problema de minimizacin con Simplex es multiplicando por 1 la funcin objetivo y aplicar el algoritmo manteniendo todas las reglas vistas anteriormente.

13

Problemas de pl ilimitados Como se estudi en la resolucin grfica de problemas de programacin lineal, en algunos LP pueden existir puntos de la regin factible en el que los valores de z pueden ser arbitrariamente grandes (maximizacin) o arbitrariamente pequeos (minimizacin). Cuando esto ocurre, se dice que el LP es no acotado. A continuacin se ver como puede ser empleado el mtodo Simplex para determinar cundo un LP es no acotado. Consideremos el siguiente modelo:

Estandarizando:

A continuacin construimos el tableau inicial y efectuamos la primera iteracin (Que se muestra en el siguiente cuadro). En este caso la variable que ms conviene ingresar a la base es x1. Verificando el valor mximo se obtiene x1=5/3. Ingresando x1 a la base se completa el Cuadro siguiente Completando el nuevo tableau se determina que conviene ingresar la variable x2 con valor 20. Se completa la iteracin y se construye el Cuadro que le sigue En este Cuadro se verifica que la variable x3 posee un precio sombra factible, sin embargo al intentar incorporarla a la base se encuentra que no existe un valor mximo. Podemos entender la situacin escribiendo las dos restricciones en su estado actual a partir del ltimo cuadro.

Tableau Inicial

14

Segunda Iteracin.

Luego, cualquier incremento positivo de x3 provoca que las variable basales x4 y x1 Tambin aumenten, por lo tanto sin importar el valor que tome x3 las variables basales seguirn siendo positivas.

Como el precio sombra de x3 es 9, se puede encontrar puntos de la regin factible que tienen un valor arbitraria-mente grande (pues no existen restricciones para el valor de x3), en otras palabras el LP es no acotado.

Tableau Final En suma, un problema de maximizacin de un LP no est acotado si existe una variable no bsica con precio sombra positivo sin que exista lmite para el valor mximo que pueda tomar. Esto ocurre cuando una variable tiene precio sombra positivo y coeficientes no positivos en todas las restricciones.

Degeneracin y convergencia del algoritmo simplex Tericamente, el mtodo Simplex puede fallar al intentar encontrar la solucin ptima de un determinado LP. A continuacin se describir en que situaciones Simplex puede fallar. Recordemos que en un problema de maximizacin la siguiente relacin es vlida:

15

Recordemos que en un problema de maximizacin, se cumple que cj zj > 0 para la variable entrante. Luego. 1. Si el valor de la variable entrante es positivo, el valor de z para la nueva base es mayor que el valor z en la base actual. 2. Si el valor de la variable entrante es nulo, el valor de z para la base nueva es igual al valor de z para la base actual. Si al resolver un LP mediante Simplex se cumple que en todas las bases evaluadas todas las variables son positivas, se dice que el problema es un LP No Degenerado. Por lo tanto, al resolver un LP no degenerado se cumple que el valor de z crece en cada iteracin. En otras palabras, al resolver un LP mediante Simplex nunca se puede pasar por una misma bfs ms de una vez. Como ya se mostr anteriormente, un LP posee un nmero finito de soluciones bsicas factibles. Adems, como nunca se repite una bfs, se puede garantizar que el mtodo Simplex resolver un problema no degenerado en un nmero finito de iteraciones. A pesar de ello, Simplex puede fallar par un problema degenerado: Un LP es degenerado si existe al menos una bfs en la cual al menos una variable basal es igual a cero. Consideremos el siguiente LP degenerado:

Una vez estandarizado el problema, se construye el tableau inicial (Cuadro siguiente). En dicho tableau, se observa que s2 = 0, por lo tanto el LP est degenerado. A pesar de ello, podemos proseguir iterando ingresando la variable con mayor precio sombra (x1) con valor mximo igual a cero. Mediante operaciones fila construimos el Cuadro de la segunda iteracin. Una vez ms, observamos que el tableau est degenerado ya que la variable basal x1 tiene valor cero. Ntese que la funcin objetivo no mejor con la primera iteracin. En el nuevo tableau, la variable x2 posee un precio sombra positivo por lo que conviene incorporarla a la base con valor 3. El ltimo cuadro es el ptimo, ya que todas las variables poseen un precio sombra no positivo. En este caso, a pesar de tratarse de un problema degenerado el mtodo Simplex fue capaz de determinar el ptimo.

16

Primera Iteracin

Segunda Iteracin

Tableau Final

El mtodo de la M grande Llamado tambin Mtodo Simplex Penal, consiste en penalizar la inclusin de las variables artificiales en la funcin objetivo con un coeficiente M muy grande que para el caso de maximizar es -M y para el caso de minimizar es + M. La primera solucin bsica del simplex en tal caso, debe de incluir a todas las variables artificiales que fueron necesarias en el arreglo del modelo de programacin lineal por resolver esto ltimo porque las variables artificiales se utilizan precisamente para tomar la primera solucin bsica. A medida que se cumplen las etapas de clculo en el simplex, las variables artificiales debern de ir saliendo de la misma, en consecuencia del coeficiente M muy grande.
17

Si se presenta el caso de que las variables artificiales no se logren sacar de la base y por lo tanto se anulen, ello significar que tal problema no tiene solucin factible. El mtodo de la M Grande incluye variables de apoyo con un coeficiente muy grande (M) o muy pequeo (-M) en la funcin objetivo. Esto da lugar a problemas numricos que conducen a soluciones errneas. Esto es especialmente grave en problemas de cierto tamao. El trmino independiente (RHS) debe ser 0. A las restricciones del tipo se aade una variable de holgura con coeficiente +1 A las restricciones del tipo , se aade una variable de holgura con coeficiente 1 y una variable artificial con coeficiente +1 A las restricciones del tipo = se aade una variable artificial con coeficiente +1 La contribucin de las variables de holgura a la funcin objetivo es 0 La contribucin de las variables artificiales a la funcin objetivo se fijan: Min: + M o Max: - M Siendo M un nmero suficientemente grande.

Mtodo de karmakar para reduccin de problemas de programacin lineal El algoritmo de Karmarkar al igual que el simplex no resuelve los programas lineales en su forma inicial. Es necesario transformar el problema en otro equivalente, de suerte que este ltimo se ajuste a los requerimientos que exige el algoritmo de Karmarkar. Llamaremos mtodo de Karmarkar al proceso que toma un problema en forma cannica; lo convierte y halla la solucin del problema original, o bien concluye sobre la vacuidad o no unicidad de la solucin.
18

Un programa lineal se dice que esa en la forma estndar de Karmarkar (FEK) si es de la forma:

donde A es m n de rango m, n 2, c y A estn compuestos por n meros enteros, Un es un vector con n unos, y cumple las siguientes condiciones (S1) el punto x0 = (1/n, ,1/n), es factible para (??), y (S2) el valor objetivo ptimo del problema (??) es cero. El mtodo de Karmarkar puede dividirse en tres fases claramente delimitadas: Fase I Convertir el problema a la FEK. Fase II Hallar una solucin factible y satisfactoria para el problema de programacin lineal dado en la forma estndar de Karmarkar. Fase III En la fase II se obtiene una solucin x factible pero no necesariamente es un punto extremo del poliedro respectivo. Se debe emplear aqu algn mecanismo (Comnmente llamado esquema de purificacin) para encontrar la solucin de punto extremo. Consideremos un problema de la forma 2:

Dnde:

Supongamos adems que:

19

Proyective Scaling Algorithm (Karmarkar, 1984) 1. Inicializacin: 2. Denimos: x1 = 1 1/n

Luego, la matriz asociada a las restricciones activas (que coincide con la regin factible porque solo hay restricciones de igualdad) viene dada por:

Y por tanto la proyeccin del gradiente de la funcin objetivo sobre las restricciones activas viene dada por:

3. Sea:

Entonces:

4. Criterio de detencin: Si ct xk+1 < terminar Si no, k k + 1. Ir a 1 5. Redondear la solucin

20

Observacin: y son parmetros de la implementacin. se elige en [0,1] siendo un valor tpico el de 2/3. se escoge pequeo (recuerde que z* = 0).

Interpretacin geomtrica Dado un punto xk se aplica una transformacin que nos cambia de espacio a otro en el cual el punto xk corresponde al centro del simplex estndar S3. En este nuevo espacio, nos movemos en la direccin d en una cantidad /n.

Procedimiento para llevar un PL a la forma exigida por Karmarkar Sabemos que cualquier PL puede llevarse a la forma:

21

Agregamos una restriccin 1tx Q, que si el problema es acotado siempre puede escribirse:

Homogenizamos las restricciones hacindolas iguales a 0. Para ello agregamos una variable x n+2 = 1

Necesitamos incorporar que 1 1/n sea factible. Para ello agregamos variables artificiales yn+3

Observacin: Para que las nuevas restricciones sean equivalentes a las anteriores, necesitamos que yn+3 = 0. Esto se logra penalizando mucho yn+3 (M<<1). Solo nos falta exigir que z= 0, lo cual se puede hacer de varias maneras. Por ejemplo minimizando la brecha entre los problemas primal y dual. Programacin de Metas Se llama programacin lineal al conjunto de tcnicas matemticas que pretenden resolver la situacin siguiente: Optimizar (maximizar o minimizar) una funcin objetivo, funcin lineal de varias variables, sujeta a: una serie de restricciones, expresadas por inecuaciones lineales. Funcin Objetivo (F.O.): Para seleccionar que funcin objetivo debe elegirse se toma en cuenta lo siguiente:

22

a) Si vamos a encontrar situaciones en las cuales tendremos solo costos ya sea de materia prima, costo de mano de obra, costo de uso de mquina, costos de transporte, costos de depreciacin ,etc. esto indica que indudablemente la F.O. ser de MINIMIZACION. b) Si el enunciado solo da datos econmicos de ganancia, precio de venta o dinero a recibir por unidad producida la F.O. ser de MAXIMIZACIN. c) Si el enunciado nos da al mismo tiempo costos y ganancias restaremos de la siguiente manera: GANANCIAS = COSTOS =UTILIDAD , la que tendr como F.O. MAXIMIZACIN. d) Si no nos dan ningn datos econmico y solo se da tiempos, el tiempo se minimiza, si nos da solo produccin, la produccin se ha de maximizar, si el modelo corresponde a contratar al personal , la funcin objetivo se minimiza. Restricciones: Estas limitaciones o restricciones en los modelos lineales tienen en slo las siguientes estructuras:, =. Muchos problemas tienen expresiones caractersticas que nos pueden anunciar que tipo de restriccin debemos usar, por ejemplo:

Usar =

Para expresiones como : Como mximo, a lo ms, disponibilidad, demanda mxima. Como mnimo, por lo menos, al menos, demanda mnima. total, proporcin

1.4 Anlisis de sensitividad y dualidad Encontrar el ptimo de un problema de optimizacin, es solo una parte del proceso de solucin. Muchas veces nos interesar saber cmo vara la solucin si vara alguno de los parmetros del problema que frecuentemente se asumen como determinsticos, pero que tienen un carcter intrnsecamente aleatorio. Ms especficamente nos interesar saber para qu rango de los parmetros que determinan el problema sigue siendo vlida la solucin encontrada. Otro aspecto interesante es el tema de dualidad. Dualidad resulta de buscar relaciones que permitan obtener informacin adicional de un problema de optimizacin general. Esto, traducido a PL nos conduce a relaciones primal-dual.
23

Adems veremos algunos teoremas tiles de dualidad y el concepto de precio sombra. Todo problema de optimizacin (primal), tiene un problema asociado (dual) con numerosas propiedades que los relacionan y nos permiten hacer un mejor anlisis de los problemas. A continuacin se describen los resultados que se ocuparn en la resolucin de los problemas.

Construccin del problema dual Bastante en general, para encontrar el dual de un problema lineal: 1. Si es problema de minimizacin el dual ser de maximizacin y viceversa. 2. En el dual habr tantas variables como restricciones 2 en el primal. 3. En el dual habr tantas restricciones como variables en el primal. 4. Los coeficientes de la funcin objetivo del dual vendrn dados por los coeficientes del lado derecho de las restricciones del primal. 5. Los coeficientes del lado derecho del dual vendrn dados por los coeficientes de la funcin objetivo del primal. 6. Los coeficientes que acompaarn a las variable en una restriccin del dual correspondern a aquellos coeficientes que acompaan a la variable primal correspondiente a la restriccin dual 7. Para saber si las restricciones duales son de , = , se recurre a la tabla de relaciones primal-dual. 8. Para saber si las variables duales son 0, = 0 0, se recurre a tabla de relaciones primal dual.

Relaciones Primal Dual Estas relaciones nos permiten pasar de un problema de primal a su dual en forma bastante algortmica, tanto para problemas de minimizacin como de maximizacin.

PROBLEMA DE MINIMIZACION Restricciones = Variables 0 Irrestricta = 0

PROBLEMA DE MAXIMIZACIN Variables Variables 0 Irrestricta 0 Restricciones =

24

Algunos teoremas de dualidad Consideremos el siguiente par primal-dual:

Teorema Dbil de Dualidad Si x e y son factibles para (P) y (D) respectivamente, entonces z(x) w(y). Teorema Fundamental de Dualidad Dados un par de problemas primal-dual, si uno de ellos admite solucin ptima, entonces el otro tambin la admite y los respectivos valores ptimos son iguales. Teorema de Holgura Complementaria Sea

Sea el par primal-dual siguiente:

Sean x e y soluciones factibles para los problema (P) y (D) respectivamente. x e y son ptimos si y solo si:

25

Ntese que (i x bi) y (cj y j ) son las variable de holgura de los problemas (P) y (D) respectivamente. Precios sombra Los valores de las variables duales en el ptimo tienen una interpretacin econmica interesante en problemas de programacin lineal: Corresponde a las tasas marginales de variacin del valor de la funcin objetivo ante variaciones unitarias del lado derecho de una restriccin. Por este motivo se le llama precio sombra al vector de variables duales en el ptimo. Acerca de sensibilidad Como ya se dijo, nos interesa ver como se ve afectada la solucin de un problema de optimizacin si cambia alguno de los parmetros del problema. En este mbito, podemos distinguir 2 tipos de anlisis: Anlisis de sensibilidad: Consiste en determinar cul es el rango de variacin de los parmetros del problema de modo que la base ptima encontrada siga siendo ptima. Anlisis post optimal: Consiste en determinar cmo vara la base ptima si cambia alguno de los parmetros del problema. Consideremos la forma estndar siguiente:

Sea B la base ptima. Nos interesa estudiar el rango de variacin de los parmetros c y b de modo que B siga siendo ptima. Variacin en el parmetro b. Buscamos el rango en el que puede tomar valores b de modo que la base B siga siendo ptima. Para ello debemos verificar:

Como en la ecuacin 2 no hay dependencia explicita de b, no impone condiciones y por tanto solo debemos verificar 1. Variaciones en el parmetro c
26

Buscamos el rango en el que puede tomar valores c de modo que la base B siga siendo ptima. Para ello debemos verificar: 1. Factibilidad: xB = B1 b 0 2. Optimalidad: cR = cR cBB1R 0

Como en la ecuacin 1 no hay dependencia explicita de b, no impone condiciones y por tanto solo debemos verificar 2. Notemos que al variar un coeficiente de cj a cj e imponer la condicin 2 surgen dos casos: Caso 1: variable xj es no bsica. Por lo tanto slo tenemos que imponer 1 ecuacin: la de costo reducido asociado a variable que cambi.

Caso 2: variable xj es bsica.

Por lo tanto, no basta con examinar una nica ecuacin y se debe inspeccionar todas las ecuaciones de costo reducido. As: Si cambia cj de variable no bsica se impone cj 0. Si cambia cj de variable bsica se impone ck 0 xk no bsica.

El mtodo simplex dual Como sabemos, el mtodo simplex es un algoritmo iterativo que iniciando en una solucin bsica factible pero no ptima, genera soluciones bsicas factibles cada vez mejores hasta encontrar la solucin ptima (s sta existe). Ntese que la base de su lgica es mantener la factibilidad, mientras busca la optimalidad. Pero surge la posibilidad de usar otro esquema igualmente iterativo, que como contraparte del simplex, comienza en una solucin bsica ptima, pero no factible y mantiene la inmejorabilidad mientras busca la factibilidad. Con este procedimiento se llega igualmente a la solucin ptima.

27

El nuevo algoritmo fue desarrollo en 1954 por C. E. Lemke y se conoce con el nombre de Mtodo Dual-Simplex. A continuacin se presenta su estructura y un ejemplo para ilustrar su aplicacin. Algoritmo Dual-Simplex para un modelo de maximizacin Primero se debe expresar el modelo en formato estndar, agregando las variables de holgura y de exceso que se requieran. Enseguida, en las ecuaciones que tengan variables de exceso (resultantes de restricciones de tipo >), se debe multiplicar por (-1) en ambos lados, para hacer positivo el coeficiente de la variable de exceso, y formar as un vector unitario que nos permita tomar esta variable de exceso como una variable bsica inicial. Sin necesidad de agregar una variable artificial en esa restriccin. Al hacer lo anterior se logra que debajo de las variables bsicas aparezca una matriz identidad, que es la que el simplex siempre toma como base inicial. Obtendremos que los trminos del lado derecho de las ecuaciones multiplicadas por (-1) queden con signo negativo, lo cual hace que la solucin inicial sea infactible. Es importante destacar que este proceso es muy til ya que en muchos modelos evita la inclusin de variables artificiales en el momento de transformar un modelo a formato estndar. El algoritmo para resolver un modelo de maximizacin es el siguiente:

Paso 1: Hallar una solucin bsica inicial infactible e inmejorable Escribir el tablero inicial tomando a las variables de holgura y de exceso como variables bsicas iniciales. Paso 2: Prueba de factibilidad a. Si todas las variables bsicas son no negativas, la actual solucin es la ptima. b. Si hay al menos una variable bsica negativa, seleccionar como variable de salida, (llammosla (XB)s ), a aquella con el valor ms negativo. Los empates se pueden romper arbitrariamente. Paso 3: Prueba de inmejorabilidad a. S en el rengln de la variable bsica de salida (XBs) todos los coeficientes de reemplazo con las variables no bsicas son no negativos, la solucin del modelo es ptima limitada. Se termina el proceso.

28

Si en el rengln de la variable bsica de salida (XBs), hay al menos un coeficiente de intercambio negativo, se efectan los cocientes entre el efecto neto de cada variable no bsicas y su correspondiente coeficiente de intercambio negativo. Es decir, siendo (XBs) la variable de salida se calculan todos los cocientes:

Se toma como variable de entrada (llammosla Xe) a aquella que corresponda al mnimo de los cocientes del anterior conjunto. Si la variable de entrada es Xe el elemento pivote ser el elemento (Se)s El empate se puede romper arbitrariamente. a. Aplicar la operacin de pivoteo para generar la nueva tabla, en la cual aparezca Xe como variable bsica en lugar de la variable de salida (XB)s b. Repetir el algoritmo a partir del paso 2.

1.5 Tpicos avanzados de programacin lineal Mtodo Simplex Revisado Identificar el problema

Es muy importante tener siempre presente con qu tipo de problema estamos trabajando: mnimo o mximo (ya volveremos a esto ms tarde), que las variables
29

Xi con las que trabajamos son positivas, y que los beneficios no pueden ser negativos. En este ltimo caso, habra que cambiar de signo a toda la restriccin implicada (con beneficio negativo). Habra que contemplar adems, el caso en el que las restricciones sean inecuaciones. Si as fuese, hay que tener presente el aadir la resta de una variable de excedente (inecuacin mayor/igual) o aadir la suma de una variable de holgura (inecuacin menor/igual), convirtiendo as las inecuaciones en ecuaciones. Mtodo de las dos fases Partiendo de un ejemplo inicial (en rojo) vamos a realizar el llamado mtodo de las dos fases. Aadimos la suma de una variable artificial nueva por cada restriccin (en este ejemplo X4 y X5) y reemplazamos la funcin objetivo por la minimizacin de la suma de todas las variables artificiales.

A su vez, y para cada una, crearemos una matriz A (la que empezaremos a usar) y una matriz B, que no es ms que el valor de los coeficientes de las restricciones, slo que la funcin objetivo, se desplaza a la ltima fila. Debe notarse que en la matriz B tambin tiene los coeficientes de las variables artificiales (X4 y X5) en las restricciones. Tabla inicial Construiremos una tabla para ir resolviendo el problema, que constar de varias zonas: Columna VB: En la primera columna (Variables Bsicas), colocaremos todas las variables artificiales aadidas (en este caso slo 2: X4 y X5). En la ltima fila, colocamos -w que representa que estamos en la fase 1. B-1: La inversa de la base, que inicialmente no es ms que la matriz identidad.

30

Columna derecha: Quedar siempre una columna vaca, donde se deber rellenar con ceros, salvo la posicin que pertenece a la ltima fila, que colocaremos un 1. Constantes: Esta columna representa los beneficios asociados a la variable artificial de la restriccin donde fue aadida.

-CBt B-1: Esta zona es el resultado de la multiplicacin entre la traspuesta de los coeficientes de la base, en negativo (a la izquierda, en azul) y la inversa de la base de la tabla actual (B-1). Vo: El valor objetivo de la tabla se calcula multiplicando las matrices correspondientes al punto anterior y a las constantes de las variables artificiales de la tabla actual.

Costos relativos Cada vez que terminemos una iteracin de la tabla (como ahora), deberemos calcular los costos relativos para saber si debemos continuar o ya tenemos una solucin ptima.

Para calcularlos, multiplicamos la matriz A por la ltima fila (-w) de la tabla. Esto nos da una matriz con los costos relativos que deben ser: Problema de mnimos: Los valores deben ser positivos (mayores o iguales a 0). Si son negativos, se optar por seleccionar el ms negativo (regla de Bland).
31

Problema de mximos: Los valores deben ser negativos (mayores o iguales a 0). Si son positivos, se optar por seleccionar el ms alto. Nota: Este problema concreto es de mximos, pero notar que estamos en la fase 1, que se convirti en un problema de mnimos. Al salir de la fase 1, volver a ser un problema de mximos de nuevo. Quizs lo ideal sera realizar la regla lexicogrfica para evitar el ciclado, ya que es ms eficiente y requiere menos iteraciones. Aun as, en este caso usaremos Bland, ya que se ve ms claro. Variable entrante Cmo se ve en la imagen anterior, en nuestro ejemplo seleccionamos -5 (de los candidatos -5 y -3), correspondiente a X1, por lo que extraemos de la Matriz A, la columna perteneciente a X1. Es ahora cuando debemos multiplicar la Tabla actual (T1-1) por esta columna extrada y nos dar la columna pivote (C.P.) a utilizar para obtener la segunda tabla (T2-1). Variable saliente Sabemos que la variable entrante es X1, sin embargo, no conocemos cul es la saliente. Para esto, lo que se hace es dividir los beneficios entre el nmero de la columna pivote y el valor ms pequeo es el que saldr de la base.

Calcular la siguiente tabla Para conseguir la siguiente tabla, debemos convertir la columna pivote (C.P.) en la columna indicada en rojo, a su derecha.

32

Entonces, procederemos como se hace en las eliminaciones por Gauss-Jordan. En nuestro ejemplo, la primera fila se divide entre 3, obtenindose una fila pivote (no confundir con columna pivote) que utilizaremos para reducir las dems. La segunda fila se calculara como: la segunda fila de la tabla T1-1 menos la fila pivote por 2. Idem con la tercera. Volveramos al paso del clculo de costos relativos, a una nueva iteracin.

Seguiramos actuando como hasta ahora, hasta que no podamos seleccionar variables entrantes (fila -w igual a 0 0 1), que es cuando concluira la primera fase y empezaramos la fase 2.

Fase 2 La nueva tabla T4-1 de la fase 2 ser exactamente igual con respecto a las variables que estn en la base, la base inversa (B-1), y la columna (0 0 1), pero es importante darse cuenta que volvemos al problema de mximos original, con su funcin objetivo original y a utilizar la matriz B en lugar de la Matriz A.

33

La ltima fila, pasa a convertirse de -w (fase 1) a -z (fase 2) y se pasa a calcular las siguientes zonas:

-CBt B-1: Los valores siguientes (en verde) se calculan nuevamente, aplicando esta frmula con los nuevos valores, donde CBt es ahora X1 y X3 en la funcin objetivo original y B-1, que tambin ha cambiado. Ctes: Hay que actualizar los beneficios realizando la multiplicacin de la tabla actual (T4-1) por las constantes del problema original, o sea la columna (12 8 0). Se puede ver tambin, que el valor objetivo se puede calcular de la forma indicada en azul.

Ahora solo tenemos que volver al paso del clculo de los costos relativos ( Ojo! Ahora con la matriz B), y seguir iterando hasta llegar al final. En nuestro caso, hemos llegado al final porque todos los costos relativos son menores o iguales a cero (problema de mximos) y por lo tanto, se trata de una solucin ptima no nica para nuestro problema:

X1: 4 (est en la base) X2: 0 X3: 0 (est en la base) X4: 0 X5: 0

Al llegar a una solucin ptima, debemos saber que si una de las variables bsicas es 0, entonces el problema tiene ms de una solucin.

Descomposicin de Dantzig Wolfe.


34

Se aplica a problemas lineales en que existe un grupo de restricciones generales que involucran todas las variables y grupos de restricciones que afectan a subconjuntos disjuntos de variables (estructura diagonal en bloque). Formalmente, sea:

Donde hay m0 restricciones generales y mj que involucran a la variable (vectorial) xj y adems:

Podemos aplicar el principio de descomposicin tal como lo vimos en la clase anterior, pero podemos aprovechar la estructura particular del problema para generar una descomposicin ms eficiente: la idea es en vez de resolver un solo gran sub-problema, resolvamos r sub problemas ms pequeos. Si suponemos que el poliedro Pj asociados al conjunto de restricciones de la variable xj es acotado para todo j, podemos escribir cada punto en uno de estos poliedros como combinacin lineal convexa de sus vrtices. :

Para cada xj Pj podemos escribir:

35

Notar que Nj representa el nmero de vrtices que tiene el poliedro Pj. As, el problema principal queda:

Luego, para resolver: Supongamos que tenemos una solucin bsica factible para (MP) y sea B la matriz bsica asociada. Debemos ver si la solucin es ptima o si existe un vrtice que deba entrar a la base del (MP). Al igual que en el principio general de descomposicin, resolveremos sub-problemas para evaluar la ptimalidad. Sea (,) = cB B1 donde: IRm0: asociado a las restricciones mantenidas. IRr: asociado a las restriccin de convexidad de cada uno de los r poliedros P j. Sea cjk el costo reducido asociado a la variable jk. Entonces:

Para que (MP) sea ptimo, debemos verificar que cjk 0 k,j, pero equivalentemente podemos buscar mn cjk y verificar que sea positivo, dando origen as al siguiente sub-problema:

36

Entonces, encontrar mn cjk es equivalente a resolver r sub-problemas del tipo 4 :

Luego: Si el valor ptimo de (S Pj) 0 j, (MP) es ptimo y por tanto (P) es ptimo. Si el valor ptimo de (S Pq) < 0 para algn q, tenemos variable que entra a la base de (MP): el peso qs asociado a la solucin ptima de (S Pq), xqs. Si existen varios subproblemas con valor ptimo negativo, por convencin elegiremos el ms negativo para que entre a la base. Si no es ptimo y qs entra a la base, debemos escoger una variable para que salga. Sean:

Luego, el ndice t de la variable que sale viene dado por

Si es ptimo, debemos reconstruir la solucin para (P):

37

38

Bibliografa

Kart F. Case, Ray, C. Fair. Programacin lineal Principios de Macroeconoma, Edit. Pearson Educacin, Mxico, 1997. Ballou Ronald H. Logstica empresarial. Edit. Daz de Santos, Madrid, 1991. Mercado H. Salvador. Canales de Distribucin y Logstica. Edit. Macchi, Mxico, 2001.

39

También podría gustarte