Skip to content

Commit

Permalink
Simplify hermitian examples
Browse files Browse the repository at this point in the history
  • Loading branch information
blegat committed Mar 31, 2022
1 parent 6d93d0a commit af24326
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,14 @@ p = (x + 1.0im * y) * (x - im * y)

import CSDP
model = Model(CSDP.Optimizer)
add_bridge(model, SumOfSquares.Bridges.Constraint.EmptyBridge)
add_bridge(model, SumOfSquares.Bridges.Constraint.PositiveSemidefinite2x2Bridge)
add_bridge(model, SumOfSquares.COI.Bridges.Variable.HermitianToSymmetricPSDBridge)
add_bridge(model, SumOfSquares.COI.Bridges.Constraint.SplitZeroBridge)
MOI.Bridges.add_bridge(backend(model).optimizer, PolyJuMP.ZeroPolynomialBridge{Complex{Float64}})
MOI.Bridges.add_bridge(backend(model).optimizer, SumOfSquares.Bridges.Constraint.SOSPolynomialBridge{Complex{Float64}})
cone = NonnegPolyInnerCone{SumOfSquares.COI.HermitianPositiveSemidefiniteConeTriangle}()
certificate = SumOfSquares.Certificate.MaxDegree(cone, MonomialBasis, 2)
c = SumOfSquares.add_constraint(model, p, cone, ideal_certificate = certificate)
con_ref = @constraint(model, p in cone)
optimize!(model)
dec = sos_decomposition(c, 1e-6) #src
dec = sos_decomposition(con_ref, 1e-6) #src
@test length(dec.ps) == 1 #src
@test sign(real(first(coefficients(dec.ps[1])))) * dec.ps[1] x - im * y atol=1e-6 rtol=1e-6 #src
sos_decomposition(c, 1e-6)
sos_decomposition(con_ref, 1e-6)
6 changes: 1 addition & 5 deletions docs/src/tutorials/Symmetry/cyclic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,6 @@ b = -√3/2
import CSDP
solver = CSDP.Optimizer
model = Model(solver)
add_bridge(model, SumOfSquares.Bridges.Constraint.EmptyBridge)
add_bridge(model, SumOfSquares.Bridges.Constraint.PositiveSemidefinite2x2Bridge)
add_bridge(model, SumOfSquares.COI.Bridges.Variable.HermitianToSymmetricPSDBridge)
add_bridge(model, SumOfSquares.COI.Bridges.Constraint.SplitZeroBridge)
MOI.Bridges.add_bridge(backend(model).optimizer, PolyJuMP.ZeroPolynomialBridge{Complex{Float64}})
Expand All @@ -151,10 +149,8 @@ MOI.Bridges.add_bridge(backend(model).optimizer, SumOfSquares.Bridges.Constraint
@objective(model, Max, t)
pattern = Symmetry.Pattern(G, action)
cone = SumOfSquares.NonnegPolyInnerCone{SumOfSquares.COI.HermitianPositiveSemidefiniteConeTriangle}()
certificate = SumOfSquares.Certificate.MaxDegree(cone, MonomialBasis, 2)
sym_certificate = SumOfSquares.Certificate.Symmetry.Ideal(pattern, certificate)
pp = (1.0 + 0.0im) * poly - (1.0 + 0.0im) * t
con_ref = SumOfSquares.add_constraint(model, pp, cone, ideal_certificate = sym_certificate)
con_ref = @constraint(model, pp in cone, symmetry = pattern)
optimize!(model)
@test termination_status(model) == MOI.OPTIMAL #src
@test objective_value(model) 0.0 atol=1e-4 #src
Expand Down

0 comments on commit af24326

Please sign in to comment.