Skip to content

Conversation

@angeloskorakitis
Copy link

Fixes and improvements to eigenvalue problems, simulated annealing, Boltzmann (reflective) HMC.

@vfisikop vfisikop added the GSoC25 label Sep 9, 2025
Copy link
Author

@angeloskorakitis angeloskorakitis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes to some methods.

…liding window that checks the progress of the random walk if early convergence is enabled. Improved error handling and documentation.
…ed find symmetric eigenvalue that uses cholesky for the -M matrix.
@angeloskorakitis
Copy link
Author

angeloskorakitis commented Oct 22, 2025

Benchmark: Volesti vs SDPA

This PR includes a comparative analysis of Volesti against the SDPA library on several (dense) SDP test instances.

Test Configuration

Important Note: For Volesti these benchmarks use the origin as the initial point without explicitly computing an interior point. Future tests will include proper interior point computation for a more comprehensive comparison.

Results

Library Instance Expected Min Computed Min Error Status Time
Volesti SDP 20x20 -1.6535e+00 -1.6207e+00 3.28e-02 ✅ PASS 0.011s
SDPA SDP 20x20 -1.6535e+00 -1.6535e+00 1.42e-14 ✅ PASS 0.055s
Volesti SDP 20x100 -6.7497e+00 -6.6897e+00 6.00e-02 ✅ PASS 0.201s
SDPA SDP 20x100 -6.7497e+00 -1.6664e+00 8.75e+00 ❌ FAIL 0.442s
Volesti SDP 50x40 -3.1514e+01 -3.0825e+01 6.89e-01 ✅ PASS 0.083s
SDPA SDP 50x40 -3.1514e+01 -3.1514e+01 4.26e-14 ✅ PASS 0.255s
Volesti SDP 50x200 -7.7195e+00 -7.6349e+00 8.46e-02 ✅ PASS 1.639s
SDPA SDP 50x200 -7.7195e+00 -7.3341e+00 3.85e-01 ✅ PASS 1.895s
Volesti SDP 200x15 -3.1610e+12 -1.2305e+02 3.16e+12 ❌ FAIL 0.136s
SDPA SDP 200x15 -3.1610e+12 -3.1610e+12 1.00e+01 ✅ PASS 0.117s

Key Observations

  • Performance: Volesti demonstrates competitive performance, often faster than SDPA
  • Accuracy: SDPA achieves near-machine-precision results when successful, while Volesti's random walk approach provides good approximations within tolerance
  • Reliability: Both solvers exhibit failures on different problem dimensions:
    • SDPA fails on 20x100 (error: 5.08)
    • Volesti fails on 200x15 (error: 3.16e+12) - the random walk struggles with this problem geometry
  • Trade-offs: Volesti offers speed advantages with acceptable accuracy, while SDPA provides higher precision at the cost of computation time

Future Steps

  • Implement initial point computation for more robust comparisons
  • Investigate geometry-dependent behavior of the random walk

@vissarion vissarion requested a review from TolisChal December 8, 2025 15:53
@vissarion
Copy link
Member

@angeloskorakitis thanks for your changes in Spectra/cmake, could you please also apply the required changes in CI so that the tests are passing?

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants