Комментарии 78
среднее время ожидания автобуса всегда одинаково: в нашем случае это 10 минут, независимо от того, сколько времени прошло с момента предыдущего автобуса!
Такого быть не может. Вероятность предыдущих событий не связана с вероятностью последующих
(например, если вы подкинули монетку 9 раз и все раза получили «решка», то подкинув монетку в 10-й раз, у вас все равно будет шанс ~50/50%. Хоть люди и любят присваивать подобным событиям «особенность», событие «1 1 1 1 1 1 1 1 1» не является более особенным, чем событие «1 0 1 0 0 0 1 0 0 1»)
Если автобус X всегда прибывает с интервалом в 10 минут, то у любого отдельно взятого человека в отдельно взятый день при рандомизированном времени прибытия, шанс попадания на каждый подобный автобус в любую минуту этого интервала (1-10 минут) будет равен 10% на каждую минуту.
А расчеты в статье показывают, что даже если человек знает, что автобус прибывает в точно заданные интервалы (12:00; 12:10; 12:20...), и человек прийдет на остановку за 1, 2, 3… минуты до отбытия, он все равно по какому-то магическому закону всегда будет ждать еще 10 минут.
Если автобус X всегда прибывает с интервалом в 10 минут
Статью стоило прочитать перед написанием возражений. Явно же написано — автобус приходит в среднем каждые 10 минут, а не всегда. И по коду это тоже видно.
И, в целом, модель, описанная автором статьи — весьма далека от реального мира.
Например, когда он «для точности» генерирует выборку на 1 млн. событий — в этой выборке у него на любом интервале времени может собраться произвольное количество приехавших автобусов. Тогда как в отношении более-менее правдоподобной модели с фиксированным расписанием и некоторым отклонением от него можно говорить, что-нибудь в духе «на любом 10-ти минутном интервале придёт от 0 до 2 автобусов».
В моей юности в маленьком городе никакой привязки не было. Доехал до конечной, отдохнул, развернулся и обратно. Потом ввели расписание отхода с конечной, но это уже когда мне лет 15 было.
Согласен, модель из статьи не совпадает с тем, что сейчас можно наблюдать в Москве, например. Но как модель — очень интересна, на мой взгляд. И внутри заданных условий — точна, ошибок в коде я не нашел.
в этой выборке у него на любом интервале времени может собраться произвольное количество приехавших автобусов
Где-то я такое видел. Ах, да, это же в Москве иногда автобусы/троллейбусы ездят стайкой, встречал вплоть до 5 особей, не надо мне тут про две)
На самом деле начало статьи очень желтушное — создается впечатление, что автор считает свою модель достоверной для реального мира, но если дочитать, становится понятно, что статья скорее посвящена тому, как себя развлечь и как не стоит относиться к моделированию
всегда будет ждать еще 10 минут
А где в статье сказано про подобное? Вроде сказано про «в среднем», не?
Кроме того, неужели в Сиэтле до сих пор так всё печально с транспортом?
Вот, например, в двух городах Словакии (в которых я жил), распределение транспорта идёт не интервалами, а по конкретному графику.
Пример из таблички на остановке: 12:10, 12:20, 12:30 и так далее.
И если один из рейсов опоздал, то приход следующего никак не зависит от предыдущего, и будет вовремя. И заметно, что люди знают конкретное время, когда должен подойти автобус, и собираются на остановке как раз к этому времени. (хотя, может это так кажется)
И, кстати, из нескольких сотен поездок, опозданий было на моей памяти 3 штуки.
мне кажется мы живём в разных мирах… каждый день вечером на павелецкой набережной на яндекс картах выжидаю автобус в офисном центре в тепле и уюте в 3 минутах ходьбы от остановки. Все автобусы видны со 100% точностью в реальном времени. Никто никуда не пропадает, едут предсказуемо. Ну в крайнем случае всегда можно посмотреть уровень пробки на маршруте и "предсказать результат", наблюдая за его движением пару минут.
PS ну может во мне говорит то, что я по сути водитель, и за много лет привык "видеть" скорость движения по карте, поэтому с предсказанием времени прибытия автобусов диссонанса никогда не ощущаю, и на расчетные минуты никогда не смотрю, а смотрю именно на местоположение и топологию местности.
В статье достаточно плоские расчеты.
Вспомнил, как я решил сэкономить время и силы, проехавшись на автобусе от Павелецкой. Местность мне особо не знакома, маршрут нашел на карте, все отлично показало. Но в итоге я, лишь минут 10 отъезжал от остановки.
Попробуйте Яндекс.транспорт. очень точно показывают. Подозреваю, что ваши другие приложения берут данные именно от него.
А навигаторы строят маршруты по расписаниям чаще всего.
Я наблюдал такое же, и в интернетах видел подобные отзывы. Яндекс где-то берет данные от службы автобусов/трамваев/..., а где-то, где данных никто не предоставляет, рисует трансопрт по расписанию.
Ваш коммент дал пинка и возможно яндексу стоит уточнять, получает ли он данные для конкретного города или строит на основании расписаний, возможно мои 3:3 — это просто хорошая работа водителей автобусов?
Тогда не понятно, откуда берутся автобусы-фантомы. Например, по карте он едет, но фактически его нет, но следующий за ним по карте тот же номер приезжает как нарисовано. Пояснить это "объездом" не получится.
А ещё автобусы-фантомы могут пропасть с карты, а потом появиться в том же месте и бодро поехать дальше.
А ещё есть автобусы-призраки. Это которые по факты приезжают на остановку, но на карте его нет. Садишь в него, едешь и через какое-то время бац и он появляется на карте и движется ровно там, где едешь ты
На это накладывается то, что чистые координаты всегда передаются с некоей погрешностью.
Вот и получаем: данные поступают относительно редко (допустим каждые 20 секунд), данные могут вообще не поступать (4G отвалился, деньги на симке кончились, нет связи, тоннель, помехи итд...) и получается, что Яндексу нужно дальше самому додумывать, достраивать данные.
Например — заехал автобус в тоннель. Тоннель может быть длинным. А еще там может быть пробка. Надо примерно пытаться предсказывать где сейчас едет автобус. Предсказания и позволяют двигать автобус до тех пор, пока не придут данные.
Таким образом очевидно, что призраки — это когда автобус выехал на линию, включил свой передатчик, ехал какое-то время, и от него перестали поступать данные. Автобус не посылал сигнал «съехал с линии», либо API не послала его. Яндекс всё-еще думает что автобус где-то едет, и делает предположение где он сейчас может быть, делая прогноз.
Возможно, это были детские болячки, попробую еще раз.
Достаточно удобного соотношения сторон и более менее современной ОС.
Да, никто не запретит вам использовать вашу любимую старую Нокию н95, но серьезно, вы ведь не будете винить всех вокруг, что гужевые повозки в 2018 обязаны двигаться как можно правее и желательно не по асфальту, а в центре города уже и овса не купишь
Работает плохо. Мало того, что часто вижу как приезжает автобус, которого не видно в системе, так и те, что видно не позволяют планировать.
Автобус приезжает, высаживать пассажиров и уезжает.
Или пишет, что будет через 5 минут, прихожу с сыном на остановку вовремя, а автобус ещё стоит на светофоре через Ленинский в пятницу 10 минут и мы стоим на ветру мёрзнем.
На многих остановках есть табло, которые показывают, когда придет автобус. Насколько я понимаю, эти табло используют то же API, что и телефоннное приложение.
если средний интервал между автобусами составляет N минут, то среднее время ожидания для пассажиров составляет 2N минутТут же двойка лишняя. Иначе бы получалось, что при среднем интервале движения в 10 минут среднее время ожидания — 20 минут. Явно не сходится.
Среднее время ожидания — это всех пассажиров спросили, сколько они ждали и разделили на количество пассажиров.
Логично, что в наиболее длинные интервалы на остановки успевает подходить больше народа.
Хотя N*2 для меня тоже контринтуитивно.
Допустим, у нас интервалы равномерно распределены в отрезке от 1 до 10 минут (5.5 в среднем). Допустим, поток пассажиров на остановку постоянен и равен 1 в минуту. Тогда число пассажиров на каждую посадку равно интервалу между текущей и предыдущей. То есть, 1 пассажир ждал 1 минуту, 2 — 2 минуты и тд. Тогда если ихспросить, то среднее время будет 385/55==7.
В одном месте написано:
При ожидании автобуса, который приходит в среднем каждые 10 минут, ваше среднее время ожидания будет 10 минут.
А в другом месте:
если средний интервал между автобусами составляет N минут, то среднее время ожидания для пассажиров составляет 2N минут
Логично, но под эту логику написан код. Если в среднем 10 минут, то и среднее ожидание 10 минут выходит по этому коду и по модели из статье. N*2 явная опечатка в статье, так как с остальной статьёй никак не сходится.
P.S. адаптивная («интеллектуальная») система управления трафиком, Москва, Зеленоград делает город максимально не для людей.
Но если вы выходите не совсем случайно, то возможны перекосы в распределении изза совпадений с пересменками в депо там и тп.
5 минут раньше раньше или 5 минут позже, я каждый раз опаздывал на уходящий трамвай на 20 секунд. Я всегда видел, как он уезжает.Та же фигня с «моими» автобусами, всё хотел собрать статистику и разобраться, почему так происходит. Еще бесит, что когда ждешь относительно редкий автобус (который приходит, скажем, раз в 12-15 минут), он очень часто сперва появляется на той же остановке напротив (идущий в противоположном направлении).
При ожидании автобуса, который приходит в среднем каждые 10 минут, ваше среднее время ожидания будет 10 минут.Видимо это из-за того что иногда интервал был более 70 мин, а иногда ~0 мин (что можно считать за один автобус), что в среднем дает 10 мин. С таким же успехом, можно взять «экспотенциально-случайный» интервал и получить 15 мин ожидания, при среднем 10 мин интервале автобусов.
Но если взять интервал за 10 мин +-2мин (как я предполагал до прочтения), то среднее время ожидения будет ~5 мин.
Вот допустим, 50% автобусов ходит с интервалом в 16 минут, а 50% автобусов с интервалом в 4 минуты. В среднем это дает 10 минут. Ну вот представим, что есть автобус, а следующий — через 4 минуты, следующий — через 16, следующий — через 4, следующий — через 16 и так далее. В течении 20 минут гарантированно два автобуса.
Теперь представим, что на остановку приходит 1 человек ровно через минуту.
То есть в автобус, который пришел спустя 4 минуты после предыдущего село 4 человека, а в автобус, который пришел через 16 минут после предыдущего село 16 человек.
Автобус, который пришел через 4 минуты после предыдущего ждали в среднем 2 минуты.
Автобус, который пришел через 16 минут после предыдущего ждали в среднем 8 минуты.
Дальше. 4 человек ждали в среднем 2 минуты, а 16 человек ждали в среднем 8 минут.
(4 * 2 + 16 * 8)/20 = 6.8. То есть хотя каждые 20 минут приходило 2 автобуса, с равными интервалами и средним интервалом между автобусами в 10 минут. Среднее время ожидания оказалось не 5 минут, а почти 7.
Я понимаю, что в реальной жизни такой сферической ситуации не будет, но, как по мне, эффект очень интересный.
А так, тут больше заслуга/вина автора, который выделил жирным кликбейтовое утверждение до хабраката, а затем потратил кучу букв, чтобы как-то оправдаться, что вообще-то не совсем Пугачёва, и не совсем умерла, а кто так считал — не прав.
По-хорошему, надо было сначала взять файл реальных данных и посмотреть, что там гауссово распределение. А потом уже писать программу.
А вне часа пик — все как по маслу, но и
Для начала нужно ввести неотвратимость наказания и огромные штрафы. Во Вроцлаве, например, ОТ ходит четко по расписанию, причем, в основном, по обычным полосам движения. Но держаться надо крепко — ибо гоняют нещадно
Выделенные полосы для ОТ надо делать в городах, обязательно.
И не чистить их зимой от снега, прям как на фотографии выше. На дороге постоянный поток машин хоть как-то прокатывает в снегу колеи, на выделенках такого нет. Как же "весело" было ездить после снегопадов в автобусах в Москве — автобус сначала не может прижаться к остановке (там каша из снега), потом не мог от неё отъехать — задние колёса буксуют в снегу, иногда корму вообще на встречку выносит.
Если говорить про Seattle то там снега почти не бывает (т.е. далеко не каждую зиму может выпасть хоть какой-то снег).
При ожидании автобуса, который приходит в среднем каждые 10 минут, ваше среднее время ожидания будет 10 минут.
Это никак не относится к маршруткам бегающим на просторах России. У них какие свои уникальные законы движения.
Это то, что иногда называют парадоксом времени ожидания.
Я бы назвал это российским парадоксом ожидания.
Тогда формула будет выглядеть так: bus_arrival_times = M * tau * np.sort(rand.rand(N))
Чтобы убедить себя в разумности этого, сначала смоделируем поток автобусов, которые прибывают в среднем за 10 минут.
N = 1000000 # number of buses
tau = 10 # average minutes between arrivals
rand = np.random.RandomState(42) # universal random seed
bus_arrival_times = N * tau * np.sort(rand.rand(N))
Не все тут знают numpy
, что значит N * tau * np.sort(rand.rand(N))
? Почему N
участвует тут дважды? Какое распределение задержки с заданным средним мы эмулируем? В любом случае более формальная постановка задачи была бы очень кстати.
Кроме того на чем основан выбор именно такого распределения? Мне кажется мы можем получить любой результат выбирая распределение как нам нравится.
Парадокс времени ожидания, или почему мой автобус всегда опаздывает?