You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the Appendix of Tan's disseration he mentions to check the magnitude of the coefficients after the optimization. If some of them are five/six magnitudes smaller compared to the others you can most likely get rid of them, i.e., remove the corresponding monomials from the monomials list and hence reduce the problem size.
I tried that by applying that as follows:
Assume a poly to be a gram polynomial, poly is one of the decision variable and we solved an SOS optimization problem.
[coeffs, monom] = poly2basis(poly);
% check the coeffs and then remove the monomials with small numerical values i.e. below magn.
% set up new poly with reduced number of monomials
s = casos.PS.sym('s',mon_reduced,'gram');
If I set up the new solver, an error is thrown because no gram basis could be found.
Two questions:
1.) Could the procedure from Tan be somehow automized?
2.) Is it normal to get the error message for the new setup? If so I would simply add it as a linear decision variable and a SOS constraint.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
In the Appendix of Tan's disseration he mentions to check the magnitude of the coefficients after the optimization. If some of them are five/six magnitudes smaller compared to the others you can most likely get rid of them, i.e., remove the corresponding monomials from the monomials list and hence reduce the problem size.
I tried that by applying that as follows:
Assume a poly to be a gram polynomial, poly is one of the decision variable and we solved an SOS optimization problem.
[coeffs, monom] = poly2basis(poly);
% check the coeffs and then remove the monomials with small numerical values i.e. below magn.
[~, monom_reduced] = poly2basis( cleanpoly( poly, magn) );
% set up new poly with reduced number of monomials
s = casos.PS.sym('s',mon_reduced,'gram');
If I set up the new solver, an error is thrown because no gram basis could be found.
Two questions:
1.) Could the procedure from Tan be somehow automized?
2.) Is it normal to get the error message for the new setup? If so I would simply add it as a linear decision variable and a SOS constraint.
Beta Was this translation helpful? Give feedback.
All reactions