@@ -190,15 +190,42 @@ for a detailed example.
190
190
The dual of a polynomial constraint ` cref ` is a moment serie ` μ ` as defined in
191
191
[ MultivariateMoments] ( https://github.com/JuliaAlgebra/MultivariateMoments.jl ) .
192
192
The dual can be obtained with the ` dual ` function as with classical
193
- dual values in JuMP. The matrix of moments can be obtained using [ ` moment_matrix ` ] ( @ref ) :
193
+ dual values in JuMP.
194
194
``` julia
195
195
μ = dual (cref)
196
+ ```
197
+ By dual of a Sum-of-Squares constraint, we may mean different things
198
+ and the meaning chosen for ` dual ` function was chosen for consistency
199
+ with the definition of the JuMP ` dual ` function to ensure that generic
200
+ code will work as expected with Sum-of-Squares constraints.
201
+ In a Sum-of-Squares constraint, a polynomial $p$ is constraint to
202
+ be SOS in some domain defined by polynomial ` q_i ` .
203
+ So ` p(x) ` is constrained to be equal to
204
+ ` s(x) = s_0(x) + s_1(x) * q_1(x) + s_2(x) * q_2(x) + ... `
205
+ where the ` s_i(x) ` polynomials are Sum-of-Squares.
206
+ The dual of the equality constraint between ` p(x) ` and ` s(x) ` is given
207
+ by [ ` SumOfSquares.PolyJuMP.moments ` ] ( @ref ) .
208
+ ``` julia
209
+ μ = moments (cref)
210
+ ```
211
+ Note that the ` dual ` and ` moments ` may give different results. For instance,
212
+ the output of ` dual ` only contains the moments corresponding to monomials of ` p `
213
+ while the output of ` moments ` may give the moments of other monomials if ` s(x) `
214
+ has more monomials than ` p(x) ` . Besides, if the domain contains polynomial,
215
+ equalities, only the remainder of ` p(x) - s(x) ` modulo the ideal is constrained
216
+ to be zero, see Corollary 2 of [ CLO13] . In that case, the output ` moments ` is
217
+ the dual of the constraint on the remainder so some monomials may have different
218
+ moments with ` dual ` or ` moments ` .
219
+
220
+ The dual of the Sum-of-Squares constraint on ` s_0(x) ` , commonly referred
221
+ to as the the matrix of moments can be obtained using [ ` moment_matrix ` ] ( @ref ) :
222
+ ``` julia
196
223
ν = moment_matrix (cref)
197
224
```
198
225
The ` extractatoms ` function of [ MultivariateMoments] ( https://github.com/JuliaAlgebra/MultivariateMoments.jl )
199
226
can be used to check if there exists an * atomic* measure (i.e. a measure that is
200
- a sum of Dirac measures) that has the moments given in ` ν ` .
201
- This can be used for instance in polynomial optimization (see
227
+ a sum of Dirac measures) that has the moments given in the the moment matrix
228
+ ` ν ` . This can be used for instance in polynomial optimization (see
202
229
[ this notebook] ( https://github.com/JuliaOpt/SumOfSquares.jl/blob/master/examples/Polynomial_Optimization.ipynb ) )
203
230
or stability analysis (see
204
231
[ this notebook] ( https://github.com/blegat/SwitchOnSafety.jl/blob/master/examples/LPJ17e43.ipynb ) ).
@@ -207,10 +234,14 @@ or stability analysis (see
207
234
208
235
[ BPT12] Blekherman, G.; Parrilo, P. A. & Thomas, R. R.
209
236
* Semidefinite Optimization and Convex Algebraic Geometry* .
210
- Society for Industrial and Applied Mathematics, 2012.
237
+ Society for Industrial and Applied Mathematics, ** 2012** .
238
+
239
+ [ CLO13] Cox, D., Little, J., & OShea, D.
240
+ * Ideals, varieties, and algorithms: an introduction to computational algebraic geometry and commutative algebra* .
241
+ Springer Science & Business Media, ** 2013** .
211
242
212
243
[ AM17] Ahmadi, A. A. & Majumdar, A.
213
- * DSOS and SDSOS Optimization: More Tractable Alternatives to Sum of Squares and Semidefinite Optimization*
244
+ * DSOS and SDSOS Optimization: More Tractable Alternatives to Sum of Squares and Semidefinite Optimization* .
214
245
ArXiv e-prints, ** 2017** .
215
246
216
247
## Reference
@@ -249,6 +280,8 @@ SumOfSquares.CopositiveInner
249
280
250
281
Attributes
251
282
``` @docs
283
+ SumOfSquares.PolyJuMP.MomentsAttribute
284
+ SumOfSquares.MultivariateMoments.moments(::SumOfSquares.JuMP.ConstraintRef)
252
285
GramMatrix
253
286
SumOfSquares.GramMatrixAttribute
254
287
gram_matrix
@@ -260,3 +293,17 @@ certificate_monomials
260
293
SumOfSquares.LagrangianMultipliers
261
294
lagrangian_multipliers
262
295
```
296
+
297
+ Polynomial basis:
298
+ ``` @docs
299
+ SumOfSquares.PolyJuMP.AbstractPolynomialBasis
300
+ SumOfSquares.PolyJuMP.MonomialBasis
301
+ SumOfSquares.PolyJuMP.ScaledMonomialBasis
302
+ SumOfSquares.PolyJuMP.FixedPolynomialBasis
303
+ ```
304
+
305
+ Bridges are automatically added using the following utilities:
306
+ ``` @docs
307
+ SumOfSquares.PolyJuMP.bridgeable
308
+ SumOfSquares.PolyJuMP.bridges
309
+ ```
0 commit comments