GithubHelp home page GithubHelp logo

joshualeond / jump.jl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jump-dev/jump.jl

0.0 1.0 0.0 12.22 MB

Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)

License: Other

Julia 100.00%

jump.jl's Introduction

JuMP logo

Powered by NumFOCUS

JuMP is a domain-specific modeling language for mathematical optimization embedded in Julia. It currently supports a number of open-source and commercial solvers (Artelys Knitro, BARON, Bonmin, Cbc, Clp, Couenne, CPLEX, ECOS, FICO Xpress, GLPK, Gurobi, Ipopt, MOSEK, NLopt, SCS) for a variety of problem classes, including linear programming, (mixed) integer programming, second-order conic programming, semidefinite programming, and nonlinear programming.

JuMP makes it easy to specify and solve optimization problems without expert knowledge, yet at the same time allows experts to implement advanced algorithmic techniques such as exploiting efficient hot-starts in linear programming or using callbacks to interact with branch-and-bound solvers. JuMP is also fast - benchmarking has shown that it can create problems at similar speeds to special-purpose commercial tools such as AMPL while maintaining the expressiveness of a generic high-level programming language. JuMP can be easily embedded in complex work flows including simulations and web servers.

Our documentation includes an installation guide, quick-start guide, and reference manual. The juliaopt-notebooks repository contains a small but growing collection of contributed examples. Submissions are welcome!

Read about the upcoming transition to MathOptInterface (MOI) and breaking changes in JuMP 0.19 here. The development version of JuMP (master branch) supports MOI and is ready for early adopters to test out. Be aware that the development version is beta quality. No further breaking changes are planned, but they may still occur before the 0.19 release.

Latest Release: 0.18.4 (release-0.18 branch)

Development version (master branch):

Installation

JuMP can be installed through the Julia package manager:

julia> Pkg.add("JuMP")

For full installation instructions, including how to install solvers, see the documentation linked above.

Supported problem classes

Mathematical optimization encompasses a large variety of problem classes. We list below what is currently supported. See the documentation for more information.

Objective types

  • Linear
  • Convex Quadratic
  • Nonlinear (convex and nonconvex)

Constraint types

  • Linear
  • Convex Quadratic
  • Second-order Conic
  • Semidefinite
  • Nonlinear (convex and nonconvex)

Variable types

  • Continuous
  • Integer-valued
  • Semicontinuous
  • Semi-integer

Bug reports and support

Please report any issues via the Github issue tracker. All types of issues are welcome and encouraged; this includes bug reports, documentation typos, feature requests, etc. The Optimization (Mathematical) category on Discourse is appropriate for general discussion, including "how do I do this?" questions.

Citing JuMP

If you find JuMP useful in your work, we kindly request that you cite the following paper (pdf):

@article{DunningHuchetteLubin2017,
author = {Iain Dunning and Joey Huchette and Miles Lubin},
title = {JuMP: A Modeling Language for Mathematical Optimization},
journal = {SIAM Review},
volume = {59},
number = {2},
pages = {295-320},
year = {2017},
doi = {10.1137/15M1020575},
}

For an earlier work where we presented a prototype implementation of JuMP, see here:

@article{LubinDunningIJOC,
author = {Miles Lubin and Iain Dunning},
title = {Computing in Operations Research Using Julia},
journal = {INFORMS Journal on Computing},
volume = {27},
number = {2},
pages = {238-248},
year = {2015},
doi = {10.1287/ijoc.2014.0623},
}

A preprint of this paper is freely available.


NumFOCUS logo

JuMP is a fiscally sponsored project of NumFOCUS, a nonprofit dedicated to supporting the open source scientific computing community.

You can support JuMP by donating. JuMP's largest expense is the annual JuMP-dev workshop. Donations will help us provide travel support for JuMP-dev attendees and address other opportunities that arise to support JuMP development.

jump.jl's People

Contributors

blegat avatar ccoffrin avatar chkwon avatar cossio avatar dschein avatar emreyamangil avatar femtocleaner[bot] avatar freeboson avatar goretkin avatar iainnz avatar iamed2 avatar issamt avatar jackdunnnz avatar joaquimg avatar joehuchette avatar joeltay avatar jrevels avatar kdheepak avatar leotac avatar mlubin avatar mohamed82008 avatar odow avatar rdeits avatar rschwarz avatar shoibalc avatar staticfloat avatar tkelman avatar tkoolen avatar yeesian avatar yuyichao avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.