Moment Program
MomentPolynomialOpt.MOM.ModelMomentPolynomialOpt.MOM.add_constraint_momentMomentPolynomialOpt.MOM.add_constraint_nnegMomentPolynomialOpt.MOM.add_constraint_unitmassMomentPolynomialOpt.MOM.add_constraint_zeroMomentPolynomialOpt.MOM.set_objectiveMomentPolynomialOpt.MOM.set_objective_nclMomentPolynomialOpt.MOM.set_objective_tvMomentPolynomialOpt.moments
MomentPolynomialOpt.moments — Functionmoments(M, X, d::Int, symb::Symbol...)Define variables for the moments of the monomials of degree less than d in the variables X. If
symb == :PSD, non-negativity constraints are added;symb == :PRB, unit mass and non-negativity constraints are added.
MomentPolynomialOpt.MOM.Model — FunctionM = MOM.Model( `sense`, f, H, G, X, d)Construct the Moment Program in the variables X of order d.
sense== :inf or :supfpolynomial objective functionH =[h1, h2, ...]array of polynomial equality constraints (can be empty)G =[g1, g2, ...]array of non-negativity constraints (can be empty)Xis the vector of variablesdis the order of the moment relaxation.
M = MOM.Model(C, X, d)Construct the Moment Program where
- C is a vector of pairs (f, sense ) of objective or constraints where f is a polynomial and sense is "inf", "min", "sup", "max", ">=0", "<=0", "=0", or an interval
Xis the vector of variablesdis the order of the moment relaxation.
Constraints
MomentPolynomialOpt.MOM.add_constraint_zero — Functionadd_constraint_zero(M, eq, mu::Moments)Add to the moment program M, the constraints $eq\star \mu = 0$, that is all the constraints $\mu(p*m)==0$ for $degree(m) \le 2*degree(M)-degree(p)$.
MomentPolynomialOpt.MOM.add_constraint_nneg — Functionadd_constraint_nneg(M, mu::Moments, g)Add to the moment program M, the constraints $g \star \mu \succeq 0$, that is the moment matrix of $g\star \mu$ is PSD.
MomentPolynomialOpt.MOM.add_constraint_moment — Functionadd_constraint_moment(M, mu::Moments, p => v)Add to the moment program M, the constraint $\mu(p) - v == 0$.
MomentPolynomialOpt.MOM.add_constraint_unitmass — Functionadd_constraint_unitmass(M, mu)Add to the moment program M, the constraint $\langle \mu, 1 \rangle - 1 = 0$.
Objective function
MomentPolynomialOpt.MOM.set_objective — Functionset_objective(M, sense, p, mu)Set the "inf" or "sup" objective function to $\sum_{i=1}^{\nu} \langle p\star \mu_i, 1 \rangle$ where p is a polynomial.
MomentPolynomialOpt.MOM.set_objective_tv — Functionset_objective_tv(M)Set the objective function of the moment program to the total variation of the moment sequence $\mu$, that is the sum of the unit mass of the positive moment sequences $\sum_{i=1}^{\nu} \langle \mu_i, 1\rangle$.
MomentPolynomialOpt.MOM.set_objective_ncl — Functionset_objective_ncl(M)Set the objective function of moment program to the nuclear norm or equivalently the trace of the moment matrices.