SciELO - Scientific Electronic Library Online

 
vol.28 issue5Strategic Direction: Projection of Technological Innovation and Administrative Management in Small EnterprisesMultiobjective Linear Programming Model for Reverse Logistics in the Polypropylene Plastics Industry author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Información tecnológica

On-line version ISSN 0718-0764

Inf. tecnol. vol.28 no.5 La Serena  2017

http://dx.doi.org/10.4067/S0718-07642017000500004 

 

Determinación de un Punto de Inicio en Algoritmos de Punto Interior en la Solución de Problemas de Programación Lineal

 

Determination of a Starting Point in Interior Point Algorithms for solving Linear Programming Problems

 

Oscar Y. Buitrago* y Andrés L. Ramírez

Universidad Militar Nueva Granada, Facultad de Ingeniería, Carrera 11 No. 101-80, Bogotá, Colombia. (e-mail: oscar.buitrago@unimilitar.edu.co; andres1729@yahoo.com)

*Autor a quien debe dirigirse la correspondencia.


Resumen

Se presenta un estudio para encontrar un punto interior en la región factible de problemas de programación lineal, un aspecto que debe ser resuelto en la etapa inicial de la implementación de los algoritmos de punto interior empleados para optimizarlos. Para este fin, se propone un procedimiento que parte de una formulación que no requiere adicionar variables de holgura ni de exceso, solamente involucra una variable adicional para generar un poliedro en un nuevo espacio ampliado y que con proyecciones sencillas encuentra un punto interior en el mismo. Se demuestra que la solución óptima del problema de programación lineal ampliado permite obtener un punto factible del problema original o concluir que el mismo no tiene soluciones factibles.

Palabras clave: programación lineal; poliedro; optimización; proyecciones ortogonales; algoritmo de punto interior


Abstract

This paper presents a study done to find an interior point in the feasible region of linear programming problems is an aspect that should be solved in the initial stage of the implementation of the interior point algorithms used to optimize them. Consequently, it is proposed a methodology that starts with a formulation that does not require adding surplus or slack variables. It only includes an additional variable to generate a polyhedron in a new expanded space and with simple projections finds an interior point in the same polyhedron. It is demonstrated that the optimal solution of the extended linear programming problem allows obtaining a feasible point of the original problem or concluding that it has no feasible solutions.

Keywords: linear programming; polyhedron; optimization; orthogonal projections; interior point algorithm


 

INTRODUCCIÓN

Desde la publicación del método Simplex (Dantzig, 1951), la investigación en métodos de solución de los problemas de programación lineal (PL) ha sido prolífica. En esta área los métodos de solución se pueden clasificar de forma gruesa en; Algoritmos de frontera (Simplex y sus variantes) y algoritmos de punto interior (con sus variantes proyectivas, de escalado afín y de trayectoria de avance), McShane et al., (1989). Actualmente, y dada la importancia de la programación lineal, se siguen realizando propuestas tanto en métodos de solución de problemas de PL, Mehendale (2015) como de aplicación (inclusive del método Simplex, Anaut et al., (2005)), entre las que se cuentan la de Lauinger (2016) sobre sistemas energéticos residenciales y la de Willis y Stosch, (2017) pertinente a regresiones dispersas (con pocos valores). En el contexto de la toma de decisiones multi criterio se encuentran dos aplicaciones interesantes en las que se solucionan problemas PL; la de Ghaderi, Ruiz y Agell (2017) quienes rompen el supuesto de relaciones monótonas entre los atributos de entrada y las preferencias del decisor y la realizada por Wang y Chen (2017) en la que se utilizan conjunto difusos valorados por intervalos y LP para obtener los pesos de los atributos considerados.

