- Fix a method ambiguity conflict with Compose.jl (cosmetic fix)
- Fix a bug in
sum(::JuMPDict)
- Added the
setCategory
function to change a variables category (e.g. continuous or binary) after construction, andgetCategory
to retrieve the variable category.
- Fix a bug in parsing linear expressions in macros. Affects only Julia 0.4 and later.
- Breaking change: The syntax for column-wise model generation has been changed to use keyword arguments in
@defVar
. - On Julia 0.4 and later, variables and coefficients may be multiplied in any order within macros. That is, variable*coefficient is now valid syntax.
- ECOS supported for solving second-order conic problems.
- Support for skipping model generation when solving a sequence of nonlinear models with changing data.
- Fix a memory leak when solving a sequence of nonlinear models.
- The
@addNLConstraint
macro now supports the three-argument version to define sets of nonlinear constraints. - KNITRO supported as a nonlinear solver.
- Speed improvements for model generation.
- The
@addNLConstraints
macro supports adding multiple (groups of) constraints at once. Syntax is similar to@addConstraints
. - Discrete variables allowed in nonlinear problems for solvers which support them (currently only KNITRO).
- Starting values for variables may now be specified with
@defVar(m, x, start=value)
. - The
setSolver
function allows users to change the solver subsequent to model creation. - Support for "fixed" variables via the
@defVar(m, x == 1)
syntax. - Unit tests rewritten to use FactCheck.jl, improved testing across solvers.
- Fix a bug in multiplying two AffExpr objects.
- Further improvements and bug fixes for printing.
- Fixed a bug in
@defExpr
. - Support for accessing expression graphs through the MathProgBase NLP interface.
- Improvements and bug fixes for printing.
- Julia 0.3.0 is the minimum required version for this release.
buildInternalModel(m::Model)
added to build solver-level model in memory without optimizing.- Deprecate
load_model_only
keyword argument tosolve
. - Add groups of constraints with
@addConstraints
macro. - Unicode operators now supported, including
∑
forsum
,∏
forprod
, and≤
/≥
- Quadratic constraints supported in
@addConstraint
macro. - Quadratic objectives supported in
@setObjective
macro. - MathProgBase solver-independent interface replaces Ipopt-specific interface for nonlinear problems
- Breaking change:
IpoptOptions
no longer supported to specify solver options, usem = Model(solver=IpoptSolver(options...))
instead.
- Breaking change:
- New solver interfaces: ECOS, NLopt, and nonlinear support for MOSEK
- New option to control whether the lazy constraint callback is executed at each node in the B&B tree or just when feasible solutions are found
- Add support for semicontinuous and semi-integer variables for those solvers that support them.
- Add support for index dependencies (e.g. triangular indexing) in
@defVar
,@addConstraint
, and@defExpr
(e.g.@defVar(m, x[i=1:10,j=i:10])
).- This required some changes to the internal structure of JuMP containers, which may break code that explicitly stored
JuMPDict
objects.
- This required some changes to the internal structure of JuMP containers, which may break code that explicitly stored
- Fix a bug with specifying solvers (affects Julia 0.2 only)
- Fix a bug in printing models
- Add support for semicontinuous and semi-integer variables for those solvers that support them.
- Breaking change: Syntax for
Variable()
constructor has changed (use of this interface remains discouraged)
- Breaking change: Syntax for
- Update for breaking changes in MathProgBase
- Fix bug with problem modification: adding variables that did not appear in existing constraints or objective.
- Update for breaking change in MathProgBase which reduces loading times for
using JuMP
- Fix error when MIPs not solved to optimality
- Update for breaking change in ReverseDiffSparse
- Fix compatibility with Julia 0.3 prerelease
- Fix a bug in coefficient handling inside lazy constraints and user cuts
- Support for nonlinear optimization with exact, sparse second-order derivatives automatically computed. Ipopt is currently the only solver supported.
getValue
forAffExpr
andQuadExpr
- Breaking change:
getSolverModel
replaced bygetInternalModel
, which returns the internal MathProgBase-level model - Groups of constraints can be specified with
@addConstraint
(see documentation for details). This is not a breaking change. dot(::JuMPDict{Variable},::JuMPDict{Variable})
now returns the corresponding quadratic expression.
- Fix bug where change in objective sense was ignored when re-solving a model.
- Fix issue with handling zero coefficients in AffExpr.
- Support for SOS1 and SOS2 constraints.
- Solver-independent callback for user heuristics.
dot
andsum
implemented forJuMPDict
objects. Now you can say@addConstraint(m, dot(a,x) <= b)
.- Developers: support for extensions to JuMP. See definition of Model in
src/JuMP.jl
for more details. - Option to construct the low-level model before optimizing.
- Improved model printing
- Preliminary support for IJulia output
- Documentation updates
- Support for MOSEK
- CPLEXLink renamed to CPLEX
- Unbounded/infeasibility rays: getValue() will return the corresponding components of an unbounded ray when a model is unbounded, if supported by the selected solver. getDual() will return an infeasibility ray (Farkas proof) if a model is infeasible and the selected solver supports this feature.
- Solver-independent callbacks for user generated cuts.
- Use new interface for solver-independent QCQP.
setlazycallback
renamed tosetLazyCallback
for consistency.
- Breaking change: Objective sense is specified in setObjective instead of in the Model constructor.
- Breaking change:
lpsolver
andmipsolver
merged into singlesolver
option. - Problem modification with efficient LP restarts and MIP warm-starts.
- Relatedly, column-wise modeling now supported.
- Solver-independent callbacks supported. Currently we support only a "lazy constraint" callback, which works with Gurobi, CPLEX, and GLPK. More callbacks coming soon.
- Bug fixes for printing, improved error messages.
- Allow
AffExpr
to be used in macros; e.g.,ex = y + z; @addConstraint(m, x + 2*ex <= 3)
- Update for solver specification API changes in MathProgBase.
- Initial public release.