Closed whart222 closed 1 year ago
I'm planning to use/build upon radix_linearization in the near (next few months) future, but I haven't had the time to go through and understand what the code is doing yet.
The radix_linearization
transformation is a whim that I put together after getting excited about Pedro Castro's talk at AIChE (it is a variant on his "multiparametric disaggregation" approach). You are correct that it is not tested (and in fact was never fully completed). I have no qualms marking it as deprecated (but not removing it ... it has some interesting breadcrumbs in it). @qtothec: I also have plans to reconstitute this capability in the next several months. We should coordinate.
As to the others, by core.remove_fixed_vars
do you mean core.eliminate_fixed_vars
from core/plugins/transform/eliminate_fixed_vars.py
? I believe that both core.eliminate_fixed_vars
and core.nonnegative_vars
are your transformations. I do not know if either has ever been used. Of the two, I could see utility in the nonnegative_vars
transformation, though (I see too many algorithms / papers that begin with that standard form assumption, so having a transformation to generate it from a model could be useful).
@jsiirola: @bernalde also expressed interest in the radix_linearization
and piecewise McCormick when I mentioned it to him a few minutes ago.
Tracking this in the Archived Design Discussions wiki page.
The following model transformations are either weakly tested or not tested at all:
core.radix_linearization
core.remove_fixed_vars
core.nonnegative_vars
Each of these transformations perform nontrivial changes of the expression tree, and hence they should be reworked to use the new expression tree walker that has been developed on the expr_dev branch. But the fact that these are so poorly tested suggests that they are not used in practice.
Please comment on the utility of these transformations.