Professional Documents
Culture Documents
Como puede apreciarse en las figuras anteriores a y b, son convexos y la figura c es no convexa. Para cualquier conjunto convexo S, un punto P es un punto extremo si para cada segmento rectilneo que se encuentra completamente en S y que pasa por P, P es un extremo del segmento rectilneo.
Implica que
; dnde las
para
Por ejemplo para el caso de dos dimensiones, si realizamos una combinacin lineal convexa de dos vectores obtendremos como resultado un punto (vector) que pertenece al segmento de recta que los une. Grficamente:
Para un problema de PL, en forma estndar, con m ecuaciones de restriccin y n variables incluidas las de holgura o excedente, enunciamos los siguientes conceptos respecto al conjunto de soluciones del problema: Solucin factible o posible de un PL (SF) Es un conjunto de valores de las variables Solucin Factible Bsica (SFB) Es toda solucin factible que tiene como mximo m variables positivas; o lo que es lo mismo, tiene n-m valores de las variables nulos. El nmero mximo de soluciones bsicas es: que verifican el sistema de restricciones incluidas las de no negatividad.
Solucin Factible Bsica No Degenerada Tiene exactamente m variables positivas, o exactamente n-m variables nulas. Solucin Factible Bsica Degenerada Tiene menos de m variables positivas, o ms de n-m variables nulas. Solucin ptima: Es toda solucin que le da a la funcin Z el mximo (o mnimo) valor.
La solucin ptima es: { Veamos el grfico y analicemos algunas soluciones (la lnea que est en rojo corresponde a la funcin objetivo). La cantidad de soluciones posibles a nuestro problema es infinita y est determinada por la zona sombreada de color verde. Una caracterstica del mtodo simplex es que trabaja con soluciones o puntos extremos y la solucin ptima se encuentra en uno de ellos, es decir, que estos puntos que se encuentran donde se cortan dos restricciones o bien cuando una restriccin corta algunos de los ejes. Los puntos A (donde se corta con ) y B (donde se corta con eje ) son soluciones bsicas factibles, son soluciones bsicas porque se encuentran en un punto extremo y son factibles porque pertenecen a la regin factible (zona sombreada de verde). El punto D es una solucin no bsica y factible, es no bsica porque no es punto extremo y factible por que se encuentra dentro del polgono de soluciones (regin factible). Y el punto C (donde se corta con eje ) es una solucin bsica no factible. Es bsica porque es punto extremo y es no factible porque se encuentra por fuera de la regin factible.
Para cumplir con las restricciones de no negatividad de las variables, grficamente se trabaja siempre en el primer cuadrante El poliedro de soluciones es un conjunto convexo. Los puntos que resulta necesario considerar para buscar el ptimo, son los que se encuentran sobre la frontera de la regin factible. En particular podemos observar que si el PL tiene solucin, sta se encontrar en, al menos, uno de los vrtices. Se puede obtener la solucin en cada vrtice resolviendo en forma simultnea las ecuaciones lineales que lo determinan. Las soluciones factibles en los vrtices son soluciones factibles bsicas. Todos los puntos del poliedro de soluciones verifican las restricciones, es decir que el problema tiene infinitas soluciones factibles. En todo punto situado sobre una recta no hay sobrante de insumos. En las ecuaciones determinantes del ptimo (restricciones limitantes), no hay sobrantes de insumos, por lo tanto, las variables de holgura son nulas. En las ecuaciones no determinantes del ptimo (restricciones no limitantes) siempre hay sobrantes de insumos, o sea, las variables de holgura son positivas. Si el funcional verifica su mximo valor en un nico vrtice del poliedro, significa que el problema tiene una nica solucin ptima. Si z fuera paralela a una restriccin limitante, el problema tendra infinitas soluciones ptimas. Si el ptimo se verifica en un vrtice donde se cruzan 3 o ms rectas de restriccin, la solucin ptima es degenerada.
Teorema 1
"Toda combinacin lineal convexa de soluciones factibles, es otra solucin factible". Para demostrarlo partimos de un PL estndar matricial:
Sean
Si multiplicamos miembro a miembro las ecuaciones del sistema (1) por escalares la condicin que, y Tendremos: ,
, respectivamente, con
Sumando miembro a miembro: De donde, Siendo, El vector resultante de la combinacin convexa, Ser tambin una solucin factible del PL, es decir: En consecuencia queda demostrado el teorema. Corolario del teorema 1: el conjunto de todas las soluciones factibles de un PL, si no es vaco, es un conjunto convexo. Es decir que, si no es vaco, est formado por un nico elemento o por una infinidad".
Teorema 2
"Si existe ms de una solucin factible que le d el mismo valor a la funcin objetivo, cualquier combinacin lineal convexa de las mismas, dar al funcional igual valor. La demostracin de este teorema es similar al anterior. Partimos de un PL en forma estndar matricial:
Sean
r vectores soluciones del PL que dan a la funcin objetivo igual valor, por lo tanto se verificar:
Si multiplicamos miembro a miembro las ecuaciones del sistema (3) por escalares la condicin que, y , Tendremos:
, respectivamente, con
Si ahora sumamos miembro a miembro, obtendremos: De donde, Como, Tendremos que el vector resultante de la combinacin convexa
Es tambin una solucin factible del PL que otorga a la funcin de decisin el mismo valor
, es decir:
En consecuencia, de acuerdo a los teoremas 1 y 2, podemos afirmar que cualquier combinacin convexa de soluciones factibles ptimas es tambin una solucin factible ptima. Por lo cual, respecto al conjunto de soluciones factibles ptimas decimos que es un conjunto convexo, que si no es vaco, est formado por un elemento o por una infinidad.
Teorema 3
"Si un PL puede ser resuelto - es decir que posee ptimo existir siempre por lo menos una solucin factible bsica que tambin sea ptima".
El Simplex trabaja con tablas o cuadros, cada uno de ellos corresponde a un punto extremo o vrtice del conjunto de soluciones factibles, es decir a una solucin posible bsica. Las tablas resumen toda la informacin necesaria de cada solucin.
Como consecuencia de lo anterior, la prueba de optimidad dice: En problemas de maximizacin, la solucin es ptima si todas las diferencias ( En problemas de minimizacin, la solucin es ptima si todas las diferencias ( ) son ) son . .
2. Variable de entrada: determinar la variable que ingresar a la base. La variable que entra a la base debe ser aquella que tenga el mayor incremento positivo en el caso de maximizacin (o mayor incremento negativo en el caso de minimizacin), ya que sta es la variable que aumenta (disminuye) ms rpidamente el valor de la funcin objetivo. Entonces: Si Z es de Maximizacin, ingresa la variable que verifica mayor diferencia marginal . Si Z es de Minimizacin, ingresa la variable que verifica menor diferencia marginal ( . ) 3. Variable de salida: para determinar la variable que sale de la base, se selecciona aquella que tenga el menor cociente entre su valor en la solucin actual y el coeficiente (siendo k la variable que entra) siempre y cuando dicho coeficiente sea estrictamente positivo, es decir:
Este cociente representa el mximo valor que puede tomar la variable entrante, antes que viole la restriccin de no negatividad. Si todos los la solucin es no acotada. Esto significa que la funcin objetivo podra incrementar (disminuir) infinitamente su valor. Esta situacin es prcticamente imposible en la realidad, por lo cual corresponde detener el proceso de clculo y revisar la modelizacin del problema. 4. Actualizacin: se debe actualizar la tabla, mediante operaciones elementales en filas. 5. Criterio de detencin: el proceso se detiene cuando: Si Z es de Maximizacin: ( ) Si Z es de Minimizacin: ( )
Para alguna variable no bsica que pueda entrar a la base se verifica que todos los ij son 0
Lo primero que debemos hacer es llevar nuestro problema de programacin lineal a la forma estndar, esto es transformar las inecuaciones en ecuaciones. Para ello: en el caso de las restricciones de menor e igual le vamos a sumar una cierta cantidad al lado izquierdo para igualar este lado con el derecho de la restriccin. Como no sabemos cul es esa cantidad ya que depende del valor de las variables de decisin, le vamos a sumar entonces una cantidad variable que vamos a llamar S. Esta variable se denomina variable de holgura y est asociada a los recursos, su definicin es muy importante ya que representa la cantidad sobrante del recurso en cuestin. Entonces como tenemos tres restricciones de menor e igual le agregamos una variable de holgura a cada restriccin, y como son cantidades distintas estas son distintas. Para diferenciarlas las vamos a llamar y nos queda de la siguiente manera:
Lo que tenemos aqu no es ni ms ni menos que un sistema de ecuaciones, en la cual tiene cinco variables y tres ecuaciones. Este forma un sistema que al tener ms variables que ecuaciones nos determina un sistema compatible indeterminado, es decir que tiene infinitas soluciones. Observando el grfico las infinitas soluciones est dado por la regin factible (regin sombrada).
El mtodo simplex no analiza esta infinita cantidad de soluciones posibles sino que trabaja con las soluciones bsicas y stas se encuentran en los puntos extremos del grfico (recuerden que una solucin bsica se obtiene haciendo n-m variables iguales a cero y calculando las otras, en nuestro caso va a haber dos variables iguales a cero). Vayamos a nuestro ejemplo, aplicando la frmula de combinatoria podemos calcular la cantidad de soluciones bsicas,
A cada una de estas soluciones las podemos encontrar en el grfico (puntos grandes), donde se cortan dos restricciones o bien donde una restriccin corta a cada eje. Veamos nuevamente el grfico para identificarlas. Podemos analizar cada una de estas soluciones, para ello construiremos la siguiente tabla: Sol. 1 2 3 4 5 6 7 8 9 10 0 0 0 0 1.000 400 500 250 0 400 800 500 0 0 0 300 2.000 0 -2.000 -500 0 1.200 1.000 0 800 400 0 300 -1.200 0 -200 0 133,33 0 500 100 -300 0 -500 100 0 -50 0 0 0 16.000 ---28.000 --Observaciones Solucin bsica factible no ptima Solucin bsica factible no ptima Solucin bsica no factible Solucin bsica no factible Solucin bsica no factible Solucin bsica factible no ptima Solucin bsica no factible Solucin bsica no factible
16.999,89 Solucin bsica factible no ptima 29.000 Solucin bsica factible ptima
De las ecuaciones que habamos formado a partir de las restricciones, agregamos la funcin objetivo, incorporamos las variables de holgura a esta ltima con coeficiente cero para que no la altere y obtenemos lo que se llama forma estndar del problema de programacin lineal.
40
5 1 1
1 0 0
0 1 0
0 0 1
, vamos a colocar los coeficientes de la funcin objetivo para cada una de las variables.
Por columna tenemos el vector solucin (en la tabla a la altura de sol.), que corresponde al lado derecho de las restricciones y van a corresponder al valor de las variables que no son cero (recuerde que el mtodo simplex trabaja con soluciones bsicas y para obtenerlas se deben hacer dos variables iguales a cero, y las vamos a llamar variables no bsicas). A la altura de sol por rengln tenemos identificadas las variables y por debajo tenemos cada uno de los coeficientes de las restricciones. Como hemos dicho anteriormente el mtodo simplex arranca con una solucin bsica inicial, resultndole ms conveniente hacer las variables principales del problema iguales a cero ( y ), con lo cual del sistema de ecuaciones obtenemos , y . Que corresponde al punto de origen del grfico y la solucin 1 de la tabla con un valor de (valor sombreado a la altura de la columna Sol. y fila . Vamos a pasar a completar la primera tabla del simplex que habamos comenzado con el resto de la informacin. 70 0 0 0 Sol. 2.000 800 500 -2 2 1 0 70 40 5 1 1 0 40 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0
{ Agregamos el vector que corresponde al vector de las variables que no son cero en esta primera solucin bsica, de ahora en ms las vamos a llamar variables bsicas (porque estn a la base). es un vector columna conformado por los coeficientes de la funcin objetivo de las variables que estn a la base. Por otro lado hemos adicionado el rengln que se calcula haciendo la suma producto del vector por cada uno de los vectores columnas correspondiente, por ejemplo a la altura del vector solucin tenemos: 0*2.000+0*800+0*500 = 0 y corresponde al valor de Z de esta solucin.
El rengln es la prueba que realiza el mtodo para saber si esta solucin es la ptima o no, si en ese rengln existe un valor positivo significa que la solucin no es la ptima (como se observa en la tabla hay ms de un valor positivo), si bien de antemano sabamos que no era el ptimo porque lo vimos a travs del mtodo grfico.
Entonces encontramos una solucin, que le llamamos solucin inicial y a partir de cual simplex comienza a trabajar. El siguiente paso consiste en encontrar otra solucin, para ello vamos a sacar unas de las variables que estn a la base (variables que tienen un valor positivo, esto es, ) y reemplazarla por que corresponde a la variable que ingresa en el prximo paso). Intuitivamente si analizamos la funcin objetivo, vemos que nos conviene hacer positivo y lo ms grande posible el valor de la variable , ya que es la que tiene mayor coeficiente en la funcin objetivo con lo cual nos hara aumentar ms rpidamente esta funcin y como se trata de un problema de maximizacin resulta lo ms conveniente. Si vamos a la tabla del simplex nos fijamos en el rengln encontramos como valor ms positivo a 70 que est a la altura de lo que nos indica que en la prxima tabla es la variable de ingreso. Para saber cual es la variable que sale de la base se realiza lo que se conoce como prueba de la razn, y consiste en hacer el cociente entre el vector solucin y el vector columna de la variable que ingresa y tomar el mnimo. Considerando el mnimo de nos aseguramos de que ninguna de las variables que esta a la base se vuelva negativa, ya que sera un error gravsimo por la condicin de no negatividad encontrar un (vector solucin) negativo.
40
2 5 1 0 0 2 1 0 1 0 1 1 1 0 1 0 0 0 0 0 -70 40 0 0 0 El valor ms chico es que est a la altura del rengln de , indicando que esta es la variable que se va a de la base en el prximo paso y en su lugar entra . En este caso representa el valor que va a tener en la prxima tabla. Para obtener la prxima solucin directamente de la tabla de simplex, vamos a tener que trasladar el vector unitario que est a la altura de la variable que se va de la base ( ) a la posicin de la columna de . Esta operacin no se puede realizar en un mero acto de movimiento fsico, si no que se debe realizar a travs de operaciones elementales de matrices. Recordemos estas tres operaciones: 1) Se pueden intercambiar de posicin dos filas o columnas, 2) Se puede multiplicar a los elementos de una fila por una constante distinta de cero y 3) Una fila se le puede sumar otra fila previamente multiplicado por una constante distinta de cero .
El elemento que est en la interseccin de la fila de la variable que sale con la columna de la variable entrante se la denomina elemento pivot y es el elemento que en el prximo paso o iteracin va a tomar el valor de 1, y es por esta fila por la que comenzamos a trabajar. Entonces para hacer 1 el elemento pivot vamos a multiplicar toda la fila por (operacin 2) y obtendremos lo siguiente:
40 5 1 1 0 40
0 1 0 1 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0 0
Ahora debemos hacer cero los elemento que estn por encima y por debajo del elemento pivot, para ello nos vamos a valer de la operacin 3. Tomamos la nueva fila calculada, la multiplicamos por el elemento opuesto al que queremos hacer cero y la sumamos a la primera fila de la tabla de simplex original. Entonces para nuestro ejemplo sera la primera nueva fila (la llamamos ), que es la nueva fila que queremos calcular) resulta de tomar la fila 2 nueva calculada (la lamamos ) la multiplicamos por el elemento opuesto que queremos hacer cero (en este caso -2) y la sumamos la primera fila de la primera tabla de simplex (que la llamamos F1) en resumen:
0 70 0
Recuerde que simplex trabaja cambiando de a una variable por vez, en el caso anterior sac de la base e introdujo a la base y obtuvo una nueva solucin. Ahora debemos probar si esta solucin es la ptima o no y para ello volvemos a calcular de nuevo y . Esta nueva solucin por supuesto es otra solucin bsica, es punto extremo y la podemos ubicar sobre el eje en interseccin con la restriccin formando punto (400,0). En el ejemplo el mtodo simplex arranc en el origen y tom la solucin bsica adyacente inmediata sobre , dado que en la funcin objetivo es la que tiene mayor coeficiente. Para a prxima solucin simplex va a analizar la solucin adyacente siguiente en la misma direccin con la que arranc, esto es que si arranc en sentido horario va continuar en esta direccin sin volverse para atrs. Calculemos de y para saber si es la solucin ptima o no, aunque sabemos de antemano que la solucin ptima no est en este punto.
70 0 0 0 Sol. 2.000 800 500 -1200 400 100 (=70*400) -2 2 1 0 70 0 1 0 70 (=70*1) 0 (=70-70)
40 5 1 1 0 40 4 35 (=70*1/2) 5 (=40-35)
0 1 0 1 0 0 1 0 0 0 (=70*0) 0 (=0-0)
0 0 0 1 0 0 0 0 1 0 (=70*0) 0 (=0-0)
0 70 0
{ En el rengln encontramos un valor positivo, lo cual nos est indicando que en el prximo paso es la variable que entra (recordemos que si hubiera ms de un valor positivo, elegimos el ms positivo). Entonces volvemos a hacer la prueba de la razn, esto es, calcular los valores de para saber cuan es la variable que se va de la base. En el prximo paso entra y sale . La siguiente solucin que simplex va a analizar es la contigua adyacente en la misma direccin en la que venamos avanzando y como se muestra en el grfico es la solucin ptima. Entonces vamos a sacar y entra , ahora el elemento pivot es que es el elemento que debemos hacer 1 y para ello vamos a multiplicar toda la tercera fila por el valor 2, o sea . Para completar la tabla vamos a hacer las siguientes operaciones elementales: Obteniendo la siguiente: 70 0 0 0 Sol. 2.000 800 500 -0 70 0 1200 400 100 -0 70 40 Y luego calculamos y 400 300 200 2 2 1 0 70 0 1 0 70 0 0 1 0 40 5 1 1 0 40 4 35 5 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 -1 - 35 -35 3 1 -1 0 0 0 1 0 0 0 0 1 0 0 -8 -1 2
70 0 0 0 Sol. 2.000 800 500 -0 70 0 1200 400 100 -400 300 200 -2 2 1 0 70 0 1 0 70 0 0 1 0 70 0
40 5 1 1 0 40 4 35 5 0 0 1 40 0
0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0
0 0 1 0 0 0 -1 - 35 -35 3 1 -1 30 -30
0 70 40
Como puede verse esta es la ltima tabla del simplex dado que en el que hemos encontrado la solucin ptima:
Si se verifica la condicin de optimidad y en la base an queda alguna variable artificial, puede suceder alguna de las siguientes dos cosas: 1. Si la variable artificial qued en la base con un valor positivo, entonces el problema original es no factible. 2. Si la variable artificial qued en la base pero con un valor nulo, entonces la solucin encontrada s es solucin del problema original y ser degenerada ya que tendr menos de m valores positivos. Respecto de la variable artificial hay tres posibilidades: a) Que la variable artificial NO aparezca en la ltima tabla del simplex, lo que indica que el problema tiene solucin. b) Que la variable artificial SI aparezca en la ltima tabla del simplex con un valor igual a cero, esto significa que el problema tiene solucin y la solucin es degenerada. c) Y por ltimo que la variable artificial SI aparezca en la ltima tabla del simplex, lo que indica que el problema no tiene solucin.
Ejemplo de aplicacin
Como puede verse en este problema tenemos una restriccin de menor e igual, una de mayor e igual y una de igualdad. Para llevarlo a la forma estndar, en el caso de la primera restriccin simplemente agregamos una variable de holgura y se transforma la desigualdad en igualdad (+S). Para el caso de la restriccin de mayor e igual agregamos una variable de excedente (-S), el signo es lo que la diferencia de la de holgura, y se transforma la desigual en igualdad. Ahora ya hemos transformado las inecuaciones en ecuaciones y agregamos tantas variables artificiales como son necesarias; en nuestro caso a la segunda restriccin por ser mayor e igual y a la tercera que es una restriccin del tipo desigual. Entonces el problema de programacin lineal en su forma estndar nos queda:
Al incorporar las variables artificiales a la funcin objetivo, hay que darle un valor negativo muy grande en el caso de un problema de maximizacin, mnimo 10 veces el valor del coeficiente ms alto de la funcin objetivo. Ahora ya estamos en condiciones de armar la tabla de simplex: 5 0 -100 -100 Sol. 1.000 50 0 -4 1 -3 100 -95 8 2 0 1 -100 108 0 1 0 0 0 0 0 0 -1 0 100 -100 -100 0 1 0 -100 0 -100 0 0 1 -100 0
Lo que diferencia este ejemplo del anterior es simplemente el armado de la primera tabla, de ahora en ms seguimos utilizando las mismas operaciones. Entonces en el prximo paso entra la variable y sale . Como el elemento pivot ya es 1 copiamos la fila tal cual est, o sea 5 0 -100 -100 Sol. 1.000 50 0 -4 1 -3 100 -95 8 2 0 1 -100 108 0 1 0 0 0 0 0 0 -1 0 100 -100 -100 0 1 0 -100 0 -100 0 0 1 -100 0
0 -3 1 0 0 0 1 Posteriormente debemos hacer cero los elementos que estn por encima y por debajo del elemento pivot. Recuerde que lo que estamos haciendo es trasladar el vector unitario de las variables que sale a la posicin de la variable que entra. A continuacin desarrollamos el simplex completo. 5 0 -100 -100 Sol. 1.000 50 0 -0 -100 8 1.000 50 0 4 1 -3 100 -95 10 1 -3 -124 129 0 1 0 5 0 0 1 0 5 0 8 2 0 1 -100 108 0 0 1 8 0 0 0 1 8 0 0 0 1 8 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0,1 0,1 0,3 2,9 -2,9 0 0 -1 0 100 -100 0 -1 0 100 -100 10 -1 -3 -29 29 1 0 0 0 0 -100 0 1 0 -100 0 0 1 0 -100 0 -10 1 3 29 -129 -1 0 0 -100 -100 0 0 1 -100 0 -2 0 1 8 -108 -2 0 1 8 -108 -0,2 -0,2 0,4 3/5 -100
0 5 8
Forma estndar:
Tabla de simplex: 30 0 500 Sol. 90 120 -60 30 -1 4 2.000 -1970 0 1 30 0 20 3 2 1.000 -980 5/2 15 5 0 1 0 0 0 1 0 0 0 0 0 -1 -500 500 1/4 -1/4 -15/2 15/2 500 0 1 500 0 -1/4 1/4 15/2 1015/2
0 30
{ Todo problema de minimizacin puede ser resuelto como un problema de maximizacin, multiplicando la funcin objetivo por (-1), aplicamos simplex y una vez obtenido el valor de Z ptimo se lo vuelva a multiplicar por (-1). Compruebe esto.
Solucin del sistema, entramos al men results y hacemos clic en solution summary. Se obtiene el valor de las variables y el valor de la funcin objetivo.
Tambin se puede obtener la ltima tabla del simplex (o sea la solucin ptima) aunque con una disposicin un poco diferente de las columnas, siendo fcilmente detectable si comparamos la tabla del simplex que con la que nos tira el sistema. Entramos en results y hacemos clic en final simplex tableau nos tira el siguiente resultado:
Ejemplo 2:
Haciendo clic sobre el signo es te va a cambiar y elegimos el signo segn el tipo de restriccin. Completamos esta tabla con los coeficientes y parmetros de nuestro PL.
Ejemplo 3:
Carga de datos:
Solucin:
A continuacin se muestra la resolucin completa del problema anterior con la ayuda on-line de esta herramienta de clculo virtual. Paso 1: Cargamos la cantidad de variables de decisin que tiene la funcin objetivo y la cantidad de restricciones que tiene el problema
Paso 2: Conociendo cada uno de los valores correspondientes, armamos la funcin objetivo y las restricciones de manera idntica a las hemos planteado en el problema
Paso 3: El programa nos muestra un resumen de los datos ingresados hasta ahora. En esta instancia podemos ir paso a paso armando la tabla smplex o ir directamente a la solucin final.
Paso 4: Listo! La solucin ptima se expresa resaltada en color verde. Fcil, no?
Esto es todo. Pueden utilizar esta herramienta como apoyo para practicar con otros ejemplos para repasar el mtodo.