Optimización de Procesos
Tier I: Métodos Matemáticos de Optimización
Sección 2:
Programación Lineal
Programación Lineal (Linear Programming, LP)
• La programación lineal (optimización lineal) es el área de problemas de optimización con funciones objetivo y restricciones lineales
Ejemplo:
minimizar: f(x) = 6x1 + 5x2 + 2x3 + 7x4
sujeta a: 2x1 + 8x3 + x4 ≥ 20
x1 – 5x2 – 2x3 + 3x4 = -5
• Ninguna de las variables está multiplicada por otra variable, elevada a una potencia o usada en una función no linear
• Puesto que la función objetivo y las restricciones son lineales, son convexas. Entonces, si la solución óptima de un problema de LP es encontrada, ésta es el óptimo global.
Programación Lineal continuación
Forma estándar de LP
• Forma estándar de LP:
minimizar: f = cx
sujeta a: Ax = b
xi ≥ 0; i = 1, …, n
donde c es llamada el vector costo (1 por n), x es el vector de variables (n por 1), A es la matriz de coeficientes (m por n), y b es un vector de constantes dadas m por 1.
Bases de la Forma Estándar
• Para un problema de maximización, podemos transformar usando:
max(f(x)) min(-f(x))
• Para restricciones de desigualdad, se usan variables "flojas":
2x1 + 3x2 ≤ 5 2x1 + 3x2 + s1 = 5donde s1 ≥ 0
Usando Variables flojasCuando transformamos la ecuación
2x1 + 3x2 ≤ 5 to 2x1 + 3x2 + s1 = 5
Si el lado izquierdo (left-hand side, LHS) (2x1 + 3x2) es menor que el lado derecho (right-hand side, RHS) (5), entonces s1 tomará un valor positivo para hacer la igualdad verdadera. Mientras el valor del LHS sea más cercano al RHS, más pequeño será el valor de s1. Si el LHS es igual al RHS, s1 = 0. s1 no puede ser negativo porque el LHS no puede ser mayor que el RHS.
Ejemplo de Forma Estándar
Ejemplo:
Escrito en Forma Estándar:
maximizar: f = x1 + x2
sujeta a: 2x1 + 3x2 ≤ 6
x1 + 7x2 ≥ 4
x1 + x2 = 3
x1 ≥ 0, x2 ≥ 0
Definir las variables flojas x3 ≥ 0 & x4 ≥ 0
Ejemplo de Problema Reescrito
El problema ahora puede escribirse:
minimizar: g = –x1 – x2
sujeta a: 2x1 + 3x2 + x3 = 6
x1 + 7x2 – x4 = 4
x1 + x2 = 3
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
0011 c
3
4
6
b
0011
1071
0132
A
Repaso de Álgebra Lineal
• La siguientes diapositivas revisan varios conceptos de álgebra lineal que son la base de los métodos usados para resolver problemas de optimización lineal
Vectores e Independencia Lineal
• Vectores– Un vector k es una columna o fila o un arreglo de
columnas de k números. Tiene una dimensión de k.
• Independencia Lineal (Linear Independence, LI)– Una recopilación de vectores a1, a2, …, ak, cada uno
de dimensión n, es llamado linealmente independiente si la
significa que para j=1, 2, …, k
k
jjj
1
0a
0j
Independencia LinealContinuación
• En otras palabras, un grupo de vectores es linealmente independiente si un vector no puede escribirse como una combinación de cualquiera de los otros vectores.
• El número máximo de vectores LI en un espacio n-dimensional es n.
Por ejemplo, en un espacio de 2 dimensiones:
Los vectores y no son
Linealmente independientes porque x2 = 5x1.
son LI porque no hay
Una constante que puedas multiplicar para obtener la otra.
5
41x
25
202x
2
01x
1
32xy
Independencia LinealContinuación
• Se dice que un grupo de vectores a1, a2, …, ak en un espacio n-dimensional abarca el espacio si cualquier otro vector en el espacio puede escribirse como una combinación lineal de vectores
• En otras palabras, para cada vector b, deben existir escalares 1, 2, …, k tales que
Grupos de Cobertura
k
jjj
1
ab
Bases
• Se dice que un grupo de vectores es una base para un espacio n-dimensional si:
1. Los vectores abarcan el espacio
2. Si cualquiera de los vectores es removido, el grupo ya no abarcará el espacio
• Una base para un espacio n-dimensional debe tener exactamente n vectores
• Pueden existir muchas bases diferentes para un espacio dado
Bases continuación
• Un ejemplo de una base es el eje coordenado de una gráfica. Para una gráfica en 2-D, no puedes remover uno de los ejes y aún formar una línea cualquiera con solo los ejes restantes.
• O, no puedes tener tres ejes en una gráfica 2-D porque siempre puedes representar el tercero usando los otros dos.
Sistemas de Ecuaciones(SOE)
• El Álgebra Lineal puede ser usada para resolver un sistema de ecuaciones
Ejemplo:
2x1 + 4x2 = 8& 3x1 – 2x2 = 11
Esto puede ser escrito como una matriz aumentada:
1123
842],[ bA
• Las operaciones de fila pueden ser realizadas en la matriz sin cambiar el resultado
• Operaciones de fila válidas incluyen lo siguiente:– Multiplicar una fila por una constante– Intercambiar dos filas– Sumar una fila a otra
Sistemas de EcuacionesContinuación
Resolviendo SOE’s
• En el ejemplo previo, queremos cambiar la matriz A para ser triangular superior
multiplica la
fila superior por ½
suma 3 veces la
fila superior a
la fila inferior
1123
842
1123
421
180
421
Resolviendo SOE’s continuación multiplica la fila inferior por -1/8
• De la matriz triangular superior aumentada, podemos fácilmente ver que x2 = 1/8 y usar este para obtener x1
x1 = 4 – 2 . 1/8 = 15/4
180
421
8110
421
421 21 xx
81
21 10 xx
Matriz Invertida
• El inverso de una matriz puede ser encontrado usando operaciones de filas
Ejemplo:
Forma la matriz aumentada (A, I)
Transformala a (I, A-1)
Usando operaciones
de filas
211
121
112
A
100211
010121
001112
12
5
12
3
12
112
3
12
3
12
312
1
12
3
12
5
100
010
001
Ecuaciones de Optimización
• Hemos visto que las restricciones pueden ser escritas en la forma .
• Debemos tener más variables que ecuaciones así que tenemos algunos grados de libertad para optimizar.– Si el número de ecuaciones es mayor o igual
que el número de variables, los valores de las variables ya están especificados.
bAx
Solución General a los SOE’s
• Dado un sistema de ecuaciones en la forma
– Asume m (número de ecuaciones) < n (número de variables) sistema underspecified system
• Podemos separar el sistema en variables independientes (n-m) y variables dependientes (m). Los valores de las variables dependientes dependerán de los valores que elijamos para las variables independientes.
bAx
Solución General continuación
• Llamamos a las variables dependientes variables básicas porque su matriz de coeficientes A forma una base. Las variables independientes serán llamadas variables no básicas.
• Al cambiar las variables en la base, podemos cambiar las bases. Se mostrará que esto permite examinar diferentes puntos óptimos posibles.
Separa la matriz A en la siguiente manera:
O,
baaa nn
mm xxx ......1
1
baa
n
mjj
jm
ii
i xx11
Solución General continuación
Define las matrices B y N como sigue:
donde B es una matriz m por m matriz, N es una matriz m por (n-m), y aj es la columna jth de la matriz A
• B es llamada “matriz básica” y N es llamada “matriz no básica”
maaaB ...21 nmm aaaN ...21
Solución General continuación
• La matriz B contiene las columnas de la matriz A que corresponden a las variables x que están en la base. Se debe mantener el orden. – Así, si x4 es la segunda variable de la base, a4
debe ser la segunda columna de la matriz B
• La matriz N es solo las columnas de la matriz A que quedan fuera.
Solución General continuación
Similarmente, define
y
Más adelante veremos como determinar que variables poner en la base. Este es un paso importante para examinar todas las soluciones óptimas posibles.
TmB xxx ]...[ 21x T
nmmN xxx ]...[ 21 x
Solución General continuación
Ahora tenemos
Multiplica ambos lados por B-1:
Así,
bNxBx NB
)()( 11NNNB xNxBbBxxx
bBNxBx 11 NB
Solución General continuación
Solución Básica
• Podemos elegir cuales quiera valores para las variables (n-m) (aquellas en xN)y entonces resolver para las variables m restantes en xB
• Si elegimos xN = 0, entoncesA esto se le llama "solución básica" del sistema
Solución Básica:
bBx 1B
)()( 1 0bBxxx NB
Soluciones Básicas FactiblesAhora tenemos una solución para Ax = b. Pero
esa era solo uno de dos grupos de restricciones para el problema de optimización. El otro era: xi ≥ 0, i = 1, …, n (no-negativa)
• Una solución básica factible (basic feasible solution, BFS) es una solución básica donde cada x es no-negativa
Una BFS satisface todas las restricciones del problema de optimización
Puntos Extremos
• Un punto es llamado punto extremo (extreme point, EP) si no puede ser representado como una combinación convexa estricta (0 < < 1) de otros dos puntos factibles.
• Recuerda: una combinación convexa de dos puntos es una línea entre ellos.
• Entonces, un EP no puede estar en una línea de otros dos puntos factibles.
• Dada una región factible, un punto extremo no puede hallarse en una línea entre dos otros puntos factibles (debe estar en un vértice)
• En un espacio n-dimensional, un punto extremo está localizado en la intersección de n restricciones
FeasibleRegion
Punto Extremo
Not Extreme Points
Puntos Extremos (Gráficos)
Puntos Extremos y óptimos
• Tenemos un problema de maximización, así que queremos ir tan lejos como sea posible en la dirección del vector c (función objetivo)
• ¿Podemos determinar algo sobre la ubicación del punto óptimo?
Punto de Inicio
c
• Si iniciamos en una línea, podemos movernos a lo largo de la línea en la dirección de la función objetivo hasta llegar a un vértice
• De hecho, para cualquier vector c, el punto óptimo siempre será en un vértice
c
Puntos Extremos y óptimos
Soluciones Básicas Factibles (Basic Feasible Solutions, BFS)
• En un espacio n-dimensional, una BFS es formada por la intersección de n ecuaciones.
• En 2-D:Restricción 1
Restricción 2
Solución Básica Factible
• Pero, solo vimos que un punto extremo es también el punto en un vértice. Entonces, una BFS corresponde a un EP.
Enlazándolos
• Acabamos de ver que una solución básica factible corresponde a un punto extremo.
• Esto es muy importante porque para los problemas de LP , el punto óptimo es siempre un punto extremo.
• Entonces, si podemos resolver para todos las BFS's (EP's), podemos comprarlos para encontrar el óptimo.
Desafortunadamente, esto toma mucho tiempo.
Introducción al Método Simplex
• El método simplex es el método más común para resolver problemas de LP.
• Trabaja encontrando una BFS; determinando si ésta es óptima; y si no lo es, se mueve a una "mejor" BFS hasta que la óptima es alcanzada.
• De esta manera, no tenemos que calcular cada solución.
Álgebra del Método Simplex
Recuerda:
NNBBf xcxccx
bBNxBx 11 NBbBaBx 11
Nj
jj
B x
Suma global de las variables no básicas
Nj Nj
jjjj
B xcxf )( 11 aBbBc
sustituir
Nj
jj
B xaBbBx 11
Función Objetivo:
en la ecuación de arriba:
Álgebra del Método Simplex
Nj
jjjB xzcf )(1bBc
jBjz aBc 1donde
Nj
jj
BjB xcf )( 11 aBcbBc
Multiplica y colecta términos xj:
Ecuaciones del Método Simplex
Minimiza
Si (cj – zj) ≥ 0 para todo j N, entonces la BSF actual es optima para un problema de minimización.
Porque, si fuera < 0 para cualquier j, esa variable no básica, xj, podría entrar la base y reducir la función objetivo.
Nj
jjjB xzcf )(1bBc
bBaBx 11
Nj
jj
B xSujeta a:
Variables Entrantes
• Una variable no básica puede entrar en la base y reemplazar una de las variables básicas
• Puesto que xN = 0, y no tenemos restricciones no negativas, la variable entrante debe incrementar su valor.
• El valor de la variable entrante se incrementará, reduciendo la función objetivo, hasta que una restricción sea cumplida.
Ecuación de Variable Entrante
• La ecuación para determinar cual variable entra es: . Calculada para todos los índices no básicos j
• Para un problema de minimización, elige el índice j para el que cj - zj es el más negativo
– Si cj - zj ≥ 0 para todo j, la solución es óptima
• Para un problema de maximización, elige el índice j para el que cj - zj es el más positivo
– Si cj - zj ≤ 0 para todo j, la solución es óptima
jjjT
Bj zcc aBc 1
Variables salientes (Leaving Variables)
• Mientras el valor de la variable entrante se incrementa, usualmente el valor de al menos una variable básica decrecerá – Si no, el problema es llamado "no ligado" y el
valor de la función mínima objetivo es -
• La variable cuyo valor alcanza el cero primero será la variable que deja la base
Variable Entrantes y Salientes
• Ejemplo: x1 está entrando en la base mientras que x2, x3 y x4 son las variables básicas actuales
Cuando x2 llegue a cero, debemos parar dsebido a las restricciones no negativas. Pero, ahora x2 = 0, así que es una variable no básica y x1 > 0, así que es una variable básica. Entonces, x2 deja la base y x1 entra en la base.
x1
x2
x3
x4
Ecuación de Variable Saliente
• Consideremos a j como el índice de la variable que está entrando a la base y a i* como el índice de la variable que está dejando la base
Esto significa que, para cada índice i que esté en la base y que tenga , se calcula . El índice del valor que es el mínimo es el índice de la variable saliente.
0)()(
)(argmin 1
1
1*
ij
ij
i aBaB
bBi
ij
i
)(
)(1
1
aB
bB
0)( 1
ijaB
Ecuación de Variable Saliente
La expresión previa es obtenida de la ecuación:
que aplica cuando una restricción es cumplida
0aBbBx j
jB x11
El Ejemplo Revisado
• x2, x3, y x4 inician en (B-1b)i ; (i=2, 3, 4) y tienen
pendientes de (–B-1aj)i ; (i=2, 3, 4) donde j=1 porque 1 es el índice de la variable entrante (x1)
• Entonces, la distancia a la que podemos ir antes de que la variable básica alcance el valor de cero es para B-1a1 > 0. Pero, si (B-1a1)i < 0 (como x3), nunca alcanzará el cero.
x1
x2
x3
x4
i
i
)()(
11
1
aBbB
• Podemos también ver como, si ninguna de las variables decrece, podemos mantener x1 incrementándose y mejorar la función objetivo sin siquiera cumplir una restricción –Esto da una solución desligada
x1
x2
x3
x4
El Ejemplo Revisado
Problema de Ejemplo
Minimizar f = -x1 – x2
Sujeta a: x1 + x2 ≤ 5
2x1 – x2 ≤ 4
x1 ≤ 3 ; x1, x2 ≥ 0
Dados: La base inicial es x1, x2, y x3.
Insertar variables flojas x3, x4, y x5.
Ejemplo
Minimizar f = -x1 – x2
Sujeta a: x1 + x2 + x3 = 5
2x1 – x2 + x4 = 4
x1 x5 = 3
x1, x2, x3, x4, x5 ≥ 0
10001
01012
00111
A
3
4
5
b 00011 c
1a Iteración:
001
012
111321 aaaB
0
2
3
3
4
5
311
210
1001bBxB
311
210
100
001
012
1111
1B
5
0
2
3
011
BBf xc
Ejemplo
Ahora, revisa la optimización
x4:
x5:
110
0
1
0
311
210
100
0110414
aBcBc
3)3(0
1
0
0
311
210
100
0110515
aBcBc
< 0
> 0
Ejemplo
Entonces, x4 entra a la base puesto que su indicador de optimización es < 0.
0
2
3
)( 1bB 3)( 11 bB 2)( 2
1 bB 0)(& 31 bB
1
1
0
0
1
0
311
210
100
4 411 aBaB jj
Ejemplo
Entonces, x3 es la variable saliente
310//argmin0)(
)(
)(argmin 1
1
1*
ANANaBaB
bBi i
j
ij
i
3)( 11 bB 2)( 2
1 bB 0)( 31 bB
0)( 141 aB 1)( 2
41 aB 1)( 341 aB
0 0 0
Ejemplo
2a Iteración:
001
112
011
B
0
2
3
3
4
5
311
101
1001bBxB
311
101
1001B
5
0
2
3
011
BBf xc
a4 ha sido sustituida por a3
Ejemplo
Indicadores de Optimización:
x3:
x5:
01)1(0
0
0
1
311
101
100
0110313
aBcBc
0000
1
0
0
311
101
100
0110515
aBcBc
Ejemplo
Solución al Ejemplo
Todos los indicadores son ≥ 0, así que esta es la solución óptima.
Entonces, 5* f
0
2
3
4
2
1*
x
x
x
Bx
0
0
5
3*
x
xNx
Pasos del Algoritmo Simplex
1. Con la base elegida, obtén B y resuelve xB = B-1b y f = cBxB.
2. Calcula cj – zj para todas las variables no básicas, j.
– Para un problema de min., si todo cj – zj’s are ≥ 0, la solución actual es óptima. Si no, elige el índice con el cj – zj mas negativo.
– Para un problema de max., si todos los cj – zj's son ≤ 0, la solución actual es óptima. Si no es así, elige el índice con el cj – zj más positivo.
Pasos del Algoritmo Simplex
3. Usando la ecuación elige la variable saliente.
– Si todos los (B-1aj)i’s son ≤ 0, entonces la solución es desligada
4. Deja que xj entre a la base y que xi* deje la base. Obtén la nueva matriz B y comienza nuevamente con el paso 1.
0)()(
)(argmin 1
1
1*
ij
ij
i aBaB
bBi
Eligiendo una Base Inicial
• En el ejemplo, se nos dio una base inicial. ¿Cómo podemos obtener una por nosotros mismos?
• Caso #1: problema de max (o min) con1. Ax ≤ b (todas desigualdades≤ ) y
2. Todas las entradas del vector b son ≥ 0.
Inserta variables flojas en las ecuaciones de restricción y usa la matriz de identidad
resultante como la base inicial
Eligiendo una Base Inicial
Consideremos s = vector de variables flojas
El problema se convertirá en
0scx
fmin
max
bIsAx ,0x 0s
Sujeta a
Donde I = La matriz de Identidad
10...00
01...00
00...10
00...01
. . .
. . .
. . .
Elige las variables flojas como la base inicial
La matriz base inicial(B) está conformada por los coeficientes de las variables flojas. Esto es la matriz de identidad.
Podemos observar que la base inicial es factible(xB ≥ 0): IB
0bIbbIbBx 11B
Eligiendo una Base Inicial
Problema #2 de Ejemplo
Minimizar -x1 – 3x2
Sujeta a 2x1 + 3x2 ≤ 6
-x1 + x2 ≤ 1 x1, x2 ≥ 0
Inserta variables flojas:
2x1 + 3x2 + x3 = 6
-x1 + x2 + x4 = 1
x1, x2, x3, x4 ≥ 0
1011
0132A
1
6b 0031 c
Matriz de Identidad
0
Ejemplo #2
Usa las variables flojas como la base inicial:
10
0143 aaB
10
01
10
011
1B
1
6
1
6
10
011bBxB 01
600
BBf xc
&
Indicadores de Optimización:
j=1:
j=2:
1011
2
10
0100111
111
aBcczc B
3031
3
10
0100321
222
aBcczc B
c2 - z2 es el más negativo, así que x2 entra a la base
Ejemplo #2
1
6)( 1bB 6)( 3
1 bB 1)(& 41 bB
1
3
1
3
10
012 211 aBaB jj
x2 está entrado a la base
Ejemplo #2
412argmin11
36argmin0)(
)(
)(argmin 1
1
1*
ij
ij
i aBaB
bBi
6)( 31 bB 1)( 4
1 bB
Entonces, x4 es la variable saliente.
3)( 321 aB 1)( 4
21 aB
Ejemplo #2
2a Iteración:
10
3123 aaB
10
31
10
311
1B
1
3
1
6
10
311bBxB 31
330
BBf xc
x2 reemplazó a x4
Ejemplo #2
Indicadores de Optimización:
j=1:
j=4:
Entonces, x1 entra a la base
4311
2
10
3130111
111
aBcczc B
3)3(01
0
10
3130041
444
aBcczc B
Ejemplo #2
Variable Saliente:
Entonces, x3 deja la base y x1 lo reemplaza.
1
3)( 1bB 3)( 3
1 bB 1)(& 21 bB
1
5
1
2
10
311 1 jj aB
3/53argmin0)(
)(
)(argmin 1
1
1*
ANaBaB
bBi i
j
ij
i
0
Ejemplo #2
3a Iteración:
11
3221 aaB
4.02.0
6.02.0
11
321
1B
6.1
6.0
1
6
4.02.0
6.02.01bBxB
4.56.1
6.031
BBf xc
Ejemplo #2
Indicadores de Optimización:
j=3:
j=4:
Ambos cj-zj’s son ≥ 0, entonces la solución actual es óptima
8.0)8.0(00
1
4.02.0
6.02.031031
333
aBcczc B
6.0)6.0(01
0
4.02.0
6.02.031041
444
aBcczc B
006.16.0* x 4.5* f
Ejemplo #2
Esta gráfica muestra el procedimiento seguido.
Las líneas punteadas son perpendiculares al vector de costo, c.
0
0
1
0
6.1
6.0
x1
x2
c en aumento
Ejemplo #2
• Puesto que estamos minimizando, fuimos en la dirección opuesta como el vector costo
0
0
1
0
6.1
6.0
x1
x2
C en aumento
Ejemplo #2
Más sobre Bases Iniciales
• Caso #2: problema de max (o min) con:1. Ax ≥ b (al menos algunas restricciones ≥) y
2. Todas las entradas del vector b son ≥ 0
Suma variables flojas para convertir el problema en
Ax – Is = b x, s ≥ 0.
No podemos usar el mismo truco que antes porque ahora tenemos una matriz de identidad negativa como matriz B.
Caso #2 continuación
• Método de 2 fases:
Introduce “variables artificiales” (y) donde se requiera obtener una matriz de identidad. Si todas las restricciones fueran ≥, el problema se convertiría en:
Ax – Is + Iy = b x, s, y ≥ 0
Variables Artificiales
• Las variables artificiales no son variables reales.
• Las usamos solo para obtener una base inicial, así que debemos deshacernos de ellas.
• Para deshacernos de ellas, resolvemos un problema extra de optimización antes de comenzar a resolver el problema normal.
Método de 2 Fases
Fase 1:
Resuelve la siguiente LP comenzando con B = I y xB = y = b:
Minimiza y
Sujeta a: Ax – Is + Iy = b x, s, y ≥ 0
Si y 0 en el punto óptimo, detente – el problema no es factible. Si y = 0, entonces usa la base actual y continua con la fase 2.
Fase 2:
Usando la función objetivo del problema original, cambia el vector c y continua resolviendo usando la base actual.
Minimiza (o Maximiza) cx
Sujeta a: Ax – Is = b x, s ≥ 0
Método de 2 Fases Continuación
Variables Artificiales vs. flojas
• Las variables flojas son variables reales que pueden ser positivas en una solución óptima, lo que significa que su restricción es una desigualdad estricta (< o >) en el punto óptimo.
• Las variables artificiales no son variables reales. Éstas están solo insertadas para darnos una base inicial para comenzar el método simplex. Se deben volver cero para tener una solución factible del problema original.
Ejemplo 1 de Variable Artificial (AV)
• Considera las restricciones: x1 + 2x2 ≥ 4
-3x1 + 4x2 ≥ 5
2x1 + x2 ≤ 6 x1, x2 ≥ 0
• Introduce variables flojas: x1 + 2x2 – x3 = 4
-3x1 + 4x2 – x4 = 5
2x1 + x2 + x5 = 6
Ejemplo 1. AV
Como observamos, no podemos obtener una matriz de identidad en los coeficientes ni números positivos en el lado derecho. Necesitamos agregar variables artificiales:
x1 + 2x2 – x3 + y1 = 4
-3x1 + 4x2 – x4 + y2 = 5
2x1 + x2 + x5 = 6
Ahora tenemos una matriz de identidad, hecha de las columnas de coeficientes de y1, y2, y x5.
Resolveremos el problema con el objetivo de minimizar y1 + y2 para librarnos de las variables artificiales, después usamos cualquier base que obtengamos y continuamos resolviendo, usando la función objetivo original.
Ejemplo 1. AV
Ejemplo 2 de Variable Artificial (AV)
• Considera las restricciones:x1 + 2x2 – 5x3 ≥ -4
3x1 – x2 + 3x3 ≤ 2
-x1 + x2 + x3 = -1 x1, x2, x3 ≥ 0
• Introduce variables flojas:x1 + 2x2 – 5x3 – x4 = -4
3x1 – x2 + 3x3 + x5 = 2
-x1 + x2 + x3 = -1
Ejemplo 2 de AV
No tenemos que agregar variables artificiales para la primera restricción si multiplicamos por -1.
Cuando multiplicamos la última restricción por -1 y agregamos una variable artificial, tenemos:
-x1 – 2x2 + 5x3 + x4 = 4
3x1 – x2 + 3x3 + x5 = 2
x1 – x2 – x3 + y1 = 1
x1, x2, x3, x4, x5, y1 ≥ 0
Manipulación de Restricciones
Entonces, después de agregar variables flojas, debemos hacer que los números del lado derecho sean positivos. Así que agregamos variables artificiales si las necesitamos.
Ejemplo 3 de Variable Artificial (AV)
• Considera el problema:
Maximizar -x1 + 8x2
Sujeta a: x1 + x2 ≥ 1
-x1 + 6x2 ≤ 3
x2 ≤ 2 x1, x2 ≥ 0
Ejemplo 3 de AV
Inserta variables flojas:
x1 + x2 – x3 = 1
-x1 + 6x2 + x4 = 3
x2 + x5 = 2
Ahora necesitamos una variable artificial en la 1a restricción.
Ejemplo 3 de AV
Inserta una variable artificial:
x1 + x2 – x3 + y1 = 1
-x1 + 6x2 + x4 = 3
x2 + x5 = 2
Entonces, la Fase 1 es:Minimizar y1
Sujeta a: x1 + x2 – x3 + y1 = 1
-x1 + 6x2 + x4 = 3
x2 + x5 = 2
Nuestra base inicial es: y1, x4, y x5.
Ejemplo 3 de AV
100
010
001546 aaaB
100
010
001
100
010
0011
1B
2
3
1
2
3
1
100
010
0011bBxB 1
2
3
1
001
BBf xc
&
100000c
2
3
1
b
Ejemplo 3 de AV
Indicadores de Optimización:
j=1:
j=2:
j=3:
110
0
1
1
100
010
001
001011111
aBcczc B
110
1
6
1
100
010
001
001021222
aBcczc B
110
0
0
1
100
010
001
001031333
aBcczc B
Ejemplo 3 de AV
Es un vínculo entre x1 y x2 – elige x1 para entrar a la base
2
3
1
)( 1bB1)( 6
1 bB3)( 4
1 bB
0
1
1
0
1
1
100
010
001
1 111 aBaB jj
x1 está entrando a la base
2)(& 51 bB
Ejemplo 3 de AV
6//1
1argmin0)(
)(
)(argmin 1
1
1*
ANANaBaB
bBi i
j
ij
i
1)( 61 bB 3)( 4
1 bB
Así que x1 reemplaza a y1 en la base
1)( 621 aB 1)( 4
21 aB
2)( 51 bB
0)( 521 aB
0 00
Ejemplo 3 de AV
100
011
001541 aaaB
100
011
001
100
011
0011
1B
2
4
1
2
3
1
100
011
0011bBxB 0
2
4
1
000
BBf xc
Ejemplo 3 de AV
Indicadores de Optimización:
j=2:
j=3:
j=6: 000
0
1
1
100
011
001
000011111
aBcczc B
000
1
6
1
100
011
001
000021222
aBcczc B
000
0
0
1
100
011
001
000031333
aBcczc B
Ejemplo 3 de AV
Todos los indicadores de optimización son ≥ 0, así que esta es una solución óptima.
Entonces, mantenemos esta base y cambiamos la función objetivo por la original:
Maximizar –x1 + 8x2
Nuestra base todavía es x1, x4, y x5.
Ejemplo 3 de AV
Volviendo al problema original:
100
011
0011B
2
4
11bBxB
1
2
4
1
001
BBf xc
00081c
La base sigue siendo la misma
Ejemplo 3 de AV
Indicadores de Optimización:
j=2:
j=3:
718
1
6
1
100
011
001
001821222
aBcczc B
110
0
0
1
100
011
001
001031333
aBcczc B
Puesto que estamos maximizando, buscamos el más positivo. Entonces, x2 entra en la base.
Ejemplo 3 de AV
2
4
1
)( 1bB1)( 1
1 bB4)( 4
1 bB
1
7
1
1
6
1
100
011
001
2 211 aBaB jj
x2 está entrando a la base
2)(& 51 bB
Ejemplo 3 de AV
41
2
7
4
1
1argmin0)(
)(
)(argmin 1
1
1*
ij
ij
i aBaB
bBi
1)( 51 bB 4)( 4
1 bB
1)( 121 aB 7)( 4
21 aB
2)( 51 bB
1)( 521 aB
MínimoDe este modo x4 deja la base
Ejemplo 3 de AV
Indicadores de Optimización:
j=3:
j=4: 000
0
1
0
1143.0143.0
0143.0143.0
0143.0857.0
001041444
aBcczc B
857.0
0
0
1
1143.0143.0
0143.0143.0
0143.0857.0
001031333
aBcczc B
Ejemplo 3 de AV
110
061
011521 aaaB
1143.0143.0
0143.0143.0
0143.0856.01B
429.1
571.0
429.0
2
3
1
1143.0143.0
0143.0143.0
0143.0856.01bBxB
143.4
429.1
571.0
429.0
081
BBf xc
Ejemplo 3 de AV
Ejemplo 3 de Variable Artificial
Todos los indicadores de optimización son ≤ 0, por lo tanto esta es la solución óptima:
429.1
0
0
571.0
429.0
*x 143.4* f
Condiciones KKT
• Las condiciones Karush-Kuhn-Tucker (KKT) pueden ser usadas para ver la optimización gráficamente
• Las usaremos más posteriormente en programación no linear, pero podemos usar una versión simplificada aquí
Condiciones KKT para LP
• Cambia las restricciones para que todas ellas sean restricciones ≥.
• El punto óptimo es el punto donde el gradiente de la función objetivo se encuentra dentro del cono formado por los vectores normal a las restricciones que se intersectan.
Condiciones KKT
• Recordatorio: – El gradiente () de una función f con n
variables es calculada como sigue:
nx
f
x
f
x
ff ...,,
21
Ejemplo:32
21 5)(3 xxxf
231 5,5,6 xxxf
Ejemplo de Restricciones KKT
• Ejemplo: En el problema #2 de ejemplo, tenemos el problema:
Minimizar f = -x1 – 3x2
Sujeta a: 2x1 + 3x2 ≤ 6
-x1 + x2 ≤ 1
x1, x2 ≥ 0
El gradiente de la función de costo, -x1 – 3x2 es:
3,1 cf
Ejemplo KKT
Previamente, vimos que este problema luce como sigue:
Restricción 1
Restricción 2
x1
x2
Puntos Extremos
(0, 0)
(3/5, 8/5)
(0, 1)
(3, 0)
Cambia todas las restricciones para que sean ≥:
g1: -2x1 – 3x2 ≥ -1
g2: x1 – x2 ≥ -1
g3: x1 ≥ 0
g4: x2 ≥ 0
Ejemplo KKT
Los gradientes de las cuatro restricciones (contando las restricciones no negativas), g1, …, g4 son:
3,21 g
1,12 g 1,04 g
0,13 g
Ejemplo KKT
La gráfica del problema con las normales de las restricciones se convierte en:
x1
x2
(0, 0)
(3/5, 8/5)
(0, 1)
(3, 0)
g1g2
g3
g2
g3
g4
g1
g4
Restricción 1
Restricción 2 El gradiente correspondiente a cada restricción (gi) es perpendicular a la restricción i.
Ejemplo KKT
c = (-1, -3) se ve así:
Entonces, cualquier cono en el que este vector encaje corresponde al punto extremo óptimo.
Ejemplo KKT
x1
x2
(0, 0)
(3/5, 8/5)
(0, 1)
(3, 0)
g1g2
g3
g2
g3
g4
g1
g4
No encajaNo encaja
No encaja
¡Encaja!
Ejemplo KKT
• De esta manera, obtenemos el mismo punto óptimo que cuando usamos el método simplex
• Éste método también puede usarse para problemas con tres variables en un espacio 3-D
• Con cuatro variables o más, la visualización no es posible y es necesario usar la definición matemática
Ejemplo KKT
Definición Matemática de las Condiciones KKT para LP
Dado un problema de minimización de LP:
Modificar las restricciones de manera que tengamos: ,0)( xig mi 1
Donde gi(x) es la ecuación lineal de restricción i. La bi que estaba en el lado derecho del signo de desigualdad es movida al lado izquierdo e incluida en gi.
Si existe una solución para x* y las i’s para las condiciones de abajo, entonces x* es el óptimo global
)()( **11 xx mm ggcf
,0)( * xii g
,0)( * xig
,0i
mi 1
mi 1
mi 1
Ecuación 1
Ecuación 2
Ecuación 3
Ecuación 4
Definición Matemática de las Condiciones KKT para LP
Explicación de la Ecuación 1
• La Ecuación 1 establece matemáticamente que el vector de la función objetivo debe hallarse dentro del cono formado por los vectores normales a las restricciones activas en el punto óptimo
• La Ecuación 2 fuerza a i a ser cero para todas las restricciones inactivas – llamada la condición de “soltura complementaria”– Si la restricción es activa, gi(x*) = 0, entonces
i puede ser positiva y gi será parte del cono en la Ecuación 1.
– Si la restricción es inactiva, gi(x*) 0, entonces i debe ser cero. gi no será incluida en el cono en la Ecuación 1 porque será multiplicada por cero.
Explicación de la Ecuación 2
• La Ecuación 3 asegura que x* es factible
• La Ecuación 4 asegura que la dirección del cono es correcta.– Si las i’s fueran negativas, el cono estaría en
la dirección opuesta. Entonces, esta ecuación previene que eso suceda.
Explicación de las Ecuaciones 3 y 4
Resumen de Condiciones KKT
• Las condiciones KKT no son útiles al resolver para puntos óptimos, pero pueden ser usadas para revisar optimización y pueden ayudarnos a visualizar la optimización
• Las usaremos frecuentemente al tratar problemas de optimización no lineal in la siguiente sección
Solvers de LP Automatizados
• Existen muchos programas de software disponibles que resolverán numéricamente los problemas de LP
• Microsoft Excel es un programa que resuelve problemas LP– Para ver los ejemplos de Excel para
problemas de optimización, busca y abre el archivo "solvsamp.xls" (debe estar incluido en la instalación estándar de Microsoft Office)
Ejemplo #1 de LP en Excel
Resolvamos el primer ejemplo en este capítulo con Excel
El problema era:
Minimizar f = -x1 – x2
Sujeta a: x1 + x2 ≤ 5
2x1 – x2 ≤ 4
x1 ≤ 3 ; x1, x2 ≥ 0
Aquí está la hoja de cálculo de Excel con los datos necesarios:
x1 x20 0
valor límiteFunción Objetivo: =-A2-B2
Restricción 1: =A2+B2 5Restricción 2: =2*A2-B2 4Restricción 3: =A2 3
En la hoja de cálculo, A2 es la celda de referencia para x1 y B2 es la referencia para x2
Ejemplo #1 de LP en Excel
Puedes ver que bajo el encabezado "valor" para las restricciones y función objetivo, simplemente usamos las funciones dadas para calcular el valor de la función
x1 x20 0
valor límiteFunción Objetivo: =-A2-B2
Restricción 1: =A2+B2 5Restricción 2: =2*A2-B2 4Restricción 3: =A2 3
Ejemplo #1 de LP en Excel
En el lado derecho de las restricciones, en la columna de "límite", escribimos el valor de “bi” para esa restricción
Obviamente, la función objetivo no tiene un límite
x1 x20 0
valor límiteFunción Objetivo: =-A2-B2
Restricción 1: =A2+B2 5Restricción 2: =2*A2-B2 4Restricción 3: =A2 3
Ejemplo #1 de LP en Excel
Entonces, la hoja de cálculo se ve así:
Ejemplo #1 de LP en Excel
• Ahora, necesitamos usar la función solver de Excel
• Busca "solver" en el menú Herramientas – Si no está ahí, ve a “complementos” (Add-Ins)
en el menú herramientas (Tools) y selecciona Solver.
Ejemplo #1 de LP en Excel
La ventana del Solver debe parecerse a esta:
Ejemplo #1 de LP en Excel
• Este es un problema de minimización,l entonces selecciona “Mínimo” (Min) y establece la "celda objetivo" (Set target cell) como el valor de la función objetivo
• Las variables son x1 y x2, entonces en el cuadro "Cambiando las celdas" (By Changing Cells), selecciona A2 y B2
Ejemplo #1 de LP en Excel
• Ahora agrega las restricciones: – Para la "Celda de Referencia" (Cell
Reference), usa el valor de la función de restricción y para la "Restricción" (Constraint), usa el número en la columna de Límite
– Las restricciones son todas ≤, así que debes asegurarte de que “<=“ aparece entre la Celda de Referencia y los cuadros de Restricción
Ejemplo #1 de LP en Excel
• Ahora, la ventana de Solver debe lucir así:
Ejemplo #1 de LP en Excel
• Finalmente, presiona el botón Opciones (Options)
• Todas las variables están especificadas como positivas, así que selecciona el recuadro "Asumir no negativos" (Assume Non-Negative)
Ejemplo #1 de LP en Excel
• Puesto que este es un problema de LP, selecciona el recuadro "Adoptar Modelo Lineal" (Assume Linear Model)
• Finalmente, la tolerancia por default de 5% es por lo general demasiado grande. A menos que el problema sea muy difícil, una tolerancia de 1% o incluso 0.1% está usualmente bien.
Ejemplo #1 de LP en Excel
• Da click en "Resolver" (Solve) y la ventana de Resultados de Solver debe aparecer
• Bajo "Informes" (Reports), selecciona Respuestas (Answer Report) y presiona Aceptar (OK)
• Una nueva hoja de cálculo que contiene el Informe de Respuestas (Answer Report) se ha agregado al archivo
Ejemplo #1 de LP en Excel
• La hoja de cálculo con los valores óptimos debe verse así:
Ejemplo #1 de LP en Excel
• Los valores para x1 y x2 son los mismos que cuando resolvimos el problema usando el método simplex
• También, si observas el Informe de Respuestas (Answer Report) puedes ver que todas las variables flojas son iguales a cero, que es lo que también obtuvimos con el método simplex
Ejemplo #1 de LP en Excel
Vamos a resolver otro problema de LP con Excel:
Maximizar 5x1 – 2x2 + x3
Sujeta a: 2x1 + 4x2 + x3 ≤ 6
2x1 + x2 + 3x3 ≥ 2
x1, x2 ≥ 0
x3 no restringida en signo
Ejemplo #2 de LP en Excel
Ejemplo #2 en Excel
La hoja de cálculo con las ecuaciones debe quedar como sigue:
x1 x2 x30 0 0
Valor LímiteFunción Objetivo: =5*A2-2*B2+C2
Restricción 1: =2*A2+4*B2+C2 6Restricción 2: =2*A2+B2+3*C2 2
A diferencia del último ejemplo, no se especificó que todas las variables sean positivas, ase que no podemos usar la opción "Asumir no negativos" (Assume Non-Negative) para todas las variables.
Entonces tenemos que especificar manualmente que x1 y x2 son no negativas agregando dos restricciones mas
Ejemplo #2 en Excel
Ahora, las fórmulas en la hoja de cálculo deben verse así:
x1 x2 x30 0 0
Valor LímiteFunción Objetivo: =5*A2-2*B2+C2
Restricción 1: =2*A2+4*B2+C2 6Restricción 2: =2*A2+B2+3*C2 2Restricción 3: =A2 0Restricción 4: =B2 0
Ejemplo #2 en Excel
Ahora, abre la ventana de parámetros del solver y especifica:
• La Celda Objetivo (Target Cell),
• El rango de celdas variables,
• Problema de Maximización
• Las restricciones– La primera restricción es ≤ y el resto son ≥.
Ejemplo #2 en Excel
Presiona el botón de Opciones y selecciona el recuadro de "Adoptar Modelo Lineal".
Recuerda, puesto que x3 no está restringida en signo, no selecciones el recuadro de "Asumir no negativos"
Puedes reducir la tolerancia si así lo deseas
Ejemplo #2 en Excel
La ventana del Solver debe verse como sigue:
Ejemplo #2 en Excel
Después de resolver, la hoja de cálculo debe lucir así:
Ejemplo #2 en Excel
• Nota que, debido a que x3 no estaba restringida en signo, fue posible obtener un valor negativo y esto mejoró la solución
• Para ver cuanta diferencia hace esto en la solución, resuelve el problema ahora seleccionando la opción "Asumir no negativos"
Ejemplo #2 en Excel
Resolviendo Problemas de LP con Excel
• De estos ejemplos, puedes ver que Excel puede ser una herramienta eficiente para usar al resolver problemas de optimización de LP
• El método para resolver problemas que fue descrito aquí es obviamente solo una manera y el usuario debe sentirse libre para experimentar y encontrar su propio estilo
Referencias
• Linear Programming and Network Flows; Bazaraa, Mokhtar; John Jarvis; & Hanif Sherali.
• Optimization of Chemical Processes 2nd Ed.; Edgar, Thomas; David Himmelblau; & Leon Lasdon.
• Pollution Prevention Through Process Integration; El-Halwagi, Mahmoud
Top Related