jump-dev / SumOfSquares.jl

Sum of Squares Programming for Julia
Other
116 stars 24 forks source link

Implement constraint on semialgebraic set #4

Open blegat opened 7 years ago

blegat commented 7 years ago

Let's check the different way we can implement the SOS constraint

@polyconstraint q(x) >= 0 domain=[f_1(x) = 0, ..., f_m(x) = 0, g_1(x) >= 0, ..., g_p(x) >= 0])

There are basically two ways to handle this:

where

See section 3.1.6 of

Blekherman, G., Parrilo, P. A., & Thomas, R. R. (Eds.). Semidefinite optimization and convex algebraic geometry SIAM 2013

For the ideal, we can do something else than creating the coefficients r_i(x):

Not let's look at the equality constraint

@polyconstraint q(x) == 0 domain=[f_1(x) = 0, ..., f_m(x) = 0, g_1(x) >= 0, ..., g_p(x) >= 0])

If p is zero then we can simply do q(x) ∈ ⟨f_1(x), ..., f_m(x)⟩ using either of the 3 possible ways to handle ideas. But if p is not zero, what do we do ? Throw an error ? Replace it by q(x) >= 0 and q(x) <= 0 (by throwing a warning ?) ? Compute the variety determined by an algebraic set ? Any idea ?

I have split each separate task in a separate issue.

joehuchette commented 7 years ago

Did you intend to move all 6 of the child issues to the 0.1.0 milestone as well? Are you opposed to releasing a 0.0.1 release in the meantime? I have some time over the next few days to help get things in shape for that.

blegat commented 7 years ago

Glad to hear that! I created the two milestones 0.0.1 and 0.1.0 to split issues that are a priority or easier with the other issues that might take more time to address. Of course, we might want to split 0.0.1 into 0.0.1 and 0.0.2. The child issues in the 0.0.1 milestone weren't assigned by mistake but they can certainly be reassigned to 0.0.2