IGJSP 1.0.0__py3-none-any.whl → 1.0.1__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.
IGJSP/generador.py
CHANGED
|
@@ -3,16 +3,18 @@ import datetime
|
|
|
3
3
|
import json
|
|
4
4
|
import os
|
|
5
5
|
import pickle
|
|
6
|
+
import re
|
|
6
7
|
from itertools import combinations
|
|
8
|
+
|
|
7
9
|
import networkx as nx
|
|
8
10
|
import numpy as np
|
|
9
|
-
import re
|
|
10
11
|
|
|
11
12
|
np.set_printoptions(linewidth=np.inf, threshold=np.inf, formatter={"int": lambda x: f"{x}"})
|
|
12
13
|
|
|
13
|
-
from scipy.stats import expon, norm, uniform
|
|
14
14
|
from pprint import pprint
|
|
15
15
|
|
|
16
|
+
from scipy.stats import expon, norm, uniform
|
|
17
|
+
|
|
16
18
|
|
|
17
19
|
def f(x):
|
|
18
20
|
return int(np.exp(-int(x)/100)*100)
|
|
@@ -23,6 +25,13 @@ def g(x):
|
|
|
23
25
|
def t(c):
|
|
24
26
|
return 4.0704 * np.log(2) / np.log(1 + (c* 2.5093)**3)
|
|
25
27
|
|
|
28
|
+
|
|
29
|
+
#################################################################################
|
|
30
|
+
# #
|
|
31
|
+
# JSP #
|
|
32
|
+
# #
|
|
33
|
+
#################################################################################
|
|
34
|
+
|
|
26
35
|
class JSP:
|
|
27
36
|
def __init__(self, jobs, machines, ProcessingTime=np.array([]), EnergyConsumption=np.array([]), ReleaseDateDueDate=np.array([]), Orden=np.array([])) -> None:
|
|
28
37
|
self.numJobs = jobs
|
|
@@ -202,35 +211,30 @@ class JSP:
|
|
|
202
211
|
"machines": data.numMchs,
|
|
203
212
|
"jobs": data.numJobs,
|
|
204
213
|
"Speed": s,
|
|
205
|
-
"time": time.flatten(),
|
|
206
|
-
"energy": energy.flatten(),
|
|
214
|
+
"time": str(time.flatten()).replace(" ", ", "),
|
|
215
|
+
"energy": str(energy.flatten()).replace(" ", ", ")
|
|
207
216
|
}
|
|
208
217
|
|
|
209
218
|
if t == 1:
|
|
210
219
|
replace_data["releaseDate"] = str([int(data.ReleaseDueDate[job, 0]) for job in range(data.numJobs)]).replace(", ", " ")
|
|
211
220
|
replace_data["dueDate"] = str([int(data.ReleaseDueDate[job, 1]) for job in range(data.numJobs)]).replace(", ", " ")
|
|
212
221
|
elif t == 2:
|
|
213
|
-
replace_data["releaseDate"] = data.ReleaseDueDate[:, :, 0].flatten()
|
|
214
|
-
replace_data["dueDate"] = data.ReleaseDueDate[:, :, 1].flatten()
|
|
222
|
+
replace_data["releaseDate"] = str(data.ReleaseDueDate[:, :, 0].flatten()).replace(", ", " ")
|
|
223
|
+
replace_data["dueDate"] = str(data.ReleaseDueDate[:, :, 1].flatten()).replace(", ", " ")
|
|
215
224
|
|
|
216
225
|
for job in range(data.numJobs):
|
|
217
226
|
for i, prioridad in enumerate(range(data.numMchs)):
|
|
218
227
|
precedence[job, data.Orden[job, prioridad]] = i
|
|
219
228
|
|
|
220
|
-
replace_data["precedence"] = precedence.flatten()
|
|
229
|
+
replace_data["precedence"] = str(precedence.flatten()).replace(" ", ",")
|
|
221
230
|
|
|
222
231
|
with open(f"./Minizinc/Types/RD/JSP/type{t}.dzn", "r", encoding="utf-8") as file:
|
|
223
232
|
filedata = file.read()
|
|
224
233
|
for k, v in replace_data.items():
|
|
225
234
|
filedata = filedata.replace("{" + k + "}", str(v))
|
|
226
|
-
|
|
227
235
|
os.makedirs(f"{OutputDir}/", exist_ok=True)
|
|
228
|
-
|
|
229
236
|
with open(f"{OutputDir}/{indexProblema}-{t}-{s}.dzn", "w+", encoding="utf-8") as new:
|
|
230
237
|
new.write(filedata)
|
|
231
|
-
# print(f"{OutputDir}/{indexProblema}")
|
|
232
|
-
# with open(f"{OutputDir}/{indexProblema}", "wb") as new:
|
|
233
|
-
# pickle.dump(new_object, new)
|
|
234
238
|
|
|
235
239
|
def saveTaillardStandardFile(self, path):
|
|
236
240
|
os.makedirs("/".join(path.split("/")[:-1]),exist_ok=True)
|
|
@@ -460,11 +464,6 @@ class JSP:
|
|
|
460
464
|
if operation > 0 and operation < self.numMchs - 1:
|
|
461
465
|
graph.add_edge((job * self.numMchs + operation - 1, job * self.numMchs + operation))
|
|
462
466
|
|
|
463
|
-
# if __name__ == "__main__":
|
|
464
|
-
# jsp = JSP(jobs=5, machines=5)
|
|
465
|
-
# jsp.fill_random_values(speed=3, rddd=2, distribution="uniform", seed=1234)
|
|
466
|
-
# jsp.saveTaillardStandardFile("./output_taillard.txt")
|
|
467
|
-
|
|
468
467
|
|
|
469
468
|
|
|
470
469
|
#################################################################################
|
|
@@ -585,16 +584,16 @@ class FJSP(JSP):
|
|
|
585
584
|
"energy": str(energy.flatten()).replace(" ", ", ")
|
|
586
585
|
}
|
|
587
586
|
if t == 1:
|
|
588
|
-
replace_data["releaseDate"] = str([int(data.ReleaseDueDate[job, 0]) for job in range(data.numJobs)])
|
|
589
|
-
replace_data["dueDate"] = str([int(data.ReleaseDueDate[job, 1]) for job in range(data.numJobs)])
|
|
587
|
+
replace_data["releaseDate"] = str([int(data.ReleaseDueDate[job, 0]) for job in range(data.numJobs)]).replace(" ", ",")
|
|
588
|
+
replace_data["dueDate"] = str([int(data.ReleaseDueDate[job, 1]) for job in range(data.numJobs)]).replace(" ", ",")
|
|
590
589
|
elif t == 2:
|
|
591
|
-
replace_data["releaseDate"] = data.ReleaseDueDate[:, :, 0].flatten()
|
|
592
|
-
replace_data["dueDate"] = data.ReleaseDueDate[:, :, 1].flatten()
|
|
590
|
+
replace_data["releaseDate"] = str(data.ReleaseDueDate[:, :, 0].flatten()).replace(" ", ",")
|
|
591
|
+
replace_data["dueDate"] = str(data.ReleaseDueDate[:, :, 1].flatten()).replace(" ", ",")
|
|
593
592
|
|
|
594
593
|
for job in range(data.numJobs):
|
|
595
594
|
for i, prioridad in enumerate(range(data.numMchs)):
|
|
596
595
|
precedence[job, data.Orden[job, prioridad]] = i
|
|
597
|
-
replace_data["precedence"] = str(precedence.flatten()).replace(" ", ",
|
|
596
|
+
replace_data["precedence"] = str(precedence.flatten()).replace(" ", ",")
|
|
598
597
|
|
|
599
598
|
replace_data["available_machines"] = str(data.available_machines.flatten()).replace(" ", ", ")
|
|
600
599
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
IGJSP/generador.py,sha256=
|
|
1
|
+
IGJSP/generador.py,sha256=w9SxkVC3oj4inIH9gP_CKvOecMm84_TVS08Kbc12A6E,34349
|
|
2
2
|
IGJSP/main.py,sha256=Sia5Ss8O3HWBdshvPLJKUMaZIoQPHy6x8yzvojojPFo,2838
|
|
3
3
|
IGJSP/Minizinc/Models/RD/JSP0.mzn,sha256=cfN_E3RQ6nBulGfaOOYTd-zAgA5SI6E2saDlYtKCflg,2282
|
|
4
4
|
IGJSP/Minizinc/Models/RD/JSP1.mzn,sha256=5B8cyw2WyKR8yEL1fFd0TaCAVhjPoxEJRJDPPEjJGEk,2840
|
|
@@ -12,7 +12,7 @@ IGJSP/Minizinc/Types/RD/FJSP/type2.dzn,sha256=Wz1MnkSL5GUPsbh1eq0leoaQRImkNqQqkX
|
|
|
12
12
|
IGJSP/Minizinc/Types/RD/JSP/type0.dzn,sha256=wNuPQkXBXPSpPaPz2WFhp4pGDgfSimtg4I93UfwC01Q,263
|
|
13
13
|
IGJSP/Minizinc/Types/RD/JSP/type1.dzn,sha256=Xbt9StzCgEqqh_HS9tWGrTVtu-OEnf5Yq5Ty91AkzoM,333
|
|
14
14
|
IGJSP/Minizinc/Types/RD/JSP/type2.dzn,sha256=L2nc7bPJEhyuaEwgw0ZCpC52CpVJILQU_WQdKn8GUZs,379
|
|
15
|
-
igjsp-1.0.
|
|
16
|
-
igjsp-1.0.
|
|
17
|
-
igjsp-1.0.
|
|
18
|
-
igjsp-1.0.
|
|
15
|
+
igjsp-1.0.1.dist-info/METADATA,sha256=xBsUY3HSGQvowsRaCPdf1wmwU8N9N_c9QykR2Y7dZs4,10609
|
|
16
|
+
igjsp-1.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
17
|
+
igjsp-1.0.1.dist-info/licenses/LICENSE,sha256=f7RDRO-z_nMoooAya7NAb8sXtrHR6WnttYtyUc9fB-c,1116
|
|
18
|
+
igjsp-1.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|