recent advances in eago: global and robust optimization in ......4/21 the julia language i...

21
Recent Advances in EAGO: Global and Robust Optimization in Julia Matthew Wilhelm, Matthew D. Stuber 2018 AIChE Annual Meeting Pittsburgh, PA, October 28th

Upload: others

Post on 02-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

Recent Advances in EAGO: Globaland Robust Optimization in Julia

Matthew Wilhelm, Matthew D. Stuber

2018 AIChE Annual MeetingPittsburgh, PA, October 28th

Page 2: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

2/21

Outline

Introduction to EAGOMotivationEAGO OptimizationEAGO Toolkit

Algorithm DevelopmentMain AlgorithmRelaxationsDomain Reduction

Page 3: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

3/21

Motivation

I We often model systems in terms of simulations.I The resulting optimization problems are complex (nonsmooth, nonconvex).I In development, we want to do things other than optimize.

SimulationA large literature has developedaround optimizing simulations.Can we provide enough flexibilityto address these specializedforms?

No Barrier to Entry

Can we make a fast global solverthat works like fmincon butprovides strong guarantees?

Page 4: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

4/21

The Julia Language

I Speed of C/FortranI Distributed Computing &

ParallelismI Extensive Compile Time

Optimization

1 Bezanson, J, et al. SIAM Review, 59, (2017), p65-98

Page 5: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

5/21

EAGO Optimization

I Original Scope: A general script-basedsolver that constructs McCormick relaxationsby method overloading.

I Issue: "General" overloading approachesaren’t adequately general.

I Issue: Introducing auxiliary variables,rearranging expressions, and presolving canbe quite beneficial.

Page 6: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

6/21

Toolkit

Page 7: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

7/21

Interface - ScriptConsider the kinetic parameter estimation problem given in [1]. Parameters are desiredthat minimize the sum-square error.

minp∈P

n∑i=1

((x

iA +

2

21xiB +

2

21xiD)− I

di

)2

Decision parameters are the reaction rate constantsp = (k2f , k3f , k4) ∈ [100, 1200]× [100, 1200]× [0.001, 40]

The explicit Euler discretization of the kinetic mechanism is given by:

xi+1A = x

iA + ∆t

(k1x

iY x

iZ − CO2(k2f + k3f )x

iA +

k2f

K2

xiD +

k3f

K3

xiB − k5(x

iA)

2)

xi+1B = x

iB + ∆t

(k3fCO2x

iA −

(k3f

K3

+ k4

)xiB

)xi+1D = x

iD + ∆t

(k2fCO2x

iA −

k2f

K2

xiD

)xi+1Y = x

iY + ∆t

(−k1sx

iY x

iZ

)xi+1Z = x

iZ + ∆t

(k1x

iY x

iZ

)

2 Mitsos A. et al. SIAM Journal on Optimization, SIAM, 20, (2009), 573-601

Page 8: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

8/21

Interface - Script

I The global optimal solution, within a5 difference between lower and upperbounds, is found within 3 seconds.

I Times comparable to C++implementation in literature.

Page 9: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

9/21

Interface - JuMP

I Consider the flooded bedbioreactor processoptimization problem in [3].

I xj input variables. Theweight between variables jand hidden layer node i areWij and the weight for thehidden node i’s output Di.

maxx∈X

B2 +

3∑i=1

2Di

1 + exp(−2Yi)

Yi = Bi +

3∑i=1

8∑j=1

Wijxj

x1

x2

x8

y1

y2

y3

W11

W38

W18

D1

D2

D3

Input Hidden

Layer

Output

Layer

3 Cheema, J. et al. Biotechnology progress 18(6), 2002 p1356-1365.4 Schweidtmann, AM., Mitsos Journal of Optimization Theory and Applications, 2018, p1-24.

Page 10: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

10/21

Interface - JuMP

I EAGO provides native support forthe JuMP AML [4].

I JuMP provides automaticdifferentiation utilities andexpression input via syntacticmacros.

I Similiar complexity to Pyomo [5].I Example is solved in under less than

one second.

4 Dunning, I. et al. SIAM Review, 59, 2017, 295-3205 Hart, W. et al. Mathematical Programming Computation, 3, 2011, 219

Page 11: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

11/21

Outline

Introduction to EAGOMotivationEAGO OptimizationEAGO Toolkit

Algorithm DevelopmentMain AlgorithmRelaxationsDomain Reduction

