Skip to content

Add KKT solver: cliquetrees. - #226

Open
samuelsonric wants to merge 4 commits into
oxfordcontrol:mainfrom
samuelsonric:main
Open

Add KKT solver: cliquetrees.#226
samuelsonric wants to merge 4 commits into
oxfordcontrol:mainfrom
samuelsonric:main

Conversation

@samuelsonric

@samuelsonric samuelsonric commented Feb 20, 2026

Copy link
Copy Markdown

I implemented a fast LDLt factorization routine in Julia.

https://github.com/AlgebraicJulia/CliqueTrees.jl

This PR adds it to Clarabel.jl. It performs similarly to the MA57 solver. For example:

using Clarabel, CliqueTrees, FileIO, JuMP, LinearAlgebra, HSL

data = load("./SDPLIB/mcp250-2.jld2");
F = data["F"];
c = data["c"];
m = data["m"];
n = data["n"];
obj_true = data["optVal"];

model = JuMP.Model(Clarabel.Optimizer);
set_attribute(model, "direct_solve_method", :cliquetrees)
set_attribute(model, "verbose", false)
@variable(model, x[1:m]);
@objective(model, Min, c' * x);
@constraint(model, con1,  Symmetric(-Matrix(F[1]) + sum(Matrix(F[k + 1]) .* x[k] for k in 1:m)) in JuMP.PSDCone());
@time JuMP.optimize!(model);
objective_value(model)

Here are the times for the different Julia solvers.

solve time (s)
cliquetrees 10.4
ma57 12.0
qdldl 58.1
cholmod 63.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant