Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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