Skip to content

Can't dualize exotic cone #232

Description

@araujoms

When trying to dualize a conic problem involving Hypatia's EpiNormSpectralTriCone I get the following error message

ERROR: UnsupportedConstraint: `MathOptInterface.VectorAffineFunction{Float64}`-in-`EpiNormSpectralTriCone{Float64, Float64}` 
constraints are not supported by the solver you have chosen, and we could not reformulate your model into a
form that is supported.

To fix this error you must choose a different solver.

which is clearly incorrect. I don't know if this is a bug in Hypatia or Dualization, though, or more generally how can Dualization even know what the dual of this cone is. MWE:

using LinearAlgebra
using Hypatia
using Dualization
using JuMP

function test_dual()
    model = Model()
    @variable(model, M[1:2, 1:2], Symmetric)
    @constraint(model, [1, M[1, 1], sqrt(2) * M[1, 2], M[2, 2]] in Hypatia.EpiNormSpectralTriCone{Float64,Float64}(1 + 3))
    @objective(model, Max, real(tr(M)))
    #set_optimizer(model, Hypatia.Optimizer)
    set_optimizer(model, Dualization.dual_optimizer(Hypatia.Optimizer))
    optimize!(model)
    return value(M)
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions