コード例 #1
0
def save_timing_performance(timing, filename):
    full_timings = [3] * 8
    full_timings[0] = timing[0]
    full_timings[4] = timing[1]
    traffic_light = PhaseModifier("node1")
    controller = StaticTrafficLightController(controller=traffic_light,
                                              sequence=list(range(8)),
                                              timings=full_timings)
    sim = Simulator()
    sim.add_simulation_component(SimulationOutputParser)
    sim.add_tickable(controller)
    sim.run(sumocfg1, gui=False)
    sim.save_results(filename)
コード例 #2
0
def evaluate_timing(timing):
    traffic_light = PhaseModifier("node1")
    full_timings = [3] * 8
    full_timings[0] = timing[0]
    full_timings[4] = timing[1]
    controller = StaticTrafficLightController(controller=traffic_light,
                                              sequence=list(range(8)),
                                              timings=full_timings)
    sim = Simulator()
    sim.add_simulation_component(SimulationOutputParser)
    sim.add_tickable(controller)
    if not sim.run(sumocfg1, time_steps=2000, gui=False):
        return sim.results
    return False
from reward import RewardCalculator
from simulation import Simulator
import numpy as np
from stats.output_parser import SimulationOutputParser
from gradient_descent.static_controller import StaticTrafficLightController
from action import PhaseModifier
sim = Simulator()

sim.add_simulation_component(SimulationOutputParser)
t = [3]*8
t[0] = 50
t[4] = 50
print(t)
controller = StaticTrafficLightController(PhaseModifier("node1"),list(range(8)),t)

sim.add_tickable(controller)



sumocfg1 = "..\\test_environments\\single_intersection_random_trips\\newnet.sumocfg"
sumocfg2 = "..\\test_environments\\grid_map\\4by4.sumocfg"


sim.run(sumocfg1, gui=False)
print(sim.results["mean_speed"].var()**.5)
print(sim.results["duration"].var()**.5)
コード例 #4
0
        print(timing)
        chromosome = Chromosome(timing, fitness=0)
        configuration = []
        for ii in range(8):
            configuration.append(3)
            if ii == 0:
                configuration[ii] = timing[0]
            if ii == 4:
                configuration[ii] = timing[1]
        chromosome_controller = StaticTrafficLightController(
            PhaseModifier("node1"), list(range(0, 8)), configuration)
        print(chromosome._phases_steps)
        print(configuration)

        sim = Simulator()
        sim.add_tickable(chromosome_controller)
        sim.run(sumocfg1, gui=False)

        fitness = XMLDataExtractor(path).get_data()
        chromosome.set_fitness(fitness)
        population.append(chromosome)

    for member in population:
        print(member._fitness)

    best_initial_solution = min(population, key=lambda x: x._fitness)

    configuration = []
    for ii in range(8):
        configuration.append(3)
        if ii == 0:
コード例 #5
0
    def __init__(self, reward_calc, state, controller, actions):
        super().__init__(reward_calc, state, controller, actions)
        import itertools
        self._phases = itertools.cycle([0] * 30 + [4] * 30)

    def _select_action(self, state):
        return next(self._phases)


if __name__ == "__main__":

    class X:
        def __init__(self, s):
            self.x = 0
            self.s = s

        def tick(self):
            x = int(input("Enter a phase :"))
            self.s.do_action(x)

    sim = Simulator()
    rc = RewardCalculator()
    sim.add_tickable(rc)
    c = Controller(PhaseModifier("node1"))
    s = StateGenerator()
    agent = SingleIntersectQAgent(rc, s, c, [0, 3, 4])
    sim.add_tickable(agent)
    sim.add_tickable(X(c))
    sumocfg = "..\\..\\test_environments\\single_intersection_map\\newnet.sumocfg"
    sim.run(sumocfg, time_steps=1000, gui=True)