Example #1
0
    def test_bottleneck(self):
        """Verifies that examples/sumo/bottlenecks.py is working."""
        # import the experiment variable from the example
        exp = bottleneck_example(20, 5, render=False)

        # run the experiment for a few time steps to ensure it doesn't fail
        exp.run(1, 5)
def run_bottleneck(flow_rate, num_trials, num_steps, render=None):
    print('Running experiment for inflow rate: ', flow_rate, render)
    exp = bottleneck_example(flow_rate, num_steps, restart_instance=True)
    info_dict = exp.run(num_trials, num_steps)

    return info_dict['average_outflow'], \
        np.mean(info_dict['velocities']), \
        np.mean(info_dict['average_rollout_density_outflow']), \
        info_dict['per_rollout_outflows'], \
        flow_rate
Example #3
0
def run_bottleneck(flow_rate,
                   penetration_rate,
                   num_trials,
                   num_steps,
                   render=None,
                   disable_ramp_meter=True,
                   n_crit=8,
                   feedback_coef=20,
                   lc_on=False,
                   q_init=400):
    """Run a rollout of the bottleneck environment.

    Parameters
    ----------
    flow_rate : float
        bottleneck inflow rate
    num_trials : int
        number of rollouts to perform
    num_steps : int
        number of simulation steps per rollout
    render : bool
        whether to render the environment

    Returns
    -------
    float
        average outflow rate across rollouts
    float
        average speed across rollouts
    float
        average rollout density outflow
    list of float
        per rollout outflows
    float
        inflow rate
    """
    print('Running experiment for inflow rate: ', flow_rate, render, q_init,
          penetration_rate, feedback_coef)
    exp = bottleneck_example(flow_rate,
                             num_steps,
                             render=render,
                             restart_instance=True,
                             disable_ramp_meter=disable_ramp_meter,
                             feedback_coef=feedback_coef,
                             n_crit=n_crit,
                             lc_on=lc_on,
                             q_init=q_init,
                             penetration_rate=penetration_rate)
    info_dict = exp.run(num_trials, num_steps)

    return info_dict['average_outflow'], \
        info_dict['velocities'], \
        np.mean(info_dict['average_rollout_density_outflow']), \
        info_dict['per_rollout_outflows'], \
        flow_rate, info_dict['lane_4_vels'],
Example #4
0
def run_bottleneck(flow_rate, num_trials, num_steps, render=None):
    """Run a rollout of the bottleneck environment.

    Parameters
    ----------
    flow_rate : float
        bottleneck inflow rate
    num_trials : int
        number of rollouts to perform
    num_steps : int
        number of simulation steps per rollout
    render : bool
        whether to render the environment

    Returns
    -------
    float
        average outflow rate across rollouts
    float
        average speed across rollouts
    float
        average rollout density outflow
    list of float
        per rollout outflows
    float
        inflow rate
    """
    print('Running experiment for inflow rate: ', flow_rate, render)
    exp = bottleneck_example(flow_rate, num_steps, restart_instance=True)
    info_dict = exp.run(num_trials, num_steps)

    return info_dict['average_outflow'], \
        np.mean(info_dict['velocities']), \
        np.mean(info_dict['average_rollout_density_outflow']), \
        info_dict['per_rollout_outflows'], \
        flow_rate