métodos de puntos interiores aplicado a problemas de

Anuncio
1
Scientia et Technica Año X, No x, Mes 200x. UTP. ISSN 0122-1701
MÉTODOS DE PUNTOS INTERIORES APLICADO A PROBLEMAS DE PROGRAMACIÓN
LINEAL CON ÓPTIMOS ALTERNATIVOS
RESUMEN
En problemas de programación lineal que presentan óptimos alternativos es
posible determinar la solución más atractiva entre ellas de acuerdo a
determinadas condiciones del problema. En este documento se presenta una
propuesta de modificación al método de Puntos Interiores Primal-Dual para ser
aplicado a problemas de optimización con múltiples soluciones.
OSCAR GOMEZ CARMONA
Ingeniero Electricista
Profesor
Universidad Tecnológica de Pereira
[email protected]
ABSTRACT
LUIS ALFONSO GALLEGO.
Ingeniero Electricista
Estudiante Maestría
Universidad Tecnológica de Pereira
[email protected]
In problems of linear programming that have alternatives optimal
solutions is possible to determine the most attractive solution among
them but according to certain conditions of the problem. In this document
is presented a proposal of modification of the Primal-Dual Interior Point
Method to be applied to problems of optimization with solutions multiple.
LINA PAOLA GARCES N.
Ingeniera Electricista
Profesor
Universidad Tecnológica de Pereira
[email protected]
PALABRAS CLAVES: Direcciones de Búsqueda, Método de Barrera
Logarítmica, Óptimos Alternativos, Programación Lineal, Puntos Interiores.
KEYWORDS: Directions of Search, Method of Logarithmic Barrier,
Optimal Alternative, Linear programming, Interior Points.
1. INTRODUCCIÓN
La programación lineal es una metodología de
optimización que permite resolver problemas de la vida
real, en los cuales una función objetivo es optimizada
sujeta a un conjunto de restricciones.
Figura 1 Problemas de Programación Lineal.
Grupo
de
Investigación
en
Planeamiento de Sistemas Eléctricos
El espacio de solución del conjunto de ecuaciones
lineales simultáneas es un conjunto convexo que tiene un
número finito de puntos extremos (un punto extremo no
puede ser expresado como una combinación convexa de
otros dos puntos del conjunto).
Si S es un conjunto convexo con un número finito de
puntos extremos, entonces S es el conjunto de todas las
soluciones factibles al problema lineal. La solución
óptima del problema, así sea de maximización o
minimización, es un punto extremo de S, siempre y
cuando dicho óptimo exista [2].
Generalmente, los problemas de la vida real pueden ser
descritos a través de un modelo matemático
seleccionando adecuadamente las variables de decisión
(a cada variable de decisión está asociada una actividad),
planteando la función objetivo y todas las restricciones
del problema.
Existe también la posibilidad de que exista un óptimo que
no es un punto extremo (óptimos alternativos). En este
caso, el conjunto de soluciones óptimas es dado por el
conjunto de combinaciones convexas de los puntos
extremos del problema.
Un problema matemático es lineal (PL) si la función
objetivo f (x1 ,x2 ,...,xn) y cada restricción gi (x1, x2, ..., xn)
(i =1, 2, ... ,m) son lineales. El problema de optimización
se puede escribir como:
En problemas donde existen óptimos alternativos, es
posible determinar, de todo ese conjunto, una solución
que procure un objetivo adicional. Por ejemplo,
distribución uniforme de los recursos o agotar un recurso
para preservar otro que se tiene en menor cantidad.
f ( x1 , x2 ,..., xn )  c1  x1  c2  x2  ...  cn  xn
Sujeto a ( s.a ):
gi ( x1 , x2 ,..., xn )  ai1  x1  ai1  x2  ...  ai1  xn
donde
c j y ai j (i  1, 2,..., m; j  1, 2,..., n)
son constantes conocidas [1],[2].
Fecha de Recepción: (Letra Times New Roman de 8 puntos)
Fecha de Aceptación: Dejar en blanco
Las metodologías tradicionales, encuentran soluciones
que corresponden a puntos extremos, sin brindar la
posibilidad de explorar todo el conjunto de soluciones
óptimas. El método de puntos interiores tiene la
capacidad de obtener una solución diferente a un punto
extremo y que hace parte del conjunto de soluciones
óptimas factibles, en el caso de óptimos alternativos.
Scientia et Technica Año X, No x, Mes 200x. UTP
2
En este documento se propone una metodología para
resolver problemas de programación lineal con óptimos
alternativos, que modifica el algoritmo de Puntos
Interiores Primal Dual, permitiendo obtener soluciones
óptimas que satisfagan objetivos adicionales.
2. METODO DE PUNTOS INTERIORES
Durante décadas el método simplex ha sido el método de
solución de los problemas de programación lineal. Sin
embargo, desde el punto de vista teórico, el tiempo de
cálculo
requerido
por
este
método
crece
exponencialmente con el tamaño del problema.
Muchos investigadores han tratado de desarrollar
algoritmos cuyos tiempos de cálculo tuviesen un
crecimiento polinomial con el tamaño del problema. En
1984, Karmarkar propuso un algoritmo cuya complejidad
computacional es polinomial y que resultó altamente
competitivo frente al método simplex para resolver
problemas de programación lineal de gran tamaño.
El algoritmo de Karmarkar originó multitud de trabajos
alrededor de su idea, la cual ha sido mejorada en muchos
aspectos. Una de las más fructíferas variantes es el
algoritmo de barrera logarítmica Primal-Dual. [3]
1. Calcular un punto inicial.
 Vector primal:
