bqth29 / simulated-bifurcation-algorithm

Python CPU/GPU implementation of the Simulated Bifurcation (SB) algorithm to solve quadratic optimization problems (QUBO, Ising, TSP, optimal asset allocations for a portfolio, etc.).
MIT License
103 stars 25 forks source link

Sequential Markowitz model + doc #19

Closed bqth29 closed 11 months ago

bqth29 commented 11 months ago

PR decription

Following the discussion in #17, the Markowitz API has been enhanced with a new sequential model that allow an optimization of the portfolio relying among others on rebalancing costs which couple the timestamps together:

$$\hbox{argmax } \sum{t = 1}^{T} w{t}^{T} \mu{t} - \frac{\gamma}{2} w{t}^{T} \Sigma{t} w{t} - \Delta w_t^T \Lambda_t \Delta w_t$$

This model is implemented as the SequentialMarkowitz class of the simulated_bifurcation.models module.

New features

import simulated_bifurcation as sb

qubo = sb.models.QUBO()
codecov[bot] commented 11 months ago

Codecov Report

All modified lines are covered by tests :white_check_mark:

Files Coverage Δ
src/simulated_bifurcation/__init__.py 100.00% <100.00%> (ø)
src/simulated_bifurcation/ising_core.py 100.00% <100.00%> (ø)
src/simulated_bifurcation/models/__init__.py 100.00% <100.00%> (ø)
src/simulated_bifurcation/models/markowitz.py 100.00% <100.00%> (ø)
...ation/optimizer/simulated_bifurcation_optimizer.py 100.00% <100.00%> (ø)
src/simulated_bifurcation/optimizer/stop_window.py 100.00% <100.00%> (ø)
...ted_bifurcation/optimizer/symplectic_integrator.py 100.00% <100.00%> (ø)
src/simulated_bifurcation/polynomial/__init__.py 100.00% <100.00%> (ø)
...ulated_bifurcation/polynomial/binary_polynomial.py 100.00% <100.00%> (ø)
...lated_bifurcation/polynomial/integer_polynomial.py 100.00% <100.00%> (ø)
... and 20 more

... and 3 files with indirect coverage changes

:loudspeaker: Thoughts on this report? Let us know!.