diff options
| author | JonZhao <[email protected]> | 2019-05-30 12:57:27 +0800 |
|---|---|---|
| committer | JonZhao <[email protected]> | 2019-05-30 12:57:27 +0800 |
| commit | 2eacd762b1605f4b6d449b8725d980c96de4d826 (patch) | |
| tree | 992d1b462433fc44f7e550c0d2a7e60b7afa35df /ant.py | |
| parent | b42de46036f88989a41935ef7f67538d23415e18 (diff) | |
| download | VRPTW-ACO-python-2eacd762b1605f4b6d449b8725d980c96de4d826.tar.gz VRPTW-ACO-python-2eacd762b1605f4b6d449b8725d980c96de4d826.tar.bz2 VRPTW-ACO-python-2eacd762b1605f4b6d449b8725d980c96de4d826.zip | |
add local_search_procedure_for_global_path
Diffstat (limited to 'ant.py')
| -rw-r--r-- | ant.py | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -230,7 +230,6 @@ class Ant: # 将self.travel_path分成多段,每段以depot开始,以depot结束,称为route for i in range(1, len(depot_ind)): for j in range(i+1, len(depot_ind)): - if stop_event.is_set(): # print('[local_search_procedure]: receive stop event') return @@ -264,17 +263,24 @@ class Ant: else: break # 如果新生成的path是可行的 - if check_ant.index_to_visit_empty(): + if check_ant.index_to_visit_empty() and check_ant.total_travel_distance < self.total_travel_distance: # print('success to search') new_path_travel_distance.append(check_ant.total_travel_distance) new_path.append(path) + else: + path.clear() # 找出新生成的path中,路程最小的 if len(new_path_travel_distance) > 0: new_path_travel_distance = np.array(new_path_travel_distance) min_distance_ind = np.argmin(new_path_travel_distance) - min_distance = new_path_travel_distance[min_distance_ind] - if min_distance < self.total_travel_distance: - self.travel_path = new_path[int(min_distance_ind)] - self.index_to_visit.clear() + self.travel_path = copy.deepcopy(new_path[int(min_distance_ind)]) + self.index_to_visit.clear() + + for i in range(len(new_path)): + new_path[i].clear() + new_path.clear() + del new_path_travel_distance + + # print('[new_active_ant]: local search finished')
\ No newline at end of file |
