149
Optimización de Procesos

Optimización de Procesos

  • Upload
    trevet

  • View
    80

  • Download
    7

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Optimización de  Procesos

Optimización de Procesos

Page 2: Optimización de  Procesos

Tier I: Métodos Matemáticos de Optimización

Sección 2:

Programación Lineal

Page 3: Optimización de  Procesos

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

Page 4: Optimización de  Procesos

• 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

Page 5: Optimización de  Procesos

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.

Page 6: Optimización de  Procesos

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

Page 7: Optimización de  Procesos

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.

Page 8: Optimización de  Procesos

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

Page 9: Optimización de  Procesos

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

Page 10: Optimización de  Procesos

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

Page 11: Optimización de  Procesos

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

Page 12: Optimización de  Procesos

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.

Page 13: Optimización de  Procesos

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

Page 14: Optimización de  Procesos

• 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

Page 15: Optimización de  Procesos

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

Page 16: Optimización de  Procesos

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.

Page 17: Optimización de  Procesos

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

Page 18: Optimización de  Procesos

• 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

Page 19: Optimización de  Procesos

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

Page 20: Optimización de  Procesos

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

Page 21: Optimización de  Procesos

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

Page 22: Optimización de  Procesos

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

Page 23: Optimización de  Procesos

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

Page 24: Optimización de  Procesos

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.

Page 25: Optimización de  Procesos

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

Page 26: Optimización de  Procesos

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

Page 27: Optimización de  Procesos

• 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

Page 28: Optimización de  Procesos

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

Page 29: Optimización de  Procesos

Ahora tenemos

Multiplica ambos lados por B-1:

Así,

bNxBx NB

)()( 11NNNB xNxBbBxxx

bBNxBx 11 NB

Solución General continuación

Page 30: Optimización de  Procesos

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

Page 31: Optimización de  Procesos

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

Page 32: Optimización de  Procesos

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.

Page 33: Optimización de  Procesos

• 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)

Page 34: Optimización de  Procesos

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

Page 35: Optimización de  Procesos

• 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

Page 36: Optimización de  Procesos

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.

Page 37: Optimización de  Procesos

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.

Page 38: Optimización de  Procesos

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.

Page 39: Optimización de  Procesos

Á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:

Page 40: Optimización de  Procesos

Álgebra del Método Simplex

Nj

jjjB xzcf )(1bBc

jBjz aBc 1donde

Nj

jj

BjB xcf )( 11 aBcbBc

Multiplica y colecta términos xj:

Page 41: Optimización de  Procesos

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:

Page 42: Optimización de  Procesos

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.

Page 43: Optimización de  Procesos

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

Page 44: Optimización de  Procesos

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

Page 45: Optimización de  Procesos

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

Page 46: Optimización de  Procesos

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

Page 47: Optimización de  Procesos

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

Page 48: Optimización de  Procesos

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

Page 49: Optimización de  Procesos

• 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

Page 50: Optimización de  Procesos

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.

Page 51: Optimización de  Procesos

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

Page 52: Optimización de  Procesos

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

Page 53: Optimización de  Procesos

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

Page 54: Optimización de  Procesos

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

Page 55: Optimización de  Procesos

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

Page 56: Optimización de  Procesos

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

Page 57: Optimización de  Procesos

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

Page 58: Optimización de  Procesos

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

Page 59: Optimización de  Procesos

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.

Page 60: Optimización de  Procesos

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

Page 61: Optimización de  Procesos

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

Page 62: Optimización de  Procesos

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

. . .

. . .

. . .

Page 63: Optimización de  Procesos

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

Page 64: Optimización de  Procesos

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

Page 65: Optimización de  Procesos

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

&

Page 66: Optimización de  Procesos

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

Page 67: Optimización de  Procesos

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

Page 68: Optimización de  Procesos

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

Page 69: Optimización de  Procesos

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

Page 70: Optimización de  Procesos

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

Page 71: Optimización de  Procesos

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

Page 72: Optimización de  Procesos

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

Page 73: Optimización de  Procesos

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

Page 74: Optimización de  Procesos

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

Page 75: Optimización de  Procesos

• 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

Page 76: Optimización de  Procesos

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.

Page 77: Optimización de  Procesos

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

Page 78: Optimización de  Procesos

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.

Page 79: Optimización de  Procesos

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.

Page 80: Optimización de  Procesos

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

Page 81: Optimización de  Procesos

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.

Page 82: Optimización de  Procesos

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

Page 83: Optimización de  Procesos

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

Page 84: Optimización de  Procesos

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

Page 85: Optimización de  Procesos

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

Page 86: Optimización de  Procesos

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

Page 87: Optimización de  Procesos

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.

Page 88: Optimización de  Procesos

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

Page 89: Optimización de  Procesos

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.

Page 90: Optimización de  Procesos

Ejemplo 3 de AV

Inserta una variable artificial:

x1 + x2 – x3 + y1 = 1

-x1 + 6x2 + x4 = 3

x2 + x5 = 2

Page 91: Optimización de  Procesos

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

Page 92: Optimización de  Procesos

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

Page 93: Optimización de  Procesos

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

Page 94: Optimización de  Procesos

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

Page 95: Optimización de  Procesos

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

Page 96: Optimización de  Procesos

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

Page 97: Optimización de  Procesos

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

Page 98: Optimización de  Procesos

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

Page 99: Optimización de  Procesos

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

Page 100: Optimización de  Procesos

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

Page 101: Optimización de  Procesos

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

Page 102: Optimización de  Procesos

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

Page 103: Optimización de  Procesos

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

Page 104: Optimización de  Procesos

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

Page 105: Optimización de  Procesos

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

Page 106: Optimización de  Procesos

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í

Page 107: Optimización de  Procesos

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.

Page 108: Optimización de  Procesos

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

Page 109: Optimización de  Procesos

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

Page 110: Optimización de  Procesos

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)