0
x   xˆ donde :
b 2 1
Axˆ 2  1

y
xˆ j 
min cT x
s.a
Ax  b
x0
Aj

 si c j  1,
z 
caso contrario,


0
1
0
zj 1
0
zj  cj
2. Calcular el parámetro de barrera y hacer k = 0.
0
 
0 T 0
(x ) z
n
3. Verificar convergencia.
k
Ax  b
 Factibilidad primal:
 Factibilidad dual:
1 x
k
f
T k
k
A y  z c
1 y
k
 Condición de optimalidad:
donde x es el vector de variables primales y su problema
dual estándar en función del vector de variables duales y,
incluyendo el vector de variables de holgura z es:
2
 Vector dual.
2.1 Método de Barrera Logarítmica Primal-Dual
Este método resuelve el problema de PL primal estándar:
1
 z
k
f
T k
T k
c x b y
T k
1 b y
 o
donde f es el error de factibilidad y o es el error de
optimalidad.
min bT y
s.a
En caso de que los criterios de convergencia se cumplan
pare.
AT y  z  c
z0
4. Calcular los errores para el punto actual.
Se utiliza la función de barrera logarítmica para penalizar
las restricciones de desigualdad z ≥ 0.
n
max bT y   k  ln zi
i 1
s.a
AT y  z  c
donde k es el parámetro de barrera en la iteración k y
debe ser disminuido a cero durante el proceso iterativo.
El algoritmo general de solución es el siguiente: [4]
k
T k
k
rp  c  A y  z
k
k
rd  b  Ax
k
k
T k
rc   e  X Z e
donde :
X  diag [ x1 x2 ... xn ]
Z  diag [ z1 z 2 ... z n ]
T
e  [1 1 ... 1]
Scientia et Technica Año X, No x, Mes 200x. U.T.P
5. Obtener las direcciones de búsqueda.
k
k
k
k
x  xctr  xobj  x fac
k
k 1 k 1 k
 Direccion central xctr   Dk P Dk ( X )e
k
1 k 1
 Direccion objetivo xobj  Dk P Dk c
k
2 T
2 T 1 k
 Direccion factible x fac  Dk A ( ADk A ) rp
k
2 T 1
2 k
k 1 k
k
y  ( ADk A ) [ ADk rd  A( Z ) rc  rp ]
z
k
k
T k
 rd  A y
donde
k
1 T
2 T 1
1
P  I  Dk A ( ADk A ) ADk
1 k
2
Dk  z k
x
 
6. Calcular los tamaños de los pasos para las variables
primal y dual.

  xik




k
 p  min 1, min k  k : i  1, ..., n 
xi 0  x



 i


k
d

  zik


 min 1, min k
:

zi 0  z k

 i



i  1, ..., n 



7. Actualizar las variables Primal y Dual:
x k 1  x k   kp x k
y k 1  y k   dk y k
z k 1  z k   dk z k
donde 0.95    0.99995
8. Reducir el parámetro de barrera:
 k 1   k
