Optimización de Procesos - Polytechnique Montréal ... · Repaso de Álgebra Lineal • La...

Post on 20-Sep-2018

222 views 0 download

Transcript of Optimización de Procesos - Polytechnique Montréal ... · Repaso de Álgebra Lineal • La...

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 + 7x4sujeta 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 = cxsujeta a: Ax = b

xi ≥ 0; i = 1, …, ndonde 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 = 5Si 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 LHSno 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 ≤ 6x1 + 7x2 ≥ 4x1 + x2 = 3

x1 ≥ 0, x2 ≥ 0Definir 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 = 6x1 + 7x2 – x4 = 4x1 + x2 = 3

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0

[ ]0011 −−=c⎥⎥⎥

⎢⎢⎢

⎡=

346

b⎥⎥⎥

⎢⎢⎢

⎡−=00111071

0132A

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

10aλ

0=jλ

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.

⎥⎦

⎤⎢⎣

⎡=

54

1x ⎥⎦

⎤⎢⎣

⎡=

2520

2x

⎥⎦

⎤⎢⎣

⎡=

20

1x ⎥⎦

⎤⎢⎣

⎡=

13

2xy

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

1ab λ

Bases

• Se dice que un grupo de vectores es una base para un espacio n-dimensional si:

1. Los vectores abarcan el espacio2. 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

Basescontinuació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:

⎥⎦

⎤⎢⎣

⎡−