Al igual que en el método Simplex, en los algoritmos de punto interior un aspecto importante y necesario es el requerimiento de un punto inicial para empezar a iterar. Sin embargo, no en todas las propuestas de este tipo de algoritmos se describe cómo obtener un punto interior (suponen que ya se cuenta con uno), como ocurre, por ejemplo, en el trabajo de (Mehendale, 2013), quien describe variaciones de procedimientos proyectivo en los que ya se dispone de un punto de partida.

En otros algoritmos, tener un punto de inicio no es una labor trivial puesto que se requiere transformar el problema de PL para adaptarlo al procedimiento especifico propuesto, tal como en el caso del algoritmo de Karmarkar (Karmarkar, 1984) y su mejora propuesta por Vanderbei, et al. (1986). En su algoritmo primal dual de punto interior McShane, et al. (1989), dedican una sección a la obtención de un punto de partida para el problema transformado, sin embrago para ello requieren de un punto interior del problema original. También es cierto que existen versiones de algoritmos en los que se dispone de rutinas para encontrar un punto interior de inicio de forma relativamente sencilla, como el algoritmo primal-dual de punto interior (Mehrotra, 1992) y el de escalado afín (Eiselt y Sandblom, 1985). En este último se puede recurrir al método de la gran M o al de las dos fases, pero utilizando solamente una variable artificial (De la Fuente, 1998). No obstante, se requiere que la formulación del problema PL se haga en forma estándar (expresando las restricciones como igualdades), agregando las variables de holgura y de exceso correspondientes.

Aunque en la actualidad se cuenta con técnicas basadas en la inteligencia artificial y con procedimientos meta heurísticos (algoritmos genéticos, búsqueda tabú, recocido simulado entre otros), su aplicación en la obtención de un punto de inicio en problemas PL, terminaría convirtiéndose en una búsqueda aleatoria por la gran cantidad de posibilidades existentes (en un algoritmo de frontera aplicado a un PL de m restricciones y n variables, el número de puntos extremos está acotado por mC). Esto y la ausencia de una forma unificada para tener un punto inicial, llevan a que en este trabajo se proponga un algoritmo sencillo para la obtención de un punto interior en el poliedro definido por las restricciones del problema PL, en el que se tiene como ventajas; no tener que incorporar variables de holgura y de exceso, solo requerir la incorporación de una variable extra (independientemente del tamaño del PL) y no tener que invertir matrices (operación computacionalmente costosa). Adicionalmente se brinda una interpretación geométrica del procedimiento, ilustrada con un ejemplo de aplicación.

METODOLOGÍA PROPUESTA

Se inicia definiendo el problema PL al que se le quiere encontrar un punto interior y se le denomina como problema original. Posteriormente a este se le incorpora una variable (no se requieren variables ni de exceso ni de holgura), se modifican las restricciones y se define una nueva función objetivo, al nuevo problema PL así obtenido se le denomina problema ampliado. Se finaliza con la descripción de cálculos para obtener un punto interior en el problema ampliado y como a partir de este tener un punto interior del problema original.

Problema original

Los poliedros que definen la región factible de un problema PL tienen la forma Ax =/= b. Dado que una restricción = se puede expresar como = y viceversa, sin pérdida de generalidad se expresa un problema de programación lineal de la forma mostrada en (1).

Maximizar (minimizar): z = dx, sujeto a: Ax = b; x = 0   (1)

Donde d ∈ Rn, x ∈ Rn, b ∈ Rm y A ∈ Rmxn. Expresando las restricciones en función de las filas de A, la j-esima restricción se simboliza como se indica en (2):

fjx < bj   (2)

Si en (2) se emplea el signo de igualdad, se tiene la ecuación del respectivo hiperplano. En general, la j-esima restricción del tipo mostrado en (2) se puede expandir como se indica en (3).

   (3)

Las restricciones de (1) se deben expresar de tal forma que el lado derecho (bj) no sea negativo. Para cada igualdad existente, se debe despejar de la misma alguna variable elegida arbitrariamente y sustituirla en las restantes restricciones. De esta forma, el poliedro estará definido solamente por desigualdades.

