История одной пробки или выгодно ли быть пронырой

от автора

Удивительная вещь, но в Люксембурге тоже пробки.

Маленькая страна, и после жизни в России, где дорога на работу из Подмосковья в Москву и обратно ежедневно съедала около трех часов жизни, здесь все очень близко: лес — за окном, гигантский торговый центр — через дорогу, бассейн — 7 минут, работа — 15 минут, аэропорт — 25 минут, вокзал — 20 минут, да и вообще, поездка между двумя самыми удаленными точками Люксембурга занимает полтора часа. Но к хорошему привыкаешь очень быстро. Стою в пробке, навигатор показывает добавочных 10 минут, и это никак не входит в мои планы на сегодня. Пытаюсь угадать с полосой. Так, впереди сужение, правая полоса — ремонт. Значит, надо перестраиваться в левую сторону. Правильно? Казалось бы, да, в Москве это правило работает на 100%.

Но не здесь — правая проблемная полоса едет в два раза быстрее. Как так?

Все равно пробка, а значит, есть 10 минут на решение задачи. Разбираемся.

О культуре вождения

На самом деле все просто. Это связано с тем, что:

  • большинство водителей, увидев знак сужения, дисциплинированно перестраиваются в левую сторону, и таким образом машин в правой полосе становится меньше

  • водители пропускают друг друга

Но, казалось бы, так везде. В чем же отличие Москвы от Люксембурга?

Постановка задачи

В самом общем виде задачу можно сформулировать следующим образом.

У нас две полосы, и одна из них перекрыта. Вы въезжаете в пробку на некотором расстоянии от сужения дороги. Какую полосу выбрать, чтобы проехать проблемный участок быстрее?

В такой формулировке, хотя она и отражает суть, эта задача не решаема. Нужно делать дополнительные предположения и упрощения. Сначала определимся с факторами, которые влияют на решение. Факторов много. Вот некоторые из них:

  • длины машин (машины ведь могут быть разными)

  • маневренность разных машин

  • насколько хорошо сделана разметка

  • сколько машин перед вами будут перестраиваться между очередями

  • насколько водители склонны пропускать друг друга

Упростим задачу, сделав следующие допущения:

  • длины машин одинаковы

  • маневренность не влияет

  • разметка идеальная и не влияет на решение задачи

  • начиная с момента, когда вы встали в пробку, все перестроения впереди вас теперь только в месте проблемного сужения дороги

Теперь, по поводу последнего пункта (о склонности водителей пропускать) — это ключевой момент. Чтобы наша задача была легко решаемой, сделаем следующие допущения.

  • Грубо разделим всех водителей на две группы. Мы будем называть их «честными» и «пронырливыми» или «пронырами». Первых мы будем обозначать нижним символом _h(honest) , например, N_h, а вторых символом _s(sly), например, N_s.

  • К тому моменту, как вы подъехали к пробке все честные водители впереди вас уже перестроились в левый ряд и будут оставаться в этом ряду. Они не пытаются обогнать других и предпочитают стоять в общей, справедливой, очереди.

  • При слиянии двух потоков в случае затора честные водители всегда пропускают одну машину из другого потока (правило лесенки).

  • Пронырливые делают все возможное, чтобы проехать быстрее, и они никого никогда не пропускают.

  • Вся правая очередь состоит из них, но если они считают, что стоять в левой очереди выгоднее, они могут изначально встать и в левую очередь.

  • Проныра из второй очереди не может проехать затор, если его не пропустит водитель из первой очереди (напоминаю, что перекрыта именно правая полоса — очередь 2).

Tакая задача уже кажется решаемой. Давайте решать.

Решение

N_1 — количество машин в первой очереди (левая полоса).

N_2 — количество машин во второй очереди (правая, перекрытая полоса).

Вся вторая очередь состоит из пронырливых. Первая очередь состоит частично из пронырливых и частично из честных. Количество пронырливых и честных в первой очереди:

N_{1s} = \alpha N_1

N_{1h} = (1-\alpha)N_1

Здесь \alpha — это просто доля проныр в первой очереди.

Предположим, что водитель встал в конец очереди (1 или 2). До того момента, как он проедет через проблемное сужение дороги, через это бутылочное горлышко проедет какое-то количество машин. Это количество машин можно назвать эффективной очередью.

Найдем эффективные очереди для левого (очередь 1) и правого (очередь 2) потоков.

N_1^e=2N_{1h}+N_{1s}=N_1(2−\alpha)

Здесь все просто. Первое слагаемое (2N_{1h}) — удвоение честных водителей, потому что каждый честный водитель из первой очереди пропускает одного водителя из второй (конечно же, при условии, что вторая очередь есть). Второе слагаемое (N_{1s}) — это просто количество проныр в первой очереди, которые никого не пропускают.

Для второй очереди:

N_2^e = 2N_2 + N_2\displaystyle\frac{\alpha}{1-\alpha} = N_2\frac{2-\alpha}{1-\alpha}

Здесь немного сложней. Первое слагаемое — каждая машина из второй очереди будет пропущена «честным» водителем из очереди 1, что дает удвоение. Второе слагаемое — количество пронырливых водителей в первой очереди на N_2 честных, которые не пропустят. Таким образом можно оценить время ожидания в первой и второй очередях:

\tau_1 \propto N_1(2-\alpha)

\displaystyle \tau_2 \propto N_2\frac{2-\alpha}{1-\alpha}

\displaystyle \frac {\tau_1}{\tau_2} = \frac{N_1}{N_2}(1-\alpha)

Обозначим через \gamma долю пронырливых водителей от общего числа водителей. Будем также называть эту величину «коэффициентом пронырливости» для данного социума. Выразим \alpha через \gamma (напомню, что \alpha — это доля проныр в первой очереди):

\gamma = \displaystyle\frac{\alpha N_1 + N_2}{N_1+ N_2}

\alpha = \displaystyle \frac{\gamma N_1 + \gamma N_2 - N_2}{N_1} = \gamma - \frac{N_2}{N_1}(1-\gamma)

\displaystyle \frac{\tau_1}{\tau_2} = \frac{N_1}{N_2}(1-\gamma)(1 +\frac{N_2}{N_1}) = (1-\gamma)\frac{N_1+N_2}{N_2}

Анализ результата

Что нам дает это соотношение?

\displaystyle \frac{\tau_1}{\tau_2} = (1-\gamma)\frac{N_1+N_2}{N_2}

Предположим, что я нахожусь в состоянии «проныры» в данный момент — мне нужно как можно скорее пробраться через этот затор. Тогда, если бы я знал этот «коэффициент пронырливости» в данной социуме (\gamma) и мог оценить количество машин передо мной в обеих очередях, то я смог бы точно понять, какая очередь быстрее.

Так почему же в Люксембурге правая «очередь проныр» движется быстрее, а в Москве наоборот?

Давайте рассмотрим предельный случай, предположив, что все водители, кроме одного, честные. Тогда, когда проныра подъезжает к концу очереди, все стоят в левом ряду, проныра знает, что это честные водители, и ему безусловно выгодно встать в правый ряд. Нетрудно увидеть, что это правило работает до момента \gamma = 0.5. До этого коэффициента пронырам всегда выгоднее вставать в правый ряд — они всегда будут иметь выигрыш во времени, потому что

\displaystyle \frac {\tau_1}{\tau_2} = \frac {1-\gamma}{\gamma} > 1

Это просто значит, что время ожидания в первой очереди больше, чем во второй.

При \gamma = 0.5 наступает момент, когда, если все проныры встают в правый ряд, то количество машин в этой очереди становится равным количеству в левой (честные), и так как честные водители всегда пропускают по правилу лесенки, то время ожидания в обеих очередях сравнивается. Это выражается тем фактом, что

\displaystyle \frac {\tau_1}{\tau_2} = \frac {1-0.5}{0.5} = 1

Что же происходит, если \gamma \ge 0.5?

Давайте предположим, что проныры обладают сверхъестественными способностями или настолько большим опытом, что прекрасно «чувствуют», какая очередь будет двигаться быстрее, и всегда становятся в более быструю очередь. Тогда, если \gamma \ge 0.5, подъезжающие проныры начинают распределяться между первой и второй очередью, и зависимость становится более сложной. Мы получаем состояние равенства эффективных длин первой и второй очереди и, как следствие

\tau_1 = \tau_2

\displaystyle \frac {N_2}{N_1} = \frac {1 -\gamma}{\gamma}

Это значит, что при дальнейшем увеличении \gamma длина второй очереди (при \tau_1=\tau_2) становится короче и короче по отношению к очереди 1. В пределе, когда все становятся пронырами (\gamma =1), во вторую очередь становиться не имеет смысла.

Получается, что если «коэффициент пронырливости» ниже определенного значения, то быть пронырой очень даже выгодно. А если достаточный процент социума (в нашей упрощенной модели просто большинство) это такие же проныры как и ты, то путь проныр становится не таким простым и предсказуемым.

В нашем случае этот порог: \gamma = 0.5, но это, конечно же, лишь в тех идеальных условиях, которые мы сами определили. Расчет реального порога является сложной задачей. Но для нас точное значение и не имеет большого значения, а вот наличие этого фазового перехода кажется интересным.

Теперь мы можем ответить на вопрос, в чем же разница между Люксембургом и Москвой. По собственному опыту могу сказать, что «коэффициент пронырливости» в Москве гораздо выше — в этом и ответ.


ссылка на оригинал статьи https://habr.com/ru/articles/866730/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *