The AIMMS Language Reference
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Open Source Tools for Optimization in Python
Open Source Tools for Optimization in Python Ted Ralphs Sage Days Workshop IMA, Minneapolis, MN, 21 August 2017 T.K. Ralphs (Lehigh University) Open Source Optimization August 21, 2017 Outline 1 Introduction 2 COIN-OR 3 Modeling Software 4 Python-based Modeling Tools PuLP/DipPy CyLP yaposib Pyomo T.K. Ralphs (Lehigh University) Open Source Optimization August 21, 2017 Outline 1 Introduction 2 COIN-OR 3 Modeling Software 4 Python-based Modeling Tools PuLP/DipPy CyLP yaposib Pyomo T.K. Ralphs (Lehigh University) Open Source Optimization August 21, 2017 Caveats and Motivation Caveats I have no idea about the background of the audience. The talk may be either too basic or too advanced. Why am I here? I’m not a Sage developer or user (yet!). I’m hoping this will be a chance to get more involved in Sage development. Please ask lots of questions so as to guide me in what to dive into! T.K. Ralphs (Lehigh University) Open Source Optimization August 21, 2017 Mathematical Optimization Mathematical optimization provides a formal language for describing and analyzing optimization problems. Elements of the model: Decision variables Constraints Objective Function Parameters and Data The general form of a mathematical optimization problem is: min or max f (x) (1) 8 9 < ≤ = s.t. gi(x) = bi (2) : ≥ ; x 2 X (3) where X ⊆ Rn might be a discrete set. T.K. Ralphs (Lehigh University) Open Source Optimization August 21, 2017 Types of Mathematical Optimization Problems The type of a mathematical optimization problem is determined primarily by The form of the objective and the constraints. -
Computing in Operations Research Using Julia
Computing in Operations Research using Julia Miles Lubin and Iain Dunning MIT Operations Research Center INFORMS 2013 { October 7, 2013 1 / 25 High-level, high-performance, open-source dynamic language for technical computing. Keep productivity of dynamic languages without giving up speed. Familiar syntax Python+PyPy+SciPy+NumPy integrated completely. Latest concepts in programming languages. 2 / 25 Claim: \close-to-C" speeds Within a factor of 2 Performs well on microbenchmarks, but how about real computational problems in OR? Can we stop writing solvers in C++? 3 / 25 Technical advancements in Julia: Fast code generation (JIT via LLVM). Excellent connections to C libraries - BLAS/LAPACK/... Metaprogramming. Optional typing, multiple dispatch. 4 / 25 Write generic code, compile efficient type-specific code C: (fast) int f() { int x = 1, y = 2; return x+y; } Julia: (No type annotations) Python: (slow) function f() def f(): x = 1; y = 2 x = 1; y = 2 return x + y return x+y end 5 / 25 Requires type inference by compiler Difficult to add onto exiting languages Available in MATLAB { limited scope PyPy for Python { incompatible with many libraries Julia designed from the ground up to support type inference efficiently 6 / 25 Simplex algorithm \Bread and butter" of operations research Computationally very challenging to implement efficiently1 Matlab implementations too slow to be used in practice High-quality open-source codes exist in C/C++ Can Julia compete? 1Bixby, Robert E. "Solving Real-World Linear Programs: A Decade and More of Progress", Operations Research, Vol. 50, pp. 3{15, 2002. 7 / 25 Implemented benchmark operations in Julia, C++, MATLAB, Python. -
The TOMLAB NLPLIB Toolbox for Nonlinear Programming 1
AMO - Advanced Modeling and Optimization Volume 1, Number 1, 1999 The TOMLAB NLPLIB Toolbox 1 for Nonlinear Programming 2 3 Kenneth Holmstrom and Mattias Bjorkman Center for Mathematical Mo deling, Department of Mathematics and Physics Malardalen University, P.O. Box 883, SE-721 23 Vasteras, Sweden Abstract The pap er presents the to olb ox NLPLIB TB 1.0 (NonLinear Programming LIBrary); a set of Matlab solvers, test problems, graphical and computational utilities for unconstrained and constrained optimization, quadratic programming, unconstrained and constrained nonlinear least squares, b ox-b ounded global optimization, global mixed-integer nonlinear programming, and exp onential sum mo del tting. NLPLIB TB, like the to olb ox OPERA TB for linear and discrete optimization, is a part of TOMLAB ; an environment in Matlab for research and teaching in optimization. TOMLAB currently solves small and medium size dense problems. Presently, NLPLIB TB implements more than 25 solver algorithms, and it is p ossible to call solvers in the Matlab Optimization Toolbox. MEX- le interfaces are prepared for seven Fortran and C solvers, and others are easily added using the same typ e of interface routines. Currently, MEX- le interfaces havebeendevelop ed for MINOS, NPSOL, NPOPT, NLSSOL, LPOPT, QPOPT and LSSOL. There are four ways to solve a problem: by a direct call to the solver routine or a call to amulti-solver driver routine, or interactively, using the Graphical User Interface (GUI) or a menu system. The GUI may also be used as a prepro cessor to generate Matlab co de for stand-alone runs. If analytical derivatives are not available, automatic di erentiation is easy using an interface to ADMAT/ADMIT TB. -
Optimal Control for Constrained Hybrid System Computational Libraries and Applications
FINAL REPORT: FEUP2013.LTPAIVA.01 Optimal Control for Constrained Hybrid System Computational Libraries and Applications L.T. Paiva 1 1 Department of Electrical and Computer Engineering University of Porto, Faculty of Engineering - Rua Dr. Roberto Frias, s/n, 4200–465 Porto, Portugal ) [email protected] % 22 508 1450 February 28, 2013 Abstract This final report briefly describes the work carried out under the project PTDC/EEA- CRO/116014/2009 – “Optimal Control for Constrained Hybrid System”. The aim was to build and maintain a software platform to test an illustrate the use of the conceptual tools developed during the overall project: not only in academic examples but also in case studies in the areas of robotics, medicine and exploitation of renewable resources. The grand holder developed a critical hands–on knowledge of the available optimal control solvers as well as package based on non–linear programming solvers. 1 2 Contents 1 OC & NLP Interfaces 7 1.1 Introduction . .7 1.2 AMPL . .7 1.3 ACADO – Automatic Control And Dynamic Optimization . .8 1.4 BOCOP – The optimal control solver . .9 1.5 DIDO – Automatic Control And Dynamic Optimization . 10 1.6 ICLOCS – Imperial College London Optimal Control Software . 12 1.7 TACO – Toolkit for AMPL Control Optimization . 12 1.8 Pseudospectral Methods in Optimal Control . 13 2 NLP Solvers 17 2.1 Introduction . 17 2.2 IPOPT – Interior Point OPTimizer . 17 2.3 KNITRO . 25 2.4 WORHP – WORHP Optimises Really Huge Problems . 31 2.5 Other Commercial Packages . 33 3 Project webpage 35 4 Optimal Control Toolbox 37 5 Applications 39 5.1 Car–Like . -
PSO-Based Soft Lunar Landing with Hazard Avoidance: Analysis and Experimentation
aerospace Article PSO-Based Soft Lunar Landing with Hazard Avoidance: Analysis and Experimentation Andrea D’Ambrosio 1,* , Andrea Carbone 1 , Dario Spiller 2 and Fabio Curti 1 1 School of Aerospace Engineering, Sapienza University of Rome, Via Salaria 851, 00138 Rome, Italy; [email protected] (A.C.); [email protected] (F.C.) 2 Italian Space Agency, Via del Politecnico snc, 00133 Rome, Italy; [email protected] * Correspondence: [email protected] Abstract: The problem of real-time optimal guidance is extremely important for successful au- tonomous missions. In this paper, the last phases of autonomous lunar landing trajectories are addressed. The proposed guidance is based on the Particle Swarm Optimization, and the differ- ential flatness approach, which is a subclass of the inverse dynamics technique. The trajectory is approximated by polynomials and the control policy is obtained in an analytical closed form solution, where boundary and dynamical constraints are a priori satisfied. Although this procedure leads to sub-optimal solutions, it results in beng fast and thus potentially suitable to be used for real-time purposes. Moreover, the presence of craters on the lunar terrain is considered; therefore, hazard detection and avoidance are also carried out. The proposed guidance is tested by Monte Carlo simulations to evaluate its performances and a robust procedure, made up of safe additional maneuvers, is introduced to counteract optimization failures and achieve soft landing. Finally, the whole procedure is tested through an experimental facility, consisting of a robotic manipulator, equipped with a camera, and a simulated lunar terrain. The results show the efficiency and reliability Citation: D’Ambrosio, A.; Carbone, of the proposed guidance and its possible use for real-time sub-optimal trajectory generation within A.; Spiller, D.; Curti, F. -
CME 338 Large-Scale Numerical Optimization Notes 2
Stanford University, ICME CME 338 Large-Scale Numerical Optimization Instructor: Michael Saunders Spring 2019 Notes 2: Overview of Optimization Software 1 Optimization problems We study optimization problems involving linear and nonlinear constraints: NP minimize φ(x) n x2R 0 x 1 subject to ` ≤ @ Ax A ≤ u; c(x) where φ(x) is a linear or nonlinear objective function, A is a sparse matrix, c(x) is a vector of nonlinear constraint functions ci(x), and ` and u are vectors of lower and upper bounds. We assume the functions φ(x) and ci(x) are smooth: they are continuous and have continuous first derivatives (gradients). Sometimes gradients are not available (or too expensive) and we use finite difference approximations. Sometimes we need second derivatives. We study algorithms that find a local optimum for problem NP. Some examples follow. If there are many local optima, the starting point is important. x LP Linear Programming min cTx subject to ` ≤ ≤ u Ax MINOS, SNOPT, SQOPT LSSOL, QPOPT, NPSOL (dense) CPLEX, Gurobi, LOQO, HOPDM, MOSEK, XPRESS CLP, lp solve, SoPlex (open source solvers [7, 34, 57]) x QP Quadratic Programming min cTx + 1 xTHx subject to ` ≤ ≤ u 2 Ax MINOS, SQOPT, SNOPT, QPBLUR LSSOL (H = BTB, least squares), QPOPT (H indefinite) CLP, CPLEX, Gurobi, LANCELOT, LOQO, MOSEK BC Bound Constraints min φ(x) subject to ` ≤ x ≤ u MINOS, SNOPT LANCELOT, L-BFGS-B x LC Linear Constraints min φ(x) subject to ` ≤ ≤ u Ax MINOS, SNOPT, NPSOL 0 x 1 NC Nonlinear Constraints min φ(x) subject to ` ≤ @ Ax A ≤ u MINOS, SNOPT, NPSOL c(x) CONOPT, LANCELOT Filter, KNITRO, LOQO (second derivatives) IPOPT (open source solver [30]) Algorithms for finding local optima are used to construct algorithms for more complex optimization problems: stochastic, nonsmooth, global, mixed integer. -
Computational Integer Programming Lecture 3
Computational Integer Programming Lecture 3: Software Dr. Ted Ralphs Computational MILP Lecture 3 1 Introduction to Software (Solvers) • There is a wealth of software available for modeling, formulation, and solution of MILPs. • Commercial solvers { IBM CPLEX { FICO XPress { Gurobi • Open Source and Free for Academic Use { COIN-OR Optimization Suite (Cbc, SYMPHONY, Dip) { SCIP { lp-solve { GLPK { MICLP { Constraint programming systems 1 Computational MILP Lecture 3 2 Introduction to Software (Modeling) • There are two main categories of modeling software. { Algebraic Modeling Languages (AMLs) { Constraint Programming Systems (CPSs) • According to our description of the modeling process, AMLs should probably be called \formulation languages". • AMLs assume the problem will be formulated as a mathematical optimization problem. • Although AMLs make the formulation process more convenient, the user must provide an initial \formulation" and decide on an appropriate solver. • Solvers do some internal reformulation, but this is limited. • Constraint programming systems use a much higher level description of the model itself. • Reformulation is done internally before automatically passing the problem to the most appropriate of a number of solvers. 2 Computational MILP Lecture 3 3 Algebraic Modeling Languages • A key concept is the separation of \model" (formulation, really) from \data." • Generally speaking, we follow a four-step process in modeling with AMLs. { Develop an \abstract model" (more like a formulation). { Populate the formulation with data. { Solve the Formulation. { Analyze the results. • These four steps generally involve different pieces of software working in concert. • For mathematical optimization problems, the modeling is often done with an algebraic modeling system. • Data can be obtained from a wide range of sources, including spreadsheets. -
Abstract Glue for Optimization in Julia
Abstract glue for optimization in Julia Miles Lubin with Iain Dunning, Joey Huchette, Tony Kelman, Dominique Orban, and Madeleine Udell ISMP – July 13, 2015 Why did we choose Julia? Lubin and Dunning, “Computing in Operations Research using Julia”, IJOC, 2015 ● “I want to model and solve a large LP/MIP within a programming language, but Python is too slow and C++ is too low level” ● “I want to implement optimization algorithms in a fast, high-level language designed for numerical computing” ● “I want to create an end-user-friendly interface for optimization without writing MEX files” And so… We (and many other contributors) developed a new set of tools to help us do our work in Julia. JuliaOpt CoinOptServices.jl AmplNLWriter.jl AmplNLReader.jl Modeling languages in Julia ● JuMP ○ Linear, mixed-integer, conic, and nonlinear optimization ○ Like AMPL, GAMS, Pyomo ● Convex.jl (Udell, Thursday at 10:20am) ○ Disciplined convex programming ○ Like CVX, cvxpy ● Both use the same solver infrastructure MathProgBase ● A standard interface which solver wrappers implement ○ Like COIN-OR/OSI MathProgBase philosophy ● In a small package which wraps the solver’s C API, implement a few additional methods to provide a standardized interface to the solver. ○ Clp.jl, Cbc.jl, Gurobi.jl, ECOS.jl, etc... MathProgBase philosophy ● Make it easy to access low-level features. ○ Don’t get in the user’s way MathProgBase philosophy ● If the solver’s interface doesn’t quite match the abstraction, either: ○ perform some transformations within the solver wrapper, or ○ -
Julia Language Documentation Release Development
Julia Language Documentation Release development Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman, et al. September 08, 2014 Contents 1 The Julia Manual 1 1.1 Introduction...............................................1 1.2 Getting Started..............................................2 1.3 Integers and Floating-Point Numbers..................................6 1.4 Mathematical Operations......................................... 12 1.5 Complex and Rational Numbers..................................... 17 1.6 Strings.................................................. 21 1.7 Functions................................................. 32 1.8 Control Flow............................................... 39 1.9 Variables and Scoping.......................................... 48 1.10 Types................................................... 52 1.11 Methods................................................. 66 1.12 Constructors............................................... 72 1.13 Conversion and Promotion........................................ 79 1.14 Modules................................................. 84 1.15 Metaprogramming............................................ 86 1.16 Arrays.................................................. 93 1.17 Sparse Matrices............................................. 99 1.18 Parallel Computing............................................ 100 1.19 Running External Programs....................................... 105 1.20 Calling C and Fortran Code....................................... 111 1.21 Performance -
The TOMLAB Optimization Environment in Matlab1
AMO - Advanced Modeling and Optimization Volume 1, Number 1, 1999 The TOMLAB Optimization Environment in Matlab Kenneth Holmstrom Center for Mathematical Mo deling Department of Mathematics and Physics Malardalen University PO Box SE Vasteras Sweden Abstract TOMLAB is a general purp ose op en and integrated Matlab development environment for research and teaching in optimization on Unix and PC systems One motivation for TOMLAB is to simplify research on practical optimization problems giving easy access to all types of solvers at the same time having full access to the p ower of Matlab The design principle is dene your problem once optimize using any suitable solver In this pap er we discuss the design and contents of TOMLAB as well as some applications where TOMLAB has b een successfully applied TOMLAB is based on NLPLIB TB a Matlab to olb ox for nonlinear programming and pa rameter estimation and OPERA TB a Matlab to olb ox for linear and discrete optimization More than dierent algorithms and graphical utilities are implemented It is p ossible to call solvers in the Matlab Optimization Toolb ox and generalpurp ose solvers implemented in For tran or C using a MEXle interface Currently MEXle interfaces have b een developed for MINOS NPSOL NPOPT NLSSOL LPOPT QPOPT and LSSOL A problem is solved by a direct call to a solver or by a general multisolver driver routine or interactively using a graphical user interface GUI or a menu system If analytical derivatives are not available automatic dierentiation is easy using an interface -
Combined Optimization of Trajectory and Design for Dual Propulsion Spacecraft AE5810 Thesis Space Domas M
Combined Optimization of Trajectory and Design for Dual Propulsion Spacecraft AE5810 Thesis Space Domas M. Syaifoel Delft University of Technology Combined Optimization of Trajectory and Design for Dual Propulsion Spacecraft AE5810 Thesis Space by Domas M. Syaifoel to obtain the degree of Master of Science at the Delft University of Technology, to be defended publicly on 14 December 2020. Student number: 4436024 Project duration: November 2019 – December 2020 Thesis committee: Dr. A. Cervone, TU Delft, supervisor Dr. J. Guo TU Delft, committee chair ir. R. Noomen TU Delft An electronic version of this thesis is available at http://repository.tudelft.nl/. Abstract Following the trend of miniaturization and standardization of satellite design, as well as recent successes in the use of cubesats in interplanetary missions, a cubesat design capable of reaching another planet fully in- dependently may lead to significant cost reductions for future missions. While efficient low thrust propulsion systems exist, Earth escape using low thrust only leads to significant incident radiation doses when crossing the Van Allen belts. As such, this report aims to present the design of a dual thrust cubesat, i.e. one which employs both high thrust and low thrust propulsion systems, such that the transfer time and the number of van Allen belt crossings is within requirements, while a final orbit around Mars remains attainable. In doing so, this report explores the theory behind low thrust trajectory optimization, and attempts to combine this with a general optimization scheme including both high thrust phases as well as the optimiza- tion of the spacecraft system design. -
A Toolkit for AMPL Control Optimization
ARGONNE NATIONAL LABORATORY 9700 South Cass Avenue Argonne, Illinois 60439 TACO — A Toolkit for AMPL Control Optimization Christian Kirches and Sven Leyffer Mathematics and Computer Science Division Preprint ANL/MCS-P1948-0911 November 4, 2011 The research leading to these results has received funding from the European Union Seventh Framework Programme FP7/2007-2013 under grant agreement no FP7-ICT-2009-4 248940. The first author acknowledges a travel grant by Heidelberg Graduate Academy, funded by the German Excellence Initiative. We thank Hans Georg Bock, Johannes P. Schlöder, and Sebastian Sager for permission to use the optimal control software package MUSCOD-II and the mixed-integer optimal control algorithm MS-MINTOC. This work was also supported by the Office of Advanced Scientific Computing Research, Office of Science, U.S. Department of Energy, under Contract DE-AC02-06CH11357, and by the Directorate for Computer and Information Science and Engineering of the National Science Foundation under award NSF-CCF-0830035. Contents 1 Introduction...................................................................1 1.1 The AMPL Modeling Language.....................................................3 1.2 Benefits of AMPL Extensions......................................................3 1.3 Related Efforts..............................................................3 1.4 Contributions and Structure........................................................3 2 AMPL Extensions for Optimal Control.....................................................4