Date post: | 03-Feb-2018 |
Category: |
Documents |
Upload: | duongtuyen |
View: | 215 times |
Download: | 0 times |
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.
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
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:
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+ + + − =...
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.
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.
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.
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.
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.
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:
0µ
0x
0µNBcc
N
TT1TB
TN
>
≤−
=−+− − )1(
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
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,
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.
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
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 =+
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
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.
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.
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:
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.
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.
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.
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:
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.