+ All Categories
Home > Documents > TEMA 9: PROGRAMACIÓN LINEAL - RUA:...

TEMA 9: PROGRAMACIÓN LINEAL - RUA:...

Date post: 03-Feb-2018
Category:
Upload: duongtuyen
View: 215 times
Download: 0 times
Share this document with a friend
24
Simulación y Optimización de los Procesos Químicos 77 TEMA 9: PROGRAMACIÓN LINEAL 1.- INTRODUCCIÓN 2.- DEFINICIONES Y TEOREMAS BÁSICOS DE LA PROGRAMACIÓN LINEAL 3.- RESOLUCIÓN DEL PROBLEMA 3.1.- Método Gráfico 3.2.- El Algoritmo del Simplex. 3.2.1.- Justificación del Criterio de Entrada. 3.2.2.- Justificación del Criterio de Salida 3.2.3.- Variables Artificiales. 3.2.4.- Método de las Penalizaciones. 4.- PROGRAMACIÓN CUADRÁTICA.
Transcript
Page 1: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

77

TEMA 9: PROGRAMACIÓN LINEAL

1.- INTRODUCCIÓN

2.- DEFINICIONES Y TEOREMAS BÁSICOS DE LA PROGRAMACIÓN LINEAL

3.- RESOLUCIÓN DEL PROBLEMA

3.1.- Método Gráfico

3.2.- El Algoritmo del Simplex.

3.2.1.- Justificación del Criterio de Entrada.

3.2.2.- Justificación del Criterio de Salida

3.2.3.- Variables Artificiales.

3.2.4.- Método de las Penalizaciones.

4.- PROGRAMACIÓN CUADRÁTICA.

Page 2: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

78

TEMA 9

PROGRAMACIÓN LINEAL.

1.- INTRODUCCIÓN

Un problema de optimización en términos matemáticos queda definido por:

a) Las variables del problema, que reciben el nombre de variables instrumentales.

Se notarán por el vector x.

b) La función objetivo f(x) que es la descripción en términos matemáticos del

objetivo a conseguir.

c) El conjunto de oportunidades k o conjunto de valores que satisfacen todas las

condiciones del problema que se trata de resolver.

d) En general ( )k h xii

m

==1I donde hi (x) son las condiciones de restricción.

Una de las modalidades de la programación matemática es la programación lineal,

que se caracteriza por:

1.- La función objetivo es lineal, es decir

f(x) = c1 x1 + c2 x2+ ....

2.- Las restricciones del problema también son lineales

h1(x); a11 x1 + a12 x2 +......+a1n xn ≤ b1

h2(x);......a21 x1 + a12 x2 +......+a1n xn ≤ b1

hm(x);......am1 x1 + am2 x2 +......+amn xn ≤ bm

Page 3: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

79

3.- Las variables instrumentales han de tomar necesariamente valores mayores o

iguales que cero. Se trata de una condición de no negatividad

xi ≥ 0

En notación matricial

max (min) z = ct·x

s.a A·x ≤ b

x ≥ 0

Donde

( )c

x

t

n

n

c c c

x

x

x

son vectores de n componentes

=

=

1 2

1

2

, ,...,

A es una matriz de m x n llamada también matriz técnica

( )A =

=

a a a

a a a

a a a

P P P P

n

n

m m mn

n

11 21 1

21 22 2

1 2

1 2 3

...

...

...

, , ,...,

siendo Pj el vector columna asociado a la variable xj y B es el vector de términos

independientes de m componentes.

=

mb

b

b

2

1

b

• El problema de programación lineal puede presentarse en 3 formas diferentes.

(a).- En forma canónica, cuando las restricciones son desigualdades en una de las 2

formas siguientes:

Page 4: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

80

a.1.- max (min) z = ct·x

s.a A·x ≤ b

x ≥ 0

a.2.- max (min) z = ct·x

s.a A·x ≥ b

x ≥ 0

(b).- En la forma estándar, cuando las restricciones son igualdades

max (min) z = ct·x

s.a A·x = b

x ≥ 0

(c).- En forma mixta, cuando existen unas restricciones como desigualdades, tanto mayor

o igual, como menor o igual, y otras como igualdades.

Para transformar el problema a su forma estándar, se recurre a las variables de holgura

( )xi

h , cuyo sentido es recoger los excesos o defectos de las restricciones. La restricción