=1123842

],[ 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 lafila superior ala fila inferior

⎥⎦

⎤⎢⎣

⎡− 1123

842⎥⎦

⎤⎢⎣

⎡− 1123

421

⎥⎦

⎤⎢⎣

⎡−− 180421

Resolviendo SOE’scontinuaciónmultiplica 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

⎥⎦

⎤⎢⎣

⎡−− 180421

⎥⎥⎦

⎢⎢⎣

8110421

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

⎥⎥⎥

⎢⎢⎢

−−=

211121112

A

⎥⎥⎥

⎢⎢⎢

−−

100211010121001112

⎥⎥⎥

⎢⎢⎢

−−

125

123

121

123

123

123

121

123

125

100010001

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, definey

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 ]...[ 21=x 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 1−=B

)()( 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-negativaUna 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, unaBFS 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 −− =+ NB bBaBx 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 1−=donde

∑∈

−− −+=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 (LeavingVariables)

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

ij

i

)()(

1

1

aBbB

−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=1porque 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 ≤ 52x1 – x2 ≤ 4x1 ≤ 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 = 52x1 – x2 + x4 = 4x1 x5 = 3

x1, x2, x3, x4, x5 ≥ 0

⎟⎟⎟

⎜⎜⎜

⎛−=

100010101200111

A⎟⎟⎟

⎜⎜⎜

⎛=

345

b ( )00011 −−=c

1a Iteración:

( )⎟⎟⎟

⎜⎜⎜

⎛−==

001012111

321 aaaB

⎟⎟⎟

⎜⎜⎜

⎛=

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

−−== −

023

345

311210100

1bBxB

⎟⎟⎟

⎜⎜⎜

−−=

⎟⎟⎟

⎜⎜⎜

⎛−=

311210100

001012111 1

1B

( ) 5023

011 −=⎟⎟⎟

⎜⎜⎜

⎛−−== BBf xc

Ejemplo

Ahora, revisa la optimización

x4:

x5:

( ) 110010

311210100

0110414 −=−=

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

−−−−−=− − aBcBc

( ) 3)3(0100

311210100

0110515 =−−=

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

−−−−−=− − aBcBc

< 0

> 0

Ejemplo

Entonces, x4 entra a la base puesto que su indicador de optimización es < 0.

⎟⎟⎟

⎜⎜⎜

⎛=−

023

)( 1bB 3)( 11 =⇒ − bB 2)( 2

1 =− bB 0)(& 31 =− bB

⎟⎟⎟

⎜⎜⎜

⎛−=

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

−−==⇒= −−

11

0

010

311210100

4 411 aBaB jj

Ejemplo

Entonces, x3 es la variable saliente

{ } 310//argmin0)(

)()(argmin 1

1

1* ==

⎭⎬⎫

⎩⎨⎧

>= −−

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

⎟⎟⎟

⎜⎜⎜

⎛−=

001112011

B

⎟⎟⎟

⎜⎜⎜

⎛=

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

−−== −

023

345

311101

1001bBxB

⎟⎟⎟

⎜⎜⎜

−−=−

311101

1001B

( ) 5023

011 −=⎟⎟⎟

⎜⎜⎜

⎛−−== BBf xc

a4 ha sido sustituida por a3

Ejemplo

Indicadores de Optimización:

x3:

x5:

( ) 01)1(0001

311101

100011031

3 ≥=−−=⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

−−−−−=− − aBcBc

( ) 0000100

311101

100011051

5 ≥=−=⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

−−−−−=− − aBcBc

Ejemplo

Solución al Ejemplo

Todos los indicadores son ≥ 0, así que esta es la solución óptima.

Entonces, 5* −=f

⎟⎟⎟

⎜⎜⎜

⎛=

⎟⎟⎟

⎜⎜⎜

⎛=

023

4

2

1*

xxx

Bx ⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛=

00

5

3*

xx

Nx

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 aBaBbBi

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 flojasEl problema se convertirá en

0scx +=⎭⎬⎫

⎩⎨⎧

fminmax

bIsAx =+,0x ≥ 0s ≥

Sujeta a

Donde I = La matriz de Identidad

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

10...0001...00

00...1000...01

. . .

. . .

. . .

Elige las variables flojas como la base inicialLa 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

⎥⎦

⎤⎢⎣

⎡−

=10110132

A ⎥⎦

⎤⎢⎣

⎡=

16

b [ ]0031 −−=c

Matriz de Identidad

0≥

Ejemplo #2

Usa las variables flojas como la base inicial:

[ ] ⎥⎦

⎤⎢⎣

⎡==

100143 aaB ⎥

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡=

−−

1001

1001 1

1B

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡== −

16

16

10011bBxB [ ] 0

16

00 =⎥⎦

⎤⎢⎣

⎡== BBf xc

&

Indicadores de Optimización:

j=1:

j=2:

[ ] 1011

21001

00111111 −=−−=⎥

⎤⎢⎣

⎡−⎥

⎤⎢⎣

⎡−−=−=− − aBcczc B

[ ] 30313

1001

00321222 −=−−=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡−−=−=− − aBcczc B

c2 - z2 es el más negativo, así que x2 entra a la base

Ejemplo #2

⎥⎦

⎤⎢⎣

⎡=−

16

)( 1bB 6)( 31 =⇒ − bB 1)(& 4

1 =− bB

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡==⇒= −−

13

13

1001

2 211 aBaB jj

x2 está entrado a la base

Ejemplo #2

{ } { } 412argmin11

36argmin0)(

)()(argmin 1

1

1* ===

⎭⎬⎫

⎩⎨⎧

>= −−

ij

ij

i aBaBbBi

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:

[ ] ⎥⎦

⎤⎢⎣

⎡==

103123 aaB ⎥

⎤⎢⎣

⎡ −=⎥

⎤⎢⎣

⎡=

−−

1031

1031 1

1B

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −== −

13

16

10311bBxB [ ] 3

13

30 −=⎥⎦

⎤⎢⎣

⎡−== BBf xc

x2 reemplazó a x4

Ejemplo #2

Indicadores de Optimización:

j=1:

j=4:

Entonces, x1 entra a la base

[ ] 4311

21031

30111111 −=−−=⎥

⎤⎢⎣

⎡−⎥

⎤⎢⎣

⎡ −−−−=−=− − aBcczc B

[ ] 3)3(010

1031

30041444 =−−=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −−−=−=− − aBcczc B

Ejemplo #2

Variable Saliente:

Entonces, x3 deja la base y x1 lo reemplaza.

⎥⎦

⎤⎢⎣

⎡=−

13

)( 1bB 3)( 31 =∴ − bB 1)(& 2

1 =− bB

⎥⎦

⎤⎢⎣

⎡−

=⎥⎦

⎤⎢⎣

⎡−⎥

⎤⎢⎣

⎡ −=⇒= −

15

12

1031

1 1 jj aB

{ } 3/53argmin0)(

)()(argmin 1

1

1* ==

⎭⎬⎫

⎩⎨⎧

>= −−

ANaBaBbBi i

j

ij

i

0>

Ejemplo #2

3a Iteración:

[ ] ⎥⎦

⎤⎢⎣

⎡−

==113221 aaB ⎥

⎤⎢⎣

⎡ −=⎥

⎤⎢⎣

⎡−

=−

4.02.06.02.0

1132 1

1B

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −== −

6.16.0

16

4.02.06.02.01bBxB

[ ] 4.56.16.0

31 −=⎥⎦

⎤⎢⎣

⎡−−== 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(001

4.02.06.02.0

31031333 =−−=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −−−−=−=− − aBcczc B

[ ] 6.0)6.0(010

4.02.06.02.0

31041444 =−−=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −−−−=−=− − 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.

⎥⎦

⎤⎢⎣

⎡00

⎥⎦

⎤⎢⎣

⎡10

⎥⎦

⎤⎢⎣

⎡6.16.0

x1

x2

c en aumento

Ejemplo #2

• Puesto que estamos minimizando, fuimos en la dirección opuesta como el vector costo

⎥⎦

⎤⎢⎣

⎡00

⎥⎦

⎤⎢⎣

⎡10

⎥⎦

⎤⎢⎣

⎡6.16.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 #2continuació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 ySujeta a: Ax – Is + Iy = b x, s, y ≥ 0Si 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) cxSujeta 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 ≥ 52x1 + x2 ≤ 6 x1, x2 ≥ 0

• Introduce variables flojas:x1 + 2x2 – x3 = 4

-3x1 + 4x2 – x4 = 52x1 + 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 = 52x1 + 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 ≥ -43x1 – x2 + 3x3 ≤ 2-x1 + x2 + x3 = -1 x1, x2, x3 ≥ 0

• Introduce variables flojas:x1 + 2x2 – 5x3 – x4 = -43x1 – 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 = 43x1 – x2 + 3x3 + x5 = 2x1 – 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

[ ]⎥⎥⎥

⎢⎢⎢

⎡==

100010001

546 aaaB⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎡=

100010001

100010001 1

1B

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡== −

231

231

100010001

1bBxB [ ] 1231

001 =⎥⎥⎥

⎢⎢⎢

⎡== BBf xc

&

[ ]100000=c⎥⎥⎥

⎢⎢⎢

⎡=

231

b

Ejemplo 3 de AV

Indicadores de Optimización:

j=1:

j=2:

j=3:

[ ] 11001

1

100010001

001011111 −=−=

⎥⎥⎥

⎢⎢⎢

⎡−

⎥⎥⎥

⎢⎢⎢

⎡−=−=− − aBcczc B

[ ] 110161

100010001

001021222 −=−=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡−=−=− − aBcczc B

[ ] 110001

100010001

001031333 =+=

⎥⎥⎥

⎢⎢⎢

⎡−

⎥⎥⎥

⎢⎢⎢

⎡−=−=− − aBcczc B

Ejemplo 3 de AV

Es un vínculo entre x1 y x2 – elige x1 para entrar a la base

⎥⎥⎥

⎢⎢⎢

⎡=−

231

)( 1bB1)( 6

1 =⇒ − bB3)( 4

1 =− bB

⎥⎥⎥

⎢⎢⎢

⎡−=

⎥⎥⎥

⎢⎢⎢

⎡−

⎥⎥⎥

⎢⎢⎢

⎡==⇒= −−

01

1

01

1

100010001

1 111 aBaB jj

x1 está entrando a la base

2)(& 51 =− bB

Ejemplo 3 de AV

6//11argmin0)(

)()(argmin 1

1

1* =

⎭⎬⎫

⎩⎨⎧=

⎭⎬⎫

⎩⎨⎧

>= −−

ANANaBaBbBi 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> 0>0>

Ejemplo 3 de AV

[ ]⎥⎥⎥

⎢⎢⎢

⎡−==

100011001

541 aaaB⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎡−=

100011001

100011001 1

1B

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡== −

241

231

100011001

1bBxB [ ] 0241

000 =⎥⎥⎥

⎢⎢⎢

⎡== BBf xc

Ejemplo 3 de AV

Indicadores de Optimización:

j=2:

j=3:

j=6: [ ] 00001

1

100011001

000011111 =−=

⎥⎥⎥

⎢⎢⎢

⎡−

⎥⎥⎥

⎢⎢⎢

⎡−=−=− − aBcczc B

[ ] 000161

100011001

000021222 =−=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡−=−=− − aBcczc B

[ ] 000001

100011001

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:

⎥⎥⎥

⎢⎢⎢

⎡=−

100011001

1B⎥⎥⎥

⎢⎢⎢

⎡== −

241

1bBxB

[ ] 1241

001 −=⎥⎥⎥

⎢⎢⎢

⎡−== BBf xc

[ ]00081−=c

La base sigue siendo la misma

Ejemplo 3 de AV

Indicadores de Optimización:

j=2:

j=3:

[ ] 718161

100011001

001821222 =+=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡−−=−=− − aBcczc B

[ ] 110001

100011001

001031333 −=−=

⎥⎥⎥

⎢⎢⎢

⎡−

⎥⎥⎥

⎢⎢⎢

⎡−−=−=− − aBcczc B

Puesto que estamos maximizando, buscamos el más positivo. Entonces, x2 entra en la base.

Ejemplo 3 de AV

⎥⎥⎥

⎢⎢⎢

⎡=−

241

)( 1bB1)( 1

1 =⇒ − bB4)( 4

1 =− bB

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡==⇒= −−

171

161

100011001

2 211 aBaB jj

x2 está entrando a la base

2)(& 51 =− bB

Ejemplo 3 de AV

412

74

11argmin0)(

)()(argmin 1

1

1* =

⎭⎬⎫

⎩⎨⎧=

⎭⎬⎫

⎩⎨⎧

>= −−

ij

ij

i aBaBbBi

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: [ ] 000010

1143.0143.00143.0143.00143.0857.0

001041444 =−=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

−−

−−−=−=− − aBcczc B

[ ] 857.0001

1143.0143.00143.0143.00143.0857.0

001031333 −=

⎥⎥⎥

⎢⎢⎢

⎡−

⎥⎥⎥

⎢⎢⎢

−−

−−−=−=− − aBcczc B

Ejemplo 3 de AV

[ ]⎥⎥⎥

⎢⎢⎢

⎡−==

110061011

521 aaaB⎥⎥⎥

⎢⎢⎢

−−

−=−

1143.0143.00143.0143.00143.0856.0

1B

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

−−

−== −

429.1571.0429.0

231

1143.0143.00143.0143.00143.0856.0

1bBxB

[ ] 143.4429.1571.0429.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.100571.0429.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

fxf

xff ...,,

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 – 3x2es: ( )3,1 −−==∇ cf

Ejemplo KKTPreviamente, 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 ≥ -1g2: x1 – x2 ≥ -1g3: x1 ≥ 0g4: 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)

∇g1∇g2

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

∇g1∇g2

∇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 K1=

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 ∇⋅++∇⋅==∇ λλ K

,0)( * =⋅ xii gλ

,0)( * ≥xig

,0≥iλ

mi K1=

mi K1=

mi K1=

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 ≤ 52x1 – x2 ≤ 4x1 ≤ 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 ≤ 62x1 + x2 + 3x3 ≥ 2x1, x2 ≥ 0x3 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; & HanifSherali.

• Optimization of Chemical Processes 2nd

Ed.; Edgar, Thomas; David Himmelblau; & Leon Lasdon.

• Pollution Prevention Through Process Integration; El-Halwagi, Mahmoud