Repository navigation
v0.4.0
UI feature: stop solver button
- Allows user to interrupt solver and obtain the generated workerman json file from the current incumbent solution.
UI feature: improvement timeout in solver config
- Allows user to set a timeout since the last solution improvement in seconds. ie: setting to 600 will timeout after 10 minutes of no improvements.
Solution quality: May 2025 changes to node CP costs caused optimal solutions to be missed. (This dramatically increases runtime!)
- 'top_n' from 4 to 6 (top n towns per plant to consider)
- 'nearest_n' from 5 to 7 (nearest n towns waypoints transport for)
- 'max_waypoint_ub' from 25 to 17 (max workers transitting a waypoint)
Performance: solver thread solution sharing
- Allows for solution sharing between multiple processes improving solution time when using multiple threads
Solver: Replaced PuLP with HiGHSpy to directly interface with the HiGHS solver instances and utilize the HiGHS callbacks to implement the above mentioned features (HiGHSpy now has a modelling interface on par with PuLP and PyOptInterface).
NOTE: The solution sharing helps reduce the increased runtime from the parameter changes but either setting the improvement timeout or manually stopping after a period of no improvement will likely be the 'normal' thing to do as the improvement increments typically get smaller as more time goes by and rarely make enough of an impact on CP savings from node connections to allow for additional nodes to be assigned which means they are more likely to be 'shifted' from one town/worker to another for the same cost and perhaps a few 10s or 100s of thousands improvement in the $/day.