Instance generator for JSP
Project description
Instance Generator Job Shop Scheduling
Description
Benchmark generator for the Job Shop Problem (BG-JSP)
Generating a JSP problem instance
To generate an instance of the problem, we will use the Generator class, located in the Generador module. To do this, we initialize the generator, giving it the following parameters:
-
JSON:
json- Description: Parameter that indicates if the generated instance will be stored in JSON format.
- Possible values: Boolean value. Only the values True or False can be obtained.
- Example of possible values:
True,False - Default value:
False
-
DZN:
dzn- Description: Parameter that indicates if the generated instance will be stored in DZN format.
- Possible values: Boolean value. Only the values True or False can be obtained.
- Example of possible values:
True,False - Default value:
False
-
Taillard:
taillard- Description: Parameter that indicates if the generated instance will be stored in taillard format.
- Possible values: Boolean value. Only the values True or False can be obtained.
- Example of possible values:
True,False - Default value:
False
-
Save Path:
savepath- Description: Path where the problem instance file will be generated.
- Possible values: String.
- Example of possible values:
./problems,./instances - Default value:
./output
Once the generator has been initialized, we proceed to generate different instances of the JSP problem with different values for this initialization; for that we use the following function using the following parameters to customize the generated instances:
-
Jobs:
jobs- Description: Number of jobs that will have the problem generated.
- Possible values: Integer value.
- Example of possible values:
3,4. - Default value:
10
-
Machines:
machines- Description: Number of machines that will have the problem generated.
- Possible values: Integer value.
- Example of possible values:
6,2. - Default value:
4
-
Release and Due Date:
ReleaseDateDueDate- Descripción: Establish that each task has an instant of release and completion limit.
- Possible values:
0: Neither the works nor the operations of each of them will have an instant release or time limit for completion.1: The work will have an instant of release and instant of completion limit.2: The operations of each job will have a release time and a limiting end time.
- Example of possible values:
1,2 - Default value:
0
-
Speeds:
speed- Description: Number of speeds that will be available to perform each task.
- Possible values: Integer value.
- Example of possible values:
3,5 - Default value:
1
-
Distribution:
distribution- Description: Type of distribution to be followed for data generation.
- Possible values: You can only set one of the following values:
uniformnormalexponential. - Example of possible values:
uniform,exponential - Default value:
normal
-
Seed:
seed- Description: Base number for data generation.
- Possible values: Integer value.
- Example of possible values:
84,32 - Default value:
1
Example of JSON generated
This JSON shows how the data generated from a JSP problem with 2 machines and 4 jobs will look. For this generation, we have the following code:
from IGJSP.generador import Generator
generator = Generator(json=True,savepath="output")
generator.generate_new_instance(jobs=4,machines=2,ReleaseDateDueDate=2,distribution="exponential",seed=53)
{
"nbJobs": [
0,
1
],
"nbMchs": [
0,
1,
2,
3
],
"speed": 1,
"timeEnergy": [
{
"jobId": 0,
"operations": {
"0": {
"speed-scaling": [
{
"procTime": 8,
"energyCons": 92
}
],
"release-date": 30,
"due-date": 41
},
"2": {
"speed-scaling": [
{
"procTime": 17,
"energyCons": 84
}
],
"release-date": 41,
"due-date": 77
},
"3": {
"speed-scaling": [
{
"procTime": 3,
"energyCons": 97
}
],
"release-date": 77,
"due-date": 80
},
"1": {
"speed-scaling": [
{
"procTime": 7,
"energyCons": 93
}
],
"release-date": 80,
"due-date": 88
}
},
"release-date": 30,
"due-date": 88
},
{
"jobId": 1,
"operations": {
"1": {
"speed-scaling": [
{
"procTime": 4,
"energyCons": 96
}
],
"release-date": 0,
"due-date": 5
},
"3": {
"speed-scaling": [
{
"procTime": 3,
"energyCons": 97
}
],
"release-date": 5,
"due-date": 9
},
"2": {
"speed-scaling": [
{
"procTime": 1,
"energyCons": 99
}
],
"release-date": 9,
"due-date": 10
},
"0": {
"speed-scaling": [
{
"procTime": 6,
"energyCons": 94
}
],
"release-date": 10,
"due-date": 17
}
},
"release-date": 0,
"due-date": 17
}
],
"minMakespan": 35,
"minEnergy": 752,
"maxMinMakespan": 14,
"maxMinEnergy": 0
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file igjsp-0.0.9.tar.gz.
File metadata
- Download URL: igjsp-0.0.9.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e41b729b793848613639f93de9cc117bf71669b74fe69c2d3a4d03b844d5ac6
|
|
| MD5 |
ff6db574b2b6ef4fdd4f4bf23acf0722
|
|
| BLAKE2b-256 |
43df0817b78b1b7d320039bc0bb93c0f88fa06519feb3a74fe9a70747d29e0ba
|
File details
Details for the file igjsp-0.0.9-py3-none-any.whl.
File metadata
- Download URL: igjsp-0.0.9-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd21eb47c31f3578c23325acda5d25044198baebc6a085730693e36930fd1746
|
|
| MD5 |
ae6d3b9028d2422627e147bbe62207ee
|
|
| BLAKE2b-256 |
7575915fe70eaa524d1aeeea2ee64372e159308cf4ac837622f1856ba0983df8
|