k T
(z ) x
n
k
3
3. APLICACIÓN DE LOS MÉTODOS DE
SOLUCIÓN DE PL A PROBLEMAS CON
ÓPTIMOS ALTERNATIVOS.
Entre los métodos tradicionales para resolver problemas
de programación lineal el más utilizado es el método
simplex y sus variantes. Cuando se solucionan problemas
de PL por medio del método Simplex, la solución
encontrada es un punto extremo, siempre y cuando exista
el óptimo.
El método de Puntos Interiores aunque es una técnica
nueva, ha dado buenos resultados, tanto así, que en los
últimos tiempos se ha incrementado el estudio de este
método.
La solución que encuentra este método en problemas con
óptimos alternativos, puede ser un punto extremo o un
punto dentro del conjunto de soluciones óptimas
dependiendo del punto inicial. Normalmente la solución
encontrada es un punto diferente al extremo.
3.1 Ejemplo
Para exponer las diferentes soluciones que se tienen
cuando se aplican los métodos anteriores a problemas con
óptimos alternativos, se planteará el siguiente ejemplo:
Una empresa fabrica 2 tipos de fertilizantes, llamados
fertilizantes A y B. Se emplean 3 tipos de materia prima
en la preparación de estos fertilizantes como se muestra a
continuación [1]:
Tabla 1. Datos del ejemplo.
Materia
prima
1
2
3
Lucro por
tonelada
Toneladas de materia
prima
necesarias para
preparar 1 tonelada de
Fertilizantes Fertilizantes
tipo A
tipo B
2
1
1
1
1
0
$ 20
Cantidad mensual
máxima de materia
prima disponible
Toneladas
1500
1200
500
$ 10
El modelo matemático de este problema es:
max z ( x )  20 x1  10 x2
s.a
2 x1  x2  1500
(1)
x1  x2  1200
(2)
x1
 500
(3)
donde n es el número de variables primales.
x1  0 ; x2  0
9. Volver al paso 3.
La representación gráfica del espacio de soluciones se
muestra en la fig. 2.
____________________________
1. Las notas de pie de página deberán estar en la página donde se citan. Letra Times New Roman de 8 puntos
Scientia et Technica Año X, No x, Mes 200x. UTP
4
Se puede observar que el método de puntos interiores da
la posibilidad de tener respuestas diferentes a los vértices
del problema donde las restricciones se encuentran
activas implicando el consumo total de los recursos.
Cuando un problema de programación lineal es resuelto
por el método simplex, la solución es un vértice del
conjunto factible de soluciones. Esto implica que las
restricciones que forman ese vértice están activas (su
relación es de igualdad). Para el caso del ejemplo
mostrado, las soluciones posibles encontradas con el
método simplex, podrían ser:
Figura 2 Espacio de soluciones.
El segmento de recta resaltado es el conjunto de
soluciones óptimas del problema, es decir todos los
puntos sobre este segmento tienen el mismo valor para la
función objetivo.
La solución x* del problema por el método Simplex, es:
z ( x )  15000
x1  500
x2  500
Esta solución corresponde al vértice resaltado en la fig. 2.
La solución del problema usando el método de Puntos
Interiores Barrera Logarítmica Primal-Dual es:
z ( x )  15000
x1  396.2926
x2  707.4144
La fig. 3 muestra el punto inicial calculado por el
algoritmo y el camino seguido hasta encontrar el óptimo
del problema.
Nótese que la solución no corresponde a un punto
extremo del conjunto de soluciones.
a. x1  500 ; x2  500
b. x1  300 ; x2  900
La solución (a) corresponde al caso donde las
restricciones (1) y (3) se encuentran activas, es decir, la
cantidad mensual de materia prima disponible 1 y 3
(Tabla 1) se agotan totalmente. En la solución (b) las
restricciones (1) y (2) se encuentran activas, es decir, la
cantidad mensual de materia prima 1 y 2 se agotan
totalmente.
De lo anterior se puede concluir que la materia prima 1 es
indispensable y debe gastarse totalmente. Las materias
primas 2 y 3 pueden ser manejadas de tal manera que se
utilice una y se conserve la otra, o viceversa.
Se pretende por lo tanto, modificar el algoritmo de
Puntos Interiores de Barrera Logarítmica Primal-Dual
con el fin de que la respuesta obtenida persiga un
objetivo adicional al de obtener el óptimo del problema.
Este objetivo adicional está directamente relacionado con
las restricciones del problema, puesto que si existen
óptimos alternativos, se pueden introducir elementos
adicionales que permitan manipular de forma adecuada
los recursos asociados a cada una de dichas restricciones.
4. MODIFICACIÓN AL ALGORITMO DE
PUNTOS
INTERIORES
BARRERA
LOGARÍTMICA
PRIMAL-DUAL
PARA
PROBLEMAS CON ÓPTIMOS ALTERNATIVOS.
En el algoritmo mostrado en la sección 2.1 se observa
que la dirección de búsqueda del método está dado por:
k
k
k
k
x  xctr  xobj  x fac
k
2 T 1
2 k
k 1 k
k
y  ( ADk A ) [ ADk rd  A( Z ) rc  rp ]
z
Figura 3 Solución mediante puntos interiores.
k
k
T k
 rd  A y