Page 111: Optimización de  Procesos

Cambia todas las restricciones para que sean ≥:

g1: -2x1 – 3x2 ≥ -1

g2: x1 – x2 ≥ -1

g3: x1 ≥ 0

g4: x2 ≥ 0

Ejemplo KKT

Page 112: Optimización de  Procesos

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

Page 113: Optimización de  Procesos

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

Page 114: Optimización de  Procesos

c = (-1, -3) se ve así:

Entonces, cualquier cono en el que este vector encaje corresponde al punto extremo óptimo.

Ejemplo KKT

Page 115: Optimización de  Procesos

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

Page 116: Optimización de  Procesos

• 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

Page 117: Optimización de  Procesos

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.

Page 118: Optimización de  Procesos

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

Page 119: Optimización de  Procesos

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

Page 120: Optimización de  Procesos

• 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

Page 121: Optimización de  Procesos

• 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

Page 122: Optimización de  Procesos

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

Page 123: Optimización de  Procesos

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)

Page 124: Optimización de  Procesos

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

Page 125: Optimización de  Procesos

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

Page 126: Optimización de  Procesos

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

Page 127: Optimización de  Procesos

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

Page 128: Optimización de  Procesos

Entonces, la hoja de cálculo se ve así:

Ejemplo #1 de LP en Excel

Page 129: Optimización de  Procesos

• 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

Page 130: Optimización de  Procesos

La ventana del Solver debe parecerse a esta:

Ejemplo #1 de LP en Excel

Page 131: Optimización de  Procesos

• 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

Page 132: Optimización de  Procesos

• 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

Page 133: Optimización de  Procesos

• Ahora, la ventana de Solver debe lucir así:

Ejemplo #1 de LP en Excel

Page 134: Optimización de  Procesos

• 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

Page 135: Optimización de  Procesos

• 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

Page 136: Optimización de  Procesos

• 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

Page 137: Optimización de  Procesos

• La hoja de cálculo con los valores óptimos debe verse así:

Ejemplo #1 de LP en Excel

Page 138: Optimización de  Procesos

• 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

Page 139: Optimización de  Procesos

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

Page 140: Optimización de  Procesos

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

Page 141: Optimización de  Procesos

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

Page 142: Optimización de  Procesos

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

Page 143: Optimización de  Procesos

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

Page 144: Optimización de  Procesos

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

Page 145: Optimización de  Procesos

La ventana del Solver debe verse como sigue:

Ejemplo #2 en Excel

Page 146: Optimización de  Procesos

Después de resolver, la hoja de cálculo debe lucir así:

Ejemplo #2 en Excel

Page 147: Optimización de  Procesos

• 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

Page 148: Optimización de  Procesos

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

Page 149: Optimización de  Procesos

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