9
INVESTIGACI ´ ON OPERATIVA I Prof. Guillermo S´anchez M. Ay. Juan Pablo Contreras F. etodo Simplex. Transformaci´ on de un Problema lineal a la forma est´ andar. El algoritmo Simplex es un m´ etodo eficiente de c´alculo a trav´ es del cual se determina de una mane- ra r´apidala soluci´on de un problema lineal, al obtenerla en un n´ umero reducido de pasos. Recordemos que los sistemas lineales, por lo general, tienen distinto n´ umero de inc´ognitas que de inecuaciones. Con el fin de utilizar el algoritmo Simplex, previamente hay que transformar cada problema de programaci´ on lineal a una presentaci´ on determinada llamada forma est´ andar. Para presentar la forma est´andar de un problema lineal cada una de las restricciones formuladas como desigualdades debe presentarse en forma de igualdad. A trav´ es del siguiente ejemplo se ilustrar´a la se˜ naladatransformaci´on. Maximizar z =4 x 1 +3 x 2 1 sujeto a: (a) x 1 + x 2 40 (b) 2 x 1 + x 2 60 x 1 ,x 2 0 Para transformar las restricciones (a) y (b) en igualdades se agregan dos variables adicionales (h 1 y h 2 ) llamadas variables de holgura, ya que permiten completar los recursos t´ ecnicos no utilizados. De esta forma, el problema de programaci´on lineal queda como sigue: Maximizar z =4 x 1 +3 x 2 sujeto a: (a) x 1 + x 2 + h 1 = 40 (b) 2 x 1 + x 2 + h 2 = 60 x 1 ,x 2 ,h 1 ,h 2 0 Es decir para transformar un problema de programaci´on lineal a la forma est´andar solo se agregan variables de holgura a las cuales se incorporan las restricciones de signo. 1 Alternativamente se utilizar´a la notaci´on max para maximizar, min para minimizar y s.a para expresar sujeto a. 1

Simplex 2015

Embed Size (px)

DESCRIPTION

SIMPLEX

