# Automatic quadratization of constraints in pyomo for gurobi

Gurobi 9 can solve QCQPs, and QCQPs capture all of polynomial optimization by the obvious trick that e.g. a cubic term $$x_1 x_2 x_3$$ can be turned into a quadratic term $$y x_3$$ and a constraint $$y = x_1 x_2$$. Can pyomo do this automatically for a non-convex, non-quadratic (but polynomial) problem, so that it can then call Gurobi on it? If not, is there some intuitive reason why one should do this by hand? Or is it just a not-yet-implemented feature?

• As far as I know, Pyomo is an algebraic language that can be connected to many other solvers and is not capable to solve mathematical models solely. Maybe just for preprocessing/pre-solving. It means that to solve the problem, (e.g. what you mentioned), you will need to use an appropriate solver. About some linearization techniques, there are many different methods to do the same task, but what is implemented in the solver, specifically commercial ones, first do have some useful tricks and the second are commercial and not free. Nov 9 '21 at 5:41