Obtención del problema PL ampliado

Inicialmente se modifica el conjunto de las restricciones que conforman el poliedro, pasándolas del espacio Rn a Rn+1. Para ello, se adiciona la variable xn+1 y la j-esima restricción mostrada en (3) se transforma en la restricción ampliada, tal y como se indica en (4).

(4)

Siendo pj un número estrictamente positivo. En esta propuesta se toma como el promedio de los valores absolutos de los coeficientes de la correspondiente fila.

En cuanto a la función objetivo del problema ampliado, se busca minimizar el valor de la variable xn+1. Sin embargo, para poder hacer proyecciones en la dirección del gradiente, la función objetivo se expresa como (5).

Maximizar: - xn+1   (5)

Se tiene entonces que el problema PL que se debe solucionar para encontrar el punto de inicio, es el que se presenta en (6).

Maximizar: - xn+1, sujeto a: Ax + p xn+1 ≤ b; x ≥ 0   (6)

En (6) p es un vector columna cuyos m componentes son los valores pj obtenidos de la forma indicada en (4).

Si (6) tiene solución óptima [x*, -x*n+1] con valor de función objetivo -x*n+1 ≥ 0, entonces se cumple el conjunto de ecuaciones (4) y se concluye que x* es un punto factible de (1).

Por otra parte, si la solución óptima de (6) es -x*n+1< 0, entonces el problema original (1) no es factible. Este hecho se demuestra por contradicción.

Demostración: Suponga que existe un vector x > 0 que es un punto factible de (1). Entonces se debe cumplir Ax ≤ b y además [x, 0] es solución de (6), con valor de función objetivo 0x - 0* xn+1 = 0 > -x*n+1. Puesto que 0 > -x*n+1, entonces se concluye que -x*n+1 no es la solución óptima de (6) y por lo tanto no existe un x factible para (1).

Procedimiento de solución

Se parte de cualquier punto P = [P1' P2',..., Pn'] en Rn.

A partir de P' se obtiene un vector ampliado Po en Rn+1, cuya componente n+1 vale 0. Es decir, Po = [P1' P2',..., Pn' 0 ].

Se obtiene el vector d = [0 0 0.0 1] ∈ Rn+1, que es inverso del gradiente de (6).

Desde Po se proyecta el vector [0 0 0.0 1] ∈ Rn+1 hasta encontrar la intersección con el hiperplano de (4) más alejado.

Ramírez, et al. (2012), indican que para encontrar la intersección de un vector d (proyectado desde Po) con un hiperplano de la forma (2), se calcula el parámetro tj de acuerdo con (7).

(7)

Dicho valor se sustituye en la ecuación paramétrica Po + dtj y el resultado es un vector con las coordenadas de la intersección.

Al componente de esta intersección que se encuentre en la posición n+1, se le denomina Q.

Se toma como vector de inicio Po = 0. De esta forma y sabiendo que d = [0 0 0...0 1] e Rn+1 y fj = [aaj2...aji...ajn Pj], se puede calcular Q fácilmente de acuerdo con (8).

(8)

Es de notar que Q = [0 0 0.0, Q] e Rn+1 es un punto sobre la frontera de (6) porque es el resultado de sustituir tj de la ecuación (8) en Po + dtj.

Definir el punto Ps = [0 0 0.0, Q + 0] en el espacio ampliado Rn+1. Tomando 0 > 0, Ps corresponde a un punto interior de (6).

Ya se dispone de un punto interior para el problema PL (6), por lo tanto este se puede solucionar por algún método de punto interior disponible. Los primeros n componentes de la solución óptima que se encuentre corresponden a un punto interior para (1) como ya se demostró.

Utilizando la propuesta de Ramírez, et al. (2012), se proyecta d = [0 0 0.0 -1] ∈ Rn+1 desde el punto Ps y se "desciende" por el poliedro hasta alcanzar el valor óptimo con valor objetivo de cero o negativo. Puede ocurrir que de entrada Po sea un punto interior de (1), en cuyo caso se puede iniciar el proceso de optimización con el algoritmo deseado.

