Initialize a SDP solver with Convex

hello there :slight_smile:
I am using julia to solve some Semi-definite Problem. I use Convex to define the problem and the constraints, then I use Hypatia to solve it :

M =  HermitianSemidefinite(N)
problem = minimize( real(M[1,1]))
problem.constraints += [ ... ]
solve!(problem, () -> Hypatia.Optimizer())

for some reason of feasibility, I need to give the solver an initial value of the matrix M. I would like the solver to begin with M=M0. Is it possible any way ? If I don’t give it the initial matrix it won’t find a feasible solution …

I’ve asked a lot to chatGPT and searched on the net for a solution, but didn’t find any … that’s why I ask it here.

Thanks a lot ! Thanks for reading !
Gustave

It should just be a matter of calling set_value!(M, M0) before calling solve!, then calling solve! with warmstart=true.

Yes, but I have this problem showing on the console :

┌ Warning: Skipping variable warmstart; the solver does not support it.
└ @ Convex ~/.julia/packages/Convex/b2S4H/src/solution.jl:363

I wondered if it was still possible to initialize M=M0 ?
Thanks a lot for answering :slight_smile:

In that case you will need to try another solver instead. There is a list here: Installation Guide · JuMP

2 Likes

thank you for this very long list ! I should find what I want :slight_smile:

1 Like

@gustave_Robichon just following up on this; were you able to find a suitable solver that supports warmstarting for SDPs? I need it for my application too. Thank you!

no sorry I didn’t find it. But if you have some tolerance_inconsistent problem , you can change this parameter, for the solver to find a feasible point.

The time won by a warm start is not so big, I think.