(Jean-Claude Mézières)
Ссылка на Часть1: «Предварительный анализ» (ру / eng )
Ссылка на Часть2: «Эксперименты на торе» (ру / eng )
Cсылка на «Часть3: Практически значимые решения» (ру / eng )
Cсылка на «Summary» (ру / eng )
1.1 Центральный результат
Если я только не допустил критической ошибки, то мне удалось обнаружить удивительную по своим характеристикам схему пассажирских перевозок. Представьте себе такую картину: вы находитесь в большом городе и вам нужно добраться из точки A в точку B. Все, что от вас требуется — это дойти до ближайшего перекрестка и на вашем смартфоне или установленном там специальном терминале указать точку назначения. Через несколько минут к вам подъедет небольшой, но просторный автобус. Автобус, в который можно войти, не пригибаясь, внести с собой детскую коляску, велосипед или даже виолончель, в котором всегда можно сесть и вытянуть ноги. Этот автобус довезет и высадит вас на ближайшем от точки B перекрестке. Вы доберетесь туда без каких-либо пересадок, а все путешествие, включая ожидание на остановке, займет всего на 25-50% времени больше, чем если бы совершили его на личном автомобиле. По моим оценкам в условиях современных мегаполисов такой вид транспорта будет достаточно массовым, чтобы цена одной поездки на нем была близка к стоимости билета на обычный городской автобус.
На удивление, рассуждения, которыми я пришел к этим результатам, опираются на сравнительно простую математику и, наверное, даже какой-нибудь талантливый старшеклассник при удачном стечении обстоятельств сумел бы догадаться до них сам. Прикладная значимость темы и не высокие требования к уровню математики, побудили меня постараться написать статью так, чтобы читатель смог пройти тропой открытий, познакомиться с некоторыми исследовательскими приемами и получить удачный пример, на котором он бы смог объяснить своим детям, для чего нужна математика и как ее можно применять в повседневной жизни.
1.2 Изначальная задача
Забавна сама история того, как я взялся за это исследование и то, как я обнаружил самый ценный его результат. Позвольте мне об этом вкратце рассказать. Настоящая статья — не первая моя работа в области проблем городского транспорта: я уже публиковал две или три (№1, №2, №3) — смотря как считать. Иногда по их темам ко мне обращаются студенты и разной руки предприниматели. Примерно полгода назад мне поступил звонок от одного очень амбициозного молодого человека. Он спросил, не могу ли я ему помочь придумать способ, чтобы простым (и не очень) людям стало проще быстрее и удобнее добираться до работы и возвращаться оттуда домой. Его исходная идея была в том, что работников можно развозить чем-то вроде школьного автобуса и на этой основе создать новый более удобный вид общественного транспорта. Идея, как вы понимаете, была довольно грандиозной и звучала заманчиво, однако в тот момент я работал на своей книгой и мне хотелось избежать серьезной увлеченности какой-либо другой задачей. Все же я не мог совсем отказать и предложил этому молодому человеку свою помощь в том, чтобы формализовать его задачу и подыскать тех, кто был бы в состоянии ее решить. Правда, как это часто случается с предпринимателями (в чем я их нисколько не виню — сам был таким), автор этой замечательной идеи из общения куда-то пропал. Да… автор-то, может быть, и пропал, только вот его идея на тот момент уже овладела моими мыслями и, отложив все дела, я принялся ее изучать.
Довольно быстро я нашел неплохое решение — совместное такси с одной пересадкой, ему посвящена одна из глав этой работы. Тогда я был почти уверен, что лучшего решения у задачи нет и пытался это строго доказать. Вот только доказательство у меня все никак не получалось. В конце концов я был вынужден поставить под сомнение гипотезу о “невозможности” и попытался построить для нее гипотетический “контрпример”. Каково же было мое удивление, когда такой контрпример действительно взял и построился.
В этом цикле я собираюсь опубликовать 3 статьи: текущая — «Предварительный анализ», следующая — «Эксперименты на торе», последняя — «Практически значимые решения». Их содержание является скорее не описанием какого-то одного конкретного результата, а журналом шагов его направленного поиска. Выбирая такой способ повествования, я хотел, чтобы каждый следующий шаг был для читателя почти очевиден, а финальный результат не казался чем-то удивительным.
Чтение статьи займет у вас какое-то продолжительное время. Если формулы отображаются неправильно, попробуйте несколько раз перезагрузить страницу.
2. Модель города и модель внутригородских суточных миграции
2.1 Идеализация как исследовательский метод
В этой статье нас будут занимать только такие проблемы различных видов общественного транспорта, которые возникают в них из-за ограничений физического или математического характера и поэтому в принципе не могут быть устранены. Преодолимые проблемы, причиной которых являются инженерные ошибки, несовершенство общественного уклада, незнание или недомыслие — оставим специалистам других областей. Лучший способ увидеть, какие из проблем той или иной схемы пассажирских перевозок являются для нее непреодолимыми — это посмотреть на ее работу в условиях идеального воображаемого города. Если некоторый вид общественного транспорта в идеализированных условиях имеет какие-то недостатки, то, понятное дело, в реальных условиях они никуда от него не денутся.
2.2 Идеальный клеточный город
Предположим, что перед вами стоит задача спроектировать новый город с удобной транспортной системой. Вы не сделаете большой ошибки, если выберете для него клеточную, или как ее чаще называют — манхэттенскую планировку улиц. В идеальной манхэттенской планировке уличные дороги образуют правильную ортогональную сеть, разбивая город на одинаковые по форме и размеру кварталы. В одной из моих прошлых работ я показывал, что городах с манхэттенской планировкой все уличное движение можно перевести в режим зеленых волн (ссылка). Если город находится в этом режиме, то любой водитель, который поддерживает рекомендованную скорость и движется только вперед, сможет добраться до конца улицы, постояв на светофоре самое большее один раз. В другой моей работе вы найдете доводы, что из всех пока что встречающихся планировок, клеточная наименее всего способствует образованию пробок. Эти замечания должны объяснить читателю, почему в качестве идеализированных я рассматриваю именно клеточные города.
Основной нашей моделью будет прямоугольный клеточный город с квадратными полукилометровыми кварталами и двусторонним уличным движением. Длина квартала в полкилометра выбрана не случайно — при меньших длинах трудно организовать зеленые волны, а при большей — слишком большими становятся расстояния, которые нужно проходить пешком. Альтернативная модель — это клеточный город с чередующимся односторонним движением и квадратными кварталами по 250 метров. Она будет фигурировать главным образом в упражнениях. В плане оптимальности обе модели по большому счету эквивалентны друг другу. В последних главах величина и соотношение сторон кварталов вообще не имеют значения, если только эти кварталы не слишком велики.
Еще одно упрощение, к которому я вскоре прибегну — это сворачивание плоского прямоугольного города в правильный тор. Дело в том, что у прямоугольника есть край и это делает положения точек на нем не равнозначными: какие-то точки расположены ближе к центу, а какие-то — к периферии. Из-за этой неоднородности рассуждения наполняются оговорками, а вычисления становятся излишне технически сложными. У тора нет края и все его точки находятся в абсолютно равных условиях. Так же, как и на сфере, подходящим “вращением” любую точку тора можно наложить (перевести) в любую другую его точку. Общественный транспорт в тороидальном клеточном городе во всем, что не касается особого поведения у края, встречается ровно с теми же проблемами, что и общественный транспорт в обычном “плоском” городе. Что еще более важно, эти проблемы в обоих случаях имеют похожие решения. Для тех читателей, которым понятие (плоского) тора в новинку, я добавил в статью две ознакомительных главы.
2.3 Миграционная модель. Город с равномерным доступом
Сколько-нибудь детальный анализ пассажирского городского транспорта вряд ли возможен, если вы не знаете о том, как, куда и насколько часто жители этого города совершают свои поездки. В этой статье мы будем придерживаться следующих наиболее простых предположений:
1) за одно и тоже время внутри любого квартала желание совершить путешествие в другую точку города возникает у примерно одно и того же числа людей.
2) для случайно выбранного путешествия независимо от его начальной точки, его точкой назначения с равной вероятностью будет служит любая другая точка города (вероятность точке стать концом путешествия равномерно распределена по всему городу).
Такую миграционную модель условимся называть “городом с равномерным доступом”.
Безусловно, наша миграционная модель является чисто академической, полученные на ее основе результаты — оценочными. В настоящем городе миграция людей может быть подчинены совсем другим законам, поэтому внедрение какой-либо из описанных в этой статье транспортных схем должны предшествовать тщательные полевые измерения, а сама схема к результатам этих измерений правильным образом адаптирована.
—
3. Неустранимы недостатки некоторых традиционных видов общественного транспорта
Прежде чем пытаться создать новые виды общественного транспорта, попытаемся разобраться в преимуществах и недостатках уже существующих.
3.1 Простой городской автобус
Под простым автобусом мы будем понимать схему работы не только обычных городских автобусов, а будем относить сюда еще и такие виды транспорта как троллейбус или трамвай. Все это — наиболее консервативные виды массового транспорта и их работа подчиняется одному и тому же принципу: некоторое множество транспортных средств с достаточно вместительными салонами движутся по заранее намеченным маршрутам от остановки к остановке и на каждой из них подбирают или высаживают какое-то количество своих пассажиров.
Пусть у нас имеется клеточный город с полукилометровыми кварталами и двусторонним движением. Очевидный способ создать в нем сеть маршрутов простого автобуса — это запустить по каждой его улице свой маршрут так, чтобы автобусы следовали по нему в обе стороны из края в край с интервалом в несколько минут. Что касается остановок, то их разумнее всего расположить на перекрестках: по одной для каждого из четырех направлений. Такое размещение остановок делает пересадку с одного направления на другое особенно быстрым. Описанную только что транспортную сеть в узком смысле мы и будем называть простым автобусом.
рис 2
Как вид транспорта простой автобус имеет немало приятных свойств:
1) простая логика построения маршрута;
2) от любой остановки до любой другой доехать можно всего с 1-ной пересадкой;
3) если вы уже находитесь на улице, то остановка в любом из направлений расположена от вас не далее, чем в половине длины квартала.
4) из наблюдений уже в небольших по населению городах среднее число пассажиров в салоне простых автобусов оказывается достаточно большим, чтобы сделать поездку на них относительно дешевой.
Однако у простого автобуса при всех перечисленных его достоинствах имеется один очень существенный недостаток: даже в теории он, ну просто, о-о-очень медленный и, похоже, исправить это никак нельзя. Следующие рассуждения показывают почему.
Пусть максимальная разрешенная скорость движения в городе равна стандартным 60 километрам в час ( метров в секунду или километр в минуту). Отъезжая от предыдущей остановки, автобус не может развить максимальную скорость мгновенно, точно также он не может мгновенно остановиться перед следующей — в обоих случаях ему понадобится некоторое время двигаться с ускорением. Таким образом путь автобуса между соседними остановками можно разделить на три участка: участок ускорения, участок торможения и средний участок, который автобус проезжает с постоянной максимально разрешенной скоростью.
Гугл говорит, что комфортным для пассажиров является ускорение, при котором за секунду автобус увеличивает (или уменьшает) свою скорость на м/с. Примем для расчётов, что ускорение автобуса на участках разгона и торможения постоянно и равно м/с за секунду. При таких вводных автобусу потребуется секунд, чтобы набрать полную скорость и столько же, чтобы сбросить ее до нуля. Постоянство ускорения автобуса во время разгона и торможения означает, что графики зависимости его скорости от времени в эти периоды будут наклонными прямыми линиями. Вычисляя площадь под этими графиками, мы находим, что участок разгона и участок торможения имеют длину метра, в месте метров. Расстояние между соседними остановками мы приняли равным длине квартала, то есть метрам. Отсюда следует, что средний участок, на котором автобус имеет максимальную скорость, в длину равен метрам и будет преодолён им за секунд. В итоге мы получаем, что весь полукилометровый путь от остановки к остановке автобус проедет в лучшем случае за секунд. Даже если бы простой автобус не задерживался на самих остановках, его средняя скорость не превысила бы м/с.
рис 3
Теперь оценим, какой будет средняя скорость автобуса с учетом длительности его остановок. Разные источники говорят, что среднее время посадки или высадки одного пассажира находится в пределах секунд. Возьмем за оценку . Пусть на каждой остановке входят и выходят в среднем человека, тогда процесс посадки-высадки в среднем потребует примерно -ти секундной стоянки, а средняя скорость окажется не больше м/с. Получается, что уже находясь внутри простого автобуса, вы будете перемещаться по городу в среднем более чем в два раза медленнее по сравнению личным автомобилем или персональным такси.
Упражнение: если вы ознакомились со статьей, посвященной зеленым волнам, покажите, что работу автобусов можно встроить в график зеленых волн так, что они будут проезжать все перекрестки без какого-либо ожидания, однако это возможно лишь в том случае, если средняя скорость движения автобусов нацело делит скорость распространения зеленых волн.
3.2 Автобусная сеть, которая включает в себя простые и транзитные маршруты
Можно ли сделать городские автобусы быстрее? Чтобы ответить на этот вопрос, давайте распишем, из чего складывается время путешествия автобуса между двумя достаточно удаленными точками и его маршрута.
рис 4
Как видно из рисунка 4 выше это время можно представить как сумму трех слагаемых:
— это слагаемое равно времени, которое ушло бы на то, чтобы проехать путь между и с максимально разрешенной скоростью .
“число остановок между и ” “время однократного разгона/торможения”. Каждая остановка автобуса требует от него сначала торможения, в сумме они приводят к потере примерно -ти секунд;
“число пассажиров, которые между и вошли или вышли из автобуса” “штраф посадки/высадки одного пассажира”.
В этих обозначениях средняя скорость автобуса на участке - будет даваться выражением:
Если мы хотим, чтобы была как можно выше, то должны сделать так, чтобы значения слагаемых , и стали как можно меньше.
На слагаемое мы повлиять никак не можем: отрезок и максимальная разрешенная скорость — такие, какие они есть.
Второе слагаемое получается произведением штрафа однократного разгона/торможения на число остановок, которое сделает автобус между точками и . Поскольку максимально разрешенное ускорение является заданной величиной, однократный штраф разгона/торможения мы поменять не можем. Зато, можем уменьшить число остановок между точками и , если расставим их пореже.
Третье слагаемое получается произведением времени посадки/высадки одного пассажира, величина которого есть константа на суммарное число людей, которые вошли или покинули автобус на участке . Среднее число людей, которые входят или покидают автобусы маршрута за единицу времени на остановках между и , почти никак не зависит от того, на какой дистанции расставлены эти остановки. Действительно, если альтернативного транспорта нет, то всем, кому надо уехать из маршрутом , в конце концов сядут на свой автобус будь там хоть остановок, хоть . То же самое верно и для тех, кто этим маршрутом в собирается приехать.
Пусть из участка маршрутом в среднем уезжает человек в минуту, а приезжает — человек в минуту. Если интервал движения автобусов маршрута равен минут, то на участке в каждый из них войдет и выйдет в среднем пассажиров (докажите!). Уменьшая интервал , мы можем уменьшить и время, которое автобусу придется потратить на посадку/высадку своих пассажиров между точками и .
И так, если мы хотим увеличить среднюю скорость автобусов на маршруте , то интервал между ними нужно сделать как можно меньше, а дистанцию между остановками — как можно больше. Однако, здесь нас ждут логичные ограничения. Уменьшение во сколько-то раз временного интервала между автобусами, во столько же раз уменьшает и среднее число пассажиров в их салоне, а значит увеличивает себестоимость поездки для каждого отдельного пассажира. В свою очередь увеличение во сколь-то раз расстояния между соседними остановками, во столько же раз увеличивает среднюю длину пешего пути, который придется преодолеть пассажиру, чтобы сесть на нужный ему автобус, или, чтобы добраться до финальной точки своего путешествия от того места, где он с автобуса сойдет. Средняя длина пешего пути в одном путешествии по порядку величины равна расстоянию между остановками, поэтому просто так последнее нельзя сделать чересчур большим.
рис 5
От проблемы, что цена поездок растет при уменьшении интервала движения автобусов, избавится, по всей видимости, нельзя, а вот для проблемы редко расставленных остановок — напротив есть довольно очевидное и простое решение. Это решение заключается в том, чтобы на каждой улице иметь два дублирующих друг друга автобусных маршрута: один с часто расположенными остановками и как следствие “медленный”, а другой — с остановками, расположенными на большом удалении друга от друга, и поэтому потенциально достаточно “быстрый”. Медленные маршруты и курсирующие по ним автобусы мы будем называть локальными, быстрые — транзитными. Естественно потребовать, чтобы остановки локальных автобусов были расставлены на всех перекрестках по маршруту следования, а вот транзитные автобусы останавливались только на каждом -том перекрестке вдоль их пути (рисунок 6).
рис 6
Пусть в городе действуют локальные и транзитные автобусные маршруты как на рисунке выше. Подумаем тогда, какие действия должен совершить путешественник, чтобы добраться из точки в достаточно удаленную от нее точку ?
Если обе точки лежат на на одной улице и не занимают какого-то особого положения, то достаточно быстрый способ попасть из в будет таким:
Сперва от точки нужно дойти до ближайшего к ней перекрестка и сесть там на локальный автобус в сторону ближайшей остановки , на которой останавливаются транзитные автобусы. Доехав до выйти и пересесть уже на транзитный автобус, который направляется в сторону точки . На этом втором автобусе следует ехать до той его остановки , которая ближе всех остальных расположена к точке . В общем случае не является ближайшим к перекрестком, поэтому придется еще раз сесть на локальный автобус в сторону точки и выйти на ближайшем к ней перекрестке . Оставшийся путь следует проделать пешком.
Схематично алгоритм такого путешествия можно описать как “л->т->л”.
Упражнение: является ли описанный выше алгоритм наибыстрейшим по средней длительности путешествия между случайными точками и . Если нет, то как его нужно изменить, чтобы он таковым стал? Какую информацию о положении путешественника и автобусов использует ваше решение?
рис 7
В общем случае, когда и не лежат на одной улице и не занимают на них какого-то особого положения, путешествие из A в B может быть выполнено по схеме: “л->т->л->л->т->л” (рисунок 7). Как вы видите, сценарий путешествия выходит не самым простым и включает в себя целых 5 пересадок. В действительности, если немного подумать и расположить остановки транзитных автобусов немного иначе (рисунок ниже), то максимально количество пересадок, которое потребуется от пассажира, можно сократить до 4-рех.
рис 8
Всякую сеть автобусных маршрутов, выполненную по образцу рисунка 8 мы будем называть “(городским) автобусом с транзитными маршрутами”.
Упражнение: найдите все возможные схемы путешествия на автобусе с транзитными маршрутами между точками общего (не особого) положения. Попробуйте описать и классифицировать все особые случаи, вроде путешествия вдоль одной улицы, или от точки рядом с остановкой транзитного автобуса.
Давайте хотя бы грубо оценим, каким должно быть , чтобы средняя скорость транзитных автобусов стала близкой к стандартным километрам в час (к км/мин).
На перегоне между соседними остановками транзитный автобус имеет один участок разгона и один торможения. Как мы посчитали выше, на этих участках он теряет в сумме секунд. Пусть при каждой остановке транзитный автобус подбирает и высаживает x человек, тогда время стоянки секунд. Если остановки этого автобуса расположены на каждом -том перекрестке, а длина кварталов равна половине километра, то . Из всего сказанного следует, что формулу средней скорости автобуса можно записать как:
Близкой к максимальной средняя скорость транзитного автобуса будет только в том случае, если:
Следовательно мы можем воспользоваться приближением:
и переписать как
.
Последняя формула показывает, что нет особого смысла время посадки-высадки пассажиров пытаться сделать сильно меньше, чем штраф разгона/торможения — все равно средняя скорость автобуса от этого сильно уже не увеличится. Для простоты будем считать интервал между транзитными автобусами подобранным так, что секунд. Такая величина соответствует примерно вошедшим и вышедшим пассажирам на каждой остановке. Подставляя сек, сек в получаем неравенство на :
или
.
Если мы хотим, например, чтобы транзитные автобусы двигались со средней скоростью не меньше км/ч ( от ), то должно быть равным по крайней мере , то есть между соседними остановками транзитного автобуса должно быть порядка километров. Эта оценка позволяет указать минимальный размер города, в котором автобусы с транзитными маршрутами вообще имеют смысл: что-то около транзитных перегонов или км в длину. Квадратный город таких размеров при стандартной плотности в жителей на квадратный километр будет иметь население примерно в тысяч человек.
По моим беглым оценкам, в городах размером км (населением миллионов человек) большая часть маршрута типичных путешествий будет преодолеваться именно за счет транзитных автобусов, а среднюю скорость таких путешествий реально приблизить к ( м/с или км/ч). Казалось бы, вот он — идеальный транспорт мегаполисов, но 4 пересадки — это все-таки не то, с чего бы я мечтал начинать свой день!
Упражнение: подумайте, имеется ли возможность вместо транзитных автобусов с той же целью использовать подземное метро. С какими преимуществами и недостатками сопряжены обнаруженные вами решения? Попытайтесь сделать численные оценки.
3.3 Персональное такси
Быстро, часто очень удобно, но при этом очень дорого. Занимает много места на дороге, выделяет много выхлопных газов в расчёте на пассажиро-километр.
—
4. Такси для совместных поездок между парами городских районов
4.1 Идея совместных поездок.
Персональное таки — это, пожалуй, самый быстрый вид городского транспорта, но, без сомнения, и самый дорогой: зачастую пассажир всего один, а везет его целый автомобиль еще и с нанятым водителем. Отсюда очевидна и идея, как сделать поездки на такси дешевле: достаточно придумать способ, который бы позволил машине такси перевозить несколько пассажиров разом. Если такой способ будет найден и внедрен, то стоимость каждого километра пути, пройденного автомобилем такси, может быть поделена между всеми пассажирами, которые в это время находились в его салоне. Чем больше среднее число пассажиров в салоне, тем дешевле должна стоит поездка для каждого из них.
Однако у идеи совместных поездок есть и очевидное препятствие: если машина совместного такси будет подбирать каждого, кто голосует перед ней на дороге, то в ее салоне могут оказаться люди, которым совсем не по пути. Чтобы развезти таких пассажиров по их их пунктам назначения, придется кататься из одного конца города в другой, впустую расходуя свое рабочее время и время своих клиентов.
рис 9
Очевидный способ бороться с проблемой не подходящих друг к другу попутчиков состоит в том, чтобы всякий раз пытаться заполнить машину такси такими пассажирами, для которых будут близки как точки их посадки, так и точки высадки. Ниже подробно рассматривается одна из схем совместного такси, которая реализует эту идею.
4.2 Регламент работы
Пусть у нас есть клеточный город размера . Вертикальными и горизонтальными прямыми разобьем его на решетку одинаковых по размеру квадратных клеток . Идея разделения на клетки состоит в том, чтобы попутчиками могли становиться только те люди, которые из одной и той же клетки направляются в одну и ту же другую. Для простоты можно даже считать, что перевозкой пассажиров между каждой конкретной парой клеток занимается свой отдельный небольшой парк машин, а посадка и высадка пассажиров производят только на перекрестках.
Когда мы имеем дело с персональным такси или личным транспортом, то каждая поездка от перекрестка к перекрестку может быть выполнена по кратчайшему г-образному маршруту со средней скоростью близкой к максимально разрешенной в городе. За возможность перевозить по несколько клиентов сразу машине совместного такси, вообще говоря, придется заплатить удлинением и усложнением маршрута внутри стартового и финишного квадратов. Конечно, существуют ситуации, когда совместная поездка по быстроте почти не уступает поездке на персональном такси. Например, если у группы попутчиков точки посадки все расположены вдоль одной улицы, точки высадки также все расположены вдоль одной (возможно, другой) улицы, то маршрут совместной поездки для них можно проложить так, чтобы каждый из попутчиков был доставлен в точку своего назначения по наикратчайшему для себя маршруту.
Однако, описанная только что ситуация — это скорее исключение, чем правило. В общем случае места посадки и места высадки путешествующих вместе пассажиров будут хаотично разбросаны внутри стартового и финишного квадратов. Чтобы их сначала собрать, а затем развести, машине такси придется двигаться извилистым маршрутом, сбрасывать скорость на поворотах и проезжать лишние мили. Из-за всего этого путешествие на совместном такси, очевидно, будет длиться в среднем дольше, чем то же путешествие на такси персональном. Рисунок 10 показывает, что довольно типичной является ситуация, когда даже двух клиентов нельзя совместно перевезти так, чтобы не увеличить длину путешествия по крайней мере для одного из них. Давайте попробуем оценить, на сколько в среднем совместное межклеточное такси медленнее персонального или личного автомобиля.
рис 10
Лемма о маршрутах машин межклеточного такси:
Предположим, что имеются n путешественников, которых нужно собрать в “стартовом” квадрате и развести по точкам их назначения в “финишном” квадрате , причем машина такси, которая должна это сделать, уже находится в . Для любого маршрута , который решает задачу совместной перевозки путешественников, существует такой маршрут , что:
1) маршрут также решает задачу перевозки этих путешественников;
2) маршрут задает тот же самый порядок посадки и высадки путешественников, что и , но при этом является одним из самых коротких среди маршрутов с таким порядком;
3) при использовании машиной такси маршрута длина поездки каждого ее пассажира оказывается такой же или короче, чем при использовании маршрута ;
4) весь маршрут можно разделить на три непрерывных участка: начальный, средний и конечный, так, что начальный участок будет целиком лежать в , конечный — целиком лежать в , а средний — являться кратчайшей ступенчатой кривой между концом начального участка и началом конечного.
5) если квадраты и не находятся друг с другом на одной горизонтали или на одной вертикали, то маршрут можно выбрать так, чтобы его средний участок представлял из себя -образную кратчайшую, проведенную между ближайшими друг к другу (угловыми) перекрестками квадратов и .
рис 11
Доказательство.
Идея доказательства 1)-4) состоит в том, чтобы каждый участок между двумя остановками машины такси (точками посадки или высадки пассажиров) заменить -образной кратчайшей. Теперь что касается 5). Последовательными вращениями карты на градусов добьемся, чтобы квадрат был строго выше и строго правее . Пусть — это построенный по маршрут из -образных кратчайших, о котором мы говорили выше. Одним из звеньев маршрута является -образная кратчайшая между последней точкой посадки клиентов в клетке и первой точкой высадки клиентов в клетке . Заменим в участок на ломаную , проведенную согласно правилу: по -образной (возможно, вырожденной в отрезок или даже в точку) кратчайшей от до самого верхнего правого перекрестка в , затем по -образной (возможно, вырожденной) кратчайшей в самый нижний левый перекресток в , и наконец оттуда снова по по -образной (возможно, вырожденной) кратчайшей в точку . Легко видеть, что \gamma тоже кратчайшая между и , а получившийся после замены на маршрут удовлетворяет каждому из пунктов 1)-5).
4.3 Алгоритм обхода
Пусть и — это две произвольные клетки, выбранные из разных строк и разных столбцов решетки . Последовательными поворотами карты на градусов добьемся того, чтобы клетка оказалась строго выше и правее . Самый верхний правый перекресток в обозначим как , в то время как самый нижний левый в — как . Лемма о маршрутах позволяет считать, что все машины такси, курсирующие между и , покидая , проезжают через перекресток , а прибывая в , проезжают через перекресток .
Представим теперь, что в указанной нами точке клетки появилась пустая машина, которая должна выполнить рейс между и и прибыть затем в указанную нами точку клетки . Будущие пассажиры этой машины, пусть их число равно n, случайным образом разбросаны по всем перекресткам внутри . Какого алгоритма обхода должна придерживаться машина такси, чтобы их всех подобрать? Аналогично, какого алгоритма она должна придерживаться, чтобы развести всех этих пассажиров по пунктам их назначения после того, как она достигнет клетки . Понятно, что оба этих алгоритма должны по возможности минимизировать путь машины внутри клеток и . Отыскать оптимальный алгоритм обхода мне не удалось (быть, может вы придумаете, как это сделать), но построить приемлемое решение не так уж сложно.
Чтобы упростить расчёты и рассуждения, предположим, что длина квадратов , на которые поделен город, много больше длины кварталов. Если это предположение верно, то через каждый клетку пройдет сразу много как горизонтальных, так и вертикальных улиц, причем по сравнению с размером клетки расстояние между соседними улицами будет мало. Последнее позволяет приближенно считать, что горизонтальная и вертикальная дороги проходят через каждую точку клетки и каждая такая точка может быт местом посадки или высадки пассажиров такси. Еще одним следствием такого упрощения станет то, что перекресток будет находиться в самом правом верхнем углу , а перекресток — в самом нижнем левом углу .
Начнем с оценки асимптотики. Пусть число попутчиков n является квадратом целого числа. Расставим этих людей так, чтобы они заняли положение узлов правильной квадратной решетки с размером ячейки . Изображенная на рисунке “змейка” обходит все точки решетки и заканчиваются в верхнем правом углу в точке , ее длина равна . Не трудно сообразить, что эта змейка является одним из кратчайших маршрутов обхода точек положения наших воображаемых путешественников. Действительно, какой бы маршрут не выбрала машина таки, самое малое расстояние, которое ей придется проехать между точкой посадки каждого предыдущего и каждого последующего пассажира равно , всего таких “перегонов” будет , поэтому весь обход в длину будет не меньше чем .
рис 12
Построим теперь решение для общего случая, когда начальные положения n путешественников расположены внутри хаотическое. С этой целью поделим клетку на одинаковых полос. Суть алгоритма обхода состоит в том, чтобы объехать все эти полосы змейкой, начиная с самой левой, и подбирать пассажиров только внутри текущей полосы. Установим правило, что находясь внутри полосы, машина должна двигаться строго вдоль ее центральной линии до тех пор, пока очередной путешественник, которого она должна подобрать, не окажется от нее точно справа или слева. Всякий раз когда это будет случаться, таксист должен свернуть вбок, подобрать этого путешественника и тем же путем вернуться на среднюю линию текущей полосы. Если движение такси будет следовать такому регламенту, то длина той ее части маршрута, которая проходит по средним линиям полос, будет равна примерно . Каждый маневр отклонения за пассажиром обойдется в среднем единицами дополнительного пути, что в сумме удлинит маршрут примерно на . Таким образом средняя длина обхода стартовой клетки составит .
рис 13
Будем считать, что клетка разделена на такие же вертикальные полосы, что и клетка . Должно быть очевидно, что когда машина межклеточного такси достигнет , она сможет доставить своих пассажиров в нужные им пункты назначения, действуя по точно такому же алгоритму, что и во время их собора. После того, как эта машина высадит всех своих клиентов и доберется до точки в конце последней полосы, ее можно назначить на обратный рейс из в .
4.4 Средняя длинна кратчайшего ступенчатого пути между двумя случайными точками прямоугольника
Пусть у нас есть прямоугольник с горизонтальной стороной длины и вертикальной — длины . Под ступенчатыми кривыми внутри мы будем понимать ломанные линии (кусочно линейные кривые), каждый сегмент которых является либо горизонтальным, либо вертикальным отрезком. Возьмем внутри две произвольные точки и . Для дальнейшего исследования нам понадобится знать ответит на следующие два вопроса.
Первый состоит в том, чтобы описать, какие ступенчатые кривые из в будут иметь наименьшую длину. Второй — это, чему будет равна средняя длина таких кривых, если точки и выбираются внутри случайно и независимо друг от друга, а вероятность, которая описывает этот выбор, равномерно распределена по .
Чтобы ответить на первый вопрос, на всякий ступенчатый путь из в будем смотреть как на цепочку векторов, в которой начало каждого следующего вектора совмещено с концом предыдущего. Пусть и — это проекции точек и на нижнюю сторону , а и — их проекции на левую сторону . Можно видеть, что если — произвольный ступенчатый путь из в , то проекции всех его горизонтальных звеньев в сумме дадут вектор , а проекции всех вертикальных звеньев — вектор .
рис 14
В том и только в том случае, когда все горизонтальные звенья имеют одно и тоже направление сумма их длин будет равна длине вектора . Аналогично, в том и только в том случае, когда все вертикальные звенья имеют одно и тоже направление сумма их длин будет равна длине . Ступенчатые пути, у которых и все горизонтальные, и все вертикальные звенья ориентированы одинаково, договоримся называть монотонными. Таким образом, ступенчатый путь будет кратчайшим в том и только в том случае, когда он является монотонным.
Займемся теперь вторым вопросом. Пусть точки и выбраны из прямоугольника случайно и независимо друг от друга. Мы знаем, что длина любой кратчайшей ступенчатой кривой из в равна сумме длин проекций отрезка на нижнюю и левую стороны . Следовательно, чтобы посчитать среднюю длину таких кривых, достаточно вычислить, чему равна средняя длина отрезков и .
Можно показать, да и это почти очевидно, что равномерная распределенность и независимость выбора точек и внутри влечет за собой равномерную распределенность и независимость случайного положения их проекций на каждой из сторон . Давайте тогда посчитаем, чему равно среднее расстояние между двумя случайно выбранными точками и на отрезке длины . Поскольку результат, очевидно, пропорционален , достаточно рассмотреть случай, когда .
Пусть и — это то, насколько точки и удалены от левого конца . В таком случае пара полностью кодирует выбор и , а вероятность иметь ту или иную пару оказывается равномерно распределена внутри единичного квадрата декартовой плоскости.
рис 15
Расстояние между и описывается функцией , ее график состоит из двух одинаковых пирамид высоты и площадью оснований у каждой. Среднее расстояние между и равно среднему значению высоты графика , то есть суммарному объему пирамид, деленному на суммарную площадь их оснований. Объем пирамиды равна трети произведения площади основания на высоту, таким образом, среднее расстояние между двумя случайными точками отрезка длины равно , а среднее расстояние между двумя случайными точками прямоугольника размера равно .
Упражнение: покажите что в прямоугольнике размера средняя длина кратчайшей ступенчатой кривой, построенной между случайно выбранной точкой и центром прямоугольника равна , а между случайно выбранной точкой и его углом — .
4.5 Средняя продолжительность путешествия на межклеточном такси
Если все путешествия в городе совершаются на личных автомобилях, то маршруты большинства из них могут быть проложены по кратчайшей ступенчатой кривой. Средняя длина поездок в этом случае будет близка к , а продолжительность к . Какими окажутся средняя длина и средняя продолжительность путешествий, если все жители города будут совершать их на межклеточном такси?
Пусть некоторому путешественнику предстоит доехать на межклеточном такси от некоторого перекрёстка в квадрате до некоторого перекрестка в квадрате . Разделим его будущий маршрут на три участка: начальный — внутри , средний — между ближайшими друг к другу углами и , и финальный — внутри . Начальный и финальный участки — это часть змеевидного пути, которым машина такси объезжает клетки и . При случайном положении перекрестков и путешественник проедет в среднем примерно половину каждой змейки, таким образом средняя длина начального и конечного участков его маршрута составит примерно каждый. Это приближение будет работать, если число пассажиров n, которое за раз перевозит машина, достаточно велико.
Чтобы оценить среднюю длину среднего участка, предположим, что размер клеток на которые поделен город, много меньше размера самого города, то есть . Если это так, то сами клетки в масштабе города выглядят как точки, а значит среднее расстояние между ними с точностью до величины порядка равно . Получается, что при сравнительно больших и сравнительно малых поездки по городу на межклеточном такси будут в среднем примерно на длинней поездок на личном автомобиле.
Среднее время, которое займет путешествие по городу на межклеточном такси можно найти как “средняя длина поездки, деленная на среднюю скорость, плюс среднее время ожидания транспорта”. Среднюю длину поездки мы оценили как . Давайте пренебрежем временем разгона/торможения, временем посадки и высадки и прочими несущественными задержками в пути, с которыми сталкиваются пассажиры и будем считать, что средняя скорость машины такси близка к разрешенной в городе скорости v. Далее, мы будем предполагать, что машины такси, которые курсируют между парой клеток, следуют друг за другом с интервалом . Если так, то то человеку, который только что решил из клетки поехать в клетку , подходящей машины придется ждать в среднем примерно единиц времени. Собирая все вместе, получаем, что среднее время путешествия на межклеточном такси примерно равно
,
что на
дольше среднего времени путешествия на личном автомобиле.
4.6 Среднее число пассажиров в салоне
Как много пассажиров перевозит машина межклеточного такси за раз? Пусть в области единичной площади за единичное время намерение совершить любое путешествие по городу возникает в среднем у людей. За время , то есть за время равное интервалу между машинами, курсирующими между и , внутри клетки такое намерение появится в среднем у человек. Однако путь не всех из них будет лежать в клетку . Вероятность, что случайно взятое путешествие закончится в клетке , равна , то есть отношению площади этой клетки к площади всего города. В итоге мы имеем, что на каждую машину, курсирующую между и будет стремиться попасть в среднем:
путешественников.
Написанная выше формула ожидаемо показывает, что чем на большего размера клетки мы поделим город и чем больший интервал движения установим для курсирующих между этими клетками машин такси, тем большее число пассажиров каждая из них будет перевозить за раз. Однако мы не можем размер клеток и интервал движения сделать чересчур большими, иначе поездка на межклеточном такси станет чересчур долгой. Потребуем, чтобы среднее время путешествий на межклеточном такси отличалось от среднего времени путешествий на личном автомобиле не более чем в $inline$(1 + \lamda)$inline$ раз. Это требование приводит нас к неравенству
,
откуда
,
или в предельном случае
.
Подставляя в выражение для , получаем уравнение связи параметров , и :
Давайте найдем такие , , которые при заданном максимизируют величину . Для простоты выкладок рассмотри только тот случай, когда город имеет квадратную форму и .
Брать производные “в лоб” здесь слишком трудоемко, поэтому мы используем одну маленькую уловку. Заметим, что уравнение связи состоит из двух слагаемых. Возьмем произвольное и от нуля до единицы и распределим между слагаемыми уравнения их суммарное значение в отношении :
Откуда:
,
,
,
Теперь мы можем оптимизировать по и . Эти параметры будут оптимальны, когда
при условии, что
.
Из двух написанных выше уравнений тут же следует, что:
,
откуда , .
Подставляя оптимальные и в формулы для , , :
,
,
.
4.7 Оценка для реальных городов
Давайте посмотрим, какими будут , и , если взять , и соответствующими настоящим городам, а положить равной . Величину населения , плотность населения и разрешенную скорость возьмем из энциклопедических страниц. При населении и его плотности квадратный город будет иметь размер . Величину , то есть среднее число путешествий, которые стартуют из области единичной площади за единицу времени, мы оценим, исходя из следующих допущений:
Будем считать, что каждый житель города совершает в день в среднем поездки, причем вся миграционная активность в городе равномерно распределена по утренним и вечерним часам. В городе размера проживает человек, за минут они совершат путешествий, следовательно в периоды миграционной активности из 1-го квадратного километра в минуту должны начинать свое путешествие в среднем человек. Перейдем к конкретным примерам.
Условный Нью-Йорк (Лондон, Москва):
население мл чел,
плотность чел/кв км,
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел.
км,
мин
Условный Берлин:
население мл чел,
плотность чел/кв км,
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел
км
мин
Условный Париж:
население мл чел,
плотность чел/кв км,
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел
км,
мин
Условная Прага:
население мл чел,
плотность чел/кв км,
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел
км,
мин
4.8 Критика
Оценки, которые мы получили выше, показывают, что идея совместных поездок в теории имеет право на жизнь (Uber таки сделать можно) и должна быть исследована лучше. Что касается межклеточного такси, то его схема хороша как отправная точка для исследований, однако для практической реализации подходит плохо. В качестве главных причин ее прикладной бесполезности можно назвать следующие:
1) только в очень больших городах попутчиков будет достаточно, чтобы наполнить какой-нибудь очень маленький автобус, а значит массовым транспортом межклеточное такси считать никак нельзя;
2) утверждение о том, что путешествовать по городу на межклеточном такси в среднем не более чем в времязатратнее, чем на личном автомобиле, справедливо только при условии, что пункт назначения выбирается каждый раз случайно. Если изо дня в день вы собираетесь ездить на межклеточном такси между соседними квадратами, то быстрее будет ходить пешком.
В следующих частях мы построим беспересадочные схемы движения общественного транспорта, которые полностью преодолевают проблему 2) и в значительной степени 1), но пригодны они будут только в городах с населением выше миллиона. Рассмотрим потому одно интересное решение, которое может быть эффективно работать в городах поменьше.
5. Совместное такси с одной пересадкой
5.1 Наводящие рассуждения
Пусть город имеет квадратную форму со стороной в км и заселен с плотностью человек на квадратный километр. С такими вводными в городе будут проживать примерно тысяч человек, то есть, его нельзя назвать маленьким. Средняя длина путешествия в нем составит , а максимальная — км.
Если разрешенную скорость движения в этом городе установить равной км/ч ( км/мин), то формула для оптимизированного количества попутчиков в межклеточном такси даст нам
чел.
Можем ли мы как-то увеличить это число?
Чтобы было проще догадаться, как это можно сделать, немного поменяем регламент движения машин такси. Во-первых будем считать, что через центр каждой клетки проходит вертикальная и горизонтальная уличные дороги и между клетками машины такси перемещаются только по ним. Во-вторых потребуем, чтобы от стартовой к финишной клетке машина двигалась по — образному пути, причем из двух таких путей она выбирала тот, который начинается с горизонтального участка.
Если мы будем наблюдать за машинами такси, которые везут пассажиров из клетки в клетки -го столбца, то увидим, что у них у всех имеется общий участок пути: из центра к центру . Почему бы тогда путешественников, которые направляются из в клетки -го столбца, не довезти до центра одним общим автобусом, а там уже что-нибудь придумать. Давайте так и поступим.
рис 16
5.2 Регламент движения машин
И так, для каждой клетки -той строки у нас есть отдельный парк машин, единственное назначение которого — собирать внутри этой клетки всех путешественников, чьи точки назначения лежат в -том столбце, и отвозят их в центр клетки . Таким образом сейчас весь поток путешественников из -той строки в -тый столбец, скапливается в центре клетки . Следующий шаг очевиден: в каждой клетке -го столбца нужно завести в свой отдельный парк машин, единственной задачей которого будет забирать путешественников из центра и развозить их змейкой по клетке .
Если мы масштабируем описанные только что правила на все строки и все столбцы решетки , то получим схему движения совместного такси, которая позволяет путешественнику добраться от любого перекрестка к любому перекрестку всего с одной промежуточной пересадкой. Однако эта схема движения еще не совсем эффективна.
Действительно, внутри такой схемы все машины совместного такси оказываются распределены по двум ролям: одни только собирают путешественников со стартовых позиций — назовем такие машины собирающими, другие — только доставляют их до точек назначения — назовем их доставляющими. Когда собирающая машина достигает места пересадки, она высаживает всех своих пассажиров и возвращается в домашнюю клетку пустой. Аналогично после того, как доставляющая машина очередной раз развезла всех своих пассажиров по ее домашней клетке, за следующими пассажирами в точку пересадки она едет тоже совершенно пустой.
Можем ли мы оптимизировать схему так, чтобы все машины ездили только заполненными? Оказывается, что да. Для этого установим взаимно-однозначное соответствие между множествами клеток -той строки и -того столбца, положив, что клетке соответствует клетка . Далее, установим правило, что всякий раз, когда собирающая машина клетки и столбца достигает центра , она высаживает своих пассажиров после чего превращается в доставляющую машину -той строкой и клетки . В своей новой роли эта машина может тут же загружать ожидающих ее здесь путешественников и везти их в клетку . Аналогично установим правило, что всякий раз, когда доставляющая машина -той строки и клетки высаживает последнего своего клиента, она становится собирающей между этой клеткой и столбцом .
Благодаря действию двух новых правил машины совместного такси будут ездить всегда заполненными. Маршрут каждой такой машины будет описывать “круг”: из “домашней” клетки на пересадочную остановку в центре , оттуда во вторую “домашнюю” клетку , далее на пересадочную остановку в центре , после которой снова в (рисунок 17).
рис 17
5.3 Задержка в пути и число пассажиров в салоне
Маршруты путешествий на такси с одной пересадкой, если не считать дополнительной пересадки, остались почти такими же, как и у путешествий на межклеточном такси. Осталась прежней и средняя задержка от прохождения змеевидных участков внутри стартовой и финишной клеток, равная
,
а вот среднее время, проведенное на остановке в ожидании подходящей машины удвоилось (ждать нужно два раза) и равно теперь
.
Подсчитаем теперь ожидаемое число пассажиров в салоне. Когда машина выполняет роль доставляющей между клеткой и столбцом , то во время обхода должна собрать в среднем
Если мы хотим, чтобы путешествия на такси с одной пересадкой были дольше путешествий на личном автомобиле в среднем не более чем в раз, то должны написать неравенство:
.
Чтобы оптимизировать , положим
,
,
где
.
После преобразований имеем:
,
откуда
соответственно
На вскидку , должны максимизировать , если так, то окончательный вид формул будет таким:
,
5.4 Оценки
Давайте посмотрим, какими будут значения , и у такси с одной пересадкой в уже знакомых нам городах при значении .
Условный Нью-Йорк (Лондон, Москва):
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел.
км
мин
Условный Берлин:
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел
км
мин
Условный Париж:
эффективный диаметр ,
разрешенная скорость км/мин
чел/мин кв км
чел
км,
мин
Условная Прага:
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел
км,
мин
Условный стандартный полумиллионный город.
население чел,
плотность чел/кв км,
эффективный диаметр км,
разрешенная скорость км/мин
чел/мин кв км
чел
км,
мин
5.5 Критика
Из приведенных выше оценок видно, что средняя загрузка машин такси с одной пересадкой при прочих равных примерно вдвое больше средней загрузки машин межклеточного такси. Но!
Как и межклеточное такси, такси с одной пересадкой оказывается чересчур медленным транспортом, если все ваши путешествия вы совершаете между близко расположенными клетками. Как и межклеточное такси, схема такси с одной пересадкой, в том виде, в котором она представлена здесь не рассчитана на практическое внедрение: в следующих частях мы познакомимся с ее более совершенными реализациями.
Давайте начнем дискуссию, а через две-три недели я закончу редактировать и опубликую вторую и еще через две-три недели и третью части. Если у вас есть желание обсудить что-то детально, вы можете написать мне письмо на адрес magnolia@bk.ru.
Сергей Коваленко,
апрель 2023г.
Ссылка на Часть1: «Предварительный анализ» (ру / eng )
Ссылка на Часть2: «Эксперименты на торе» (ру / eng )
Cсылка на «Часть3: Практически значимые решения» (ру / eng )
Cсылка на «Summary» (ру / eng )