YALMIP is free of charge to use and is openly distributed, but note that
-
Copyright owned by Johan Löfberg.
-
YALMIP must be referenced (general reference, robust optimization reference, sum-of-squares reference) when used in a published work (give me some credit for saving your valuable time!)
-
YALMIP, or forks or versions of YALMIP, may not be re-distributed as a part of a commercial product unless agreed upon with the copyright owner (if you make money from YALMIP, let me in first!)
-
YALMIP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE (if your satellite crash or you fail your Phd due to a bug in YALMIP, your loss!).
-
Forks or versions of YALMIP must include, and follow, this license in any distribution.
For installation, see the installation tutorial, and get started coding here
And don’t forget, most likely you have to install additional solvers
https://github.com/yalmip/YALMIP/archive/master.zip
Getting started
Updated: September 17, 2016
Tutorial introduces essentially everything you’ll ever need. The remaining 95% is syntactic sugar.
Linear programming
Updated: September 17, 2016
As easy as it gets. Linear separation with linear norms.
Quadratic programming
Updated: September 17, 2016
Almost as easy as linear programming. Be careful though, symbolics might start to cause overhead.
Semidefinite programming
Updated: September 17, 2016
Who wudda thought? Optimization over positive definite symmetric matrices is easy.
Determinant maximization
Updated: September 17, 2016
Optimization with ellipsoids and likelihood functions are typical applications of determinant maximization.
Sum-of-squares programming
Updated: September 17, 2016
Almost nothing is a sum-of-squares, but let’s hope yours is.
Robust optimization
Updated: September 17, 2016
The only thing we can be sure of is the lack of certainty.
Rank constrained semidefinite programming problems
Updated: September 17, 2016
Learn how to constrain ranks in semidefinite programs
Nonlinear operators - integer models
Updated: September 17, 2016
Mixed-integer representations of nonlinear operators
Nonlinear operators - graphs and conic models
Updated: September 17, 2016
Epi- and hypograph conic representations of nonlinear operators
Nonlinear operators - callbacks
Updated: September 17, 2016
Callback representations of nonlinear operators
Nonlinear operators
Updated: September 17, 2016
Working with nonlinear operators in a structured and efficient fashion
Moment relaxations
Updated: September 17, 2016
Moment relaxations allows us to find lower bounds on polynomial optimization problems using semidefinite programming
Logic programming
Updated: September 17, 2016
Logic programming in YALMIP means programming with operators such as alldifferent, number of non-zeros, implications and similiar combinatorial objects.
Integer programming
Updated: September 17, 2016
Undisciplined programming often leads to integer models, but in some cases you have no option.
Global optimization
Updated: September 17, 2016
The holy grail! 60% of the time it works every time.
General convex programming
Updated: September 17, 2016
YALMIP does not care, but for your own good, think about convexity also in general nonlinear programs.
Exponential cone programming
Updated: September 17, 2016
Convex conic optimization over exponentials and logarithms
Envelope approximations for global optimization
Updated: September 17, 2016
Outer approximations of function envelopes are the core of the global solver BMIBNB
Complex-valued problems
Updated: September 17, 2016
Complex data in optimization models. No problem in reality.
Bilevel programming
Updated: September 17, 2016
Bilevel programming using the built-in bilevel solver
Big-M and convex hulls
Updated: September 17, 2016
Learn how nonconvex models are written as integer programs using big-M strategies, and why it should be called small-M.
Automatic dualization
Updated: September 17, 2016
Primal or dual arbitrary in primal-dual solver? No, but YALMIP can help you reformulate your model.
Sample-based robust optimization
Updated: September 28, 2016
Unintended consequences of an improved optimizer framework
YALMIP and Simulink
Updated: June 27, 2013
Using YALMIP objects and code in Simulink models, easy or fast, your choice.
Unit commitment example - logic and integer programming
Updated: January 30, 2013
A common application of integer programming is the unit commitment problem in power generation, i.e., scheduling of set of power plants in order to meet a cu...
Nonconvex quadratic programming
Updated: August 31, 2011
Common question: how can I solve a nonconvex QP using SeDuMi? Weird question, but interesting answer.
Strictly feasible sum-of-squares solutions
Updated: February 09, 2011
A question on the YALMIP forum essentially boiled down to how can I generate sum-of-squares solutions which really are feasible, i.e. true certificates?
Work-shop material
Updated: June 11, 2010
Files and exercise material from the YALMIP work-shop at the Swedish control conference 2010
Polytopic geometry using YALMIP and MPT
Updated: June 11, 2010
Ever wondered how to compute the L1 Chebyshev ball?
Computing multiple solutions in one shot
Updated: August 29, 2009
Avoid that for-loop by using vector objectives
Constraints without any variables
Updated: August 29, 2009
Code works for almost all cases, but suddenly fails.
New sum-of-squares example
Updated: August 29, 2009
Added a sum-of-squares example focusing on pre- and post-processing capabilities.