nurkanovic / nosnoc

nosnoc is an open source software package for NOnSmooth Numerical Optimal Control.
https://nosnoc.readthedocs.io/en/latest/index.html
BSD 2-Clause "Simplified" License
46 stars 10 forks source link

Relaxed and slacked constraints in nosnoc #96

Open nurkanovic opened 1 month ago

nurkanovic commented 1 month ago

Currently, we support ell_1 relaxation of some terminal constraints 1) the terminal constraints of the ocp 2) some of the FESD/time-freezing terminal constraints to meet a certain final numerical/physical time.

I would still steer the relaxation of these constraints with appropriate separate options, as we have them now.

In addition to this, it would be nice to be able to relax other constraints (e.g. using vdx internally to define according variables and constraints). In particular it would be nice to relax: 1) Path constraints 2) Dynamics constraints (maybe to separate even between the differential and algebraic part of the dynamics)

Choices for relaxing: 1) ell 2 (every constraint gets a separate slack), maybe we can have upper bounds on slacks to avoid unbounded problems 2) ell1 (every constraint gets a separate slack) 3) ell_inf (every constraint group gets one slack)

Choice for penalty parameter: 1) fixed value (separate parameter for every constraint group, by groups i mean: path, dynamics, terminal, terminal_algoritmic (nice and instructive names are a plus)) 2) use rho = 1/sigma - we should decide if we can mix fixed values and homotopy penalities. one one hand it gives a lot of flexibility, on the other hand too many choices might be confusing.

nurkanovic commented 1 month ago

We should have minimal examples and sanity checks for every of the mode.