Citation preview

  • INVESTIGACION OPERATIVA I

    Prof. Guillermo Sanchez M.Ay. Juan Pablo Contreras F.

    Metodo Simplex.

    Transformacion de un Problema lineal a la forma estandar.

    El algoritmo Simplex es un metodo eciente de calculo a traves del cual se determina de una mane-ra rapida la solucion de un problema lineal, al obtenerla en un numero reducido de pasos. Recordemosque los sistemas lineales, por lo general, tienen distinto numero de incognitas que de inecuaciones.

    Con el n de utilizar el algoritmo Simplex, previamente hay que transformar cada problema deprogramacion lineal a una presentacion determinada llamada forma estandar.

    Para presentar la forma estandar de un problema lineal cada una de las restricciones formuladascomo desigualdades debe presentarse en forma de igualdad.

    A traves del siguiente ejemplo se ilustrara la se~nalada transformacion.

    Maximizar z = 4x1 + 3x21

    sujeto a:

    (a) x1 + x2 40(b) 2x1 + x2 60

    x1; x2 0Para transformar las restricciones (a) y (b) en igualdades se agregan dos variables adicionales (h1

    y h2) llamadas variables de holgura, ya que permiten completar los recursos tecnicos no utilizados.De esta forma, el problema de programacion lineal queda como sigue:

    Maximizar z = 4x1 + 3x2

    sujeto a:

    (a) x1 + x2 + h1 = 40(b) 2x1 + x2 + h2 = 60

    x1; x2; h1; h2 0Es decir para transformar un problema de programacion lineal a la forma estandar solo se agregan

    variables de holgura a las cuales se incorporan las restricciones de signo.

    1Alternativamente se utilizara la notacion max para maximizar, min para minimizar y s.a para expresar sujeto a.

    1

  • Analogamente si tuviesemos una restriccion del tipo siguiente:

    x1 + 3x2 5Se debera agregar una variable de exceso (e1), de modo que nuevamente se tuviera una igualdad,

    por ejemplo de la siguiente forma:x1 + 3x2 e1 = 5 ;

    donde e1 0.Resumiendo ambas situaciones, se puede se~nalar que para transformar un problema de programa-

    cion lineal (PPL) a su forma estandar se debe tener presente que:

    i) si se tienen restricciones del tipo menor o igual que, estas se deben transformar en restriccionesde igualdad mediante el uso de una variable de holgura;

    ii) si se tienen restricciones del tipo mayor o igual que, estas se deben transformar en restriccionesde igualdad mediante el uso de una variable de exceso;

    iii) tanto las variables de holgura como las de exceso deben ser no negativas:

    iv) si en un mismo problema se presentan simultaneamente ambas situaciones, se procede por partesconforme a lo se~nalado anteriormente.

    Formato general para la aplicacion del Metodo Simplex.

    Al tener un PPL en su forma estandar se puede generalizar de acuerdo a la siguiente notacion:

    Max z = c1 x1 + c2 x2 + :::::::::+ cn xn

    s.a.:

    a11 x1 + a12 x2 + : : : : : : : : :+ a1n xn = b1

    a21 x1 + a22 x2 + : : : : : : : : :+ a2n xn = b2...

    ......

    ...

    am1 x1 + am2 x2 + : : : : : : : : :+ amn xn = bm

    con xi 0; i = 1; :::n, que la llamaremos forma general (FG).La matriz A se puede escribir de la siguiente forma:

    a11 a12 : : : : : : a1na21 a22 : : : : : : a2n: : : : : : : : : : : : : : :

    am1 am2 : : : : : : amn

    De igual forma se pueden denir los vectores x y b de acuerdo a la siguiente notacion respectiva-mente:

    x = [x1; x2; : : : ; xn]T y b = [b1; b2; : : : ; bm]

    T :

    De acuerdo a esta nueva notacion las ecuaciones correspondientes a (FG) se pueden escribir de laforma:

    Ax = b que consiste en un sistema lineal de m ecuaciones y n incognitas, donde suponemos quen > m.

    2

  • Solucion basica.

    La primera solucion se obtiene dandole un valor cero a nm variables de la ecuacion y despejandolas m variables que quedan. De esta forma se obtienen valores unicos para las m variables restantes.

    El conjunto de variables que se hacen cero se denen como variables no basicas.Indudablemente la eleccion de variables no basicas determinara soluciones diferentes.

    Definicion 1 Cualquier solucion basica de (FG) en las cuales las variables son no negativas consti-tuye una solucion factible.

    Teorema 1 La region factible de un PPL es un conjunto convexo. Si el PPL tiene una solucionoptima tendra que existir un punto extremo de la region factible que es un optimo.

    Esto signica que cuando buscamos una solucion optima para el PPL solo tenemos que buscarentre los puntos extremos de la solucion factible y entre esos puntos esta el optimo.

    Teorema 2 Para cualquier PPL existe un punto extremo unico de la region factible el cual corres-ponde a un punto de cada solucion basica factible.

    Esto indica que los puntos extremos de la region factible del PPL son soluciones basicas del sistemade ecuaciones lineales Ax = b.

    Tambien por lo menos existe una solucion basica factible que corresponde a cada punto extremode la region factible.

    Entonces puede concluirse que existe una correspondencia entre los puntos extremos de una regionfactible y las soluciones basicas.

    O jO|} A partir de estas dos observaciones podemos concluir que al buscar una solucionoptima para el PPL solo debemos buscar la mejor solucion basica factible.El teorema anterior se ilustrara mediante un ejemplo

    Ejemplo 1Max z = 4x1 + 3x2

    s.a.:

    x1 + x2 402x1 + x2 60

    x1; x2 0

    Para cualquier PPL conm restricciones se dice que dos soluciones basicas factibles son adyacentessi sus variables tienen m 1 variables basicas en comun.

    En el caso del ejemplo, m 1 = 1, con lo cual basta tener una variable en comun.Geometricamente dos soluciones basicas son adyacentes cuando se encuentran en el mismo seg-

    mento de recta de la frontera factible.

    3

  • Figura 1: Variables basicas.

    Explicacion preliminar del algoritmo simplex.

    i. Se determina una solucion basica factible inicial.

    ii. Se trata de averiguar si la solucion es la optima, si no lo es hay que buscar entre las solucionesadyacentes.

    iii. Volver al paso anterior.

    Algoritmo Simplex para PPL de maximizacion.

    i. Transformar el PPL a su forma estandar.

    ii. A partir de la forma estandar obtener una solucion basica posible.

    iii. Determinar si la solucion basica factible encontrada es la optima.

    iv. Si la solucion encontrada no es la optima denir que variable no basica debe convertirse envariable basica y viceversa, que variable basica debe salir de la base con el n de encontrar unmejor valor para la funcion objetivo.

    Ejemplo 2 Armando Mezza Ltda. fabrica escritorios, mesas y sillas. Cada producto requiere dela materia prima de madera y de los trabajos de carpintera y terminaciones de acuerdo a la Tablaadjunta.

    Por ahora se dispone de 48 pies de tabla, 20 horas para terminaciones y 8 horas de carpintera. Unescritorio se vende a US$60.000, una mesa a US$30.000 y una silla a US$20.000. Armando MezzaLtda. cree que la demanda de escritorios y sillas es ilimitada, pero que se puede vender, a lo mas, 5mesas. Armando Mezza Ltda. quiere maximizar el ingreso total, pues ya ha comprado los recursos.

    4

  • Recurso Escritorio Mesa Silla

    Madera en pies 8 6 1Horas de carpintera 2 1.5 0.5Horas para terminaciones 4 2 1.5

    Tabla: Requerimientos de recursos de Armando Mezza Ltda.

    Recordemos que el modelo matematico del problema se obtiene de la siguiente manera.Objetivo.

    Maximizar la produccion.

    Variables de decision.x1 : numero de escritorios producidos por Armando Mezza Ltda.x2 : numero de mesas producidas por Armando Mezza Ltda.x3 : numero de sillas producidas por Armando Mezza Ltda.

    Funcion objetivo

    z = 30x1 + 15x2 + 10x3

    Restricciones

    Materiales:

    8x1 + 6x2 + x3 48Terminaciones:

    4x1 + 2x2 + 1.5x3 20Carpintera:

    2x1 + 1.5x2 + 0.5x3 8Demanda de mesas:

    x2 5Por lo tanto, el modelo matematico o P.P.L. es:

    maximizar z = 30x1 + 15x2 + 10x3

    s. a.

    8x1 + 6x2 + x3 484x1 + 2x2 + 1.5x3 202x1 + 1.5x2 + 0.5x3 8

    x2 5x1; x2; x3 0

    5

  • Transformacion a la forma estandar.

    Fila 0 z 60x1 30x2 20x3 = 0Fila 1 8x1 + 6x2 + x3 + h1 = 48Fila 2 4x1 + 2x2 + 1.5x3 + h2 = 20Fila 3 2x1 + 1.5x2 + 0;5x3 + h3 = 8Fila 4 x2 + h4 = 5

    La forma anterior se llama forma canonica y se vera que si el lado derecho es no negativo entoncesse podra obtener una solucion a este problema. El algoritmo Simplex empieza con una solucion basicafactible y luego va generando las mejores soluciones basicas factibles.

    Se debe tomar en cuenta que el numero de incognitas es 3+ 4, el numero de restricciones es 4, porlo cual bastara anular 3 de estas variables para obtener la primera de las soluciones basicas.

    Podramos partir por ejemplo haciendo x1 = x2 = x3 = 0 e inmediatamente se tiene un conjuntosolucion para las restantes 4 variables, es decir h1 = 48; h2 = 20; h3 = 8 y h4 = 5.

    El conjunto de variables basicas iniciales sera VB = fh1; h2; h3; h4g y el conjunto de las variablesno basicas sera VNB = fx1; x2; x3g.

    Notar que, en este caso, cada una de las variables basicas tiene un coeciente igual a 1.>La solucion encontrada es optima?Notar que con los valores actuales de cada una de las variables (basicas y no basicas), se tiene

    que z = 0 lo cual no sirve, por lo que, de acuerdo al metodo antes expuesto, se debe encontrar unacombinacion de variables que permita aumentar el valor de z, esto puede lograrse encontrando unconjunto de valores de las variables no basicas adyacentes a la base actual que puedan elevar el valorde z.

    Para este nuevo paso se incorporara a la base una nueva variable y las demas se mantendrantodava en cero. Ademas para mantener el numero de variables basicas, se extrae de la base una delas actuales variables basicas.

    Determinacion de la variable que ingresa a la base y la que sale.

    La variable que ingresa sera aquella con un mayor aporte a la funcion objetivo pues al aumentarla cantidad de x1 se aumenta en 60 las unidades de la funcion objetivo.

    Obviamente en principio nos gustara tomar x1 lo mas grande posible pero estamos limitados porlas restricciones, en este caso el lmite de la factibilidad estara denido por las variables basicas en laetapa actual.

    Esto equivale a decir que al aumentar el valor de x1, algunas de las actuales variables basicaspodra volverse negativa por lo que es eso lo que debemos considerar y se hara de la siguiente forma:

    h1 = 48 8x1h2 = 20 4x1h3 = 8 2x1h4 = 5;

    es decir h4 no es inuida por los valores de x1.

    6

  • >Como escoger el mas alto valor para x1?

    Para que cada una de las igualdades anteriores se cumpla , el mayor valor que puede tomar x1es el mnimo entre f48=8; 20=4; 8=2g, es decir el mnimo entre f6; 5; 4g que es 4 con lo cual h3 seconvierte en 0 y es el elegido para abandonar la base.

    Este es el lmite actual para x1.En caso de haber existido un empate en la eleccion del mnimo se escoge arbitrariamente.El ingreso de la variable basica x1 se hace en el Fila 3, en la cual, y como debe transformarse en

    variable basica, debiera tener coeciente uno. Para lograr que tenga un coeciente uno deben aplicarseoperaciones elementales.

    Estas operaciones se llama pivoteo y la la en la cual ingresa la variable se llama la de pivoteo.El resultado sera que x1 va a reemplazar a h3 en la base.Este procedimiento de operaciones elementales es conocido como metodo de Gauss - Jordan.Primera Operacion Elemental: Debe obtenerse un coeciente 1 para x1 en la tercera la >como

    se hace? Simplemente multiplicando toda esa la por 1=2.En este caso la la resultante es:

    x1 + 3=4x2 + 1=4x3 + 1=2h3 = 4 30

    Cada vez que se realiza un cambio en las variables que son bases se debe expresar la totalidadde la forma canonica en terminos de las nuevas bases. >Que signica esto? La respuesta esta en laobservacion detallada del tablon simplex inicial.

    En dicho tablon las variables basicas tienen coeciente 1 de modo que la solucion es inmediata yaque el conjunto de las variables no basicas tienen valor 0.

    Por lo anterior debe quedar el total del nuevo tablon cada vez que se cambia de variables. Paraello se parte con la la que representa la funcion objetivo

    En este punto debemos notar que en la primera iteracion la funcion objetivo esta expresada enterminos de las variables no basicas exclusivamente.

    Cada vez que una nueva variable se incorpora a la base, la funcion objetivo nuevamente debeexpresarse en funcion de las nuevas variables no basicas.

    De estas consideraciones se deduce el segundo paso de las operaciones elementales que es dejar zen funcion de h3 y no de x1

    >Como se realiza esto?La forma mas indicada de realizar esto es combinar z con la Fila 3' de modo que, por una parte

    ya no este en terminos de x1 y por otra parte, incorpore la nueva variable no basica h3.En primer lugar, se debe tratar de producir un 0, en el coeciente de x1 en la primera Fila, esto

    se logra multiplicando por 60 la la 3' y luego sumandola con la primitiva z, es decir:0+ 60* 3' ->0' , lo anterior produce el siguiente Fila para 0' :0x1+15x25x3+30h3 = 240 y de esta forma ya tenemos la funcion objetivo en terminos exclusivos

    de las nuevas variables no basicas.En seguida debemos continuar con nuestro objetivo inmediato de dejar la totalidad del tablon en

    terminos de las nuevas variables basicas que como sabemos son x1; h1; h2 y h4.La forma operacional de esta nueva tabla es que en las las de las restricciones cada uno de los

    factores de estas variables debera ser uno.Al mismo tiempo tenemos que asegurarnos que las variables basicas que ya tienen coecientes uno

    no los pierdan >como lograr esto?Ya tenemos una buena idea por lo realizado con z y ese es el camino, es decir las clave esta en ir

    combinando cada una de las las, con la nueva la 3' ( de ah su nombre de pivote )

    7

  • De esta forma no van a desaparecer los coecientes 1 de las variables basicas h1; h2 y h4 y lasoperaciones elementales que realicemos tendran como objetivo instalar coecientes uno para la variablex1 en cada una de las nuevas las que se obtengan para la nueva forma del tablon.

    De acuerdo a lo anterior el siguiente paso es construir nuevas las 1', 2' y 4' en las cuales aparezcanx1; h1; h2 y h4 con coecientes 1.

    Obtencion de la la1':Recordemos en primer lugar que la nueva la 3' ( la pivote ) es

    x1 + 3=4x2 + 1=4x3 + 1=2h3 = 4

    entonces combinando esta la con la 1 se tiene queFila 1 - 8 Fila 3' ! Fila 1' se tiene:

    0x1 + 0x2 x3 + h1 4h3 = 16este es entonces la nueva Fila 1

    Ahora para obtener la nueva Fila 2 se procede como sigue:Fila 2 - 4 Fila 3' ! Fila 2'Con lo cual la nueva Fila 2' queda

    0 x1 x2 + 0;5x3 + h2 2h3 = 4

    >que se hace respecto a la Fila 4? Nada ya que no esta en terminos de x1.Con esto el nuevo tablon para las variables basicas x1; h1; h2 y h4 queda constituido como sigue:

    Fila 0' z + 15x2 5x3 + 30h3 = 240Fila 1' x3 + h1 4h3 = 16Fila 2' x2 + 0;5x3 + h2 2h3 = 4Fila 3' x3 + h1 4h3 = 4Fila 4' x2 + h4 = 5

    Iteracion 1

    Variablebasica

    Fila 0' z + 15x2 5x3 + 30 s3 = 240 z = 240

    Fila 1' x3 + s1 4s3 = 16 s1 = 16

    Fila 2' x2 + 0.5x3 + s2 2 s3 = 4 s2 = 4

    Fila 3' x1 + 0.75x2 + 0.25x3 + 0.5 s3 = 4 x1 = 4

    Fila 4' x2 + s4 = 5 s4 = 5

    8

  • Iteracion 2

    Variablebasica

    Fila 0" z + 5x2 + 10s2 + 10s3 = 280 z = 280

    Fila 1" 2x2 + s1 + 2s2 8s3 = 24 s1 = 24

    Fila 2" 2x2 + x3 + 2s2 4s3 = 8 x3 = 8

    Fila 3" x1 + 1;25x2 0;5s2 + 1;5s3 = 2 x1 = 2

    Fila 4" x2 + s4 = 5 s4 = 5

    VB = fz; s1; x3; x1; s4g y VNB = fs2; s3; x2g

    9