Beruflich Dokumente
Kultur Dokumente
77
TEMA 9: PROGRAMACIN LINEAL
1.- INTRODUCCIN
2.- DEFINICIONES Y TEOREMAS BSICOS DE LA PROGRAMACIN LINEAL
3.- RESOLUCIN DEL PROBLEMA
3.1.- Mtodo Grfico
3.2.- El Algoritmo del Simplex.
3.2.1.- Justificacin del Criterio de Entrada.
3.2.2.- Justificacin del Criterio de Salida
3.2.3.- Variables Artificiales.
3.2.4.- Mtodo de las Penalizaciones.
4.- PROGRAMACIN CUADRTICA.
Simulacin y Optimizacin de los Procesos Qumicos
78
TEMA 9
PROGRAMACIN LINEAL.
1.- INTRODUCCIN
Un problema de optimizacin en trminos matemticos queda definido por:
a) Las variables del problema, que reciben el nombre de variables instrumentales.
Se notarn por el vector x.
b) La funcin objetivo f(x) que es la descripcin en trminos matemticos 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 x
i
i
m
=
=1
I
donde h
i
(x) son las condiciones de restriccin.
Una de las modalidades de la programacin matemtica es la programacin lineal,
que se caracteriza por:
1.- La funcin objetivo es lineal, es decir
f(x) = c
1
x
1
+ c
2
x
2
+ ....
2.- Las restricciones del problema tambin son lineales
h
1
(x); a
11
x
1
+ a
12
x
2
+......+a
1n
x
n
b
1
h
2
(x);......a
21
x
1
+ a
12
x
2
+......+a
1n
x
n
b
1
h
m
(x);......a
m1
x
1
+ a
m2
x
2
+......+a
mn
x
n
b
m
Simulacin y Optimizacin de los Procesos Qumicos
79
3.- Las variables instrumentales han de tomar necesariamente valores mayores o
iguales que cero. Se trata de una condicin de no negatividad
x
i
0
En notacin matricial
max (min) z = c
t
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 tambin matriz tcnica
( ) 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 P
j
el vector columna asociado a la variable x
j
y B es el vector de trminos
independientes de m componentes.
|
|
|
|
|
\
|
=
m
b
b
b
2
1
b
El problema de programacin lineal puede presentarse en 3 formas diferentes.
(a).- En forma cannica, cuando las restricciones son desigualdades en una de las 2
formas siguientes:
Simulacin y Optimizacin de los Procesos Qumicos
80
a.1.- max (min) z = c
t
x
s.a A x b
x 0
a.2.- max (min) z = c
t
x
s.a A x b
x 0
(b).- En la forma estndar, cuando las restricciones son igualdades
max (min) z = c
t
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 estndar, se recurre a las variables de holgura
( ) x
i
h
, cuyo sentido es recoger los excesos o defectos de las restricciones. La restriccin
h
d
(x) puede ser:
a x a x a x b
d d d
n
n d
1
1
2
2
+ + + ...
y con la introduccin de la variable de holgura
a x a x a x x b
d d d
n
n d
h
d
1
1
2
2
+ + + + = ...
bien h
d
(x) puede venir dada por
a x a x a x b
d d d
n
n d
1
1
2
2
+ + + ...
y se convierte en
a x a x a x x b
d d d
n
n d
h
d
1
1
2
2
+ + + = ...
Simulacin y Optimizacin de los Procesos Qumicos
81
Estas variables poseen una importante interpretacin econmica. Si en la solucin del
problema la variable de holgura de la restriccin d es cero, x
d
h
= 0 , indica que la
restriccin est saturada o que se verifica como igualdad. Por el contrario x
d
h
> 0, indica
que no se verifica como igualdad sino que existe un exceso de recursos no utilizados si la
restriccin estaba planteada como () y tambin puede significar un exceso de consumos
de disponibilidades mnimas cuando la restriccin es mayor o igual ().
Con estas variables de holgura tambin denominadas variables secundarias en
contraposicin a las variables principales, el problema se reduce fcilmente a la forma
estndar
Max z = c
t
. x
s.a A. x = b
x 0
Donde x = (x, x
h
) y A es la matriz tcnica de los coeficientes de las variables x
y
x
h
. Al
aumentar el nmero de variables, ha de aumentar tambin el nmero de coeficientes en la
funcin objetivo. Se recurre a coeficientes de valor cero c = (c, 0) para valores de
holgura.
Simulacin y Optimizacin de los Procesos Qumicos
82
2.- DEFINICIONES Y TEOREMAS BSICOS DE PROGRAMACIN LINEAL
Solucin factible:
El conjunto de oportunidades k, queda definido por la interseccin de las restricciones,
que al ser desigualdades lineales delimitan semiespacios cerrados. Por lo tanto el
conjunto de oportunidades es un conjunto convexo, al ser interseccin de conjuntos
convexos. Caso de no ser vaco recibe el nombre de politopo, y si est acotado se llama
poliedro.
Se llama solucin factible o vector admisible de un problema de programacin lineal
en forma standard a cualquier vector x que satisface las restricciones A.x = b y x
i
0. En
otras palabras, la solucin factible ha de ser una solucin que est contenida dentro del
conjunto convexo de oportunidades.
La solucin factible ptima es aquel o aquellos vectores admisibles para los que la
funcin objetivo alcanza el ptimo.
Si k es un poliedro, la solucin ptima puede ser nica (solucin de vrtice, Figura
1.1) o puede tener infinitas soluciones (solucin de arista o de cara) (Fig. 1.2)
Si k es un politopo no acotado puede tener solucin nica (Fig. 1.3), infinitas
soluciones (Fig. 1.4) o no tener solucin (Fig. 1.5)
Si k es vaco no hay solucin.
1.1 1.2 1.3
1.4 1.5
Figura 1.
Simulacin y Optimizacin de los Procesos Qumicos
83
Punto extremo
un punto F x se dice que es un punto extremo de conjunto de oportunidades F si y solo
si no puede ser expresado como:
x x x F x x x x x < < + =
2 1 2 1 2 1
1 0 , , ) 1 ( ,
Solucin bsica
Considere un problema lineal expresado en su forma estndar:
0
.
(max) min
=
=
x
b x A
x c
T
a s
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
x
x y por lo tanto: b Nx Bx Ax
N B
= + =
Se dice que una solucin es bsica si: 0 x 0; x
B N
=
Y por lo tanto: b B x
1
B
=
El vector x
B
, vector de los componentes de x asociadas a B, es el vector de variables
bsicas, (forman la solucin bsica). Mientras que el vector x
N
, vector de las
componentes de x asociadas a N y cuyo valor es cero, es el vector de variables no
bsicas.
Simulacin y Optimizacin de los Procesos Qumicos
84
Teorema I
Un punto x en un programa lineal expresado en forma
estndar es un punto extremo si y slo si es una solucin
bsica. O sea
0 x 0 x b B x
N B
1
B
= =
Demostracin:
Sea x una solucin factible bsica, y por lo tanto:
|
|
\
|
=
|
|
\
|
=
0
x
x
x
x
B
N
B
La demostracin se har por contradiccin. Si x no es un punto extremo entonces debern
existir dos puntos y y z de tal manera que:
0 z ; 0 y
0 z ; 0 y
z
z
z
y
y
y
N N
B B
N
B
N
B
|
|
\
|
=
|
|
\
|
=
x z y z y x < < + = 1 0 ) 1 (
Si el punto x es una solucin bsica entonces:
|
|
\
|
=
|
|
\
|
+
|
|
\
|
=
|
|
\
|
0
x
z
z
y
y
x
x
B
N
B
N
B
N
B
) 1 (
As pues para las variables no bsicas se cumple que:
0 z y
N N
= + ) 1 ( (recordando que 0 z ; 0 y
N N
) 0 z y
N N
= =
Por otra parte como los puntos x son factibles deben satisfacer las restricciones:
b z B y B x B
B B B
= = = y si la matriz B es invertible entonces.
Simulacin y Optimizacin de los Procesos Qumicos
85
x
B
= y
B
= z
B
Lo cual nos lleva a una contradiccin, debiendo cumplirse necesariamente que si x es
punto extremo es tambin una solucin factible bsica.
Teorema II
La solucin ptima de un problema lineal cae siempre en
un punto extremo de la regin factible F
Demostracin:
La demostracin la haremos por reduccin al absurdo. Sea x* el ptimo de un programa
lineal (sin prdida de generalidad digamos que estamos minimizando).
Supongamos que x* no es un punto extremo:, entonces:
1 0 * = > =
i
i i
i
i
i
x x
multiplicando en ambos lados por c
T
:
=
i
i T
i
T
x c x c *
Pero como adems x* es el punto ptimo entonces :
i T T
x c x c < *
Estas dos ltimas ecuaciones son contradictorias, y por lo tanto la solucin ptima x*
debe ser, necesariamente, un punto extremo.
Corolario:
Si la funcin alcanza un mnimo (mximo) en ms de un punto extremo toma el
mismo valor para cualquier combinacin lineal convexa de dichos puntos.
Simulacin y Optimizacin de los Procesos Qumicos
86
Teorema 3:
Una condicin necesaria y suficiente para que x* sea una
solucin ptima es que:
T
0 c N B c
T
N
1 T
B
Demostracin
Recordemos que el problema que estamos resolviendo es el siguiente:
0 x
b Ax
x c
T
=
=
. .
: min
a s
z
Haciendo la separacin entre variables bsicas y no bsicas:
0 x
b x N x B
x c x c
N B
N
T
N B
T
B
= +
+ =
. .
: min
a s
z
Despejando x
B
del conjunto de restricciones:
N
1 1
B N B
x N B b B x b x N x B
= = +
Sustituyendo en el problema original queda lo siguiente:
( )
0 x
b B c x N B c c x c ) x N B b B ( c
N
1 T
B N
1 T
B
T
N N
T
N N
1 1 T
B
+ = + =
. .
: min
a s
z
Las condiciones necesarias de optimalidad de Karush-Khun-Tucker de primer orden para
el problema anterior son:
0
0 x
0 N B c c
N
T T 1 T
B
T
N
>
= +
) 1 (
Simulacin y Optimizacin de los Procesos Qumicos
87
y como el multiplicador de KKT es positivo entonces necesariamente:
T
0 c N B c
T
N
1 T
B
| =
!
! !
que corresponde al nmero de vrtices).
De entre los varios mtodos propuestos para resolver este tipo de problemas destaca el
mtodo grfico, y el algoritmo simplex.
3.1.- MTODO GRFICO
El mtodo grfico consiste en obtener geomtricamente la solucin del problema de
programacin lineal. Este mtodo es recomendable slo en el caso de que el nmero de
variables sea reducido. Se precisa conocer:
(a) La representacin del conjunto de oportunidades F que viene dada por la
interseccin de los semiespacios definidos por las restricciones.
(b) La grfica de la familia de lneas de nivel definida por la funcin objetivo y el
conjunto de oportunidades. El hiperplano ha de tomar el mayor valor en la
solucin si el problema es de maximizacin y el menor si el valor es de
minimizacin.
Ejemplo: supngase un programa de maximizacin con 2 variables y 2 restricciones dado
por las ecuaciones:
Max F(x) = 4x
1
+5x
2
Simulacin y Optimizacin de los Procesos Qumicos
88
s.a 2x
1
+x
2
8
x
2
5
x
1
0, x
2
0
(0,5)
(4,0)
x 2
x 1
m=-4/5
Figura 2. Ejemplo de mtodo grfico para resolver un problema de programacin lineal
La zona oscura es el conjunto k.
solucin: punto B
3
2
5 ,
|
\
|
Simulacin y Optimizacin de los Procesos Qumicos
89
3.2.- EL ALGORITMO SIMPLEX
El algoritmo del simplex como todo algoritmo iterativo, necesita un punto de partida que
es la solucin factible bsica inicial (punto extremo inicial).
Si esta solucin no es la ptima se van generando, a travs del mtodo de clculo que se
expondr ms adelante, sucesivas soluciones bsicas, (puntos extremos) hasta determinar
cul 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 bsicas
c. Comprobar si se cumple el criterio de optimalidad
d. En caso de que la condicin c no se cumpla, eliminar una variable de la base,
que pasara a ser no bsica e introducir una nueva variable bsica seleccionada
entre las no bsicas.
Veamos de forma detallada como se lleva a cabo el procedimiento en forma de tabla: (Lo
aplicaremos a un problema de maximizacin)
El mtodo 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 funcin objetivo. Por filas, se sitan las variables bsicas
acompaadas por los cj. Los componentes de la tabla son los distintos vectores Pj que
estn en funcin de la base considerada. En una ltima columna se recogen los
componentes del vector solucin respecto de dicha base.
Simulacin y Optimizacin de los Procesos Qumicos
90
p
1
P
2
p
f
p
m
p
k
p
n
c
1
C
2
c
f
c
m
c
k
c
n
x
1
X
2
x
f
x
m
x
k
x
n
P
0
c
1
x
1
1 0 0 0 x
1k
x
1n
b
1
= x
10
c
2
x
2
0
1 0 0 x
2k
x
2n
b
2
= x
20
c
f
x
f
0
0 1 0 x
fk
x
fn
b
f
= x
f0
c
m
x
m
0 0 0 1 x
mk
x
mn
b
m
= x
m0
z
j
z
1
Z
2
z
f
z
m
z
k
z
n
F
w
j
0 0 0 0 c
k
-z
k
c
n
-z
n
A partir de aqu se han de realizar las siguientes operaciones:
1.- Calcular los elementos de la penltima fila de la tabla llamados Z
j
y cuyo valor es:
z
j
= c
1
x
1j
+c
2
x
2j
+...+c
m
x
mj
, siendo x
ij
la i-esima componente del vector P
j
, con i = 1,2,...,m.
Los Z
j
de las variables bsicas son Z
j
= c
j
.
2.- Calcular los elementos de la ltima fila de la tabla (w
j
) cuyo valor es w
j
= c
j
-Z
j
.
3.- Comprobar si todos los w
j
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 w
j
> 0, de entre ellos se elige el que toma el valor
mximo, p.e p
k
. La variable x
k
se convierte en variable bsica y se debe eliminar alguno
de los m primeros para que la base contine teniendo m.
Max :w
j
> 0` = wk criterio de entrada
5.- Para seleccionar el vector que va a salir de la base, se elige aquel que minimice la
expresin
x
x
i
ik
0
con i = 1,2,...,m donde x
ik
son las componentes del vector P
k
que es el
vector seleccionado previamente
Simulacin y Optimizacin de los Procesos Qumicos
91
Min: x
x
x
x
x
ik
i
ik
f
fk
>
|
\
| =
`
)
0
0
0
criterio de salida
Si todas las x
ik
0, no existe solucin ptima (Politopo no acotado)
6.- Se determina el elemento pivote, en nuestro caso x
fk
, interseccin de la columna del
vector que entra P
k
y la fila del vector que sale P
f
. A continuacin se lleva a cabo una
eliminacin 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 w
j
0 en cuyo caso
se ha alcanzado el ptimo.
3.2.1.- Justificacin del criterio de entrada
En una etapa cualquiera del proceso nuestra tabla queda como:
x
B1
x
B2
. x
Bm
x
N1
x
N2
.. x
Nt
b
I
B
-1
N
B
-1
b
0 N B c c
T
B
T
N
1
b B c
T
B
1
Vemos que el valor que calculamos en la tabla W corresponde al trmino N B c c
T
B
T
N
1
y por lo tanto la mejor decisin local es aquella que produce ms mejora en la funcin
objetivo es decir, la que tiene el mayor W.
3.2.2.- Justificacin del criterio de salida
La idea es eliminar una variable de la base de tal manera que la solucin siga
mantenindose positiva para todas las variables. Si tenemos:
b Nx Bx
N B
= +
Simulacin y Optimizacin de los Procesos Qumicos
92
b B x N B x
N B
1 1
= +
b x Y x
N B
= + donde b B b N B Y
1 1
= =
Que escrito para cada una de una de las variables i:
m i b x y x
i
k
Nk ik Bi
....... 1 = = +
Digamos que x
Nj
entra en la base, nosotros queremos que i x y x
Bi Nj
0 0
entonces, de la ecuacin anterior
i
y
b
x x y b x
ij
i
j N j N ij i Bi
= 0
para asegurar que esto se cumple para todas las i debemos elegir la variable que tiene una
relacin
ij
i
y
b
menor (entre aquellos con 0
ij
i
y
b
).
Veamos un ejemplo:
Planteamos el problema resuelto anteriormente por el mtodo grfico.
Max F(x) = 4x
1
+5x
2
s.a 2x
1
+x
2
8
x
2
5
x
1
0, x
2
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
Simulacin y Optimizacin de los Procesos Qumicos
93
Se selecciona la base cannica como base de partida para el algoritmo (m=z) constituida
por x
1
h
x
2
h
. Esta circunstancia hace que el vector P
0
y los vectores P
j
de las variables no
bsicas son directamente conocidos. Se puede construir as la primera tabla del algoritmo:
en las filas se sitan las variables bsicas x
1
h
y x
2
h
y en las variables del programa y el
vector P
0
que coincide con el vector de trminos independientes en esta primera tabla.
4 5 0 0
x
1
x
2
x
1
h
x
2
h
P
0
0 x
1
h
2 1 1 0 8
0 x
2
h
0 1* 0 1 5
Z
j
0 0 0 0 0
w
j
4 5 0 0
La identificacin de los vectores es bien simple
P P P P P
h h
' ; ' ; ' ; ' ;
1 2 1 2 0
2
0
1
1
1
0
0
1
8
5
=
|
\
| =
|
\
| =
|
\
| =
|
\
| =
|
\
|
w
1
0; w
2
0 luego no se ha alcanzado el ptimo. Se toma la variable x
2
al ser w
2
> w
1
.
Es decir la variable x
2
se incorpora a la base de la que debe salir alguna de las variables
bsicas precedentes x
1
h
x
2
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
1
8
5
1
5
= =
= =
+ =
x
b x A
x Q x x c
a s
f
T T
(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 simtrica.
Dado que las restricciones son lineales y presumiblemente independientes la cualificacin
de las restricciones se satisface siempre, as pues, las condiciones de Karush-Kuhn-
Tucker son tambin condiciones suficientes para obtener un extremo, que ser a dems
un mnimo global si Q es definida positiva. Si Q no es definida positiva el problema
podra no estar acotado o llevar a mnimos locales.
Simulacin y Optimizacin de los Procesos Qumicos
99
Comencemos por la funcin de Lagrange:
( ) ) (
2
1
x v b x A x Q x c x + + + =
T T T T
L (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:
aridad complement
0
0 ) (
0
0
T
T
=
=
= + +
x v
b Ax
b x A
v A x Q c
T
(3)
Si se aaden variables de holgura a la desigualdad del conjunto de ecuaciones en (3)
h h
x b x A x b Ax = = + 0 (4)
Sustituyendo la expresin anterior en la condicin de complementaridad se obtiene:
0 0 ) ( ) (
h T T
= = =
h T
x x b x A (5)
Las condiciones de Karush Kuhn- Tucker, pasando los trminos constantes a la
derecha, e incluyendo las sustituciones anteriores quedan entonces como:
Simulacin y Optimizacin de los Procesos Qumicos
100
0
complementariedad
0
T
h
T h
T
+ =
+ =
=
`
=
)
Qx A v c
Ax 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
mtodo 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
h
j
x no formen
simultneamente 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 slo si
h
j
x no forma parte de la base o si
h
j
x 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, x
h
) es una solucin del problema QP original entonces
f(x) es equivalente a:
( )
h T T
2
1
x b x c + = f (7)
La minimizacin de la funcin dada por la ecuacin (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.