RESULTADOS

Para ilustrar la metodología propuesta, se recurre a su aplicación en un caso. Considérese el poliedro definido en el plano R2 por las restricciones indicadas en (9).

(9)

El poliedro (9) graficado en el plano R2 se muestra en la Fig.1 (a). Como inicialmente el interés es encontrar un punto interior del poliedro dado, no es necesario definir una función objetivo.

La primera etapa es agregar la variable adicional x3, obteniéndose el problema PL (10).

(10)

El coeficiente de pj en cada restricción se calcula como el promedio del valor absoluto de los coeficientes de la misma y el signo se asigna de acuerdo con (4). Eligiendo arbitrariamente como inicio en R2 el punto [0 0], al agregar 0 en la posición n+1 se genera Po = [0 0 0] que se toma como punto de partida en el espacio ampliado R3.

Proyectando en la dirección [0 0 1 ] y aplicando (8) para todas las restricciones, se llega a Q = max {-8/1; -3/1; -6/2.5; -3/0.5; 7/1.5 } = 14/3. Agregando 0 > 0, se obtiene el punto interior en el espacio ampliado Ps = [0 0 14/3+ 0], para este ejemplo θ = 2.

La Fig. 1 (b) corresponde al poliedro en el espacio ampliado (visto desde arriba) y permite interpretar geométricamente la adición de la variable x3. Rodeada de los hiperplanos en R3 correspondientes a las restricciones (cada uno en color diferente) y ubicada sobre el hiperplano x3 = 0, se encuentra la región factible original. Esta se puede interpretar como un polígono (en R2 para este caso) a partir de cuyas aristas se generan planos inclinados hacia afuera, formando un poliedro abierto (o una especie de un cono truncado) en R3. Las inclinaciones de los hiperplanos están dadas por los coeficientes de x3 aplicando las expresiones (4).

Para la solución del ejemplo, se toma arbitrariamente como Po el origen, Fig. 1 (b), y a partir de allí se proyecta en la dirección [0 0 1]. Aplicando (8) se encuentra el punto Q mostrado en la Fig. 1 (b), ubicado sobre el hiperplano generado con R5. Avanzando más en la misma dirección se llega al punto Ps, que es factible e interior para el problema ampliado (10).

Una vez obtenido Ps, se puede recurrir a cualquier procedimiento de punto interior para encontrar la solución óptima.

Fig. 1: Región factible en R2 (a) y región factible en el espacio ampliado con la variable adicional x3 (b)

En la Fig. 2 se muestra el recorrido en la obtención de un punto interior para el ejemplo presentado. Una vez obtenido el punto Ps, se procede a maximizar -x3, quedando establecido como gradiente de la función objetivo d = [0 0 -1]. Aplicando (7) a todas las restricciones se toma el t menor, que como es de esperarse en la primera iteración da t = θ = 2, y que corresponde al punto Q = [0 0 14/3] ubicado en el hiperplano asociado a la restricción R5 en el espacio ampliado. Proyectando desde allí el vector [0.447 0.894 0] se llega a F = [38/9 76/9 14/3], punto ubicado sobre R1.

Fig. 2: Secuencia para encontrar el punto interior en el problema original

Para hacer la siguiente proyección se calcula el punto medio entre Q y F, al cual se le denomina Pm y tiene coordenadas [19/9 38/9 14/3]. Proyectando desde allí d, aplicando (7) para todas las restricciones y tomando el menor t, se llega a O* = [19/9 38/9 0]. Como este punto tiene componente n+1 (x3 para este ejemplo) igual a cero se termina el procedimiento.

Eliminando la última componente de O* se obtiene [19/9 38/9]. Puesto que en el procedimiento no se cambian los lados derechos (vector b) ni los sentidos de las desigualdades, es evidente que el punto encontrado en R2 cumple las restricciones (9). De esta manera, se cumple el propósito de ilustrar la metodología propuesta ya que se dispone de un punto interior de partida para iniciar la solución de cualquier problema PL cuyas restricciones estén dadas por el poliedro (9).

DISCUSIÓN

Una gran ventaja de la metodología propuesta es que para un problema PL dado con n variables, se puede partir de cualquier punto P' en Rn. Esto se explica porque con respecto a un punto elegido arbitrariamente se tienen solamente dos posibilidades; pertenece al poliedro generado por las restricciones o está por fuera del mismo. En el primer caso, ya se dispone de un punto factible y no es necesario continuar con la propuesta presentada. En la segunda situación, agregando a P' un cero en la posición n+1 se genera el punto P0 en Rn+1 que sirve como punto de partida de las proyecciones constitutivas de la propuesta. Como se demostró, finalmente se llega a un punto en Rn que es factible para el problema PL original o se concluye que el mismo no tiene solución.

En cuanto a la comparación con otros métodos, la propuesta presentada involucra pasos realmente sencillos y requiere solamente de una variable adicional, independientemente del número de variables y restricciones que tenga originalmente el problema PL al que se le quiere encontrar un punto interior.

Para ilustrar, si se aplica el método simplex para solucionar el problema PL (9), independientemente de la función objetivo se requiere hallar un punto de inicio y para ello se puede recurrir al método de las dos fases (tal y como está presentado en Luenberger y Ye, 2008). Inicialmente es necesario incluir las variables de exceso y de holgura correspondientes para expresar el problema PL en forma de igualdades como se presenta en (11).

(11)

La fase uno (que es en la que se encuentra un punto de partida y por ende es la que se compara con la metodología propuesta) requiere de dos variables artificiales (x3 y x4) y solucionar el problema PL (12).

(12)

Es decir, la aplicación del método de las dos fases (en el método simplex) para encontrar una solución inicial de (9) requiere de tres variables de holgura (h1, h2, h3), dos de exceso (e1, e2) y dos variables (x3, x4). En total se adicionan siete variables y la función objetivo consta de la suma de dos de ellas. En términos generales, al aplicar el método simplex es necesario incorporar una variable de holgura por cada desigualdad de tipo ≤, una variable de exceso y una artificial por cada desigualdad ≥ y una variable artificial por cada igualdad. En la propuesta presentada, solamente es necesaria una variable extra independientemente del tamaño del problema o del tipo de desigualdades involucradas.

CONCLUSIONES

De acuerdo al estudio realizado y la propuesta desarrollada en este trabajo, se pueden obtener las siguientes conclusiones principales:

1. - Se presentó una propuesta basada en cálculos sencillos para encontrar un punto interior en poliedros que conforman la región factible de problemas de programación lineal. La gran ventaja del enfoque propuesto es que no se requieren variables de holgura ni de exceso y que la formulación original del problema PL solamente se amplía en una variable.

2. - Se demostró la generalidad del método, pues si el problema ampliado en una variable tiene solución tal que xn+1 ≤ 0, al quitar la última componente de la misma se obtiene un punto factible del problema PL original. Si en la solución óptima del problema ampliado xn+1> 0, entonces el problema PL original no es factible.

3. - Se mostró una interpretación geométrica de cómo funciona el algoritmo mediante una situación de aplicación en la que se busca un punto interior de una región factible en R2. Para ello se genera otra región factible en R3 en la que al aplicar la propuesta fácilmente se obtiene un punto interior. Al hacer proyecciones en dirección contraria al eje x3, descendiendo sobre las paredes del poliedro generado se llega al plano x3 = 0 o a uno paralelo ubicado debajo de este y las dos primeras componentes de esta solución constituyen un punto interior del problema original en R2. La interpretación de este ejemplo permite abstraer cómo funciona la propuesta en problemas más grandes imposibles de graficar.

