1 / 38

La Universidad del Zulia Facultad de Ingeniería División de Estudios para Graduados

La Universidad del Zulia Facultad de Ingeniería División de Estudios para Graduados Programa: Computación Aplicada. Asignatura: Optimización para Ingenieros. Programación Lineal Método Simplex. Prof. Luis Zerpa, M.Sc. Email: lzerpa@ica.luz.ve. Programación Lineal.

lesley-dyer
Download Presentation

La Universidad del Zulia Facultad de Ingeniería División de Estudios para Graduados

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. La Universidad del Zulia Facultad de Ingeniería División de Estudios para Graduados Programa: Computación Aplicada Asignatura: Optimización para Ingenieros • Programación Lineal • Método Simplex Prof. Luis Zerpa, M.Sc. Email: lzerpa@ica.luz.ve

  2. Programación Lineal • La palabra “programación” se usa aquí en el sentido de “planificación” • Un problema de programación lineal es aquel donde la función objetivo es lineal en las incógnitas y las restricciones consisten en igualdades lineales y desigualdades lineales • Forma general de un problema de programación lineal: Minimizar C1x1 + C2x2 +…+ Cnxn tal que a11x1 + a12x2 +…+ a1nxn = b1a21x1 + a22x2 +…+ a2nxn = b2an1x1 + an2x2 +…+ annxn = bny x1≥ 0; x2≥ 0; … ; xn≥ 0 Donde las bi, ci y aij son constantes reales, y las xi son número reales que se quieren determinar

  3. Programación lineal • La formulación se hace de forma tal que bi≥ 0, de ser necesario una restricción puede ser multiplicada por -1 para que esto se cumpla • Usando notación vectorial, la forma general de un problema de programación lineal se expresa como: Minimizar cTx tal que Ax = b y x ≥ 0 Donde x es un vector columna n-dimensional cT es un vector fila n-dimensional A es una matriz mxn b es un vector columna m-dimensional

  4. Programación lineal • Otras formas de programas lineales pueden ser convertidos a la forma general, según los siguientes casos • Caso 1: el problema tiene restricciones de desigualdades lineales Minimizar C1x1 + C2x2 +…+ Cnxn tal que a11x1 + a12x2 +…+ a1nxnb1a21x1 + a22x2 +…+ a2nxnb2am1x1 + am2x2 +…+ amnxnbm y x1≥ 0; x2≥ 0; … ; xn≥ 0

  5. Programación lineal • Caso 1:el problema puede ser expresado alternativamente como: Minimizar C1x1 + C2x2 +…+ Cnxn tal que a11x1 + a12x2 +…+ a1nxn + y1 = b1a21x1 + a22x2 +…+ a2nxn + y2 = b2am1x1 + am2x2 +…+ amnxn + ym = bmy x1≥ 0; x2≥ 0; … ; xn≥ 0 y y1≥ 0; y2≥ 0; … ; ym≥ 0 • Las variables positivas yi introducidas para convertir las desigualdades en igualdades son llamadas variables de holgura (slacks)

  6. Programación lineal • Caso 1: • Ahora el problema tiene n+m incógnitas, xi, yj, y está expresado en la forma general • La matrix m x (n+m) que describe las restricciones de igualdades lineales es de la forma especial [A,I] • Sus columnas pueden ser separadas en dos conjuntos; las primeras n columnas forman la matriz original A y las últimas m columnas forman una matriz identidad mxm

  7. Programación lineal • Caso 2: Variables libresCuando el problema lineal es dado en la forma general, con la excepción de que una o más variables incógnitas no tiene la restricción xi≥ 0 (puede ser negativa), el problema puede ser transformado a la forma general por dos técnicas • 1ra técnica: se sustituye la variable sin restricción de signo por dos variables, de forma tal que estas variables si tengan la restricción, de la siguiente forma: • suponiendo que x1 es libre de tomar valores positivos y negativos x1 = u1 – v1 Donde se requiere que u1≥ 0 y v1 ≥ 0 • De esta forma se sustituye x1 por u1 y v1 en la función objetivo y en las restricciones, preservándose la linealidad de las restricciones • Ahora el problema es expresado en términos de n+1 variables

  8. Programación lineal • Ejemplo 2: Variables libres2da técnica: se elimina la variable sin restricción de signo junto con alguna de las restricciones de igualdad en la cual el coeficiente de la variable sin restricción es diferente de cero • Luego, la variable sin restricción puede ser expresada como una combinación lineal de las demás variables más una constante • suponiendo que x1 como la variable libre ai1x1 + ai2x2 +…+ ainxn = bi donde ai1≠ 0 x1 = (-ai2x2 - … - a1nxn + bi)/ai1 • Si ésta expresión es sustituida por x1 se obtiene un problema de la misma forma pero expresado en términos del resto de las variables (n-1)

  9. Programación lineal • Ejemplo 2: Variables libres2da técnica: Ejemplo Minimizar x1 + 3x2 + 4x3 sujeto a x1 + 2x2 + x3 = 5 2x1 + 3x2 + x3 = 6x2≥ 0; x3≥ 0 • Despejando x1 de la primera restricción  x1 = 5 - 2x2 - x3 • Sustituyendo el problema queda como Minimizar 5 +x2 + 3x3 sujeto a x2 + x3 = 4x2≥ 0; x3≥ 0

  10. Soluciones básicas • Considerando el sistema de restricciones de igualdades Ax = b Donde, x es un vector columna n-dimensional (incógnitas) b es un vector columna m-dimensional (restricciones) A es una matriz mxn • Suponiendo que de las n columnas de A se selecciona un conjunto de m columnas linealmente independiente (tal conjunto existe si el rango de A es m) • Asumiendo que se seleccionan las primeras m columnas de A para formar una matriz mxm denotada por B • Ahora la matriz B es no singular y se puede obtener una solución única del sistema lineal BxB = b, para el vector xBm-dimensional • Fijando los primeros m componentes de x igual a xB y el resto de los componentes igual a cero, x = (xB, 0), se obtiene una solución a Ax = b lo que conlleva a la siguiente definición

  11. Soluciones básicas • DEFINICIÓN: dado un conjunto de m ecuaciones lineales con n incógnitas, sea B cualquier submatriz mxm no singular formada por columnas de A Entonces, si todos los n-m componentes de x no asociados con las columnas de B se igualan a cero, la solución del conjunto de ecuaciones resultantes se dice que es una solución básica de Ax=b con respecto a la base B Los componentes de x asociados con columnas de B son llamadas variables básicas • En general Ax=b puede no tener soluciones básicas

  12. Soluciones básicas • Para evitar dificultades más adelante hacemos ciertas suposiciones con respecto a la estructura de la matriz A: • Se asume que n > m (el número de variables es mayor que las restricciones) • Las filas de A son linealmente independientes. De otra forma se tendrían restricciones contradictorias y por lo tanto no habría solución • Bajo estas suposiciones el sistema Ax = b siempre tendrá una solución, de hecho, siempre tendrá al menos una solución básica

  13. Soluciones básicas • DEFINICIÓN: si una o más de las variables básicas de una solución básica es igual a cero, se dice que es una solución básica degenerada • Considerando ahora el sistema de restricciones, Ax = b, x≥ 0, los cuales son las restricciones de un problema lineal en su forma general • DEFINICIÓN: se dice que un vector x que satisface estas restricciones es factibleUna solución factible a estas restricciones que también es una solución básica se dice que es una solución básica factibleSi la solución también es una solución básica degenerada entonces es llamada solución básica degenerada factible

  14. Teorema fundamental de optimización lineal • El teorema muestra que sólo es necesario considerar soluciones básicas factibles cuando se está buscando una solución óptima a un problema lineal, debido a que el valor óptimo siempre se encuentra en una solución básica factible • Considerando un problema lineal en su forma general Minimizar cTx Sujeto a Ax = b y x ≥ 0 • La solución factible, según las restricciones, que tiene el mínimo valor de la función objetivo es una solución factible óptima • Si ésta solución es básica es una solución básica factible óptima

  15. Teorema fundamental de problemas lineales • Dado un problema lineal en su forma general donde A es una matriz mxn de rango m, • Si existe una solución factible, existe una solución básica factible • Si existe una solución factible óptima, existe una solución básica factible óptima • Este teorema reduce la tarea de resolver un problema lineal a la búsqueda sobre soluciones básicas factibles • Debido a que un problema con n variables y m restricciones tiene tantas soluciones básicas como número de formas de seleccionar m de n columnas, se tiene un número finito de posibilidades • Sin embargo, esto sería una técnica de búsqueda muy ineficiente

  16. Interpretación geométrica del teorema fundamental de problemas lineales • El enlace principal entre las teorías algebraica y geométrica está en la relación existente entre una solución básica factible de las restricciones lineales en su forma general y los puntos extremos del politopo formado por las restricciones (2D polígono, 3D poliedro) • Primero definimos que es un punto extremo: • DEFINICIÓN: se dice que un punto x en un conjunto convexo C es un punto extremo de C si no existen dos puntos diferentes x1 y x2 en C tal que x = x1 + (1- )x2 para algún , 0 <  < 1 • i.e., un punto extremo es aquel punto que no cae en la línea recta que une otros dos puntos del conjunto

  17. Teorema de equivalencia de puntos extremos y soluciones básicas • Sea A una matriz mxn de rango m y b un vector m-dimensional • Sea k el politopo convexo formado por todos los vectores x que satisfacen las restricciones Ax = b, x≥ 0 • Un vector x es un punto extremo de k si y solo si x es una solución básica factible de las restricciones

  18. Propiedades de los politopos convexos • Si el conjunto convexo k formado por las restricciones no está vacío, tendrá por lo menos un punto extremo • Si existe un número finito de soluciones óptimas a un problema lineal, entonces la solución óptima finita es un punto extremo del conjunto • El conjunto de restricciones k posee un número finito de puntos extremos

  19. x3 x1 x2 Propiedades de los politopos convexos • Ejemplo 1: Considerando las restricciones x1 + x2 + x3 = 1x1≥ 0;x2≥ 0; x3≥ 0 el conjunto tiene tres puntos extremos, que corresponden a las tres soluciones básicas de x1 + x2 + x3 = 1

  20. x3 x1 x2 Propiedades de los politopos convexos • Ejemplo 2: Considerando las restricciones x1 + x2 + x3 = 12x1 + 3x2 = 1x1≥ 0;x2≥ 0; x3≥ 0 el conjunto tiene dos puntos extremos correspondientes a las dos soluciones básicas de factibles No factible Factible Factible

  21. x3=0 x4=0 x1=0 x5=0 x2=0 Propiedades de los politopos convexos • Ejemplo 3: Considerando las restricciones • Por inspección este conjunto tiene 5 puntos extremos • Para llevar este problema a la forma general es necesario introducir variables de holgura

  22. Propiedades de los politopos convexos • Ejemplo 3: Considerando la función objetivo: -2x1 – x2 • Las soluciones básicas se determinan haciendo dos variables cualquiera cero, y resolviendo el sistema para las tres restantes

  23. Método Simplex • La idea del Método Simplex es proceder a partir de una solución básica factible del conjunto de restricciones de un problema en la forma general, hacia otra solución básica factible, de forma tal que se disminuya continuamente el valor de la función objetivo hasta alcanzar el mínimo • El método Simplex es desarrollado a partir del estudio del sistema de ecuaciones lineales que define las restricciones y las soluciones básicas factibles del sistema, enfocándose en las variables individuales y su relación con el sistema • Aquí se utiliza un aproximación matricial que se enfoca en todas las variables juntas, lo que lleva a una representación más compacta, aumentando el entendimiento del proceso del método

  24. Pivotes • Antes de empezar con el procedimiento del método Simplex, es necesario entender primero el proceso de pivoteo en un conjunto de ecuaciones lineales • Existen dos interpretaciones del procedimiento de pivoteo, que conllevan al mismo resultado

  25. Pivotes Primera interpretación • Considerando el conjunto de ecuaciones lineales simultáneas • En el espacio En esto se puede interpretar como una colección de m relaciones lineales que se deben satisfacer por un x, donde m n Que en forma matricial se escribe como Ax=b Donde las aison filas de A

  26. Pivotes Primera interpretación • Si m < n y las ecuaciones son linealmente independientes, entonces no existe una solución única sino una familia de soluciones • Se puede obtener una solución única haciendo n-m variables igual a cero y resolviendo para las restantes, para obtener una solución básica • Usando un esquema de eliminación de Gauss, donde el múltiplo de una ecuación es sistemáticamente sustraído de otra ecuación, se puede llegar a una forma triangular o a una forma canónica de la matriz de restricciones

  27. Forma canónica • Para este caso, x1… xm variables básicasxm+1…. xn  variables no básicas • La solución básica correspondiente se obtiene directamente como,x1 = y1,0; x2 = y2,0; … ; xm = ym,0 • Entonces se considera que el sistema está en forma canónica, si hay m variables básicas con la propiedad de que aparecen sólo en una ecuación y su coeficiente en esa ecuación es uno • Dado un sistema en su forma canónica, el pivoteo se utiliza para intercambiar una variable básica por una no-básica y al mismo tiempo obtener la forma canónica para el nuevo conjunto de variables básicas

  28. Procedimiento de Pivoteo • Partiendo de un sistema en forma canónica, se quiere reemplazar la variable básica xp, 1  p  m, por la variable no-básica xq, esto se puede hacer si y solo si ypq≠ 0 • Se divide la fila p entre ypq, para obtener un coeficiente unitario para xq en la ecuación p • Luego, se restan múltiplos apropiados de la fila p a las demás filas para hacer cero a los coeficientes de xq en estas filas. Esto no afecta las columnas de las otras variables básicas • Denotando los coeficientes del nuevo sistema en forma canónica como yij’ las operaciones se resumen en,  Hace el coef. de p igual a cero  Hace el coef. de p igual a uno

  29. Procedimiento de Pivoteo • Ejemplo: Considere el sistema en forma canónica A = 1 0 0 1 1 -1 5 0 1 0 2 -3 1 3 0 0 1 -1 2 -1 -1 Se reemplaza x1 por x4 A1 = 1 0 0 1 1 -1 5 -2 1 0 0 -5 3 -7 1 0 1 0 3 -2 4 A1 = A; A1(2:3,:)=A1(2:3,:)-A1(2:3,4)/(A1(1,4))*A1(1,:) A1(1,:) = A1(1,:)/A1(1,4)

  30. Puntos extremos adyacentes • El método Simplex necesita pasar de una solución básica factible a otra solución básica factible a través del procedimiento de pivoteo • Aquí se explica como seleccionar un pivote de manera que se obtenga una nueva solución básica factible • Es posible seleccionar arbitrariamente cual variable no-básica se convertirá en básica, y luego determinar cual de las básicas debe salir

  31. Puntos extremos adyacentes • Asumiendo que todas las soluciones básicas factibles NO son degeneradas • Si se tiene un sistema en su forma canónica correspondiente a una solución básica factible, yi0 > 0, y se quiere convertir a la variable no-básica q en básica (q > m) manteniendo factibilidad, el elemento pivote de la columna q será aquel para el cual, i= 1,…, m es el menor positivo

  32. Solución factible mínima • Sabiendo como seleccionar un elemento pivote para lograr una nueva solución básica factible, ahora es necesario tener una forma de seleccionar la variable no-básica que debe ser convertida en básica para lograr una solución básica factible menor Teorema del mejoramiento de una solución básica factible: • Dada una solución básica factible no degenerada con función objetivo z0 suponga que para alguna variable no básica j se cumple que cj – zj < 0, donde cj es el coeficiente j de la función objetivo yzj = y1jc1 + y2jc2 + … + ymjcm, m+1≤ j ≤ n • Entonces existe una solución factible con valor objetivo z < z0

  33. Solución factible mínima Teorema de condición de optimalidad • Si para alguna solución básica factible cj – zj≥ 0, para todas las variables no-básicas j, entonces la solución es óptima • rj = cj – zj, es conocido como Coeficientes de Costo Relativo o como Coeficientes de Costo Reducido • Estos coeficientes miden el costo de una variable relativo a una solución básica dada, indicando si el valor objetivo aumenta o disminuye si xj es pivoteado dentro de la solución

  34. Método Simplex – procedimiento de cálculo • Se asume que se inicia con una solución básica factible y que el sistema Ax = b está en su forma canónica • La solución básica correspondientees factible si yi0≥ 0, i = ,…, m • El valor de la función objetivo es z0 • La última fila puede ser tratada operacionalmente como cualquier otra fila de la Tabla Simplex durante el proceso de pivoteo Se agrega una fila a la matriz con los Coef. de Costo Relativo (r) y el negativo del costo actual (-z0) Esto se conoce como la tabla Simplex

  35. Método Simplex – Algoritmo • De la tabla correspondiente a una solución básica factible, se calcula los coeficientes de costo relativo, rj = cj – zj • Si todos los rj > 0; la solución básica factible es óptima • Seleccionar q tal que rq < 0, para determinar cual variable no-básica se convertirá en básica • Calcular los factores yi0/yiq para yiq > 0, i = 1,…, m. • Si no hay yiq > 0, terminar y salir, el problema no tiene limites • De otra forma, seleccione p como el índice i correspondiente al mínimo factor positivo • Pivotee sobre el elemento pq, actualizando todas las filas incluyendo la última. Regrese al paso 2

  36. Método Simplex – Ejemplo % Minimizar f(x1,x2) = -2*x1 - x2 % sujeto a x1 + 8/3*x2 <= 4 % x1 + x2 <= 2 % 2*x1 <= 3 % y x1 >= 0; x2 >= 0 % Tabla Simplex 1 A = 1.0000 2.6667 1.0000 0 0 4.0000 1.0000 1.0000 0 1.0000 0 2.0000 2.0000 0 0 0 1.0000 3.0000 -2.0000 -1.0000 0 0 0 0 Solución básica x1 = 0 x2 = 0 q = 1 % la variable no-básica 1 se convertirá en básica, r mas negativo

  37. Método Simplex – Ejemplo factores = A(1:3,6)./A(1:3,q) %yi0/yiq factores = 4.0000 2.0000 1.5000 sale variable básica 3  p = 3 % pivoteo sobre el elemento pq = 31 A(p,:)=A(p,:)/A(p,q) A(1,:)=A(1,:)-(A(1,q)*A(p,:)) A(2,:)=A(2,:)-(A(2,q)*A(p,:)) A(4,:)=A(4,:)-(A(4,q)*A(p,:)) 0 2.6667 1.0000 0 -0.5000 2.5000 0 1.0000 0 1.0000 -0.5000 0.5000 1.0000 0 0 0 0.5000 1.5000 0 -1.0000 0 0 1.0000 3.0000 Solución básica x1 = 1.5 x2 = 0 q = 2 % la variable no-básica 2 se convertirá en básica, r mas negativo

  38. Método Simplex – Ejemplo factores = A(1:3,6)./A(1:3,q) %yi0/yiq factores = 0.9375 0.5000 Inf sale variable basica 2  p = 2 % pivoteo sobre el elemento pq = 22 A(p,:)=A(p,:)/A(p,q) A(1,:)=A(1,:)-(A(1,q)*A(p,:)) A(3,:)=A(3,:)-(A(3,q)*A(p,:)) A(4,:)=A(4,:)-(A(4,q)*A(p,:)) 0 0 1.0000 -2.6667 0.8333 1.1667 0 1.0000 0 1.0000 -0.5000 0.5000 1.0000 0 0 0 0.5000 1.5000 0 0 0 1.0000 0.5000 3.5000 Solución óptima x1 = 1.5 x2 = 0.5 Valor de la función objetivo en el punto óptimo  F(1.5,0.5) = -3.5

More Related