CLeARoboticsLab / MixedComplementarityProblems.jl

A custom interior point solver for mixed complementarity problems.
BSD 3-Clause "New" or "Revised" License
10 stars 3 forks source link

benchmark against PATH #21

Closed dfridovi closed 1 month ago

dfridovi commented 1 month ago

Adds support for benchmarking against the PATH solver.

Adding additional solver kwargs:

Also, adding a small amount of regularization to the Newton step computation for numerical stability.

dfridovi commented 1 month ago

For documentation purposes, at 5a1b9ad the stats are

julia> stats = SolverBenchmarks.summary_statistics(data)
(ip = (success_rate = 0.995, μ = 0.05398038283718592, σ = 0.00722662057721707), path = (success_rate = 0.995, μ = 0.007355797381909546, σ = 0.0016724800239494542))

So... we are about 10x slower than PATH.

dfridovi commented 1 month ago

And now only 5x slower

julia> data = SolverBenchmarks.benchmark(; data.ip_mcp, data.path_mcp, ip_kwargs = (; tightening_rate = 0.05, loosening_rate = 0.5, max_inner_iters = 5, tol = 1e-6))
julia> stats = SolverBenchmarks.summary_statistics(data)
(ip = (success_rate = 0.995, μ = 0.03280799303115578, σ = 0.005423971573040027), path = (success_rate = 0.995, μ = 0.007583776933668342, σ = 0.0022406690554635476))