job-shop-lib 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl

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.
@@ -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
 
@@ -29,7 +29,7 @@ job_shop_lib/visualization/agent_task_graph.py,sha256=G-c9eiawz6m9sdnDM1r-ZHz6K-
29
29
  job_shop_lib/visualization/create_gif.py,sha256=3j339wjgGZKLOyMWGdVqVBQu4WFDUhyualHx8b3CJMQ,6382
30
30
  job_shop_lib/visualization/disjunctive_graph.py,sha256=feiRAMxuG5CG2naO7I3HtcrSQw99yWxWzIGgZC_pxIs,5803
31
31
  job_shop_lib/visualization/gantt_chart.py,sha256=OyBMBnjSsRC769qXimJ3IIQWlssgPfx-nlVeSeU5sWY,4415
32
- job_shop_lib-0.1.2.dist-info/LICENSE,sha256=9mggivMGd5taAu3xbmBway-VQZMBzurBGHofFopvUsQ,1069
33
- job_shop_lib-0.1.2.dist-info/METADATA,sha256=PAX6P-PWImnC9molUuAeYnLkufbB_rkq1aGtX1GSV3U,13467
34
- job_shop_lib-0.1.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
35
- job_shop_lib-0.1.2.dist-info/RECORD,,
32
+ job_shop_lib-0.1.3.dist-info/LICENSE,sha256=9mggivMGd5taAu3xbmBway-VQZMBzurBGHofFopvUsQ,1069
33
+ job_shop_lib-0.1.3.dist-info/METADATA,sha256=eHS0PpOAZqCUNW0-eWPOydr_l4CQ_VpkTWBJhN6be9w,12622
34
+ job_shop_lib-0.1.3.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
35
+ job_shop_lib-0.1.3.dist-info/RECORD,,