Hi, I’m trying to use the moment_matrix function in SumOfSquares package.
using MultivariateMoments
ν3 = moment_matrix(constr)
However, I got the following error:
ArgumentError: ModelLike of type MosekModel does not support accessing the attribute SumOfSquares.MomentMatrixAttribute(1)
Stacktrace:
Does anyone know why it is the case? Everything was fine when I tried the example provided in the documentation.
blegat
2
Could you provide a more complete example that reproduces the error? My guess is that constr
is not a Sum-of-Squares constraint.
Thanks for your quick reply! The polynomial opt problem that I was trying to optimize is
model = SOSModel(Mosek.Optimizer)
@polyvar B[1:2,1:3]
@variable(model, t1)
@variable(model, t2)
@variable(model, var)
@polyvar c0
@polyvar x[1:3]
@polyvar p[1:2]
kernel = (transpose(p)*vec(B*x) + c0).^2
expr = subs(kernel, c0=> 1.0 , p =>[0.2, 0.6], x=>[0.4, 0.2, 1.0]);
@constraints(model, begin
t1 >= 0
t2 >= 0
end)
S = @set vec(B*[1,1,1])[1]>=0 && vec(B*[1,1,1])[2]>=0 && vec(B*[1,1,1])[1] + vec(B*[1,1,1])[2]==1
@constraint(model, t1 >= 48.0 - expr, domain=S)
@constraint(model, t2 >= expr - 48.0, domain=S)
@constraint(model, constr, var >= t1+2*t2)
@objective(model, Min, var)
optimize!(model)
And I’m trying to extract the value of optimal B in this problem.
blegat
4
The Sum-of-Squares constraints here are
c1 = @constraint(model, t1 >= 48.0 - expr, domain=S)
c2 = @constraint(model, t2 >= expr - 48.0, domain=S)
You should do moment_matrix(c1)
and/or moment_matrix(c2)
and try extracting atoms from these.
1 Like