Page 12: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

12/21

Solver Routine

I EAGO now supports a Branch-and-Cut [6] framework.I Individual subroutines can be set using a simple API.

#Sets p r ep ro c e s s i ng ru l e o f s to func t i on f@SetPreprocess ingRule ( s , f )

6 Rustem, B. et al. Optimization Methods and Software, 2001, 16, 21-47

Page 13: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

13/21

Relaxations - Framework

New framework for organizing relaxationsI All relaxations now generated from tape and parsed into expression graph via

source-code transformation.I Relaxations are registered with properties

I DifferentiableI MILP, etc.

I Schemes contain rules for composing relaxations using directed acyclic graphI FullAVM: Generate relaxation at each node.I SetValue: Propagate from user input.I User-defined schemes supported.

Page 14: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

14/21

Relaxations - Currently Supported

I Outer-Approximations(LP/MIP) [8]I αBB-Type Relaxations [9]I Interval Arithmetic [7]I Convex/Concave Envelopes

1 1.5 2 2.5 3 3.5 4

x

-20

-15

-10

-5

0

5

10

15Relaxations of f(x) = x(x-5)sin(x)

Convex Relaxation

Concave Relaxation

Function

Lower Interval Bound

Upper Interval Bound

7 Moore, R. Methods and Application of Interval Analysis, SIAM, 1979

8 Tawarmalani, M. et al. Mathematical Programming, 99, 2004, 563-591

9 Adjiman, C.S et al. Computers & Chemical Engineering, 20, 1996, 419-424

Page 15: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

15/21

Relaxations - GPU Programming

I Source-code transformation approach builds functions that additional Juliacode can manipulate.

I Integrates with Cassette.jl, Intel’s Parallel Accelerator or Cuda (CudaNative.jl[10]) utilities to generate relaxation functions into code that can be run on aGPU.

10 Besard, T. et al. IEEE Transactions on Parallel and Distributed Systems, 2018

Page 16: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

16/21

Domain Reduction - OBBT

I Optimization-based boundtightening with filtering andgreedy-ordering [11].

I Additional algorithms for: PoorMan’s LP/NLP [12],Newton/Krawczyk methods [13], andmore.

I Integrates with new relaxationframework.

minx,y

x− y

y = 0.1x3 − 1.1x

−4 ≤ x ≤ 4

−2 ≤ y ≤ 2

11 Gleixner, A. et al. J. Global Optim, 67, 2017, 731-757

12 Puranik, Y. et al. Constraints, 22, 2017, 338-376

13 Stuber, M. et al. Optimization Methods & Software, 30, 2015, 424-460

Page 17: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

17/21

Domain Reduction - Constraint Walking

I Wengert tape storage forstructures

I Adaptive methods orfunction built from DAG forconstraint propagation (CP)[14]

I Supports for validatedinterval arithmetic CP [15]

14 Vu, X. et al. J. Global Optim, 45, 2008, 499

15 Moore, R. et al. Intro to Interval Analysis, SIAM 2009, 110

Page 18: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

18/21

Future Work

I JuMP extension for DAE models: Enabled by new MathOptInterface Bridgefeature.

I Automatic recognition of implicit functions in explicit forms.

I Incorporation of fixed-point routines for relaxing implicitly-defined functionsfor forming relaxations and domain reduction [13].

13 Stuber, M. et al. Optimization Methods & Software, 30, 2015, 424-460

Page 19: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

19/21

Acknowledgements

I Kamil Khan for the discussion onnonsmooth AD methods anddifferentiable McCormickrelaxations

I Huiyi Cao for feedback on usingEAGO

I University of Connecticut forproviding funding

I The other members of the PSORgroup at UCONN

Prof. Matthew Stuber Chenyu Wang William Hale

Connor Dion Jacob Chicano Abiha Jafri

Page 20: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

20/21

Shameless Promotion...

Other EAGO Talks at AIChE

Page 21: Recent Advances in EAGO: Global and Robust Optimization in ......4/21 The Julia Language I SpeedofC/Fortran I DistributedComputing& Parallelism I ExtensiveCompileTime Optimization

21/21

Fin...

I The EAGO suite is a registered Julia 1.0 package and can be installed asfollows:

Pkg . add ( "EAGO" )

I Development versions, examples, and documentation may be accessed from theProcessing System and Engineering Lab’s Github website:

https://github.com/PSORLab/EAGO.jl

Questions?