shgo: simplicial homology global optimisation · shgo: simplicial homology global optimisation...

16
shgo: Simplicial homology global optimisation Stefan C. Endres, Carl Sandrock, Walter W. Focke Institute of Applied Materials, Department of Chemical Engineering, University of Pretoria, Lynnwood Rd, Hatfield, Pretoria, 0002, South Africa Abstract The simplicial homology global optimisation (shgo) algorithm is a general purpose global optimisation algorithm based on applications of simplicial in- tegral homology and combinatorial topology. The shgo algorithm has proven convergence properties on problems with non-linear objective functions and constraints. The software shows highly competitive performance compared to both open source and commercial software capable of solving derivative free black and grey box optimisation problems. Keywords: Global optimization, shgo, Computational homology Mathematics Subject Classification (2010) 90C26 Nonconvex programming, global optimisation 1. Motivation and significance 1 1.1. Global optimisation of constrained derivative free optimisation problems 2 A wide range of real-world problems can be formally stated as CDFO 3 (constrained derivative free optimisation) problems. Derivative free problems 4 are usually either black-box or noisy for which deterministic optimisation 5 methods are unsuited to solve. A recent review article [1] cites 36 separate 6 studies with significant applications in the fields of mechanical, aerospace, 7 civil, chemical and biomedical engineering as well as computational chem- 8 istry. 9 In general, the optimisation problems are of the form: 10 min x f (x), x R n s.t. g i (x) 0, i =1, ..., m h j (x)=0, j =1, ..., p where: 11 Preprint submitted to SoftwareX May 13, 2018

Upload: others

Post on 01-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

shgo: Simplicial homology global optimisation

Stefan C. Endres, Carl Sandrock, Walter W. Focke

Institute of Applied Materials, Department of Chemical Engineering, University ofPretoria, Lynnwood Rd, Hatfield, Pretoria, 0002, South Africa

Abstract

The simplicial homology global optimisation (shgo) algorithm is a generalpurpose global optimisation algorithm based on applications of simplicial in-tegral homology and combinatorial topology. The shgo algorithm has provenconvergence properties on problems with non-linear objective functions andconstraints. The software shows highly competitive performance comparedto both open source and commercial software capable of solving derivativefree black and grey box optimisation problems.

Keywords: Global optimization, shgo, Computational homology

Mathematics Subject Classification (2010) 90C26 Nonconvexprogramming, global optimisation

1. Motivation and significance1

1.1. Global optimisation of constrained derivative free optimisation problems2

A wide range of real-world problems can be formally stated as CDFO3

(constrained derivative free optimisation) problems. Derivative free problems4

are usually either black-box or noisy for which deterministic optimisation5

methods are unsuited to solve. A recent review article [1] cites 36 separate6

studies with significant applications in the fields of mechanical, aerospace,7

civil, chemical and biomedical engineering as well as computational chem-8

istry.9

In general, the optimisation problems are of the form:10

minx

f(x), x ∈ Rn

s.t. gi(x) ≥ 0, ∀i = 1, ...,m

hj(x) = 0, ∀j = 1, ..., p

where:11

Preprint submitted to SoftwareX May 13, 2018

• x is a vector of one or more variables.12

• f(x) is the objective function f : Rn → R.13

• gi(x) are the inequality constraints g : Rn → Rm.14

• hj(x) are the equality constraints h : Rn → Rp.15

Many black-box algorithms require lower and upper bounds xl ≤ xi ≤ xu16

for each element in x to be specified. While this may greatly increase the17

speed of convergence, it is not a requirement for shgo.18

The objective function f usually contains computationally expensive mod-19

els such as large systems of partial differential equations coupled with non-20

linear equations. Another example is where f is the result of a simulation21

using closed source proprietary software.22

The simplicial homology global optimisation algorithm is appropriate for23

solving general purpose black-box optimisation problems to global optimality.24

Most of the theoretical advantages of shgo have been proven for the case25

where f(x) is a Lipschitz smooth function [2]. The algorithm is also proven26

to converge to the global optimum for the more general case where f(x) is27

non-continuous, non-convex and non-smooth iff the default sampling method28

is used [].29

1.2. Simplicial homology global optimisation30

In order to understand the properties of shgo some background theory31

is required. An important facet of shgo is the concept of homology group32

growth which can be used by an optimisation practitioner as a visual guide33

of the number of local and global solutions to a problem of arbitrarily high34

dimensions. In addition a measure of the mutli-modality and the geometric35

sparsity of solutions of the optimisation problem instance can be deduced.36

In brief the algorithm utilises concepts from combinatorial integral ho-37

mology theory to find sub-domains which are, approximately, locally convex38

and provides characterisations of the objective function as the algorithm pro-39

gresses. This is accomplished in several steps. First the construction of a40

simplicial complexH built up from the sampling points mapped through f as41

vertices following the constructions described in [2]. Next a homomorphism42

is found between H and K; another simplicial complex which exists on an ab-43

stract constructed surface S. The n-dimensional manifold S is a connected44

g sum of g tori S := S0 #S1 # · · · #Sg−1. Figures 1 and 2 demonstrate45

this construction geometrically in the 2-dimensional case. By using an ex-46

tension of Brouwer’s fixed point theorem [3] adapted to handle non-linear47

2

constraints, it is proven that each of the ”minimiser points” in Figure 1 cor-48

responds to a sub-domain containing a unique local-minima when the prob-49

lem is adequately sampled. Through the Invariance Theorem [3] and the50

Eilenberg-Steenrod Axioms [4, 3] we draw another homomorphism between51

the surfaces of f and S.52

We use the known properties of S to deduce properties of the unknown53

function f . The most important corresponding property is the homology54

groups of S denoted as Hi(S). The rank of one of the groups H1(S) is proven55

to correspond to the number of local minima in f . As sampling increases56

and more local minima are found, so does the rank of H1(S) increase. When57

using uniform sampling, this provides an indication of its multi-modality and58

the sparsity of the solutions. Furthermore it was proven in [2] that the rank59

of H1(S) cannot increase beyond the true number of local minima in f after60

adequate sampling. Finally, using the Abelian properties of the homology61

groups we extend all our previous previously proven properties to hold across62

non-linear discontinuities as demonstrated geometrically in Figure 3. These63

properties and their extensions were rigorously proven in [].64

2. Software description65

2.1. Software Architecture66

The module contains only one major class called SHGO which can be67

used to initiate an optimisation instance. The SHGO class is initiated with68

the required inputs of an objective function f and the boundaries placed on69

the variables x (which can be specified as infinite in one or both directions for70

any variable xi). Optional arguments include the constraint functions g and h71

as well as the two built in sampling methods called ’sobol’ and ’simplicial’. A72

custom sampling method can easily be implemented by inputting a function73

with the same inputs and outputs as the SHGO.sobol points 40 method.74

The number of sampling points and the number of algorithm iterations can75

also be optionally specified. Finally any local minimisation routine from the76

available algorithms in scipy.optimize.minimize can be specified.77

The SHGO.construct complex method can be used to run the algo-78

rithm for the selected number of iterations. The SHGO.iterate method can79

also be used to run a single iteration of shgo. The shgo function in the base80

file will (i) initiate an instance of SHGO, (ii) run SHGO.construct complex81

and (iii) do a post-processing check to detect possible routine failures or con-82

firm success before returning the results contained in SHGO.res.83

SHGO.res contains the main results of the optimization routine at the84

current iteration as well as other convergence information. SHGO.res.x85

contains the solution corresponding to the global minimum, SHGO.res.f is86

3

v1v1

v1 v1 v2 v2

v2v2

∼=

∼=

∼=

∼=

∼=

∼=

∼=

Figure 1: The process of puncturing a hypersphere at a minimiser point in a compactsearch space. Start by identifying a minimiser point in the H1 (∼= K1) graph. Byconstruction, our initial complex exists on the (hyper-)surface of an n-dimensional torusS0 such that the rest of K1 is connected and compact. We puncture a hypersphere at theminimiser point and identify the resulting edges (or (n−1)-simplices in higher dimensionalproblems). Next we shrink (a topological (ie continuous) transformation) the remainderof the simplicial complex to the faces and vertices of our (hyper-)plane model. Make theappropriate identifications for S0 and glue the identified and connected face z (a (n− 1)-simplex) that resulted from the hypersphere puncture. The other faces (ie (n−1)-simplices)are connected in the usual way for tori constructions)

4

Figure 2: The process of puncturing a new hypersphere on S0 #S1 can be re-peated for any new minimiser point without loss of generality producing S :=S0 #S1 # · · · #Sg−1 (g times)

the function output at the global solution. An ordered list of local minima87

solutions and their function outputs is also included in SHGO.res.xl and88

SHGO.res.fl.89

The other classes in the base file of shgo are LMap and LMapCache90

which contains the data of the local minimisation routines used to map the91

minimiser starting points to their refined local minima in the main routine.92

2.2. Software Functionalities93

The shgo algorithm is proven to find the globally optimal solution as94

well as all other local minima in finite processing time. However, an inherit95

fact of black-box functions is that the true value of the global solution f ∗ is96

often unknown. That means that it is unknown how many sampling points97

and iterations are required to find this solution. The shgo module offers98

several tools in SHGO to help optimisation practitioners make intelligent99

decisions with regards to stopping criteria. In addition, since the properties100

and stopping criteria of SHGO can be adjusted after every iteration, it101

allows for a versatile algorithm to be used according to the user’s needs.102

Custom stopping criteria can also be adding by adding a check in SHGO.stopping criteria,103

which is run after every iteration. The following stopping criteria are built104

5

∼=

∼=

∼=

+

+

-6.000

-6.000

-4.500

-4.500

-3.000

-3.000

-1.500

-1.500

-1.500

-1.5000.000

0.000

0.000

0.0001.500

1.500

1.500

1.5003.000

3.000

Figure 3: Visual demonstration on surfaces with non-linear constraints, the shaded regionis unfeasible. The vertices of the points mapped to infinity have undirected edges, thereforethey do not form simplicial complexes in the integral homology. The surfaces of eachdisconnected simplicial complex Ki can be constructed from the compact version of theinvariance theorem. The rank of the abelian homology groups H1(Ki) is additive overarbitrary direct sums

6

into SHGO and are initiated according to the specified user inputs:105

• SHGO.finite iterations106

– Allows for termination after a finite number of iterations.107

• SHGO.finite fev108

– Allows for termination after a finite number of objective function109

evaluations in the feasible domain.110

• SHGO.finite ev111

– Allows for termination after a finite number of constraint function112

evaluations.113

• SHGO.finite time114

– Allows for termination after a finite processing runtime has passed.115

• SHGO.finite precision116

– If the solution value of the objective function is known (or it is117

desired to only find a ”good enough” solution) and the solution118

vector(s) x∗ are desired then this criterion will terminate the al-119

gorithm within a specified tolerance.120

• SHGO.finite homology growth121

– The homology group rank differential (hgrd) which is the global122

change in rank (H1(S)) at every iteration corresponds to the num-123

ber of new local minima found in every iteration. Therefore it is a124

measure of the progress in deducing the full geometric information125

of f . This criterion allows the algorithm to terminate if no new126

local minima were found after a specified number of iterations.127

Note that it is inherently impossible to prove that the full geo-128

metric structure of a black-box function has been deduced thus129

this criterion is a heuristic.130

Finally the homology group rank (hgr) and the homology group rank131

differential (hgrd) can also be tracked in specific volumes of sub-spaces (local132

change in rank (H1(Si ∈ S))). If the ’simplicial’ sampling method is used133

volumes are referred to as cells. A list of cells in each iteration can be134

accessed at SHGO.HC.C[i] where i is the iteration number. Every cell135

7

contains the .hg d attribute which is the homology group differential in that136

volume of subspace.137

Note that since the low discrepancy sampling is uniform and symmetric138

after every iteration, the history of the homology group growth can also be139

used to measure the sparsity of solutions.140

3. Illustrative Examples141

In order to demonstrate solving problems with non-linear constraints con-142

sider the following example from Hock and Schittkowski problem 73 (cattle-143

feed) [5]:144

minimize : f(x) = 24.55x1 + 26.75x2 + 39x3 + 40.50x4 (1)

s.t. 2.3x1 + 5.6x2 + 11.1x3 + 1.3x4 − 5 ≥ 0,

