Skip to content

MOI wrapper doesn't implement full SemidefiniteOptInterface interface? #19

Description

@ericphanson

Context: @JiazhengZhu and I are trying to translate (automatically) some problems from a Julia formulation to SDPA-format file in an effort to debug #17. It seems like some of the problem is a choice of parameters (and a SOC problem that snuck in), but I want to check that directly going to the binary (well, Convex -> MOI -> SDPA-formatted file -> binary) gives the same answers as Convex -> MBP -> SDPA.jl (or now Convex -> MOI -> SDPA.jl via https://github.com/ericphanson/Convex.jl/tree/MathOptInterface), to see if the "bad" parameters giving very wrong results is due to something in SDPA.jl or in the binary itself (I'm thinking it's not a bug in Convex.jl because the other solvers are fine). Being able to write SDPA-formatted files will help us later too, because we want to wrap SDPA-GMP, so we can use that for tests there too.

The problem: Trying to use the MOI.write method provided by SemiOptInterface gives MethodError: no method matching getnumberofconstraints(::SDPA.SDOptimizer) and suggests only getnumberofconstraints(::SemidefiniteOptInterface.MockSDOptimizer). Looking through the code, I don't think SDPA provides a method for getnumberofconstraints, which I guess is the problem.

So I think one way for us to resolve this is to write the methods to fill our the SemidefiniteOptInterface interface (from its src/interface.jl). But looking at JuliaOpt/SemidefiniteOptInterface.jl#30, it sounds like maybe the plan is to move SDPA to not depend on SemidefiniteOptInterface anyway, and to move the SDPA-format stuff to MathOptFormat.jl. In that case, what can we do to help? I think we'll want to follow whatever's done for SDPA anyway in our wrapping of SDPA-GMP, so if we can push that forward first, it'll probably be easier for us anyway.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions