Beispiel #1
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 = 2
     # add emergent_comm
     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 = 20.0 if agent.adversary else 25.0
         agent.max_speed = 1.0 if agent.adversary else 1.3
     # 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
Beispiel #2
0
    def make_world(self):
        world = World()

        # add emergent_comm
        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

        # add landmarks
        world.landmarks = [Landmark() for i in range(1)]
        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 = 4

        #world.damping = 1

        # num_good_agents = 2
        # num_adversaries = 4
        # num_agents = num_adversaries + num_good_agents
        num_landmarks = 1
        num_food = 2
        num_forests = 2

        # add emergent_comm
        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.leader = True if i == 0 else False
            agent.silent = True if i > 0 else False
            agent.adversary = True if i < self.num_adversaries else False
            agent.size = 0.075 if agent.adversary else 0.045
            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

        # 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
        world.food = [Landmark() for i in range(num_food)]
        for i, landmark in enumerate(world.food):
            landmark.name = 'food %d' % i
            landmark.collide = False
            landmark.movable = False
            landmark.size = 0.03
            landmark.boundary = False
        world.forests = [Landmark() for i in range(num_forests)]
        for i, landmark in enumerate(world.forests):
            landmark.name = 'forest %d' % i
            landmark.collide = False
            landmark.movable = False
            landmark.size = 0.3
            landmark.boundary = False
        world.landmarks += world.food
        world.landmarks += world.forests

        #world.landmarks += self.set_boundaries(world)  # world boundaries now penalized with negative reward
        # make initial conditions
        self.reset_world(world)
        return world
    def make_world(self):
        world = World()
        # world.damping = 0.75

        # actions continuous or discrete? (see the MultiAgentEnv constructor)
        world.discrete_action_space = self.discrete_action_space
        if self.discrete_action_space:
            world.discrete_action = True

        # add emergent_comm
        world.agents = [Agent() for _ in range(self.num_agents)]
        for i, agent in enumerate(world.agents):
            agent.name = 'agent %d' % i
            agent.collide = self.add_obstacles  # agent does not collide if there are no obstacles
            agent.silent = True
            agent.size = self.agent_size  # agents are bigger than landmarks
            if self.max_agent_speed is not None:
                agent.max_speed = self.max_agent_speed

        # add landmarks
        self.landmarks = []
        world.landmarks = [Landmark() for _ in range(self.num_landmarks)]
        for i, landmark in enumerate(world.landmarks):
            landmark.name = 'landmark %d' % i
            landmark.collide = False
            landmark.movable = False
            self.landmarks.append(landmark)

        self.create_fence(world)

        # 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
     world.collaborative = True
     # add emergent_comm
     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.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 #6
0
 def make_world(self):
     world = World()
     # set any world properties first
     world.dim_c = 2
     num_agents = 3
     world.num_agents = num_agents
     num_adversaries = 1
     num_landmarks = num_agents - 1
     # add emergent_comm
     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 #7
0
    def make_world(self):

        world = World()
        # set any world properties first
        world.dim_c = 2  # TODO dim_c??
        world.collaborative = True
        # add emergent_comm
        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.silent = True
            agent.size = 0.15
            agent.index = i
        # 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
            landmark.index = i
            landmark.size = 0.05

        # make initial conditions
        self.reset_world(world)
        return world
Beispiel #8
0
 def make_world(self):
     world = World()
     # set any world properties first
     num_agents = 3
     num_adversaries = 1
     num_landmarks = 2
     world.dim_c = 4
     # add emergent_comm
     world.agents = [CryptoAgent() for i 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
     # 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 = 10
     world.collaborative = True  # whether emergent_comm share rewards
     # add emergent_comm
     world.agents = [Agent() for i in range(2)]
     for i, agent in enumerate(world.agents):
         agent.name = 'agent %d' % i
         agent.collide = False
     # add landmarks
     world.landmarks = [Landmark() for i in range(3)]
     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