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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IGJSP
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: Instance generator for JSP
5
5
  Project-URL: Homepage, https://gps.blogs.upv.es/
6
6
  Author-email: GPS-UPV <gps@dsic.upv.es>
@@ -1,4 +1,4 @@
1
- IGJSP/generador.py,sha256=AuiRTZ-tfRVt8U0-EECznq85NtDZsLyZLCAIjM1U8-8,34124
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.0.dist-info/METADATA,sha256=zU57DaxL2XUGadX8d5Bxlyfo8uUxgD1X_f43gKDMSns,10609
16
- igjsp-1.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
- igjsp-1.0.0.dist-info/licenses/LICENSE,sha256=f7RDRO-z_nMoooAya7NAb8sXtrHR6WnttYtyUc9fB-c,1116
18
- igjsp-1.0.0.dist-info/RECORD,,
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