Transportation Engineering & Operations Research
Greenshields Traffic Flow & Queue Shockwave Formula
Calculate Greenshields (1935) highway speed v(k) = v_f*(1 - k/k_j), parabolic flow q(k) = k*v(k), maximum lane capacity v_f*k_j / 4, and Lighthill-Whitham-Richards backward queue shockwave speed.
Why adding cars past critical density k_j / 2 CUTS highway throughput instead of raising it!
Bruce Greenshields’s (1935) Fundamental Diagram of Traffic Flow links Free-Flow Speed v_f (km/h), Bumper-to-Bumper Jam Density k_j (veh/km/lane), and current Traffic Density k in [0, k_j] via linear speed-density decay v(k) = v_f * (1 - k / k_j) and fundamental conservation q(k) = k * v(k) = k * v_f * (1 - k / k_j) (veh/h/lane)! Because q(k) is an inverted parabola peaking at Critical Density k_c = k_j / 2 (where Critical Speed v_c = v_f / 2), Maximum Highway Capacity is q_max = (v_f * k_j) / 4 — beyond k_c, forced hyper-congested breakdown lowers BOTH speed AND hourly vehicle throughput! Furthermore, when upstream traffic state (k_1, q_1) meets downstream bottleneck state (k_2, q_2), Lighthill-Whitham-Richards (LWR) conservation propagates the queue boundary at Shockwave Speed w_12 = (q_2 - q_1) / (k_2 - k_1) (negative w_12 means the jam tail marches BACKWARD up the highway!)!
Verify on Free_Flow_Speed v_f = 100 km/h (B2), Jam_Density k_j = 120 veh/km (B3), Upstream_Density k_1 = 30 veh/km (B4), and Downstream_Incident_Density k_2 = 108 veh/km (B5): Upstream Speed is 100 * (1 - 30/120) = 75.00 km/h and Flow q_1 = 30 * 75 = 2,250.00 veh/h; Maximum Lane Capacity is (100 * 120) / 4 = 3,000.00 veh/h (at k_c = 60, v_c = 50); Downstream Jammed Flow at k_2 = 108 drops to q_2 = 108 * 100 * (1 - 108/120) = 1,080.00 veh/h; and Queue Shockwave Velocity is (1,080 - 2,250) / (108 - 30) = -1,170 / 78 = -15.00 km/h (queue grows backward at 15 km/h!)!
| Highway Traffic Metric (v_f=100 km/h, k_j=120 veh/km) | Formula | Verified Output |
|---|---|---|
| Upstream Flow at k_1 = 30 veh/km | 30 * 100 * (1 - 30 / 120) | 2,250.00 veh/h (at 75 km/h) |
| Maximum Parabolic Lane Capacity (q_max) | (v_f * k_j) / 4 | 3,000.00 veh/h (at k_c = 60) |
| Downstream Congested Flow (k_2 = 108) | 108 * 100 * (1 - 108 / 120) | 1,080.00 veh/h (at 10 km/h) |
| LWR Backward Queue Shockwave (w_12) | (q_2 - q_1) / (k_2 - k_1) | -15.00 km/h (Upstream Spillback!) |
Greenshields Parabolic Hourly Flow q(k) & Max Lane Capacity Formula
Validate v_f > 0, k_j > 0, and physical density bounds 0 <= k <= k_j.
=LET(v_fr, B2, k_jm, B3, k_up, B4, IF(OR(v_fr <= 0, k_jm <= 0, k_up < 0, k_up > k_jm), "Invalid Traffic Input", ROUND(k_up * v_fr * (1 - k_up / k_jm), 2)))Rankine-Hugoniot / LWR Traffic Shockwave Speed w_12 Formula
Notice Greenshields’s exact algebraic simplification: (q_2 - q_1)/(k_2 - k_1) = v_f * (1 - (k_1 + k_2) / k_j) = 100 * (1 - 138/120) = -15.00 km/h whenever k_1 <> k_2!
=LET(v_fr, B2, k_jm, B3, k_1, B4, k_2, B5, IF(OR(v_fr <= 0, k_jm <= 0, k_1 < 0, k_1 > k_jm, k_2 < 0, k_2 > k_jm, k_1 = k_2), "Invalid Shockwave State", LET(q_1, k_1 * v_fr * (1 - k_1 / k_jm), q_2, k_2 * v_fr * (1 - k_2 / k_jm), ROUND((q_2 - q_1) / (k_2 - k_1), 2))))Try the example
Use the original values or change them to test your understanding.