AGRADECIMIENTOS

Este estudio es producto derivado del proyecto de investigación INV-ING-2105 financiado por la Vicerrectoría de Investigaciones de la Universidad Militar Nueva Granada (Colombia), vigencia 2016.

REFERENCIAS

Anaut, D.O., Di Mauro, G.F., Suárez, J.A. y Di Mauro, R.R., Configuración Óptima de Redes de Distribución Primaria. Método Simplex, Revista Información Tecnológica, 17(1), 85-92 (2005)        [ Links ]

Dantzig, G.B., Activity Analysis of Production and Allocation, (Ed. Koopmans, T. C.), Cowles Commission for Research in Economics, 339-347 (1951)        [ Links ]

De la Fuente, J.,Técnicas de Cálculo para Sistemas de Ecuaciones, Programación Lineal y Programación Entera, 2nd Ed., Barcelona, Reverté (1998)        [ Links ]

Eiselt, H. y Sandblom, C.L., External Pivoting in the Simplex Algorithm. Statistica Neerlandica, DOI: 10.1111/j.1467-9574.1985.tb01152.x, Rev 39(4), 327-341 (1985)        [ Links ]

Ghaderi, M., Ruiz, F., y Agell, N., A linear programming approach for learning non-monotonic additive value functions in multiple criteria decision aiding, doi:10.1016/j.ejor.2016.11.038259, European Journal of Operational Research, 259(3), 1073-1084 (2017)        [ Links ]

Karmarkar, N., A new polynomial-time algorithm for linear programming, Combinatorica 4, 373-395 (1984)        [ Links ]

Lauinger, D., Caliandro, P., Van herle J. y Kuhn, D., A linear programming approach to the optimization of residential energy systems, J. Energy Storage, 7, 24-37 (2016)        [ Links ]

Luenberger, D.G. y Ye, Y., Linear and Nonlinear Programming, 3a Ed., 50, Springer, New York, E.E.U.U. (2008)        [ Links ]

McShane, K., Monma, C. y Shano, D., An Implementation of a Primal Dual Interior Point Method for Linear Programming, Operation Research Society of America, 1(2), 70-83 (1989)        [ Links ]

Mehendale, D.P., A New Algorithm for Linear Programming. Data Structures and Algorithms, Retrieved from http://rxiv.org/abs/1301.0117, 1-40 (2013)        [ Links ]

Mehendale, D.P., A New Algorithm for Linear Programming, Cornell University Library, Retrieved from http://arxiv.org/abs/math/0604171, arXiv:math/0604171v3 [math.GM], 1-53 (2015)        [ Links ]

Mehrotra, S., On the Implementation of a Primal-Dual Interior Point Method. SIAM Journal on Optimization, 2(4), 575-601 (1992)        [ Links ]

Ramírez, A., Buitrago, O., Britto, R. y Fedossova, A., A new algorithm for solving linear programming problems, Ingeniería E Investigación, 32(2), 68-73 (2012)        [ Links ]

Vanderbei, R., Meketon, M. y Freedman, B., A modification of Karmarkar's Linear Programming Algorithm, Algorithmica, 1, 395-407 (1986)        [ Links ]

Wang, C. y Chen, S., Multiple attribute decision making based on interval-valued intuitionistic fuzzy sets, linear programming methodology and the extended TOPSIS method., doi: 10.1016/j.ins.2017.02.045, Information Sciences, 397-398, 155-167 (2017)        [ Links ]

Willis, M.J. y Stosch, M.V, L0-constrained regression using mixed integer linear programming. doi: 10.1016/j.chemolab.2016.12.016, Chemometrics and Intelligent Laboratory Systems, 165, 29-37 (2017)        [ Links ]

Recibido Mar. 6, 2017; Aceptado May. 9, 2017; Versión final Jun. 15, 2017, Publicado Oct. 2017

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License