12x1 + 11.9x2 + 41.8x3 + 52.1x4 − 21

−1.645√

0.28x21 + 0.19x2

2 + 20.5x23 + 0.62x2

4 ≥ 0,

x1 + x2 + x3 + x4 − 1 = 0,

0 ≤ xi ≤ 1 ∀i

145

1 >>> from shgo import shgo146

>>> import numpy as np147

3 >>> de f f ( x ) : # ( c a t t l e−f e ed )148

. . . r e turn 24 .55∗x [ 0 ] + 26.75∗x [ 1 ] + 39∗x [ 2 ] + 40.50∗x [ 3 ]149

5 . . .150

>>> de f g1 ( x ) :151

7 . . . r e turn 2 .3∗ x [ 0 ] + 5 .6∗ x [ 1 ] + 11 .1∗x [ 2 ] + 1 .3∗ x [ 3 ] − 5 #152

>=0153

. . .154

9 >>> de f g2 ( x ) :155

. . . r e turn (12∗x [ 0 ] + 11 .9∗x [ 1 ] +41.8∗x [ 2 ] + 52 .1∗x [ 3 ] − 21156

11 . . . − 1 .645 ∗ np . s q r t (0 . 28∗ x [ 0 ]∗∗2 + 0.19∗x [ 1 ]∗∗2157

. . . + 20 .5∗x [ 2 ]∗∗2 + 0.62∗x [ 3 ] ∗ ∗ 2 )158

13 . . . ) # >=0159

. . .160

15 >>> de f h1 ( x ) :161

. . . r e turn x [ 0 ] + x [ 1 ] + x [ 2 ] + x [ 3 ] − 1 # == 0162

17 . . .163

>>> cons = ({ ’ type ’ : ’ ineq ’ , ’ fun ’ : g1 } ,164

19 . . . { ’ type ’ : ’ ineq ’ , ’ fun ’ : g2 } ,165

. . . { ’ type ’ : ’ eq ’ , ’ fun ’ : h1 })166

21 >>> bounds = [ ( 0 , 1 . 0 ) , ]∗4167

>>> r e s = shgo ( f , bounds , i t e r s =3, c o n s t r a i n t s=cons )168

8

23 >>> r e s169

fun : 29.894378159142136170

25 f u n l : array ( [ 29 . 89437816 ] )171

message : ’ Optimizat ion terminated s u c c e s s f u l l y . ’172

27 nfev : 119173

n i t : 3174

29 n l f e v : 40175

n l j e v : 0176

31 s u c c e s s : True177

x : array ( [ 6 .35521569 e−01, 1 .13700270 e−13,178

3.12701881 e−01,179

33 5.17765506 e−02])180

x l : array ( [ [ 6 .35521569 e−01, 1 .13700270 e−13,181

3.12701881 e−01,182

35 5.17765506 e−02 ] ] )183

>>> g1 ( r e s . x ) , g2 ( r e s . x ) , h1 ( r e s . x )184

37 (−5.0626169922907138 e−14, −2.9594104944408173 e−12, 0 . 0 )185186

./example nlp.py

4. Impact187

The potential impact of shgo is supported in this section by its perfor-188

mance compared to both commercial and open-source CDFO algorithms.189

4.1. Constrained derivative-free optimisation methods for Lipschitz optimsa-190

tion problems191

A recent review and experimental comparison of 22 derivative-free opti-192

misation algorithms by [6] concluded that global optimisation solvers solvers193

such as TOMLAB/MULTI-MIN, TOMLAB/GLCCLUSTER, MCS and TOM-194

LAB/LGO perform better, on average, than other derivative-free solvers in195

terms of solution quality within 2500 function evaluations. Both the TOM-196

LAB/GLCCLUSTER and MCS [7] implementations are based on the well-197

known DIRECT (DIviding RECTangle) algorithm [8].198

The DISIMPL (DIviding SIMPLices) algorithm was recently proposed by199

[9]. The experimental investigation in [9] shows that the proposed simplicial200

algorithm gives very competitive results compared to the DIRECT algorithm.201

DISIMPL has been extended in [10, 11]. The Gb-DISIMPL (Globally-biased202

DISIMPL) was compared in [11] to the DIRECT and DIRECTl methods in203

