Giter VIP home page Giter VIP logo

traffic-simulation's Introduction

Traffic simulation

Description

Analyze the behavior of drivers on a new road to determine the optimal speed limits.

Objectives

Learning Objectives

After completing this assignment, you should understand:

  • The use of NumPy
  • Complex stochastic simulations
  • Basic statistical methods

Performance Objectives

After completing this assignment, you should be able to:

  • Create complex simulations
  • Speak about your findings

Details

Deliverables

  • A Git repo called traffic-simulation containing at least:
    • README.md file explaining how to run your project
    • a requirements.txt file
    • (optional) a suite of tests for your project
    • either an IPython notebook or a Python package with your code

Requirements

  • No PEP8 or Pyflakes warnings or errors

About the Assignment

You are going to create a simulation of traffic on a road and find the optimal speed limit for the road. In the normal mode below, this is for 1 kilometer of road. We start by listing our assumptions. These will simplify the problem from the real world.

Assumptions

  • Drivers want to go up to 120 km/hr.
  • The average car is 5 meters long.
  • Drivers want at least 4 car lengths between them and the next car.
  • Drivers will accelerate 2 m/s up to their desired speed as long as they have room to do so.
  • If another car is too close, drivers will match that car's speed until they have room again.
  • If a driver would hit another car by continuing, they stop.
  • Drivers will randomly (10% each second) slow by 2 m/s.
  • This section of road will have a new car enter it every 2-6 seconds.
  • This section of road is one lane going one way.

Given all this information, create a simulation of traffic on this road. Even though the road is not circular in real life, you should treat it as such: cars exiting the road start again at the beginning. This is to simulate a continuous stream of traffic. When you start the simulation, add 30 cars to the road per kilometer, evenly spaced. Then run the simulation for one minute to get a continuous, randomized stream of traffic.

The optimal speed limit is one standard deviation above the mean speed. For ease of drivers, this should be rounded down to an integer.

Your final report should have a graph of traffic over time, showing traffic jams, as well as your recommendation for the speed limit. Add any plots that back up your analysis.

Here is an excellent example of a graph showing traffic jams.

Normal Mode

We have a 1 kilometer section of road being built and do not know what the speed limit should be. Simulate 1 kilometer of road. As mentioned above, even though this road is not circular, treat it as such in order to generate a continuous flow of traffic.

Hard Mode

We have a new section of road being built and do not know what the speed limit should be. This section of road is 7 kilometers long.

  • Kilometer 1: straight.
  • Kilometer 2: slight curve. 40% higher slowing chance.
  • Kilometer 3: straight.
  • Kilometer 4: curve. 100% higher slowing chance.
  • Kilometer 5: straight.
  • Kilometer 6: slight curve. 20% higher slowing chance.
  • Kilometer 7: straight.

Road

Nightmare Mode, option 1

Calculate all of the above, but change your simulation to account for differing types of drivers.

Driver type Normal Aggressive Commercial
Acceleration 2 m/s/s 5 m/s/s 1.5 m/s/s
Desired speed 120 km/h 140 km/h 100 km/h
Vehicle size 5 m 5 m 25 m
Minimum spacing 20 m 15 m 100 m
Slowing chance 10%/s 5%/s 10%/s
% of drivers 75% 10% 15%
  • m = meters
  • km = kilometers
  • s = second
  • h = hour

Nightmare Mode, option 2

In addition to the requirements from Normal Mode:

The planning board has come back and given you a new requirement: this section of road should not have more than an average of 10 fatalities per year.

We know that a driver has a base fatality risk of 1 / 1463040 per km driven. This chance goes up by 3% for every 1 km/hr increase in speed. (To be clear, this is an exponential increase. For ease of explanation, imagine that the base risk is 1% at 1 km/hr. At 2 km/hr, the risk would be 1% * 1.03 = 1.03%. At 3 km/hr, the risk would be 1.03% * 1.03 = 1.0609%. At 4 km/hr, 1.0609% * 1.03 = 1.092727%.)

Come up with a new recommendation for the speed limit that will result in a mean of 10 fatalities per year.

Notes

This is incredibly similar to real work that a highway planner would do. Using these tools should highlight how randomness can be used to solve many real-world problems.

Your simulations may take quite some time to run. You should create smaller simulations and make sure they are giving you reasonable answers before scaling up.

Remember that one simulation is meaningless: you need many simulations for the law of large numbers to matter.

Additional Resources

traffic-simulation's People

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.