def arange_routes(self, route): """ """ #rint "Calculating Energy ...", E = 0 i_ind = numx.take(route, self.r_cities) j_ind = numx.take(route, (self.r_cities + 1) % n_cities) for i in self.r_cities: E += distance_matrix[route[i]][route[(i + 1) % n_cities]] #print self.E if E < self.best_E: self.third_E = self.second_E self.third_route[:] = self.second_route[:] self.second_E = self.best_E self.second_route[:] = self.best_route[:] self.best_E = E self.best_route[:] = route[:] elif E < self.second_E: self.third_E = self.second_E self.third_route[:] = self.second_route[:] self.second_E = E self.second_route[:] = route[:] elif E < self.third_E: self.third_E = E route[:] = self.third_route[:] else: # Nothing to do pass
def arange_routes(self, route): """ """ #rint "Calculating Energy ...", E = 0 i_ind = numx.take(route, self.r_cities) j_ind = numx.take(route, (self.r_cities + 1) % n_cities) for i in self.r_cities: E += distance_matrix[route[i]][route[(i + 1) % n_cities]] #print self.E if E < self.best_E: self.third_E = self.second_E self.third_route[:] = self.second_route[:] self.second_E = self.best_E self.second_route[:] = self.best_route[:] self.best_E = E self.best_route[:] = route[:] elif E < self.second_E: self.third_E = self.second_E self.third_route[:] = self.second_route[:] self.second_E = E self.second_route[:] = route[:] elif E < self.third_E: self.third_E = E; route[:] = self.third_route[:] else: # Nothing to do pass
def prepare_distance_matrix(): for i in range(n_cities): for j in range(n_cities): if i == j: dist = 0 else: cities = numx.take(cities_vec, (i, j), 0) dist = city_distance(cities) distance_matrix[i][j] = dist
def prepare_distance_matrix(): for i in range(n_cities): for j in range(n_cities): if i == j: dist = 0 else: cities = numx.take(cities_vec, (i,j), 0) dist = city_distance(cities) distance_matrix[i][j] = dist