EA042786B1 - Способ и инструмент поиска или сравнения точек с использованием маршрутов или длин маршрутов между точками и местами в транспортной системе - Google Patents

Способ и инструмент поиска или сравнения точек с использованием маршрутов или длин маршрутов между точками и местами в транспортной системе Download PDF

Info

Publication number
EA042786B1
EA042786B1 EA202192708 EA042786B1 EA 042786 B1 EA042786 B1 EA 042786B1 EA 202192708 EA202192708 EA 202192708 EA 042786 B1 EA042786 B1 EA 042786B1
Authority
EA
Eurasian Patent Office
Prior art keywords
route
travel time
houses
place
work
Prior art date
Application number
EA202192708
Other languages
English (en)
Inventor
Гжегож Малевич
Original Assignee
Гжегож Малевич
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Гжегож Малевич filed Critical Гжегож Малевич
Publication of EA042786B1 publication Critical patent/EA042786B1/ru

Links

Description

Перекрестные ссылки на родственные заявки
Настоящая заявка основана на следующих заявках и объявляет следующие приоритеты изобретений:
[Страна] [Номер заявки] [Дата подачи]
США 62/632,419 20 февраля 2018 г.
США 62/758,710 12 ноября 2018 г.
США 62/780,268 16 декабря 2018 г.
США 62/800,428 2 февраля 2019 г.
США 16274242 13 февраля 2019 г.
включенных в состав настоящей заявки в виде ссылки.
Предпосылки создания изобретения
Данное изобретение связано с поиском или сравнением (searching or comparing) точек. Традиционно цель поиска заключается в нахождении какой-либо точки (site) из ряда возможных вариантов, отвечающей задачам оптимизации, а именно минимизации длины маршрута (route length) исходя из определенной необходимости в перемещениях между точкой и местом, а также учитывая желаемые характеристики искомой точки. Например, при поиске объектов недвижимости, зная необходимые конечные точки пути до места работы и обратно (destinations of commutes) и характеристики объекта недвижимости (real estate property), цель может заключаться в составлении списка объектов недвижимости с нужными характеристиками и кратчайшим временем в пути до места работы и обратно. Другой целью может быть сравнение каких-либо объектов недвижимости по времени нахождения в пути до места работы и обратно [002].
Краткое изложение сущности изобретения
Варианты реализации изобретения включают в себя способ (method) поиска или сравнения точек, компьютерную систему, которая использует и реализует этот способ, а также компьютерный сервис, который получает (receives) запросы по поиску и сравнению от пользователей и возвращает им ответы (responds) в виде информации (information) о точках и маршрутах [003].
В зависимости от варианта реализации данного изобретения предоставляется способ поиска или сравнения точек по маршрутам или длинам маршрутов. В способе используется комплексная предварительная обработка для предварительного расчета (precompute) и сохранения в базе данных маршрутов или длин маршрутов между каждой точкой и представителями (representatives) в границах транспортной системы. Способ предлагает базовую платформу (framework) для поиска или сравнения точек. При получении запроса, содержащего спецификацию маршрута, по базе данных находятся предварительно рассчитанные данные, которые позволяют быстро вычислить маршрут или длину маршрута по каждой точке. Поиск или сравнение точек может производиться по маршрутам или длинам маршрутов.
В зависимости от варианта реализации данного изобретения предусматривается компьютерная система для поиска или сравнения точек по маршрутам или длинам маршрутов. Система представляет собой аппаратно-программный комплекс. Комплекс получает данные о транспортной системе и точках от одного или множества поставщиков данных (data providers). Система строит графы (graphs), моделирующие перемещение между точками и представителями в границах транспортной системы. Система рассчитывает пути графов (graph paths) и сохраняет плечо графов или длины плеча графов. Это позволяет быстро рассчитывать маршруты или длины маршрутов для каждой точки при получении запроса, а также производить поиск или сравнение точек по маршрутам или длинам маршрутов.
В зависимости от варианта реализации данного изобретения предусматривается компьютерный сервис по поиску или сравнению точек по маршрутам или длинам маршрутов. Сервис позволяет пользователю задать параметры поискового или сравнительного запроса через интерфейс пользователя на каком-либо устройстве, например, с помощью смартфона. Запрос содержит спецификацию маршрута и условие для фильтра (filtering condition). В ответ сервис выдает точки, отвечающие условию фильтра, вместе с маршрутами или длинами маршрутов для соответствующих точек, либо сервис проводит сравнение точек по маршрутам или длинам маршрутов [006].
Быстрота расчета длины маршрута для каждой точки имеет основополагающее значение. Авторы составили математическое доказательство. Рассмотрим некоторый способ поиска или сравнения М. Можно придумать такой пользовательский запрос (adversarial request), чтобы М выдал какой-либо список точек в заданном порядке. У пользователя (adversary) есть два механизма:
(1) подать запрос, содержащий спецификацию маршрута, по которой будет создан упорядоченный список точек по длине маршрута; порядок задается пользователем; и (2) подать запрос с установкой условия для фильтра точек, которое будет соответствовать подмножеству точек, выбранному пользователем. Таким образом, М должен возвратить упорядоченный список точек, произвольно выбранных пользователем в момент подачи запроса. Подробности выведения доказательства выходят за рамки заявки на оформление патента.
Способ, компьютерная система и компьютерный сервис все вместе выполняют задачи, не являющиеся унифицированными и не в полной мере реализованные в известных технических решениях. Ранее извест
- 1 042786 ные технические решения включают патент US 8417409 В2; продолжение патента US 8738286 В2; подраздел US 8756014 В2; KR 10-1692501 В1; продолжение патентов PCT/KR2016/01083; WO 2017/065431 A1; US 2018/0232824 A1; и KR 10-1905593 B1.
Представленные здесь варианты реализации изобретения служат для иллюстрации; они не несут исчерпывающий характер. Люди с базовыми техническими знаниями хорошо представят себе многочисленные модификации и исполнения, не нарушающие общей структуры и сущности реализации изобретения.
В данной презентации термины первый, второй, данный, указанный и подобные им не используются в узко специализированном смысле, а служат только для различия, если иное однозначно не следует из контекста. Термин в единственном числе включает формы множественного числа, если иное однозначно не следует из контекста. Термины обладающий, включающий, состоящий и подобные им показывают наличие компонентов или характеристик, при этом не ограничивая возможность наличия или добавления других компонентов или характеристик.
Краткое описание схем
Схемы, включенные в раскрытие сущности изобретения, служат в качестве иллюстрации характеристик и преимуществ тех или иных вариантов реализации изобретения.
Фиг. 1 показывает пример цветового оформления времени в пути по маршрутам до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример цветового оформления времени в пути по маршрутам до места работы и обратно для объектов недвижимости с двумя маршрутами до места работы: объект недвижимости^geo.0.0^geo.0.1 ^объект недвижимости и объект недвижимости^geo.1.0^объект недвижимости. Авторы использовали фрагмент карты на ядре Google, вместо него может быть использован любой другой.
Фиг. 2 показывает пример принципиальной схемы предварительной обработки и сохранения данных в зависимости от варианта реализации изобретения, подпись: Пример принципиальной схемы предварительной обработки и сохранения данных.
Фиг. 3 показывает пример принципиальной схемы ответа на запрос с использованием сохраненных предварительно обработанных данных в зависимости от варианта реализации изобретения; подпись: Пример принципиальной схемы ответа на запрос с использованием сохраненных предварительно обработанных данных.
Фиг. 4A-4E показывает пример расчета времени в пути до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример расчета времени в пути до места работы и обратно.
Фиг. 5 показывает пример участков на графе системы общественного транспорта для предварительного расчета кратчайшего плеча графа в зависимости от варианта реализации изобретения; подпись: Пример участков на графе системы общественного транспорта для предварительного расчета кратчайшего плеча графа.
Фиг. 6 показывает пример табличного/векторного хранилища (vector storage) предварительно рассчитанных значений кратчайшего времени в пути в зависимости от варианта реализации изобретения; подпись: Пример табличного/векторного хранилища предварительно рассчитанных значений кратчайшего времени в пути.
Фиг. 7 показывает пример разложения маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример маршрута до места работы и обратно H^W1^W2^W3^Wa^H, разложенного (decomposed) на часть, привязанную к домам (зеленым цветом), и на часть, не привязанную к домам (черным цветом), на примере трех домов в качестве мест проживания H1, Н2 и Н3.
Фиг. 8 показывает пример расчета кратчайшего времени в пути из точки начала маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример расчета кратчайшего времени в пути из точки начала маршрута до места работы и обратно.
Фиг. 9 показывает пример расчета кратчайшего времени в пути из конечной точки маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример расчета кратчайшего времени в пути из конечной точки маршрута до места работы и обратно.
Фиг. 10 показывает пример языка описания алгоритмов (pseudocode) расчета кратчайшего времени в пути из начальной точки маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример языка описания алгоритмов расчета кратчайшего времени в пути из начальной точки маршрута до места работы и обратно PathFromHomeDurations (^W).
Фиг. 11 показывает пример принципиальной схемы компьютерной системы в зависимости от варианта реализации изобретения; подпись: Пример принципиальной схемы компьютерной системы для предварительного расчета и хранения данных в базе данных, а также обработки запросов с использованием данных, извлеченных из базы данных.
Фиг. 12 показывает пример пользовательского запроса и ответа от компьютерного сервиса на смартфоне пользователя в зависимости от варианта реализации изобретения; подпись: Пример пользо
- 2 042786 вательского запроса и ответа от компьютерного сервиса на смартфоне пользователя.
Схемы приведены исключительно для иллюстрации. Пояснения к изобретению могут быть приведены на других схемах, не нарушая принципы изобретения, в чем легко сможет разобраться любой человек с базовыми техническими знаниями.
Подробное описание сущности изобретения
Подробное описание.
Изобретение затрагивает общий случай поиска или сравнения произвольных точек для получения их оптимизированных вариантов по желанию пользователя на основе маршрутов или длин маршрутов (routes or route lengths) до произвольных мест. При этом с целью упрощения презентации авторы демонстрируют изобретение, в первую очередь, на примере конкретных точек (sites), которыми являются объекты недвижимости, конкретных мест (places), которыми являются места работы, а также конкретной цели оптимизации, а именно минимизации времени в пути от объектов недвижимости до места работы и обратно. Иллюстративный пример не является исчерпывающим. В последних разделах нами был описан принцип работы этого способа в общем случае [013].
1. Объекты недвижимости и маршруты до места работы и обратно.
Поиск жилья - это сложная задача. Люди тратят значительные временные и материальные ресурсы на его поиск. Данная технология призвана помочь людям в поиске жилья. Существует несколько интернет-сервисов, так называемых агрегаторов предложений объектов недвижимости, которые позволяют людям искать недвижимость прямо в браузере компьютера или приложении смартфона по определенным характеристикам, например по цене, географическому расположению, количеству комнат и т.д. Результатом поиска становится некоторый список вариантов, которые клиент, как правило, смотрит лично непосредственно на месте.
Расположение (location), пожалуй, является самым важным критерием для выбора объекта недвижимости, не зря агентства недвижимости используют такую характеристику, как хороший район, удобное расположение, развитая инфраструктура и т.д. Данное изобретение строится вокруг этой характеристики.
Клиентам нужно будет добираться до места работы, школы или в другие места. Время в пути по этим маршрутам определяет ценность того или иного объекта недвижимости для каждого конкретного клиента. Кроме того, для всех клиентов в крупных городах существует общая заинтересованность как в экономии времени поездок, которое можно было бы освободить для более продуктивной деятельности, так и в экономии сил на преодоление интенсивного городского трафика. Данное изобретение помогает удовлетворить как общие, так и персональные потребности.
Для простого примера представим семью из двух человек, проживающую в столице Южной Кореи. Один из членов семьи работает государственным служащим в городской администрации, а другой трудится библиотекарем в Главной библиотеке Национального Университета города Сеул. Сейчас они живут в двухкомнатной квартире площадью 69 м2 с одним санузлом, необходимый депозит за которую составляет 350000000 южнокорейских вон. Квартира имеет координаты по широте и долготе (37.5333, 127.0746). Суммарное время их ежедневных поездок до места работы и обратно составляет 1 ч 41 мин (около 25 мин в один конец в среднем). Но оказывается, что они могут уменьшить время на перемещения до 1 ч 16 мин (сэкономив 25 мин), если переедут в другую квартиру с теми же параметрами, но расположенную в координатах (37.5041, 126.8888). Кратчайшее время в пути для обеих квартир составляет 50 мин. Но новая квартира имеет другую цену и размер (иллюстрация от 19 февраля 2018 г.) [017].
В чем состоит сложность такой оптимизации для всех? Довольно примитивно рассматривать отдельно каждый вариант объекта недвижимости, представленного на рынке, отвечающего требованиям семьи по размеру и другим характеристикам, и, зная места работы, рассчитывать время в пути, запрашивая информацию через существующие интернет-сервисы построения маршрутов. Такой подход все же не пригоден для большого потока запросов. Одной из проблем является большое количество представленных на рынке объектов недвижимости современного крупного города. Другой проблемой является большое количество семей/пользователей, которые потенциально нуждаются в оптимизации. Даже если допустить возможность недорогого использования сервисов по построению маршрутов, квадратичный характер проблемы по-прежнему будет означать удорожание по общему объему запросов в такие сервисы.
Каким образом можно удовлетворить потребность в оптимизации для всех? Данное изобретение является решением. В изобретении имеются следующие компоненты.
1) Изобретение определяет модель маршрута до места работы и обратно (commute path). Данная модель является универсальной за счет включения широкого набора реально существующих маршрутов до разных мест, например сначала до школы, потом до репетитора по пианино, а затем обратно домой. Полезность данной модели повышается благодаря тому, что можно быстро находить объекты недвижимости, для которых минимизируется время в пути.
2) Изобретение предлагает способ оптимизации для быстрого расчета времени в пути. Изобретение определяет части какого-либо маршрута до места работы и обратно, привязанные к какому-либо объекту недвижимости. Время в пути для данных частей рассчитывается заранее и сохраняется в базу. В резуль
- 3 042786 тате, когда будет нужно найти маршрут до места работы и обратно, изобретение сможет быстро выстроить (assemble) временные отрезки, получая время в пути для каждого объекта недвижимости.
3) Вариантом реализации изобретения является компьютерный сервис с доступом через Интернет. Сервис дает возможность 25 млн жителей столичной агломерации Сеула искать и сравнивать объекты недвижимости по времени в пути.
2. Описание способа.
Авторы используют термин перемещение (travel) в широком смысле, который включает в себя движение объектов или данных. Описание перемещения (description of travel) - это некое описание, которое может дать человек с базовыми техническими знаниями. Вот некоторые из примеров описания перемещения:
(1) эй, друг, тебе нужно пройти один квартал на север, затем взять чуть левее; или (2) 5 долларов [020].
Можно использовать термин маршрут перемещения (travel path), когда имеется в виду название перемещения. Длина перемещения (length of travel) - это числовое значение (numeric value), которое человек с базовыми техническими знаниями сможет привязать к перемещению, например, в качестве расстояния, стоимости в деньгах и т.д. В качестве другого примера, можно использовать термин время в пути (travel duration), когда имеется в виду длина перемещения, выраженная во времени. Длина перемещения сама по себе является описанием перемещения. Описание перемещения не может включать любую длину перемещения, а может включать только определенную длину перемещения либо также некоторые другие данные.
Авторы продемонстрировали некоторые возможности способа и ввели терминологию, которая будет использоваться в дальнейшем. Способ может рассчитывать время в пути по маршрутам до места работы и обратно для каждого объекта недвижимости. Это показано на фиг. 1. Городская территория разделена на цветные квадраты. Цветом обозначено, как долго требуется добираться на общественном транспорте от определенного объекта недвижимости в каждом конкретном районе: зеленым цветом показан короткий маршрут, желтым - более длинный, а красным - самый долгий маршрут. Маршрут до места работы и обратно начинается от объекта недвижимости, затем идет до определенных мест geo, ..., и, наконец, снова возвращается в исходный объект недвижимости. В какой-то степени объект недвижимости является свободной переменной (free variable), в то время как geo, ... - это фиксированные переменные. На фиг. 1 представлено два маршрута до места работы и обратно: незамкнутый маршрут вида объект недвижимости^geo.0.0^geo.0.l^объект недвижимости дважды в неделю, и маршрут в прямом и обратном направлении вида объект недвижимости^geo.1.0^объект недвижимости три раза в неделю. Как видно, с учетом этих двух маршрутов до места работы и обратно, а также их регулярности, объекты недвижимости с небольшой взвешенной суммой значений времени в пути образуют своеобразную кляксу (темно-зеленого цвета), что неудивительно, учитывая густоту сети общественного транспорта.
На высшем уровне способ состоит из двух частей. В первой части рассчитывается время в пути между объектами недвижимости и представителями (representatives), которые представляют собой остановки в транспортной системе (transportation system). Данное время в пути сохраняется (stored) в базе данных (database), и его можно брать в готовом виде при поступлении запроса (request). См. фиг. 2 для иллюстрации. Во второй части происходит обработка запросов. Запрос содержит маршрут до места работы и обратно, а также желаемые характеристики (features) объекта недвижимости. При получении (received) запроса соответствующее время в пути берется из базы данных и используется вместе с другими данными для получения общего времени в пути по маршруту до места работы и обратно для каждого объекта недвижимости с выбранными характеристиками. См. фиг. 3 для иллюстрации. Подробности и варианты данного описания приведены в следующих пунктах [022].
3. Маршруты до места работы и обратно.
Данный способ обрабатывает обширную выборку маршрутов до места работы и обратно, используемых людьми в границах городской агломерации. Маршрут до места работы и обратно начинается от точки Н, которую авторы назвали дом (home). H имеет произвольное расположение. Она может быть представлена любым объектом недвижимости, например квартирой, арендуемой комнатой, коттеджем с собственным участком, крупным предприятием, отелем и т.д. Также она может являться и точкой, где работает клиент, например рестораном, магазином и т.д. Но по договоренности о наименованиях в раскрытии сущности изобретения авторы, как правило, используют термин дом; такая договоренность не предполагает ограничений. В одном из вариантов реализации клиент перемещается в разные места, а затем возвращается в точку Н.
В одном из вариантов реализации маршрут перемещения укладывается в рамки одного дня, например клиент выходит из Н утром и возвращается в Н вечером того же дня. В другом варианте реализации маршрут укладывается на пару дней, например, если клиент работает в ночную смену или его рабочая смена составляет 25 ч. В одном из вариантов реализации какое-либо перемещение может начинаться в определенное время либо заканчиваться в определенное время, например в 8:12. В другом варианте реализации какое-либо перемещение может начинаться или заканчиваться в пределах некоторого интервала,
- 4 042786 например утром.
Проще говоря, клиент перемещается из Н до места W, которое авторы назвали работа (work). W имеет произвольное расположение. Сюда же относится школа, дом бабушки с дедушкой, площадка для игры в гольф по выходным, любимый ресторан, кабинет врача, культовое учреждение и т.д. Это также может быть и местом, где человек живет. Но по договоренности о наименованиях в раскрытии сущности изобретения авторы, как правило, используют термин работа; такая договоренность не предполагает ограничений. Затем клиент возвращается из W в Н. Авторы называют эти два перемещения маршрут в прямом и обратном направлении. См. фиг. 4А для иллюстрации.
Незамкнутый маршрут до места работы и обратно представляет собой пример более сложного маршрута до места работы и обратно. См. фиг. 4В для иллюстрации. При таком маршруте клиент перемещается из Н до места W1. После чего клиент перемещается из места W1 в другое место W2. Наконец, клиент перемещается из места W2 обратно в точку Н. Можно привести один из примеров, когда клиент идет в школу, а после школы идет к репетитору по пианино.
В целом данный способ допускает любые произвольные перемещения. На фиг. 4С показана иллюстрация маршрута до места работы и обратно с пропуском перемещения от W4 до W2 и повторением перемещения от W2 до W3. На фиг. 4D показана иллюстрация незамкнутых маршрутов до места работы и обратно: маршрут до места работы и обратно, выходящий из Н, но без возврата в Н; и маршрут до места работы и обратно, с возвратом в Н без предварительного выхода из Н. На фиг. 4Е показана иллюстрация несвязанного маршрута до места работы и обратно. Маршрут до места работы и обратно может начинаться из одного дома, а заканчиваться в другом доме. данный способ определяет маршрут до места работы и обратно следующим образом.
Определение 1. Маршрут до места работы и обратно - это совокупность перемещений W2^W3, W4^W5,—,Wk-2^Wk-1, при k>2, который считается целым числом, включая НпеpBЫЙ^W1 или Wkп0CледHИЙ (таким образом, маршрут до места работы и обратно всегда содержит по крайней мере один дом и по крайней мере одно место работы), осуществляемых в произвольные моменты времени.
Маршрут до места работы и обратно можно представить в виде спецификации (specification) маршрута в границах транспортной системы. Различные W и Н в определении 1 указывают направление для перемещения клиента [028].
В одном из вариантов реализации авторы рассматривают более простой маршрут до места работы и обратно H^W1^W2^...^Wk^-H, при каком-либо k>1 конечные точки перемещения по этому маршруту будут пересекаться, а дом в начале и в конце маршрута один и тот же. В раскрытии сущности изобретения авторы используют, как правило, более простую форму, поскольку она является самой частой на практике и упрощает понимание презентации. При этом любому человеку, обладающему базовыми техническими знаниями, очевидно, что данный способ применяется к авторскому (основному) определению маршрута до места работы и обратно.
Данный способ находит кратчайшее время в пути по любому из маршрутов до места работы и обратно. Само по себе это уже было отражено в различных известных технических решениях. Но данный способ находит время в пути для всех домов за чрезвычайно малое время.
4. Предварительная обработка транспортной системы.
Способ проводит предварительную обработку данных о системе общественного транспорта, чтобы предварительно рассчитать (precompute) и сохранить кратчайшее время в пути для всех домов.
4.1. Расчет кратчайшего времени перемещения.
Авторы описывают способ эффективного расчета кратчайшего времени перемещения между всеми домами и всеми расположениями остановок общественного транспорта. Как правило, в раскрытии сущности изобретения авторы используют термин остановки (stopstations) для остановок общественного транспорта, которые включают остановки автобусов, станции метро, либо оба этих вида транспорта сразу.
Способ начинается с построения произвольного графа (graph) системы общественного транспорта GT, который моделирует систему общественного транспорта (public transportation system) и который можно взять из известных технических решений. Граф может содержать вершины (vertexes), которые представляют автобусные остановки, станции метро или и те, и другие сразу. На графе могут присутствовать и другие вершины, означающие, например, место остановки или разворота транспорта либо место остановки или поворота пешеходов. Вершины на графе, соответствующие местам остановки транспорта, имеют обозначение
STOPSTATIONs, с индексом s. На графе имеются ориентированные взвешенные ребра (directed weighted edges), каждое из которых обозначает время в пути вдоль отрезка (segment) от исходной вершины ребра до целевой вершины ребра. Граф также может иметь другие ребра. Ребро может обозначать отрезок пути на пересадку между разными маршрутами транспорта. Граф может содержать данные о времени отправления или времени прибытия разных маршрутов общественного транспорта. Как правило, используется алгоритм Дейкстры по поиску кратчайшего плеча графа от одной вершины до всех остальных (shortest graph
- 5 042786 paths) либо поисковый алгоритм А* (А звезда) для расчета пути от одной из вершин графа с кратчайшим плечом графа (суммы весовых значений), обозначая кратчайшее время в пути от одной
STOP STATION s' до другой
STOP STATIONs, для любого s' u s, а также если перемещение начинается в заданное время или заканчивается в заданное время [033].
Данный способ расширяет граф системы общественного транспорта GT. См. фиг. 5 для иллюстрации.
Сначала авторы вводят кластеры остановок (clusters of stopstations). Способ группирует остановки по кластерам с помощью какого-либо алгоритма группирования в кластеры; в одном из вариантов реализации способ группирует две остановки в один кластер, если географическое расстояние между двумя остановками не превышает пороговое значение (threshold), например, 5 м либо если время в пути между двумя остановками не превышает пороговое значение. Авторы говорят о расположении кластера, имея в виду какое-либо географическое расположении в границах кластера, например его центральную точку. Для каждого кластера остановок с данный способ добавляет две вершины
STOPSTA TIONCL USTERSO URGE_с и
STOPSTA TION CL USTER TARGET c, а также ребра, соединяющие кластер с остановками GT
STOPSTATION CLUSTERSOURCEc -+ STOPSTATION s' с пометкой FirstWaitGetOn и
STOPSTATION s'-+ STOPSTATION_CLUSTER TARGET с с пометкой Zero, для любого s', всегда когда s' находится в кластере с. Ребра имеют нулевой вес. Получившийся граф обозначается GC с вершинами VC и ребрами ЕС. Подмножество вершин
STOPSTA TION CL USTER SO URCE c, для всех с обозначается VS [035].
Другим расширением являются кластеры домов. Способ группирует дома в кластеры по какомулибо алгоритму группирования в кластеры; в одном из вариантов реализации способ использует такой же алгоритм, что и при группировании в кластеры остановок. Аналогичным образом определяется расположение кластера домов. Для каждого кластера s способ вводит вершину
HOMECL USTERSOURCEs и вершину
HOME CL USTER TARGET s
[036].
с пометкой Walk, если имеется пеший участок в обратном направлении от расположения кластера остановок с до расположения кластера домов t, для любых с и t, при этом вес ребра отражает время в пути по пешему участку. В одном из вариантов реализации способ ограничивает пешие перемещения кратчайшими участками с заданной скоростью, например, 4 км/ч, продолжительностью не выше порогового значения, например, 1 ч. Получившийся граф обозначается G. Обозначение VH авторы присвоили вершинам
Данный способ соединяет каждый кластер домов с кластерами остановок в виде пеших участков. В частности, способ добавляет ребро
HOME CLUSTER SOURCEs -+ STOP STATION CLUSTERSOURCE_с с отметкой Walk, если имеется пеший участок от расположения кластера домов s до расположения кластера остановок с, для любых s и с, при этом вес ребра отражает время в пути по пешему участку; и перевернутое ребро
STOPSTATION CLUSTER TARGET с -+ HOME CLUSTER TARGETJ с пометкой Walk, если имеется пеший участок в обратном направлении от расположения кластера остановок с до расположения кластера домов t, для любых с и t, при этом вес ребра отражает время в пути по пешему участку. В одном из вариантов реализации способ ограничивает пешие перемещения кратчайшими участками с заданной скоростью, например, 4 км/ч, продолжительностью не выше порогового значения, например, 1 ч. Получившийся граф обозначается G. Обозначение VH авторы присвоили вершинам
HOMECLUSTERSOURCEs, для всех s; а обозначения ЕН - множеству ребер
HOME CLUSTER SOURCE s -+ STOPSTATION CLUSTER SOURCE с, для всех s и с.
Авторов интересует расчет самого короткого плеча графа от каждого кластера остановок до каждого кластера домов, а также самое короткое плечо графа в обратном направлении от каждого кластера
- 6 042786 домов до каждого кластера остановок.
Отметим, что группирование в кластеры позволяет данному способу значительно повысить качество расчета самого короткого плеча графа за счет унификации расположений, которые в сущности являются одними и теми же с точки зрения самого короткого плеча графа. Например, в высотном жилом комплексе могут находиться сотни квартир, а данный способ объединит их в один единый кластер домов. Таким образом, алгоритму расчета самого короткого плеча графа потребуется обработать всего один кластер домов, а не сотни входящих в него квартир.
При этом типовое применение алгоритма Дейкстры все-таки не обеспечивает высокое качество. В типовом применении алгоритм начинает обработку с каждого
STOP ST A TION CL USTERSO URCEc в G без каких-либо вершин
HOME CLUSTER SOURCE S после чего алгоритм переходит от каждой вершины
HOMECLUSTERSOURCEs в G без каких-либо вершин
HOME CL USTERTARGETJ
Совокупная асимптотическая временная сложность (asymptotic time complexity) выглядит как
О(\vs\ · (\ЕС\ + \ЕН\ + (\VC\ + \VH\} log(|VC\ + \VHJ) +
O(]VH\ · (\EC\ + \EH\ +(|LC| + |VH\) log(QQ + \EHJ).
В данном способе улучшено типовое применение этого алгоритма. Авторы заметили, что в крупных городских образованиях, количество кластеров домов значительно превосходит количество кластеров остановок |ЕН|»|VSI, при одинаковом пороговом значении для группирования в кластеры. Исходя из этого наблюдения данный способ использует другой алгоритм расчета самого короткого плеча графа от кластеров домов: в данном способе переворачиваются (reverses) ребра G, и для каждого
STOP ST A TIONCL USTERTARGETc на перевернутом графе рассчитывается самое короткое плечо до всех вершин
HOMECLUSTERSOURCEs при помощи алгоритма Дейкстры (любые вершины
HOMECL USTERTARGETJ можно убрать). Это дает желаемый эффект, ведь, когда переворачивают ребра какого-либо самого короткого плеча от
STOP ST A TIONCL USTERTARGETc до
HOME CL USTERSOURCEs на перевернутом графе, получают самое короткое плечо графа от
HOME_CLUSTER_SOURCE_s до
STOPSTA TIONCL USTER TARGETc на изначальном (не перевернутом) графе. Отсюда по данному способу получают асимптотическую временную сложность вида
O(|FS| · QEQ + \EH\) + (IFC| + \VH\) log(|EQ + |ЕЯ|))).
Фактически данный способ предлагает существенное сокращение общего времени обработки на графе G для городской агломерации Сеула [040].
В данном способе используется симметричный алгоритм для противоположной ситуации, когда количество кластеров остановок превышает количество кластеров домов |VH|<|VS|. В этом случае данный способ переворачивает ребра при расчете самого короткого плеча графа от кластеров остановок до кластеров домов.
В одном из вариантов реализации способ использует время отправления (departure times). Способ рассчитывает самое короткое плечо графа от каждого
STOPSTA TIONCL USTERSO URCEc до каждого
HOME CL USTER TARGETJ, для заданного времени отправления из
STOPSTA TION CL USTER SO URCE c.
В этом случае способ использует соответствующий граф GT из известных технических решений, который позволяет задавать время отправления от остановок общественного транспорта; такой случай иногда обозначается вершиной, которая соответствует значению времени и географическому расположению, и ребром, которое обозначает время в пути из географического расположения в указанное время.
- 7 042786
Аналогичным образом способ работает на перевернутом графе с использованием заданного времени прибытия в
STOPSTA TION CL USTERTARGETc.
Длины самого короткого плеча графа переводят эти значения времени прибытия в значения времени отправления из каждого
HOME CLUSTER SOURCEs.
Аналогичный граф используется для расчета самого короткого плеча графа на основе сроков прибытия (arrival deadline). Соответствующим образом построенный граф может быть использован для расчета вероятности прибытия раньше срока [042].
В одном из вариантов реализации не вводят в GT ни вершины
STOPSTA TION CL USTERSOURCEc ни вершины
STOPSTA TION CL USTER TARGET c.
Вместо этого соединяют вершины
HOME CLUSTER SOURCEs и вершины
HOME CL USTER TARGET J прямыми ребрами пеших участков с вершинами
STOP STATION s'.
В одном из вариантов реализации не вводят в GT ни вершины
HOME CLUSTER SOURCE s ни вершины
HOME CL USTERTARGETJ.
Вместо этого вводят вершины
HOMEs, каждая из которых соответствует дому и которые соединяют с вершинами
STOPSTATIONS' ребрами пеших участков напрямую.
В одном из вариантов реализации не группируют дома в кластеры.
В одном из вариантов реализации не группируют остановки в кластеры.
В одном из вариантов реализации рассчитывают самое короткое плечо графа по срокам прибытия: от кластеров остановок до кластеров домов с учетом срока прибытия в каждый кластер домов или от кластеров домов до кластеров остановок с учетом срока прибытия в каждый кластер остановок.
В одном из вариантов реализации авторы используют некоторые алгоритмы расчета плеча графа, отличающиеся от алгоритма Дейкстры, например поисковый алгоритм А* (А звезда). В одном из вариантов реализации авторы используют аппроксимирующий алгоритм (approximation algorithm) для расчета самого короткого плеча графа. Можно использовать алгоритмы без каких-либо усовершенствований по качеству расчета.
В одном из вариантов реализации весовые значения на некоторых ребрах графа обозначают денежную стоимость перемещения, а не время в пути. Тогда данный способ ищет и сравнивает дома исходя из денежных затрат на дорогу до места работы и обратно. Можно использовать любые другие смысловые ряды для весовых значений ребер, например количество пересадок между разными маршрутами общественного транспорта, время ожидания, финансовые издержки от ожидания или дальность перемещения.
В одном из вариантов реализации авторы применяют поиск с многоцелевой оптимизацией (multiobjective optimization search) на основе многомерной стоимости (multi-dimensional cost). Например, ищут самое короткое плечо графа, длина которого обозначает время в пути, так чтобы денежная стоимость, которая обозначает плечо графа, не превышала пороговое значение, или когда денежная стоимость прибавляется в качестве издержки за протяженность плеча графа [050].
В одном из вариантов реализации маршрут перемещения обозначен как плечо графа. Авторы рассчитывают различные характеристики самого короткого маршрута перемещения с использованием самого короткого графа, например первая остановка (т.е. посадка) или последняя остановка (т.е. высадка) на самом коротком плече графа, основную остановку пересадки на самом коротком плече графа, количество пересадок между разными маршрутами, транспорт с наибольшим временем в пути (например, автобус 1234), общее время ожидания на остановках, общее расстояние пеших участков, степень перегруженности конкретного плеча графа в часы-пик или последовательность географических расположений вдоль плеча графа. Такие характеристики могут использоваться при обработке запросов для фильтрования маршрутов перемещения, характеристики которых совпадают с условием, заданным в запросе.
В одном из вариантов реализации авторы рассчитали два или более плеча графа между некоторыми вершинами графа. Например, одно плечо графа от вершины и до вершины v можно преодолеть максимум на одном автобусе, а на другом плече графа от вершины и до вершины v может не быть метро, но
- 8 042786 время в пути на нем всего на 10 мин дольше, чем по самому короткому плечу графа.
В одном из вариантов реализации авторы рассчитали плечо графа, которое отвечает разным условиям фильтра (filtering conditions). Например, плечо графа, на котором предусмотрено не более одной пересадки или установлено максимальное время преодоления пеших участков.
В одном из вариантов реализации авторы используют сервис построения маршрутов (например, на основе известных технических решений) для расчета кратчайшего времени в пути между домами и остановками общественного транспорта. Поэтому в некоторых случаях не могут использоваться графы, описанные в настоящем разделе 4.1.
Способ, описанный в разделе 4.1, рассчитывает кратчайшее время в пути от каждого дома до каждой остановки, а также кратчайшее время в обратном направлении. Ниже описана структура данных для эффективного хранения и обработки данных о кратчайшем времени в пути, используемых данным способом.
4.2. Хранение кратчайшего времени перемещения.
В одном из вариантов реализации данный способ сохраняет (stores) время в пути в виде векторов (vector form). Способ выстраивает последовательности кластеров остановок в виде s1, ..., sn, а также последовательности кластеров домов в виде hi, ., hm в некотором порядке, например произвольно. В одном из вариантов реализации такие последовательности становятся фиксированными. Для каждого si данный способ хранит вектор кратчайшего времени в пути от si до кластеров домов, используя последовательность кластеров домов
V/ (41, //,2, · · · , так чтобы значение вектора (vector) vi в координате (coordinate) j, vi[j], было ti,j, равное кратчайшему времени в пути от кластера остановок si до кластера домов hj. См. фиг. 6 для иллюстрации [056].
Последовательность кластеров домов упрощает расчет кратчайшего времени в пути до каждого кластера домов. Например, если клиенту нужно переместиться от кластера остановок si1 и далее от кластера остановок si2, просто складывают векторы vi1 и vi2 покоординатно, а получившаяся сумма содержит общее время в пути от обоих кластеров остановок до каждого кластера домов h1, ., hm.
В одном из вариантов реализации способ хранит время обратного пути от домов до остановок, используя эту же последовательность кластеров домов. Т.е. способ хранит вектор
V / (/ /, 1, t i,2, , t i,m), так что v'iU]=t'hJ, является кратчайшим временем в пути от кластера домов hj до кластера остановок si (необходимо учитывать замену переменных; вектор v'i используется для одного кластера остановок, даже если перемещение осуществляется в обратном направлении) [058].
Как правило, два вектора для одного и того же кластера остановок si не равны, v,^v'i, потому что минимальное время в пути до дома может отличаться от времени в пути из дома (как правило, перемещение - это не симметричный (not symmetric) процесс). Однако в одном из вариантов реализации способ рассчитывает и сохраняет всего один из двух векторов, а также использует его вместо второго, благодаря чему сокращается время расчета и экономится место в системе. В другом из вариантов реализации способ сохраняет средневзвешенное (weighted average) значение каждой координаты двух векторов, благодаря чему может снизиться наихудшая погрешность. Весовые значения могут быть заданы в виде 0,5, либо можно задать предпочтение маршруту до или из определенного кластера домов исходя из, например, частоты запросов [059].
В одном из вариантов реализации способ сохраняет время в пути, округленное до ближайшей целой минуты, используя один бит памяти компьютера, выраженное беззнаковым целым числом от 0 до 254, при этом 255 обозначает неизвестное или слишком долгое время в пути. Хранение таких данных позволяет эффективно складывать векторы с помощью современного компьютерного оборудования, поддерживающего выполнение векторных операций (vector operations) и арифметику с насыщением (saturation arithmetic) (например, набор команд AVX-512/AVX-512 instruction set или внутренние механизмы графического ускорителя (GPU intrinsics)), при этом не давая погрешности выйти за практически приемлемый уровень не более 30 с и охватывая значения общего времени в пути вплоть до 4 ч и более. Можно применять любое другое округление (rounding), например время в секундах можно поделить на 120 и округлить до целого числа, которым будет выражено время при разрешении в 2 мин [060].
В одном из вариантов реализации способ сохраняет вектор не для кластеров. Например, некоторые s1, ., sn обозначают остановки (а не кластеры остановок), или некоторые h1, ., hm обозначают дома (а не кластеры домов).
В одном из вариантов реализации данный способ использует другой вид векторов для сохранения значений времени в пути. Например, хеш-таблицу (hash map) или список (list) (координат, значений). Такие нечасто встречающиеся виды могут иметь преимущество в случае множества неизвестных или слишком больших значений времени в пути [062].
В одном из вариантов реализации способ сохраняет маршруты перемещения, используя векторы, которые идут по последовательности кластеров домов h1, ., hm, либо другой вид векторов, например хеш-таблицу или список (координат, значений). Такие маршруты перемещения могут использоваться
- 9 042786 при обработке запросов для фильтрования маршрутов перемещения, характеристики которых совпадают с условием, заданным в запросе [063].
5. Время в пути по одному маршруту до места работы и обратно.
Авторы дают описание эффективного расчета данным способом кратчайшего времени в пути по какому-либо маршруту до места работы и обратно. Рассмотрим маршрут до места работы и обратно, начинающийся от кластера домов Н, проходящий через работу k>1 и возвращающийся в кластер домов: Н^W1^W2^...^Wk^Н. Нужно найти кратчайшее время в пути для данного маршрута до места работы и обратно от каждого Н. Такой расчет будет довольно затратным, ведь количество кластеров домов может быть каким угодно большим, например 500000, учитывая радиус в несколько метров, заданный для группирования в кластеры. Но данный способ предлагает решение, которое существенно ускоряет поиск: данный способ раскладывает (decomposes) маршрут до места работы и обратно на часть, не привязанную к домам, и часть, привязанную к домам, как показано на фиг. 7.
5.1. Средняя часть: перемещение W1^W2^...^Wk.
Данный способ находит кратчайшее время в пути для перемещения W1^W2^...^Wk, исключая кластер домов. Для каждого отрезка Wi^Wi+1 указанный способ обращается к одному из сервисов построения маршрутов (например, из известных технических решений), который рассчитывает кратчайшее время в пути от Wi до Wi+1 с использованием транспортной системы (например, включая пешие участки, поездки на метро и автобусе, пересадки, либо полностью пеший участок от Wi до Wi+1). После чего данный способ складывает значения кратчайшего времени в пути в виде разных i. Получившаяся сумма выражается следующим образом:
PathNonHomeDuration(Hzi —> Wi —>. . . —> Wk) =
RoutingEngineShortestDuration(147 И^+1).
l<i<k-l
Отметим, что в сервис построения маршрутов потребуется отправить только k-1 обращений. Это число не привязано к количеству домов.
В одном из вариантов реализации данный способ использует время отправления (departure time), срок прибытия (arrival deadline) или иные части запроса при обращении в сервис построения маршрутов [066].
Затем данный способ рассчитывает кратчайшее время в пути для незамкнутой части (open-jaw part) маршрута до места работы и обратно: два отрезка Н >W] и Wk >Н, в которых присутствует кластер домов. Расчет должен производиться очень быстро, ведь его результат понадобится для каждого кластера домов.
5.2. Начальная часть/Start part: перемещение Н^W1.
Данный способ рассматривает два пути перемещения от Н до W1. См. фиг. 8 для иллюстрации. Один из путей предусматривает полностью пеший участок. Если Н и W1 находятся рядом (nearby), зачастую реально самым быстрым будет полностью пешее перемещение. В таком случае данный способ обращается в сервис построения маршрутов (например, из известных технических решений) для расчета кратчайшего времени в пути walk (H^W1). Второй путь предусматривает использование транспортной системы. Данный способ находит кластеры остановок (stopstation clusters), находящиеся в пределах пороговой досягаемости, например 2000 м от W1, обозначая их как множество А. Множество А представляет собой подмножество {s1, .„, sn} всех кластеров остановок (на фиг. 8 A={s1, s2, s3}). Данный метод обращается к сервису построения пеших участков для получения кратчайшего времени в пути walk(si^W1) для каждого si в А. Если Н и W1 не находятся рядом (not nearby), зачастую реально самым быстрым будет перемещение с использованием остановки из множества А, а затем продолжение перемещения по соответствующему пешему участку. Благодаря примененному нами подходу с двумя вариантами (two-way approach) получившееся значение часто является кратчайшим временем в пути [068].
Подход с двумя вариантами может быть применен к каждому кластеру домов. Напомним, что вектор v'i содержит значения кратчайшего времени в пути до кластера остановок si от следующих друг за другом кластеров домов. Таким образом, данный способ рассчитывает кратчайшее время в пути от кластера домов hj, извлекая векторы v'iиз базы данных и используя следующую формулу:
a.j = min{walk(Hj -> 14^), min{r·[/] + walk(si -> VFjjj (Уравнение 1)
В одном из вариантов реализации данный способ рассчитывает walk(Hj^W1), только если расстояние от кластера домов Hj до W1 меньше порогового значения, например 2000 м, либо если время в пути от кластера домов Hj до W1 меньше порогового значения. Обозначим множество таких кластеров домов как J.
В одном из вариантов реализации благодаря обозначению векторов v' данный способ сразу рассчитывает время в пути от каждого кластера домов с помощью векторных операций (vector operations) с ν' следующим образом:
- 10 042786 при j = 1 до т aj = ^ для всех 5; ЕА w = walk(sl —> Wi) / аг \ / min{a1, г- [1] + w] \ а2 \ _ min{a2, V-[2] + w] j \ат/ \min{am, v- [m] + w}/ для всех j EJ w = walk(Hj —> Wi) a} = шт)^, w}.
В одном из вариантов реализации данный способ использует математическую формулу (mathematical formula) mm{walk(Si -> W-A + ν·], s^A где операция + (operation) прибавляет число к значению в каждой координате вектора, а операция min вычисляет минимальное значение в каждой координате по нескольким векторам [072].
Вектор (а1, ..., am) значений времени в пути обозначается следующим образом: PathFromHomeDurations(—> Wi) = (αι, ..., ат).
Пример языка описания алгоритмов для расчета PathFromHomeDurations приведен на фиг. 10.
В одном из вариантов реализации используется формат числа uint8 для хранения aj, v'ij или w. В одном из вариантов реализации сохраненное число выражено в минутах. В одном из вариантов реализации сумма v’i[j]+w для некоторой j выполняется с использованием арифметики с насыщением в диапазоне от 0 до порогового значения, например 255. В одном из вариантов реализации, слагаемое v'1[j] сначала преобразуется в более широкий числовой формат, например форматы fp16 или uint16, и только потом прибавляется к w во избежание арифметического переполнения (arithmetic overflow) при сложении. В одном из вариантов реализации некоторые расчеты, включенные в математическую формулу, выполняются с использованием по крайней мере одной инструкции для векторных операций (в том числе, тензорных операций (tensor operations)), например инструкции AVX-512 или внутренних механизмов графического ускорителя, поддерживаемых аппаратным обеспечением. В одном из вариантов реализации некоторые расчеты, включенные в математическую формулу, разделены (partitioned) и такие разделы выполняются параллельно [075].
В одном из вариантов реализации данный способ использует структуру данных с ближайшей соседней записью (nearest-neighbor), например дерево KD для расположений кластеров остановок, чтобы быстро рассчитывать множество А при обработке запроса.
В одном из вариантов реализации данный способ ограничивает множество А значением, не превышающим количество кластеров остановок, ближайших к W1, например не более 100.
В одном из вариантов реализации данный способ ограничивает множество А кластерами остановок в пределах пешего участка, не выходя за определенное расстояние до W1, например, в радиусе 2000 м.
В одном из вариантов реализации данный способ предварительно рассчитывает кратчайшее время в пути по пешим участкам от точек в пределах порогового расстояния от расположений каждого кластера домов до местоположения кластера домов либо предварительно рассчитывает кратчайшее время в пути по пешим участкам от точек в пределах порогового расстояния от расположений кластеров остановок до расположения кластера остановок. Затем во время обработки запросов данный способ не обращается к каким-либо сервисам расчета пеших участков, а вместо этого использует предварительно рассчитанное время в пути по пешим участкам.
В одном из вариантов реализации кратчайшее время в пути по пешему участку рассчитывается по геодезической линии, игнорируя любые препятствия. Это позволяет ускорить расчет walk(si^W1) в ущерб точности.
В одном из вариантов реализации в уравнении 1 используются маршруты перемещения. Например, если в пользовательском запросе задано условие, ограничивающее количество пересадок между транспортными маршрутами, задают фильтр для si и j: в уравнении находят количество пересадок, сохраненное на маршруте перемещения, и, если это число превысит заданное ограничение, игнорируют определенные si и j в уравнении.
В одном из вариантов реализации группировка значений времени в пути по остановкам si точно так же, как это делалось для v'i, повышает качество работы с базой данных. Действительно, несмотря на то что множество А зависит от пользовательского запроса, который нельзя знать заранее, для каждой si из множества А необходимо получить ожидаемо большое количество значений времени в пути.
В одном из вариантов реализации векторы v'i для массива i случайным образом распределяются по разным блокам обработки. Это может уменьшить интервал ожидания при расчете вектора (a1, ..., am),
- 11 042786 поскольку остановки, включенные во множество А, зачастую равномерно распределены по блокам обработки.
В одном из вариантов реализации векторы v'i для массива i объединяются в блоки обработки по географическому принципу. Это может повысить скорость обработки при расчете вектора (а1, ..., am) за счет уменьшения потребности в передаче данных в силу того факта, что множество А зачастую состоит из остановок, находящихся рядом друг с другом.
5.3. Конечная часть: перемещение Wk^H.
Расчет аналогичен предыдущему пункту, но использует векторы v, а не v'. См. фиг. 9 для иллюстрации. данный способ рассчитывает множество В кластеров остановок в пределах порогового расстояния от Wk (на фиг. 9 множество В=^4, s5}). Таким образом, данный способ рассчитывает кратчайшее время в пути от кластера домов hj в виде
Ibj = min{walk(Wk -> Hj), min{waZk(iyfc sj + iy[/]}j (Уравнение 2)
Как и выше, в одном из вариантов реализации при обозначении вектора как v, данный способ рассчитывает время в пути сразу до каждого кластера домов, используя векторные операции с v по уравнению 2. В одном из вариантов реализации данный способ использует математическую формулу min{waZ/c(I46, -> sj 4- vj Si^B
[086].
Вектор (b1, ., bm) значений времени в пути обозначается следующим образом: PathToHomeDurations(M —>) = (bi, ..., bm).
В данном способе используются варианты, аналогичные разделу 5.2. Например, в одном из вариантов реализации данный способ использует векторную операцию, которая рассчитывает сразу часть вектора (аь ., am) и вектора (bi, ., bm).
5.4. Объединение начальной, средней и конечной частей.
Наконец, данный способ рассчитывает (computes) кратчайшее время в пути по маршруту до места работы и обратно для каждого кластера домов. Данный способ просто складывает два вектора и двигает значения по координатам. Обозначим получившийся вектор в виде
PathDurations( Wi ^>· W2 ... Wk ^) =
PathFromHomeDurations(—> Wi) + PathToHomeDurations(M —>) + PathNonHomeDuration(PFi W2 ^ . . . ^ Wk), (Уравнение 3) где первый + означает покоординатное сложение векторов, а второй + означает прибавление числа к значению у каждой координаты вектора [089].
В одном из вариантов реализации данный способ рассчитывает время в пути с учетом заданного времени отправления из какого-либо географического расположения или срока прибытия в какое-либо географическое расположение по какому-либо маршруту до места работы и обратно [090].
В одном из вариантов реализации данный способ предварительно рассчитывает время в пути PathDurations для заданных маршрутов до места работы и обратно. Например, данный способ рассчитывает и сохраняет
Path From Hom eDurations(—> W) и
PathToHomeDurations(lP —►), для каждого W, который представляет собой школу. В процессе обработки запроса данный способ находит предварительно рассчитанные векторы в базе данных, вместо того чтобы рассчитывать их по уравнению 1, уравнению 2 и уравнению 3 [091].
В одном из вариантов реализации значение PathDurations может быть изменено. Рассмотрим школу W, для приема в которую имеется требование прописки в определенном районе, что означает, что в нее могут ходить только дети из определенных домов. Это условие можно легко выполнить, установив значения координат вектора PathFromHomeDurations(^W) на бесконечность для тех кластеров домов, которые выходят за границы района (zone) прописки для приема в школу, и таким же образом установив значения координат вектора PathToHomeDurations(W^). Аналогичное изменение можно сделать, если W - это ресторан с ограничением по району доставки еды из него или государственное учреждение, в зоне ответственности которого находится определенный район. Измененные таким образом значения могут быть сохранены и использованы при обработке запросов [092].
В одном из вариантов реализации данный способ применяет произвольную функцию манипулирования (manipulation) к значениям координат векторов vi, v'i или PathDurations. Например, это может помочь в реализации государственной политики по снижению тарифа проезда при перемещениях между теми или иными частями городской агломерации в особой экономической зоне, пострадавшей от чрез
- 12 042786 вычайной ситуации. Такая функция может быть применена до обработки запроса (например, в качестве общей политики) или в процессе обработки (например, в качестве персонализированной политики) [093].
В одном из вариантов реализации данный способ рассчитывает PathDurations для подмножества кластеров домов. Например, подмножество определяется по условию характеристик дома, заданных в пользовательском запросе. В одном из вариантов реализации выбираем последовательность h1, ..., hm из кластеров домов таким образом, что эти подмножества часто располагаются на коротком отрезке последовательности, что снижает объем передачи данных.
6. Поиск одного дома.
Данный способ демонстрирует эффективный подбор домов по маршрутам до места работы и обратно. Сначала покажем несколько примеров поисковых запросов, прежде чем представить общий поисковый запрос для одного дома.
6.1. Запрос со взвешенной суммой.
Рассмотрим семью, где один из родителей ходит на работу, которая находится в geo 1, пять раз в неделю, а другой из родителей ходит на работу в geo2 три раза в неделю. Эта семья хочет подобрать дом с кратчайшим временем еженедельных перемещений. Можно найти время еженедельных перемещений семьи для каждого кластера домов в виде взвешенной суммы (weighted sum) двух векторов, а именно
5· Path Durations^ geol —>) + 3 Path Durations^ geol —>).
6.2. Запрос минимального значения.
Рассмотрим случай матери-одиночки, которая работает из дома и провожает ребенка в школу. Ей нужно подобрать дом, который находился бы недалеко от какой-либо школы из множества Е. Можно найти время ежедневных перемещений ребенка для каждого кластера домов в виде минимального покоординатного значения (coordinate-wise minimum) векторов, а именно min PathDurations(-> е ->)
6.3. Общий поисковый запрос для одного дома.
В одном из вариантов реализации данный способ определяет запрос как некую последовательность маршрутов до места работы и обратно path1, ..., pathq для любого q и функцию Deriver: Rq^R , которая преобразует любой вектор чисел q в какое-либо число. Данный способ рассчитывает векторы времени в пути (от начальной позиции путем извлечения предварительно рассчитанных векторов либо и с тем, и с другим)
PathDurations(/W/?i) ..., d^m),
Path Duration ) =(dqx, , dq,m), и покоординатно применяет функцию Deriver к векторам, чтобы получить вектор RequestDurations(f»a/Z?i, ,.,pathq, Denver) = (Deriver(Ji_i, ..., dq^\
Deriver(tZi,2, ..., dq,i),
Deriver(Ji,m,..., dq,m) ) с выведенным временем в пути для каждого кластера домов.
В одном из вариантов реализации функция Deriver представляет собой взвешенную сумму чисел Deriver(xi, . . ., Xq) = W]_ xi + . . . + wq xq, для весовых значений (weights) w1, ..., wq. Весовые значения могут быть положительными или отрицательными. Если время в пути интерпретируется в виде денежной стоимости перемещения, тогда отрицательное весовое значение можно интерпретировать как финансовую экономию, например, если клиент хочет сэкономить на перемещениях по определенному маршруту до места работы и обратно (например, на доставках посылок). Весовые значения могут отражать относительную важность маршрутов перемещения до места работы и обратно, например маршрут до места работы и обратно генерального директора может иметь более высокое весовое значение, чем маршрут до места работы и обратно руководителя первого звена [099].
В одном из вариантов реализации функция Deriver представляет собой минимальное значение чисел
Derivertxi,. . ., xq) = min xt l<i<q
В одном из вариантов реализации функция Deriver представляет собой взвешенную сумму и минимальное значение
Derivertxi, . . ., xr, χ,-ι,. . ., хЭ = %т xi +. . . + wxr + min W; Х;
r+l<i<q
В одном из вариантов реализации функция Deriver является условной, например
- 13 042786
Deriver(xi, x2) = [ if xi < 30 then return xi + X2 else return да], или какой-либо алгоритм.
7. Сравнение двух домов или более.
Данный способ демонстрирует эффективное сравнение множества домов по маршрутам до места работы и обратно. Авторы показывают реализацию этого способа на нескольких примерах, прежде чем представить общий запрос на сравнение.
7.1. Дом, являющийся местом проживания в текущий момент.
Рассмотрим семью, которая живет в некотором доме. Члены семьи перемещаются по определенным маршрутам к местам работы, в школу и другие места, а также в обратном направлении. Семья рассматривает варианты переезда в другой дом и хочет сравнить общее время в пути для их текущего дома с общим временем в пути для других потенциальных новых домов. Данный способ делает такое сравнение гораздо проще.
В одном из вариантов реализации способ рассчитывает время в пути для каждого кластера домов, включая кластер домов hj текущего дома S семьи
RequestDurations = (щ, ..., qm).
Данный способ возвращает ответ, содержащий вектор разности (difference): указанный способ вычитает значение у-й координаты из значения каждой координаты (щ-ф ,..., qj-1-qj, 0, qj+1-qj , ... , qm ~ qj).
Отрицательное значение координаты вектора разности означает, что дом, соответствующий координате, имеет более короткое время в пути по сравнению с текущим домом S [105].
В одном из вариантов реализации данный способ использует одни маршруты до места работы и обратно для текущего дома и другие маршруты до места работы и обратно для других домов. Таким образом, данный способ помогает семье оценить гипотетический сценарий: Допустим, мы поменяем место работы и переедем в какой-то другой дом. Как новое время в пути до места работы и обратно будет соотноситься с нашим текущим временем в пути до места работы и обратно?.
7.2. Общее сравнение двух домов или более.
Рассмотрим семью, в которой и мама, и папа должны будут продолжать ходить в свои прежние места работы (место работы не меняется), но дети могут поменять школы. Рассмотрим другой пример двух семей: родители и бабушка с дедушкой со стороны матери. Они хотят найти два дома в пределах не более 30 мин пути друг от друга, при этом один дом должен быть рядом с больницей, а другой дом рядом с определенными школами и местами работы. Данный способ делает сравнения таких домов с другими домами гораздо более простым.
В одном из вариантов реализации данный способ рассчитывает время в пути PathDurations для кластеров домов по некоторому ряду маршрутов до места работы и обратно
PathDurations(/w/7i) = (Ji.i, ..., di,m),
PathDurationsf/W/fy) = (dq,i, ..., dq^.
После чего данный способ применяет обобщенную функцию Deriver, которая работает не покоординатно, как в разделе 6.3, а одновременно по всем значениям q-m времени в пути и дает вектор одного или множества чисел. Другими словами, обобщенная функция выглядит следующим образом:
Denver : R? т R<
для некоторого у.
8. Поиск или сравнение.
В одном из вариантов реализации функция Deriver представляет собой какой-либо алгоритм, например рандомизированный алгоритм, который берет какую-либо вводную (например, маршруты перемещения до места работы и обратно, значения кратчайшего времени в пути, дома или условие, заданное пользовательским запросом) и выдает какой-либо результат (например, рейтинг (top list) домов, отвечающих пользовательскому условию, с кратчайшим временем в пути, которое также отвечает пользовательскому условию, с сортировкой по кратчайшему времени в пути) [109].
9. Варианты.
Люди с базовыми техническими знаниями хорошо представят себе множественные модификации и исполнения, не отклоняясь от общей структуры и сути реализации изобретения. Приведем несколько вариантов для иллюстрации.
9.1. Расширение перемещений.
В одном из вариантов реализации данный способ сначала рассчитывает кратчайшее время неполно
- 14 042786 го перемещения, а затем расширяет (extends) его на выбранные кластеры домов. Здесь не выполняется дополнительная обработка и сохранение с целью снижения объема хранения и времени обработки за счет меньшего числа кластеров домов в векторах vi и v'i.
Метод определяет связующие точки (connectors) домов, которые представляют собой некоторые элементы транспортной системы. В одном из вариантов реализации связующие точки домов - это кластеры домов или кластеры остановок, которые могут отличаться от кластеров, описанных в разделе 4.1. Затем данный способ предварительно рассчитывает и сохраняет в базе данных кратчайшее время в пути от кластеров остановок до кластеров домов, используя варианты реализации, аналогичные описанным в разделе 4 [112].
При получении запроса данный способ рассчитывает кратчайшее время в пути от места работы W, содержащегося в запросе, до выбранных кластеров домов. Для этой цели данный способ определяет кластеры остановок рядом с работой W и извлекает предварительно рассчитанные значения кратчайшего времени в пути от ближайших кластеров остановок до связующих точек домов, чтобы получить кратчайшее время в пути между местом работы W и связующими точками домов, как описано в разделе 5. В одном из вариантов реализации такой расчет использует векторные операции, аналогичные описанным в разделах 5.2 и 5.3. После чего данные значения кратчайшего времени в пути расширяются дальше связующих точек домов, получая значения кратчайшего времени в пути между местом работы W и выбранными кластерами домов. Это можно проделать, просто найдя для каждого кластера домов минимальное расширенное перемещение (которое может содержать не только пешие участки), маршрут которого проходит через какую-либо связующую точку домов рядом с кластером домов, например, в пределах 2000 м, а в некоторых случаях найдя прямой кратчайший маршрут между местом работы W и кластером домов (аналогично разделам 5.2 и 5.3). В одном из вариантов реализации в зонах перекрытия данный способ использует и связующие точки домов, и векторы vi и v'i.
Качество экстраполяции перемещений пропорционально общему количеству связующих точек домов, а также пропорционально количеству связующих точек домов рядом с каким-либо выбранным кластером домов. В одном из вариантов реализации расширение используется лишь в нескольких частях городской агломерации, когда два количественных значения скорее всего будут небольшими. В одном из вариантов реализации данный способ использует функцию издержек на выполнение для следующих целей:
(1) определение связующих точек домов;
(2) выбор кластеров домов; и (3) определение подмножества ближайших связующих точек домов для каждого из выбранных кластеров домов.
9.2. Перемещение по маршруту до места работы и обратно на автомобиле.
В одном из вариантов реализации авторы рассчитали время в пути по маршруту до места работы и обратно на автомобиле, а не на общественном транспорте. Это сделано путем внесения небольших модификаций в предыдущие пункты.
При предварительной обработке транспортной системы для домов по разделу 4 вместо использования GT в качестве графа системы общественного транспорта возьмем GT как граф схемы движения на автомобиле. Граф схемы движения на автомобиле можно получить, например, из известных технических решений. Такой граф может иметь вершины, обозначающие географические расположения на дорогах, и ребра, обозначающие движение автомобиля или поворот автомобиля; ребра могут содержать данные о времени движения в различное время суток, например, в часы-пик.
Расширим GT. Для каждого кластера домов s, добавим вершины
HOMECLUSTER SOURCEs и
HOME CL USTER TARGET s.
Соединим каждый кластер домов с какими-либо дорогами, находящимися в пределах порогового расстояния, например 100 м, добавив вершину
CONNECTOR г, для по крайней мере одного r. В одном из вариантов реализации вершина обозначает кратчайшую проекцию (shortest-distance projection) расположения кластера домов на дорогу, которая находится в пределах порогового расстояния; дорога может находиться внутри автостоянки, назначенной кластеру домов. Эта вершина соединяется с двумя вершинами кластера домов ребрами с пометкой Zero и весовым значением 0. Вершина также соединяется с вершинами, обозначающими конечные точки отрезка дороги. Вместо добавления кластеров остановок, которые не нужны, поскольку теперь GT не моделирует ни станции метро, ни автобусные остановки, добавим вершины
REPRESENTA TIVESOURCEs' и
REPRESENTA TIVE TARGET J для массива s' и t'; данные вершины представляют (represent) расположения, которые часто встре
- 15 042786 чаются (frequently occur) на кратчайших маршрутах; расположения могут быть получены, например, из известных технических решений. Данные вершины могут представлять кластеры. Данные вершины соответствующим образом соединяются с другими вершинами при помощи ребер [117].
Авторы используют расширенную модель GT для расчета кратчайшего времени движения маршрутам графа от каждого
REPRESENTA TIVESOURCEs’ до каждого
HOME CL USTER TARGET s, и от каждого
HOMECLUSTER SOURCEs до каждого
REPRESENTA TIVE TARGETt’, можно использовать варианты реализации, аналогичные вариантам, описанным в разделе 4.1. Данные значения времени в пути будут сохранены в виде вектора vi и v'i, как описано в разделе 4.2.
При расчете времени в пути по маршруту до места работы и обратно авторы использовали движение на автомобиле вместо прохождения пеших участков, как в разделе 5.
Для начальной части перемещения делаем следующие модификации по сравнению с разделом 5.2. Вместо walk(Hj^W1) используем время движения на автомобиле от кластера домов Hj до Wb полученное, например, из известных технических решений; в одном из вариантов реализации вместо этого задаем такое время как бесконечность, если расстояние между Hj и W1 превышает пороговое значение. Множество А представляет собой набор вершин
REPRESENTA TIVE TARGETJ' расположенных в пределах порогового расстояния от W1. Для каждой вершины siGА авторы рассчитали время движения на автомобиле от si до W1, используя, например, известные технические решения. Затем применили соответствующие модификации в уравнении 1 [120].
Для конечной части перемещения выполним такие же модификации, но теперь в раздел 5.3. Вместо walk(Wk^Hj) используем время движения на автомобиле от Wk до кластера домов Hj, полученное, например, из известных технических решений; в одном из вариантов реализации вместо этого задаем такое время как бесконечность, если расстояние между Wk и Hj превышает пороговое значение. Множество В представляет собой набор вершин
REPRESENTA TIVESOURCE s’ расположенных в пределах порогового расстояния от Wk. Для каждой вершины sieb рассчитаем время движения на автомобиле от Wk до si, используя, например, известные технические решения. Затем применим эти модификации в уравнении 2 [121].
Используем другие варианты реализации, упомянутые в разделе 5. Например, можно рассчитать время в пути на автомобиле по геодезической линии.
Можно просто расширить структуру расчета из раздела 6, чтобы иметь возможность ограничивать виды транспорта, используемые на каждом из маршрутов до места работы и обратно. В результате можно определить, например, время в пути по маршруту до места работы и обратно для каждого дома семьи, в которой один из родителей ездит на работу, находящуюся в geo1 на автомобиле пять раз в неделю, а другой из родителей ездит на работу в geo2 на общественном транспорте три раза в неделю.
Можно аналогичным образом расширить схему сравнения из раздела 7. В результате можно, например, найти новый дом, из которого клиент будет ездить на автомобиле, и сравнить с текущим временем в пути на общественном транспорте. Результат, полученный данным способом, можно использовать как мотив к покупке автомобиля в силу большего удобства при перемещении.
9.3. Перемещение с использованием других видов транспорта.
В одном из вариантов реализации данный способ использует маршруты до места работы и обратно с другими видами транспорта, например только пешком; только на велосипеде; только на экспрессавтобусе и пешком; только на метро и пешком; только на экспресс-автобусе, метро и пешком; только в совместно используемых автомобилях и пешком; водным транспортом; на самолетах; и т.д. Просто используем модификации, аналогичные описанным в разделе 9.2. В одном из вариантов реализации данный способ определяет другие дома и другие средства перемещения, дает пользователю рекомендации и объясняет выгоду по сравнению с текущим домом и текущими средствами перемещения.
Кратчайшее плечо графа на заданном графе можно рассчитать, не зная географических расположений разных вершин графа. Так, в одном из вариантов реализации, данный способ использует транспортную систему, различные элементы (elements) которой не имеют привязки к географическому расположению.
Не нужно физически перемещать объекты по транспортной системе. Для данного способа нужно только иметь возможность определить маршрут или длины маршрутов между элементами транспортной системы. Так, компьютерная сеть, по которой перемещаются данные, служит примером транспортной системы, в которую входят следующие транспортные элементы: кабели/линии (по аналогии с дорогами)
- 16 042786 и сетевые узлы/коммутаторы (по аналогии с остановками/поворотами). Любой человек, обладающий базовыми техническими знаниями, сможет привести множество примеров транспортных систем [127].
9.4. Условия по маршрутам перемещения.
Можно запросто реализовать разные условия для фильтра (filtering conditions) маршрутов перемещения. Например, можно построить граф G, который не имеет пересадки между какими-либо линиями метро, но имеет пешие участки между кластерами домов и кластерами остановок. Вместе с модификациями, аналогичными описанным в разделе 9.2, данный способ проведет поиск или сравнение домов, живя в которых клиент будет с комфортом добираться от дома до работы (и дом, и работа должны будут находиться в шаговой доступности от станций метро на одной линии). Аналогичным образом можно построить G и изменить алгоритмы расчета кратчайшего плеча графа, чтобы ограничить плечо графа максимум одной пересадкой либо из метро на автобус, либо из автобуса на метро, или пересадкой в определенный интервал времени, или видом маршрута, наиболее часто используемого клиентами. В данном способе предусмотрены другие варианты установки фильтра маршрутов перемещения, которые может представить любой человек с базовыми техническими знаниями.
9.5. Условия по домам.
В одном из вариантов реализации данный способ получает условие фильтра по разным характеристикам домов, ищет или сравнивает дома, характеристики которых соответствуют условию. Характеристики могут быть следующие: тип (например, отдельный дом или квартира в высотке), форма проживания (например, с покупкой или арендой), цена, комиссия агентства недвижимости, налоги, максимальная сумма платежа по ипотеке, количество комнат или санузлов, площадь/размер дома, выход окон по сторонам света, номер этажа в доме, количество этажей в здании или стандартная сумма ежемесячных коммунальных платежей. Данный способ просто хранит перечень характеристик для каждого дома и в зависимости от условия определяет дома, характеристики которых соответствуют условию. Время перемещения для таких совпавших с условием домов можно получить по времени перемещения для кластеров домов. В данном способе предусмотрены другие варианты установки фильтра домов, которые может представить себе любой человек с базовыми техническими знаниями.
9.6. Метапоиск или сравнение.
В одном из вариантов реализации данный способ ищет или сравнивает дома на основе комбинации предыдущих запросов поиска и сравнения и ответов на них. Это можно представить как метаспособ (meta method) (способ, который использует сам себя). Он полезен, например, для расчета значения, отражающего потенциал застройки новыми объектами недвижимости.
Опишем один из вариантов реализации метаспособа. Получили некоторое количество и маршрутов до места работы и обратно path1, ..., pathu. В одном из вариантов реализации маршруты до места работы и обратно берутся из истории использования компьютерного сервиса по поиску и сравнению домов, каждый маршрут до места работы и обратно может быть указан разными пользователями сервиса. Для каждого маршрута до места работы и обратно pathk рассчитаем время в пути для всех кластеров домов PathDurations(pathk) согласно разделу 5. Затем применим агрегатор (aggregator), который обработает значения времени в пути. В одном из вариантов реализации для каждого маршрута до места работы и обратно pathk получаем вектор весовых значений wk. В одном из вариантов реализации каждое весовое значение представляет собой вероятность выбора пользователем того или иного дома в соответствующем кластере домов, что может зависеть от условия по объектам недвижимости или маршрутам перемещения, заданного пользовательским запросом. Затем покоординатно рассчитаем агрегаты, как показано в следующей формуле и — / wk- PathDurations(pat/ik) и Z—। к=1 j-й агрегат - это средневзвешенное время в пути для кластера домов Hj. В одном из вариантов реализации j-й агрегат обозначает нормализованный вклад кластера домов в общее время в пути по всей городской агломерации; в некотором смысле он ставит кластер домов в центральное положение (centrality) относительно городской агломерации. Так как данный способ быстро рассчитывает PathDurations(pathk), можно быстро рассчитать агрегаты. Это позволяет быстро рассчитывать востребованность каждого объекта недвижимости с точки зрения транспортного удобства [131].
Люди с базовыми техническими знаниями легко представят себе многие другие варианты реализации метаспособа. В других вариантах реализации маршруты до места работы и обратно составляются от географических расположений домов и мест работы. В других вариантах реализации весовые значения задаются отличными от нуля для некоторого ряда кластеров домов с наименьшим временем пути, а для других кластеров с нулевым значением. В других вариантах реализации специалист по обработке данных оценивает гипотетические сценарии; ведь благодаря преимуществам данного способа это можно сделать быстро. В других вариантах реализации агрегатор представляет собой произвольный алгоритм, например алгоритм, рассчитывающий дисперсию, квантили, накопительную функцию распределения или вероятность превышения пороговых значений.
- 17 042786
9.7. Маршрут до места работы и обратно с двумя домами или более.
В одном из вариантов реализации маршрут до места работы и обратно включает (involves) какиелибо два дома или более. Это полезно, например, при поиске и сравнении домов сразу для двух семей или более.
В одном из вариантов реализации H1 и H2 являются двумя кластерами домов. Можно рассчитать время в пути по какому-либо маршруту от места работы и обратно H1+path+H2, который начинается в H1, но заканчивается в H2, который может отличаться от Hb Просто используем j, соответствующий H1 в уравнении 1, но в уравнении 2 используем j, соответствующий H2.
В одном из вариантов реализации предварительно рассчитаем оба вектора (a1, ..., am) и (b1, ..., bm), а затем найдем время в пути для двух произвольных кластеров домов Hi и Hj, просто прибавив значение координаты (a1, ..., am), соответствующее Hi, к значению координаты (b1, ..., bm), соответствующее Hj, плюс время в пути по промежуточной части маршрута (не привязанной ни к Hj, ни к Hj). Отметим, что время в пути для любой пары кластеров домов, одной из пар m2, можно найти по константе времени O(l), используя только векторное пространство O(m). Это обусловлено аддитивной структурой (additive structure) времени в пути и тем фактом, что маршрут выступает разделителем между любыми двумя кластерами домов.
В одном из вариантов реализации множество кластеров домов, разрешенное для H1, может отличаться от множества кластеров домов, разрешенного для H2. Например, пользовательское условие может задать ограничение по нахождению H1 в восточной части города, a H2 в западной части города. В этом случае можно использовать вектор (b1, ..., bm) длиной m', отличной от m.
В более общем виде данный способ рассчитывает время в пути для какой-либо последовательности k>2 кластеров домов H1^path1^H2^path2^...^pathk.1^Hk. Используя предварительный расчет, это можно сделать по O(k) времени и O(m-k) пространству.
В одном из вариантов реализации маршрут до места работы и обратно включает прямое перемещение между кластерами домов, Нх+Ну, как на этом примере маршрута до места работы и обратно: H1^path1ху^path2^H2. На этом примере данный способ делит расчет на три части:
(1) расчет времени в пути H1^path1х;
(2) расчет времени в пути Нх+Ну; и (3) расчет времени в пути HY^path2^H2.
Части (1) и (3) могут выполняться способом, описанным выше в данном разделе 9.7. Часть (2) может выполняться аналогично, если теоретически принять либо Нх, либо Ну в качестве места работы. Например, используя векторы v'i в координате, соответствующей Нх, получим время в пути от кластера домов Нх до каждого кластера остановок; их можно извлечь в виде столбца из предварительно рассчитанных векторов v'i, l<i<n. Затем расширим от каждого кластера остановок в пределах пороговой дистанции от Ну для получения полного перемещения до Ну аналогично разделу 5.2; см. пример на фиг. 8 и уравнение 1. Благодаря предварительному расчету по данному способу (3) можно выполнить по времени пропорционально количеству кластеров остановок в пределах пороговой дистанции. В других вариантах реализации, так как кластеры домов известны заранее, предварительно рассчитываем время в пути между каждой парой кластеров домов, а затем просто берем время в пути как константу времени O(l). Аналогичное деление естественным образом применяется к любому маршруту до места работы и обратно, который содержит одно или больше прямых перемещений между кластерами домов.
9.8. Исследования пространств.
Данный способ представляет высококачественные алгоритмы исследований пространств (exploration algorithms). Рассмотрим ситуацию, когда клиент перемещается по определенному маршруту до места работы и обратно H1+path+H2 с некоторой стоимостью; функция стоимости (cost function) зависит от двух домов H1 и H2. Клиент ищет дома Н1 и H2, чтобы минимизировать эту стоимость. Это полезно, например, когда семья желает сменить места работы (Н1 и H2) обоих родителей одновременно, при этом минимизируя общее время в пути от расположения текущего дома (в пределах маршрута) семьи; это известная задача о двух телах.
Одним из вариантов реализации исследования пространства является алгоритм градиентного спуска (gradient descent algorithm). Функция стоимости может быть дифференцируемой функцией (differentiable function); например, при условии фиксированного маршрута функция берет два дома Н1 и H2 в качестве вводных данных и возвращает в качестве результата расстояние между двумя домами Н1 и H2, умноженное на время в пути по маршруту до места работы и обратно H1+path+H2 (данную функцию можно соответствующим образом расширить за пределы дискретного домена (discrete domain) пар домов, например, по географическому расположению домов и экстраполяции). На заданном шаге алгоритма спуска градиента алгоритм рассчитывает градиент функции стоимости при заданной паре домов, а затем отбирает пару домов по направлению градиента (direction of the gradient) для выполнения следующего шага алгоритма. Градиент может быть рассчитан по значениям функции стоимости, например, с помощью двухточечной формулы (two-point formula), для которой нужно два значения. В одном из вариантов реализации результатом алгоритма спуска градиента является та пара домов, где градиент имеет достаточно
- 18 042786 низкий критерий (norm) [140].
В одном из вариантов реализации предварительно рассчитываем векторы (а1, ..., am) и (b1, ..., bm), помещенные в векторное пространство О(m), и на каждом этапе данного способа рассчитываем градиент по константе O(l) времени. Таким образом, алгоритм градиента спуска зачастую может ускорить работу.
В одном из вариантов реализации не рассчитываем предварительно (а1, ..., am) и (bi, ..., bm), а вместо этого получаем необходимые значения по уравнению 1 и уравнению 2, когда требуется. Такой подход может использоваться, если количество домов настолько большое, что предварительный расчет (a1, ..., am) или (b1, ..., bm) практически нецелесообразен.
В одном из вариантов реализации алгоритм исследования пространства может иметь ограничения по домам. Например, если требуется маршрут до одного дома в направлениях туда-обратно, ограничением будет являться Н12. Можно ограничить географический регион, разрешенный для Н1 или разрешенный для H2.
В одном из вариантов реализации алгоритм исследования пространства использует маршрут до места работы и обратно, включая только один дом: Н1ypath или pathyl 11 В других вариантах реализации алгоритм исследования пространства использует маршрут до места работы и обратно, включая два дома и более, как описано в разделе 9.7.
В одном из вариантов реализации функция стоимости зависит от домов и мест работы. Например, такая функция стоимости может использоваться, если клиент стремится минимизировать соотношение издержек по времени и деньгам. В одном из вариантов реализации функцией стоимости является время перемещения между Н и W, плюс денежная стоимость аренды Н, минус заработная плата, выплачиваемая на W с возможным присвоением весовых значений, которые будут означать относительную важность этих составляющих. В одном из вариантов реализации благодаря преимуществам данного способа, спуск градиента может эффективно использоваться для поиска домов и мест работы по такой функции стоимости.
10. Общий случай.
В одном из вариантов реализации слова дом и работа имеют произвольное смысловое значение. Например, рассмотрим ситуацию, когда клиент ищет работу, которая находилась бы недалеко от его текущего дома. Клиент не хочет переезжать в другой дом, а просто хочет найти работу поближе к текущему дому. В этом случае можно просто применить данный способ. При наличии ряда точек на всей городской агломерации, в которых люди работают (например, различные учреждения, предприятия и т.д.), данный способ рассчитывает время в пути между каждым кластером рабочих мест и каждым кластером остановок. Таким образом, данный способ можно считать инструментом поиска или сравнения рабочих мест по маршруту до места работы и обратно. В одном из вариантов реализации данный способ ищет или сравнивает места работы по виду занятости пользователя или уровню зарплат, а также по времени в пути от текущего дома пользователя. В качестве другого примера рассмотрим компанию, которая хочет перевезти свой головной офис в новое место. Данный способ может быть использован для расчета совокупного времени в пути компании для каждого нового расположения головного офиса по всей городской агломерации. Таким образом компания может определить, как новое расположение повлияет на маршруты ее сотрудников до места работы и обратно. Новое расположение можно выбрать, например, так, чтобы (1) уменьшить время в пути до работы и обратно при самых неблагоприятных условиях; и (2) среднее время в пути до работы и обратно было небольшим, тем самым решив задачи для каждого сотрудника и общества в целом.
В данном описании много сказано про время в пути как основную цель поиска или сравнения. Однако данный способ может брать за основу любые другие цели, например денежная стоимость перемещения; расстояние в метрах; определенные характеристики или атрибуты маршрутов перемещения, например количество пересадок или длина пеших участков; или характеристики домов, например цена, размер или тип. В одном из вариантов реализации это просто решается построением соответствующих графов и заданием весовых значений ребер. Разные цели могут объединяться при поиске с многоцелевой оптимизацией (multi-objective optimization) на основе многомерной стоимости (multi-dimensional cost), например при поиска дома, расположение которого минимизирует время в пути, что отражается в финансовых затратах на перемещение [147].
В общем случае данный способ использует произвольные точки S1, ..., Sm (точками (site) авторы называли дома в разделах выше) и произвольные места P1, ..., Pk (местами (place) авторы называли места работы в разделах выше), и данный способ ищет или сравнивает точки S1, ..., Sm по маршрутам или длинам маршрутов (в разделах выше маршрутами (route) называлось описание перемещения, а длиной маршрута (route length) называлось расстояние перемещения), которые начинаются или заканчиваются в некоторых точках или проходят через некоторые места, определяемые произвольными спецификациями маршрутов (спецификацией маршрутов (route specification) назывался маршрут до места работы и обратно в разделах выше), включающими точки и места. Для поиска или сравнения может использоваться любой из вариантов, описанных в разделе 9. Таким образом, данный способ может возвращать в качестве ответа маршруты или длины маршрутов либо их представление (representation). Информацию, рассчиты
- 19 042786 ваемую в одном из вариантов реализации способа, можно использовать рекурсивно (recursively) в качестве вводных для того или иного варианта реализации способа [148].
11. Компьютерная система.
Одним из вариантов реализации изобретения является компьютерная система (computer system), которая ищет или сравнивает объекты недвижимости по маршрутам до места работы и обратно. Авторы проиллюстрировали вариант реализации компьютерной системы на фиг. 11.
В данном описании авторы используют термин модуль (module). Как известно из области техники, данный термин означает компьютерную (под)систему, выполняющую определенный функционал. Данная разбивка компьютерной системы на отдельные модули представлена в качестве одного из вариантов и не является обязательной. Люди с базовыми техническими знаниями отметят, что систему можно скомпоновать по модулям в ином виде, не нарушив сущность изобретения.
В одном из вариантов реализации каждое перемещение по какому-либо маршруту до места работы и обратно содержит время отправления.
Один модуль (1101) системы считывает данные о транспортной системе из источника данных (1102) и строит граф G. При построении графа модуль берет данные о домах из источника данных об объектах недвижимости (1103), а из другого источника данных (1104) берет кратчайшие пешие участки между кластерами домов и кластерами остановок, а также рядом с ними. Граф G содержит данные о расписании маршрутов транспорта. Модуль выдает граф без вершин
HOME CLUSTER SOURCE s (1105), а также выдает граф без вершин
HOME CL USTER TARGET s но с перевернутыми ребрами (1106). Также модуль строит структуру данных с ближайшими соседними записями (1107), чтобы можно было находить остановки в пределах порогового расстояния от какого-либо географического расположения, и предварительно рассчитывает кратчайшие пешие участки рядом с кластерами домов и кластерами остановок (1108).
Одновременно другой модуль (1109) системы считывает два графа и рассчитывает кратчайшее плечо графа. В одном из вариантов реализации модуль просматривает временные интервалы каждые 5 мин в течение дня. Для каждого времени отправления модуль строит одну таблицу (1110), содержащую кратчайшее время в пути от кластеров остановок до кластеров домов, используя (1105), и еще одну таблицу (1111), содержащую кратчайшее время в пути от кластеров домов до кластеров остановок, используя (1106). В одном из вариантов реализации каждое время в пути, округленное до ближайшей минуты, сохраняется как тип данных uint8 на языке программирования C++, резервируя максимальное значение 255 как обозначение неизвестного или очень долгого времени в пути. В одном из вариантов реализации таблицы размещаются (laid out) на дисках HDD по строкам (row-major order). В одном из вариантов реализации система использует иерархию кэширования (cache hierarchy), используя диски HDD, диски SSD и оперативную память. В одном из вариантов реализации таблицы или их части сжимаются (compressed) при помощи алгоритма сжатия, например разностного сжатия (delta compression). По наблюдениям авторов для любой пары из кластера домов и кластера остановок время в пути часто является одинаковым в тех или иных периодах времени. Такое сходство также зачастую справедливо в соседнем окружении пары. В одном из вариантов реализации подбираем последовательность h1, ..., hm кластеров домов так, чтобы любой hi и hi+1, являющиеся соседними (adjacent) в последовательности, с высокой вероятностью были ближайшими кластерами домов, и подбираем последовательность s1, ..., sn кластеров остановок так, чтобы любая si и si+1, являющиеся соседними в последовательности, с высокой вероятностью были ближайшими кластерами остановок [153].
Модули (1101) и (1109) работают в непрерывном режиме. В результате в системе обеспечивается актуальность данных о времени в пути с учетом определенном времени отправления.
Параллельно модуль времени в пути (1112) рассчитывает PathDurations. Имея маршрут до места работы и обратно, а также время отправления, модуль обращается (1113) за соответствующими значениями PathDurations, которые уже были предварительно рассчитаны. Недостающие значения рассчитываются из начальной позиции: модуль обращается к источнику навигационных данных (1114) для расчета значения PathNonHomeDuration части маршрута до места работы и обратно, не включающей какие-либо дома. Также модуль рассчитывает время в пути PathFromHomeDurations и PathToHomeDurations, включающие дома, путем обращения за векторами ближайших остановок (1107), пешеходных участков (1108) и времени в пути от дома (1110 и 1111) в соответствующее время отправления.
Параллельно модуль обработки запросов (1115) ищет или сравнивает объекты недвижимости. Любой запрос (1116) содержит маршруты до места работы и обратно, включая географические расположения на маршрутах до места работы и обратно, и время отправления, а также функцию Deriver. При получении запроса от пользователя модуль извлекает PathDurations из модуля времени в пути (1112), применяет функцию Deriver и возвращает пользователю информацию, выражающую результат функции Deriver (1117).
Аспекты изобретения могут быть реализованы в форме устройства, программного обеспечения или
- 20 042786 аппаратно-программного комплекса. Шаги в изобретении, например блоки принципиальной схемы, могут выполняться не по порядку, частично параллельно или браться из кеша в зависимости от функционала или оптимизации. Аспекты изобретения могут быть реализованы в последовательной системе или параллельной/распределенной системе, в которой каждый компонент содержит в себе определенный аспект; можно предусматривать резервирование в других компонентах, а связь между компонентами может быть реализована, например, через любого вида сети. Изобретение не описывается с отсылкой на какой-либо конкретный язык программирования. Компьютерная программа, выполняющая операции по аспектам изобретения, может быть написана на любом языке программирования, например C++, Java или JavaScript. Какая-либо программа может исполняться на произвольной аппаратной платформе, например в центральном процессоре (ЦП) или графическом процессоре (ГП), а также связанными запоминающими устройствами или носителями. Программа может исполнять аспекты изобретения на одной или нескольких программных платформах, включая, помимо прочих, смартфоны с операционными системами Android или iOS, или интернет-браузеры, например Firefox, Chrome, Internet Explorer или Safari.
12. Компьютерный сервис.
Одним из вариантов реализации изобретения является компьютерный сервис (computer service) по поиску или сравнению объектов недвижимости по маршрутам до места работы и обратно. Сервис предоставляется пользователям через пользовательское устройство, например, в виде приложения на смартфоне или сайта в сети интернет. Любому человеку с базовыми техническими знаниями очевидно, что изобретение не ограничено в использовании только на перечисленных устройствах. Также очевидно, что представление сервиса на данных схемах можно изменить (например, изменив компоновку, размеры, цвета, форму, добавив или убрав компоненты), не нарушая сущности изобретения.
В одном из вариантов реализации доступ к сервису осуществляется через приложение на смартфоне. См. фиг. 12 для иллюстрации. Пользователь вводит запрос. В одном из вариантов реализации запрос включает желаемые характеристики объекта недвижимости (1201), например 3 комнаты, многоэтажное знание, верхние этажи;
маршруты до места работы и обратно (1202, 1203, школы Towsend или Jericho High, 1204), время отправления (1205, 1206) и частоту перемещения по каждому маршруту (1207, 1208); и географическое расположение текущего дома (1209) пользователя.
В ответ сервис возвращает информацию о времени в пути. Например, сервис отображает (renders) географические расположения объектов недвижимости, соответствующие пользовательскому запросу (1210). Сервис показывает зависимость времени в пути от расположения объектов в сравнении с текущим домом. Сервис показывает краткую информацию (summary) о соответствующем объекте недвижимости, например его цену. Объекты недвижимости можно нанести (stacked) на двухмерную карту, так чтобы объекты недвижимости с более коротким временем в пути были на верхнем слое, а объекты недвижимости с более длинным временем в пути были на нижнем слое. Если количество объектов такое, что их нормальное отображение на карте затруднено, тогда сервис может сгруппировать объекты недвижимости и отобразить кластеры, размер которых коррелирует с количеством объектов недвижимости в кластере. Кластер может отображать краткую информацию, например, о количестве, типовых характеристиках объектов недвижимости в кластере [160].
В одном из вариантов реализации сервис показывает объекты недвижимости с кратчайшим временем в пути. Краткая информация об объектах недвижимости также отображается (1211). Объекты недвижимости можно сортировать по времени в пути.
В одном из вариантов реализации сервис отображает карту интенсивности (heatmap), на которой цветом выделено время в пути из каждого района городской агломерации, например минимальное время для района, как можно увидеть на иллюстрации фиг. 1. Карта интенсивности может показывать разницу времени в пути для каких-либо домов и времени в пути для текущего дома пользователя. В одном из вариантов реализации карта интенсивности показывает только те объекты недвижимости, которые соответствуют желаемым пользовательским характеристикам объекта недвижимости [162].
В одном из вариантов реализации сервис отображает гистограмму (histogram) времени в пути (1212). Гистограмма содержит время в пути по одной оси, а по другой оси долю объектов недвижимости, расположение которых обеспечивает соответствующее время в пути. В одном из вариантов реализации гистограмма показывает только те объекты недвижимости, которые соответствуют желаемым пользовательским характеристикам объекта недвижимости. В одном из вариантов реализации пользователь может наводить на какой-либо участок гистограммы (1213), а сервис будет отображать результаты по времени в пути для соответствующего участка. В одном из вариантов реализации данный способ использует другой вид графиков, например круговую диаграмму (pie chart) [163].
В одном из вариантов реализации пользователь может ограничить маршруты перемещения, например, ограничив общее время прохождения пеших участков, количество пересадок и т.д., например, используя слайдеры диапазонов (1214).
В одном из вариантов реализации сервис отображает краткую информацию о маршруте перемещения для объекта недвижимости.
- 21 042786
В одном из вариантов реализации сервис возвращает пользователю по крайней мере одно из следующего:
(а) географическое расположение: места или точки, отображенной на карте;
(b) время отправления или время прибытия для: места или точки;
(c) краткую информацию о точке; краткая информация может включать по крайней мере одно из следующего: имя или адрес точки, цену точки или размер точки;
(d) краткую информацию о точках, образующих кластер из ближайших точек;
(e) изображение кластера ближайших точек, размер изображения, коррелирующий с количеством точек в кластере ближайших точек;
(f) расположение точек по приоритету индекса z (z-index order) на основе длины маршрута; более короткие маршруты должны быть на верхнем слое карты;
(g) информация о маршруте и длине маршрута; информация может включать по крайней мере одно из следующего:
(i) длину маршрута, время, денежные затраты, скорость или время ожидания;
(ii) название транспортного маршрута, автомобильной дороги, пешего участка, остановки, точки поворота или станции пересадки между маршрутами общественного транспорта; или (iii) географическое расположение с точки зрения денежных затрат, скорости, времени ожидания, транспортного маршрута, автомобильной дороги, пешего участка, остановки, точки поворота или станции пересадки между маршрутами общественного транспорта;
(h) гистограмма длины маршрута через точки; или карта интенсивности длин маршрута через точки, изображенные на карте;
(i) минимальная длина маршрута; гистограмма минимальной длины маршрута через точки; или карта интенсивности минимальной длины маршрута через точки, изображенные на карте;
(j) взвешенная длина маршрута; гистограмма взвешенной длины маршрута через точки; или карта интенсивности взвешенных длин маршрута через точки, изображенные на карте;
(k) дифференцированная длина маршрута; гистограмма дифференцированной длины маршрута через точки; или карта интенсивности дифференцированных длин маршрута через точки, изображенные на карте;
(l) изображение результата применения функции Deriver;
(m) точка с наименьшей длиной маршрута через точки при ограничении по денежным затратам на перемещение;
(n) какие-то из представленных выше подпунктов с (а) по (m) ограничиваются условием, заданным пользователем; или (о) рейтинг точек из множества соответствующих точек, маршрутов и длин маршрутов, отвечающих заданному условию, с сортировкой по длине маршрута.
13. Заметка о формуле изобретения.
Люди с базовыми техническими знаниями должны отметить возможность выполнения множества модификаций, а также замены на эквиваленты с большой степенью родства без нарушения сущности данного изобретения. Кроме того, принципы изобретения можно адаптировать под ту или иную ситуацию без нарушения его сущности. Таким образом, несмотря на раскрытие упомянутых вариантов реализации изобретения изобретение не должно быть ограничено только этими вариантами реализации. Напротив, изобретение будет предусматривать все варианты реализации, предусмотренные формулой изобретения, изложенной в приложении.
14. Глоссарий.
Авторы включили глоссарий отдельных выражений, встречающихся в формуле изобретения, а также ссылки на спецификацию. Ссылки не являются исчерпывающими; существуют иные ссылки. Перечень выражений составлен в порядке по первому упоминанию этих выражений в тексте формулы изобретения.
В формуле изобретения также используются следующие выражения, о значении которых дается пояснение.
1) Выражение at least one А (по крайней мере один А) является эквивалентом #А>1, где #А это номер А.
2) Выражение one or more А (один или более А) является эквивалентом #А>1, где #А это номер А.
3) Выражение plurality of As (множество А) является эквивалентом #А>2, где #А - это номер А.
4) Выражение at least two As (по крайней мере два А) является эквивалентом #А>2, где #А - это номер А.
5) Выражение one of A, or В (один из А или В) является эквивалентом #А+#В=1, где #А - это номер А, а #В - это номер В.
6) Выражение at least one of A, or В (по крайней мере один из А или В) является эквивалентом
- 22 042786 #А+#В>1, где #А - это номер А, а #В - это номер В.
7) Выражение at least one В or С (по крайней мере один В или С) является эквивалентом at least one A, wherein each A is (B or С) (по крайней мере один А, где каждый А это (В или С)).
выражение ссылка на пример использования
способ (method) пункт[003]
поиск или сравнение (searching or comparing) пункт[002]
гонка (site) пункт[148]
маршрут или длина маршрута (route or route length) пункты [013] , [127]
место (place) пункт[148]
гранспортная система (transportation system) пункт[022]
представитель (representative) пункты [022] , [117]
хранение (storing) пункт[022]
база данных (database) пункт[022]
предварительно рассчитанный (precomputed) Раздел 4
описание перемещения (description of travel) пункт[020]
получение (receiving) пункт[003]
запрос (request) пункт[022]
начальное место (start place) Раздел 5.2
конечное место (end place) Раздел 5.3
расчет (computing) пункт[089]
ближайший представитель (nearby representative) пункты [068] , [120] , [121]
длина перемещения (length of travel) пункт[020]
- 23 042786
пороговое значение (threshold) пункт[035]
извлечение (retrieving) пункт[022]
удаленная точка (not nearby site) пункт[068]
ответ (responding) пункт[003]
информация (information) пункт[003]
обозначение (representation) пункт[148]
объект недвижимости / конечная точка маршрута до места работы и обратно (real estate property / commute destination) пункт[002]
время отправления / срок прибытия (departure time /arrival deadline) пункты [066] , [090]
место Pi, начальное место Pi, конечное место Рк (place Pi, start place Pi, end place Pk) Определение 1
первая точка, последняя точка (first site, last site) Раздел 9.7
включает (involves) Раздел 9.7
маршрут или длина маршрута от точки до места (site-place route or route length) пункт[091]
точка кластера / представитель кластера (cluster site /cluster representative) пункты [035] , [036]
связующая точка кластера (site connector) пункт[112]
сжатие (compression) пункт[153]
функция манипулирования (manipulation function) пункт[093]
район пункт[092]
- 24 042786
(zone)
транспортные элементы (transportation elements) пункт[127]
длина отрезка (segment length) пункт[033]
граф / вершины графа (graph /graph vertexes) пункт[033]
вершины транспортного элемента (transportation element vertexes) Раздел 9.3
вершина точки / вершина представителя (site vertex / representative vertex) пункт[117]
ребро графа (graph edge) пункт [033]
исходная вершина ребра графа/ целевая вершина ребра графа / весовое значение ребра графа (graph edge source vertex / graph edge target vertex / graph edge weight) пункт[033]
плечо графа или длина плеча графа (graph path or graph path length) пункт[033]
время (time) пункт[042]
алгоритм (algorithm) пункт[033]
перевернутый (reversed) пункт[040]
координата (coordinate) пункт[056]
вектор v, значение v[i] (vector v, value v/z7) пункт[056]
вектор ν', значение v'[i] (vector ν', value ν'[if) пункт[058]
размещение (laying out) пункт[153]
список / хеш-таблица пункты [062] , [063]
- 25 042786
(list / hash map)
весовое значение w, (weight w;) пункт[059]
нижняя граница Ibi, верхняя граница ubt, коэффициент масштабирования sf, (lower bound Ibi, upper bound up, scaling factor sf) пункт[060]
операция «+», операция «min» (+ operation, min operation) пункт[072]
первая математическая формула / вторая математическая формула (first mathematical formula /second mathematical formula) пункты [072] , [086]
целит (partitions) пункт[075]
спецификация маршрута Е (route specification E) пункты [028] , [148]
функция deriver пункт[109]
минимальная длина маршрута (minimum route length) Раздел 6.2
весовые значения wi,..., wq (weights it7,..., Wq) пункт[099]
взвешенная длина маршрута (weighted route length) Раздел 6.1
точка S (site 0) пункт[105]
дифференцированная длина маршрута (difference route length) Раздел 7.1
условие (condition) Разделы 9.4,9.5
установка фильтра (filtering) пункт [006], Разделы 9.4, 9.5
агрегатор (aggregator) пункт [131]
центральное положение пункт [131]
-

Claims (3)

  1. (centrality) функция стоимости (cost function) пункт[140] алгоритм исследования (exploration algorithm) Раздел 9.8 дифференцируемая функция (differentiable function) пункт[140] спуск градиента (gradient descent) пункт[140] многоцелевая оптимизация/ многомерная стоимость (multi-objective optimization / multi-dimensional cost) пункты [050] , [147] компьютерная система (computer system) Раздел И инструмент (apparatus) Раздел 12 краткая информация / отображение / приоритет отображения (summary / rendering / stacking) пункт[160] карта интенсивности (heatmap) пункт[162] гистограмма (histogram) пункт[163] рейтинг (top list) пункт[109]
    ФОРМУЛА ИЗОБРЕТЕНИЯ
    1. Способ поиска или сравнения по крайне мере одной точки с использованием по крайней мере двух описаний перемещения в транспортной системе между указанной по крайней мере одной точкой и по крайней мере одним местом, при этом указанный способ включает (a) получение запроса, включающего указанное по крайней мере одно место;
    (b) вычисление указанных по крайней мере двух описаний перемещения, которые включают (i) описание перемещения в указанной транспортной системе между каждым из множества разных мест, включенных в указанное по крайней мере одно место, и точку, включенную в указанную по крайней мере одну точку, но не входящую в указанное множество разных мест, или (ii) описание перемещения в указанной транспортной системе между каждым из множества разных точек, включенных в указанную по крайней мере одну точку, и место, включенное в указанное по крайней мере одно место, но не входящее в указанное множество разных точек; и (c) реагирование на указанный запрос путем выведенного описания перемещения, полученного на основе указанных по крайней мере двух описаний перемещения.
  2. 2. Способ по п.1, отличающийся тем, что указанное выведенное описание перемещения вычисляется с использованием этапов, включающих (a) расчет минимум множества длин перемещения, включенных в указанные по крайней два описания перемещения;
    (b) расчет взвешенной суммы множества длин перемещения, включенных в указанные по крайней два описания перемещения, с использованием числовых весов, дополнительно включенных в указанный запрос; или (c) расчет разницы между первой длиной перемещения, имеющей конечную точку, которая является первой точкой, и второй длиной перемещения, имеющей конечную точку, которая является второй точкой, при этом указанные две длины перемещения являются включенными в указанные по крайней мере два описания перемещения, при этом указанные две точки являются включенными в указанное множество разных точек, и при этом одна из двух точек дополнительно является включенной в указанный запрос.
  3. 3. Способ по п.1, отличающийся тем, что точка, включенная в указанную по крайней мере одну точку, или место, включенное в указанное по крайней мере одно место, представляют собой
    -
EA202192708 2018-02-20 2019-02-14 Способ и инструмент поиска или сравнения точек с использованием маршрутов или длин маршрутов между точками и местами в транспортной системе EA042786B1 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US62/632,419 2018-02-20
US62/758,710 2018-11-12
US62/780,268 2018-12-16
US62/800,428 2019-02-02
US16/274,242 2019-02-13

Publications (1)

Publication Number Publication Date
EA042786B1 true EA042786B1 (ru) 2023-03-24

Family

ID=

Similar Documents

Publication Publication Date Title
JP7264357B2 (ja) 交通システム内でのサイト及び場所の間のルート又はルート距離を使用してサイトを検索又は比較するための方法及び装置
TWI735292B (zh) 一種為從源頭位置到目標位置的旅程提供路線的方法
US20140358603A1 (en) Iterative public transit scoring
Wang et al. A context-based geoprocessing framework for optimizing meetup location of multiple moving objects along road networks
US20200349660A1 (en) Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System
JP7144818B2 (ja) 交通システム内でのサイト及び場所の間のルート又はルート距離を使用してサイトを検索又は比較するための方法及び装置
US20200300642A1 (en) Method and an Apparatus for Searching or Comparing Sites Using Routes or Route Lengths Between Sites and Places Within a Transportation System
Dibbelt Engineering algorithms for route planning in multimodal transportation networks
EA042786B1 (ru) Способ и инструмент поиска или сравнения точек с использованием маршрутов или длин маршрутов между точками и местами в транспортной системе
US20240046389A1 (en) A Method for Presenting Sites Using Their Similarity and Travel Duration
US20230175848A1 (en) A Method and an Apparatus for Searching or Comparing Sites Using Travel Between Sites and Places Within a Transportation System
TW202018657A (zh) 一種透過使用地點與交通系統中的地方間的路徑或路徑長度以搜尋或比較地點的方法與裝置
Ramadhan et al. Graph Modeling for An Interactive Routes Application (Case Study: Trans Jogja)
Mao An approach to determine optimal pickup and drop-off points for urban ridesharing
Alnyme et al. Behind the Miranda tool: A technical report on a decision support tool for tourism and travel investments
Hijmans Opleiding Informatica