stellatogrp / lropt

Apache License 2.0
19 stars 3 forks source link

Formalize canonicalization step #2

Closed bstellato closed 1 year ago

bstellato commented 2 years ago

I took a look at some recent changes. Branch b/unittests still does not pass the tests because we need to formalize the canonicalization.

At the moment, the canonicalization step canonicalizes the tree using the cvxpy Canonicalization object. More details here. This step takes each expression and canonicalizes it, independently on its sign. This can be an issue when we are computing on its worst-case value in a constraint.

We need to think how to embed this information in the expression. We could define custom expressions/atoms (e.g., function $g(u, x)$) and define a set of conjugate functions to compute. We need to think about this more...

bstellato commented 2 years ago

Idea discussed today: we could use a paradigm similar to Disciplined Parametrized Programming (DPP) to keep track of which robust optimization problem we can express with our framework. More information in this paper