extensive numerical experiments on 800 multidimensional multiextremal test204

functions. Gb-DISIMPL was shown to provide highly competative results205

compared the other algorithms. More recently the Lc-DISIMPL variant of206

the algorithm was developed to handle optimisation problems with linear207

9

constraints [12]. We used the results from [12] since it contains a CDFO test-208

suite which compares the most cutting edge open-source as well as the highest209

performing commercial CDFO algorithms found in literature. Although these210

problems contain only linear constraints, most of the algorithms in this study211

can handle non-linear constraints. We used the stopping criteria pe = 0.01%212

in this study corresponding to the same tolerance used in [12]. For every213

test the algorithm was terminated if the global minimum was not found after214

100000 objective function evaluations and the test was flagged as a fail again215

corresponding to the rules in [12].216

In Figure 4 we provide experimental results of linearly constrained prob-217

lems comparing the shgo, TGO (topographical global optimization) [13, 14,218

15, 16], Lc-DISIMPL [12], LGO (Lipschitz-continuous Global Optimizer) [17],219

PSwarm [18] (also known as PSO which stands for Partical Swarm Optimiza-220

tion) and DIRECT-L1 [19] algorithms. For the stochastic PSwarm algorithm221

the average results of 10 runs were used. For DIRECT-L1 we used only the222

highest performing hyperparameters from the study (pp. = 10). It can223

be seen that shgo with the simplicial and Sobol sampling method generally224

outperforms every other algorithm. The only exception is the better early225

performance by Lc-DISIMPL. This is attributed to Lc-DISIMPL’s initiation226

step solving the set of equations in the linear constraints. In the test problems227

where the global minimum lie on a vertex of this convex hull, the algorithm228

immediately terminates without a global sampling phase. For more gen-229

eral, non-linear constraints it would not be possible to use this feature of230

Lc-DISIMPL.231

4.2. Box constrained derivative-free optimisation methods232

In a comparison against other open-source algorithms immediately avail-233

able in the Python programming language, shgo is compared with the TGO,234

basinhopping (BH) (originally proposed by [20]) and differential evolution235

(DE) (originally proposed by [21]) global optimisation algorithms. The com-236

parison is done over a large selection of black-box problems from the SciPy237

[22] global optimisation benchmarking test suite. The problems in this test238

suite do not contain any constraints (the current SciPy implementations of239

BH and DE cannot handle non-linear constraints [22]), only bounds that are240

placed on the variables (known as box problems). We used the stopping241

criteria pe = 0.01% in this study. For every test the algorithm was termi-242

nated if the global minimum was not found after 10 minutes of processing243

time and the test was flagged as a fail. Figure 5 and Figure 6 and shows the244

performance profiles for shgo, TGO, DE and BH on the SciPy benchmarking245

test suite using function evaluations and processing run time as performance246

criteria. It can be observed that shgo and TGO vastly outperform the other247

10

0 100 200 300 400 500

Function evaluations

0.0

0.2

0.4

0.6

0.8

1.0

Fra

ctio

nof

fun

ctio

ns

solv

ed SHGO-SIMPLICIAL

SHGO-SOBOL

TGO

LGO

LC-DSIMPL-C

LC-DSIMPL-V

PSO (AVG)

DIRECT-L1

0 20000 40000 60000 80000

Function evaluations

SHGO-SIMPLICIAL

SHGO-SOBOL

TGO

LGO

LC-DSIMPL-C

LC-DSIMPL-V

PSO (AVG)

DIRECT-L1

Figure 4: Performance profiles for shgo, TGO, Lc-DISIMPL, LGO, PSwarm and DIRECT-L1 algorithms on linearly constrained test problems. The figure displays the fraction testsuite problems that can be solved within a given number of objective function evaluations.The results for Lc-DISIMPL-v, PSwarm (avg), DIRECT-L1 were produced by [12]

11

0 20000 40000 60000 80000

Function evaluations

0.0

0.2

0.4

0.6

0.8

1.0

Fra

ctio

nof

fun

ctio

ns

solv

ed

SHGO-SIMPLICIAL

SHGO-SOBOL

TGO

DE

BH

0 50 100 150

Processing time (s)

