100
Facultad de Matem´ aticas Universidad de Murcia Comparativa de subrutinas para la resoluci´ on de problemas de optimizaci´on no lineales enteros mixtos Ana Bel´ en Mar´ ın Valverde Dirigido por: Jos´ e Fern´ andezHern´andez Curso 2015/16

Comparativa de subrutinas para la resoluci on de problemas

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Comparativa de subrutinas para la resoluci on de problemas

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

Page 2: Comparativa de subrutinas para la resoluci on de problemas
Page 3: Comparativa de subrutinas para la resoluci on de problemas

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.

Page 4: Comparativa de subrutinas para la resoluci on de problemas
Page 5: Comparativa de subrutinas para la resoluci on de problemas

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

Page 6: Comparativa de subrutinas para la resoluci on de problemas

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-

Page 7: Comparativa de subrutinas para la resoluci on de problemas

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.

Page 8: Comparativa de subrutinas para la resoluci on de problemas
Page 9: Comparativa de subrutinas para la resoluci on de problemas

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.

Page 10: Comparativa de subrutinas para la resoluci on de problemas

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.

Page 11: Comparativa de subrutinas para la resoluci on de problemas

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.

Page 12: Comparativa de subrutinas para la resoluci on de problemas
Page 13: Comparativa de subrutinas para la resoluci on de problemas

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

Page 14: Comparativa de subrutinas para la resoluci on de problemas

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

Page 15: Comparativa de subrutinas para la resoluci on de problemas

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

Page 16: Comparativa de subrutinas para la resoluci on de problemas

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

Page 17: Comparativa de subrutinas para la resoluci on de problemas

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

Page 18: Comparativa de subrutinas para la resoluci on de problemas

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

Page 19: Comparativa de subrutinas para la resoluci on de problemas

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

Page 20: Comparativa de subrutinas para la resoluci on de problemas

CAPITULO 1. INTRODUCCION 1.2. NOCIONES BASICAS

8

Page 21: Comparativa de subrutinas para la resoluci on de problemas

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

Page 22: Comparativa de subrutinas para la resoluci on de problemas

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

Page 23: Comparativa de subrutinas para la resoluci on de problemas

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

Page 24: Comparativa de subrutinas para la resoluci on de problemas

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

Page 25: Comparativa de subrutinas para la resoluci on de problemas

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

Page 26: Comparativa de subrutinas para la resoluci on de problemas

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

Page 27: Comparativa de subrutinas para la resoluci on de problemas

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

Page 28: Comparativa de subrutinas para la resoluci on de problemas

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

Page 29: Comparativa de subrutinas para la resoluci on de problemas

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

Page 30: Comparativa de subrutinas para la resoluci on de problemas

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

Page 31: Comparativa de subrutinas para la resoluci on de problemas

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

Page 32: Comparativa de subrutinas para la resoluci on de problemas

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

Page 33: Comparativa de subrutinas para la resoluci on de problemas

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

Page 34: Comparativa de subrutinas para la resoluci on de problemas

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

Page 35: Comparativa de subrutinas para la resoluci on de problemas

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

Page 36: Comparativa de subrutinas para la resoluci on de problemas

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

Page 37: Comparativa de subrutinas para la resoluci on de problemas

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

Page 38: Comparativa de subrutinas para la resoluci on de problemas

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

Page 39: Comparativa de subrutinas para la resoluci on de problemas

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

Page 40: Comparativa de subrutinas para la resoluci on de problemas

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

Page 41: Comparativa de subrutinas para la resoluci on de problemas

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

Page 42: Comparativa de subrutinas para la resoluci on de problemas

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

Page 43: Comparativa de subrutinas para la resoluci on de problemas

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

Page 44: Comparativa de subrutinas para la resoluci on de problemas

CAPITULO 2. METODOS PARA LA RESOLUCION DE PNLEM 2.3. METODOS HEURISTICOS

32

Page 45: Comparativa de subrutinas para la resoluci on de problemas

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

Page 46: Comparativa de subrutinas para la resoluci on de problemas

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

Page 47: Comparativa de subrutinas para la resoluci on de problemas

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