hd(x) puede ser:

a x a x a x bd d d n n d1 1 2 2+ + + ≤...

y con la introducción de la variable de holgura

a x a x a x x bd d d n n d

h

d1 1 2 2+ + + + =...

bien hd(x) puede venir dada por

a x a x a x bd d d n n d1 1 2 2+ + + ≥...

y se convierte en

a x a x a x x bd d d n n d

h

d1 1 2 2+ + + − =...

Page 5: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

81

Estas variables poseen una importante interpretación económica. Si en la solución del problema la variable de holgura de la restricción d es cero, xd

h = 0 , indica que la

restricción está saturada o que se verifica como igualdad. Por el contrario xd

h> 0, indica

que no se verifica como igualdad sino que existe un exceso de recursos no utilizados si la

restricción estaba planteada como (≤) y también puede significar un exceso de consumos

de disponibilidades mínimas cuando la restricción es mayor o igual (≥).

Con estas variables de holgura también denominadas variables secundarias en

contraposición a las variables principales, el problema se reduce fácilmente a la forma

estándar

Max z = c’t. x’

s.a A’. x’ = b

x’≥ 0

Donde x’ = (x, xh) y A’ es la matriz técnica de los coeficientes de las variables xy xh. Al

aumentar el número de variables, ha de aumentar también el número de coeficientes en la

función objetivo. Se recurre a coeficientes de valor cero c’ = (c, 0) para valores de

holgura.

Page 6: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

82

2.- DEFINICIONES Y TEOREMAS BÁSICOS DE PROGRAMACIÓN LINEAL

Solución factible:

El conjunto de oportunidades k, queda definido por la intersección de las restricciones,

que al ser desigualdades lineales delimitan semiespacios cerrados. Por lo tanto el

conjunto de oportunidades es un conjunto convexo, al ser intersección de conjuntos

convexos. Caso de no ser vacío recibe el nombre de politopo, y si está acotado se llama

poliedro.

Se llama solución factible o vector admisible de un problema de programación lineal

en forma standard a cualquier vector x que satisface las restricciones A.x = b y xi≥0. En

otras palabras, la solución factible ha de ser una solución que esté contenida dentro del

conjunto convexo de oportunidades.

La solución factible óptima es aquel o aquellos vectores admisibles para los que la

función objetivo alcanza el óptimo.

• Si k es un poliedro, la solución óptima puede ser única (solución de vértice, Figura

1.1) o puede tener infinitas soluciones (solución de arista o de cara) (Fig. 1.2)

• Si k es un politopo no acotado puede tener solución única (Fig. 1.3), infinitas

soluciones (Fig. 1.4) o no tener solución (Fig. 1.5)

• Si k es vacío no hay solución.

1.1 1.2 1.3

1.4 1.5 Figura 1.

Page 7: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

83

Punto extremo

un punto Fx ∈ se dice que es un punto extremo de conjunto de oportunidades F si y solo

si no puede ser expresado como:

xxxFxxxxx ≠≠<<∈−+=212121 10,,)1( ααα ,

Solución básica

Considere un problema lineal expresado en su forma estándar:

0

.

(max)min

=

=

x

bxA

xcT

as

z

Donde el rango de A es m. Se puede dividir la matriz A en 2 submatrices B y N. B de

orden m x m y N de orden m x (n-m). Todo el vector x admisible contiene m

componentes asociados a B y n-m componentes asociados a N. Esto es:

A=[B | N] y

=

N

B

x

xx y por lo tanto: bNxBxAx NB =+=

Se dice que una solución es básica si: 0x0;x BN ≥=

Y por lo tanto: bBx 1B

−=

El vector xB, vector de los componentes de x asociadas a B, es el vector de variables

básicas, (forman la solución básica). Mientras que el vector xN, vector de las

componentes de x asociadas a N y cuyo valor es cero, es el vector de variables no

básicas.

Page 8: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

84

Teorema I

Un punto x en un programa lineal expresado en forma

estándar es un punto extremo si y sólo si es una solución

básica. O sea

0x0xbBx NB1

B =≥= −

Demostración:

Sea x una solución factible básica, y por lo tanto:

=

=

0

x

x

xx B

N

B

La demostración se hará por contradicción. Si x no es un punto extremo entonces deberán

existir dos puntos y y z de tal manera que:

0z;0y

0z;0y

z

zz

y

yy

NN

BB

N

B

N

B

≥≥

≥≥

=

=

xzyzyx ≠≠<<−+= 10)1( ααα

Si el punto x es una solución básica entonces:

=

−+

=

0

x

z

z

y

y

x

x B

N

B

N

B

N

B )1( αα

Así pues para las variables no básicas se cumple que:

0zy NN =−+ )1( αα (recordando que 0z;0y NN ≥≥ ) ⇒ 0zy NN ==

Por otra parte como los puntos x son factibles deben satisfacer las restricciones:

bzByBxB BBB === y si la matriz B es invertible entonces.

Page 9: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

85

xB = yB = zB

Lo cual nos lleva a una contradicción, debiendo cumplirse necesariamente que si x es

punto extremo es también una solución factible básica.

Teorema II

La solución óptima de un problema lineal cae siempre en

un punto extremo de la región factible F

Demostración:

La demostración la haremos por reducción al absurdo. Sea x* el óptimo de un programa

lineal (sin pérdida de generalidad digamos que estamos minimizando).

Supongamos que x* no es un punto extremo:, entonces:

10* =>= ∑∑i

ii

i

ii ααα xx

multiplicando en ambos lados por cT :

∑=

i

iTi

T xcxc α*

Pero como además x* es el punto óptimo entonces :

iTT xcxc <*

Estas dos últimas ecuaciones son contradictorias, y por lo tanto la solución óptima x*

debe ser, necesariamente, un punto extremo.

Corolario:

Si la función alcanza un mínimo (máximo) en más de un punto extremo toma el

mismo valor para cualquier combinación lineal convexa de dichos puntos.

Page 10: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

86

Teorema 3:

Una condición necesaria y suficiente para que x* sea una

solución óptima es que:

T0cNBc TN

1TB ≤−−

Demostración

Recordemos que el problema que estamos resolviendo es el siguiente:

0x

bAx

xcT

=

=

..

:min

as

z

Haciendo la separación entre variables básicas y no básicas:

0x

bxNxB

xcxc

NB

NTNB

TB

=+

+=

..

:min

as

z

Despejando xB del conjunto de restricciones:

N11

BNB xNBbBxbxNxB −− −=⇒=+

Sustituyendo en el problema original queda lo siguiente:

( )

0x

bBcxNBccxc)xNBbB(c

N

1TBN

1TB

TNN

TNN

11TB

≤−

+−=+−=−−−−

..

:min

as

z

Las condiciones necesarias de optimalidad de Karush-Khun-Tucker de primer orden para

el problema anterior son:

0x

0µNBcc

N

TT1TB

TN

>

≤−

=−+− − )1(

Page 11: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

87

y como el multiplicador de KKT es positivo entonces necesariamente:

T0cNBc TN

1TB ≤−

− que es la expresión que se buscaba.

3.- RESOLUCIÓN DEL PROBLEMA

Los teoremas anteriores transforman la tarea de resolver un problema de programación

lineal en ir buscando la solución óptima entre las soluciones básicas y comprobar la

condición de optimalidad formulada en le teorema III. La resolución se reduce a

investigar sólo un número finito de puntos.

(El número total de puntos es ( )

m

n

m

n n m

=

!

! ! que corresponde al número de vértices).

De entre los varios métodos propuestos para resolver este tipo de problemas destaca el

método gráfico, y el algoritmo simplex.

3.1.- MÉTODO GRÁFICO

El método gráfico consiste en obtener geométricamente la solución del problema de

programación lineal. Este método es recomendable sólo en el caso de que el número de

variables sea reducido. Se precisa conocer:

(a) La representación del conjunto de oportunidades F que viene dada por la

intersección de los semiespacios definidos por las restricciones.

(b) La gráfica de la familia de líneas de nivel definida por la función objetivo y el

conjunto de oportunidades. El hiperplano ha de tomar el mayor valor en la

solución si el problema es de maximización y el menor si el valor es de

minimización.

Ejemplo: supóngase un programa de maximización con 2 variables y 2 restricciones dado

por las ecuaciones:

Max F(x) = 4x1+5x2

Page 12: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

88

s.a 2x1+x2≤ 8

x2 ≤ 5

x1 ≥ 0, x2 ≥ 0

(0,5)

(4,0)

x 2

x 1

m=-4/5

Figura 2. Ejemplo de método gráfico para resolver un problema de programación lineal

La zona oscura es el conjunto k.

solución: punto B3

25,

Page 13: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

89

3.2.- EL ALGORITMO SIMPLEX

El algoritmo del simplex como todo algoritmo iterativo, necesita un punto de partida que

es la solución factible básica inicial (punto extremo inicial).

Si esta solución no es la óptima se van generando, a través del método de cálculo que se

expondrá más adelante, sucesivas soluciones básicas, (puntos extremos) hasta determinar

cuál de ellas es la óptima, momento en el cual se detiene el proceso.

El algoritmo del simplex se puede resumir en las siguientes etapas

a. Encontrar una base inicial

b. Resolver para las variables básicas

c. Comprobar si se cumple el criterio de optimalidad

d. En caso de que la condición c no se cumpla, eliminar una variable de la base,

que pasaría a ser no básica e introducir una nueva variable básica seleccionada

entre las no básicas.

Veamos de forma detallada como se lleva a cabo el procedimiento en forma de tabla: (Lo

aplicaremos a un problema de maximización)

El método simplex en forma de tabla comienza por colocar ordenadamente en columnas

todas las variables que forman parte del programa especificando en el encabezamiento el

respectivo coeficiente cj de la función objetivo. Por filas, se sitúan las variables básicas

acompañadas por los cj. Los componentes de la tabla son los distintos vectores P’j que

están en función de la base considerada. En una última columna se recogen los

componentes del vector solución respecto de dicha base.

Page 14: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

90

p1 P2 pf pm pk pn

c1 C2 cf cm ck cn

x1 X2 xf xm xk xn P0

c1 x1 1 0 0 0 x1k x1n b1 = x10

c2 x2 0

1 0 0 x2k x2n b2 = x20

cf xf 0

0 1 0 xfk xfn bf = xf0

cm xm 0 0 0 1 xmk xmn bm = xm0

zj z1 Z2 zf zm zk zn F

wj 0 0 0 0 ck-zk cn-zn

A partir de aquí se han de realizar las siguientes operaciones:

1.- Calcular los elementos de la penúltima fila de la tabla llamados Zj y cuyo valor es:

zj = c1x1j+c2x2j+...+cmxmj, siendo xij la i-esima componente del vector Pj, con i = 1,2,...,m.

Los Zj de las variables básicas son Zj = cj.

2.- Calcular los elementos de la última fila de la tabla (wj) cuyo valor es wj = cj-Zj.

3.- Comprobar si todos los wj son menores o iguales que cero. En caso afirmativo se han

alcanzado el óptimo. En caso contrario hay que seguir iterando.

4.- Si existen varios vectores cuyo wj > 0, de entre ellos se elige el que toma el valor

máximo, p.e pk. La variable xk se convierte en variable básica y se debe eliminar alguno

de los m primeros para que la base continúe teniendo m.

Max :wj > 0 = wk criterio de entrada

5.- Para seleccionar el vector que va a salir de la base, se elige aquel que minimice la

expresión x

x

i

ik

0 con i = 1,2,...,m donde xik son las componentes del vector Pk que es el

vector seleccionado previamente

Page 15: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

91

Min: xx

x

x

xik

i

ik

f

fk

>

=

0 0 0 criterio de salida

Si todas las xik ≤ 0, no existe solución óptima (Politopo no acotado)

6.- Se determina el elemento pivote, en nuestro caso xfk, intersección de la columna del

vector que entra Pk y la fila del vector que sale Pf. A continuación se lleva a cabo una

eliminación de Gauss de tal manera que el elemento pivote se convierta en un 1 y lo otros

elementos de su columna pasen a ser ceros.

7.- Se vuelve nuevamente al punto uno. El proceso se obtiene cuando wj ≤ 0 en cuyo caso

se ha alcanzado el óptimo.

3.2.1.- Justificación del criterio de entrada

En una etapa cualquiera del proceso nuestra tabla queda como:

xB1 xB2 ……. xBm xN1 xN2 ….. xNt b

I

B-1N

B-1b

0 NBccTB

TN

1−− bBc

TB

1−−

Vemos que el valor que calculamos en la tabla W corresponde al término NBcc TB

TN

1−−

y por lo tanto la mejor decisión local es aquella que produce más mejora en la función

objetivo es decir, la que tiene el mayor W.

3.2.2.- Justificación del criterio de salida

La idea es eliminar una variable de la base de tal manera que la solución siga

manteniéndose positiva para todas las variables. Si tenemos:

bNxBx NB =+

Page 16: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

92

bBxNBx NB11 −− =+

bxYx NB =+ donde bBbNBY11 −−

==

Que escrito para cada una de una de las variables i:

mibxyx i

k

NkikBi .......1==+ ∑

Digamos que xNj entra en la base, nosotros queremos que ixyx BiNj ∀≥≥ 00

entonces, de la ecuación anterior

iy

bxxybx

ij

ijNjNijiBi ∀≤⇒≥−= 0

para asegurar que esto se cumple para todas las i debemos elegir la variable que tiene una

relación ij

i

y

b menor (entre aquellos con 0≥

ij

i

y

b).

• Veamos un ejemplo:

Planteamos el problema resuelto anteriormente por el método gráfico.

Max F(x) = 4x1+5x2

s.a 2x1+x2≤ 8

x2 ≤ 5

x1 ≥ 0, x2 ≥ 0

Convertimos el problema a su forma standard.

Max.... F x x x x x

s a x x x

x x

x x x x

h h

h

h

h h

( )

.

; ; ;

= + + +

+ +

+ =

≥ ≥ ≥ ≥

4 5 0 0

2

5

0 0 0 0

1 2 1 2

1 2 1

2 2

1 2 1 2

= 8

Page 17: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

93

Se selecciona la base canónica como base de partida para el algoritmo (m=z) constituida

por x1h x2

h. Esta circunstancia hace que el vector P0 y los vectores Pj de las variables no

básicas son directamente conocidos. Se puede construir así la primera tabla del algoritmo:

en las filas se sitúan las variables básicas x1h y x2

h y en las variables del programa y el

vector P0que coincide con el vector de términos independientes en esta primera tabla.

4 5 0 0

x1 x2 x1h x2

h P0

0 x1h 2 1 1 0 8

0 x2h 0 1* 0 1 5

Zj 0 0 0 0 0

wj 4 5 0 0

La identificación de los vectores es bien simple

P P P P Ph h' ; ' ; ' ; ' ;1 2 1 2 0

2

0

1

1

1

0

0

1

8

5=

=

=

=

=

w1 ≥ 0; w2 ≥ 0 luego no se ha alcanzado el óptimo. Se toma la variable x2 al ser w2 > w1.

Es decir la variable x2 se incorpora a la base de la que debe salir alguna de las variables

básicas precedentes x1h ó x2

h.

Para seleccionar la variable que debe abandonar la base se analiza el cociente

x

x

x

x

x

x

i

i

0

2

10

12

20

22

8

18

5

15

= =

= =

; por lo tanto debe abandonar la base el vector x2h.

El elemento pivote aparece con un * en la tabla, realizamos pues una eliminación

de gauss donde el elemento pivote debe tomar valor 1 y el resto de los elementos de la

columna ceros, por ser una columna de una variable básica.

Page 18: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

94

4 5 0 0

x1 x2 x1h x2

h

0 x1h 2* 0 1 -1 3

5 x2 0 1 0 1 5

Zj 0 5 0 5 25

wj 4 0 0 -5

De acuerdo con lo dicho el nuevo vector de entrada debe ser x1 ; y el de salida x1h

(3/2<5/0)→no definido→∞.

4 5 0 0

x1 x2 x2h

4 x1 1 0 1/2 -1/2 3/2

5 x2 0 1 0 1 5

Zj 4 5 2 3 31

wj 0 0 -2 -3

Hemos alcanzado el óptimo x1=3/2 ;x2=5 F.0=31

¿Cómo se identifican las soluciones o falta de solución a través del algoritmo el simplex?

El procedimiento expuesto corresponde al caso de solución de vértice (solución única),

pero también puede aparecer la solución de arista (solución múltiple) o la falta de

solución. Todos los casos quedan recogidos en el siguiente resumen.

(a) Si se alcanza una tabla en la que, para las variables no básica, los wj<0, la

solución es de vértice. Solución única.

(b) Si alguno o algunos de los wj de los wj de las variables no básicas es nulo, la

solución es de arista o de cara. Solución múltiple.

(c) Cuando algún vector de la tabla tiene todas sus componentes no positivas (xi,≤

0 ∀i) y wk≥0, no existe solución óptima, politopo no acotado.

Page 19: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

95

(d) Si al ir calculando sucesivas tablas el valor de la función permanece constante

y cada cierto número de tablas se vuelve de nuevo a la tabla que inició el

proceso, repitiéndose sucesivamente, no se alcanza ninguna solución

recibiendo este caso el nombre de ciclo. (Existen métodos para resolver el

problema en este caso).

El algoritmo antes mencionado con los criterios de entrada y salida sirve para resolver

problemas de maximizar. Para minimizar podremos elegir entre 2 criterios:

1.- Variar wj. En la maximización wj=cj-Zj entrando a la base aquel

xj cuyo wj es mayor. Para el caso de minimización se define wj= Zj-cj y sigue

entrando en la base la variable que lleva asociado el mayor wj. El óptimo se

alcanza cuando todos los wj de las variables no básicas son negativas.

2.- Transformar:

min f(x) = - max( - f(x))

con lo que el problema de mínimo se transforma en un máximo.

Tan sólo hay que cambiar el signo de la F.0 y aplicar el algoritmo. Una vez obtenido el

óptimo hay que cambiar el signo de la F.0 para obtener la solución.

3.3.3.- Variables artificiales

El punto de partida del algoritmo del simplex consiste en tomar la solución básica factible

a la que se ha denominado solución básica factible inicial y que está asociada con la base

canónica.

En los casos hasta ahora presentados (forma canónica con restricciones del tipo ≤ ), la

solución básica factible inicial es muy fácil de obtener pues basta tomar las variables de

holgura que se introdujeron para pasar a la forma estándar.

No siempre se presentan los programas en la forma expuesta, pues puede haber:

Page 20: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

96

Restricciones con desigualdades de signo ≥ en los que los coeficientes de las

variables de holgura han de tomar signo negativo.

Restricciones de igualdad en las que no puede haber variables afectadas por un

vector e perteneciente a la bases canónica.

En estos supuestos no resulta fácil tomar la solución factible básica inicial que sirva de

punto de partida del algoritmo del simplex. Para evitar esta dificultad se utiliza el artificio

de introducir otras variables con la condición de tener asociado un vector ei y sin que

tengan ninguna interpretación económica o técnica. (En consecuencia dichas variables no

pueden aparecer en la solución del problema como variables básicas. Si aparecen como

tales significa que el problema carece de solución, es decir que las restricciones son

incompatibles).

Así por ejemplo ante una restricción de igualdad:

a x a x a x bd d dn n d1 1 2 2+ + + =....

se añade la variable artificial xa

d

a x a x a x x bd d dn n a

d

d1 1 2 2+ + + + =....

Si la restricción es una desigualdad de signo mayor o igual:

a x a x a x bd d dn n d1 1 2 2+ + + ≥....

Se añade por una parte una variable de holgura de signo negativo que la transforme en

igualdad (forma estándar) y por otra parte la variable artificial:

a x a x a x x x bd d dn n d

h

a

d

d1 1 2 2+ + + − + =....

El problema original se ha visto ampliado como consecuencia de la introducción de estas

variables, con un número indeterminado de ellas, que en todo caso no será superior a m

(n° de restricciones) y que reciben el nombre de variables artificiales.

Page 21: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

97

El problema se puede tratar por el método de las penalizaciones o por el método de las

dos fases.

3.3.4.- Método de penalizaciones

Se introducen las variables artificiales en la función objetivo, penalizando dichas

variables con un coeficiente M, siendo M un número arbitrariamente grande en valor

absoluto, de forma que:

Para un problema de maximización, el valor de M será un número arbitrariamente

grande negativo, o bien aparece restando, de modo que al intentar maximizar

dicho problema, necesariamente la solución no ha de depender de las variables

artificiales.

Para un problema de minimizar, el valor de M será un número arbitrariamente

grande y positivo, lo que provocará la exclusión de la correspondiente variable

artificial.

3.3.5.- Método de las dos fases

Consiste en descomponer el problema ampliado en dos subproblemas o fases. La primera

fase consiste en minimizar la función auxiliar

( ) ( )F x x x x p ma

i

a a

p

a

i

p

1 11

= = + + ≤=

∑ .....

sujeta a las restricciones del problema ampliado. Con su resolución en el caso de que las

soluciones fueran compatibles, se habrá llegado a una solución factible básica del

problema original.

La segunda fase consiste en optimizar el problema original, tomando como solución

factible básica inicial la solución de la fase anterior.

Page 22: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

98

4.- PROGRAMACIÓN CUADRÁTICA

La programación cuadrática (QP) es el nombre que se le da a un procedimiento que

minimiza una función cuadrática de n variables sujeta a m restricciones lineales de

igualdad o desigualdad. Un programa cuadrático es la forma más simple de problema no

lineal con restricciones de desigualdad. La importancia de la programación cuadrática es

debida a que un gran número de problemas aparecen de forma natural como cuadráticos

(optimización por mínimos cuadrados, con restricciones lineales), pero además es

importante porque aparece como un subproblema frecuentemente para resolver

problemas no lineales más complicados. Las técnicas propuestas para solucionar los

problemas cuadráticos tienen mucha similitud con la programación lineal.

Específicamente cada desigualdad debe ser satisfecha como igualdad. El problema se

reduce entonces a una búsqueda de vértices exactamente igual que se hacía en

programación lineal.

En notación compacta el programa cuadrático es:

0

..

)x(min21

+=

x

bxA

xQxxc

as

fTT

(1)

donde c es un vector de coeficientes constantes; A es una matriz (m x n) y se asume, en

general que Q es una matriz simétrica.

Dado que las restricciones son lineales y presumiblemente independientes la cualificación

de las restricciones se satisface siempre, así pues, las condiciones de Karush-Kuhn-

Tucker son también condiciones suficientes para obtener un extremo, que será a demás

un mínimo global si Q es definida positiva. Si Q no es definida positiva el problema

podría no estar acotado o llevar a mínimos locales.

Page 23: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

99

Comencemos por la función de Lagrange:

( ) )(21 xvbxAµxQxcx −+−++= TTTTL (2)

Donde µ es el vector de los multiplicadores de KKT asociados a las restricciones lineales

del sistema y v es el vector de los multiplicadores que vienen como consecuencia de

hacer que las variables sean todas no negativas.

Las condiciones de Karush – Kuhn – Tucker son entonces:

aridadcomplement0

0)(

0

0

T

T

=

=−

≤−

=−++

xv

bAxµ

bxA

vµAxQc

T

(3)

Si se añaden variables de holgura a la desigualdad del conjunto de ecuaciones en (3)

hh xbxAxbAx −=−⇒=+− 0 (4)

Sustituyendo la expresión anterior en la condición de complementaridad se obtiene:

00)()( hTT=⇒=−=−

hT xµxµbxAµ (5)

Las condiciones de Karush – Kuhn- Tucker, pasando los términos constantes a la

derecha, e incluyendo las sustituciones anteriores quedan entonces como:

Page 24: TEMA 9: PROGRAMACIÓN LINEAL - RUA: Principalrua.ua.es/.../10045/19734/4/Introduccion_a_la_programacion_lineal.pdf · Simulación y Optimización de los Procesos Químicos 77 TEMA

Simulación y Optimización de los Procesos Químicos

100

0complementariedad

0

T

h

T h

T

− − + =

+ =

=

=

Q x A µ v c

A x x b

µ x

v x

(6)

Si en las ecuaciones anteriores (6) elimino las restricciones de complementariedad el

problema resultante es un problema lineal que puedo resolver utilizando la fase I del

método de las dos fases. Para asegurar que se cumplen las condiciones de

complementariedad basta con modificar el criterio de entrada de una variable a la base,

de tal manera que la variable jµ y su correspondiente par complementario hjx no formen

simultáneamente parte de la base (y lo mismo con v y x). Por ejemplo, digamos que la

variable jµ es la primera candidata para entrar a formar parte de la base. jµ entrará a la

base sólo si hjx no forma parte de la base o si h

jx es la variable que debe abandonar la

base. Si no es así se seleccionará para entrar a formar parte de la base la siguiente

candidata.

Se puede demostrar que si (x, µ, v, xh) es una solución del problema QP original entonces

f(x) es equivalente a:

( )hTT21 xbxc +=f (7)

La minimización de la función dada por la ecuación (7) sujeta a las restricciones dadas

por las ecuaciones (6) (o simplemente las ecuaciones 6) es lo que se conoce como el

problema lineal complementario.


Recommended