Exemplo n.º 1
0
class BorderNode(Node):
    def __init__(self, name, x, y):
        super().__init__(name, "border", x, y)
        self.connection = None
        self.q = CarQueue(-1)  # -1 for no maximum q-size

    def set_connection(self, neighbour):
        self.connection = neighbour

    def spawn_car(self, destination):
        self.q.add_car(Car(destination))

    def update_cars(self, time_step):
        car = self.q.get_car()
        if car is not None:
            directions = car.get_directions(time_step, self.x, self.y)
            if not self.connection.transfer_car(self, car):
                if not self.q.add_car_back(car):  # car is added back to queue
                    print("CAR COULD NOT BE ADDED BACK TO QUEUE AT BORDER")

    def number_of_cars(self):
        return self.q.number_of_cars()

    @staticmethod
    def car_leaves_system(car):
        Car.removed_cars += 1
        return True

    def __str__(self):
        return "Border node: " + super().__str__() + " has {0} cars".format(
            self.number_of_cars())
Exemplo n.º 2
0
 def __init__(self, name, max_q_size):
     super().__init__(name, "intersection")
     self.neighbours = [None, None, None, None]  # north, east, south, west
     self.qs = [
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size)
     ]
Exemplo n.º 3
0
 def reset(self):
     max_q_size = 50
     self.qs = [
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size)
     ]
     self.state = np.array([0, 0, 0, 0])
     self.model_reward = 0
     return self.state
Exemplo n.º 4
0
 def reset(self):
     max_q_size = 50
     self.qs = [
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size)
     ]
     #print(self.qs)
     #self.state = [0,0,0,0,0,0,0,0]
     self.state = np.array([0, 0, 0, 0, 0, 0, 0, 0])
     self.model_reward = 0
     #eturn np.array(self.state)
     return self.state
Exemplo n.º 5
0
 def __init__(self, name, max_q_size, x, y):
     super().__init__(name, "intersection", x, y)
     self.neighbours = [None, None, None, None]  # north, east, south, west
     self.qs = [
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size),
         CarQueue(max_q_size)
     ]
     self.traffic_lights = [
         TrafficLight(),
         TrafficLight(),
         TrafficLight(),
         TrafficLight()
     ]
     self.current_state = None
     self.reward = 0
Exemplo n.º 6
0
 def __init__(self, name, x, y):
     super().__init__(name, "border", x, y)
     self.connection = None
     self.q = CarQueue(-1)  # -1 for no maximum q-size
Exemplo n.º 7
0
 def reset(self):
     self.q = CarQueue(-1)
Exemplo n.º 8
0
	def reset(self):
		self.q = CarQueue(100000)