Page 48: Comparativa de subrutinas para la resoluci on de problemas

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

Page 49: Comparativa de subrutinas para la resoluci on de problemas

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

Page 50: Comparativa de subrutinas para la resoluci on de problemas

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

Page 51: Comparativa de subrutinas para la resoluci on de problemas

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

Page 52: Comparativa de subrutinas para la resoluci on de problemas

CAPITULO 3. SOLVERS PARA PNLEM

40

Page 53: Comparativa de subrutinas para la resoluci on de problemas

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

Page 54: Comparativa de subrutinas para la resoluci on de problemas

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

Page 55: Comparativa de subrutinas para la resoluci on de problemas

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

Page 56: Comparativa de subrutinas para la resoluci on de problemas

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

Page 57: Comparativa de subrutinas para la resoluci on de problemas

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

Page 58: Comparativa de subrutinas para la resoluci on de problemas

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

Page 59: Comparativa de subrutinas para la resoluci on de problemas

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

Page 60: Comparativa de subrutinas para la resoluci on de problemas

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

Page 61: Comparativa de subrutinas para la resoluci on de problemas

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

Page 62: Comparativa de subrutinas para la resoluci on de problemas

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

Page 63: Comparativa de subrutinas para la resoluci on de problemas

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

Page 64: Comparativa de subrutinas para la resoluci on de problemas

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

Page 65: Comparativa de subrutinas para la resoluci on de problemas

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

Page 66: Comparativa de subrutinas para la resoluci on de problemas

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

Page 67: Comparativa de subrutinas para la resoluci on de problemas

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

Page 68: Comparativa de subrutinas para la resoluci on de problemas

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

Page 69: Comparativa de subrutinas para la resoluci on de problemas

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

Page 70: Comparativa de subrutinas para la resoluci on de problemas

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

Page 71: Comparativa de subrutinas para la resoluci on de problemas

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

Page 72: Comparativa de subrutinas para la resoluci on de problemas

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

Page 73: Comparativa de subrutinas para la resoluci on de problemas

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

Page 74: Comparativa de subrutinas para la resoluci on de problemas

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

Page 75: Comparativa de subrutinas para la resoluci on de problemas

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

Page 76: Comparativa de subrutinas para la resoluci on de problemas

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

Page 77: Comparativa de subrutinas para la resoluci on de problemas

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

Page 78: Comparativa de subrutinas para la resoluci on de problemas

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

Page 79: Comparativa de subrutinas para la resoluci on de problemas

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

Page 80: Comparativa de subrutinas para la resoluci on de problemas

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

Page 81: Comparativa de subrutinas para la resoluci on de problemas

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

Page 82: Comparativa de subrutinas para la resoluci on de problemas

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

Page 83: Comparativa de subrutinas para la resoluci on de problemas

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

Page 84: Comparativa de subrutinas para la resoluci on de problemas

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

Page 85: Comparativa de subrutinas para la resoluci on de problemas

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

Page 86: Comparativa de subrutinas para la resoluci on de problemas

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

Page 87: Comparativa de subrutinas para la resoluci on de problemas

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

Page 88: Comparativa de subrutinas para la resoluci on de problemas

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

Page 89: Comparativa de subrutinas para la resoluci on de problemas

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

Page 90: Comparativa de subrutinas para la resoluci on de problemas

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

Page 91: Comparativa de subrutinas para la resoluci on de problemas

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

Page 92: Comparativa de subrutinas para la resoluci on de problemas

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

Page 93: Comparativa de subrutinas para la resoluci on de problemas

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

Page 94: Comparativa de subrutinas para la resoluci on de problemas

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

Page 95: Comparativa de subrutinas para la resoluci on de problemas

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

Page 96: Comparativa de subrutinas para la resoluci on de problemas

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

Page 97: Comparativa de subrutinas para la resoluci on de problemas

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

Page 98: Comparativa de subrutinas para la resoluci on de problemas

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

Page 99: Comparativa de subrutinas para la resoluci on de problemas

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

Page 100: Comparativa de subrutinas para la resoluci on de problemas

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