-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Welcome to the CaΣoS wiki! Here you'll find information about polynomial optimization, sum-of-squares and related cones, and general usage of the software.
CaΣoS aims to bring nonlinear optimization into sum-of-squares programming as well as facilitate the integration of pre-computed polynomials into optimal control solutions. CaΣoS is developed by researchers at the Institute of Flight Mechanics and Controls of the University of Stuttgart and distributed open-source under the GPL-3.0 license.
The following requirements need to be met in order to use all functionalities of CaΣoS:
- Download CasADi v3.6.x and add it to your Matlab path.
- Download and install at least one solver for semidefinite (conic) programs, and add the solver(s) to the Matlab Path.
- Add the CaΣoS root folder (the one that contains the directory
+casos) to your Matlab path.
Important
CaΣoS requires CasADi version 3.6.0 or newer.
You can check if CaΣoS is ready to go by running the install script in utils/install.m.
CaΣoS provides interfaces to the following conic (semidefinite) solvers:
Note
- Mosek requires a separate license. Academic Licenses are available.
- Clarabel requires a MATLAB
mexinterface to the Rust implementation, available here.
With sossol, CaΣoS can verify nonnegativity of a polynomial. Consider for example
For which
% Polynomial optimization.
% indeterminate variable
x = casos.Indeterminates('x');
% some polynomial
f = x^4 + 10*x;
% scalar decision variable
g = casos.PS.sym('g');
% define SOS problem:
% min g s.t. (f + g) is SOS
sos = struct('x',g,'f',g,'g',f+g);
% constraint is scalar SOS cone
opts = struct('Kc',struct('sos',1));
% solve by relaxation to SDP
S = casos.sossol('S','sedumi',sos,opts);
% evaluate
sol = S();
fprintf('Minimum is %g.\n', full(sol.f))TODO: add example (ROA)
- Getting started
- Available conic solvers
- Convex and nonconvex sum-of-squares optimization
- Supported vector, matrix, and polynomial cones
- Some practical tipps for sum-of-squares
- Transitioning from other toolboxes
- Example code snippets
If you use CaΣoS, please cite us.