bdo-empire 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bdo_empire-0.1.2/PKG-INFO +60 -0
- bdo_empire-0.1.2/README.md +42 -0
- bdo_empire-0.1.2/pyproject.toml +35 -0
- bdo_empire-0.1.2/src/bdo_empire/__init__.py +0 -0
- bdo_empire-0.1.2/src/bdo_empire/data/all_lodging_storage.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/deck_links.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/distances_tk2pzk.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/exploration.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/git_commit.txt +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/plantzone.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/plantzone_drops.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/skills.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/data/town_node_translate.json +70 -0
- bdo_empire-0.1.2/src/bdo_empire/data/townnames.json +30 -0
- bdo_empire-0.1.2/src/bdo_empire/data/warehouse_to_townname.json +30 -0
- bdo_empire-0.1.2/src/bdo_empire/data/worker_static.json +1 -0
- bdo_empire-0.1.2/src/bdo_empire/generate_graph_data.py +415 -0
- bdo_empire-0.1.2/src/bdo_empire/generate_value_data.py +314 -0
- bdo_empire-0.1.2/src/bdo_empire/generate_workerman_data.py +222 -0
- bdo_empire-0.1.2/src/bdo_empire/highs_par.py +36 -0
- bdo_empire-0.1.2/src/bdo_empire/initialize.py +194 -0
- bdo_empire-0.1.2/src/bdo_empire/main.py +401 -0
- bdo_empire-0.1.2/src/bdo_empire/optimize.py +249 -0
- bdo_empire-0.1.2/tests/__init__.py +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: bdo-empire
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Worker empire optimizer for BDO using HiGHS mip solver.
|
|
5
|
+
Author-Email: Thell 'Bo' Fowler <thell@tbfowler.net>
|
|
6
|
+
License: Unlicense
|
|
7
|
+
Requires-Python: >=3.12
|
|
8
|
+
Requires-Dist: certifi>=2024.8.30
|
|
9
|
+
Requires-Dist: CTkToolTip>=0.8
|
|
10
|
+
Requires-Dist: customtkinter>=5.2.2
|
|
11
|
+
Requires-Dist: highspy>=1.7.2
|
|
12
|
+
Requires-Dist: natsort>=8.4.0
|
|
13
|
+
Requires-Dist: networkx>=3.3
|
|
14
|
+
Requires-Dist: psutil>=6.0.0
|
|
15
|
+
Requires-Dist: pulp>=2.9.0
|
|
16
|
+
Requires-Dist: tabulate>=0.9.0
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# bdo-empire
|
|
20
|
+
|
|
21
|
+
## About
|
|
22
|
+
|
|
23
|
+
Given a contribution point limit and price list this program will find the
|
|
24
|
+
optimum allocation of the points to maximize a Worker Node Empire's value.
|
|
25
|
+
|
|
26
|
+
It
|
|
27
|
+
- generates a json file to import into [Workerman][workerman]
|
|
28
|
+
- uses workers of level 40.
|
|
29
|
+
- uses workers with optimum skills learned.
|
|
30
|
+
- assumes all drops are sent to storage with zero cp cost (Calpheon).
|
|
31
|
+
|
|
32
|
+
It does not
|
|
33
|
+
- account for cp spent outside of the Node Empire.
|
|
34
|
+
- account for grind nodes or 'fixed' nodes. (TODO)
|
|
35
|
+
|
|
36
|
+
This program uses the HiGHS High Performance Optimization Software to solve
|
|
37
|
+
the MIP using branch and cut. The parameters chosen guarantee the result is
|
|
38
|
+
within 0.01% of the optimum value but in practice it is optimum for all test
|
|
39
|
+
cases used during the development and testing of the model.
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
Start the program and fill in the required fields, click "Optimize" and then
|
|
44
|
+
wait. All test instances using a variety of CP limits solved in under an hour
|
|
45
|
+
but each combination of CP, pricing, purchased lodging and region modifiers
|
|
46
|
+
will alter solution time.
|
|
47
|
+
|
|
48
|
+
### Requirements
|
|
49
|
+
|
|
50
|
+
You will need:
|
|
51
|
+
|
|
52
|
+
- python
|
|
53
|
+
- an exported price list from [Workerman settings page][settings].
|
|
54
|
+
- an exported modifiers list from [Workerman modifiers page][modifiers]
|
|
55
|
+
(click `▶Advanced`).
|
|
56
|
+
|
|
57
|
+
[workerman]:https://shrddr.github.io/workerman
|
|
58
|
+
[settings]:https://shrddr.github.io/workerman/settings
|
|
59
|
+
[modifiers]:https://shrddr.github.io/workerman/modifiers
|
|
60
|
+
[release]:https://github.com/thell/bdo-empire/releases/latest
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# bdo-empire
|
|
2
|
+
|
|
3
|
+
## About
|
|
4
|
+
|
|
5
|
+
Given a contribution point limit and price list this program will find the
|
|
6
|
+
optimum allocation of the points to maximize a Worker Node Empire's value.
|
|
7
|
+
|
|
8
|
+
It
|
|
9
|
+
- generates a json file to import into [Workerman][workerman]
|
|
10
|
+
- uses workers of level 40.
|
|
11
|
+
- uses workers with optimum skills learned.
|
|
12
|
+
- assumes all drops are sent to storage with zero cp cost (Calpheon).
|
|
13
|
+
|
|
14
|
+
It does not
|
|
15
|
+
- account for cp spent outside of the Node Empire.
|
|
16
|
+
- account for grind nodes or 'fixed' nodes. (TODO)
|
|
17
|
+
|
|
18
|
+
This program uses the HiGHS High Performance Optimization Software to solve
|
|
19
|
+
the MIP using branch and cut. The parameters chosen guarantee the result is
|
|
20
|
+
within 0.01% of the optimum value but in practice it is optimum for all test
|
|
21
|
+
cases used during the development and testing of the model.
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
Start the program and fill in the required fields, click "Optimize" and then
|
|
26
|
+
wait. All test instances using a variety of CP limits solved in under an hour
|
|
27
|
+
but each combination of CP, pricing, purchased lodging and region modifiers
|
|
28
|
+
will alter solution time.
|
|
29
|
+
|
|
30
|
+
### Requirements
|
|
31
|
+
|
|
32
|
+
You will need:
|
|
33
|
+
|
|
34
|
+
- python
|
|
35
|
+
- an exported price list from [Workerman settings page][settings].
|
|
36
|
+
- an exported modifiers list from [Workerman modifiers page][modifiers]
|
|
37
|
+
(click `▶Advanced`).
|
|
38
|
+
|
|
39
|
+
[workerman]:https://shrddr.github.io/workerman
|
|
40
|
+
[settings]:https://shrddr.github.io/workerman/settings
|
|
41
|
+
[modifiers]:https://shrddr.github.io/workerman/modifiers
|
|
42
|
+
[release]:https://github.com/thell/bdo-empire/releases/latest
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "bdo-empire"
|
|
3
|
+
version = "0.1.2"
|
|
4
|
+
description = "Worker empire optimizer for BDO using HiGHS mip solver."
|
|
5
|
+
authors = [
|
|
6
|
+
{ name = "Thell 'Bo' Fowler", email = "thell@tbfowler.net" },
|
|
7
|
+
]
|
|
8
|
+
dependencies = [
|
|
9
|
+
"certifi>=2024.8.30",
|
|
10
|
+
"CTkToolTip>=0.8",
|
|
11
|
+
"customtkinter>=5.2.2",
|
|
12
|
+
"highspy>=1.7.2",
|
|
13
|
+
"natsort>=8.4.0",
|
|
14
|
+
"networkx>=3.3",
|
|
15
|
+
"psutil>=6.0.0",
|
|
16
|
+
"pulp>=2.9.0",
|
|
17
|
+
"tabulate>=0.9.0",
|
|
18
|
+
]
|
|
19
|
+
requires-python = ">=3.12"
|
|
20
|
+
readme = "README.md"
|
|
21
|
+
|
|
22
|
+
[project.license]
|
|
23
|
+
text = "Unlicense"
|
|
24
|
+
|
|
25
|
+
[project.scripts]
|
|
26
|
+
empire-optimizer = "bdo_empire.main:main"
|
|
27
|
+
|
|
28
|
+
[build-system]
|
|
29
|
+
requires = [
|
|
30
|
+
"pdm-backend",
|
|
31
|
+
]
|
|
32
|
+
build-backend = "pdm.backend"
|
|
33
|
+
|
|
34
|
+
[tool.pdm]
|
|
35
|
+
distribution = true
|
|
File without changes
|