def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 6 num_landmarks = 6 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.05 agent.index = i # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) self.timestep = 0 return world
def make_world(self, args): world = World() # set any world properties first world.dim_c = 2 world.num_agents = args.num_agents world.num_landmarks = args.num_landmarks world.step_unknown = args.step_unknown world.unknown_decay = args.unknown_decay world.decay_episode = args.decay_episode world.num_reset = 0 # add agents world.agents = [Agent() for i in range(world.num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(world.num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False world.select_goal = np.random.randint(0, world.num_landmarks) world.agents[0].goal = world.landmarks[world.select_goal] # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 self.num_agents = 5 self.num_good_agent = 1 # Cannot see landmark self.num_comm_agents = self.num_agents - self.num_good_agent # 4 num_landmarks = self.num_comm_agents # define vision self.adv_vision_count = 1 # Comm agent vision self.gd_vision_count = 1 # Need to capture agent self.land_vision_count = 1 # add agents world.agents = [Agent() for i in range(self.num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.adversary = True if i < self.num_comm_agents else False # agent.adversary = True if i < num_adversaries else False agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.08 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 3 num_landmarks = 3 # add agents world.agents = [Agent() for i in range(2)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.size = 0.075 # speaker world.agents[0].movable = False # listener world.agents[1].silent = True # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.04 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 2 num_landmarks = 2 num_obstacles = 0 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.08 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # add obstacles world.obstacles = [Landmark() for i in range(num_obstacles)] for i, obstacle in enumerate(world.obstacles): obstacle.name = 'obstacle %d' % i obstacle.collide = True obstacle.movable = False obstacle.size = 0.30 obstacle.boundary = False # make initial conditions self.reset_world(world) return world
def make_world(self, n_preds=2, n_preys=1, use_dense_rewards=False, individual_reward=False): world = World() world.use_dense_rewards = use_dense_rewards self.individual_reward = individual_reward # set any world properties first num_agents = n_preds + n_preys num_landmarks = 0 # No landmark to avoid lucky catches since the prey is scripted and cannot avoid them # add policy for always_scripted agents self.runner_policy = RunnerPolicy() # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.adversary = False if i < n_preds else True agent.size = 0.04 if agent.adversary else 0.05 agent.accel = 1.5 if agent.adversary else 1. agent.max_speed = 1.5 if agent.adversary else 1. agent.always_scripted = True if agent.adversary else False agent.clip_positions = np.array([[-world.scale, -world.scale], [world.scale, world.scale]]) if agent.adversary and agent.always_scripted: agent.action_callback = self.runner_policy.action # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size *= 2 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 6 num_landmarks = 6 world.collaborative = False # Control partial observability of the agents self.vision_range = 3 # multiplier of agent size self.land_vision_count = 4 self.agent_vision_count = 3 # add agents world.agents = [Agent() for _ in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.15 / (num_agents / 6) # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.05 / (num_landmarks / 6) self.occ_land_dist = world.agents[0].size + world.landmarks[0].size self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_good_agents = 5 # UAV Team num_adversaries = 1 # Target num_agents = num_adversaries + num_good_agents num_landmarks = 0 desire_angle_form = 2 * np.pi / num_good_agents # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.055 if agent.adversary else 0.05 # agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 # agent.max_speed = 1.0 if agent.adversary else 1.3 agent.max_speed = 1.3 if agent.adversary else 1 # adv is the target # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.075 landmark.boundary = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 3 num_landmarks = 0 world.collaborative = True # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.15 # add edges world.edges = [] for i in range(len(world.agents)): world.edges.append(1) # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first # world.dim_c = 2 self.num_agents = 16 self.num_landmarks = 16 print("NUMBER OF AGENTS:", self.num_agents) print("NUMBER OF LANDMARKS:", self.num_landmarks) world.collaborative = True self.pen_existence = 0.01 # add agents world.agents = [Agent() for i in range(self.num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.movable = True agent.silent = True agent.size = 0.1 #was 0.15 agent.prevDistance = 0.0 # add landmarks world.landmarks = [Landmark() for i in range(self.num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, use_reputation=True): self.world = world = World() self.use_reputation = use_reputation world.dim_c = 2 self.food_source = food_source = Landmark() food_source.name = 'food-source' food_source.collide = False food_source.movable = False food_source.size = .09 food_source.boundary = False food_source.color = GREEN self.nest = nest = Landmark() nest.name = 'nest' nest.collide = False nest.movable = False nest.size = .09 nest.boundary = False nest.color = BROWN world.landmarks = [food_source, nest] # Add agents. self.plebs = [Pleb(food_source, nest) for i in range(2)] self.spies = [Spy() for i in range(1)] world.agents = self.plebs + self.spies self.reset_world(world) return world
def make_world(self, num_agents_inpt=2, num_adversaries_inpt=1, num_landmarks_inpt=2): world = World() # set any world properties first world.dim_c = 2 num_agents = num_agents_inpt num_adversaries = num_adversaries_inpt num_landmarks = num_landmarks_inpt # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True if i < num_adversaries: agent.adversary = True else: agent.adversary = False # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, n_agents=5): world = World() # set any world properties first world.clip_positions = True world.dim_c = 0 num_landmarks = 1 num_agents = n_agents # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.adversary = False agent.silent = True agent.collide = True agent.is_colliding = { other_agent.name: False for other_agent in world.agents if agent is not other_agent } agent.size = 0.05 agent.accel = 0.75 agent.max_speed = 0.50 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.1 # make initial conditions self.reset_world(world) return world
def make_world(self, mode=0): world = World() self.mode = mode # set any world properties first world.dim_c = 2 num_agents = 2 num_landmarks = 2 world.collaborative = True assert num_agents == 2, "This env is only for two agents" # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 0 # First half will be vertical, second half will be horizontal num_agents = 4 # Make sure number of agents is even for now assert num_agents % 2 == 0 num_adversaries = 0 num_landmarks = 2 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = "agent %d" % i agent.collide = True agent.silent = True if i < num_adversaries: agent.adversary = True else: agent.adversary = False # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = "landmark %d" % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 5 num_landmarks = 5 observing_range = 0.7 world.observing_range = observing_range world.num_adversaries = num_agents world.collaborative = False world.neighbors_pred = 2 world.neighbors_prey = 2 world.min_corridor = 0.06 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.10 agent.id = i # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, **kwargs): self.before_make_world(**kwargs) world = World() world.np_random = self.np_random # set any world properties first world.dim_c = 2 num_agents = 3 num_landmarks = 3 world.collaborative = True # add agents world.agents = [Agent() for _ in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.15 self.change_entity_attribute(agent, **kwargs) # add landmarks world.landmarks = [Landmark() for _ in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False self.change_entity_attribute(landmark, **kwargs) # make initial conditions self.reset_world(world) return world
def make_world(self, args=None): world = World() # set any world properties first world.dim_c = 2 num_good_agents = 2 num_adversaries = 6 num_agents = num_adversaries + num_good_agents # deactivate "good" agent num_landmarks = 4 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False # last agent is good agent agent.size = 0.075 if agent.adversary else 0.05 agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 agent.action_callback = None if i < (num_agents-num_good_agents) else self.prey_policy agent.view_radius = getattr(args, "agent_view_radius", -1) print("AGENT VIEW RADIUS set to: {}".format(agent.view_radius)) # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False # make initial conditions self.reset_world(world) self.score_function= getattr(args, "score_function", "sum") return world
def make_world(self, sort_obs=True): world = World() self.np_rnd = np.random.RandomState(0) self.sort_obs = sort_obs # set any world properties first world.dim_c = 2 num_agents = 6 num_landmarks = 6 world.collaborative = True self.world_radius = 1.5 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, **kwargs): self.before_make_world(**kwargs) world = World() world.np_random = self.np_random # add agents world.agents = [Agent() for _ in range(1)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True self.change_entity_attribute(agent, **kwargs) # add landmarks world.landmarks = [Landmark() for _ in range(1)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False self.change_entity_attribute(landmark, **kwargs) # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 world.num_agents = 4 world.num_goals = 4 # world.num_obstacles = 2 world.num_obstacles = 2 world.collaborative = True # self.landmarkspeed = np.random.normal(size=2) # add agents world.agents = [Agent() for i in range(world.num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.1 # add goals world.landmarks = [ Landmark() for i in range(world.num_goals + world.num_obstacles) ] for i, landmark in enumerate(world.landmarks): if i < world.num_goals: landmark.name = 'goal %d' % i landmark.collide = False landmark.movable = False landmark.state.p_vel = np.random.normal(size=2) else: landmark.name = 'obstacle %d' % (i - world.num_goals) landmark.collide = True landmark.movable = False self.reset_world(world) return world
def make_world(self): self.viewers = [None] # set any world properties first world = World() world.dim_c = 2 num_agents = 3 rew_landmarks = 3 car_landmarks = 6 num_landmarks = car_landmarks + rew_landmarks # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.1 agent.accel = 2 agent.max_speed = 1 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.car = True if i < car_landmarks else False landmark.size = 0.1 if landmark.car else 0.02 landmark.collide = True if landmark.car else False landmark.movable = True if landmark.car else False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_good_agents = 1 num_adversaries = 3 num_agents = num_adversaries + num_good_agents # deactivate "good" agent num_landmarks = 2 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False # last agent is good agent agent.size = 0.075 if agent.adversary else 0.05 agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 agent.action_callback = None if i < (num_agents-1) else self.prey_policy # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 2 num_landmarks = 1 world.collaborative = True # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.1 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.06 # make initial conditions self.n = num_agents self.x = [0.0, 0.0] * num_agents self.y = [0.0, 0.0] * num_agents self.theta = [0.0, 0.0] * num_agents self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 4 num_landmarks = 4 world.collaborative = False # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.2 if i < 2: agent.color = np.array([0.9, 0.2, 0.5]) agent.team = 'A' else: agent.color = np.array([0.35, 0.35, 0.85]) agent.team = 'B' # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, n_agents=3, use_dense_rewards=False, shuffle_landmarks=False, color_objects=False): world = World() world.use_dense_rewards = use_dense_rewards self.shuffle_landmarks = shuffle_landmarks self.color_objects = color_objects # set any world properties first num_agents = n_agents num_landmarks = n_agents # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.clip_positions = np.array([[-world.scale, -world.scale], [world.scale, world.scale]]) agent.is_colliding = { other_agent.name: False for other_agent in world.agents if agent is not other_agent } # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size *= 2 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_good_agents = 1 num_adversaries = 3 num_agents = num_adversaries + num_good_agents num_landmarks = 0 ## removed landmarks # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.075 if agent.adversary else 0.05 agent.accel = 3.0 if agent.adversary else 4.0 # agent.accel = 4 ## make same accel #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 # agent.max_speed = 1.3 ## make both of them have the same speed # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False # make initial conditions self.reset_world(world) return world
def make_world(self, **kwargs): self.before_make_world(**kwargs) world = World() world.np_random = self.np_random # set any world properties first num_agents = 3 num_adversaries = 1 num_landmarks = 2 world.dim_c = 4 # add agents world.agents = [CryptoAgent() for _ in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.adversary = True if i < num_adversaries else False agent.speaker = True if i == 2 else False agent.movable = False self.change_entity_attribute(agent, **kwargs) # add landmarks world.landmarks = [Landmark() for _ in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False self.change_entity_attribute(landmark, **kwargs) # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 2 world.num_agents = num_agents num_adversaries = 1 num_landmarks = num_agents - 1 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.08 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 7 num_landmarks = 7 world.collaborative = False world.discrete_action = True world.num_agents_obs = 3 world.num_landmarks_obs = 3 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.05 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world