Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Facultad de Matematicas
Universidad de Murcia
Comparativa de subrutinas para la
resolucion de problemas de optimizacion no
lineales enteros mixtos
Ana Belen Marın Valverde
Dirigido por: Jose Fernandez Hernandez
Curso 2015/16
Declaracion de originalidad
ANA BELEN MARIN VALVERDE, autora del TFG Comparativa de
subrutinas para la resolucion de problemas de optimizacion no lineales ente-
ros mixtos, bajo la tutela del profesor JOSE FERNANDEZ HERNANDEZ,
declara que el trabajo que presenta es original, en el sentido de que se ha
puesto el mayor empeno en citar debidamente todas las fuentes utilizadas.
En Murcia, a 5 de septiembre de 2016.
Resumen
El presente Trabajo Fin de Grado, Comparativa de subrutinas para la resolucion de pro-
blemas no lineales enteros mixtos, tiene como objetivo realizar una comparacion de los
distintos solvers que existen para la resolucion de problemas de programacion no lineal
entera mixta (PNLEM).
Para alcanzar nuestro objetivo, hemos estudiado y resuelto 46 problemas test obtenidos
de la coleccion de Sven Leyffer [17] y del libro de Floudas [10], ademas de un problema
aplicado de localizacion presentado en [14].
El trabajo consta de siete capıtulos y un anexo, en el que se incluira la formulacion de
los problemas test resueltos.
El primer capıtulo, Introduccion, esta dividido en dos apartados: el primero de ellos
plantea los objetivos de la memoria, mientras que el segundo presenta el concepto de
problemas de PNLEM, es decir, aquellos problemas de optimizacion que contienen fun-
ciones no lineales y variables enteras y continuas. Este tipo de problemas tiene numerosas
aplicaciones en ambitos tan dispares como el diseno de redes, la ingenierıa quımica o la
industria del papel, por citar algunos.
Sin embargo, tal y como indica Belotti en [2], los PNLEMs son problemas NP-duros
(su resolucion puede resultar muy complicada), por lo que se han desarrollado una serie de
tecnicas que facilitan su resolucion: la linealizacion de funciones no lineales, la construccion
de relajaciones de integridad, convexas y no convexas, y la imposicion de restricciones que
eliminen soluciones factibles de una relajacion pero no del problema original.
Una vez conocidos los principales conceptos y tecnicas utilizadas, en el segundo capıtulo
presentaremos los algoritmos para la resolucion de PNLEMs, dividiendolos en dos tipos
segun la complejidad en la resolucion del tipo de problema que abordan: algoritmos que
resuelven problemas convexos y algoritmos que resuelven no convexos (mas complejos que
los primeros).
En el apartado dedicado a los algoritmos utilizados para los PNLEM convexos, estudia-
mos primero metodos deterministas en general, y luego formas de generar planos de cor-
te, cuya inclusion en los metodos deterministas puede ayudar a acelerar su convergencia.
El metodo determinista mas destacado es el algoritmo de Ramificacion y Acotacion
No Lineal, que sera explicado junto con las estrategias seguidas para la ramificacion
y el descarte de nodos, obtenidas todas ellas del documento de Belotti [2] mencionado
anteriormente. El resto de algoritmos incluidos en este apartado son el metodo de las
Aproximaciones Exteriores, cuyo funcionamiento se basa en alternar la resolucion de
problemas no lineales continuos (PNL) y la resolucion de las relajaciones de un problema
master de programacion lineal entera mixta (PLEM); la Descomposicion Generali-
zada de Benders, que sigue un proceso similar al del algoritmo anterior, cambiando
unicamente el problema master; el metodo de los Planos de Corte Extendidos, que
sigue tambien un proceso similar al del metodo de las aproximaciones exteriores, aunque
sin resolver subproblemas no lineales, y por ultimo, el algoritmo de Ramificacion y Aco-
tacion Basado en PL/PNL, que es una extension del metodo de las aproximaciones
exteriores en la que no se resuelven problemas master de PLEM.
Por otro lado, dentro de los metodos de planos de corte, encontramos los cortes de
redondeo entero mixto, cuyo objetivo es reforzar, mediante cortes, las relajaciones que
se resuelven en el algoritmo de ramificacion y acotacion basada en PL/PNL; los cortes de
perspectiva, que consisten en la reformulacion de la restriccion xj ≤ ujxi con xi ∈ {0, 1}cuando aparece en una restriccion convexa y no lineal; y planos de corte disyuntivos,
usados en el algoritmo de ramificacion y corte para problemas no lineales con variables
continuas y binarias.
En la segunda seccion de este capıtulo, la referida a los metodos para PNLEMs no
convexos, empezaremos con la explicacion de algunos conceptos utilizados por la mayorıa
de estos algoritmos: bajo y sobre-estimadores, funciones separables y ramificacion espa-
cial. El metodo mas importante de este apartado sera el algoritmo de ramificacion y
acotacion espacial, del que ademas de especificar los pasos que sigue, detallaremos al-
gunas de las tecnicas de las que hace uso en cada uno de los pasos, como son la relajacion
de funciones factorizables, el ajuste de cotas basado en la factibilidad y el ajuste de cotas
basado en la optimalidad.
Por ultimo, para concluir este capıtulo, en la tercera seccion hablaremos sobre los
metodos heurısticos, utilizados para resolver problemas que, debido a su tamano, no pue-
den ser resueltos con ninguno de los metodos tratados en los dos apartados anteriores. En
esta parte, diferenciaremos entre heurısticos de busqueda y heurısticos de mejora. En el
primer grupo encontraremos el redondeo basado en PLEM, que busca una solucion
entera aproximada a partir de una solucion factible de la relajacion continua del PNLEM
original; la bomba de factibilidad, que resuelve problemas de PNL y PLEM para ob-
tener una solucion aproximada del PNLEM; y los heurısticos de buceo, que utilizan el
arbol de ramificacion y acotacion para buscar un camino que vaya desde la raız hasta una
hoja del arbol, obteniendo soluciones factibles que seran cotas superiores del PNLEM.
Por otro lado, entre los heurısticos de mejora, encontramos la ramificacion local, uti-
lizada para PNLEMs en los que las variables enteras son binarias; y la busqueda por
entornos inducida por relajaciones, que fija las variables de la relajacion lineal que
tienen el mismo valor que en la solucion incumbente.
Una vez tratados todos los algoritmos, en el tercer capıtulo pasaremos a hablar sobre
los solvers que existen para la resolucion de PNLEMs, haciendo uso principalmente de
los artıculos de Bussieck y Vigerske [5] y D’Ambrosio y Lodi [7]. Los solvers que aparecen
en el desarrollo de este capıtulo son: alphaECP, ANTIGONE, AOA, BARON, BONMIN,
COUENNE, DICOPT, FilMint, Knitro, LaGO, LindoAPI, Local Solver, MIDACO, MI-
LANO, Minopt, MINOTAUR, SBB y SCIP, de los que especificaremos su autor o autores,
el lenguaje de modelizacion desde el que pueden ser invocados, principalmente AMPL y
GAMS, si tienen licencia gratuita y el sitio web en el que esta disponible para descargar.
Ademas, para cada solver, explicaremos los algoritmos que utiliza para la resolucion de
los problemas, si resuelve solo PNLEMs convexos o tambien no convexos, y si se puede
llamar desde el servidor NEOS.
Para comenzar con la parte practica, en el cuarto capıtulo presentaremos los problemas
test que seran resueltos y, para cada uno de ellos, especificaremos su numero de variables,
cuantas de ellas son enteras, su numero de restricciones, si es o no convexo y, si se conoce,
su solucion optima. Ademas, en el anexo mostraremos explıcitamente la formulacion de
cada problema test y haremos referencia a los distintos ficheros de datos disponibles para
cada problema.
Continuaremos, en el capıtulo 5, con la presentacion de los estudios computacionales
que nos permitiran realizar una comparativa entre los solvers con licencia gratuita y
disponibles para AMPL: BARON, BONMIN, COUENNE, Knitro, LaGO y Local Solver.
Resolveremos primero todos los problemas con un lımite de tiempo de treinta minutos y,
posteriormente, fijaremos un lımite de seis horas para analizar las soluciones obtenidas y el
tiempo que cada solver ha requerido para resolver los problemas. En el analisis realizado,
haremos una distincion entre problemas convexos y no convexos, presentando la media de
los tiempos de ejecucion de cada solver y el porcentaje de problemas de cada tipo que ha
sido capaz de resolver antes de alcanzar el lımite de tiempo.
Para finalizar la parte practica del trabajo, en el capıtulo 6 realizaremos un estudio
computacional para un problema de localizacion, presentado en [14], en el que una cadena
desea invertir en una zona donde ya existen instalaciones que ofrecen los mismos servicios,
con el objetivo de maximizar sus beneficios. Tras enunciar el problema, expondremos
la formulacion del mismo y los datos que utilizaremos para su resolucion. Por ultimo,
mostraremos las soluciones y tiempos de ejecucion obtenidos con los distintos solvers y
las analizaremos de manera analoga a la seguida en el capıtulo anterior.
Para concluir este trabajo, en el septimo capıtulo expondremos las principales conclu-
siones obtenidas del mismo.
Abstract
The present work, A comparison of mixed integer nonlinear programming solvers, aims
to make a comparison among different existing solvers for the resolution of mixed integer
nonlinear programming problems (MINLP).
In order to achieve our goal, we have studied and solved 46 test problems, which
have been extracted from Sven Leyyfer’s collection [17], Floudas’ book [10], as well as an
applied problem about facility location introduced in [14].
The work consists of seven chapters and one appendix, including the formulation of
test problems.
The first chapter, “Introduction”, is divided into two sections: the first one will set
out the paper’s objectives and the second one will introduce the definition of MINLP
problems, that is, problems which have non-linear functions and continuous and integer
variables. These type of problems are applied in many areas, such as chemical engineering,
network design or paper industry, among others.
However, as Belotti point out in [2], MINLPs are NP-hard (their resolution may be
really complicated). For that reason, a series of techniques have been developed to make
them easier to solve: linearization of nonlinear functions, convex and nonconvex relaxa-
tions and constraint enforcement, to remove solutions that are feasible in a relaxation but
infeasible in the original MINLP.
Once the main notions have been explained, the second chapter will introduce the
algorithms to solve MINLPs, dividing them into two main groups: algorithms to solve
convex MINLPs and algorithms to solve nonconvex MINLPs (which are more complex
than convex problems).
In the first section, devoted to methods for convex MINLP, general deterministic met-
hods are studied first, and then we follow with methods to generate cutting planes, which
may help to accelerate the convergence of the deterministic methods. The most known
deterministic method is the Nonlinear Branch and Bound algorithm and in the sec-
tion on this method the branching and pruning rules, according to Belotti in [2], will be
explained.
The rest of algorithms that will be deal with in this section are the Outer Aproxi-
mation method, which is based on solving alternately nonlinear problems (NLP) and
relaxations of a mixed integer linear programming (MILP) master problem; the Gene-
ralized Benders decomposition, which follows the same steps that the last one, but
changing the master problem; the Extending cutting planes method, that is also si-
milar to the outer approximation, but it doesn’t solve nonlinear problems; and finally, the
LP/NLP-based branch and bound, which is an extension of the outer approximation
method but without solving MILP master problems.
On the other hand, cutting planes methods include Mixed-Integer Rounding Cuts,
whose goal is strengthening, using cuts, the relaxations that are solved in NLP/LP-
based branch and bound; perspective cuts, based on the reformulation of constraint
xj ≤ ujxi, xi ∈ {0, 1} when it appears in a nonconvex and nonlinear constraint; and
disjunctive cutting planes, used by branch and cut algorithms in nonlinear problems
with continuous and binary variables.
In the second section of this chapter, Methods for nonconvex MINLPs, we will start
with the explanation of some concepts used by this type of methods: under/over unders-
timators, separable functions and spatial branching. The most important method of this
section is the Spatial branch and bound algorithm. We will detail their steps and so-
me techniques used by the algorithm in each step, such as factorable function relaxations
and optimality and feasibility based bound tightening.
Finally, we conclude this chapter talking about heuristic methods. Heuristics are used
to solve problems too large for the previous methods. In this section, we distinguish
between search and improvement heuristics.
The first ones include MILP-based rounding, which look for a solution of the
MINLP using a feasible solution of the continuous relaxation; feasibility pump, that
solves NLPs and MILPs to get a solution to the original MINLP; diving heuristics,
which use that branch and bound tree to look for a path between the root and one leaf,
obtaining feasible solutions that will be upper bounds of the MINLP.
On the other hand, among improvement heuristics, we find the local branching,
for MINLPs where all integer variables are binary, and RINS (Relaxation-Induced
Neighborhood Search), in which variables with the same value in the linear relaxation
and incumbent solution are fixed.
After having studied the algorithms for MINLPs, the third chapter will deal with the
existing solvers for that kind of problems, using mainly Bussieck and Vigerske [5] and
D’Ambrosio and Lodi [7] papers. Studied solvers are the following: alphaECP, ANTI-
GONE, AOA, BARON, BONMIN, COUENNE, DICOPT, FilMint, Knitro, LaGO, Lin-
doAPI, Local Solver, MIDACO, MILANO, Minopt, MINOTAUR, SBB y SCIP, and for
each one we will show their authors, modeling languages that can called it, where AMPL
and GAMS are the most noted, whether it has free license, the web site where it can be
downloaded and whether it is possible to called it from Neos server. Furthermore, we will
detailed the algorithms implemented in each solver, and whether the solver can solve only
convex, or also nonconvex MINLPs.
To start with the applied part of the project, the fourth chapter will introduce the test
problems which will be solved and, for each one of them, we will exposed their number
of variables, how may of them are integer, the number of constraints, whether they are
convex or nonconvex, and, if available, their optimal solution. Besides, the appendix will
show each problem formulation and different data files available for them.
In chapter 5, the computational studies to make a comparison among the free license
solvers that can be called from AMPL will be carried out. Those solvers are BARON,
BONMIN, COUENNE, Knitro, LaGO and Local Solver. First of all, we will solve the
46 test problems with a time limit of thirty minutes. Right after that, we will set a six
hours limit to analyse the solutions obtained and the time required to solve the problems.
Likewise, it should be stressed that, in our analysis, we will distinguish between convex
and nonconvex problems, showing the average execution times of each solver and the
percentage of problems solved before reaching the time limit.
To conclude the applied part, the sixth chapter will show a computational study for a
location problem introduced in [14], where a company wishes to invest in a place where
other facilities of the same nature are already present, in order to maximise its profit. After
formulating this problem, we will present the data used to solve it. Lastly, we will show
solutions and execution times obtained from the above-mentioned solvers, by following
the same methodology of analysis used in chapter five.
To conclude this paper, the main conclusions that can be drawn from it will be high-
lighted in chapter 7.
Indice general
1. Introduccion 3
1.1. Objetivo de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Nociones basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Metodos para la resolucion de PNLEM 9
2.1. PNLEM convexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1. Metodos deterministas generales . . . . . . . . . . . . . . . . . . . . 9
2.1.2. Planos de corte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2. PNLEM no convexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1. Algoritmo de ramificacion y acotacion espacial . . . . . . . . . . . . 23
2.2.2. Relajacion de funciones factorizables . . . . . . . . . . . . . . . . . 24
2.2.3. Ajuste de cotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.4. Ramificacion espacial . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3. Metodos heurısticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1. Heurısticos de busqueda . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2. Heurısticos de mejora . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3. Solvers para PNLEM 33
4. Problemas test 41
5. Estudios computacionales 43
5.1. Soluciones y tiempo computacional . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1. Resultados con tiempo lımite 30 minutos . . . . . . . . . . . . . . . 43
5.1.2. Resultados con tiempo lımite 6 horas . . . . . . . . . . . . . . . . . 43
5.2. Analisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6. Estudio para un problema de localizacion 51
6.1. Enunciado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.2. Formulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.3. Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1
INDICE GENERAL INDICE GENERAL
7. Conclusiones 59
A. Formulacion de los problemas test 61
A.1. BATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
A.2. C-RELOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
A.3. C-RELOAD-Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
A.4. C-SCHED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
A.5. FEEDLOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
A.6. GEARTRAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.7. LBTI-00 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.8. LBTI-01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.9. MITTELMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A.10.OPTPRLOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
A.11.SHALE-GAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
A.12.SPACE 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
A.13.SPACE 25 R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.14.SPRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.15.STOCKCYCLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.16.SYNTHES 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
A.17.SYNTHES 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
A.18.SYNTHES 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
A.19.TRIMLOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.20.TRIMLOSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.21.WIND-FAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.22.T-12-23-p1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.23.T-12-23-p2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.24.T-12-23-p3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.25.T-12-23-p4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
A.26.T-12-23-p5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
A.27.T-12-23-p6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
2
Capıtulo 1
Introduccion
1.1. Objetivo de la memoria
El objetivo principal de este Trabajo Fin de Grado es realizar una comparativa entre
los distintos solvers que existen para la resolucion de problemas de programacion no lineal
entera mixta (PNLEM). Este es el tipo de problemas de optimizacion mas difıcil de resol-
ver. Resulta por ello conveniente saber cual de los solvers existentes en la actualidad es el
mas indicado para resolver uno de tales problemas. Para lograr nuestra meta nos propone-
mos: (i) obtener las soluciones de 46 problemas test con diferentes solvers y compararlas
entre ellas y, siempre que sea posible, con la solucion optima del problema, (ii) obtener el
tiempo de ejecucion que cada solver ha requerido para resolver cada problema y buscar
ası el mas eficiente, (iii) a modo de aplicacion, resolver un problema de localizacion de
programacion no lineal entera mixta con los mismos solvers, para intentar confirmar las
conclusiones anteriores con un ejemplo concreto.
Sin embargo, antes de intentar abordar nuestros objetivos, debemos aportar una ex-
plicacion teorica de los algoritmos y tecnicas que se utilizaran, por lo que comenzamos el
siguiente apartado introduciendo las nociones basicas que serviran para el entendimiento
de dicha teorıa.
1.2. Nociones basicas
La programacion no lineal entera mixta (PNLEM) hace referencia a los problemas de
optimizacion en los que aparecen variables continuas y discretas y la funcion objetivo y/o
las restricciones vienen dadas por funciones no lineales. Las variables enteras son necesarias
para modelizar relaciones logicas, cargos fijos, funciones lineales a trozos, recursos que no
se pueden dividir, . . . . Por otro lado, las variables continuas son necesarias para modelizar
propiedades fısicas, covarianzas, economıas de escala, etc.
La forma general de un problema PNLEM es la siguiente:
3
CAPITULO 1. INTRODUCCION 1.2. NOCIONES BASICAS
min f(x)
s.a. c(x) ≤ 0
x ∈ X
xi ∈ Z,∀i ∈ I
(P-PNLEM)
donde f : Rn −→ R es la funcion objetivo y c : Rn −→ Rm es una funcion m-vectorial
que define las restricciones del problema. Se suele suponer que f, c ∈ C 2. X ⊆ Rn es el
espacio de busqueda inicial, habitualmente un conjunto poliedrico y acotado, que junto
con las restricciones define el conjunto factible del problema. I ⊆ {1, . . . , n} es el conjunto
de las variables enteras.
La PNLEM cuenta con una gran cantidad de aplicaciones en diversos campos, como la
ingenierıa quımica y el diseno de redes. Algunas de estas aplicaciones, tal y como indican
Lee y Leyffer [16], son el diseno de plantas quımicas, el diseno de redes con restricciones
para el retraso en las colas, la seguridad en los sistemas de distribucion de agua potable, la
minimizacion del impacto medioambiental de plantas contaminantes, o el diseno y control
integrado de procesos quımicos. En general, los problemas de PNLEM son difıciles de
resolver, pues combinan las dificultades de los problemas de optimizacion entera con las
dificultades que se presentan al tener funciones no lineales.
Antes de continuar, recordamos algunos casos particulares de PNLEM. Ası,
min f(x)
s.a. c(x) ≤ 0
es un problema de programacion lineal (PL) si f : Rn → R y c : Rn → Rm son funciones
lineales. Por su parte,
min f(x)
s.a. c(x) ≤ b
xi ∈ Z, ∀i ∈ I
es un problema de programacion lineal entera mixta (PLEM) si f : Rn → R y c : Rn → Rm
son funciones lineales, e I es el conjunto de ındices de las variables que deben ser enteras.
Un problema
min f(x)
s.a. c(x) ≤ 0
x ∈ X
se dice no lineal (PNL) si f : Rn → R y/o c : Rn → Rm son funciones no lineales.
Siguiendo con la dificultad que presentan los PNLEMs, observamos que si restringimos
el problema a uno de programacion lineal entera mixta, es NP-duro, y de la misma forma,
si lo restringimos a uno de programacion no lineal, tambien es NP-duro. Por tanto, el
4
CAPITULO 1. INTRODUCCION 1.2. NOCIONES BASICAS
problema PNLEM es tambien NP-duro.
Antes de continuar con algunas tecnicas utilizadas para enfrentarse a la complejidad
que presentan los PNLEMs, especificamos la notacion que se empleara a lo largo del
trabajo, extraıda del artıculo de Belotti [2].
Por un lado, llamaremos x(k) al valor de la variable x en la iteracion k y f (k) a la
evaluacion de la funcion objetivo en el punto x(k). Por otro lado, para el conjunto de
ındices J ⊂ {1, ..., n}, denotamos por xJ a las componentes de x correspondientes a J ,
siendo xI las variables enteras.
Otro concepto que aparecera a lo largo del trabajo es el de envolvente convexa, que se
define como sigue:
Definicion 1.1. Dado un conjunto S, se define la envolvente convexa de S, y se denota
por conv(S), a conv(S) = {x | x = λy + (1− λ)z, para algunos y, z ∈ S}.
En el desarrollo del trabajo diferenciaremos a menudo entre PNLEMs convexos y no
convexos, quedando definidos de la siguiente manera:
Definicion 1.2. El problema (P-PNLEM) se dice que es convexo si las funciones f y c
son convexas. En otro caso, se dice que el problema es no convexo.
Tanto los PNLEMs convexos como los no convexos son NP-duros; sin embargo, los
primeros son mas faciles de resolver, teorica y practicamente. El motivo de esta diferencia
se basa principalmente en la relajacion continua (obtenida al eliminar la restriccion de
integridad) de ambos tipos de problemas. La relajacion continua de un problema convexo
sigue siendo convexa y, por tanto, manejable, al menos, en teorıa. Sin embargo, la rela-
jacion continua de un PNLEM no convexo es en sı un problema de optimizacion global
(con optimos locales que no son globales) que, probablemente siga siendo NP-duro [4].
A pesar de las diferencias entre la complejidad de los PNLEMs convexos y la de los
no convexos, existe una serie de tecnicas para abordarlos y simplificar su complejidad,
en la medida de lo posible: la linealizacion, la construccion de relajaciones, utilizadas
para conseguir un conjunto factible mas grande pero mas manejable, y la imposicion de
restricciones, para eliminar soluciones factibles de una relajacion pero no del PNLEM
original.
Linealizacion. Si la funcion objetivo del (P-PNLEM) es no lineal, se introduce una
variable auxiliar y la funcion objetivo se convierte en una restriccion. De esta forma,
5
CAPITULO 1. INTRODUCCION 1.2. NOCIONES BASICAS
(P-PNLEM) se transformarıa en:
min µ
s.a. f(x) ≤ µ
c(x) ≤ 0
x ∈ X
xi ∈ Z,∀i ∈ I
(P-PL)
Construccion de relajaciones
• Relajacion de la integridad. Se relajan las restricciones xi ∈ Z, sustituyendolas
por xi ∈ R ∀i ∈ I. Se obtiene con esta tecnica un problema no lineal de la
forma:min f(x)
s.a. c(x) ≤ 0
x ∈ X
(P-PNL)
• Relajacion de restricciones convexas. Las restricciones c(x) ≤ 0 y f(x) ≤ µ
del problema (P-PL) pueden relajarse mediante un conjunto de hiperplanos de
apoyo. Las desigualdades:
f(x) +∇f(x)T (x− x) ≤ f(x)
c(x) +∇c(x)T (x− x) ≤ c(x)(1.1)
son validas para todo x ∈ Rn si f y c son convexas, y como f(x) ≤ µ y c(x) ≤ 0,
las desigualdades:
f(x) +∇f(x)T (x− x) ≤ µ
c(x) +∇c(x)T (x− x) ≤ 0(1.2)
denominadas hiperplanos de apoyo de f y c en x, son validas para (P-PL).
• Relajacion de restricciones no convexas. Para relajar las restricciones f(x) ≤ µ
y c(x) ≤ 0 cuando f y c no son convexas, primero se derivan los bajoestimadores
convexos f(x) y c(x), siendo f y c funciones convexas que satisfacen f(x) ≤ f(x)
y c(x) ≤ c(x) ∀x ∈ conv(X). Despues, se relajan las restricciones f(x) ≤ µ y
c(x) ≤ 0 reemplazandolas por f(x) ≤ µ y c(x) ≤ 0.
Imposicion de restricciones. Existen dos estrategias de este tipo: por un lado,
el refinamiento de la relajacion y, por otro, la ramificacion.
• Refinamiento de la relajacion. El objetivo de esta tecnica es que toda solucion
x de una relajacion que se infactible del problema original, no vuelva a ser
factible de la relajacion del problema. Esto se consigue anadiendo una nueva
6
CAPITULO 1. INTRODUCCION 1.2. NOCIONES BASICAS
desigualdad valida a la relajacion, que eliminara x a no ser que esta satisfaga
las restricciones no lineales, c(x) ≤ 0.
• Ramificacion. Consiste en dividir la region factible en subconjuntos de forma
que cada solucion de (P-PNLEM) sea factible, idealmente, solo en uno de ellos.
Al relajar la integridad, puede imponerse ramificando en una variable entera
xi, i ∈ I, que toma un valor fraccional. Al ramificar se crean dos relajaciones
nuevas: una anadiendo la restriccion xi ≤ bxic y, otra anadiendo xi ≥ dxie.
7
CAPITULO 1. INTRODUCCION 1.2. NOCIONES BASICAS
8
Capıtulo 2
Metodos para la resolucion de
PNLEM
En este capıtulo explicaremos los algoritmos mas comunes para la resolucion de PN-
LEM que usan los solvers que veremos mas adelante.
Debido a la diferencia que existe entre la complejidad de los PNLEM convexos y la de
los no convexos, vista en el capıtulo anterior, dividimos los metodos en dos tipos: los que
solo resuelven PNLEMs convexos y los que tambien resuelven no convexos.
2.1. PNLEM convexos
El objetivo de los algoritmos para la resolucion de PNLEM convexos es la busqueda
y posterior mejora de cotas para el valor optimo del problema. Para la obtencion de
cotas inferiores se resuelve una relajacion del PNLEM, mientras que las cotas superiores
se obtienen a partir del valor de una solucion factible del PNLEM. Las tecnicas que la
mayorıa de los algoritmos utilizan son las explicadas en el capıtulo anterior: linealizacion
y resolucion de subproblemas obtenidos al relajar la integridad.
Siguiendo con la clasificacion presentada por Belotti en [2] para los algoritmos de
PNLEM convexos, veremos primero metodos deterministas generales, entre los que destaca
el algoritmo de ramificacion y acotacion no lineal, y despues metodos de planos de corte,
que utilizados dentro de los algoritmos deterministas generales pueden ayudar a acelerar
su convergencia.
2.1.1. Metodos deterministas generales
Para la explicacion de los metodos deterministas para PNLEMs convexos, tenemos en
cuenta las siguientes suposiciones:
S1. X es un conjunto poliedrico.
9
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
S2. Las funciones f y c son convexas y de clase C2.
S3. El problema (P-PNLEM) satisface una cualificacion de las restricciones1 para
cada punto de su conjunto factible.
La cualificacion de las restricciones en un punto x factible de (P-PNLEM) es una
suposicion que asegura la similitud entre el conjunto factible definido por las restricciones
del problema y su aproximacion linealizada en un entorno de x. Las cualificaciones de
las restricciones son condiciones suficientes para que la aproximacion lineal sea adecuada.
Una de las mas utilizadas es la cualificacion por independencia, que se definen como sigue:
Definicion 2.1. Sea x un punto factible, y K := {k : ck(x) = 0} el conjunto de las res-
tricciones activas en x. Se dice que el problema verifica la cualificacion de las restricciones
por independencia en x si los vectores ∇ck(x), k ∈ K, son linealmente independientes.
2.1.1.1. Algoritmo de ramificacion y acotacion no lineal
El algoritmo de ramificacion y acotacion es un metodo del tipo divide y venceras.
Fue utilizado por primera vez para resolver problemas de PLEM por Land y Doig [15],
aunque mas tarde, Dakin probo en [6] que la linealidad no era necesaria para el correcto
funcionamiento del algoritmo y Gupta y Ravindran propusieron en [13] su implementacion
para problemas convexos de PNLEM.
El algoritmo de ramificacion y acotacion no lineal resuelve la relajacion no lineal de
(P-PNLEM); si la relajacion no lineal es infactible, entonces el problema tambien es
infactible, mientras que si tiene solucion entera, esta sera tambien la solucion de (P-
PNLEM). Por otro lado, si el algoritmo encuentra una solucion factible pero no entera,
empieza la busqueda en un arbol cuyos nodos se correspondan con subproblemas PNL y
cuyas aristas reflejen las decisiones de ramificacion.
Definicion 2.2. Un nodo del arbol del algoritmo de ramificacion y acotacion para la
resolucion de (P-PNLEM) viene definido por un conjunto de cotas (l, u) para las variables
enteras, y se corresponde con el siguiente PNL:
min f(x)
s.a. c(x) ≤ 0
x ∈ X,
li ≤ xi ≤ ui ∀i ∈ I
(PNL(l, u))
El algoritmo de ramificacion y acotacion no lineal sigue unas reglas determinadas para
la acotacion y la eliminacion de nodos (vease [2]):
1La cualificacion que se debe satisfacer no se especifica, simplemente hay que asegurar la existenciade multiplicadores de Lagrange y la convergencia de los solvers de PNL.
10
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
Ramificacion. Si el problema (PNL(l, u)) tiene solucion factible pero no entera, en-
tonces ramificamos en una variable entera que tome valor fraccional. Supongamos
que la variable elegida es x′i /∈ Z, i ∈ I. Al ramificar se introducen dos nuevos nodos
de PNL, que se consideraran los nodos hijos de (PNL(l, u)). Inicializamos entonces
las cotas para los dos nuevos problemas como: (l−, u−) := (l, u) y (l+, u+) := (l, u) y
modificamos la cota correspondiente para la variable en la que estamos ramificando:
u−i := bx′ic l+i := dx′ie
Los dos problemas resultantes se definen como (PNL(l−, u−)) y (PNL(l+, u+)).
Descarte. Sea u∗ una cota superior del valor optimo de (P-PNLEM).
• Nodos infactibles. Si un nodo es infactible, todos sus subproblemas van a ser
tambien infactibles, luego podemos eliminarlo.
• Nodos enteros factibles. Sea x(l,u) una solucion entera de (PNL(l, u)). Si se
cumple f(x(l,u)) < u∗, entonces actualizamos la mejor solucion a x∗ = x(l,u)
y u∗ = f(x(l,u)). En otro caso, es decir, si f(x(u,l)) ≥ u∗, la solucion estara
dominada por u∗ y podemos descartar el nodo.
• Nodos dominados. De forma analoga a la anterior, si x′ es una solucion opti-
ma de (PNL(l, u)) y f(x′) ≥ u∗, podemos descartar el nodo porque ningun
subproblema suyo mejorara la mejor solucion actual.
Ası pues, el algoritmo completo queda de la siguiente forma:
Algoritmo 1: Ramificacion y acotacion no lineal
1 Tomar una tolerancia ε > 0, u∗ =∞, H = ∅.2 Hacer H = H ∪ {PNL(−∞,∞)}.3 Mientras H 6= ∅4 Eliminar un problema (PNL(l, u)) de H: H = H− {(PNL(l, u))}.5 Resolver (PNL(l, u)). Sea x(l,u) su solucion.
6 Si PNL(l, u) es infactible entonces
7 eliminar el nodo;
8 en otro caso si f(x(l,u)) ≥ u∗ entonces
9 Eliminar el nodo porque esta dominado por la cota superior;
10 en otro caso si xi ∈ Z para todo i ∈ I entonces
11 Actualizar la solucion incumbente: u∗ = f(x(l,u)), x∗ = x(l,u);
12 en otro caso
13 Seleccionar una variable xi 6∈ Z, i ∈ I.
14 Ramificar en dicha variable (x(l,u)i , l, u,H), segun el algoritmo 2.
11
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
Algoritmo 2: Subrutina. Ramificacion en la variable (x(l,u)i , l, u,H)
1 Sea l− = l, u−i = bx(l,u)i c, u−j = uj ∀j 6= i, l+i = dx(l,u)
i e, l+j = lj ∀j 6= i, u+ = u.
2 Anadir (PNL(l−, u−)) y (PNL(l+, u+)) a H:
H = H ∪ {(PNL(l−, u−)), (PNL(l+, u+))}
Una vez sabidos todos los pasos del algoritmo comentamos las tecnicas utilizadas para
elegir en que variable ramificar (paso 13 del algoritmo 1) y que nodo elegir (paso 4 del
citado algoritmo), obtenidas del artıculo [2].
Estrategias de seleccion de la variable en la que se ramifica. Para minimizar
el tamano del arbool del problema es importante elegir bien que variable se va a
ramificar y, para ello, la mejor tecnica es seleccionar la variable que maximice el
incremento de la cota inferior. Denotemos por Ic ⊂ I el conjunto de variables en las
que se puede ramificar en un nodo del arbol de ramificacion y acotacion.
La opcion mas sencilla para seleccionar la variable es elegir aquella que mas viole la
restriccion de integridad, arg maxi∈Ic{mın{xi − bxic, dxie − xi}}.
Sin embargo, la estrategia mas util es estimar el cambio que habra en la cota inferior
tras la ramificacion. El objetivo es, como hemos dicho antes, incrementar el valor
de la cota inferior lo maximo posible. Para cada variable xi con i ∈ Ic denotaremos
por D+i (respectivamente D−i ) el incremento de la cota inferior despues de ramificar
en xi redondeando hacia arriba (respec. hacia abajo). Una opcion razonable serıa
elegir la variable para la que tanto D+i como D−i sean grandes. D+
i y D−i se suelen
combinar en la formula
si := µmın{D+i , D
−i }+ (1− µ) max{D+
i , D−i }, µ ∈ [0, 1]
para calcular una puntuacion para cada variable en la que se puede ramificar y se
elige aquella con mayor puntuacion, arg maxi∈Ic{si}. µ es un parametro prefijado
con un valor normalmente proximo a 1.
Para estimar D+i y D−i , podemos utilizar los siguientes metodos:
• Ramificacion fuerte.
Dada la solucion del nodo (PNL(l, u)), f (l,u), se crean dos ramas provisionales,
(PNLi(l−, u−)) y (PNLi(l
+, u+)), para cada variable fraccional xi, i ∈ Ic, y se
resuelven. Si ambos son infactibles, se puede eliminar el nodo padre PNL(l, u);
si uno de ellos es infactible para algun ındice i, entonces se puede ajustar el
rango de dicha variable entera en el nodo padre y se vuelve a resolver. En caso
de que las dos ramas sean factibles, dados f+i y f−i , los valores objetivo de
12
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
(PNLi(l−, u−)) y (PNLi(l
+, u+)) respectivamente, se toma:
D+i = f+
i − f (l,u), D−i = f−i − f (l,u).
• Ramificacion con pseudocostes.
Esta tecnica tiene en cuenta los resultados de las ramificaciones anteriores en
cada variable, y calcula D+i y D−i haciendo un promedio de los incrementos
obtenidos. Sean n+i , n
−i ∀i ∈ I el numero de veces que se ha ramificado respecto
de la variable xi, redondeando hacia arriba y hacia abajo, respectivamente. Cada
vez que se ramifica en xi, el cambio por unidad que se produce en la funcion
objetivo se actualiza calculando los pseudocostes p+i , p−i como sigue:
p+i =
f+i − f (l,u)
dxie − xi+p+
i , n+i = n+
i +1, o bien, p−i =f−i − f (l,u)
xi − bxic+p−i , n
−i = n−i +1.
Y con esos pseudocostes se estima D+i y D−i :
D+i = (dxie − xi)
p+i
n+i
D−i = (xi − bxic)p−in−i
• Ramificacion fiable.
Es una combinacion de las dos estrategias anteriores. Se realiza la ramificacion
fuerte en una variable y se actualizan los pseudocostes hasta que n+i o n−i sean
mas grandes que un umbral τ (que normalmente toma el valor 5), cuando la
estimacion de los pseudocestes es mas fiable.
• Ramificacion en disyunciones generales.
Ramificar una disyuncion es una alternativa a ramificar sobre una variable en-
tera con valor fraccional. Se puede ramificar sobre conjuntos con orden especial
(special ordered sets)2, o mas en general, sobre una disyuncion de la forma
(aTxI ≤ b) ∨ (aTxI ≥ b+ 1),
donde a ∈ Zp y b ∈ Z.
Estrategias de seleccion de nodos. El objetivo de este tipo de estrategias es en-
contrar una solucion factible en poco tiempo para reducir la cota superior y probar
la optimalidad de la solucion incumbente incrementando la cota inferior lo mas rapi-
do posible. En los siguientes puntos mostramos dos de las estrategias mas comunes
para la seleccion de nodos, ademas de sus ventajas e inconvenientes principales.
2Los conjuntos con orden especial constituyen una forma de especificar las condiciones de integridaden un modelo. En particular, se usan para restringir el numero de soluciones distintas de cero en unconjunto de variables determinado.
13
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
• Busqueda en profundidad.
Selecciona el nodo mas profundo en el arbol H (o el ultimo nodo anadido a H).
Las principales ventajas que presenta son (i) que mantiene la lista de nodos
abiertos lo mas pequena posible, y (ii) que minimiza el cambio de las sucesivas
relajaciones (P-PNL) que se resuelven, pues solo cambia una cota, lo que permite
reutilizar la informacion obtenida del nodo padre en la resolucion del nodo hijo.
Sin embargo, si no se encuentran buenas cotas superiores, esta regla puede
provocar tener que explorar muchos nodos con una cota inferior superior a la
solucion optima.
• Busqueda primero el mejor.
Selecciona el nodo con la mejor cota inferior. Su principal ventaja es que, para
una sucesion fija de decisiones de ramificacion, minimiza el numero de nodos
que hay que explorar. Por el contrario, como inconvenientes encontramos que
necesita demasiada memoria para almacenar los problemas abiertos y que no
suele ser facil encontrar una solucion entera factible antes del fin de la busqueda.
• Variantes de la busqueda primero el mejor.
Se han desarrollado dos variantes de la estrategia anterior para intentar estimar
el efecto de la ramificacion en la cota utilizando pseudocostes. Sea fp la cota
inferior o estimada del subproblema p.
◦ Mejor cota esperada. Selecciona el nodo para el que se espera mejor cota
despues de la ramificacion. Se calculan
b+p = fp + (dxie − xi)
p+i
n+i
, y b−p = fp + (xi − bxic)p−in−i
,
y el nodo elegido es maxp{mın{b+p , b
−p }}.
◦ Mejor estimacion. Selecciona el nodo que se espera que contenga la mejor
solucion entera en su subarbol. La mejor solucion entera esperada se estima
como
ep = fp +∑
{i: xi es fraccional}
mın
{(dxie − xi)
p+i
n+i
, (xi − bxic)p−in−i
}.
El nodo seleccionado para resolver es maxp{ep}.• Estrategias de busqueda hıbridas.
Las dos estrategias siguientes intentan combinar la busqueda en profundidad
con la busqueda primero el mejor.
◦ Metodo de las dos fases. Comienza realizando una busqueda en profun-
didad hasta que encuentra algunas soluciones enteras y, en ese momento,
cambia a la busqueda de la mejor cota para probar la optimalidad.
14
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
◦ Metodos de buceo. Son tambien metodos de dos fases: alternan la busque-
da en profundidad hasta encontrar una hoja (factible o infactible), selec-
ciona entonces el siguiente nodo con la la mejor cota, y vuelve a hacer a
partir de el una busqueda en profundidad hasta llegar a una hoja, y ası
sucesivamente.
2.1.1.2. Metodo de aproximaciones exteriores
Para la explicacion de este metodo, comenzamos definiendo el subproblema obtenido
al fijar las variables enteras de (P-PNLEM) a x(j)I :
min f(x)
s.a. c(x) ≤ 0
x ∈ X, xI = x(j)I
(PNL(x(j)I ))
y sea x(j) su solucion. Si (PNL(x(j)I )) es infactible, los solvers de PNL devolveran una
solucion del problema:
min∑i∈J⊥
wic+i
s.a. ci(x) ≤ 0 ∀i ∈ J
x ∈ X, xI = x(j)I
(F(x(j)I ))
donde wi > 0 es un conjunto de pesos que se suele elegir para minimizar la norma l1
o l∞, J es el conjunto de restricciones que se pueden satisfacer y J⊥ el conjunto de
restricciones infactibles. Si (F(x(j)I )) tiene solucion optima con valor objetivo positivo,
entonces el correspondiente problema (PNL(x(j)I )) sera infactible.
Consideramos ahora el problema (P-PL). La convexidad de f y c implica que la linea-
lizacion en x(j) de (PNL(x(j)I )) o (F(x
(j)I )) dada por:
η ≥ f (j) +∇f (j)T (x− x(j))
0 ≥ c(j) +∇c(j)T (x− x(j))(2.1)
es una aproximacion exterior del conjunto factible de (P-PL).
Definimos ahora el conjunto
X := {x(j) ∈ X : x(j) resuelve el problema (PNL(x(j)I )) o (F(x
(j)I ))}
de las posibles asignaciones enteras. Al ser X acotado, X es finito, aunque puede que
15
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
grande. Y construimos el PLEM equivalente a (P-PL):
min η
s.a. f(x(j)) +∇f(x(j))T (x− x(j)) ≤ η ∀x(j) ∈ X
c(x(j)) +∇c(x(j))T (x− x(j)) ≤ 0 ∀x(j) ∈ X
x ∈ X, xi ∈ Z ∀i ∈ I
(2.2)
Sin embargo, resolver el problema (2.2) no resulta practico, pues para definirlo te-
nemos que conocer X , y si conocemos dicho conjunto podrıamos conocer la solucion de
(P-PNLEM) directamente. Por ello, Duran y Grossmann [9], proponen un algoritmo de
relajacion que resuelva alternadamente PLEMs y PNLs.
Primero se resuelve el (PNL(x(j)I )) para un punto inicial x(j) = x(0) y se construye
la relajacion de (2.2) reemplazando X por X k = {0},X k ⊂ X . Ademas, se anade una
cota superior para la variable η, que viene dada por la mejor solucion encontrada hasta
el momento, η < Uk := mınj≤k{f (j) | (PNL(x(j)I )) es factible}. Esta desigualdad se suele
sustituir por η ≤ Uk − ε con ε ≥ 0 una tolerancia pequena.
La cota superior asegura que una vez resuelto el (PNL(l, u)) y anadidas las aproxima-
ciones exteriores al (M(X k)), x(j)I no sea factible en (M(X k)) para k ≥ j, asegurando ası
que el proceso de las aproximaciones exteriores termine en un tiempo finito.
El problema master de PLEM en la iteracion k mencionado viene dado por:
min η
s.a. η ≤ Uk − ε
f(x(j)) +∇f(x(j))T (x− x(j)) ≤ η, ∀x(j) ∈ X k
c(x(j)) +∇c(x(j))T (x− x(j)) ≤ 0, ∀x(j) ∈ X k
x ∈ X, xi ∈ Z ∀i ∈ I
(M(X k))
En las siguiente tabla se puede observar el proceso completo seguido por el algoritmo de
las aproximaciones exteriores:
16
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
Algoritmo 3: Aproximaciones exteriores
1 Dada x(0), tomar una tolerancia ε > 0, tomar U−1 =∞, hacer k = 0, e inicializar
X−1 = ∅.2 Repetir
3 Resolver (PNL(x(j)I )) o (F (x
(j)I )). Sea su solucion x(j).
4 Si (PNL (x(j)I )) es factible & f (j) < Uk−1 entonces
5 Actualizar el mejor punto hasta el momento: x∗ = x(j) y Uk = f (j)
6 en otro caso
7 Tomar Uk = Uk−1.
8 Linealizar la funcion objetivo y las restricciones en torno a x(j) y tomar
X k = X k−1 ∪ {j}.9 Resolver (M(X k)), sea su solucion x(k+1) y tomar k = k + 1.
10 hasta que el PLEM (M(X k)) sea infactible;
2.1.1.3. Descomposicion de Benders Generalizada
El algoritmo de Descomposicion de Benders Generalizada sigue el mismo proceso ite-
rativo que el metodo de las aproximaciones exteriores, con diferencia unicamente en el
problema master lineal [23]. En este caso, el problema master solo tiene en cuenta las
variables enteras.
Consideramos como antes las aproximaciones exteriores
f (j) +∇f (j)T (x− x(j)) ≤ η y c(j) +∇c(j)T (x− x(j)) ≤ 0
y supongamos que las restricciones de X son inactivas.
Sumando dichas restricciones, ponderadas con pesos λ(j), donde λ(j) son los multipli-
cadores del problema (PNL(x(j)I )), obtenemos la desigualdad valida:
(f (j) + λ(j)T c(j)) + (∇f (j) +m∑i=1
λ(j)i ∇c
(j)i )T (x− x(j)) ≤ η
donde λ(j)T c(j) = 0 por el teorema de la holgura complementaria, y la parte correspon-
diente a las variables continuas del gradiente, ∇Cf(j) +λ
(j)i ∇Cc
(j)i = 0 por ser x(j) optima.
Por tanto, la desigualdad queda solo con las variables enteras, de la forma:
f (j) + (∇If(j) +
m∑i=1
λ(j)i ∇Ic
(j)i )T (xI − x(j)
I ) ≤ η.
Ademas, como el problema (PNL(x(j)I )) es optimo, existen multiplicadores µ
(j)i de las
cotas xi = x(j)i ∀i ∈ I y su valor es igual al gradiente en el corte de Benders, por lo que,
17
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
finalmente, podemos escribir:
f (j) + µ(j)T
I (xI − x(j)I ) ≤ η
Si realizamos un procedimiento similar para el problema (F(x(j)I )) obtenemos el siguiente
corte de Benders para subproblemas infactibles:∑i∈Jc
wic+i (x) + µ
(j)T
I (xI − x(j)I ) ≤ 0
donde µ(j)i son los multiplicadores de xi = x
(j)i ∀i ∈ I para (F(x
(j)I )).
La ventaja de este algoritmo es que utiliza unicamente una variable objetivo y variables
enteras. Sin embargo, suelen ser cortes muy densos y los cortes de Benders son mas debiles
que los conseguidos con el metodo de las aproximaciones exteriores [2].
2.1.1.4. Metodo de planos de corte extendido
El metodo de planos de corte extendido fue introducido por Westerlund y Petterson [24]
y sigue un proceso similar al metodo de las aproximaciones exteriores, aunque no resuelve
los subproblemas no lineales (PNL(x(j)I )) y (F(x
(j)I )).
Dada una solucion, x(k), del problema master lineal (M(X k)) el algoritmo de planos
de corte extendido linealiza todas las funciones del problema. Si x(k) satisface todas las
restricciones linealizadas, entonces se ha encontrado la solucion del problema (P-PNLEM).
En otro caso, se anaden al problema master una o, algunas, de las linealizaciones mas
violadas, y se vuelve a resolver el problema master.
La principal ventaja de este algoritmo reside en que solo resuelve PLEMs, mientras
que tiene como puntos debiles una convergencia posiblemente lenta y que no proporciona
cotas superiores mientras no encuentra la solucion.
2.1.1.5. Ramificacion y acotacion basada en PL/PNL
El algoritmo de ramificacion y acotacion basada en PL/PNL, propuesto por Quesada
y Grossmann [22], mejora el metodo de las aproximaciones exteriores, evitando tener que
resolver problemas master de PLEM y disminuyendo ası el tiempo computacional.
En su lugar, el algoritmo de ramificacion y acotacion basado en PL/PNL resuelve la
relajacion continua del problema (PNL(l, u)) y refuerza la integridad de las variables xI
mediante la ramificacion.
Cada vez que se encuentra una solucion entera, se interrumpe el arbol de busqueda
para resolver el problema (PNL(x(j)I )) y se actualiza el problema master con las nuevas
aproximaciones exteriores, generadas a partir de la solucion del problema. Por ultimo,
cuando el nodo correspondiente al punto entero se ha resuelto, se continua con el arbol
18
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
de busqueda.
En este caso, el nodo anterior entero factible debe resolverse varias veces, pues al
contrario de lo que ocurrıa en el algoritmo de ramificacion y acotacion general, un nodo no
puede descartarse si proporciona una solucion entera factible, porque la solucion anterior
a ese nodo fue separada al anadir las linealizaciones al problema master (M(X k)). Por
tanto, solo se pueden eliminar los nodos infactibles.
Antes de presentar el pseudocodigo en el algoritmo 4, es preciso formalizar algunos
conceptos de los que hace uso. Denotamos por (PL(X k, li, ui)) la relajacion del problema
master (M(X k)) con cotas li ≤ xI ≤ uI . En particular, (PL(X k,∞,∞)) es la raız de la
relajacion de (M(X k)). Ademas, el algoritmo toma como punto inicial entero x(0).
19
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
Algoritmo 4: Ramificacion y acotacion basada en PL/PNL
1 Dada x(0), tomar una tolerancia ε > 0, hacer U−1 =∞, hacer k = 0, e inicializar
S−1 = ∅.2 Inicializar PLEM
3 Resolver (PNL(x(j)I )) o (F (x
(j)I )). Sea x(j) la solucion obtenida.
4 Linealizar la funcion objetivo f y las restricciones c en torno a x(j) y hacer
Sk = Sk−1 ∪ {j}.5 Si (PNL(x
(j)I )) es factible entonces
6 Actualizar el mejor punto encontrado hasta el momento: x∗ = x(j) y Uk = f (j).
7 Inicializar el arbol de busqueda del PLEM
8 Inicializar H = ∅.9 Anadir (PL(X k,−∞,∞)) al conjunto: H = H ∪ {PL(X k,−∞,∞)}
10 Mientras H 6= ∅11 Eliminar un problema del conjunto: H= H− {PL(X k, l, u)}.12 Resolver (PL(X k, l, u)). Sea su solucion x(l,u).
13 Si (PL(X k, l, u)) es infactible entonces
14 Eliminar el nodo porque entonces tambien (PNL(x(j)I )) es infactible.
15 en otro caso si x(l,u)I es entero entonces
16 Hacer x(j)I = x
(l,u)I y resolver (PNL(x
(j)I ) o (F (x
(j)i )). Sea x(j) su solucion.
17 Linealizar la funcion objetivo y las restricciones en torno a x(j) y hacer
Sk = Sk−1 ∪ {j}.18 Si (PNL(x
(j)I )) es factible & f (j) < Uk entonces
19 Actualizar el mejor punto hasta el momento: x∗ = x(j) y Uk = f (j).
20 en otro caso
21 Hacer Uk = Uk−1.
22 Anadir el PL de nuevo al conjunto : H = H ∪ {PL(X k, l, u)}.23 Hacer k = k + 1.
24 en otro caso
25 Anadir algunos cortes de aproximacion exterior o ramificar una variable
entera llamando al Algoritmo 2 (x(l,u)i , l, u,H).
2.1.2. Planos de corte
2.1.2.1. Cortes de redondeo entero mixtos
Con este algoritmo se intentan reforzar las relajaciones que se resuelven en el metodo
de ramificacion y acotacion basada en PL/PNL, anadiendo iterativamente cortes para
eliminar las soluciones no enteras de estas relajaciones.
Para desarrollar los procedimientos necesarios para generar los cortes enteros mixtos,
20
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.1. PNLEM CONVEXOS
empezamos considerando un conjunto de dos variables:
S := {(x1, x2) ∈ R× Z : x2 ≤ b+ x1, x1 ≥ 0} (2.3)
Proposicion 2.1. Sea f0 = b− bbc. La desigualdad x2 ≤ bbc+ x1
1−f0 es valida.
Demostracion. 3 Sea S1 = S ∩ {(x1, x2) : x2 ≤ bbc} y S2 = S ∩ {(x1, x2) : x2 ≥ bbc+ 1}Para (x1, x2) ∈ S1, x2 ≤ bbc y x1 ≥ 0. Combinando estas dos desigualdades con pesos
(1− f0) y 1 respectivamente, obtenemos (x2 − bbc)(1− f0) ≤ x1.
Para (x1, x2) ∈ S2, x2 ≥ bbc + 1 y x1 ≥ x2 − b. Reescribiendo estas desigualdades como
−(x2−bbc) ≤ −1 y (x2−bbc) ≤ f0+x1 y combinandolas con pesos f0 y 1, respectivamente,
tenemos (x2 − bbc)(1 − f0) ≤ x1. Usando ahora que si la desigualdad πx ≤ π0 es valida
para S1 y S2, tambien es valida para X1 ∪X2, obtenemos la desigualdad buscada.
Para el caso general de un PLEM, nos vale con considerar el conjunto
S := {(x+R, x
−R, xI) ∈ R2 × Zp : aTI xI + x+
R ≤ b+ x−R, x+R ≥ 0, x−R ≥ 0, xI ≥ 0},
que representa una restriccion de un problema PLEM. Las variables reales estan agreaga-
das en x+R y x−R dependiendo de si el signo de su coeficiente en la restriccion es positivo o
negativo, respectivamente. De la extension del corte de la proposicion anterior al conjunto
S se sigue que el siguiente corte es valido para S,
∑i∈I
(baic+
max{fi − f0, 0}1− f0
)xi ≤ bbc+
x−R1− f0
.
2.1.2.2. Cortes de perspectiva
La reformulacion de perspectiva es una tecnica que se aplica, por ejemplo, en la refor-
mulacion de la restriccion xj ≤ ujxi con xi ∈ {0, 1} y xj, j ∈ C una variable continua,
cuando aparece en una restriccion convexa y no lineal. Frangioni y Gentile [12] introdu-
jeron este metodo utilizando planos de corte llamados cortes de perspectiva.
Definicion 2.3. Dada una funcion convexa f : Rn → R llamamos funcion de perspectiva
a la funcion P : Rn+1 → R dada por:
P(x, z) :=
{0 si z = 0
zf(x/z) si z > 0
El epıgrafo de P(x, z) es un cono de vertice el origen y cuya forma inferior viene dada
por f(x). Si zi es una variable binaria indicadora, que fuerza a algunas variables x a ser 0
o bien a que la restriccion convexa no lineal f(x) ≤ 0 se satisfaga, entonces la sustitucion
3Demostracion extraıda de [20].
21
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.2. PNLEM NO CONVEXOS
de la restriccion f(x) ≤ 0 por la desigualdad convexa
zif(x/zi) ≤ 0
describe una relajacion mas ajustada del conjunto factible.
Para el caso general, consideramos el problema
mın(x,z)∈Rn×{0,1}
{f(x) + cz : Ax ≤ bz}
donde S = {x : Ax ≤ b} es acotado, f(x) es convexa y finita en S y f(0) = 0. Bajo estas
condiciones, la desigualdad
v ≥ f(x) + c+ sT (x− x) + (c+ f(x)− sT x)(z − 1)
donde x ∈ S y s ∈ ∂f(x) es un subgradiente4 de f en x, es valida para el problema
equivalente
mın(x,z,v)∈Rn×{0,1}×R
{v : v ≥ f(x) + cz, Ax ≤ bz}
y se conoce como corte de perspectiva [2].
2.2. PNLEM no convexos
Los problemas no convexos de PNLEM son de los mas complejos de optimizar, pues
al tener funciones no convexas en la funcion objetivo y/o en las restricciones, la region
factible de la relajacion continua puede ser tambien no convexa. En este apartado vamos a
explicar el metodo mas comun para la resolucion de PNLEM no convexos, el algoritmo de
ramificacion y acotacion espacial. Ademas, explicaremos algunas de las tecnicas utilizadas
por el algoritmo como la relajacion de funciones factorizables y el ajuste de cotas. La
bibliografıa utilizada para la explicacion de estas tecnicas han sido principalmente los
documentos de Belotti [2], Trespalacios y Grossmann [23] y Liberti [18].
Antes de explicar los algoritmos mencionados, presentamos algunas de las tecnicas
utilizadas por la mayorıa de ellos para la resolucion de PNLEM no convexos, siguiendo el
artıculo de Burer y Letchford [4].
Sobre/bajo-estimadores
Como hemos visto antes, la relajacion de un PNLEM suele ser difıcil de resolver, por
lo que la idea de esta tecnica es llevar a cabo una nueva relajacion, que se obtiene re-
emplazando cada funcion no convexa g(x) por una funcion convexa bajoestimadora,
es decir, una funcion h(x) convexa tal que h(x) ≤ g(x).
4Sea S ⊂ Rn un conjunto convexo y f : S → (−∞,∞] una funcion convexa. Entonces ξ se dice que esun subgradiente de f en x si f(y) ≥ f(x)+ < ξ, y − x > ∀y ∈ S
22
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.2. PNLEM NO CONVEXOS
Otra forma de hacerlo es definir una variable z que actue como un parametro de
sustitucion y anadir restricciones que fuercen a que z sea aproximada a f(x) y
restricciones de la forma z ≥ h(x), siendo h(x) un bajoestimador convexo. Equi-
valentemente, se puede anadir la restriccion z ≤ h(x) con h(x) un sobreestimador
concavo.
Funciones separables
Una funcion f(x, y), x ∈ Rn1 , y ∈ Rn2 , se dice que es separable si existen funciones
g(xi) para i = 1, ..., n1 y h(yi) con i = 1, ..., n2, tales que f(x, y) =∑n1
i=1 g(xi) +∑n2
i=1 h(yi).
Si hay un bajoestimador convexo para cada g(xi) y h(yi), la suma de los bajoes-
timadores es un bajoestimador para f(x, y). Si esto no ocurre, para aproximar el
PNLEM con funciones separables con un PLEM se pueden realizar los siguientes
pasos:
• Aproximar cada g(xi) y h(xi) con una funcion lineal a trozos.
• Introducir variables gi y hi que representen los valores de esas funciones.
• Anadir una variable binaria para cada “trozo” de la funcion lineal a trozos.
• Anadir variables binarias y restricciones lineales para asegurar que gi y hi toman
los valores correctos.
Factorizacion
La factorizacion consiste en la introduccion de variables y restricciones adicionales
con el objetivo de obtener un PNLEM con funciones mas sencillas. Utilizamos, tal
y como hacen, Burer y Letchford en [4], un ejemplo para explicar esta tecnica:
Tomamos un PNLEM no convexo que contiene la funcion
f(y1, y2, y3) = exp(√y1y2 + y3)
con y1, y2, y3 variables continuas y no negativas. Anadimos las variables w1, w2, w3 y
las restricciones w1 =√w2, w2 = w3 +y3 y w3 = y1y2 y podemos expresar la funcion
f como exp(w1). Conseguimos ası tener que encontrar sobreestimadores solo para
las funciones exp(w1),√w2 y y1y2.
2.2.1. Algoritmo de ramificacion y acotacion espacial
El algoritmo de ramificacion y acotacion espacial es el metodo mas utilizado para la
resolucion de PNLEM. Como ya vimos en el apartado 2.1.1.1, los algoritmos de ramifi-
cacion y acotacion realizan particiones en la region factible que proporcionan dos o mas
23
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.2. PNLEM NO CONVEXOS
subproblemas, que idealmente serıan disjuntos dos a dos, con el objetivo de evitar evaluar
una solucion factible mas de una vez [2].
Los pasos que sigue el metodo de ramificacion y acotacion espacial para PNLEM no
convexos son los siguientes:
Inicializacion. Inicializar la lista de regiones a examinar a una unica que contenga
todos los puntos factibles del problema. A menudo se realiza un ajuste de cotas
basado en la optimalidad, desarrollado con mas detalles en la subseccion 2.2.3.2.
Hacer el mejor valor incumbente U = ∞ y el punto solucion correspondiente x∗ =
(∞, . . . ,∞). Fijar la toleracion ε > 0.
Eleccion de la region. Si la lista de las regiones a estudiar se queda vacıa, entonces
la mejor solucion encontrada hasta el momento x∗ sera la solucion optima. Si no,
elegimos la region que tenga la cota inferior para la funcion objetivo mas baja.
Opcionalmente, se puede hacer un ajuste de cotas basado en la factibilidad sobre la
region seleccionada, explicado en el apartado 2.2.3.1.
Cota inferior. Generar una relajacion convexa del problema en la region seleccionada
y resolverlo para obtener una bajo-estimacion l de la funcion objetivo sobre dicha
region. En la mayorıa de algoritmos, se obtiene la relajacion convexa para un tipo
de problemas concreto, como los factorizables, explicados en la subseccion 2.2.2. Si
l > U o el problema relajado es infactible, volver al paso 2.
Cota superior. Intentar resolver el PNLEM no convexo en la region elegida para
obtener una solucion (optima local) x con valor objetivo f(x).
Poda. Si f(x) < U , hacer U = f(x) y x∗ = x. Eliminar todas las regiones que tengan
una cota inferior mas alta que U .
Comprobar la region. Si f(x)− l < ε se acepta que f(x) es el mınimo global para la
region y se vuelve al segundo paso. Si no, se continua con el siguiente.
Ramificacion. Subdividir la region utilizando alguna de las estrategias de ramifica-
cion disponibles para el algoritmo de ramificacion y acotacion espacial, explicadas
en la subseccion 2.2.4, y anadirlas a la lista de regiones.
Exponemos en los siguientes apartados las principales tecnicas utilizadas en los distin-
tos pasos del algoritmo.
2.2.2. Relajacion de funciones factorizables
En muchos problemas de PNLEM la funcion objetivo y las restricciones no son lineales
pero sı factorizables, es decir, se pueden expresar como sumas de productos de funciones
unarias de un conjunto finito Oun = {sin, cos, exp, log, | · |, . . .} cuyos argumentos son
variables, constantes u otras funciones, factorizables una a una.
24
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.2. PNLEM NO CONVEXOS
Si la funcion objetivo y las restricciones del problema (P-PNLEM) son factorizables,
entonces el problema admite una representacion en la que los arboles de expresion de la
funcion objetivo se combina con las restricciones.
Para entender correctamente esta tecnica, se puede consultar el artıculo de Belotti [2],
en el que se incluye una explicacion mas extensa y diversos ejemplos.
2.2.3. Ajuste de cotas
El ajuste de cotas para una variable xi del problema trata de reducir el intervalo
[xli, xui ] en el que puede variar xi sin cambiar el valor optimo del problema. Esto es siempre
importante, ya que, por ejemplo, la relajacion convexa depende de las cotas, por lo que,
en general, cuanto mas ajustadas esten, mejor sera la aproximacion.
Para mejorar la cota inferior de una variable xj se puede resolver el problema
min xj
s.a. f(x) ≤ zu
f(x) ≥ zl
c(x) ≤ 0
x ∈ X, xi ∈ Z ∀i ∈ I
(2.4)
donde zu y zl son las actuales cotas superior e inferior, respectivamente, de la funcion
objetivo.
Resolviendo (2.4) para cada xj , obtenemos cotas inferiores mejoradas, mientras que
resolviendolo como problema de maximizacion, conseguimos cotas superiores para las
variables. No obstante, los problemas anteriores son tambien PNLEM, y resolver varios
PNLEM con una complejidad similar a la del original puede ser computacionalmente
difıcil. Es por ello que se usan tecnicas alternativas. Las mas comunes son el ajuste de cotas
basado en la factibilidad y el ajuste de cotas basado en la optimalidad, que explicaremos
en los dos apartados siguientes.
2.2.3.1. Ajuste de cotas basado en la factibilidad
Este metodo obtiene cotas de la variable xj mas ajustadas mediante el cambio de cota
de una o varias xi que dependen directa o indirectamente de xj. Lo vemos en el siguiente
ejemplo:
Ejemplo 2.1. Consideramos la restriccion x3 = x1x2 donde las cotas inferiores y supe-
riores son (1, 1, 0) ≤ (x1, x2, x3) ≤ (5, 5, 2). Tenemos:
l1 = l2 = 1⇒ l3 = l1l2 = 1
25
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.2. PNLEM NO CONVEXOS
u3 = 2⇒
{x1 ≤ u3
l2
x2 ≤ u3
l1
⇒ u′1 = u′2 = 2 < 5
obteniendo ası nuevas cotas para la variables (1, 1, 1) ≤ (x1, x2, x3) ≤ (2, 2, 2).
Este metodo se aplica iterativamente para mejorar las cotas en cada iteracion y hay que
tener en cuenta que el orden en el que se eligen las variables afectara al valor que se obtenga
para las cotas. Ademas, aunque la convergencia puede ser lenta, es computacionalmente
barato.
2.2.3.2. Ajuste de cotas basado en la optimalidad
Resolver el problema (2.4) que se propone en el metodo del ajuste de cotas puede no
ser practico porque la no-convexidad del conjunto factible es la misma que la del conjunto
factible del problema original.
Con el objetivo de mejorar estos problemas, el metodo de ajuste de cotas basado en la
optimalidad sigue el mismo procedimiento que el metodo anterior pero, en lugar de mini-
mizar (o maximizar) cada variable en la region factible del PNLEM original, la minimiza
(o maximiza) sobre la region factible de la relajacion convexa continua. Supongamos que
F(l, u) =
x ∈ Rn+q :
akxk +Bkx ≥ dk k = n+ 1, n+ 2, ..., n+ q
li ≤ xi ≤ ui i = 1, 2, ..., n+ q
x ∈ X
es la region factible de la relajacion convexa de (P-PNLEM). Entonces, las soluciones l′j
(respect. u′j) del problema
min (respect. max) xj
s.a. f(x) ≤ zu
f(x) ≥ zl
c(x) ≤ 0
x ∈ F (l, u)
(2.5)
son cotas inferiores (superiores) para la variable xj. Este metodo resulta efectivo para
obtener cotas ajustadas pero requiere resolver 2n problemas de programacion no lineal,
por lo que su uso se suele limitar a la raız del arbol de ramificacion o a nodos con poca
profundidad [2].
2.2.4. Ramificacion espacial
Al particionar el conjunto factible del nodo (PNL(l, u)), se obtienen h ≥ 2 sub-
problemas nuevos: (PNL(l′, u′)), (PNL(l′′, u′′)),· · · , (PNL(l(h), u(h))), con cotas inferiores
26
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.3. METODOS HEURISTICOS
λPNL(l′,u′), λPNL(l′′,u′′), · · · , λPNL(l(h),u(h)). Podemos suponer, sin perdida de generalidad, que
solo se crean dos subproblemas (PNL(l−, u−)) y (PNL(l+, u+)).
Las variables enteras que toman valores fraccionales son siempre candidatas a la ra-
mificacion, pero en este caso, vamos a suponer que todas toman un valor entero en la
solucion y que, por tanto, no podemos ramificar en ellas. Una eleccion ideal deberıa: (i)
aumentar las cotas inferiores λPNL(l−,u−) y λPNL(l+,u+) y (ii) reducir los conjuntos factibles
F(l−, u−) y F(l+, u+).
Para la obtencion de cotas inferiores en los nodos se resuelven relajaciones. Sea x una
solucion de una relajacion del nodo (PNL(l, u)). Si x es factible para el nodo, dicho nodo
se puede podar, ası que supongamos que x no es factible para (PNL(l, u)). Una variable
continua xi es candidata a la ramificacion si no esta fijada, es decir, si no coinciden su cota
inferior y superior, y si es argumento de una funcion restriccion ck(x) tal que ck(x) > 0
(la restriccion es violada).
La ramificacion consiste en anadir al nodo las restricciones xi ≤ xi y xi ≥ xi, para
obtener los correspondientes nodos hijos. Observese que a diferencia de las ramificaciones
sobre variables enteras, ahora los nodos tienen conjuntos factibles no disjuntos, ya que el
conjunto xi = xi es compartido por ambos subnodos.
La ramificacion en variables continuas es la gran diferencia entre los metodos de ra-
mificacion y acotacion para PNLEM convexos (descritos en la seccion 2.1.1.1) y los no
convexos: en aquellos solo era necesario ramificar en variables continuas, porque los sub-
problemas que se generaban al fijar las variables enteras eran PNL convexos; ahora la
ramificacion en variables continuas tambien es necesaria para seguir mejorando las cotas
de los subproblemas. Para que esta necesidad se vea clara, considerese un problema de
PNLEM con solo una variable continua, x1. Ramificando solo en las variables discretas
(un numero finito de ramificaciones) uno puede obtener (si no son todos los subproble-
mas eliminados) subproblemas de PNL, por lo que sera necesario al final ramificar en la
variable x1 para poder terminar de resolver el problema de PNLEM.
Como en el caso convexo, la eleccion de la variable de ramificacion y el valor utilizado
para la ramificacion afectan a la eficiencia del algoritmo.
2.3. Metodos heurısticos
Los metodos heurısticos se utilizan para resolver problemas que, debido a su tamano o
al tamano del arbol de busqueda que generan, no se pueden resolver con los metodos vistos
en los apartados 2.1 y 2.2. Ademas, los heurısticos aportan, en general, mas velocidad de
resolucion, por lo que tambien son utiles para problemas cuya solucion queremos tener en
tiempo real.
Por otro lado, las soluciones proporcionadas por los heurısticos tambien pueden ser
utilizadas en algoritmos de ramificacion y acotacion para podar nodos de una manera mas
27
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.3. METODOS HEURISTICOS
efectiva y con mas prontitud.
Siguiendo el artıculo de Belotti [2] dividimos los heurısticos en dos tipos: metodos pro-
babilısticos y deterministas. Los primeros toman en cada iteracion una decision aleatoria
para elegir una solucion o unos parametros que la determinen y encontramos entre ellos
el algoritmo de recocido (o temple) simulado, los algoritmos geneticos, la busqueda tabu
y el algoritmo de colonia de hormigas. Por otro lado, entre los heurısticos deterministas
encontramos los heurısticos de busqueda y de mejora, que explicaremos en las siguientes
subsecciones. Ademas, todos los metodos deterministas de la seccion 2.1.1 pueden ser
vistos como heurısticos si fijamos el tiempo de ejecucion o nos quedamos con la primera
solucion incumbente que encuentren.
2.3.1. Heurısticos de busqueda
Los algoritmos que vamos a tratar en este apartado utilizan problemas de PL, PNL y
PLEM para obtener puntos factibles del PNLEM original (P-PNLEM).
2.3.1.1. Redondeo basado en PLEM
Este algoritmo (Nannicini y Belotti [21]) comienza con una solucion factible x′ de
la relajacion continua de (P-PNLEM) y busca una solucion entera factible xI que se
aproxime a x′. Se consigue esto resolviendo el problema minx∈F‖x− x′‖, donde F define
una relajacion lineal convexa del conjunto factible (utilizando las tecnicas vistas en le
metodo de aproximaciones exteriores).
Podemos formular el problema como un PLEM de la siguiente forma:
min∑
i∈{1,..,n}
wi
s.a. xi − x′i ≤ wi ∀i ∈ {1, .., n}
x′i − xi ≤ wi ∀i ∈ {1, .., n}
x ∈ F
w ∈ Rn
Resolviendo el PLEM se encuentra una solucion xI = arg minx∈F‖x− x′}1 que satisface
las restricciones de integridad pero no tiene por que cumplir las restricciones no lineales.
Se resuelve entonces un PNL con las variables enteras fijadas a los valores obtenidos,
y se reitera el proceso hasta encontrar una solucion factible o cumplir algun criterio de
terminacion.
28
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.3. METODOS HEURISTICOS
2.3.1.2. Bomba de factibilidad
Este algoritmo fue introducido por Fischetti para PLEM y posteriormente extendido
por Bonami, Kilinc y Linderoth [3] para PNLEM. La idea principal del metodo es resolver
una serie de problemas de PNL (para encontrar soluciones que satisfagan las restricciones
no lineales) y PLEM (para forzar la integridad de la soluciones) que lleven a una solucion
factible del PNLEM.
El proceso genera una sucesion de puntos, x0, ..., xk, que satisface las restricciones de
la relajacion continua no lineal pero no necesariamente las de integridad, y otra sucesion
de puntos x0, ..., xk que satisface las condiciones de integridad pero no necesariamente las
restricciones no lineales c(x) ≤ 0.
El proceso se inicia con la solucion del problema relajado de (P-PNLEM), x0. En
general, dado xk, si no satisface las condiciones de integridad, el PLEM para calcular xi+1
se construye mediante una aproximacion exterior del problema en el que se han linealizado
las restricciones c(x) ≤ 0 en todos los puntos x0, ..., xi. Observese que dicha relajacion es
solo una aproximacion del conjunto factible de (P-PNLEM), ya que dicho conjunto no es
convexo. El punto xi+1 es el punto mas cercano a xi en la aproximacion exterior, es decir,
la solucion del problema
minn∑
j=1
|xj − xij|
s.a. c(xl) +∇c(xl)T (x− xl) ≤ 0 ∀l = 1, .., i
x ∈ X, xi ∈ Z ∀i ∈ I
Por su parte, la sucesion xi, i > 0, se genera resolviendo el PNL:
min ‖x− xi‖2
s.a. c(x) ≤ 0
x ∈ X
El proceso para cuando se encuentra una solucion factible o cuando xk = xk.
2.3.1.3. Heurısticos de buceo
La principal idea de estos heurısticos es realizar una busqueda en profundidad para
encontrar un posible camino desde la raız hasta una hoja del arbol de ramificacion y
acotacion. El objetivo es obtener una solucion factible que sera cota superior de (P-
PNLEM). Dada una solucion x′ ∈ Rn de la relajacion no lineal del PNLEM original, se
fija la variable x′i /∈ Z a bx′ic o dx′ie y se vuelve a resolver el problema. Se reitera este
proceso hasta encontrar una solucion entera factible o hasta que la relajacion no lineal sea
infactible. En [2] se definen los siguientes tipos de heurısticos de buceo segun el criterio
29
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.3. METODOS HEURISTICOS
de seleccion de la variable que se fija:
Buceo fraccional. Se elige la variable x′j /∈ Z tal que |xj − [xj]| sea menor, es decir,
aquella que tenga menor parte fraccional.
Buceo por longitud de vector. Se selecciona la variable con menor valor de
(dx′je − x′j)gj + ε
Aj + 1si gj ≥ 0 y
(bx′jc − x′j)gj + ε
Aj + 1en otro caso , j ∈ I
donde Aj es el numero de funciones del problema para las que cada xj, j ∈ I, tiene un
coeficiente distinto de cero en la linealizacion, y gj = ∂f(x′)∂xj
. La variable se redondea
hacia arriba si gj ≥ 0 y hacia abajo en otro caso. La idea es seleccionar una variable
que no cambie mucho la funcion objetivo, pero que afecte a muchas restricciones.
2.3.2. Heurısticos de mejora
Los heurısticos de mejora comienzan con un punto factible x∗ y buscan un punto
que aporte mejor solucion. En los siguientes apartados, explicaremos dos heurısticos de
mejora: ramificacion local y busqueda por entornos inducida por relajaciones.
2.3.2.1. Ramificacion local
El metodo de ramificacion local es un heurıstico propuesto por Fischetti y Lodi [19]
para problemas de PNLEM en los que todas las variables enteras son binarias.
Suponemos que x∗ es una solucion factible incumbente del problema (P-PNLEM) y
consideramos las siguientes disyunciones para una constante k ∈ Z fijada:
‖xI − x∗I‖ ≤ k (Rama izquierda) o ‖xI − x∗I‖ ≥ k + 1 (Rama derecha) (2.6)
Esa disyuncion corresponde a la distancia Hamming entre xI y x∗I . Para el caso de las
variables binarias, podemos reescribir (2.6) como dos restricciones lineales:∑i∈I:x∗i =0
xi +∑
i∈I,x∗i =1
(1− xi) ≤ k o∑
i∈I:x∗i =0
xi +∑
i∈I,x∗i =1
(1− xi) ≥ k + 1 (2.7)
La rama izquierda esta construida de tal forma que es mucho mas facil de resolver que el
(P-PNLEM) original, tomando habitualmente k ∈ [10, 20]. Se comienza resolviendo esta
rama mediante los metodos deterministas vistos en el apartado 2.1.1 y se obtiene una
nueva solucion incumbente.
30
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.3. METODOS HEURISTICOS
2.3.2.2. Busqueda por entornos inducida por relajaciones
La idea principal de este algoritmo, propuesto por Danna et al. en [8], es encontrar
una solucion cerca de otra ya conocida. Pero en lugar de limitar la busqueda a un entorno
como en la subseccion anterior, ahora se fijan algunas variables a determinados valores. En
concreto, dada una solucion factible incumbente x∗ y la solucion x′ del problema relajado
de (P-PNLEM), las variables enteras se fijan al valor de la incumbente, eso es, se hace
x′i = x∗i , i ∈ I. Y se resuelve el problema original considerando esas variables como fijas.
31
CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.3. METODOS HEURISTICOS
32
Capıtulo 3
Solvers para PNLEM
En este capıtulo trataremos los solvers que existen para la resolucion de problemas de
PNLEM. De cada solver comentaremos los algoritmos que implementa, y cuyas princi-
pales caracterısticas han sido explicadas en el capıtulo anterior, el tipo de problemas que
resuelve, el lenguaje de modelizacion desde el que se pueden llamar, si son o no libres y
donde se pueden obtener.
Ası mismo, se dira si estan disponibles en el servidor NEOS [1], un servidor online y
gratuito para la resolucion de problemas de optimizacion de forma remota, y que permite
el acceso a mas de 60 solvers de diferentes tipos de optimizacion. La bibliografıa utilizada
para la elaboracion de este capıtulo ha sido los artıculos de Bussieck y Vigerske [5] y de
D’Ambrosio y Lodi [7], ası como las paginas web de los solvers citados y del servidor
NEOS.
alphaECP (α-Extended Cutting Plane)
AlphaECP resuelve PNLEMs mediante la implementacion del algoritmo de planos
de corte extendidos. En su ultima version, se ha anadido la resolucion de PNLEMs no
convexos cuya funcion objetivo y restricciones de desigualdad sean pseudo-convexas.
- Autor: T. Westerlund y T. Lastusilta
- Lenguaje de modelizacion desde los que se puede invocar: GAMS
- Licencia gratuita: No
- Sitio web: http://www.gams.com/dd/docs/solvers/alphaecp.pdf
- Disponible en Neos: Sı
ANTIGONE (Algorithms for Continuous/Integer Global Optimization)
ANTIGONE asegura solucion optima global para PNLEMs convexos y no convexos,
e implementa el algoritmo de ramificacion y acotacion espacial en el que se utilizan
PLEMs para la etapa de acotacion.
- Autor: A. Floudas y R. Misener
33
CAPITULO 3. SOLVERS PARA PNLEM
- Lenguaje de modelizacion desde los que se puede invocar: GAMS
- Licencia gratuita: No
- Sitio web: http://helios.princeton.edu/ANTIGONE/
- Disponible en Neos: No
AOA (AIMMS Outer Aproximations)
AOA asegura solucion optima para PNLEMs convexos. Genera y mejora sucesi-
vamente una aproximacion exterior de PLEM y es capaz de encontrar soluciones
factibles para PNLs en poco tiempo. AOA construye la aproximacion exterior de la
region factible del PNLEM linealizando las funciones no lineales en las soluciones de
los subproblemas de PNL.
- Autor: Paragon Decision Technology
- Lenguaje de modelizacion desde los que se puede invocar: AIMMS
- Licencia gratuita: No
- Sitio web: http://aimms.com/english/developers/resources/solvers/aoa/
- Disponible en Neos: No
BARON (Branch-And-Reduce Optimizator Navigator).
Es un solver creado para la resolucion de problemas no lineales de optimizacion
global y de problemas de PNLEM convexos y no convexos. Implementa el algoritmo
de ramificacion y acotacion espacial utilizando PLs para la fase de acotacion. La
aproximacion exterior lineal se basa en una reformulacion del problema en la que
solo aparecen terminos no convexos para los que se conoce un sobreestimador convexo
o un bajoestimador concavo.
- Autor: N.V. Sahinidis y M. Tawarmalani
- Lenguaje de modelizacion desde los que se puede invocar: AIMMS, AMPL,
GAMS.
- Licencia gratuita: No
- Sitio web: http://archimedes.cheme.cmu.edu/baron/baron.html
- Disponible en Neos: Sı
BONMIN (Basic Open-source Nonlinear Mixed INteger programming)
BONMIN asegura soluciones optimas globales para PNLEMs convexos e implemen-
ta los algoritmos: B-OA, algoritmo de aproximaciones exteriores que genera y me-
jora sucesivamente una aproximacion exterior de PLEM del problema original (P-
PNLEM), B-GQ, algoritmo de ramificacion y acotacion que utiliza problemas de
34
CAPITULO 3. SOLVERS PARA PNLEM
PL para la acotacion, B-BB, algoritmo de ramificacion y acotacion que utiliza PNLs
para la acotacion y el algoritmo B-Hyb, que es una combinacion de los dos anteriores.
BONMIN resuelve de forma heurıstica PNLEMs no convexos teniendo en cuenta que
el solver de PNL encuentra diferentes soluciones optimas al empezar desde distintos
puntos iniciales. Por ello, para resolver cada nodo del arbol, BONMIN permite elegir
el numero de puntos de inicio aleatorios, guardando la mejor solucion para cada uno.
- Autor: P. Bonami
- Lenguaje de modelizacion desde los que se puede invocar: AMPL, GAMS,
MATLAB, C/C++.
- Licencia gratuita: Sı
- Sitio web: https://projects.coin-or.org/Bonmin
- Disponible en Neos: Sı
COUENNE (Convex Over and Under ENvelopes for Nonlinear Estima-
tion)
COUENNE asegura soluciones globales para PNLEMs convexos y no convexos e
implementa el algoritmo de ramificacion y acotacion espacial utilizando PLs para
la acotacion. De forma similar a la seguida por el solver BARON, genera la apro-
ximacion exterior lineal mediante una reformulacion de (P-PNLEM). Ademas, se
mejora el algoritmo con tecnicas de ajuste de cotas, cortes disyuntivos, heurısticos
y manipulacion simetrica.
- Autor: P. Belotti
- Lenguaje de modelizacion desde los que se puede invocar: AMPL, GAMS, C++
- Licencia gratuita: Sı
- Sitio web: https://projects.coin-or.org/Couenne
- Disponible en Neos: Sı
DICOPT (Discrete and Continuous OPTimizer)
DICOPT resuelve problemas de PNLEM en los que la no-linealidad incumbe unica-
mente a las variables continuas.
- Autor: J. Viswanathan and I.E. Grossmann
- Lenguaje de modelizacion desde los que se puede invocar: GAMS
- Licencia gratuita: No
- Sitio web: http://www.gams.com/help/topic/gams.doc/solvers/dicopt/index.
html
- Disponible en Neos: Sı
35
CAPITULO 3. SOLVERS PARA PNLEM
FilMint
FilMint resuelve PNLEMs convexos implementando el algoritmo de ramificacion y
acotacion basado en PL/PNL, que utiliza para la acotacion PLs. Ademas, utili-
za planos de corte disyuntivos para PNLEMs convexos y el metodo de bomba de
factibilidad.
- Autor: K. Abhishek, S. Leyffer y J. Linderoth.
- Lenguaje de modelizacion desde los que se puede invocar: AMPL
- Licencia gratuita: No
- Sitio web: http://www.mcs.anl.gov/~leyffer/papers/fm.pdf
- Disponible en Neos: Sı
Knitro
Knitro asegura soluciones globales optimas para PNLEMs convexos. Utiliza para
su resolucion un algoritmo de ramificacion y acotacion, donde se emplean para la
acotacion tanto problemas lineales como no lineales.
- Autor: Ziena Optimization Inc
- Lenguaje de modelizacion desde los que se puede invocar: AMPL,
- Licencia gratuita: No
- sitio web: https://www.artelys.com/en/optimization-tools/knitro
- Disponible en Neos: Sı
LaGO (LAgrangian Global Optimizer)
LaGO asegura soluciones optimas para PNLEMs convexos y de algunas clases par-
ticulares de no convexos. Implementa el algoritmo de ramificacion y acotacion utili-
zando para la acotacion una relajacion lineal, que se obtiene linealizando funciones
convexas, bajoestimando funciones cuadraticas no convexas y aproximando funcio-
nes no cuadraticas mediante funciones cuadraticas.
- Autor: I. Nowak and S. Vigerske
- Lenguaje de modelizacion desde los que se puede invocar: AMPL, GAMS, C++.
- Licencia gratuita: Sı
- Sitio web: https://projects.coin-or.org/LaGO
- Disponible en Neos: No
LindoAPI
LindoAPI asegura solucion optima para PNLEMs convexos y no convexos. Imple-
menta el algoritmo de ramificacion y acotacion, utilizando PLs para la etapa de
36
CAPITULO 3. SOLVERS PARA PNLEM
acotacion y ramificando aquellos subproblemas para los que no esta demostrado que
sean infactibles, que tienen restricciones no convexas o una relajacion lineal con
solucion no entera.
- Autor: LINDO Systems, Inc.
- Lenguaje de modelizacion desde los que se puede invocar: GAMS
- Licencia gratuita: No
- Sitio web: http://www.lindo.com/
- Disponible en Neos: No
Local Solver
Local Solver es un heurıstico que encuentra buenas soluciones para PNLEMs de
gran tamano, utilizando un algoritmo hıbrido de busqueda por entornos que combi-
na tecnicas de busqueda local, propagacion de restricciones, tecnicas de inferencia,
tecnicas de PL, PLEM y PNL.
Ademas, requiere que todas las variables tengan cotas finitas.
- Autor: Innovation 24
- Lenguaje de modelizacion desde los que se puede invocar: AMPL, Python.
- Licencia gratuita: Sı
- Sitio web: http://www.localsolver.com/home.html
- Disponible en Neos: No
MIDACO
MIDACO resuelve PNLEMs convexos y no convexos e implementa un algoritmo
extendido del metodo de la colonia de hormigas, que combina con el algoritmo Oracle
Penalty. Este solver se utiliza principalmente para problemas cuya formulacion no
se conoce, es decir, aquellos en los que f(x) o c(x) son funciones caja negra, y
para problemas con propiedades crıticas, como no-convexidades, discontinuidades o
distorsiones estocasticas.
- Autor: M. Schluter
- Lenguaje de modelizacion desde los que se puede invocar: Matlab, Python, R,
C#, Excel, Fortran
- Licencia gratuita: Sı
- Sitio web: http://www.midaco-solver.com/index.php
- Disponible en Neos: No
37
CAPITULO 3. SOLVERS PARA PNLEM
MILANO
MILANO asegura solucion optima para PNLEMs convexos e implementa el algorit-
mo de ramificacion y acotacion utilizando relajaciones no lineales para la etapa de
acotacion, que resuelve con un metodo de punto interior.
- Autor: H.Y. Benson.
- Lenguaje de programacion: Matlab
- Licencia gratuita: Sı
- Sitio web: http://www.pages.drexel.edu/~hvb22/milano/
- Disponible en Neos: No
MINOPT
MINOPT resuelve problemas de PNLEM convexos y no convexos. Implementa el
algoritmo de descomposicion de Benders generalizada y variantes del metodo de
aproximaciones exteriores.
- Autor: C.A. Schweiger y C.A. Floudas
- Lenguaje de modelizacion desde los que se puede invocar: Progama indepen-
diente (stand-alone).
- Licencia gratuita: No
- Sitio web: http://titan.princeton.edu/MINOPT
- Disponible en Neos: No
MINOTAUR (Mixed-Integer Optimization Toolbox-Algorithms, Unde-
restimators, Relaxations)
MINOTAUR asegura soluciones optimas para PNLEMs convexos. Implementa un
algoritmo de ramificacion y acotacion que utiliza relajaciones no lineales para la
acotacion.
- Autor: A. Mahajan, S. Leyffer, J. Linderoth, J. Luedtke, y T. Munson
- Lenguaje de modelizacion desde los que se puede invocar: AMPL
- Licencia gratuita: Sı
- Sitio web: https://wiki.mcs.anl.gov/minotaur/index.php/Main_Page
- Disponible en Neos: No
SBB (Simple Branch & Bound)
SBB asegura solucion optima para PNLEMs convexos. Implementa un algoritmo
de ramificacion y acotacion, utilizando relajaciones no lineales para la acotacion.
Para la resolucion de los subproblemas no lineales, hace uso de otros solvers como
CONOPT, MINOS y SNOPT.
38
CAPITULO 3. SOLVERS PARA PNLEM
- Autor: ARKI Consulting and Development
- Lenguaje de modelizacion desde los que se puede invocar: GAMS
- Licencia gratuita: No
- Sitio web: http://www.gams.com/help/topic/gams.doc/solvers/sbb/index.
html
- Disponible en Neos: Sı
SCIP (Solving Constraint Integer Programs)
SCIP asegura solucion optima global para PNLEMs convexos y no convexos. Im-
plementa un algoritmo de ramificacion y acotacion que utiliza PLs para la etapa de
acotacion. Ademas, de forma similar a la seguida por BARON, las aproximaciones
exteriores se generan a partir de una reformulacion del PNLEM original.
- Autor: S. Vigerske
- Lenguaje de modelizacion desde los que se puede invocar: GAMS
- Licencia gratuita: Sı
- Sitio web: http://scip.zib.de/
- Disponible en Neos: Sı
39
CAPITULO 3. SOLVERS PARA PNLEM
40
Capıtulo 4
Problemas test
Este capıtulo presenta los problemas test que resolveremos para comparar algunos
de los distintos solvers enumerados en el capıtulo anterior. En la tabla 4.1 se muestran
las caracterısticas que mas nos interesan de cada problema: numero total de variables,
cuantas de dichas variables son enteras, numero de restricciones, la solucion optima (si se
conoce) y si el problema es o no convexo, con el fin de estudiar los resultados obtenidos
en el capıtulo siguiente e investigar que solver es el mas apropiado para cada tipo de
problema (suponiendo que haya alguno que domine a los demas).
Los problemas test han sido obtenidos de la pagina web https://wiki.mcs.anl.gov/
leyffer/index.php/MacMINLP, en la que encontramos una coleccion de PNLEMs creada
por Leyffer, y del libro de Floudas y Pardalos [10]. Ademas, en el apendice A se puede
consultar la formulacion exacta de cada problema.
41
CAPITULO 4. PROBLEMAS TEST
Variables Variables enteras Restricciones Solucion Convexo
Batch 46 24 69 285507 Sı
c-reload-14a 342 168 308 1.00743 No
c-reload-14b 342 168 308 1.02522 No
c-reload-14c 342 168 308 0.99988 No
c-reload-14d 342 168 308 1.03405 No
c-reload-14e 342 168 308 1.03306 No
c-reload-14f 342 168 308 1.01784 No
c-reload-q-24 968 576 632 1.12795 No
c-reload-q-25 1033 625 658 ? No
c-reload-q-49 3292 2401 1430 ? No
c-sched-1 73 60 16 30639.3 Sı
c-sched-2 400 308 137 166102 Sı
feedloc 89 37 249 0 No
geartrain 4 4 0 7.77863e-7 Sı
lbti-00-15 274 169 402 0.988 No
lbti-00-20 274 169 402 0.988 No
lbti-00-40 274 169 402 0.988 No
lbti-01-15 334 235 502 0.983 No
mittelman 16 16 7 13 No
optprloc 30 25 29 -8.06414 Sı
shale-gas-1 3252 504 6300 ? No
space-25 896 750 235 484.329 No
space-25-r 818 750 160 484.329 No
spring 17 11 8 0.846246 No
stockcycle 480 480 97 119948 Sı
synthes1 6 3 6 6.00976 Sı
synthes2 11 5 13 73.0353 Sı
synthes3 17 8 23 68.0097 Sı
top-15x05 260 75 186 ? No
trimlon2 8 8 12 5.3 No
trimlon4 24 24 24 11.3 No
trimlon5 35 35 30 12.1 No
trimlon6 48 48 36 19.4 No
trimlon7 63 63 42 ? No
trimloss2 37 31 24 5.3 Sı
trimloss4 105 85 64 9.3 Sı
trimloss5 161 131 90 10.3 Sı
trimloss6 215 173 120 ? Sı
trimloss7 345 289 145 ? Sı
wind-fac 17 3 14 0.254487 No
T-12-23-p1 5 3 5 7.6672 No
T-12-23-p2 3 1 3 1.0765 No
T-12-23-p3 7 4 9 4.5796 No
T-12-23-p4 11 8 7 -0.94347 No
T-12-23-p5 2 2 4 17 No
T-12-23-p6 2 2 3 -17 No
Cuadro 4.1: Caracterısticas de los problemas test.
42
Capıtulo 5
Estudios computacionales
5.1. Soluciones y tiempo computacional
En este apartado presentaremos los resultados obtenidos con algunos de los solvers
enumerados en el capıtulo 3 para cada uno de los problemas test del capıtulo anterior.
Los solvers seleccionados han sido aquellos que disponen de licencia libre y que pueden ser
llamados desde el lenguaje de modelizacion AMPL [11]: BARON, BONMIN, COUENNE,
Knitro, LaGO y Local Solver.
Cada problema ha sido resuelto dos veces por cada solver, con distinto lımite de tiempo
de ejecucion: 30 minutos y 6 horas. El objetivo es estudiar los resultados y las diferencias
en las soluciones segun el tiempo de ejecucion y el solver utilizado.
Todos los problemas se han resuelto con la version de prueba de AMPL (sin lımites en
el numero de variables y restricciones), utilizando el sistema operativo Windows 10, un
procesador Intel Core i7-5500 @ 2.40 GHz CPU y una memoria RAM de 8 GB.
5.1.1. Resultados con tiempo lımite 30 minutos
Tomando como lımite de tiempo 30 minutos, obtenemos los resultados que aparecen
en la tabla 5.1, en la que mostramos el valor de la funcion objetivo obtenido para cada
caso, indicando con la palabra inf aquellos casos en los que el problema es declarado por
el optimizador como infactible.
5.1.2. Resultados con tiempo lımite 6 horas
Para los resultados obtenidos tomando 6 horas de ejecucion como lımite de tiempo
(veanse las tablas 5.2 y y 5.3), mostramos el valor de la funcion objetivo y el tiempo de
resolucion (t) para cada solver. En los problemas en los que se ha alcanzado el lımite
de tiempo establecido (21600 segundos), dicho hecho se ha indicado mediante el termino
max.
43
CAPITULO 5. ESTUDIOS COMPUTACIONALES 5.1. SOLUCIONES Y TIEMPO COMPUTACIONAL
PPPPPPPPProb
SolverBARON BONMIN COUENNE Knitro LaGO Local solver
batch 285507 285507 285507 285507 285507 285507
c-reload-14a inf 1.01212 1.01212 1.00468 0.831 1.00468
c-reload-14b inf 1.0297 1.0297 1.02543 1.02543 1.02543
c-reload-14c inf 1.00004 1.00004 1.00004 1.00004 1.00004
c-reload-14d inf 1.03148 1.03148 1.0311 1.0311 1.0311
c-reload-14e inf 1.03167 1.03167 1.02891 1.02891 1.02891
c-reload-14f inf 1.01232 1.01232 1.01232 1.01232 1.01232
c-reload-q-24 inf 1.12471 1.12471 1.1294 1.1294 1.1294
c-reload-q-25 inf 0 0 1.12007 1.12007 1.12007
c-reload-q-49 inf 0 0 5.96318 5.96318 5.96318
c-sched1 30639.3 30639.3 30639.3 30184.7 30184.7 30639.3
c-sched2 166102 166102 138973 166062 166062 166062
feedloc 0 0 0 8.70475e-19 0 0
geartrain 7.80223e-8 2.72645e-8 1.82738e-8 2.64809e-5 0 8.949e-7
lbti-00-15 inf inf Error 0 inf inf Error 1
lbti-01-15 0 31.6196 Error 0 32.0465 31.6196 31.6196
mittelman 13 13 13 13 5.02361 13
optprloc -8.06414 -8.06414 -8.06414 -8.06414 -16.4198 -8.06422
shale-gas-1 -9.892 -9.892 inf -9.2580 -9.2580 inf
space-25 749.225 484.329 484.329 484.329 484.329 484.329
space-25-r 108.103 484.329 484.329 484.329 484.329 484.329
spring 0.846246 0.846246 0.846246 0.846246 0.846246 Error 5
stockcycle 119949 119949 119949 119949 119949 119949
synthes1 6.00976 6.00976 6.00976 6.00976 0.759284 6.00976
synthes2 73.0353 73.0353 73.0353 73.0353 -0.554417 73.0352
synthes3 68.0097 68.0097 68.0097 68.0097 15.0838 68.0099
top15x05 0 0 0 18.0059 17.7416 17.7416
top30x10 0 0 0 22.078 22.081 22.081
trimlom2 5.3 5.3 5.3 5.3 4.06375 5.3
trimlon4 8.3 8.3 8.3 8.3 7.66333 8.3
trimlon5 10.3 10.5 10.6 10.3 9.664 10.3
trimlon6 15.3 16.1 15.6 15.5 14.6913 15.3
trimlon7 19.3 19.3 17.8 13.9603 13.6507 15.3
trimlon12 12 12 12 85.7 85.6589 92.5
trimloss2 5.3 5.3 5.3 5.3 5.29998 5.3
trimloss4 8.3 8.6 8.3 6.6 4.9622 8.3
trimloss5 inf inf inf 6.2962 3.95613 10.3
trimloss6 inf inf inf 7.41216 5.71233 15.6
trimloss7 inf inf inf 1.88435 2.07786 15.6
wind-fac 0 0.254487 0.254487 0.254487 0.306581 Error
T-12-23-p1 7.6672 7.6672 7.6672 7.6672 7.6672 7.6672
T-12-23-p2 1.1 1.1 1.1 1.1 1.1 1.1
T-12-23-p3 4.5796 4.5796 4.5796 4.5796 3.8855 4.5796
T-12-23-p4 -0.9435 -0.9435 -0.9435 -0.9435 -0.9435 -0.9435
T-12-23-p5 17 17 17 17 17 17
T-12-23-p6 -17 -17 -17 -17 -17 -17
Cuadro 5.1: Resultados para 30 min.
44
CAPITULO 5. ESTUDIOS COMPUTACIONALES 5.1. SOLUCIONES Y TIEMPO COMPUTACIONAL
PPPPPPPPProb
SolBARON BONMIN COUENNE Knitro LaGO Local solver
batch 285507 285507 285507 285507 285507 285507
t 0.53125 3.76 4.311 0.9688 10.6562 max
c-reload-14a inf 1.0078 1.0072 1.0072 0.8310 1.0074
t 0.5469 283.828 1222.22 235.266 6691.95 max
c-reload-14b inf 1.0297 1.0297 1.02543 1.02543 1.02543
t 0.8863 0.88 max 743.56 6741.06 max
c-reload-14c inf 1.00004 1.00004 1.00004 1.00004 1.00004
t 1.1221 0.74 max 656.24 6628 max
c-reload-14d inf 1.03148 1.03148 1.0311 1.0311 1.0311
t 1.4065 8.49 max 1052.44 7062.22 max
c-reload-14e inf 1.03167 1.03304 1.02897 1.02891 1.02897
t 4.5602 64.06 max 1248.96 7728.34 max
c-reload-14f inf 1.01232 1.01899 1.01232 1.01232 1.01232
t 6.2656 0.62 max 1222.25 7783.53 max
c-reload-q-24 inf 1.1294 1.1294 1.1296 1.1294 1.1294
t 11.9844 13500.06 max 855.328 6691.33 max
c-reload-q-25 inf inf inf 1.1201 1.1201 1.1201
t 15.4531 23.2188 max 704.375 5456.88 max
c-reload-q-49 inf inf inf 5.9632 5.9632 5.9632
t 451.984 324.2656 max 138.859 2054.26 max
c-sched1 30639.3 30639.3 30639.3 30639.3 30639.3 30639.3
t 59.4531 10.66 1802.05 0.28125 8145.25 max
c-sched2 166062 166062 166062 166062 166062 166062
t 2507.68 335.57 1902.64 349.047 465.094 max
feedloc 0 0 0 8.70475e-19 0 0
t 0.09375 6.303 4.856 3 253.375 max
geartrain 7.802e-08 2.726e-08 1.827e-08 2.6480e-05 0 8.949e-07
t 0.0745 0.51 0.085 0.03125 0.0156 max
lbti-00-15 inf inf Error 0 58.59 inf Error 1
t 0.6563 465.969 0 max max 0
lbti-00-20 inf inf Error 0 59.1247 3.3492 Error 1
t 0.7656 516.094 0 5.3437 max 11.5624
lbti-00-40 inf inf Error 0 46.6912 46.6912 Error 1
e t 1.1406 694.625 0 7.7188 max 23.024
lbti-01-15 Inf 31.6196 Error 0 32.0465 31.6196 Error 1
t 0.6094 745.825 0 3.8438 max 0.6250
mittelman 13 13 13 13 5.02361 13
t 0.0781 3.03 0.054 1.35938 0.28125 max
optprloc -8.06414 -8.06414 -8.06414 -8.06414 -16.4198 -8.06414
t 7.2188 3.45 14.596 1.5781 3.7344 2.5674
shale-gas-1 inf -9.892 inf -9.2580 -9.2580 -9.2580
t 2579.52 43.594 4.2188 0.7542 max
space-25 654.943 484.329 484.329 484.329 484.329 484.329
t max 743.88 854.69 184.047 3955.86 max
space-25-r 654.943 484.329 484.329 484.329 484.329 484.329
t max 708.42 998.45 184.047 2642.98 max
spring 0 0.846244 0.846244 0.846244 0.846247 Error 0
t 1.0938 0.6094 0.8906 0.9219 0.2188 0
Cuadro 5.2: Resultados para 6 h.
45
CAPITULO 5. ESTUDIOS COMPUTACIONALES 5.1. SOLUCIONES Y TIEMPO COMPUTACIONAL
PPPPPPPPProb
SolBARON BONMIN COUENNE Knitro LaGO Local solver
stockcycle 119949 119949 119949 119949 119949 119949
t 27.756 828.25 44.16 23.21 810.938 max
synthes1 6.00976 6.00976 6.00976 6.00976 0.759284 6.00977
t 0.0781 0.25 0.14 0.03125 0.0625 max
synthes2 73.0353 73.0353 73.0353 73.0353 -0.554417 73.0353
t 0.1094 0.88 1.18 0.0781 0.2969 max
synthes3 68.0097 68.0097 68.0097 68.0097 15.0838 68.0099
t 0.2188 1.10 0.614 0.1563 0.6875 max
top15x05 0 inf 0 18.0059 17.7416 17.7416
t 120.32 16.648 max max max max
top30x10 0 inf 0 22.078 22.081 22.081
t 13.544 20.587 max max max max
trimlom2 5.3 5.3 5.3 5.3 4.06375 5.3
t 0.0625 4.71 0.047 0.96873 0.1094 max
trimlon4 8.3 8.3 8.3 8.3 7.66333 8.3
t 31.8594 max max 110.219 0.8594 max
trimlon5 10.3 10.3 10.3 10.3 9.664 10.3
t 109.109 max max 756.025 2.0469 max
trimlon6 15.3 15.3 15.6 15.25 14.6913 15.3
t 347.069 max max 994.02 4.4531 max
trimlon7 16.9 16 16.8 14.079 13.6507 16.8
t 1024.23 max max 2056.88 8.375 max
trimloss2 5.3 5.3 5.3 5.3 5.29998 5.3
t 0.6719 21.3438 1.172 1.5781 0.75 max
trimloss4 8.3 8.3 8.3 6.6 5.52895 8.3
t 125.625 3506.24 459.028 58.456 24.035 max
trimloss5 inf inf inf 6.18571 3.35723 10.3
t 456.69 max max 6540.44 825.2031 max
trimloss6 inf inf inf 7.186434 5.07419 15.3
t 624.02 max max max max max
trimloss7 inf inf inf 2.16744 2.25661 15.1
t 708.56 max max max max max
wind-fac Error 2 0.254487 0.254487 0.254487 0.306581 Error 0
t 0.0156 0.2344 0.125 0.125 0.2813 0
T-12-23-p1 7.6672 7.6672 7.6672 7.6672 7.6672 7.6672
t 0.781 0.0625 0.0625 0.0938 0.0469 max
T-12-23-p2 1.1 1.1 1.1 1.1 1.1 1.1
t 0.0938 0.0938 0.0781 0.0781 0.0625 max
T-12-23-p3 4.5796 4.5796 4.5796 4.5796 3.8855 4.5796
t 0.0625 0.40625 0.1875 0.0469 0.03125 max
T-12-23-p4 -0.9435 -0.9435 -0.9435 -0.9435 -0.9435 -0.9435
t 0.1406 0.6719 0.3594 0.0313 0.0469 max
T-12-23-p5 17 17 17 17 17 17
t 0.0156 0.0469 0.0469 0 0 0
T-12-23-p6 -17 -17 -17 -17 -17 -17
t 0.0313 0.0781 0.2031 0 0 max
Cuadro 5.3: Resultados para 6 h. (bis)
46
CAPITULO 5. ESTUDIOS COMPUTACIONALES 5.2. ANALISIS DE RESULTADOS
El significado de los errores devueltos en algunas de las ejecuciones es el siguiente:
Error 0 : El programa interrumpe la ejecucion (Break)
Error 1 : No se puede tomar una decision tipo float fuera de sus cotas
Error 2 : BARON no soporta condicionales no lineales
Error 3 : Convergencia a un punto infactible
Error 4 : No hay suficiente memoria.
Error 5 : Problema demasiado grande.
Error 6 : El valor 4.8 no puede ser representado como int.
5.2. Analisis de resultados
Como hemos hecho a lo largo de todo el trabajo, en esta seccion tambien diferenciamos
entre los problemas tests convexos y los no convexos.
Utilizando la informacion presentada en la tabla 4.1, en la que se muestra la solucion
optima de muchos de los problemas tests, podemos comprobar que solvers obtienen dicha
solucion. En el analisis que se hace en esta seccion, dada la solucion optima de un problema
x∗, se ha considerado que un solver encuentra dicha solucion si la solucion x′ ofrecida por
el solver verifica que |f(x∗)− f(x′)| ≤ 0.002.
En la tabla 5.4 se muestra el numero total de problemas que cada solver ha resuelto
de forma optima en un lımite de tiempo de 30 minutos, distinguiendo entre problemas de
tipo convexo y no convexo. Se da ası mismo el porcentaje de problemas que supone dicho
numero. Se puede apreciar que el porcentaje de resolucion es considerablemente mas alto
para los problemas convexos, para los que se situa entre un 60 y un 80 %. Local Solver
es el que mas problemas resuelve (12) seguido inmediatamente por BARON y BONMIN,
con 11 problemas resueltos por cada uno de ellos. Por su parte, son BONMIN y Knitro
los que mas problemas de tipo no convexo resuelven, seguidos por COUENNE y Local
Solver. En ambos casos es LaGO el que peor resultados obtiene y, ademas, comparando los
resultados con los ofrecidos en [17], observamos que devuelve la solucion de la relajacion
no lineal, es decir, ignora la integridad de las variables en varios problemas.
BARON BONMIN COUENNE Knitro LaGO Local Solver
Convexos 11 (73.33 %) 11 (73.33 %) 10 (66.66 %) 9 (60.00 %) 6 (40.00 %) 12 (80 %)
No convexos 9 (27.27 %) 15 (45.45 %) 13 (39.39 %) 15 (45.45 %) 9 (27.27 %) 13 (39.39 %)
Cuadro 5.4: Analisis de los problemas con un tiempo maximo de ejecucion de 30 min.
Por su parte, en la tabla 5.5 mostramos, de forma analoga, el numero de problemas
convexos resueltos de forma optima por cada solver con un tiempo de ejecucion de 6
47
CAPITULO 5. ESTUDIOS COMPUTACIONALES 5.2. ANALISIS DE RESULTADOS
horas, ası como el porcentaje de problemas que supone dicho valor (hay 15 problemas
convexos en total). En la tabla se da tambien la media de los tiempos de ejecucion que ha
requerido, y los valores mınimo y maximo de dichos tiempos (todo en segundos). Tanto
para el tiempo medio, como para los valores maximo y mınimo, hemos tenido en cuenta
unicamente los problemas en los que el solver ha obtenido la solucion optima del problema.
BARON BONMIN COUENNE Knitro LaGO Local Solver
Frecuencia 11 (73.33 %) 11 (73.33 %) 11 (73.33 %) 10 (66.67 %) 6 (40 %) 12 (80 %)
Media (t) 288.968 120.577 418.978 41.873 350.329 21600.000
Mınimo (t) 0.078 0.250 0.085 0.031 0.015 21600.000
Maximo (t) 2507.680 828.250 1902.640 349.047 814.525 21600.000
Cuadro 5.5: Analisis para problemas convexos
Los resultados correspondientes para los 31 problemas test no convexos quedan refle-
jados en la tabla 5.6.
BARON BONMIN COUENNE Knitro LaGO Local Solver
Frecuencia 10 (30.30 %) 16 (48.48 %) 13 (39.39 %) 16 (48.48 %) 11 (33.33 %) 14 (42.42 %)
Media (t) 0.232 117.434 237.090 143.474 2446.629 21600.000
Mınimo (t) 0.014 0.046 0.046 0.000 0.000 21600.000
Maximo (t) 1.093 743.880 1222.220 743.560 6471.060 21600.000
Cuadro 5.6: Analisis para problemas no convexos
Para el caso de los problemas convexos, observamos que la media de los tiempos de
ejecucion requeridos por los solvers (salvo Local Solver) esta siempre por debajo de los
siete minutos (420 segundos). No obstante, el tiempo de ejecucion depende mucho del
problema en cuestion, como se puede apreciar en las grandes diferencias que existen entre
los tiempos mınimo y maximo. Local Solver necesita como parametro de entrada el tiempo
de ejecucion, y no se detiene hasta dicho tiempo, por lo que dicho optimizador siempre
consume todo el tiempo disponible, y se convierte en el mas lento de todos.
El porcentaje de resolucion ronda el 70 % en todos los solvers estudiados, excepto
en LaGO, que es del 40 % y en Local Solver, que resuelve el 80 %. No obstante, Knitro
muestra unos tiempos de ejecucion considerablemente menores, seguido por BONMIN.
Cabe destacar que Local Solver, a pesar de ser el que mas problemas resuelve, no devuelve
ninguna solucion antes de llegar al tiempo lımite.
Si nos cenimos a los problemas no convexos, el porcentaje de resolucion baja hasta
oscilar entre un 30 y un 48 %. En este caso, el solver que resuelve los problemas en menor
tiempo es BARON, aunque a su vez, es el que menos problemas resuelve de forma optima.
BONMIN y Knitro son los que resuelven un mayor numero de problemas de forma optima,
aunque ahora es BONMIN el que se erige como mas rapido que Knitro. Ademas, tanto
48
CAPITULO 5. ESTUDIOS COMPUTACIONALES 5.2. ANALISIS DE RESULTADOS
para problemas convexos como no convexos, LaGO vuelve a ignorar la integridad de las
variables en numerosas ocasiones.
Para continuar con el analisis, tomamos ahora los 28 problemas que han sido resueltos
por todos los solvers, aporten o no solucion optima, y estudiamos con cuales de ellos se
obtiene mejor solucion: para los problemas cuya solucion optima es conocida, ordenaremos
los solvers de mayor a menor aproximacion a ella, mientras que para los que no conocemos
su solucion, los ordenaremos teniendo en cuenta el objetivo (maximizar o minimizar).
El solver que ocupe la primera posicion es por tanto el que mejor solucion ofrece. No
consideraremos para este estudio aquellos problemas para los que todos los solvers dan la
misma solucion y, ademas, en caso de que, en algun problema, dos o mas de ellos obtengan
la misma solucion, les asignaremos la misma posicion.
Las tablas 5.7 y 5.8 muestran las frecuencias y las frecuencias acumuladas, referentes a
la posicion que ha obtenido cada solver en la resolucion de los problemas. Como vemos en
la tabla 5.7, el solver que ha ocupado la ultima posicion para mayor numero de problemas
ha sido BARON, mientras que el que se ha situado en primera posicion en mas ocasiones
ha sido COUENNE, seguido por Local Solver. Sin embargo, debemos tener en cuenta que
para Local Solver, todas las soluciones tomadas han sido las obtenidas al alcanzar el lımite
de tiempo impuesto (6 horas).
Primero Segundo Tercero Cuarto Quinto Sexto
BARON 12 1 0 0 0 15
BONMIN 15 3 1 2 0 7
COUENNE 18 3 0 1 0 6
Knitro 13 6 3 5 0 1
LaGO 7 3 4 4 0 10
Local Solver 17 3 0 3 5 0
Cuadro 5.7: Frecuencias
Si nos cenimos ahora a las frecuencias acumuladas presentadas en la tabla 5.8, es
COUENNE el que se situa entre los dos primeros para mas problemas, seguido esta vez
por Local Solver. El que aparece en mas ocasiones entre los tres primeros es Knitro,
seguido de COUENNE, Local Solver y BONMIN.
Por ultimo, para concluir el analisis de resultados, realizamos una comparativa de los
tiempos de ejecucion utilizados por cada solver para la resolucion de los problemas para
los que todos han devuelto alguna solucion, optima o no.
Observamos en la tabla 5.9, que el solver que devuelve las soluciones en un tiempo
medio menor es BARON, seguido por Knitro. Por el contrario, es COUENNE quien
devuelve la solucion en mas tiempo, solo superado por Local Solver.
Vemos pues que no hay ningun solver que domine claramente a los demas, si bien
49
CAPITULO 5. ESTUDIOS COMPUTACIONALES 5.2. ANALISIS DE RESULTADOS
1o 1o-2o 1o-3o 1-4o 1o-5o
BARON 12 13 13 13 13
BONMIN 15 18 19 21 21
COUENNE 18 21 21 22 22
Knitro 13 19 22 27 27
LaGO 7 10 14 18 18
Local Solver 17 20 20 23 28
Cuadro 5.8: Frecuencias acumuladas
BARON BONMIN COUENNE Knitro LaGO Local Solver
Media (t) 2241.867 4248.845 9135.484 2608.593 3912.051 21600.000
Mınimo (t) 0.01566 0.0469 0.0469 0 0 21600.000
Maximo (t) 21600 21600 21600 21600 21600 21600.000
Cuadro 5.9: Analisis para problemas resueltos
los resultados parecen sugerir que los mejores optimizadores en general son BONMIN,
COUENNE, Knitro y Local Solver, siendo Knitro el mas rapido de ellos, seguido por
BONMIN (que casi duplica el tiempo), COUENNE (que duplica el tiempo de BONMIN)
y Local Solver (que necesita, al menos, el doble de tiempo que COUENNE).
50
Capıtulo 6
Estudio para un problema de
localizacion
Para finalizar esta memoria, realizaremos una aplicacion de todo lo visto a un problema
de localizacion de PNLEM no convexo, cuyo enunciado y formulacion han sido obtenidos
de [14].
El objetivo de este capıtulo sera resolver el problema con los solvers utilizados en el
capıtulo anterior y estudiar las soluciones obtenidas de forma similar a la seguida en dicho
capıtulo.
6.1. Enunciado
Una empresa, cuyo objetivo es maximizar sus beneficios anuales, quiere invertir en
una zona donde ya existen una serie de establecimientos ofreciendo los mismos servicios.
Algunos de los centros existentes son propiedad de la empresa, y el resto, de la compe-
tencia. Las acciones que puede llevar a cabo la empresa son (i) la apertura de una nueva
instalacion y/o (ii) el cierre y/o (iii) la modificacion de la calidad de alguno de sus esta-
blecimientos ya existentes. Para lograr el objetivo, se conocen de antemano la localizacion
y la demanda (o poder de compra) de los puntos de demanda, ası como la localizacion y
las calidades actuales de todos los centros existentes. Ası mismo, se consideraran gastos
como el coste de abrir una nueva instalacion en el punto elegido con una cierta calidad,
calidad que debera oscilar entre un mınimo y un maximo preestablecidos, costes de cierre
(si es que finalmente se cierra algun centro existente) y costes de variacion de la calidad
de los centros existentes (si su calidad se varıa).
6.2. Formulacion
Indices
51
CAPITULO 6. ESTUDIO PARA UN PROBLEMA DE LOCALIZACION 6.2. FORMULACION
i: Indice de los puntos de demanda, i = 1, ..., n.
j: Indice de las instalaciones existentes, j = 1, ...,m. Las primeras k, k > 0,
de dichas instalaciones pertenecen a la empresa, y las m − k restantes a la
competencia.
Variables de decision
f0: Localizacion de la nueva instalacion, f0 = (x1, x2).
α0: Calidad de la nueva instalacion.
αj: Calidad de la j-esima instalacion existente propiedad de la cadena en ex-
pansion, j = 1, ..., k. Inicializada como αj = αj.
ns: Variables del problema, ns = (f0, α0, α1, ..., αk).
Variables indicadoras
yj: Variable binaria que toma el valor 0 si la instalacion j se cierra (j = 1, ..., k)
o no se abre (j = 0), y el valor 1 en otro caso.
Datos
pi: Localizacion del punto de demanda i, i = 1, ..., n.
wi: Demanda anual de pi, i = 1, ..., n.
fj: Localizacion de la instalacion existente j, j = 1, ...,m.
dij: Distancia entre el punto de demanda pi y la instalacion fj, i = 1, ..., n,
j = 1, ...,m.
γi: Peso para la calidad de las instalaciones segun el punto de demanda pi,
i = 1, ..., n.
αj: Calidad actual de la instalacion existente fj, j = 1, ...,m.
aij: Calidad actual de la instalacion fj segun es percibida en el punto de de-
manda pi, i = 1, ..., n, j = 1, ...,m. En concreto, aij = γiαj.
gi(·): Funcion no negativa y no decreciente, i = 1, ..., n.
uij: Utilidad actual de fj para pi (o atraccion que pi siente actualmente por fj),
i = 1, ..., n, j = 1, ...,m. En concreto, uij = aij/gi(dij).
B: Presupuesto anual de la cadena.
αmin: Nivel mınimo de calidad de una instalacion abierta.
αmax: Nivel maximo de calidad de una instalacion que puede ser abierta.
αjmax: Nivel maximo de calidad que puede tomar la j-esima instalacion, j =
1, ..., k.
dmini : Distancia mınima entre pi y la nueva instalacion, i = 1, ...n.
52
CAPITULO 6. ESTUDIO PARA UN PROBLEMA DE LOCALIZACION 6.2. FORMULACION
S: Region del plano en la que puede localizarse la nueva instalacion.
Aj: Coste anual correspondiente a la apertura de la j-esima instalacion existente,
j = 1, . . . , k.
Cj: Coste de cerrar la instalacion fj, j = 1, ..., k.
Miscelanea
aij(αj): Calidad de la instalacion fj segun pi, i = 1, ..., n, j = 0, ..., k. En
concreto, aij(αj) = γiαj.
uij(αj): Utilidad de fj para pi (o atraccion que pi siente por fj), i = 1, ..., n,
j = 1, ..., k. En concreto, uij(αj) = aij(αj)/gi(dij).
di(f0): Distancia entre pi y la nueva instalacion, i = 1, ..., n.
ui0(f0, α0): Utilidad de la nueva instalacion segun pi, i = 1, ..., n. En concreto,
ui0(f0, α0) = γiα0/gi(di(f0)).
G(f0, α0): Coste anual de abrir una nueva instalacion en f0 con calidad α0.
Vj(αj): Coste anual de cambiar la calidad de la j-esima instalacion del nivel
actual αj a αj, j = 1, ..., k.
M(ns): Cuota anual de mercado obtenida por la cadena. En concreto,
M(ns) =n∑
i=1
wi
y0 · ui0(f0, α0) +∑k
j=1 yj · uij(αj)
y0 · ui0(f0, α0) +∑k
j=1 yj · uij(αj) +∑m
j=k+1 uij.
F (M(ns)): Ingresos anuales de la cadena fruto de la cuota de mercado cap-
turada. Por simplicidad, en los estudios computacionales supondremos que
F (M(ns)) = c ·M(ns), siendo c una constante.
Hj(αj): Coste anual de operar la j-esima instalacion, j = 0, ..., k.
T (ns): Coste total anual de la cadena,
T (ns) =k∑
j=1
(yj(Aj +Hj(αj) + Vj(αj)) + (1− yj)Cj) + y0(G(f0, α0) +H(α0)).
Π(ns): Beneficio anual obtenido por la cadena.
Posibles expresiones para las funciones G(f0, α0), Vj(αj) y Hj(αj) pueden verse en [14].
Una vez conocidos los datos del problema y las variables que lo constituyen, la formu-
lacion queda de la siguiente forma:
53
CAPITULO 6. ESTUDIO PARA UN PROBLEMA DE LOCALIZACION 6.3. DATOS
max Π(ns) = F (M(ns))− T (n, s)
s.a. αj ≤ yjαjmax, j = 0, ..., k
αj ≥ yjαmin, j = 0, ..., k
T (ns) ≤ B
di(f0) ≥ dmini , i = 1, ..., n
f0 ∈ S ⊂ R2
αj ∈ {0} ∪ [αmin, αjmax], j = 0, ..., k
yj ∈ {0, 1}, j = 0, ..., k
Observese que las dos primeros grupos de restricciones aseguran la semicontinuidad de
las variables αj, j = 0, . . . , k.
6.3. Datos y caracterısticas de los problemas genera-
dos
Para investigar cual es el solver mas apropiado para este tipo de problemas de localiza-
cion competitiva, se han creado dos problemas base, cada uno de los cuales se ha resuelto
con 15 valores diferentes para el presupuesto disponible B. Se han resuelto en total, por
tanto, 30 problemas. Las caracterısticas de los problemas base se pueden ver en la tabla
6.1.
Ambos problemas base tienen 5 variables, 2 de ellas enteras. El primero tiene 13
restricciones, y el segundo, 14.
6.4. Resultados
El primer problema base fue resuelto un total de 15 veces, aumentando el presupuesto
desde un valor inicial de B = 8 hasta B = 50, con incrementos de tres unidades. Los
resultados obtenidos se muestran en la tabla 6.2
De todos los solvers utilizados, Knitro, BONMIN y Local Solver son los unicos con los
que conseguimos obtener soluciones. Los demas solvers no consiguen resolver el problema:
COUENNE concluye con que el problema es infactible en todos los casos, LaGO ignora
la integridad de las variables y BARON excede el tiempo lımite que se le impone sin
encontrar ninguna solucion.
Knitro y Local Solver son los unicos que resuelven los 15 problemas, mientras BONMIN
lo hace para los problemas con presupuesto de 11 a 38 y 50. No obstante, con BONMIN
el valor maximo que alcanza la funcion objetivo es superior al obtenido por Knitro en
10 de los 11 problemas que resuelve. A su vez, Local Solver obtiene mejor solucion que
BONMIN en 6 de los 15 problemas y que Knitro en todos excepto el primero.
54
CAPITULO 6. ESTUDIO PARA UN PROBLEMA DE LOCALIZACION 6.4. RESULTADOS
Param Problema 1 Problema 2
n 3 4
m 2 4
k 1 1
αmin 0.5 0.5
αmax 5.0 5.0
αjmax 1.2αj 1.2αj
dmini 30 30
γi γ1 = 1, γ2 = 2, γ3 = 1 γ1 = 1, γ2 = 1, γ3 = 1, γ4 = 1
αi α1 = 2, α2 = 2 α1 = 3, α2 = 3, α3 = 1, α4 = 2
Presup. inicial 8 10
c 20 20
Aj A1 = 8 A1 = 8
wi w1 = 2, w2 = 8, w3 = 2 w1 = 10, w2 = 2, w3 = 8, w4 = 2
fj f1 = (1, 1) f2 =(4.5,4.5) f1 = (9, 1) f2 = (1, 9) f3 = (1, 1) f4 = (9, 9)
pi p1 = (2, 2) p2 = (5, 5) p1 =(0.1,0.1) p2 =(9.9,0.1)
p3 = (9, 9) p3 =(9.9,9.9) p4 =(0.1,9.9)
Cuadro 6.1: Datos de los problemas de localizacion
Los resultados para el problema base 2, tambien resuelto 15 veces, incrementando el
presupuesto desde B = 10 hasta B = 52, se presentan en la tabla 6.3. Al igual que antes,
al resolver los problemas observamos que los unicos solvers con los que se encuentra una
solucion son Knitro, Local Solver y BONMIN, excepto para B = 10 que con el ultimo
resulta infactible. Los tiempos de ejecucion medios, reflejados en la tabla 6.5, que se
obtienen con Knitro y BONMIN son pequenos, con una ligera ventaja en promedio para
Knitro. Por su parte, para hacer una comparacion mas justa entre dichos solvers, a Local
Solver se le dio como parametro de entrada un tiempo lımite de 30 segundos, similar al
tiempo maximo empleado por los otros solvers. Por otro lado, las soluciones obtenidas
por los solvers en esta segunda baterıa de problemas coinciden en todos los problemas
(excepto si B = 10), lo que hace pensar que las caracterısticas de este segundo problema
base hacen su resolucion mas sencilla que en el caso del problema base 1.
Por tanto, podemos concluir que para el problema de localizacion de PNLEM no
convexo estudiado, los unicos solvers que ofrecen “buenas soluciones” son Knitro, Local
Solver y BONMIN, siendo Knitro y Local Solver los unicos capaces de resolver todos los
problemas, y Local Solver y BONMIN con los que se obtienen mejores resultados cuando
terminan y ofrecen una solucion.
55
CAPITULO 6. ESTUDIO PARA UN PROBLEMA DE LOCALIZACION 6.4. RESULTADOS
BONMIN Knitro Local Solver
8 f(x∗) =inf f(x∗) =-1.90311 f(x∗) = −4
t =13.6719 t =0.59375 t = 30
11 f(x∗) =34.2054 f(x∗) =31.3687 f(x∗) = 34,2054
t =0.3281 t =0.0625 t = 30
14 f(x∗) =34.2973 f(x∗) =31.3687 f(x∗) = 38,2186
t =0.25 t = 0.046875 t = 30
17 f(x∗) =34.4715 f(x∗) =31.3687 f(x∗) = 112,021
t =0.2344 t =0.046875 t = 30
20 f(x∗) =34.4715 f(x∗) =46.8367 f(x∗) = 129,534
t =0.2813 t = 0.0625 t = 30
23 f(x∗) =139.78 f(x∗) =50.3357 f(x∗) = 139,75
t =0.203125 t =0.03125 t = 30
26 f(x∗) =146.77 f(x∗) = f(x∗) = 146,176
t =0.21875 t =0.0625 t = 30
29 f(x∗) = 150.29 f(x∗) =50.4817 f(x∗) = 150,29
t =0.359375 t =0.0625 t = 30
32 f(x∗) =152.903 f(x∗) = 50.4817 f(x∗) = 152,903
t =152.903 t =50.4817 t = 30
35 f(x∗) =154.468 f(x∗) =50.4817 f(x∗) = 154,468
t =0.453125 t =0.046875 t = 30
38 f(x∗) =155.263 f(x∗) =50.4817 f(x∗) = 155,263
t =1.09375 t = 0.046875 t = 30
41 f(x∗) =inf f(x∗) =50.4817 f(x∗) = 155,501
t =12.875 t = 0.046875 t = 30
44 f(x∗) =inf f(x∗) =50.4817 f(x∗) = 156,437
t =12.7656 t = 0.078125 t = 30
47 f(x∗) =inf f(x∗) =50.4817 f(x∗) = 156,641
t =12.2031 t = 0.046875 t = 30
50 f(x∗) =156.641 f(x∗) =50.4817 f(x∗) = 156,641
t =23.875 t = 0.046875 t = 30
Cuadro 6.2: Resultados para el problema base 1
56
CAPITULO 6. ESTUDIO PARA UN PROBLEMA DE LOCALIZACION 6.4. RESULTADOS
BONMIN Knitro Local Solver
10 f(x∗) = inf f(x∗) =33.4558 f(x∗) = 33,4558
t = 0.0625 t = 0.046875 t = 30
13 f(x∗) =85.7176 f(x∗) =85.7176 f(x∗) = 85,7176
t = 0.1875 t =0.0625 t = 30
16 f(x∗) =149.046 f(x∗) =149.046 f(x∗) = 149,046
t = 0.34375 t =0.5625 t = 30
19 f(x∗) =164.431 f(x∗) =164.431 f(x∗) = 164,431
t =0.28125 t =0.625 t = 30
22 f(x∗) = 167.443 f(x∗) =167.443 f(x∗) = 167,443
t = 0.296875 t = 0.609375 t = 30
25 f(x∗) =168.669 f(x∗) =168.669 f(x∗) = 168,669
t =0.296875 t =0.078125 t = 30
28 f(x∗) =168.928 f(x∗) =168.928 f(x∗) = 168,928
t =0.296875 t =0.078125 t = 30
31 f(x∗) =168.928 f(x∗) =168.928 f(x∗) = 168,928
t = 0.296875 t = 0.046875 t = 30
34 f(x∗) =175.216 f(x∗) =175.216 f(x∗) =175.216
t =0.28125 t =0.0625 t = 30
37 f(x∗) =179.221 f(x∗) =179.221 f(x∗) =179.221
t =0.28125 t =0.046875 t = 30
40 f(x∗) =180.61 f(x∗) =180.61 f(x∗) =180.61
t =0.2656 t =0.03125 t = 30
43 f(x∗) =180.771 f(x∗) =180.771 f(x∗) =180.771
t = 0.25 t =0.0625 t = 30
46 f(x∗) =180.771 f(x∗) =180.771 f(x∗) =180.771
t = 0.25 t =0.0625 t = 30
49 f(x∗) =180.771 f(x∗) =180.771 f(x∗) =180.771
t = 0.265625 t =0.0625 t = 30
52 f(x∗) =180.771 f(x∗) =180.771 f(x∗) =180.771
t =0.25 t = 0.0625 t = 30
Cuadro 6.3: Resultados para el problema base 2
57
CAPITULO 6. ESTUDIO PARA UN PROBLEMA DE LOCALIZACION 6.4. RESULTADOS
BONMIN Knitro Local Solver
Media (t) 5.278 0.088 30.000
Mınimo (t) 0.203 0.031 30.000
Maximo (t) 23.875 0.593 30.000
Cuadro 6.4: Tiempos para el problema base 1
BONMIN Knitro Local Solver
Media (t) 0.260 0.166 30.000
Mınimo (t) 0.081 0.031 30.000
Maximo (t) 0.343 0.625 30.000
Cuadro 6.5: Tiempos para el problema base 2
58
Capıtulo 7
Conclusiones
Resolver problemas de PNLEM es una tarea difıcil, debido a la combinacion de va-
riables enteras con funciones no lineales. Sin embargo, hemos visto que existen diferentes
tecnicas que permiten abordar algunos de dichos problemas, y de las que hacen uso los
algoritmos estudiados, con el objetivo de encontrar soluciones optimas en el menor tiempo
posible.
Es importante y util diferenciar entre PNLEMs convexos y no convexos, pues los
segundos son mas difıciles de resolver que los primeros, y algunas de las tecnicas aplicables
a los primeros no son validas para los segundos. Por ello, en la memoria hemos diferenciado
entre metodos para PNLEMs convexos, entre los que destaca el algoritmo de ramificacion
y acotacion no lineal, y metodos para PNLEMs no convexos, dentro de los cuales tiene
especial relevancia el algoritmo de ramificacion y acotacion espacial.
Por otro lado, y siguiendo con la diferencia entre PNLEMs convexos y no convexos,
al estudiar los solvers existentes para este tipo de problemas, observamos que es mas
comun que resuelvan problemas convexos que no convexos, al menos de forma exacta.
Este hecho queda especialmente reflejado al realizar los estudios computacionales, donde
el porcentaje de problemas convexos resueltos dobla practicamente al de problemas no
convexos.
Finalmente, con el estudio de un problema de localizacion de PNLEM resuelto para
diferentes datos, confirmamos la dificultad que presenta este tipo de problemas. De los
seis solvers utilizados solo con tres de ellos conseguimos obtener soluciones, BONMIN,
Knitro y Local Solver, y de ellos, unicamente los dos ultimos son capaces de resolver los 30
problemas propuestos, aunque las soluciones proporcionadas por BONMIN y Local Solver
suelen ser mejores que las proporcionados por Knitro. No se puede decir por tanto que uno
de los solvers sea mejor que el otro para el problema particular en cuestion, aunque sı que
dichos solvers parecen abordar el problema de forma mas eficaz que los otros analizados
en la memoria.
En general, y tratando de responder al objetivo de la memoria, podemos decir que no
59
CAPITULO 7. CONCLUSIONES
hay ningun solver que domine claramente a los demas a la hora de resolver problemas de
PNLEM. De entre los estudiados, que son aquellos que ofrecen licencia libre (o de eva-
luacion gratuita) y que pueden ser invocados desde el lenguaje de modeliazacion AMPL,
los solvers BONMIN, COUENNE, Knitro y Local Solver son los que ofrecen mejores so-
luciones sobre los problemas tests empleados en la memoria, siendo Knitro el mas rapido
de ellos, seguido por BONMIN.
60
Apendice A
Formulacion de los problemas test
Incluimos en este capıtulo la formulacion explıcita de los problemas test presentados
en el capıtulo tres.
A pesar de tener 46 problemas, en este capıtulo mostramos unicamente la formulacion
de 27 modelos, ya que para algunos de ellos existen varios ficheros de datos diferentes, que
se pueden obtener de [17] y que especificaremos en el apartado correspondiente a cada
problema.
A.1. BATCH
Fichero de datos:
batch
Conjuntos:
M = {1, · · · ,m}
N = {1, · · · , n}
K = {1, · · · , k}
Variables:
npuj ≥ 0, ≤ log(k)
NPUj ≥ 0, ≤ k, j ∈M
vj ≥ V Lj, ≤ log(vuj), j ∈M
bi ≥ bL0i, ≤ bUPi, i ∈ N
tLi ≥ tL0i, ≤ tUPi, i ∈ N
61
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.2. C-RELOAD
Formulacion:max
∑j∈M
αj exp(npuj + βj)
s.a. vj ≥ log(sij) + bi ∀i ∈ N, ∀j ∈M
npuj + tLi ≥ log tij ∀i ∈ N∀j ∈M∑i∈N
Qi exptLi−bi ≤ H
npuj =∑l∈K
log(l)yij ∀j ∈M∑l∈K
ylj = 1
(batch)
A.2. C-RELOAD
Ficheros de datos para AMPL:
c-reload-14a c-reload-14b c-reload-14d
c-reload-14e c-reload-14f
Variables:
rit ≥ 0, := kfresh/14, i ∈ I, t ∈ T
xilm ∈ {0, 1}, i ∈ I, l ∈ L, m ∈M
kinfit ≥ 0, := kfresh, i ∈ I, t ∈ T
kefft ≥ 0, t ∈ T
phiit ≥ 0, t ∈ T
62
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.3. C-RELOAD-Q
Formulacion:
min∑
e∈EoC
keffe
s.a.∑i∈I
vixilm = 1 ∀l ∈ L, ∀m ∈M∑l∈L
∑m∈M
xilm = 1 ∀i ∈ I
kinfi1 =∑
l∈L,l>1
(∑m∈M
xilm(∑j∈I
vjxj,l−1,mkinfje))+
+ (∑m∈M
xi1m)kfresh ∀i ∈ I, ∀e ∈ EoC∑j∈I
Gijkinfjtrjt = ritkefft ∀i ∈ I, ∀t ∈ T
kinfi,t+1 = kinfit − alfa · conspw · cytime/(card(T )− 1)kinfitrit
∀i ∈ I, ∀t ∈ T − EoC∑i∈I
vikinfitrit = 1 ∀t ∈ T
kinfitrit ≤ flim/∑j∈I
vj ∀i ∈ I, ∀t ∈ T
xd1[n]lm = xd2[n]lm ∀n ∈ ND, ∀l ∈ L, ∀m ∈M(c-reload)
A.3. C-RELOAD-Q
Ficheros de datos:
c-reload-q-24 c-reload-25
c-reload-q-49
Variables:
rit ≥ 0, := kfresh/14, i ∈ I, t ∈ T
xilm ∈ {0, 1}, i ∈ I, l ∈ L, m ∈M
kinfit ≥ 0, := kfresh, i ∈ I, t ∈ T
kefft ≥ 0, t ∈ T
phiit ≥ 0, t ∈ T
63
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.4. C-SCHED
min∑
e∈EoC
keffe
s.a.∑i∈I
vixilm = 1 ∀l ∈ L, ∀m ∈M∑l∈L
∑m∈M
xilm = 1 ∀i ∈ I
kinfi1 =∑
l∈L,l>1
(∑m∈M
xilm(∑j∈I
vjxj,l−1,mkinfje))+
+ (∑m∈M
xi1m)kfresh ∀i ∈ I, ∀e ∈ EoC
kinfi,t+1 = kinfit − alfa · conspw · cytime/(card(T )− 1)kinfitrit
∀i ∈ I, ∀t ∈ T − EoC∑i∈I
vikinfitrit = 1 ∀t ∈ T
kinfitrit ≤ flim/∑j∈I
vj ∀i ∈ I, ∀t ∈ T
kinfitrit ≤ flim/card(I) ∀i ∈ I, ∀t ∈ T(c-reload)
A.4. C-SCHED
Ficheros de datos:
c-sched1 c-sched2
Variables:
tij ≥ 0, i ∈ furn
nij ≥ 0,≤ k i ∈ feeds, j ∈ furn
Fi ≥ Floi,≤ Fupi, i ∈ feeds
Si ≥ 0, i ∈ feeds
dtij ≥ 0, i ∈ feeds, j ∈ furn
Tcycle ≥ 0
yijk ≥ 0,≤ 1,∈ {0, 1} i ∈ feeds, j ∈ furn, k ∈ {0, · · · , k}
64
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.5. FEEDLOC
Formulacion:
max∑
i∈feeds
∑j∈furn
(Cciltil − Csilnil + Cpilnil(1− exp−biltil/nil))/Tcycle
s.a. FloiTcycle+ Si =∑
l∈furn
Diltil ∀i ∈ feeds
Si ≤ (Fupi − Floi)Tcycle ∀i ∈ feeds
nil =∑
k∈{0,··· ,K}
ykkyilk ∀i ∈ feeds, ∀l ∈ furn
1 =∑
k∈{0,··· ,K}
yilk ∀i ∈ feeds, ∀l ∈ furn
dtil = nilτil ∀i ∈ feeds, l ∈ furn∑i∈feeds
dtil ≤ Tcycle ∀l ∈ furn
til ≤ U · (1− yil0) ∀i ∈ feeds, ∀l ∈ furn∑i∈furn
nil ≥ 1, ∀i ∈ feeds, F loi ≥ 0
(c-sched)
A.5. FEEDLOC
Fichero de datos:
feedloc
Variables:
n ≥ 3,≤ N
si ∈ {0, 1}, i ∈ I
wi ∈ {0, 1}, i ∈ I
zi ∈ {0, 1}, i ∈ I
xij ≥ 0,≤ 1 i ∈ I, j ∈ J
yij ≥ 0,≤ 1 i ∈ I, j ∈ J
l ≥ 0
v ≥ 0
p1 ≥ 0,≤ F
r ≥ 0,≤ s
65
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.5. FEEDLOC
Formulacion:
min r
s.a.∑i∈I
wi = 1∑i∈I
si = 1∑i∈I
zi = n∑i∈I
i · si = n∑i∈I\TOP
zi − zi+1 ≥ 0
∑i∈I
i · wi =∑i∈I
i · si
si − zi ≤ 0 ∀i ∈ I
wi − zi ≤ 0 ∀i ∈ I
zi ≤∑
k∈{i,··· ,N}
sk ∀i ∈ I
0 ≤∑j∈J
yij + zi ≤ 2 ∀i ∈ I
0 ≤∑j∈J
yij − zi ≤ 2 ∀i ∈ I
0 ≤∑j∈J
xij + zi ≤ 2 ∀i ∈ I
0 ≤∑j∈J
xij − zi ≤ 2 ∀i ∈ I
(∑k∈J
αkxik)yij − αjxij − bigM(1− zi) ≤ 0 ∀i ∈ I, ∀j ∈ J
(∑k∈J
αkxik)yij − αjxij + bigM(1− zi) ≥ 0 ∀i ∈ I, ∀j ∈ J
l = r · p1
p2 · x1j + v · y1j − (l + F )x2j = 0 ∀j ∈ J
l · x1j + p1 · yij − v · yi−1,j − bigM(1− si) ≤ 0, ∀i ∈ {2, · · · , N}, ∀j ∈ J
l · x1j + p1 · yij − v · yi−1,j + bigM(1− si) ≥ 0, ∀i ∈ {2, · · · , N}, ∀j ∈ J
(l + F ·∑
k∈{i,··· ,N}
wk)xij + v · yij − (l + F ·∑
k∈{i+1,··· ,N}
wk)xi+1,j + v · yi−1,j−
− F · xfjwi − bigM(1− zi + si) ≤ 0, ∀i ∈ {2, · · · , N}, ∀j ∈ J
(l + F ·∑
k∈{i,··· ,N}
wk)xij + v · yij − (l + F ·∑
k∈{i+1,··· ,N}
wk)xi+1,j + v · yi−1,j−
− F · xfjwi + bigM(1− zi + si) ≥ 0, ∀i ∈ {2, · · · , N}, ∀j ∈ J
p1 · yi1 − bigM(1− si) ≤ 0,03 · xf1
(feedloc)
66
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.6. GEARTRAIN
A.6. GEARTRAIN
Fichero de datos:
geartrain
Conjuntos:
I = {1, 2, 3, 4}
Variables:
xi ∈ Z, i ∈ I
Formulacion:
min (1
6,931− x3x2
x1x4
)2
s.a. 12 ≤ xi ≤ 60 ∀i ∈ I(geartrain)
A.7. LBTI-00
Fichero de datos:
lbti-00-15 lbti-00-20
lbti-00-40
Variables:
n ≥ 0,≤ N,∈ Z
yi ∈ Z con i = 1, · · · , N + 1
zij ∈ {0, 1} con i = 1, · · · , N + 1, j ∈ mat
xi := L/(N + 1),≥ 0,≤ L con i = 1, · · · , N + 1
ti ≥ TCOLD,≤ THOT con i = 0, · · · , N + 1
ai := AMIN,≥ 0,≤ AMAX con i = 1, · · · , N + 1
ui ≥ 0 con i = 1, · · · , N + 1
qi ≥ 0 con i = 1, · · · , N + 1
power ≥ 0
vij con i = 1, · · · , N + 1, j ∈ mat
wij con i = 1, · · · , N + 1, j ∈ mat
Ci con i = 1, · · · , N + 1.
67
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.7. LBTI-00
min power
s.a. power =∑
i∈0,··· ,N
yi+1 · Ci · (THOT/ti − 1) · qi+1
−∑
i∈1,··· ,N+1
yi · Ci · (THOT/ti − 1) · qi∑i∈1,··· ,N+1
yi = n+ 1
yi+1 ≤ yi ∀i ∈ {1, · · · , N}∑j∈i,··· ,N+1
xj ≤ L · yi ∀i ∈ {1, · · · , N + 1∑j∈mat
zi,j = yi ∀i ∈ {1, · · · , N + 1∑i∈1,··· ,N+1
xi = L∑i∈1,··· ,N+1,j∈materials
RHOj · zi,j · ai · xi ≤M
xi ≥ EPS · L · yi ∀i ∈ {1, · · · , N + 1}
t0 = TCOLD
ti ≥ THOT · (1− yi+1) ∀i ∈ {1, · · · , N}
tN+1 = THOT
ti − ti−1 ≥ EPS · yi ∀i ∈ {1, · · · , N + 1}
ai ≤ AMAX · yi ∀i ∈ {1, · · · , N + 1}
ai ≥ AMIN · yi ∀i ∈ {1, · · · , N + 1}
ai ·∑
r∈1,··· ,Dj−1
(Si (ti ≥ Tj,r y ti ≤ Tj,r+1) entonces
SIGMAj,r + ((SIGMAj,r+1 − SIGMAj,r)/(Tj,r+1 − Tj,r)) · (ti − Tj,r)) ≥ F · zi,j∀i ∈ {1, · · · , N + 1}, ∀j ∈ mat
ai ·∑
r∈1..Dj−1
(Si (ti−1 ≥ Tj,r y ti−1 ≤ Tj,r+1) entonces
SIGMAj,r + ((SIGMAj,r+1 − SIGMAj,r)/(Tj,r+1 − Tj,r)) · (ti−1 − Tj,r)) ≥ F · zi,j∀i ∈ {1, · · · , N + 1}, ∀j ∈ mat
ai ·∑j∈mat
vi,j · zi,j ≤ xi · qi ∀i ∈ {1, · · · , N + 1}∑j∈mat
wi,j · zi,j ≤ ui ·∑j∈mat
vi,j · zi,j ∀i ∈ {1, · · · , N + 1}∑i∈{1..N+1}
ui ∗ xi ≤ L ∗DELTA/100
(lbti-00-15)
68
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.8. LBTI-01
A.8. LBTI-01
Fichero de datos:
lbti-01-15
Variables:
n ≥ 0,≤ N,∈ Z
yi ∈ Z con i = 1, · · · , N + 1
zij ∈ {0, 1} con i = 1, · · · , N + 1, j ∈ mat
xi := L/(N + 1),≥ 0,≤ L con i = 1, · · · , N + 1
ti ≥ TCOLD,≤ THOT con i = 0, · · · , N + 1
ai := AMIN,≥ 0,≤ AMAX con i = 1, · · · , N + 1
ui ≥ 0 con i = 1, · · · , N + 1
qi ≥ 0 con i = 1, · · · , N + 1
power ≥ 0
vij con i = 1, · · · , N + 1, j ∈ mat
wij con i = 1, · · · , N + 1, j ∈ mat
Ci con i = 1, · · · , N + 1.
69
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.8. LBTI-01
min power
s.a. power =∑
i∈0,··· ,Nyi+1 · Ci · (THOT/ti − 1) · qi+1
−∑
i∈1,··· ,N+1
yi · Ci · (THOT/ti − 1) · qi∑i∈1,··· ,N+1
yi = n+ 1
yi+1 ≤ yi ∀i ∈ {1, · · · , N}∑j∈i,··· ,N+1
xj ≤ L · yi ∀i ∈ {1, · · · , N + 1
∑j∈mat
zi,j = yi ∀i ∈ {1, · · · , N + 1
∑i∈1,··· ,N+1
xi = L
∑i∈1,··· ,N+1,j∈materials
RHOj · zi,j · ai · xi ≤M
xi ≥ EPS · L · yi ∀i ∈ {1, · · · , N + 1}
t0 = TCOLD
ti ≥ THOT · (1− yi+1) ∀i ∈ {1, · · · , N}
tN+1 = THOT
ti − ti−1 ≥ EPS · yi ∀i ∈ {1, · · · , N + 1}
ai ≤ AMAX · yi ∀i ∈ {1, · · · , N + 1}
ai ≥ AMIN · yi ∀i ∈ {1, · · · , N + 1}
ai ·∑
r∈1,··· ,Dj−1(Si (ti ≥ Tj,r y ti ≤ Tj,r+1) entonces
SIGMAj,r + ((SIGMAj,r+1 − SIGMAj,r)/(Tj,r+1 − Tj,r)) · (ti − Tj,r)) ≥ F · zi,j∀i ∈ {1, · · · , N + 1}, ∀j ∈ mat
ai ·∑
r∈1..Dj−1(Si (ti−1 ≥ Tj,r y ti−1 ≤ Tj,r+1) entonces
SIGMAj,r + ((SIGMAj,r+1 − SIGMAj,r)/(Tj,r+1 − Tj,r)) · (ti−1 − Tj,r)) ≥ F · zi,j∀i ∈ {1, · · · , N + 1}, ∀j ∈ mat
ai ·∑
j∈mat
vi,j · zi,j ≤ xi · qi ∀i ∈ {1, · · · , N + 1}
∑j∈mat
wi,j · zi,j ≤ ui ·∑
j∈mat
vi,j · zi,j ∀i ∈ {1, · · · , N + 1}
∑i∈{1..N+1}
ui · xi ≤ L ∗DELTA/100
s1,i + s2,i + s3,i = 1 ∀i ∈ {0, · · · , N + 1}
ti − (TCOLD − 4,2− EPS) · s1,i ≥ 4,2 + EPS ∀i ∈ {0, · · · , N + 1}
ti − (THOT − 71 + EPS) · s3,i ≤ 71− EPS
ti + (THOT − 4,2) · s1,i ≤ THOT
ti + (TCOLD − 71) · s3,i ≥ TCOLD(lbti-00-15)
70
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.9. MITTELMAN
A.9. MITTELMAN
Fichero de datos:
mittelman
Variables:
Yi ≥ 0,≤ 1,∈ {0, 1}, i ∈ I := {1, · · · , 20}
Formulacion:
min 10 · Y5 · Y7 · Y12 · Y13 · Y18 · Y19 · Y20 + 7 · Y1 · Y2 · Y3 · Y4 · Y11 · Y15
+ 1 · Y3 · Y4 · Y6 · Y7 · Y11 + 12 · Y3 · Y4 · Y11 · Y15+
8 · Y6 · Y7 · Y11 · Y16 + 3 · Y6 · Y7 · Y12 · Y18 · Y20 + 1 · Y12 · Y13 · Y18 · Y20+
5 · Y5 · Y13 · Y18 · Y19 · Y20 + 3 · Y1 · Y2 · Y15 · Y16
s.a. 3 · Y5 · Y7 · Y12 · Y13 · Y18 · Y19 · Y20 − 12 · Y1 ∗ Y2 · Y3 · Y4 · Y11 · Y15−
8 · Y3 · Y4 · Y6 · Y7 · Y11 + 1 · Y3 · Y4 · Y11 · Y15−
7 · Y1 · Y2 · Y15 · Y16 + 2 · Y17 · Y18 · Y19 · Y20 ≤ −2
1 · Y1 · Y2 · Y3 · Y4 · Y11 · Y15 − 10 · Y3 · Y4 · Y6 · Y7 · Y11
− 5 · Y6 · Y7 · Y11 · Y16 + 1 · Y6 · Y7 · Y12 · Y18 · Y20+
7 · Y12 · Y13 · Y18 · Y20 + 1 · Y5 · Y13 · Y18 · Y19 · Y20 ≤ −1
5 · Y5 · Y7 · Y12 · Y13 · Y18 · Y19 · Y20 − 3 · Y1 · Y2 · Y3 · Y4 · Y11 · Y15−
1 · Y3 · Y4 · Y6 · Y7 · Y11 − 2 · Y5 · Y13 · Y18 · Y19 · Y20+
1 · Y17 · Y18 · Y19 · Y20 ≤ −1
− 5 · Y5 · Y7 · Y12 · Y13 · Y18 · Y19 · Y20 + 3 · Y1 · Y2 · Y3 · Y4 · Y11 · Y15+
1 · Y3 · Y4 · Y6 · Y7 · Y11 + 2 · Y5 · Y13 · Y18 · Y19 · Y20−
1 · Y17 · Y18 · Y19 · Y20 ≤ 1
− 4 · Y3 · Y4 · Y6 · Y7 · Y11 − 2 · Y3 · Y4 · Y11 · Y15−
5 · Y6 · Y7 · Y12 · Y18 · Y20 + 1 · Y12 · Y13 · Y18 · Y20−
9 · Y5 · Y13 · Y18 · Y19 · Y20 − 2 · Y1 · Y2 · Y15 · Y16 ≤ −3
9 · Y1 · Y2 · Y3 · Y4 · Y11 · Y15 − 12 · Y3 · Y4 · Y11 · Y15−
7 · Y6 · Y7 · Y11 · Y16 + 6 · Y6 · Y7 · Y12 · Y18 · Y20+
2 · Y5 · Y13 · Y18 · Y19 · Y20 − 15 · Y1 · Y2 · Y15 · Y16 + 3 · Y17 · Y18 · Y19 · Y20 ≤ −7
− 8 · Y5 · Y7 · Y12 · Y13 · Y18 · Y19 · Y20 + 5 · Y1 · Y2 · Y3 · Y4 · Y11 · Y15+
2 · Y3 · Y4 · Y6 · Y7 · Y11 − 7 · Y3 · Y4 · Y11 · Y15−
1 · Y6 · Y7 · Y11 · Y16 − 5 · Y12 · Y13 · Y18 · Y20 − 10 · Y1 · Y2 · Y15 · Y16 ≤ −1
(mittelman)
71
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.10. OPTPRLOC
A.10. OPTPRLOC
Fichero de datos:
optprloc
Variables:
xi ≥ li,≤ ui i ∈ K := {1, · · · , 5}
yj ≥ 0,≤ 1,∈ {0, 1}, j ∈ N := {1, · · · , 25}
Formulacion
min − y1 − 0,2 · y2 − y3 − 0,2 · y4 − 0,9 · y5 − 0,9 · y6 − 0,1 · y7
− 0,8 · y8 − y9 − 0,4 · y10 − y11 − 0,3 · y12 − 0,1 · y13
− 0,3 · y14 − 0,5 · y15 − 0,9 · y16 − 0,8 · y17 − 0,1 · y18 − 0,9 · y19
− y20 − y21 − y22 − 0,2 · y23 − 0,7 · y24 − 0,7 · y25 − 0,9 · x2
− 0,5 · x3 + x5 + 0,6 · x21 + 0,1 · x2
4;
s.a.∑j∈K
(Wij · (xj − Zi,j)2)− (1− yi) · h ≤ Ri ∀i ∈ N
x1 − x2 + x3 + x4 + x5 ≤ 10
0,6 · x1 − 0,9 · x2 − 0,5 · x3 + 0,1 · x4 + x5 ≤ −0,64
x1 − x2 + x3 − x4 + x5 ≥ 0,69
0,157 · x1 + 0,05 · x2 ≤ 1,5
0,25 · x2 + 1,05 · x4 − 0,3 · x5 ≥ 4,5
(optrloc)
A.11. SHALE-GAS
Ficheros de datos:
shale-gas-1
Conjuntos:
J = {1, · · · , 6} I = {1, · · · , 4}
Ip = {1, · · · , 4} K = {1, · · · , 42}
kINT = {k ∈ K|ord(k) < card(K)}
Variables:
vjk ≥ 0 j ∈ J, k ∈ K
qjk ≥ 0 j ∈ J, k ∈ K
72
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.11. SHALE-GAS
mjik ≥ 0 j ∈ J, i ∈ I, k ∈ K
pwf2jk ≥ 0 j ∈ J, k ∈ K
mwfjk ≥ 0 j ∈ J, k ∈ K
y1jk ∈ {0, 1} j ∈ J, k ∈ K
y2jk ∈ {0, 1} j ∈ J, k ∈ K
w1jk ≥ 0 j ∈ J, k ∈ K
w2jk ≥ 0 j ∈ J, k ∈ K
73
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.11. SHALE-GAS
Formulacion:
min∑j∈J
∑k∈T
−Gp · (qj,k − 0,05 · vj,k)
s.a.∑j∈J
vj,k ≥ QLOW, ∀k ∈ K∑j∈J
vj,k ≤ QUP ∀k ∈ K
∑j∈J
vj,k ≤ QUP ∀k ∈ K
∑ip∈Ip
Atildej,i,ip ·mj,ip,k+1−
mj,i,k −Btildej,i · qj,k+1 = 0 ∀j ∈ J, ∀i ∈ I, ∀k ∈ K, ord(k) < card(K)
qj,k ≤ BETAj · (mj,1,k −mwfj,k) +M2 · y2j,k ∀j ∈ J, ∀k ∈ K
qj,k ≥ BETAj · (mj,1,k −mwfj,k)−M3 · y2j,k, ∀j ∈ J, ∀k ∈ K
mwfj,k = a · pwf2j,k + b ∀j ∈ J, ∀k ∈ K
pwf2j,k = exp(S) · ((pt2j,k) + ((1/Ct2) · (q2j,k))) ∀k ∈ K
qj,k ≤ QMAX · (1− y2j,k) ∀j ∈ J, ∀k ∈ K
qj,k ≤ BETAj · (mj,1,k −mwfj,k) +M2 · y2j,k ∀j ∈ J, ∀k ∈ K
qj,k ≥ BETAj · (mj,1,k −mwfj,k)−M3 · y2j,k, ∀j ∈ J, ∀k ∈ K
mwfj,k = a · pwf2j,k + b ∀j ∈ J, ∀k ∈ K
pwf2j,k = exp(S) · ((pt2j,k) + ((1/Ct2) · (q2j,k))) ∀k ∈ K
qj,k ≤ QMAX · (1− y2j,k) ∀j ∈ J, ∀k ∈ K
ptj,k ≥ PLINE1 · y1j,k + PLINE2 · (1− y1j,k) ∀j ∈ J, ∀k ∈ K
vj,k ≤ y1j,k ·QMAX ∀j ∈ J, ∀k ∈ K
vj,k ≥ qj,k +QMAX · (y1j,k − 1) ∀j ∈ J, ∀k ∈ K
vj,k ≤ qj,k ∀j ∈ J, ∀k ∈ K
1− y1j,k+1 − y1j,k−1 + y1j,k ≥ 0 ∀j ∈ J, ∀k ∈ K, ord(k) > 1
y1j,k+1 + y1j,k−1 − y1j,k ≥ 0 ∀j ∈ J, ∀k ∈ K, ord(k) > 1
y2j,k − y1j,k−1 + y1j,k ≥ 0 ∀j ∈ J, ∀k ∈ K, ord(k) > 1
y2j,k+1 + y2j,k−1 − y2j,k ≥ 0 ∀j ∈ J, ∀k ∈ K, ord(k) > 1
1− y2j,k+1 − y2j,k−1 + y2j,k ≥ 0 ∀j ∈ J, ∀k ∈ K, ord(k) > 1
qj,k ≥ QGC1 · w1j,k +QGC2 · w2j,k ∀j ∈ J, ∀k ∈ K
w1j,k ≤ 1 ∀j ∈ J, ∀k ∈ K
w1j,k ≤ y1j,k ∀j ∈ J, ∀k ∈ K
w1j,k ≤ (1− y2j,k) ∀j ∈ J, ∀k ∈ K
w1j,k ≥ y1j,k − y2j,k ∀j ∈ J, ∀k ∈ K
w2j,k ≤ 1 ∀j ∈ J, ∀k ∈ K
w2j,k ≤ (1− y1j,k) ∀j ∈ J, ∀k ∈ K
w2j,k ≤ (1− y2j,k) ∀j ∈ J, ∀k ∈ K
w2j,k ≥ 1− y1j,k − y2j,k ∀j ∈ J, ∀k ∈ K
(shale-gas)
74
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.12. SPACE 25
A.12. SPACE 25
Fichero de datos:
space-25
Variables:
Am ≥ 0,1 m ∈ members
Sm := Em · 0,1/Lm m ∈ members
Rmi := sigmam · 0,1
Qm m ∈ members
ud ≥ uld,≤ uud d ∈ dof
zmk ∈ {0, 1}, m ∈ members, k ∈ {1, · · · , Nsize}
stressm = Qm/Am m ∈ members
Formulacion:
min density ·∑
m∈members
Am · Lm
s.a. Sm − Em · Am/Lm = 0 ∀m ∈ members
Rm,y − sigmam · Am = 0 ∀m ∈ members, y ∈ yield
−Qm + Sm ·∑
dindofCm,d · ud = 0 ∀m ∈ members∑m∈members
Cm,d ·Qm − Fd = 0 ∀d ∈ dof
Nm,y ·Qm −Rm,y ≤ 0 ∀m ∈ members, y ∈ yield
Am = A2 ∀m ∈ group1
Am = A6 ∀m ∈ group2
Am = A10 ∀m ∈ group3
Am = A12 ∀m ∈ group4
Am = A14 ∀m ∈ group5
Am = A18 ∀m ∈ group6
Am = A22 ∀m ∈ group7∑i∈1..Nsize
zm,i = 1 ∀m ∈ members∑i∈1..Nsize
zm,i · sizei = Am ∀m ∈ members
(space25)
75
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.13. SPACE 25 R
A.13. SPACE 25 R
Fichero de datos:
space-25-r
Variables:
Am ≥ 0,1 m ∈ members
Qm m ∈ members
ud ≥ uld,≤ uud d ∈ dof
zmk ∈ {0, 1}, m ∈ members, k ∈ {1, · · · , Nsize}
Sm := Em · Am/Lm m ∈ members
Rmi := sigmam · Am
stressm = Qm/Am m ∈ members
Formulacion:
min density ·∑
m∈members
Am · Lm
s.a. −Qm + Sm ·∑
dindofCm,d · ud = 0∑m∈members
Cm,d ·Qm − Fd = 0 ∀d ∈ dof
Nm,y ·Qm −Rm,y ≤ 0, ∀m ∈ members, y ∈ yield
Am = A6 ∀m ∈ group1
Am = A10 ∀m ∈ group2
Am = A12 ∀m ∈ group3
Am = A14 ∀m ∈ group4
Am = A18 ∀m ∈ group5
Am = A22 ∀m ∈ group6∑i∈1..Nsize
zm,i = 1 ∀m ∈ members∑i∈1..Nsize
zm,i · sizei = Am ∀m ∈ members
(space25r)
A.14. SPRING
Fichero de datos:
spring
76
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.15. STOCKCYCLE
Variables:
yi ∈ {0, 1} i ∈ I
D ≥ 2 · dmin
d ≥ dmin,≤ 0,5
N ≥ 1,≤ 100,∈ Z
C ≥ 1,1
K
del ≥ 0
Formulacion:
min pi ·D · d2 · (N + 2)/4
s.a. C = D/d
S ≥ 8 · Pmax ·K ·D/(pi · d3)del = 8 · (N ·D3)/(G · d4)
lmax ≥ Pmax · del + 1,05 · (N + 2) · d
Dmax ≥ D + d
delm ≥ Pload · del
delw ≤ (Pmax− Pload) · del
d =∑i∈I
(bi · yi)
1 =∑i∈I
(yi)
(spring)
A.15. STOCKCYCLE
Fichero de datos:
stockcycle
Conjuntos:
nn = {1, · · · , 48}
mm = {1, · · · , 9}
Variables:
yi ≥ Y1,≤ Ym,∈ Z i ∈ nn
zij ≥ 0,≤ 1,∈ Z i ∈ nn, j ∈ mm
77
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.16. SYNTHES 1
Formulacion:min
∑i∈nn
1,5 ∗Dvi/yi
s.a.∑j∈mm
zi,j ∗ Yj = yi ∀i ∈ nn∑j∈mm
zi,j = 1 ∀i ∈ nn(stockcycle)
A.16. SYNTHES 1
Fichero de datos:
synthes1
Conjuntos:
I = {1, 2, 3}
Variables:
xi ≥ 0,≤ ui i ∈ I
yi ∈ {0, 1} i ∈ I
Formulacion:
min 5 · y1 + 6 · y2 + 8 · y3 + 10 · x1 − 7 · x3 − 18 · log(x2 + 1)
− 19,2 · log(x1 − x2 + 1) + 10
s.a. 0,8 · log(x2 + 1) + 0,96 · log(x1 − x2 + 1)− 0,8 · x3 ≥ 0
log(x2 + 1) + 1,2 · log(x1 − x2 + 1)− x3 − 2 · y3 ≥ −2
x2 − x1 ≤ 0
x2 − 2 · y1 ≤ 0
x1 − x2 − 2 · y2 ≤ 0
y1 + y2 ≤ 1
(synthes1)
A.17. SYNTHES 2
Fichero de datos:
synthes2
78
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.18. SYNTHES 3
Conjuntos:
I = {1, · · · , 6}
J = {1, · · · , 5}
Variables:
xi ≥ 0,≤ ui i ∈ I
yj ∈ {0, 1} j ∈ J
Formulacion:
min 5 · y1 + 8 · y2 + 6 · y3 + 10 · y4 + 6 · y5 − 10 · x1−
15 · x2 − 15 · x3 + 15 · x4 + 5 · x5 − 20 · x6 + exp(x1)+
exp(0,833333 · x2)− 60 · log(x4 + x5 + 1) + 140
s.a. − log(x4 + x5 + 1) ≤ 0 exp(x1)− 10 · y1 ≤ 1
exp(0,833333 · x2)− 10 · y2 ≤ 1
1,25 · x3 − 10 · y3 ≤ 0
x4 + x5 − 10 · y4 ≤ 0
− 2 · x3 + 2 · x6 − 10 · y5 ≤ 0
− x1 − x2 − 2 · x3 + x4 + 2 · x6 ≤ 0
− x1 − x2 − 0,75 · x3 + x4 + 2 · x6 ≤ 0
x3 − x6 ≤ 0
2 · x3 − x4 − 2 · x6 ≤ 0
− 0,5 · x4 + x5 ≤ 0
− 0,2 · x4 − x5 ≤ 0
y1 + y2 = 1
y4 + y5 ≤ 1
(synthes2)
A.18. SYNTHES 3
Ficheros de datos:
synthes3
Conjuntos:
I := {1, · · · , 9} J := {1, · · · , 8}
Variables:
79
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.18. SYNTHES 3
xi ≥ 0,≤ ui con i ∈ I
yj ∈ {0, 1} con j ∈ J
min 5 · y1 + 8 · y2 + 6 · y3 + 10 · y4
+ 6 · y5 + 7 · y6 + 4 · y7 + 5 · y8
− 10 · x1 − 15 · x2 + 15 · x3 + 80 · x4 + 25 · x5
+ 35 · x6 − 40 · x7 + 15 · x8 − 35 · x9 + exp(x1) + exp(0,833333 · x2)−
65 · log(x3 + x4 + 1)− 90 · log(x5 + 1)− 80 · log(x6 + 1) + 120
s.a. − 1,5 · log(x5 + 1)− log(x6 + 1)− x8 ≤ 0
− log(x3 + x4 + 1) ≤ 0
− x1 − x2 + x3 + 2 · x4 + 0,8 · x5 + 0,8 · x6 − 0,5 · x7 − x8 − 2 · x9 ≤ 0
− x1 − x2 + 2 · x4 + 0,8 · x5 + 0,8 · x6 − 2 · x7 − x8 − 2 · x9 ≤ 0
− 2 · x4 − 0,8 · x5 − 0,8 · x6 + 2 · x7 + x8 + 2 · x9 ≤ 0
− 0,8 · x5 − 0,8 · x6 + x8 ≤ 0
− x4 + x7 + x9 ≤ 0
− 0,4 · x5 − 0,4 · x6 + 1,5 · x8 ≤ 0
0,16 · x5 + 0,16 · x6 − 1,2 · x8 ≤ 0
x3 − 0,8 · x4 ≤ 0
− x3 + 0,4 · x4 ≤ 0
exp(x1)− 10 · y1 ≤ 1
exp(0,833333 · x2)− 10 · y2 ≤ 1
x7 − 10 · y3 ≤ 0
0,8 · x5 + 0,8 · x6 − 10 · y4 ≤ 0
2 · x4 − 2 · x7 − 2 · x9 − 10 · y5 ≤ 0
x5 − 10 · y6 ≤ 0
x6 − 10 · y7 ≤ 0
x3 + x4 − 10 · y8 ≤ 0
y1 + y2 = 1
y4 + y5 ≤ 1
− y4 + y6 + y7 = 0
y3 − y8 ≤ 0
(A.1)
80
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.19. TRIMLOM
A.19. TRIMLOM
Fichero de datos:
trimlom2 trimlom4
trimlom5 trimlom6
trimlom7
Variables:
vj ≥ 0,≤ 1,∈ {0, 1} con j ∈ J
mj ≥ 0,≤M,∈ Z, := 1 con j ∈ J
nij ≥ 0,≤ Nmax,∈ Z, := 1 con i ∈ I y j ∈ J
Formulacion:
min∑jinJ
(cj ·mj + Cj · yj)
s.a.∑iinI
(bi · ni,j)−Bmax ≤ 0, ∀j ∈ J∑iinI
(bi · ni,j) +Bmax−Delta ≤ 0 ∀j ∈ J∑iinI
(ni,j)−Nmax ≤ 0 ∀j ∈ J
yj −mj ≤ 0 ∀j ∈ J
mj −M · yj ≤ 0 ∀j ∈ J
nordi −∑jinJ
(mj · ni,j) ≤ 0 ∀i ∈ I
(trimlom)
A.20. TRIMLOSS
Fichero de datos:
trimloss2 trimloss4
trimloss5 trimloss6
trimloss7
Variables:
yj ∈ {0, 1}, := 1 con j ∈ J
betajl ∈ {0, 1} con j ∈ J y l ∈ {1, · · · , L[j]}
zik ∈ {0, 1} con i ∈ I y k ∈ {1, · · · , K[i]}
81
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.21. WIND-FAC
Mj ≥ 1 con j ∈ J .
Nij ≥ 1 con i ∈ I y j ∈ J .
Formulacion:
min∑j∈J
(cj · (∑
l∈1..Lj
(betaj,l · l)) + Cj · yj)
s.a.∑i∈I
(bi · (∑
k∈1..Ki
zi,j,k · k)) ≤ Bmax ∀j ∈ J∑i∈I
(bi · (∑
k∈1..Ki
zi,j,k · k)) ≥ Bmax−Delta ∀j ∈ J∑i∈I
(∑
k∈1..Ki
zi,j,k · k) ≤ Nmax ∀j ∈ Jyj −∑
l∈1..Lj
(betaj,l · l) ≤ 0
∑l∈1..Lj
(betaj,l · l)− Lj · yj ≤ 0 ∀j ∈ J
Mj = 1 +∑
l∈1..Lj
(betaj,l · l · (l + 2)) ∀j ∈ J
∑l∈1..Lj
betaj,l ≤ 1 ∀j ∈ J
Ni,j = 1 +∑
k∈1..Ki
(zi,j,k · k · (k + 2)) ∀i ∈ I, ∀j ∈ J∑k∈1..Ki
zi,j,k ≤ 1 ∀i ∈ I, ∀j ∈ J
nordi + card(J)−∑j∈J
sqrt(Mj ·Ni,j)
+∑j∈J
(∑
l∈1..Lj
(betaj,l · l)
+∑
k∈1..Ki
(zi,j,k · k)) ≤ 0 ∀i ∈ I
(trimloss)
A.21. WIND-FAC
Fichero de datos:
wind-fac
Variables:
q ≥ 1,≤ 10,∈ Z
Nz ≥ 1,≤ 10,∈ Z
alpha2 := 1,5
tauz := 1,0
82
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.22. T-12-23-P1
q ≥ 1,∈ Z
kz1, kz3, kz5, kz7, kz9.
ks1, ks3, ks5
kw, kw1 ≥ 0,8, kw5, kz7, kz9.
Formulacion:
min kw
s.a. Nz = 2 ·ms · q · p
alfae = (2 · pi · p)/Nz
tauz = Nz/(2 · p)
s = tauz − ns
kz1 = sin(q · alfae/2)/(q · sin(alfae/2))
ks1 = sin((s · pi)/(tauz · 2))
kw1 = ks1 · kz1
kz3 = sin(3 · q · alfae/2)/(q · sin(3 · alfae/2))
ks3 = sin((3 · s · pi)/(tauz · 2))kw3 = ks3 · kz3
kz5 = sin(5 · q · alfae/2)/(q · sin(5 · alfae/2))
ks5 = sin((5 · s · pi)/(tauz · 2))kw5 = ks5 · kz5
kw = kw3 · kw3 + kw5 · kw5
(windfac)
A.22. T-12-23-p1
Variables:
x1, x2 ≥ 0
yj ∈ {0, 1} con j ∈ {1, 2, 3}.
Formulacion:
min 2x1 + 3x2 + 1,5y1 + 2y2 − 0,5y3
s.a. x21 + y1 = 1,25
x1,52 + 1,5y2 = 3
x1 + y1 ≤ 1,6
1,333x2 + y2 ≤ 3
− y1 − y2 + y3 ≤ 0
(T-12-23-p1)
83
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.23. T-12-23-P2
A.23. T-12-23-p2
Variables:
x1 ≥ 0,2,≤ 1
x2 ≥ −2,22554,≤ −1
y ∈ {0, 1}
Formulacion:
min − 0,7y + 5(x1 − 0,5)2 + 0,8
s.a. − e(x1−0,2) − x2 ≤ 0
x2 + 1,1y ≤ 1
x1 − 1,2y ≤ 0,2
(T-12-23-p2)
A.24. T-12-23-p3
Conjuntos:
I := 1, · · · , 3
J := 1, · · · , 4
Variables:
xi ≥ 0 con i ∈ I
yj ≥ 0,∈ {0, 1} con j ∈ J .
Formulacion:
min (y1 − 1)2 + (y2 − 2)2 + (y3 − 1)2−
log(y4 + 1) + (x1 − 1)2 + (x2 − 2) · (x2 − 2) + (x3 − 3)2
s.a. y1 + y2 + y3 + x1 + x2 + x3 ≤ 5
y3 · y3 + x21 + x2
2 + x23 ≤ 5,5
y1 + x1 ≤ 1,2
y2 + x2 ≤ 1,8
y3 + x3 ≤ 2,5
y4 + x1 ≤ 1,2
y”2 + x2
2 ≤ 1,64
y23 + x2
3 ≤ 4,25
y22 + x2
3 ≤ 4,64
(T-12-23-p3)
84
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.25. T-12-23-P4
A.25. T-12-23-p4
Conjuntos:
I := 1, · · · , 3
J := 1, · · · , 8
Variables:
xi ≥ 0,≤ 1 con i ∈ I
yj ≥ 0,∈ {0, 1} con j ∈ J .
Formulacion:
min − x1 · x2 · x3
s.a. x1 + (0,1y1) · (0,2y2) · (0,15y3) = 1
x2 + (0,05y4) · (0,2y5) · (0,15y6) = 1
x3 + (0,02y7) · (0,06y8) = 1
− y1 − y2 − y3 ≤ −1
− y4 − y5 − y6 ≤ −1
− y7 − y8 ≤ −1
3 · y1 + y2 + 2 · y3 + 3 · y4 + 2 · y5 + y6 + 3 · y7 + 2 · y8 ≤ 10
(T-12-23-p4)
A.26. T-12-23-p5
Conjuntos:
J := 1, · · · , 2
Variables:
yj ≥ 1,≤ 5,∈ Z con j ∈ J .
Formulacion:
85
APENDICE A. FORMULACION DE LOS PROBLEMAS TEST A.27. T-12-23-P6
min 7 · y1 + 10 · y2
s.a. (y1,21 ) · (y1,7
2 )− 7 · y1 − 9 · y2 ≤ 24
− y1 − 2 · y2 ≤ 5
− 3 · y1 + y2 ≤ 1
4 · y1 − 3 · y2 ≤ 11
(T-12-23-p5)
A.27. T-12-23-p6
Variables:
x ≥ 1,≤ 10
y ≥ 1,≤ 6,∈ Z
Formulacion:
min 3 · y − 5 · x
s.a. 2 · y · y − 2 · (y0,5)− 2 · (x0,5) · (y2) + 11 · y + 8 · x ≤ 39
− y + x ≤ 3
2 · y + 3 · x ≤ 24
(T-12-23-p6)
86
Bibliografıa
[1] Neos server: State-of-the-art solvers for numerical optimization. https://
neos-server.org/neos/.
[2] P. Belotti, C. Kirches, S. Leyffer, J. Linderoth, J. Luedtke, and A. Mahajan. Mixed-
integer nonlinear optimization. Acta Numerica, 22:1–131, 2012.
[3] P. Bonami, M. Kilin, and J. Linderoth. Algorithms and software for convex mixed
integer nonlinear programs. In Mixed integer nonlinear programming, pages 1–39.
Springer, 2012.
[4] S. Burer and A. Letchford. Non-convex mixed-integer nonlinear programming: a
survey. Surveys in Operations Research and Management Science, 17(2):97–106, 2012.
[5] M. Bussieck and S. Vigerske. MINLP solver software. Wiley encyclopedia of opera-
tions research and management science, 2010.
[6] R. Dakin. A tree-search algorithm for mixed integer programming problems. The
computer journal, 8(3):250–255, 1965.
[7] C. D’Ambrosio and A. Lodi. Mixed integer nonlinear programming tools: an updated
practical overview. Annals of Operations Research, 204(1):301–320, 2013.
[8] E. Danna, E. Rothberg, and C. Le Pape. Exploring relaxation induced neighborhoods
to improve MIP solutions. Mathematical Programming, 102(1):71–90, 2005.
[9] M. Duran and I. Grossmann. An outer-approximation algorithm for a class of mixed-
integer nonlinear programs. Mathematical Programming, 36(3):307–339, 1986.
[10] C.A. Floudas and P.M. Pardalos. Handbook of test problems in local and global opti-
mization. Nonconvex optimization and its applications. Kluwer Academic Publishers,
1999.
[11] R. Fourer, D. Gay, and B. Kernighan. AMPL: A Modelling Language for Mathema-
tical Programming. Duxbury Press, 2003.
[12] I. Gentilini, F. Margot, and K. Shimada. The travelling salesman problem with
neighbourhoods: MINLP solution. Optimization Methods and Software, 28(2):364–
378, 2013.
87
BIBLIOGRAFIA BIBLIOGRAFIA
[13] O. Gupta and A Ravindran. Branch and bound experiments in convex nonlinear
integer programming. Management Science, 31(12):1533–1546, 1985.
[14] P. M. Ortigosa J. Fernandez, J. L. Redondo and B. G.-Toth. A Huff-like single facility
location and design problem with closing and/or modification of existing facilities.
Proceedings of the 2016 International Conference on Management and Operations
Research, pages 170–174, 2016.
[15] A. H. Land and A. G. Doig. An automatic method for solving discrete programming
problems. Econometrica, 28(3):497–520, 1960.
[16] J. Lee and S. Leyffer. Mixed integer nonlinear programming, volume 154. Springer
Science & Business Media, 2011.
[17] S. Leyffer. MacMINLP: AMPL collection of MINLP. https://wiki.mcs.anl.gov/
leyffer/index.php/MacMINLP. Accessed: 2016-07-10.
[18] L. Liberti. Introduction to global optimization. Lecture of Ecole Polytechnique,
Palaiseau F, 91128:12, 2008.
[19] A. Lodi. Local branching: a tutorial. MIC2003, Kyoto, 2003.
[20] H. Marchand and L. Wolsey. Aggregation and mixed integer rounding to solve MIPs.
Operations Research, 49(3):363–371, 2001.
[21] G. Nannicini and P. Belotti. Rounding-based heuristics for nonconvex MINLPs.
Mathematical Programming Computation, 4(1):1–31, 2012.
[22] I. Quesada and I. Grossmann. An LP/NLP based branch and bound algorithm for
convex MINLP optimization problems. Computers & Chemical Engineering, 16(10-
11):937–947, 1992.
[23] F. Trespalacios and I. Grossmann. Review of mixed-integer nonlinear and generalized
disjunctive programming methods. Chemie Ingenieur Technik, 86(7):991–1012, 2014.
[24] T. Westerlund and F. Pettersson. An extended cutting plane method for solving
convex MINLP problems. Computers & Chemical Engineering, 19:131–136, 1995.
88