Open DominikPeters opened 11 months ago
Yes, I agree with that!
Btw, what about simply using the Google OR tools? https://developers.google.com/optimization/reference/python/algorithms/pywrapknapsack_solver#knapsack_multidimension_branch_and_bound_solver
A primal/dual approach has now been implemented: https://pbvoting.github.io/pabutools/usage/rules.html#additive-utilitarian-welfare-maximiser by Stefan Haas.
Let me know if you need more @DominikPeters. It currently does not support irresolute outcomes.
At the moment, the max welfare rule is implemented by an ILP. But one could also solve it using a dynamic program. This could be helpful for controlling the tie-breaking. In addition, I'm too lazy to include an ILP solver in my pref.tools version, so for that a pure python approach would also be useful.
(I don't think it's urgent, but it could be a student task.)