Upload
lesley-dyer
View
33
Download
1
Embed Size (px)
DESCRIPTION
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: [email protected]. Programación Lineal. - PowerPoint PPT Presentation
Citation preview
La Universidad del ZuliaFacultad de Ingeniería
División de Estudios para GraduadosPrograma: Computación Aplicada
Asignatura:Optimización para Ingenieros
Prof. Luis Zerpa, M.Sc.Email: [email protected]
1. Programación Lineal• Método Simplex
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 = b1
a21x1 + a22x2 +…+ a2nxn = b2
an1x1 + an2x2 +…+ annxn = bn
y 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
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
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 b1
a21x1 + a22x2 +…+ a2nxn b2
am1x1 + am2x2 +…+ amnxn bm
y x1 ≥ 0; x2 ≥ 0; … ; xn ≥ 0
Programación lineal
• Caso 1: el problema puede ser expresado alternativamente como:
Minimizar C1x1 + C2x2 +…+ Cnxn
tal que a11x1 + a12x2 +…+ a1nxn + y1 = b1
a21x1 + a22x2 +…+ a2nxn + y2 = b2
am1x1 + am2x2 +…+ amnxn + ym = bm
y 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)
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
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
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)
Programación lineal
• Ejemplo 2: Variables libres2da técnica: Ejemplo
Minimizar x1 + 3x2 + 4x3
sujeto a x1 + 2x2 + x3 = 5
2x1 + 3x2 + x3 = 6
x2 ≥ 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 = 4
x2 ≥ 0; x3 ≥ 0
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 xB m-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
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
Soluciones básicas
• Para evitar dificultades más adelante hacemos ciertas suposiciones
con respecto a la estructura de la matriz A:
1. Se asume que n > m (el número de variables es mayor que las
restricciones)
2. 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
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 factible
Una solución factible a estas restricciones que también es una
solución básica se dice que es una solución básica factible
Si la solución también es una solución básica degenerada entonces
es llamada solución básica degenerada factible
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
Teorema fundamental de problemas lineales
• Dado un problema lineal en su forma general donde A es una matriz mxn de rango m,
1. Si existe una solución factible, existe una solución básica factible
2. 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
!!!
mnmn
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
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
Propiedades de los politopos convexos
1. Si el conjunto convexo k formado por las restricciones no está vacío, tendrá por lo menos un punto extremo
2. 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
3. El conjunto de restricciones k posee un número finito de puntos extremos
Propiedades de los politopos convexos
• Ejemplo 1: Considerando las restricciones
x1 + x2 + x3 = 1
x1 ≥ 0; x2 ≥ 0; x3 ≥ 0
el conjunto tiene tres puntos extremos, que corresponden a las tres soluciones básicas de x1 + x2 + x3 = 1
x1
x3
x2
Propiedades de los politopos convexos
• Ejemplo 2: Considerando las restricciones
x1 + x2 + x3 = 1
2x1 + 3x2 = 1
x1 ≥ 0; x2 ≥ 0; x3 ≥ 0
el conjunto tiene dos puntos extremos correspondientes a las dos soluciones básicas de factibles
0,1,21
1
32
11
2
1
x
x
2
1,0,
2
1
1
1
02
11
3
1
x
x
32
,31
,01
1
03
11
3
2
x
x
No factible
Factible
Factiblex1
x3
x2
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
0;0
32
2
438
21
1
21
21
xx
x
xx
xx
0;0;0;0;0
32
2
43
8
54321
51
421
321
xxxxx
xx
xxx
xxx
0 0.5 1 1.5 2 2.5 30
0.5
1
1.5
2
2.5
3
Restriccion x3 = 0
Restriccion x4 = 0Restriccion x5 = 0
x 1=0
x2=0
x5 =
0
x4 =0
x3=0
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
0 0.5 1 1.5 2 2.5 30
0.5
1
1.5
2
2.5
3
Restriccion x3 = 0
Restriccion x4 = 0Restriccion x5 = 0
-8
-7
-6
-5
-4
-3
-2
-1
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
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
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,
mnmnmm
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
2211
22222121
11212111donde m n
Que en forma matricial se escribe comoAx=b
mm bxa
bxa
bxa
2
2
11
Donde las ai son filas de A
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
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
0,,22,11,
0,2,222,211,22
0,1,122,111,11
mnnmmmmmmmm
nnmmmm
nnmmmm
yxyxyxyx
yxyxyxyx
yxyxyxyx
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
1. Se divide la fila p entre ypq, para obtener un coeficiente unitario para xq en la ecuación p
2. 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,
piyy
yyy pj
pq
iqijij '
pq
pjpj y
yy '
Hace el coef. de p igual a cero
Hace el coef. de p igual a uno
Procedimiento de Pivoteo
• Ejemplo: Considere el sistema en forma canónica
12
332
5
6543
6542
6541
xxxx
xxxx
xxxx
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 = A;
A1(2:3,:)=A1(2:3,:)-A1(2:3,4)/(A1(1,4))*A1(1,:)
A1(1,:) = A1(1,:)/A1(1,4)
A1 =
1 0 0 1 1 -1 5
-2 1 0 0 -5 3 -7
1 0 1 0 3 -2 4
piyy
yyy pj
pq
iqijij '
pq
pjpj y
yy '
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
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,
iq
io
iq
i
yy
yx i = 1,…, m es el menor positivo
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 y
zj = y1jc1 + y2jc2 + … + ymjcm, m+1 ≤ j ≤ n
• Entonces existe una solución factible con valor objetivo z < z0
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
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
021
0,,,2,1,
0,2,2,22,21,2
0,1,1,12,11,1
2121
000
100
010
001
zrrrr
yyyyy
yyyyy
yyyyy
baaaaaaa
njmm
mnmjmmmmm
njmm
njmm
njmmm
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
nim
miyx i
i 10
00
Método Simplex – Algoritmo
1. De la tabla correspondiente a una solución básica factible, se calcula los coeficientes de costo relativo, rj = cj – zj
2. Si todos los rj > 0; la solución básica factible es óptima
3. Seleccionar q tal que rq < 0, para determinar cual variable no-básica se convertirá en básica
4. 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
5. Pivotee sobre el elemento pq, actualizando todas las filas incluyendo la última. Regrese al paso 2
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ásicax1 = 0x2 = 0
0 0.5 1 1.5 2 2.5 30
0.5
1
1.5
2
2.5
3
Restriccion x3 = 0
Restriccion x4 = 0Restriccion x5 = 0
-8
-7
-6
-5
-4
-3
-2
-1
q = 1 % la variable no-básica 1 se convertirá en básica, r mas negativo
Método Simplex – Ejemplofactores = 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ásicax1 = 1.5x2 = 0
0 0.5 1 1.5 2 2.5 30
0.5
1
1.5
2
2.5
3
Restriccion x3 = 0
Restriccion x4 = 0Restriccion x5 = 0
-8
-7
-6
-5
-4
-3
-2
-1
q = 2 % la variable no-básica 2 se convertirá en básica, r mas negativo
Método Simplex – Ejemplo
Solución óptimax1 = 1.5x2 = 0.5
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
0 0.5 1 1.5 2 2.5 30
0.5
1
1.5
2
2.5
3
Restriccion x3 = 0
Restriccion x4 = 0Restriccion x5 = 0
-8
-7
-6
-5
-4
-3
-2
-1
Valor de la función objetivo en el punto óptimo F(1.5,0.5) = -3.5