MOSEK is widely used in the energy industry to solve optimization problems, including unit commitment, optimal power flow, dispatch, and more. MOSEK is well known for its state-of-the-art optimizers for conic and mixed integer problems. It is typically more cost-effective than canned software packages and provides more flexibility. On this page, we gather our publications and tutorials about optimization in the energy industry.
Where Mosek is used
In the energy industry, many optimization problems naturally fit Mixed-Integer Programming (MIP) or Conic Optimization formulations (SOCP, SDP, exponential cones, etc.) Often cost curves are quadratic (QP) or convex (conic); AC power flow models and gas flow equations benefit from SOCP or SDP relaxations; Uncertain renewable output and probabilistic reliability constraints can be reformulated as second-order cones; thermodynamic relationships and efficiency curves are often best modeled with exponential cones.
| Problem | Problem Type |
|---|---|
| DC optimal power flow (DCOPF) | LP / MIP |
| Hydrogen scheduling | LP / MIP |
| Storage scheduling | LP / MIP |
| Unit commitment | MIP |
| Market clearing | MIP |
| Capacity expansion planning | MIP |
| Transmission expansion | MIP |
| AC optimal power flow (ACOPF) | MINLP; SOCP / SDP relaxations |
| Gas network optimization | MINLP; SOCP relaxations |
| Chance-constrained dispatch | SOCP |
Third-party modeling tools and APIs
Nowadays, many energy models are written in specific modeling frameworks targeted for energy applications. Most prominently Python frameworks but also several others where Mosek can be selected as the solver of choice.. The list below is not exhaustive, but it helps the majority of users, hopefully.
| Name | Comment | Links |
|---|---|---|
| PyPSA | power system simulation + optimization; Python | GitHub |
| Switch | Open-source energy framework for power switch models | |
| Spine Toolbox | Energy system planning (SpineOpt); Julia / JuMP | GitHub |
| oemof | Open energy modeling framework, based on Pyomo | GitHub |
| Calliope | Free and open-source (Apache 2.0) energy system modelling framework based on Pyomo | GitHub |
| Generic modeling languages | ||
| CVX, CVXPY, CVXR | Open-source convex optimization modeling layer | GitHub/cvxpy |
| GAMS | Generic modeling language; Mosek interface | Power System Optimization Modeling library/td> |
| AMPL | Generic modeling language; Mosek interface | |
| YALMIP | Modeling toolbox in Matlab | GitHub |
| Pyomo | Generic Opti modeling | |
| linopy | Python optimization modeling library | GitHub |
For further third-party APIs, we refer to our overview page about third-party API.
Python notebooks
The following notebooks and examples can be found in Mosek’s documentation or on our own GitHub. In general, we recommend to check the rich repositories of third-party energy modeling framework providers.
| Notebook | Problem type | Keywords | Links |
|---|---|---|---|
| Unit Commitment | MICQO | Energy, unit commitment | source |
| Transformer design optimization | EXP | Energy, geometric programming | source |
Other resources
- The MOSEK Modeling Cookbook - is a mathematically oriented publication about conic optimization which presents the theory, examples, and many tips and tricks about formulating optimization problems. Also available as PDF (A4) and PDF (letter).
Try our Remote Optimization Server!
The Optimization Server (OptServer) is a MOSEK service for executing optimization tasks on a remote machine, including job scheduling, user management and other features. See documentation for details.