• Home
    • What is global optimization?
  • Algorithms
    • LDSE
    • LDSEE
  • Downloads
  • Softwares
  • Journals
  • Links
  • Forum
  • Blog
  • Benchmarks
  • People
  • Applications
  • About me


Selected free and open-source optimization softwares

OpenOpt Framework

Picture
  • Free (license: BSD) cross-platform (Linux, Windows, Mac etc) software, written in modern high-stream Python language, alternative to commercial frameworks with obsolete and/or banausic programming constructs like AMPL, GAMS, LINGO, AIMMS, TOMOPT's TOMLAB / TOMNET (see for example TOMLAB users and prices)
  • Primary goals:
    • providing connections to lots of solvers, e.g. IPOPT, cplex, algencan, glpk, lpsolve, CVXOPT, PSwarm, nlopt, BOBYQA, lbfgsb (some are C- or Fortran-written) with easy and unified syntax
    • trying to enhance algorithms for numerical optimization invented by Ukrainian academicians Boris Pshenichniy and Naum Z. Shor
  • Organized as an ordinary Python module, thus you can easily stack it with NumPy arrays, SciPy sparse matrices and other Python functions and code
  • Graphical output, automatic derivatives check for user-supplied objFunc and constraints, user-defined callback functions and much more
  • Capable of handling FuncDesigner code with Automatic differentiation (possibly large-scale sparse) for gradient-based solvers and interval analysis for interalg solver
  • Some native solvers (Python-written, well-known Python library NumPy is required), constrained and unconstrained, e.g.
    • nonlinear/nonsmooth solvers ralg, gsubg, amsg2p
    • global nonlinear solver de (differential evolution)
    • global nonlinear solver with specifiable accuracy: interalg
    • some other linear and quadratic solvers code is included

  • NLopt

    Picture
    NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms. Its features include:

    • Callable from C, C++, Fortran, Matlab or GNU Octave, Python, GNU Guile, and GNU R.
    • A common interface for many different algorithms—try a different algorithm just by changing one parameter.
    • Support for large-scale optimization (some algorithms scalable to millions of parameters and thousands of constraints).
    • Both global and local optimization algorithms.
    • Algorithms using function values only (derivative-free) and also algorithms exploiting user-supplied gradients.
    • Algorithms for unconstrained optimization, bound-constrained optimization, and general nonlinear inequality/equality constraints.
    • Free/open-source software under the GNU LGPL (and looser licenses for some portions of NLopt).
    See the NLopt Introduction for a further overview of the types of problems it addresses.


    PSwarm Solver

    Picture
    PSwarm is a global optimization solver for bound and linear constrained problems (for which the derivatives of the objective function are unavailable, inaccurate or expensive).

    The algorithm combines pattern search and particle swarm. Basically, it applies a directional direct search in the poll step (coordinate search in the pure simple bounds case) and particle swarm in the search step.

    PSwarm makes no use of derivative information of the objective function. It has been shown to be efficient and robust for smooth and nonsmooth problems, both in serial and in parallel.

    The code is written in both MATLAB and C. It provides an interface with AMPL, Python and R. The C code includes a parallel version using MPI. PSwarm can also be run through the NEOS server (under the Global Optimization category). You can use PSwarm with Python problems using the OpenOpt framework.


    Commercial optimization environments

    LINGO from the LINDO Systems Inc.

    Picture
    LINGO is a comprehensive tool designed to make building and solving Linear, Nonlinear (convex & nonconvex/Global), Quadratic, Quadratically Constrained, Second Order Cone, Stochastic, and Integer optimization models faster, easier and more efficient. LINGO provides a completely integrated package that includes a powerful language for expressing optimization models, a full featured environment for building and editing problems, and a set of fast built-in solvers. The recently released LINGO 13.0 includes a number of significant enhancements and new features.

    GAMS

    Picture
    The General Algebraic Modeling System (GAMS) is a high-level modeling system for mathematical programming and optimization. It consists of a language compiler and a stable of integrated high-performance solvers. GAMS is tailored for complex, large scale modeling applications, and allows you to build large maintainable models that can be adapted quickly to new situations.

    Table 1. Solvers that Work with GAMS

    Picture

    AMPL

    Picture
    AMPL is a comprehensive and powerful algebraic modeling language for linear and nonlinear optimization problems, in discrete or continuous variables. Developed at Bell Laboratories, AMPL lets you use common notation and familiar concepts to formulate optimization models and examine solutions, while the computer manages communication with an appropriate solver. AMPL's flexibility and convenience render it ideal for rapid prototyping and model development, while its speed and control options make it an especially efficient choice for repeated production runs.

    Table 2. Solvers that Work with AMPL

    Solver

    Algorithm Types

    Vendor or
    Download Site

    Driver Code

    Documentation

    ACRS

    Nonlinear global

    Contact G. Liuzzi

     

     

    ALGENCAN

    Nonlinear

    See the TANGO site

     

     

    BLMVM

    Nonlinear
       bounded-variable

    Download from the Toolkit for Advanced Optimization

     

    directives table

    Bonmin

    Integer nonlinear

    See the Bonmin homepage and
    Getting Started with Bonmin

     

    Bonmin Users' Manual

    BPMPD

    Linear (interior)

    Download from netlib/opt

    main.c

    README.bpmpd

    directives table

    CBC

    Linear (simplex)
    Integer linear

    See the CBC homepage

     

    CBC User Guide

    directives guide

    CONDOR

    Nonlinear
       nondifferentiable

    See the Kranf Site

     

     

    CONOPT

    Nonlinear

    Buy directly from AMPL.
    Write to 
    info@ampl.com for prices.

     

     

    CPLEX

    Linear (simplex)
    Linear (interior)
    Network
    Quadratic
    Integer linear
    Integer quadratic

    Buy directly from AMPL.
    Write to 
    info@ampl.com for prices.

    cplex.c

    README.1stREADME.cplex

    IBM ILOG AMPL CPLEX 12.2 User's Guide

    DONLP2

    Nonlinear

    DONLP2 information page

     

    README.donlp2 

    DONLP2 Users Guide and
    directives table

    FilMINT

    Integer nonlinear

    Contact authors of FilMINT slides and paper

     

    Slides andPaper

    FilMINT
    directives tables

    FILTER /
    MINLP

    Nonlinear
    Integer nonlinear

    Dundee solvers for MINLP/NLP/QP

     

    FILTER andMINLP
    directives tables

    FortMP

    Linear (simplex)
    Linear (interior)
    Quadratic
    Integer linear
    Integer quadratic

    OptiRisk Systems

     

    directives table

    FSQP

    Nonlinear

    AEM Design

    fsqp.c

    README.fsqp

    Gurobi

    Linear (simplex)
    Linear (interior)
    Quadratic
    Integer linear
    Integer quadratic

    Buy directly from AMPL.
    Write to 
    info@ampl.com for prices.

    gurobi.c

    README.1stREADME.gurobi

    AMPL-Gurobi 4.5 Guide

    IPOPT

    Nonlinear

    See the IPOPT homepage

     

     

    KNITRO

    Nonlinear

    Buy directly from AMPL.
    Write to 
    info@ampl.com for prices.

     

    directives table

    LANCELOT

    Nonlinear

    Download from the LANCELOT site

    lancelot.c

    README.lancelot

    directives table

    L-BFGS-B

    Nonlinear
       bounded-variable

    See the L-BFGS-B page

     

    directives table

    LGO

    Nonlinear global

    Contact Pintér Consulting Services

     

    AMPL-LGO-readme.txt

    LOQO

    Linear (interior)
    Quadratic
    Nonlinear

    See the LOQO site for downloads and availability.

     

    directives table

    LP_SOLVE

    Linear (simplex)
    Integer linear

    See the  lpsolve homepage

    lpsolve files@SourceForge

    Using lp_solve

    MINLP

    Integer nonlinear

    see entry for FILTER/MINLP

     

     

    MINOS

    Linear (simplex)
    Nonlinear

    Buy binaries directly from AMPL.
    Write to 
    info@ampl.com for prices.

    Source code from Stanford Business Software

    m551.c

    README.1st
    README.minos

    Using AMPL/MINOS

    MINTO

    Linear (simplex)
    Integer linear

    MINTO at COR@L

     

    directives table

    MOSEK

    Linear (simplex)
    Linear (interior)
    Quadratic, nonlinear convex
    Integer linear, integer quadratic

    See the MOSEK homepage

     

    directives table

    NPSOL

    Nonlinear

    Source code from Stanford Business Software

    npsol.c

    README.npsol

    NSIPS

    Nonlinear semi-infinite

    See the NSIPS homepage

     

    directives table

    OOQP

    Linear
    Quadratic convex

    See the OOQP homepage

     

     

    PATH

    Complementarity

    CPNET, Computer Sciences Dept, Univ of Wisconsin

    path.c

    README.path

    directives table

    PCx

    Linear (interior)

    NEOS Tools, Argonne National Laboratory

     

     

    PENNON

    Nonlinear

    See the PENNON homepage

     

    User's Guide(version 1.3)

    SNOPT

    Nonlinear

    Buy binaries directly from AMPL.
    Write to 
    info@ampl.com for prices.

    Source code from Stanford Business Software

    snopt.c

    README.snopt

    directives table

    SOPT

    Linear (simplex)
    Quadratic
    Nonlinear convex
    Integer linear

    SAITECH, Inc.

     

     

    TRON

    Nonlinear
       bounded-variable

    See the TRON homepage

     

    directives table

    WSAT(OIP)

    Integer linear constraints

    Download from Joachim P. Walser

     

     

    XA

    Linear (simplex)
    Integer linear

    Sunset Software Technology

     

     

    XLSOL
    LS-XLSOL

    Linear (simplex)
    Quadratic
    Integer linear

    Frontline Systems, Inc.

     

     

    Xpress-MP

    Linear (simplex)
    Linear (interior)
    Quadratic
    Integer linear

    Dash Optimization

     

     

     

    NEOS Solvers for global optimization Optimization Environments on the NEOS Server

    Picture
    • ASA [AMPL Input]
    • BARON [GAMS Input]
    • icos [AMPL Input]
    • LINDOGlobal [GAMS Input]
    • PGAPack [AMPL Input]
    • PSwarm [AMPL Input]

    Powered by Create your own unique website with customizable templates.