SHGO-SIMPLICIAL

SHGO-SOBOL

TGO

DE

BH

Figure 5: Performance profiles for shgo, TGO, DE and BH on SciPy benchmarking testsuite

algorithms with shgo using the Sobol sampling method having the highest248

performance throughout.249

5. Conclusions250

The shgo module shows promising properties and performance. It is espe-251

cially appropriate for computationally expensive black and grey box functions252

common in science and engineering. The properties and features of shgo ca253

be summarised as follows:254

• Convergence to a global minimum is assured for Lipschitz smooth func-255

tions.256

• Allows for non-linear constraints in the problem statement.257

• Extracts all the minima in the limit of an adequately sampled search258

space (assuming a finite number of local minima).259

• Progress can be tracked after every iteration through the calculated260

homology groups.261

• Competitive performance compared to state of the art black-box solvers.262

12

0 250 500 750 1000

Function evaluations

0.0

0.2

0.4

0.6

0.8

1.0

Fra

ctio

nof

fun

ctio

ns

solv

ed

SHGO-SIMPLICIAL

SHGO-SOBOL

TGO

DE

BH

0.0 0.1 0.2 0.3 0.4

Processing time (s)

SHGO-SIMPLICIAL

SHGO-SOBOL

TGO

DE

BH

Figure 6: Performance profiles for shgo, TGO, DE and BH zoomed in to the range off.e. = [0, 1000] function evaluations and [0, 0.4] seconds run time

• All of the above properties hold for non-continuous functions with non-263

linear constraints assuming the search space contains any sub-spaces264

that are Lipschitz smooth and convex.265

Acknowledgements266

Funding:. The financial assistance of the National Research Foundation (NRF)267

towards this research is hereby acknowledged. Opinions expressed and con-268

clusions arrived at, are those of the authors and are not necessarily to be269

attributed to the NRF. (NRF grant number 92781 Competitive Programme270

for Rated Researchers (Grant Holder WW Focke)).271

References272

[1] F. Boukouvala, R. Misener, C. A. Floudas, Global optimiza-273

tion advances in mixed-integer nonlinear programming, minlp,274

and constrained derivative-free optimization, cdfo, European275

Journal of Operational Research 252 (3) (2016) 701 – 727.276

doi:https://doi.org/10.1016/j.ejor.2015.12.018.277

URL http://www.sciencedirect.com/science/article/pii/278

S037722171501142X279

13

[2] S. C. Endres, C. Sandrock, W. W. Focke, A simplicial homology algo-280

rithm for lipschitz optimisation, Journal of Global Optimization.281

URL http://dx.doi.org/10.1007/s10898-018-0645-y282

[3] M. Henle, A Combinatorial Introduction to Topology, Unabriged Dover283

(1994) republication of the edition published by WH Greeman & Com-284

pany, San Francisco, 1979, 1979.285

[4] S. Eilenberg, N. Steenrod, Foundations of algebraic topology, Mathemat-286

ical Reviews (MathSciNet): MR14: 398b Zentralblatt MATH, Princeton287

47.288

[5] W. Hock, K. Schittkowski, Test examples for nonlinear programming289

codes, Journal of Optimization Theory and Applications 30 (1) (1980)290

127–129. doi:10.1007/BF00934594.291

URL https://doi.org/10.1007/BF00934594292

[6] L. M. Rios, N. V. Sahinidis, Derivative-free optimization: a review of al-293

gorithms and comparison of software implementations, Journal of Global294

Optimization 56 (3) (2013) 1247–1293.295

[7] W. Huyer, A. Neumaier, Global optimization by multilevel coordinate296

search, Journal of Global Optimization 14 (4) (1999) 331–355. doi:297

10.1023/A:1008382309369.298

URL https://doi.org/10.1023/A:1008382309369299

[8] D. R. Jones, C. D. Perttunen, B. E. Stuckman, Lipschitzian optimiza-300

tion without the lipschitz constant, Journal of Optimization Theory and301

Applications 79 (1) (1993) 157–181.302

[9] R. Paulavicius, J. Zilinskas, Simplicial lipschitz optimization without the303

lipschitz constant, Journal of Global Optimization 59 (1) (2014) 23–40.304

