feat: PathFrankWolfe structs#229
Conversation
8991599 to
c667bed
Compare
No API Breaking Changes DetectedThe PR title signals breaking changes, but |
c667bed to
99d55a9
Compare
dianacarvalho1
left a comment
There was a problem hiding this comment.
Thank you @tamaralipows ! 🙏🏼 I have a concern
63984f1 to
f78e247
Compare
louise-poole
left a comment
There was a problem hiding this comment.
Thanks! A couple minor suggestions here quick
| /// Split-routing algorithm that discovers multiple paths via Bellman-Ford | ||
| /// and optimises the input split across them using a Frank-Wolfe loop. | ||
| pub struct PathFrankWolfeAlgorithm { |
There was a problem hiding this comment.
I wonder if it's easy enough to make this generic over the algorithm... 👀 I suppose that's a huge refactor because we're using BellmanFord specific fns like solving a single route etc...
[no action required, just thinking out aloud]
There was a problem hiding this comment.
Yeah, it would need a trait like SingleRouteAlgorithm that exposes build_context + find_single_route - those are BF-specific today and not part of Algorithm. Doable but not worth it until we have a second algorithm that could also serve as a path finder imo. Want to avoid premature generalization for now.
There was a problem hiding this comment.
It is indeed out of scope. I'm just thinking ahead to the Algorithm competition project - this could be a useful tool for those designing a new algorithm.
c6b06ac to
7ff2d81
Compare
- Assumed expects are okay in `computation_requirements` since all algorithms have this and this is only at startup (same with new_with_defaults) - Remove "fraction" from param names `max_probe` and `min_split`. It was confusing that it said fraction but was f64 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Also, mark PFW solve as unimplemented Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7ff2d81 to
6e651ca
Compare
|
This PR is included in version 0.74.0 🎉 |
Task
computation_requirementssince all algorithms have this and this is only at startupmax_probeandmin_split. It was confusing that it said fraction but was f64