Skip to content

Commit 3a8e86d

Browse files
committed
fix online judge
1 parent dc48d55 commit 3a8e86d

File tree

4 files changed

+26
-129
lines changed

4 files changed

+26
-129
lines changed

utils/ga_calc.py

+24-14
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,22 @@ def crossover_and_mutation(F, NP, N, D):
6363
return F
6464

6565

66+
def online_judge(f, T, NP):
67+
# prin t(f)
68+
v = 0
69+
for i in range(0, T):
70+
for j in range(0, NP):
71+
v += f[i][j]
72+
return v / (T * NP)
73+
74+
75+
def offline_judge(f_, T):
76+
v = 0
77+
for i in range(0, T):
78+
v += f_[i]
79+
return v / T
80+
81+
6682
class GAThread(QThread):
6783
"""线程函数"""
6884

@@ -95,6 +111,7 @@ def genetic_algorithm(self, C, NP=200, G=200):
95111
f = np.array([np.random.permutation(N) for _ in range(NP)])
96112
R = None
97113
Rlength = []
114+
f_list = []
98115

99116
for gen in range(G):
100117
# 计算路径长度
@@ -119,15 +136,20 @@ def genetic_algorithm(self, C, NP=200, G=200):
119136
f = F.copy()
120137
f[0] = R
121138
Rlength.append(minlen)
139+
f_list.append(fitness)
122140

123-
v_on = self.online_judge(fitness, gen + 1)
124-
v_off = self.offline_judge(Rlength, gen + 1)
141+
v_on = online_judge(f_list, gen + 1, NP)
142+
# print(v_on)
143+
v_off = offline_judge(Rlength, gen + 1)
125144
self.onEpochChanged.emit([minlen, v_on, v_off])
126145
path = []
127146
for r_ in R:
128147
path.append([self.graph.nodes[r_]["x"], self.graph.nodes[r_]["y"]])
129148
self.onPathChanged.emit(path, minlen.round(2))
130149

150+
# 休眠10ms
151+
self.msleep(10)
152+
131153
return R, Rlength[-1].round(2)
132154

133155
def run(self):
@@ -142,15 +164,3 @@ def stop(self):
142164

143165
def set_G(self, G):
144166
self.G = G
145-
146-
def online_judge(self, f, T):
147-
v = 0
148-
for i in range(0, T - 1):
149-
v += f[i]
150-
return v / T
151-
152-
def offline_judge(self, f_, T):
153-
v = 0
154-
for i in range(0, T - 1):
155-
v += f_[i]
156-
return v / T

utils/test-tsp.py

-112
This file was deleted.

view/graphWidget.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ def init_ui(self):
6161
self.saveButton.clicked.connect(self.graphView.save)
6262
self.loadButton.clicked.connect(self.graphView.load)
6363

64-
self.graphToolLayout.addWidget(self.saveButton)
6564
self.graphToolLayout.addWidget(self.loadButton)
65+
self.graphToolLayout.addWidget(self.saveButton)
6666

6767
self.mainLayout.addLayout(self.titleLayout, 0)
6868
self.mainLayout.addLayout(self.toolBoxLayout, 0)

view/resultWidget.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,9 @@ def init_ui(self):
6666
self.setObjectName(self.text.replace(' ', '-'))
6767

6868
def handle_data_change(self, best_distance):
69-
print(best_distance)
7069
self.distance = best_distance
7170
# self.path = best_path
72-
self.distanceLabel.setText(f"Distance: {abs(self.distance)}")
71+
self.distanceLabel.setText(f"Distance: {self.distance}")
7372

7473
def sync_data(self, path, distance):
7574
self.path_list.append(path)

0 commit comments

Comments
 (0)