[10] R. Paulavicius, J. Zilinskas, Simplicial global optimization, Springer,305

2014.306

[11] R. Paulavicius, Y. D. Sergeyev, D. E. Kvasov, J. Zilinskas, Globally-307

biased disimpl algorithm for expensive global optimization, Journal of308

Global Optimization 59 (2) (2014) 545–567.309

[12] R. Paulavicius, J. Zilinskas, Advantages of simplicial partitioning for310

lipschitz optimization problems with linear constraints, Optimization311

Letters 10 (2) (2016) 237–246.312

14

[13] N. Henderson, M. de Sa Rego, W. F. Sacco, R. A. Rodrigues, A new look313

at the topographical global optimization method and its application to314

the phase stability analysis of mixtures, Chemical Engineering Science315

127 (2015) 151–174.316

URL http://linkinghub.elsevier.com/retrieve/pii/317

S0009250915000494318

[14] A. Torn, Clustering methods in global optimization, (in: Preprints of319

the second ifac symposium on stochastic control, sopron, hungary, part320

2), 1986, pp. 138–143.321

[15] A. Torn, Topographical global optimization, Reports on Computer Sci-322

ence and Mathematics No 199.323

[16] A. Torn, S. Viitanen, Topographical Global Optimization, (in Recent324

Advances in Global Optimization), Princeton University Press, Prince-325

ton, NJ, 1992, pp. 384–398.326

[17] J. D. Pinter, Nonlinear optimization with gams /lgo, J. of Global Opti-327

mization 38 (1) (2007) 79–101. doi:10.1007/s10898-006-9084-2.328

URL http://dx.doi.org/10.1007/s10898-006-9084-2329

[18] A. I. Vaz, L. N. Vicente, Pswarm: a hybrid solver for linearly constrained330

global derivative-free optimization, Optimization Methods and Soft-331

ware 24 (4-5) (2009) 669–685. arXiv:http://dx.doi.org/10.1080/332

10556780902909948, doi:10.1080/10556780902909948.333

URL http://dx.doi.org/10.1080/10556780902909948334

[19] D. E. Finkel, Direct optimization algorithm user guide, Center for Re-335

search in Scientific Computation, North Carolina State University 2.336

[20] D. J. Wales, J. P. Doye, Global optimization by basin-hopping and the337

lowest energy structures of lennard-jones clusters containing up to 110338

atoms, The Journal of Physical Chemistry A 101 (28) (1997) 5111–5116.339

[21] R. Storn, K. Price, Differential evolution – a simple and efficient heuris-340

tic for global optimization over continuous spaces, Journal of Global341

Optimization 11 (4) (1997) 341–359.342

URL http://dx.doi.org/10.1023/A:1008202821328343

[22] E. Jones, T. Oliphant, P. Peterson, et al., SciPy: Open source scientific344

tools for Python, [Online; accessed 2016-11-04] (2001–).345

URL http://www.scipy.org/346

15

Required Metadata347

Current code version348

Nr. Code metadata description Please fill in this columnC1 Current code version v0.3.8C2 Permanent link to code/repository

used for this code versionFor example: https ://github.com/stefan−endres/shgo

C3 Legal Code License MITC4 Code versioning system used gitC5 Software code languages, tools, and

services usedPython 2.7, 3.5 and 3.6

C6 Compilation requirements, operat-ing environments & dependencies

numpy, scipy, pytest, pytest-cov

C7 If available Link to developer docu-mentation/manual

https://stefan-endres.github.io/shgo/

C8 Support email for questions [email protected]

Table 1: Code metadata (mandatory)

Current executable software version349

Nr. Code metadata description Please fill in this columnC1 Current code version v0.3.8C2 Permanent link to code/repository

used for this code versionhttps://pypi.python.org/pypi/shgo

C3 Legal Code License MITC4 Code versioning system used gitC5 Software code languages, tools, and

services usedPython 2.7, 3.5 and 3.6

C6 Compilation requirements, operat-ing environments & dependencies

numpy, scipy, pytest, pytest-cov

C7 If available Link to developer docu-mentation/manual

https://stefan-endres.github.io/shgo/

C8 Support email for questions [email protected]

Table 2: Code metadata (mandatory)

16