Наверное, почти каждый водитель оказывался в ситуации, когда едущая впереди машина ни с того ни с сего сбрасывает скорость. И даже если до нее была приличная дистанция, тому, кто сзади, приходится сбрасывать скорость, чтобы избежать столкновения, — иногда до полной остановки. Естественно, и следующей машине придется сбрасывать скорость, а потом — и следующей за ней, и т. д.

Получается то, что часто называют волной (или змеей) трафика (рис. 1 и 2). Причины ее появления могут быть разные: авария, перестроение машин между рядами, слияние двух полос и вообще всё, из-за чего водителю приходится притормаживать. Самое интересное, что волна может «жить» и даже распространяться по трассе сильно после того, как исчезла изначальная причина ее возникновения.

Рис. 2. Сверху — все машины резко сбрасывают скорость, заставляя волну усиливаться. Снизу — скорость реакции водителей чуть быстрее, и они рассчитывают свою скорость так, чтобы сбросить как можно меньше и не сталкиваться, — волна «умирает». Анимация из видео на канале CGP Grey о причинах возникновения и способах исключения волн трафика
В этой задаче мы рассмотрим волну трафика с точки зрения физики. Давайте для удобства введем три параметра: пусть \(v\) — это средняя скорость машин на заданном участке дороги (в км/ч), \(k\) — плотность машин на единицу длины участка (то есть число машин на км дороги), \(q\) — интенсивность потока машин (число машин в час).
Проблемную зону дороги (в которой локализована пробка) удобно разделить на две области: то, что еще не почувствовало волну (это машины, едущие с обычной скоростью и еще не доехавшие до пробки), и то, что уже успело попасть в пробку (машины, которые сбросили скорость и еще не успели разогнаться обратно). В каждой из этих областей свои значения величин \(v\), \(k\) и \(q\). Граница этих двух областей будет двигаться с некоторой скоростью \(V\), которую мы будем называть скоростью волны (например, на рис. 1 сверху она отрицательна — движется навстречу машинам, снизу — она нулевая).
Установите связь между величинами \(v\), \(k\), \(q\) в каждой области и найдите скорость волны \(V\).
Рассмотрим ситуацию, приближенную к реальности: пусть в области до пробки поток составляет 2000 машин в час и их средняя скорость равна 80 км/ч, из-за пробки машинам приходится сбрасывать скорость до 20 км/ч, плотность машин в пробке составляет 60 машин на километр. Как быстро растет число машин в пробке (в машинах в час)?
В пробке, как бы медленно вы через нее не ехали, работает свой «закон сохранения»: сколько машин покидает первую область, столько прибывает во вторую (всякими случайностями вроде машин, попавших в аварию внутри пробки, мы сейчас пренебрегаем).
Из этого, в частности, следует, что если волна трафика стоячая (\(V=0\)), то равны потоки слева и справа от нее.
Введем обозначения для областей, о которых говорилось в условии: будем называть область перед пробкой первой (и соответствующим ей величинам приписывать индекс «1»: \(q_1\), \(v_1\), \(k_1\)), а область внутри пробки будем называть второй (и писать индекс «2»).
Из соображений размерности легко понять, что поток машин — это плотность, помноженная на среднюю скорость: \(q = v k\). Ясно, что это верно для любого участка дороги, — в том числе и для обеих областей: \(q_1 = v_1 k_1\) и \(q_2 = v_2 k_2\). Как было отмечено в подсказке, если волна (граница двух областей) покоится (\(V = 0\)), то поток машин с обоих сторон от границы одинаковый, т.е. \(v_1 k_1 = v_2 k_2\).
Если же волна движется (неважно, в какую сторону), то нужно перейти в связанную с ней систему отсчета. Это «занулит» скорость волны и сработают те же соображения:
\[ (v_1- V) k_1 = (v_2- V) k_2. \]Отсюда несложно получить выражение для \(V\):
\[ V = \frac{q_2- q_1}{k_2- k_1}. \]Теперь можно перейти к численному эксперименту. Из условия имеем \(q_1 = 2000\) машин в час, \(v_1 = 80\) км/ч, \(v_2 = 20\) км/ч и \(k_2 = 60\) машин на 1 км дороги. Полученная формула дает \(V \approx -23\) км/ч, то есть волна распространяется навстречу движению машин со средней скоростью 23 км/ч.
Темп роста числа машин в пробке равен просто входящему потоку: \((v_1- V)k_1\), что после подстановки чисел дает примерно 2500 машин в час. Конечно, тут нужно оговориться, что в нашей простой модели машины как бы застревают в пробке и не выезжают из нее. Поэтому ответ «2500 машин в час» нужно интерпретировать так: за час примерно 2500 машин будет «поглощено» змейкой и будет вынуждено сбросить скорость.
Возникновение подобного рода волн — довольно распространенное явление в физике. Аналогом змейки трафика в гидродинамике жидкостей и газов являются, например, ударные волны. Давайте на простом примере рассмотрим из-за чего они возникают.
Абстрагируемся от потока машин и представим, что у нас есть некоторое вещество (будь то газ, жидкость, поток людей в подземном переходе, поток машин и т. д.), описывающееся средней плотностью \(k(x,\ t)\) и средней скоростью \(v(x,\ t)\), которые зависят от места (координаты) \(x\) и времени \(t\). Пусть теперь скорость \(v\) обратно пропорциональна плотности: грубо говоря, в областях с высокой плотностью будет маленькая скорость, и наоборот. Это очень похоже на то, как ведут себя потоки людей или машин на дороге, однако для несжимаемой жидкости, строго говоря, имеет место обратная ситуация.
На рис. 3 показано начальное состояние потока машин (или людей): по вертикальной оси — плотность, по горизонтальной — координата \(x\) (вдоль движения). В левой части графика низкая плотность потока и, соответственно, высокая скорость (по нашей договоренности), в правой — наоборот, что и соответствует пробке. Обратите внимание на переходную область между нормальным трафиком и пробкой: вначале она довольно широка и может быть практически незаметной для большой трассы. Такой профиль называется также кинком: характерно плоский на двух разных уровнях слева и справа с плавным переходом посередине.

