Releases: Thell/bdo-empire
v0.5.5
v0.5.4
v0.5.0
Improve performance, improve console output and add 'Base Empire' feature.
- Complete rewrite of the model and associated code improves solution time by more than 50% in most cases.
Comparison times (in seconds) using the same pricelist and settings...
| Budget | v0.4.5 | v0.5.0 |
|---|---|---|
| 100 | 108 | 67 |
| 200 | 243 | 150 |
| 300 | 388 | 218 |
| 400 | 1810 | 861 |
| 500 | 3412 | 1378 |
| 550 | 4261 | 1398 |
- console output now shows 'human' information instead of just id numbers.
warehouse node task worker value value_rank
---------------------- ----------------------------- ----------------------- -------- -------- ------------
Velia Bartali Farm Chicken Meat Production 7571 🐢 10472035 1
Velia Finto Farm Chicken Meat Production 7571 🐢 10472035 1
Velia Ancient Stone Chamber Excavation 7572 👺 11399548 1
Velia Ehwaz Hill Lumbering 7571 🐢 5307541 1
Velia Forest of Seclusion Lumbering 7572 👺 4812704 1
Velia Forest of Seclusion Mining 7572 👺 1716699 1
Heidel Northern Plain of Serendia Lumbering 7571 🐢 2464040 1
Heidel Lynch Farm Ruins Excavation 7572 👺 11637435 1
Glish Serendia Shrine Lumbering 7572 👺 3343528 1
Glish Glish Ruins Excavation 7572 👺 12886366 1
- 'Base Empire' feature allows 'growing' from a given empire using the worker node assignments from the base'
Example of growing from a base empire of 450 CP to 460 CP in 48 seconds:
Extension to base empire:
warehouse node task worker value value_rank
----------------- ------------------------- --------------- -------- ------- ------------
Olvia Wale Farm Olives 7573 👨 1307798 1
Calpheon City Northern Wheat Plantation Paprika Farming 7573 👨 1371063 1
Valencia City Erdal Farm Pistachio 7573 👨 1480721 1
Sand Grain Bazaar Bazaar Farmland Nutmeg 7571 🐢 2857951 1
Extension to base empire:
warehouse used purchased cost
----------------- ------ ----------- ------
Olvia 1 1 0
Calpheon City 1 1 0
Valencia City 1 1 0
Sand Grain Bazaar 1 1 0
Extension to base empire:
Added Lodging cost: 0
Added Worker Nodes: 4 cost: 4
Added Waypoints: Unknown (depends on base empire routing)
Added Total Value: 7017533
v0.4.5
v0.4.4
v0.4.3
v0.4.2
v0.4.1
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.