Scientia et Technica Año X, No x, Mes 200x. U.T.P
Donde ∆y y ∆z son las direcciones de búsqueda dual. ∆x
es la dirección de búsqueda primal y esta compuesta por
tres componentes: ∆xctr dirección central, ∆xobj dirección
objetivo y ∆xfac dirección factible. Esta dirección de
búsqueda nos permite obtener una variación directa sobre
la solución del problema primal.
Las direcciones central y factible tienen como objetivo
encontrar un punto factible cerca del centro del politope
primal, estas direcciones inicialmente son predominantes
debido a que los parámetros μ y rp son grandes.
Cuando se encuentra un punto factible, rp tiende a cero y
la dirección objetivo es la que domina.
Debido a que el punto inicial dado en el algoritmo se
encuentra normalmente en la región factible, la dirección
objetivo predomina desde el inicio del proceso de
búsqueda, por lo tanto, se propone modificar dicha
dirección de tal forma que persiga un segundo objetivo
dado por las restricciones.
La modificación en dicha dirección está directamente
relacionada con los gradientes de las restricciones que se
pretenden favorecer; por tanto la dirección objetivo
tendrá la siguiente forma:
5
En este, los recursos de las restricción 1 fueron agotados
debido a que sobre esta recta se encuentra el espacio de
soluciones, en cuanto a las restricciones 2 y 3, cuentan
con recursos debido a que la solución obtenida no activa
dichas restricciones.
Se pretende repartir los recursos de las restricciones 2 y 3
de tal forma que la solución siga siendo óptima.
Caso 1: Conservar una buena cantidad de la materia
prima 2, y a la vez, mantener disponible en bajo
porcentaje la materia prima 3. La dirección positiva del
gradiente de la restricción 2 indica gastar recursos
mientras que el gradiente negativo implica ahorro de
dicho recurso. La proporción que se desee conservar está
sujeto a otro tipo de restricciones que pueden ser
adicionadas al problema.
Para este caso solo se utilizará información de la
restricción 2. Se fijará el factor K igual a 0.6 que indica
una contribución del 60% del parámetro de barrera sobre
la dirección de ajuste. Este valor debe ser sintonizado de
acuerdo al objetivo que se persigue.
k
1 k 1
xobj  Dk P Dk c   Ki  Ri
i
donde:
i : es el numero de restricciones que se incluirán para el
ajuste de la dirección objetivo.
Ki : es un factor entre cero y uno, que indica el porcentaje
de contribución del parámetro de barrera.
μ : es el parámetro de barrera, debe incluirse debido a
Figura 4 Ejemplo de aplicación caso 1.
que la dirección dada por el gradiente debe disminuir
durante el proceso.
z ( x )  14997.54
Ri : Es el gradiente de las restricciones que se
pretenden favorecer.
4.1 Ejemplo de aplicación
Se aplicará la metodología expuesta al ejemplo tratado en
la sección 3.1. Para realizar la comparación se parte del
resultado mostrado en la fig. 3.
z ( x )  15000
x1  396.2926
x2  707.4144
x1  479.9680
x2  539.8185
Caso 2: Conservar una buena cantidad de la materia
prima 3, y a la vez, mantener disponible en bajo
porcentaje la materia prima 2. La dirección del gradiente
de la restricción 3 indica gastar recursos mientras que el
gradiente negativo implica ahorro de dicho recurso.
Para este ejemplo se incluirá información de ambas
restricciones ( 2 , 3 ) para ver el comportamiento de la
dirección de búsqueda. Se fijará el factor K1 en 0.6 y K2
en 1 para los porcentajes de contribución del parámetro
de barrera sobre la dirección de ajuste.
____________________________
1. Las notas de pie de página deberán estar en la página donde se citan. Letra Times New Roman de 8 puntos
6
Scientia et Technica Año X, No x, Mes 200x. UTP
El gradiente de las restricciones del problema que acotan
el espacio de soluciones, permiten ajustar de manera
directa la dirección objetivo del vector de búsqueda
primal, de tal forma que considerando aspectos
adicionales al problema se obtenga una solución
igualmente óptima.
Para modificar la dirección objetivo de búsqueda primal,
es necesario multiplicar por el valor de k a los
gradientes de las restricciones por que en el punto de
solución k será cero y no se afectaran las condiciones de
optimalidad.
Figura 5 Ejemplo de aplicación caso 2.
z ( x )  15000
x1  339.2772
x2  821.4303
Lo anterior muestra que si se considera el gradiente de las
restricciones que acotan el espacio de soluciones, de tal
forma que contribuyan al cambio de la dirección
objetivo, se obtendrá una convergencia más exacta del
método.
5. CONCLUSIONES Y RECOMENDACIONES
Algunos problemas de Programación Lineal tienen la
característica de tener más de una solución óptima. Esta
propiedad puede ser utilizada con la finalidad de escoger
entre ese número infinito de soluciones una que sea
mejor que las otras respecto a un propósito adicional.
El método de Puntos Interiores obtiene soluciones
diferentes a los puntos extremos cuando existen óptimos
alternativos, esta propiedad me permite explorar una
infinidad de posibles soluciones a las cuales no tenia
acceso mediante las metodologías tradicionales.
El método de Puntos Interiores Primal-Dual presenta la
particularidad que siempre intenta encontrar un punto
factible del problema que se encuentra ubicado en el
centro del politope y desde allí realiza una búsqueda del
óptimo actualizando las variables del problema. Este
comportamiento permite que sea posible desarrollar
algoritmos que mejoren el proceso de búsqueda ya sea
para volverlo más eficiente o que tenga un objetivo
adicional.
Una modificación posible en el algoritmo consiste en la
variación de la dirección objetivo del vector de búsqueda
primal, pues durante el proceso de evolución del
algoritmo predomina sobre las direcciones central y
factible.
La contribución del parámetro de barrera en la
modificación de dicha dirección, debe sintonizarse de
acuerdo al problema, de forma que al momento de
modificar la dirección de búsqueda solo experimente
regiones que correspondan a la del problema original.
BIBLIOGRAFÍA
[1] GALLEGO, Ramón A., Escobar Antonio H., Romero
Rubén A. Optimización en Sistemas Eléctricos I.
Programación Lineal, Primera edición, Universidad
Tecnológica de Pereira, Pereira, 2003.
[2] BRONSON, Richard. Investigación de Operaciones,
Mc Graw Hill, México 1996.
[3] CASTILLO, Enrique, Conejo Antonio, Pedregal
Pablo,
García
Ricardo,
Alguacil
Natalia.
Formulación y Resolución de Modelos de
Programación Matemática en Ingeniería y Ciencia.
Febrero, 2002.
[4] RIDER, Marcos J. Método de Puntos Interiores para
Optimización en Sistemas de Potencia. Universidad
Tecnológica de Pereira, Pereira 2004.
[5] S.J. WRIGHT, Primal-Dual Interior Point Methods.
SIAM, Philadelphia, PA, 1997.
[6] S. MEHROTRA, “On the implementation of a
primal-dual interior point method”, SIAM Journal on
optimization, 1992.
[7] C.C. GONZAGA, “Path following methods for linear
programming”, SIAM Review, vol 34, 1992.
[8] QUINTANA, V.H., Torres G.L. and Medina Palomo
J., “Interior point methods and their applications to
power systems: A classification of publications and
software codes”, IEEE transactions Power Systems,
vol 15, No. 1, Febrero 2000.
Descargar