Рис. 3. Изменение плотности трафика при попадании в пробку. В левой части графика — область низкой плотности машин (или людей) с высокой средней скоростью потока, то есть движение до пробки. В правой части — ситуация, характерная для пробки (высокая плотность и низкая средняя скорость потока)
Теперь давайте посмотрим, как такое распределение машин (людей) будет эволюционировать во времени. На рис. 4 показана такая эволюция. Из-за того, что области с низкой плотностью движутся быстрее областей с высокой плотностью (если машин или людей вокруг мало, то можно разогнаться до больших скоростей, и наоборот), левая часть профиля «догоняет» правую, и переходная область со временем сжимается. Возникает ситуация, которую в гидродинамике называют ударной волной: резкое изменение гидродинамических параметров (плотности, давления и т. д.) в ограниченной области.

Рис. 4. Эволюция во времени профиля плотности машин вдоль трассы: области с низкой плотностью движутся быстрее и нагоняют границу, а области с высокой плотностью движутся медленнее, из-за чего переходная область между ними со временем сжимается и становится все короче и короче
Как избежать подобных ситуаций и минимизировать время жизни таких волн? Простого и однозначного ответа нет, и все решения зависят от особенностей моделей. Индивидуально каждый водитель может, конечно, избежать пробки в некоторых ситуациях, к примеру, сменив полосу. Однако это скорее всего будет приводить к возникновению новой волны уже на других полосах и только усугубит общую ситуацию (как показано на рис. 5).

Рис. 5. Пара неаккуратных перестроений на трассе способна породить пробку на всех рядах. Анимация из видео на канале CGP Grey о причинах возникновения и способах исключения волн трафика
Но однозначно, что для решения подобных задач необходима некая коллективная логика — коллективное поведение водителей по некоторому универсальному алгоритму. Об этом же говорят и симуляции потоков людей, в которых, если каждый человек заранее знает свой путь и принимает рациональные решения, то в среднем вероятность возникновения давки ниже. В случае с людскими потоками тяжело представить центральный алгоритм, который сможет руководить всей толпой (хотя в некотором смысле этого достигают правильным дизайном пространства, разметки и указателей в зданиях и помещениях, в которых есть опасность давки — в торговых центрах, стадионах, площадях, концертных залах и т. д.). Однако в случае с машинами такое вполне возможно, особенно сейчас — на заре массового распространения машин с автономным управлением, которые, потенциально, могут коммуницировать между собой для принятия тех или иных оптимальных решений.
Ударные волны часто возникают (аналогично тому, как было показано на рис. 4) в ситуациях, в которых выполняется некоторый закон сохранения вещества. К примеру, в задаче с машинами центральной идеей было сохранение числа машин при переходе из одной области пробки в другую. Такие условия обычно пишутся в виде так называемого уравнения непрерывности:
Не пугайтесь частных производных по времени и по координате, если не знакомы с ними. Здесь достаточно понять, о чем с физической точки зрения говорит это уравнение. Его можно читать следующим образом: изменение некоторой величины во времени (в нашем случае это плотность \(k\)) связано с потоком этой величины из области пространства (\(q\)). Иными словами, если у вас есть некоторая область, то, чтобы найти, как изменилось количество, скажем, воды в этой области, вам нужно из притекшего потока воды отнять вытекающий.
Интересно, что даже в таком общем случае скорость ударной волны определяется соотношением Ранкина — Гюгонио:
\[ V = \frac{q_2- q_1}{k_2- k_1}, \]частный случай которого мы вывели в решении.
В случае с рассмотренным в задаче движением машин \(k\) — это число машин на километр дороги, а \(q = k v\) — количество машин, проезжающих через определенный участок дороги за час (поток). В гидродинамике рассматривают сходные по сути величины: \(k=\rho\) — плотность вещества, а \(q=\rho v\) — поток вещества, а выписанное выше уравнение принимает форму, которую называют уравнением непрерывности гидродинамики:
Представьте теперь ситуацию, когда скорость вещества пропорциональна его плотности. Оказывается, такая физическая модель очень хорошо описывает динамику, например, сжимаемых газов. В таком случае, если опустить коэффициенты пропорциональности, уравнение непрерывности перепишется в следующем виде:
Это уравнение называют уравнением Бюргерса и, помимо всего прочего, оно примечательно тем, что оно также допускает формирование ударные волны как показано на рис. 6. Происходит это потому, что области с высоким давлением имеют также высокую скорость и профиль, показанный на анимации, будет эволюционировать так, что красные области будут догонять синие, сужая область перехода и образуя ударную волну — аналогично тому, что было в нашей задаче.

Рис. 6. Распространение волны (например, давления) на плоскости \((x,\ y)\). Цветом (и высотой \(u\)) обозначена амплитуда волны, то есть значение давления в данной точке: красный — высокое давление, синий — низкое. Высокое давление (по формуле, приведенной выше) имеет также высокую скорость распространения, и поэтому красная область догоняет синюю, образуя ударную волну
Попробуйте в качестве упражнения найти скорость такой ударной волны, пользуясь соотношением Ранкина — Гюгонио и зная скорости газа по одну и другую стороны волны.




Рис. 1. Примеры волн трафика. Сверху — волна движется в противоположную от движения машин сторону, снизу — «стоячая» волна. Анимации с сайта trafficwaves.org