-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInstance.py
More file actions
48 lines (36 loc) · 1.18 KB
/
Copy pathInstance.py
File metadata and controls
48 lines (36 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from code.Extract import *
class Instance:
def __init__(self, ext: Extract):
self.__m = ext.get_m()
self.__p = ext.get_p()
self.__n = len(self.__p)
self.__s = self.__join_times__(ext.get_s())
self.__rate = int(self.__n / self.__m)
def __join_times__(self, s: np.ndarray) -> np.ndarray:
n = self.get_n()
# matriz n + 1 * n
idx = [(i, j) for i in range(n + 1) for j in range(n)]
for i, j in idx:
s[i][j] = s[i][j] + self.__p[j]
return s
def to_string(self):
print(
f"M: {self.__m}\nN: {self.__n}\nP: {self.__p}\nS: {self.__s}")
def get_m(self) -> int:
return self.__m
def get_rate(self) -> int:
return self.__rate
def get_n(self) -> int:
return self.__n
def get_p(self, i: int) -> int:
return self.__p[i]
def get_p_copy(self) -> np.ndarray:
return self.__p.copy()
def get_s(self, i: int, j: int) -> int:
if i == j:
return 0
if i >= self.__n:
return self.__s[self.__n, j]
if j >= self.__n:
return self.__s[i, self.__n]
return self.__s[i, j]