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
Beispiel #2
0
 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
Beispiel #4
0
 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
Beispiel #5
0
 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
Beispiel #6
0
    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
Beispiel #7
0
    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
Beispiel #8
0
 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
Beispiel #9
0
 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
Beispiel #12
0
 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
Beispiel #16
0
 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
Beispiel #18
0
 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
Beispiel #20
0
    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
Beispiel #21
0
 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
Beispiel #23
0
 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
Beispiel #25
0
    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
Beispiel #26
0
    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
Beispiel #27
0
 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
Beispiel #30
0
 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