def get_adjusted(self): price_matrix = [] i = 0 agents = [] for x, li in enumerate(self.grid_state.locations): price_matrix.append([]) for y, p in enumerate(li): price_matrix[x].append(p.age) if p.agent is not None: agents.append((p.agent, (x, y))) for x, li in enumerate(price_matrix): for y, p in enumerate(li): closest_agent = get_closest_agent(agents, (x, y)) # print(self.name,closest_agent[0]) # distance=dist(self.position,(x,y)) # price_matrix[y][x] += int(distance) price_matrix[x][y] **= 3 if self.name == closest_agent[0][0]: price_matrix[x][y] *= self.penalty else: price_matrix[x][y] -= self.penalty # convert each node as the sum of it's surrounding nodes neighbours = [(-1, -1), (-1, 0), (0, -1), (0, 0), (0, 1), (1, 1), (1, 0)] new_m = price_matrix.copy() for x, li in enumerate(price_matrix): for y, p in enumerate(li): for n in neighbours: n_p = (x + n[0], y + n[1]) if 0 <= n_p[0] < self.grid_size and 0 <= n_p[1] < self.grid_size: new_m[x][y] += price_matrix[x][y] print(self.colour) return new_m
def choose_followers(self, user_list, agent_list): chosen_pairs = [] for user in user_list: if len(agent_list) == 0: break chosen_agent = get_closest_agent(agent_list, user[1]) agent_list.remove(chosen_agent) chosen_pairs.append((chosen_agent, user)) return chosen_pairs
def choose_dirt(self, dirt_list, agent_list): chosen_pairs = [] for dirt in dirt_list: if len(agent_list) == 0: break chosen_agent = get_closest_agent(agent_list, dirt[1]) agent_list.remove(chosen_agent) chosen_pairs.append((chosen_agent, dirt)) return chosen_pairs
def get_adjusted(self): price_matrix = [] i = 0 agents = [] for y, li in enumerate(self.grid_state.locations): price_matrix.append([]) for x, p in enumerate(li): price_matrix[y].append(p.age) if p.agent is not None: agents.append((p.agent, (x, y))) for y, li in enumerate(price_matrix): for x, p in enumerate(li): closest_agent = get_closest_agent(agents, (x, y)) # print(self.name,closest_agent[0]) if self.name == closest_agent[0][0]: price_matrix[y][x] -= self.penalty # price_matrix=np.array(price_matrix) # print(price_matrix) return price_matrix