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

Маленькая страна, и после жизни в России, где дорога на работу из Подмосковья в Москву и обратно ежедневно съедала около трех часов жизни, здесь все очень близко: лес — за окном, гигантский торговый центр — через дорогу, бассейн — 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, но это, конечно же, лишь в тех идеальных условиях, которые мы сами определили. Расчет реального порога является сложной задачей. Но для нас точное значение и не имеет большого значения, а вот наличие этого фазового перехода кажется интересным.

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

Комментарии (23)


  1. Coffeemaniacs
    16.12.2024 01:45

    Во-первых в этой задаче деление на честных и проныр абсолютно некорректно. Это доказывает незнание правил дорожного движения. А правило простое - едешь по своей полосе ДО самого конца полосы и затем тебя обязаны впустить на свободную полосу. Это и есть правило лесенки. Однако, этим правилом мало кто пользуется. К примеру в Германии или Польше были в свое время большие образовательные кампании для автомобилистов наи этот счёт. А дальше все просто - на правой полосе обычно грузовики или автобусы, что влияет на количество тс в полосе. Плюс, многие не едут до конца, а ломают правило лесенки и съезжают со своей полосы намного раньше, удлинняя тем самым очередь. Я всегда стараюсь в самом начале попасть в полосу, которая будет закрыта.


    1. BeerMaster
      16.12.2024 01:45

      Если не сложно, дайте ссылку на пункт правил где сказано что я обязан кого-то впустить на свою полосу.


      1. Coffeemaniacs
        16.12.2024 01:45

        https://www.lessentiel.lu/fr/story/le-systeme-de-la-tirette-est-tres-simple-631130708265


        1. nihole Автор
          16.12.2024 01:45

          Спасибо. Почему-то думал, что это рекомендованное, а не обязательное поведение


      1. chieftain_yu
        16.12.2024 01:45

        В белорусских ПДД такое тоже есть:

        https://pdd.by/pdd/ru/62/


    1. TomskDiver
      16.12.2024 01:45

      Это в Германии такие ПДД что люди обязаны впустить кого-то в свою полосу с соседней когда кто-то перестраивается? В РФ не так, тут по ПДД тот у кого конец полосы обязан ждать когда его пропустят.


      1. Coffeemaniacs
        16.12.2024 01:45

        В Германии в том числе, однако мы про Люксембург... Да, во многих странах это дополнительным пунктом вынесено в ПДД.


      1. VADemon
        16.12.2024 01:45

        Как следует из правил: обязаны пропускать, но перестраивающиеся не могут принуждать водителя на свободной (к движению) полосе предоставить им место для маневра. Формально, если водитель не уступает место -- не штраф, а предупреждение в размере 20€. Это один из легкозапоминаемых принципов в автошколе.


    1. nihole Автор
      16.12.2024 01:45

      Вроде бы все же не обязаны, а это рекомендованное поведение. Во всяком случае вижу часто, что не пропускают и никогда не слышал, чтобы кого-то штрафовали (в Люксе). Насчет того, что модель может быть некорректной - да, конечно. Например, я пренебрег фурами, это важный элемент. На фотке видно, что в правом ряду одни фуры, а они в несколько раз длиннее и если водители пропускают по правилу лесенки, то ряд с фурами будет двигаться гораздо быстрее, если... пропускают. И опять мы придем к тому же выводу, если водители честные, то правый ряд быстрее и пронырам выгоднее быть там и т.д. Вообще, похоже это универсальный закон. Если в социум с устоявшимися правилами попадают инородные элементы, в основе поведения которых лежат другие ценности, то до определенного момента они имеют преимущество. Поэтому, ну да, это просто задачка порожденная ситуацией, но вывод все же считаю релевантным


  1. CitizenOfDreams
    16.12.2024 01:45

    Вот это калифорнийцы эвакуируются от смертельного пожара:

    Скрытый текст

    А вот это москвичи едут на работу:

    Скрытый текст


  1. monowar
    16.12.2024 01:45

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


    1. nihole Автор
      16.12.2024 01:45

      Это да.. Но это так, задачка-шутка без претензий )


  1. randomsimplenumber
    16.12.2024 01:45

    Соседний ряд всегда едет быстрее, общеизвестно же. Но было бы сначала измерить, а потом придумывать этически-математическое обоснование.


    1. nihole Автор
      16.12.2024 01:45

      Замерить легко. Примечаешь какую-то машину из соседнего ряда и смотришь насколько она проедет быстрее тебя.


      1. randomsimplenumber
        16.12.2024 01:45

        Делать какие то выводы по результатам 1 измерения странно.


        1. nihole Автор
          16.12.2024 01:45

          Согласен. Поэтому это в хабе занимательных задач без претензий на открытие :)


    1. hard_sign
      16.12.2024 01:45

      Посмотрите первые кадры фильма «Офисное пространство» («Office Space»)


  1. Krasnoarmeec
    16.12.2024 01:45

    Как всегда, "трудности перевода".

    Обратимся к первоисточнику. Пункты 4 и 5 §7 StVO гласят, что "einordnen können" (пункт 4, "могут перестроиться", а не обязаны или должны) "wenn eine Gefährdung anderer Verkehrsteilnehmer ausgeschlossen ist" (пункт 5, "если нет опасности для других участников дорожного движения").

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

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

    UPD: И не дай вам Бог, последовать советам и, доехав до препятствия и включив поворотник, крутануть руль и перестроиться в соседнюю полосу не убедившись, что вас пропускают. "Я в интернете читал" у полиции не прокатит.


    1. randomsimplenumber
      16.12.2024 01:45

      пропустить вас не обязаны, но пропустят

      ДДД по немецки. Дураком быть иногда удобно, пока не пересекутся пути 2 дураков.


    1. Coffeemaniacs
      16.12.2024 01:45

      Думаю, что у полиции Люксембурга в принципе не прокатит отсылка к немецким ПДД )))

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

      Важно понимать, что правило застежки-молнии применимо лишь в том случае, если образовалась пробка, т.е. скорость автомобилей на полосе заметно ниже разрешенной. То есть, если вы хотите заехать на автобан и вклиниться в поток с разгоночной боковой полосы, то вы должны уступить дорогу, а не надеяться, что фуры будут оттормаживаться со скорости 90+ км/ч...

      (4) Если на дорогах с несколькими полосами движения в одном направлении невозможно непрерывное движение по одной полосе или если полоса заканчивается, транспортным средствам, которым запрещено продолжать движение, необходимо разрешить переезд на соседнюю полосу таким образом, чтобы эти транспортные средства находятся непосредственно перед началом полосы движения. Сужение может быть организовано поочередно после движения транспортного средства по сплошной полосе (метод застежки-молнии).
      (5) Во всех случаях смена полосы движения допускается только в том случае, если нет опасности для других участников дорожного движения. О каждой смене полосы движения необходимо заблаговременно и четко объявлять; Необходимо использовать указатели поворотов.


      1. Krasnoarmeec
        16.12.2024 01:45

        Да, Вы абсолютно правы. Просто хотелось внести ясность, так как многие комментарии определённо ошибочны и могут вызвать аварию.

        На сколько мне известно, правило застёжки-молнии есть не во всех европейских странах. В Латвии, судя по тому, что я видел и из рассказов местных, такого правила нет. Ну, или инфо уже устарело (десятилетней давности). А может культура вождения такая.

        Ну а Люксембург настолько маленький, что можно проехать незаметив, объезжая пробку на немецком автобане /s


    1. VADemon
      16.12.2024 01:45

      ist den am Weiterfahren gehinderten Fahrzeugen der Übergang auf den benachbarten Fahrstreifen in der Weise zu ermöglichen, dass sich diese Fahrzeuge unmittelbar vor Beginn der Verengung jeweils im Wechsel nach einem auf dem durchgehenden Fahrstreifen fahrenden Fahrzeug einordnen können

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

      Это повелительной тон, а не рекомендательный. Но это всё ещё мягче, чем muss, имхо. (ср. must - should)

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

      Подчеркну "прежде всего", это от 100% до 70%, а то и 50% в некоторых случаях, как следует из того же текста.


  1. vedmed007
    16.12.2024 01:45

    Это правило "ущербного" ряда, оно часто работает во всех известных мне странах когда скорости соседних рядов небольшие.

    Математике и пдд не поддается, просто большинство водителей "добрые"/дисциплинированные.