job-shop-lib 0.1.2__tar.gz → 0.1.3__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/PKG-INFO +30 -39
  2. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/README.md +28 -37
  3. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/pyproject.toml +2 -2
  4. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/LICENSE +0 -0
  5. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/__init__.py +0 -0
  6. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/base_solver.py +0 -0
  7. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/benchmarking/__init__.py +0 -0
  8. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/benchmarking/benchmark_instances.json +0 -0
  9. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/benchmarking/load_benchmark.py +0 -0
  10. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/cp_sat/__init__.py +0 -0
  11. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/cp_sat/ortools_solver.py +0 -0
  12. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/dispatching/__init__.py +0 -0
  13. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/dispatching/dispatcher.py +0 -0
  14. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/dispatching/dispatching_rule_solver.py +0 -0
  15. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/dispatching/dispatching_rules.py +0 -0
  16. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/dispatching/factories.py +0 -0
  17. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/dispatching/pruning_functions.py +0 -0
  18. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/exceptions.py +0 -0
  19. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/generators/__init__.py +0 -0
  20. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/generators/basic_generator.py +0 -0
  21. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/graphs/__init__.py +0 -0
  22. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/graphs/build_agent_task_graph.py +0 -0
  23. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/graphs/build_disjunctive_graph.py +0 -0
  24. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/graphs/constants.py +0 -0
  25. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/graphs/job_shop_graph.py +0 -0
  26. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/graphs/node.py +0 -0
  27. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/job_shop_instance.py +0 -0
  28. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/operation.py +0 -0
  29. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/schedule.py +0 -0
  30. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/scheduled_operation.py +0 -0
  31. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/visualization/__init__.py +0 -0
  32. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/visualization/agent_task_graph.py +0 -0
  33. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/visualization/create_gif.py +0 -0
  34. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/visualization/disjunctive_graph.py +0 -0
  35. {job_shop_lib-0.1.2 → job_shop_lib-0.1.3}/job_shop_lib/visualization/gantt_chart.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: job-shop-lib
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: An easy-to-use and modular Python library for the Job Shop Scheduling Problem (JSSP)
5
5
  License: MIT
6
6
  Author: Pabloo22
@@ -16,7 +16,7 @@ Requires-Dist: imageio (>=2,<3)
16
16
  Requires-Dist: matplotlib (>=3,<4)
17
17
  Requires-Dist: networkx (>=3,<4)
18
18
  Requires-Dist: ortools (>=9,<10)
19
- Requires-Dist: pyarrow (>=14.0.0,<15.0.0)
19
+ Requires-Dist: pyarrow (>=15.0.0,<16.0.0)
20
20
  Requires-Dist: pygraphviz (>=1.12,<2.0) ; extra == "pygraphviz"
21
21
  Description-Content-Type: text/markdown
22
22
 
@@ -37,9 +37,19 @@ Description-Content-Type: text/markdown
37
37
 
38
38
  An easy-to-use and modular Python library for the Job Shop Scheduling Problem (JSSP) with a special focus on graph representations.
39
39
 
40
- It provides intuitive data structures to represent instances and solutions, as well as solvers and visualization tools:
40
+ It provides intuitive data structures to represent instances and solutions, as well as solvers and visualization tools.
41
41
 
42
- ## Quick Start
42
+ See the [this](https://colab.research.google.com/drive/1XV_Rvq1F2ns6DFG8uNj66q_rcowwTZ4H?usp=sharing) Google Colab notebook for a quick start guide!
43
+
44
+ ## Installation
45
+
46
+ You can install the library from PyPI:
47
+
48
+ ```bash
49
+ pip install job-shop-lib
50
+ ```
51
+
52
+ ## Quick Start :rocket:
43
53
 
44
54
  ### Create a Job Shop Instance
45
55
 
@@ -79,40 +89,22 @@ manually. The instances are stored in [benchmark_instances.json](job_shop_lib/be
79
89
 
80
90
  The contributions to this benchmark dataset are as follows:
81
91
 
82
- - `abz5-9`: This subset, comprising five instances, was introduced by Adams et
83
- al. (1988).
92
+ - `abz5-9`: by Adams et al. (1988).
84
93
 
85
- - `ft06`, `ft10`, `ft20`: These three instances are attributed to the work of
86
- Fisher and Thompson, as detailed in their 1963 work.
94
+ - `ft06`, `ft10`, `ft20`: by Fisher and Thompson (1963).
87
95
 
88
- - `la01-40`: A collection of forty instances, this group was contributed by
89
- Lawrence, as referenced in his 1984 report.
96
+ - `la01-40`: by Lawrence (1984)
90
97
 
91
- - `orb01-10`: Ten instances in this category were provided by Applegate and
92
- Cook, as seen in their 1991 study.
98
+ - `orb01-10`: by Applegate and Cook (1991).
93
99
 
94
- - `swb01-20`: This segment, encompassing twenty instances, was contributed by
95
- Storer et al., as per their 1992 article.
100
+ - `swb01-20`: by Storer et al. (1992).
96
101
 
97
- - `yn1-4`: Yamada and Nakano are credited with the addition of four instances
98
- in this group, as found in their 1992 paper.
102
+ - `yn1-4`: by Yamada and Nakano (1992).
99
103
 
100
- - `ta01-80`: The largest contribution, consisting of eighty instances, was
101
- made by Taillard, as documented in his 1993 paper.
104
+ - `ta01-80`: by Taillard (1993).
102
105
 
103
106
  The metadata from these instances has been updated using data from:
104
-
105
- Thomas Weise. jsspInstancesAndResults. Accessed in January 2024.
106
- Available at: https://github.com/thomasWeise/jsspInstancesAndResults
107
-
108
- It includes the following information:
109
- - "optimum" (`int` | `None`): The optimal makespan for the instance.
110
- - "lower_bound" (`int`): The best lower bound known for the makespan. If
111
- optimality is known, it is equal to the optimum.
112
- - "upper_bound" (`int`): The best upper bound known for the makespan. If
113
- optimality is known, it is equal to the optimum.
114
- - "reference" (`str`): The paper or source where the instance was first
115
- introduced.
107
+ https://github.com/thomasWeise/jsspInstancesAndResults
116
108
 
117
109
  ```python
118
110
  >>> ft06.metadata
@@ -124,7 +116,7 @@ It includes the following information:
124
116
 
125
117
  ### Generate a Random Instance
126
118
 
127
- You can also generate a random instance with the `InstanceGenerator` class.
119
+ You can also generate a random instance with the `BasicGenerator` class.
128
120
 
129
121
  ```python
130
122
  from job_shop_lib.generators import BasicGenerator
@@ -138,7 +130,7 @@ random_instance = generator.generate()
138
130
  This class can also work as an iterator to generate multiple instances:
139
131
 
140
132
  ```python
141
- generator = InstanceGenerator(iteration_limit=100, seed=42)
133
+ generator = BasicGenerator(iteration_limit=100, seed=42)
142
134
  instances = []
143
135
  for instance in generator:
144
136
  instances.append(instance)
@@ -227,6 +219,9 @@ plt.show()
227
219
  ![Example Disjunctive Graph](images/example_disjunctive_graph.png)
228
220
 
229
221
 
222
+ > [!WARNING]
223
+ > This plot function requires having the optional dependency [PyGraphViz](https://pygraphviz.github.io/) installed.
224
+
230
225
  The `JobShopGraph` class provides easy access to the nodes, for example, to get all the nodes of a specific type:
231
226
 
232
227
  ```python
@@ -288,13 +283,9 @@ plt.show()
288
283
 
289
284
  For more details, check the [examples](examples) folder.
290
285
 
291
- ## Installation
292
-
293
- In the future, the library will be available on PyPI. For now, you can install it from the source code.
294
-
295
- ### For development
286
+ ## Installation for development
296
287
 
297
- #### With Poetry
288
+ ### With Poetry
298
289
 
299
290
  1. Clone the repository.
300
291
 
@@ -315,7 +306,7 @@ or equivalently:
315
306
  make poetry_install_all
316
307
  ```
317
308
 
318
- #### With PyPI
309
+ ### With PyPI
319
310
 
320
311
  If you don't want to use Poetry, you can install the library directly from the source code:
321
312
 
@@ -15,9 +15,19 @@
15
15
 
16
16
  An easy-to-use and modular Python library for the Job Shop Scheduling Problem (JSSP) with a special focus on graph representations.
17
17
 
18
- It provides intuitive data structures to represent instances and solutions, as well as solvers and visualization tools:
18
+ It provides intuitive data structures to represent instances and solutions, as well as solvers and visualization tools.
19
19
 
20
- ## Quick Start
20
+ See the [this](https://colab.research.google.com/drive/1XV_Rvq1F2ns6DFG8uNj66q_rcowwTZ4H?usp=sharing) Google Colab notebook for a quick start guide!
21
+
22
+ ## Installation
23
+
24
+ You can install the library from PyPI:
25
+
26
+ ```bash
27
+ pip install job-shop-lib
28
+ ```
29
+
30
+ ## Quick Start :rocket:
21
31
 
22
32
  ### Create a Job Shop Instance
23
33
 
@@ -57,40 +67,22 @@ manually. The instances are stored in [benchmark_instances.json](job_shop_lib/be
57
67
 
58
68
  The contributions to this benchmark dataset are as follows:
59
69
 
60
- - `abz5-9`: This subset, comprising five instances, was introduced by Adams et
61
- al. (1988).
70
+ - `abz5-9`: by Adams et al. (1988).
62
71
 
63
- - `ft06`, `ft10`, `ft20`: These three instances are attributed to the work of
64
- Fisher and Thompson, as detailed in their 1963 work.
72
+ - `ft06`, `ft10`, `ft20`: by Fisher and Thompson (1963).
65
73
 
66
- - `la01-40`: A collection of forty instances, this group was contributed by
67
- Lawrence, as referenced in his 1984 report.
74
+ - `la01-40`: by Lawrence (1984)
68
75
 
69
- - `orb01-10`: Ten instances in this category were provided by Applegate and
70
- Cook, as seen in their 1991 study.
76
+ - `orb01-10`: by Applegate and Cook (1991).
71
77
 
72
- - `swb01-20`: This segment, encompassing twenty instances, was contributed by
73
- Storer et al., as per their 1992 article.
78
+ - `swb01-20`: by Storer et al. (1992).
74
79
 
75
- - `yn1-4`: Yamada and Nakano are credited with the addition of four instances
76
- in this group, as found in their 1992 paper.
80
+ - `yn1-4`: by Yamada and Nakano (1992).
77
81
 
78
- - `ta01-80`: The largest contribution, consisting of eighty instances, was
79
- made by Taillard, as documented in his 1993 paper.
82
+ - `ta01-80`: by Taillard (1993).
80
83
 
81
84
  The metadata from these instances has been updated using data from:
82
-
83
- Thomas Weise. jsspInstancesAndResults. Accessed in January 2024.
84
- Available at: https://github.com/thomasWeise/jsspInstancesAndResults
85
-
86
- It includes the following information:
87
- - "optimum" (`int` | `None`): The optimal makespan for the instance.
88
- - "lower_bound" (`int`): The best lower bound known for the makespan. If
89
- optimality is known, it is equal to the optimum.
90
- - "upper_bound" (`int`): The best upper bound known for the makespan. If
91
- optimality is known, it is equal to the optimum.
92
- - "reference" (`str`): The paper or source where the instance was first
93
- introduced.
85
+ https://github.com/thomasWeise/jsspInstancesAndResults
94
86
 
95
87
  ```python
96
88
  >>> ft06.metadata
@@ -102,7 +94,7 @@ It includes the following information:
102
94
 
103
95
  ### Generate a Random Instance
104
96
 
105
- You can also generate a random instance with the `InstanceGenerator` class.
97
+ You can also generate a random instance with the `BasicGenerator` class.
106
98
 
107
99
  ```python
108
100
  from job_shop_lib.generators import BasicGenerator
@@ -116,7 +108,7 @@ random_instance = generator.generate()
116
108
  This class can also work as an iterator to generate multiple instances:
117
109
 
118
110
  ```python
119
- generator = InstanceGenerator(iteration_limit=100, seed=42)
111
+ generator = BasicGenerator(iteration_limit=100, seed=42)
120
112
  instances = []
121
113
  for instance in generator:
122
114
  instances.append(instance)
@@ -205,6 +197,9 @@ plt.show()
205
197
  ![Example Disjunctive Graph](images/example_disjunctive_graph.png)
206
198
 
207
199
 
200
+ > [!WARNING]
201
+ > This plot function requires having the optional dependency [PyGraphViz](https://pygraphviz.github.io/) installed.
202
+
208
203
  The `JobShopGraph` class provides easy access to the nodes, for example, to get all the nodes of a specific type:
209
204
 
210
205
  ```python
@@ -266,13 +261,9 @@ plt.show()
266
261
 
267
262
  For more details, check the [examples](examples) folder.
268
263
 
269
- ## Installation
270
-
271
- In the future, the library will be available on PyPI. For now, you can install it from the source code.
272
-
273
- ### For development
264
+ ## Installation for development
274
265
 
275
- #### With Poetry
266
+ ### With Poetry
276
267
 
277
268
  1. Clone the repository.
278
269
 
@@ -293,7 +284,7 @@ or equivalently:
293
284
  make poetry_install_all
294
285
  ```
295
286
 
296
- #### With PyPI
287
+ ### With PyPI
297
288
 
298
289
  If you don't want to use Poetry, you can install the library directly from the source code:
299
290
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "job-shop-lib"
3
- version = "0.1.2"
3
+ version = "0.1.3"
4
4
  description = "An easy-to-use and modular Python library for the Job Shop Scheduling Problem (JSSP)"
5
5
  authors = ["Pabloo22 <pablete.arino@gmail.com>"]
6
6
  license = "MIT"
@@ -12,7 +12,7 @@ include = ["benchmarks/benchmark_instances.json"]
12
12
  python = "^3.10"
13
13
  ortools = "^9"
14
14
  matplotlib = "^3"
15
- pyarrow = "^14.0.0" # An optional pandas' dependency that will be required in the future
15
+ pyarrow = "^15.0.0" # An optional pandas' dependency that will be required in the future
16
16
  networkx = "^3"
17
17
  imageio = "^2"
18
18
  pygraphviz = {version = "^1.12", optional = true}
File without changes