EA042786B1 - METHOD AND TOOL FOR SEARCHING OR COMPARING POINTS USING ROUTES OR ROUTE LENGTHS BETWEEN POINTS AND PLACES IN TRANSPORT SYSTEM - Google Patents

METHOD AND TOOL FOR SEARCHING OR COMPARING POINTS USING ROUTES OR ROUTE LENGTHS BETWEEN POINTS AND PLACES IN TRANSPORT SYSTEM 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
Russian (ru)
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/en

Links

Description

Перекрестные ссылки на родственные заявкиCross-references to related applications

Настоящая заявка основана на следующих заявках и объявляет следующие приоритеты изобретений:This application is based on the following applications and declares the following invention priorities:

[Страна] [A country] [Номер заявки] [Application number] [Дата подачи] [Date of application] США USA 62/632,419 62/632.419 20 февраля 2018 г. February 20, 2018 США USA 62/758,710 62/758.710 12 ноября 2018 г. November 12, 2018 США USA 62/780,268 62/780.268 16 декабря 2018 г. December 16, 2018 США USA 62/800,428 62/800.428 2 февраля 2019 г. February 2, 2019 США USA 16274242 16274242 13 февраля 2019 г. February 13, 2019

включенных в состав настоящей заявки в виде ссылки.included in this application by reference.

Предпосылки создания изобретенияPrerequisites for the creation of the invention

Данное изобретение связано с поиском или сравнением (searching or comparing) точек. Традиционно цель поиска заключается в нахождении какой-либо точки (site) из ряда возможных вариантов, отвечающей задачам оптимизации, а именно минимизации длины маршрута (route length) исходя из определенной необходимости в перемещениях между точкой и местом, а также учитывая желаемые характеристики искомой точки. Например, при поиске объектов недвижимости, зная необходимые конечные точки пути до места работы и обратно (destinations of commutes) и характеристики объекта недвижимости (real estate property), цель может заключаться в составлении списка объектов недвижимости с нужными характеристиками и кратчайшим временем в пути до места работы и обратно. Другой целью может быть сравнение каких-либо объектов недвижимости по времени нахождения в пути до места работы и обратно [002].This invention is related to the search or comparison (searching or comparing) points. Traditionally, the goal of the search is to find any point (site) from a number of possible options that meet optimization problems, namely, minimizing the length of the route (route length) based on a certain need for movement between the point and the place, and also taking into account the desired characteristics of the desired point. For example, when searching for real estate, knowing the required destinations of commutes and the characteristics of the property (real estate property), the goal may be to compile a list of properties with the desired characteristics and the shortest travel time to the place work and back. Another goal may be to compare some real estate objects by the time spent on the way to the place of work and back [002].

Краткое изложение сущности изобретенияBrief summary of the invention

Варианты реализации изобретения включают в себя способ (method) поиска или сравнения точек, компьютерную систему, которая использует и реализует этот способ, а также компьютерный сервис, который получает (receives) запросы по поиску и сравнению от пользователей и возвращает им ответы (responds) в виде информации (information) о точках и маршрутах [003].Embodiments of the invention include a method (method) for searching or comparing points, a computer system that uses and implements this method, as well as a computer service that receives (receives) search and comparison requests from users and returns them responses (responds) in the form of information (information) about points and routes [003].

В зависимости от варианта реализации данного изобретения предоставляется способ поиска или сравнения точек по маршрутам или длинам маршрутов. В способе используется комплексная предварительная обработка для предварительного расчета (precompute) и сохранения в базе данных маршрутов или длин маршрутов между каждой точкой и представителями (representatives) в границах транспортной системы. Способ предлагает базовую платформу (framework) для поиска или сравнения точек. При получении запроса, содержащего спецификацию маршрута, по базе данных находятся предварительно рассчитанные данные, которые позволяют быстро вычислить маршрут или длину маршрута по каждой точке. Поиск или сравнение точек может производиться по маршрутам или длинам маршрутов.Depending on the embodiment of the present invention, a method for searching or comparing points along paths or path lengths is provided. The method uses complex pre-processing to precompute and store in the database the routes or route lengths between each point and representatives (representatives) within the boundaries of the transport system. The method offers a basic platform (framework) for searching or comparing points. When a request containing a route specification is received, the database contains pre-calculated data that allows you to quickly calculate the route or route length for each point. Points can be searched or compared by paths or path lengths.

В зависимости от варианта реализации данного изобретения предусматривается компьютерная система для поиска или сравнения точек по маршрутам или длинам маршрутов. Система представляет собой аппаратно-программный комплекс. Комплекс получает данные о транспортной системе и точках от одного или множества поставщиков данных (data providers). Система строит графы (graphs), моделирующие перемещение между точками и представителями в границах транспортной системы. Система рассчитывает пути графов (graph paths) и сохраняет плечо графов или длины плеча графов. Это позволяет быстро рассчитывать маршруты или длины маршрутов для каждой точки при получении запроса, а также производить поиск или сравнение точек по маршрутам или длинам маршрутов.Depending on the embodiment of the present invention, a computer system is provided for searching or comparing points along routes or route lengths. The system is a hardware-software complex. The complex receives data about the transport system and points from one or more data providers (data providers). The system builds graphs that model the movement between points and representatives within the boundaries of the transport system. The system calculates graph paths and stores the graph arm or graph arm lengths. This allows you to quickly calculate routes or route lengths for each point upon request, and also search or compare points by route or route length.

В зависимости от варианта реализации данного изобретения предусматривается компьютерный сервис по поиску или сравнению точек по маршрутам или длинам маршрутов. Сервис позволяет пользователю задать параметры поискового или сравнительного запроса через интерфейс пользователя на каком-либо устройстве, например, с помощью смартфона. Запрос содержит спецификацию маршрута и условие для фильтра (filtering condition). В ответ сервис выдает точки, отвечающие условию фильтра, вместе с маршрутами или длинами маршрутов для соответствующих точек, либо сервис проводит сравнение точек по маршрутам или длинам маршрутов [006].Depending on the embodiment of the present invention, a computer service is provided for searching or comparing points along routes or route lengths. The service allows the user to set the parameters of a search or comparison query through the user interface on any device, for example, using a smartphone. The request contains a route specification and a filtering condition. In response, the service returns the points that meet the filter condition, along with the routes or route lengths for the corresponding points, or the service compares the points by routes or route lengths [006].

Быстрота расчета длины маршрута для каждой точки имеет основополагающее значение. Авторы составили математическое доказательство. Рассмотрим некоторый способ поиска или сравнения М. Можно придумать такой пользовательский запрос (adversarial request), чтобы М выдал какой-либо список точек в заданном порядке. У пользователя (adversary) есть два механизма:The speed of calculating the length of the route for each point is of fundamental importance. The authors have compiled a mathematical proof. Let's consider some way of searching or comparing M. We can come up with such a user request (adversarial request) that M would return any list of points in a given order. The user (adversary) has two mechanisms:

(1) подать запрос, содержащий спецификацию маршрута, по которой будет создан упорядоченный список точек по длине маршрута; порядок задается пользователем; и (2) подать запрос с установкой условия для фильтра точек, которое будет соответствовать подмножеству точек, выбранному пользователем. Таким образом, М должен возвратить упорядоченный список точек, произвольно выбранных пользователем в момент подачи запроса. Подробности выведения доказательства выходят за рамки заявки на оформление патента.(1) submit a request containing a route specification, from which an ordered list of points along the length of the route will be created; the order is set by the user; and (2) submit a query setting a point filter condition that matches a subset of points selected by the user. Thus, M must return an ordered list of points arbitrarily chosen by the user at the time of the request. The details of deriving evidence are outside the scope of the patent application.

Способ, компьютерная система и компьютерный сервис все вместе выполняют задачи, не являющиеся унифицированными и не в полной мере реализованные в известных технических решениях. Ранее известThe method, computer system and computer service all together perform tasks that are not unified and not fully implemented in known technical solutions. Previously known

- 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 042786 new technical solutions include patent US 8417409 B2; continuation of US 8738286 B2; subsection US 8756014 B2; KR 10-1692501 B1; continuation of patents PCT/KR2016/01083; WO 2017/065431A1; US 2018/0232824 A1; and KR 10-1905593 B1.

Представленные здесь варианты реализации изобретения служат для иллюстрации; они не несут исчерпывающий характер. Люди с базовыми техническими знаниями хорошо представят себе многочисленные модификации и исполнения, не нарушающие общей структуры и сущности реализации изобретения.The embodiments of the invention presented here are illustrative; they are not exhaustive. People with basic technical knowledge will well imagine numerous modifications and implementations that do not violate the general structure and essence of the implementation of the invention.

В данной презентации термины первый, второй, данный, указанный и подобные им не используются в узко специализированном смысле, а служат только для различия, если иное однозначно не следует из контекста. Термин в единственном числе включает формы множественного числа, если иное однозначно не следует из контекста. Термины обладающий, включающий, состоящий и подобные им показывают наличие компонентов или характеристик, при этом не ограничивая возможность наличия или добавления других компонентов или характеристик.In this presentation, the terms first, second, given, indicated, and the like are not used in a highly specialized sense, but are used only for distinction, unless otherwise clearly indicated by the context. A term in the singular includes plural forms, unless otherwise clearly indicated by the context. The terms having, including, consisting, and the like indicate the presence of components or characteristics, without limiting the possibility of the presence or addition of other components or characteristics.

Краткое описание схемBrief description of schemes

Схемы, включенные в раскрытие сущности изобретения, служат в качестве иллюстрации характеристик и преимуществ тех или иных вариантов реализации изобретения.The diagrams included in the disclosure of the invention serve as an illustration of the characteristics and advantages of certain embodiments of the invention.

Фиг. 1 показывает пример цветового оформления времени в пути по маршрутам до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример цветового оформления времени в пути по маршрутам до места работы и обратно для объектов недвижимости с двумя маршрутами до места работы: объект недвижимости^geo.0.0^geo.0.1 ^объект недвижимости и объект недвижимости^geo.1.0^объект недвижимости. Авторы использовали фрагмент карты на ядре Google, вместо него может быть использован любой другой.Fig. 1 shows an example of the color scheme of travel time on routes to and from the place of work, depending on the embodiment of the invention; caption: An example of colorization of travel time on routes to and from work for real estate objects with two routes to work: property ^geo.0.0^geo.0.1 ^property and real estate^geo.1.0^property. The authors used a map fragment on the Google core, any other one can be used instead.

Фиг. 2 показывает пример принципиальной схемы предварительной обработки и сохранения данных в зависимости от варианта реализации изобретения, подпись: Пример принципиальной схемы предварительной обработки и сохранения данных.Fig. 2 shows an example data preprocessing and storage circuit diagram depending on the embodiment of the invention, caption: Data preprocessing and storage circuit example.

Фиг. 3 показывает пример принципиальной схемы ответа на запрос с использованием сохраненных предварительно обработанных данных в зависимости от варианта реализации изобретения; подпись: Пример принципиальной схемы ответа на запрос с использованием сохраненных предварительно обработанных данных.Fig. 3 shows an example of a query response circuit diagram using stored pre-processed data depending on an embodiment of the invention; signature: An example of a concept for responding to a request using stored preprocessed data.

Фиг. 4A-4E показывает пример расчета времени в пути до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример расчета времени в пути до места работы и обратно.Fig. 4A-4E show an example of calculating travel time to and from a job site depending on an embodiment of the invention; caption: An example of calculating travel time to and from work.

Фиг. 5 показывает пример участков на графе системы общественного транспорта для предварительного расчета кратчайшего плеча графа в зависимости от варианта реализации изобретения; подпись: Пример участков на графе системы общественного транспорта для предварительного расчета кратчайшего плеча графа.Fig. 5 shows an example of sections on a graph of a public transport system for precalculating the shortest arm of the graph, depending on the embodiment of the invention; caption: An example of sections on the graph of the public transport system for the preliminary calculation of the shortest arm of the graph.

Фиг. 6 показывает пример табличного/векторного хранилища (vector storage) предварительно рассчитанных значений кратчайшего времени в пути в зависимости от варианта реализации изобретения; подпись: Пример табличного/векторного хранилища предварительно рассчитанных значений кратчайшего времени в пути.Fig. 6 shows an example of a table/vector storage of precalculated shortest travel time values depending on an embodiment of the invention; caption: An example of a tabular/vector storage of precalculated shortest travel times.

Фиг. 7 показывает пример разложения маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример маршрута до места работы и обратно H^W1^W2^W3^Wa^H, разложенного (decomposed) на часть, привязанную к домам (зеленым цветом), и на часть, не привязанную к домам (черным цветом), на примере трех домов в качестве мест проживания H1, Н2 и Н3.Fig. 7 shows an example of the decomposition of the route to the place of work and back, depending on the embodiment of the invention; caption: An example of a route to work and back H^W 1 ^W 2 ^W 3 ^Wa^H, decomposed into a part tied to houses (in green) and into a part not tied to houses (in black) ), on the example of three houses as places of residence H1, H2 and H 3 .

Фиг. 8 показывает пример расчета кратчайшего времени в пути из точки начала маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример расчета кратчайшего времени в пути из точки начала маршрута до места работы и обратно.Fig. 8 shows an example of calculating the shortest travel time from the starting point of the route to the place of work and back, depending on the embodiment of the invention; caption: An example of calculating the shortest travel time from the starting point of the route to the place of work and back.

Фиг. 9 показывает пример расчета кратчайшего времени в пути из конечной точки маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример расчета кратчайшего времени в пути из конечной точки маршрута до места работы и обратно.Fig. 9 shows an example of calculating the shortest travel time from the end point of the route to the place of work and back, depending on the embodiment of the invention; caption: An example of calculating the shortest travel time from the end point of the route to the place of work and back.

Фиг. 10 показывает пример языка описания алгоритмов (pseudocode) расчета кратчайшего времени в пути из начальной точки маршрута до места работы и обратно в зависимости от варианта реализации изобретения; подпись: Пример языка описания алгоритмов расчета кратчайшего времени в пути из начальной точки маршрута до места работы и обратно PathFromHomeDurations (^W).Fig. 10 shows an example of a language for describing algorithms (pseudocode) for calculating the shortest travel time from the starting point of the route to the place of work and back, depending on the embodiment of the invention; caption: An example of a language for describing algorithms for calculating the shortest travel time from the starting point of the route to the place of work and back PathFromHomeDurations (^W).

Фиг. 11 показывает пример принципиальной схемы компьютерной системы в зависимости от варианта реализации изобретения; подпись: Пример принципиальной схемы компьютерной системы для предварительного расчета и хранения данных в базе данных, а также обработки запросов с использованием данных, извлеченных из базы данных.Fig. 11 shows an example of a circuit diagram of a computer system depending on an embodiment of the invention; caption: An example of a circuit diagram of a computer system for precalculating and storing data in a database, as well as processing queries using data retrieved from the database.

Фиг. 12 показывает пример пользовательского запроса и ответа от компьютерного сервиса на смартфоне пользователя в зависимости от варианта реализации изобретения; подпись: Пример пользоFig. 12 shows an example of a user request and response from a computer service on a user's smartphone, depending on an embodiment of the invention; caption: Example of use

- 2 042786 вательского запроса и ответа от компьютерного сервиса на смартфоне пользователя.- 2 042786 request and response from a computer service on the user's smartphone.

Схемы приведены исключительно для иллюстрации. Пояснения к изобретению могут быть приведены на других схемах, не нарушая принципы изобретения, в чем легко сможет разобраться любой человек с базовыми техническими знаниями.The diagrams are for illustration purposes only. Explanations of the invention can be given in other diagrams without violating the principles of the invention, which can be easily understood by any person with basic technical knowledge.

Подробное описание сущности изобретенияDetailed Description of the Invention

Подробное описание.Detailed description.

Изобретение затрагивает общий случай поиска или сравнения произвольных точек для получения их оптимизированных вариантов по желанию пользователя на основе маршрутов или длин маршрутов (routes or route lengths) до произвольных мест. При этом с целью упрощения презентации авторы демонстрируют изобретение, в первую очередь, на примере конкретных точек (sites), которыми являются объекты недвижимости, конкретных мест (places), которыми являются места работы, а также конкретной цели оптимизации, а именно минимизации времени в пути от объектов недвижимости до места работы и обратно. Иллюстративный пример не является исчерпывающим. В последних разделах нами был описан принцип работы этого способа в общем случае [013].The invention addresses the general case of searching or comparing arbitrary points in order to obtain their optimized options at the request of the user based on routes or route lengths (routes or route lengths) to arbitrary places. At the same time, in order to simplify the presentation, the authors demonstrate the invention, first of all, on the example of specific points (sites), which are real estate objects, specific places (places), which are places of work, as well as a specific optimization goal, namely, minimizing travel time from real estate to workplace and back. The illustrative example is not exhaustive. In the last sections, we have described the principle of operation of this method in the general case [013].

1. Объекты недвижимости и маршруты до места работы и обратно.1. Real estate objects and routes to and from the place of work.

Поиск жилья - это сложная задача. Люди тратят значительные временные и материальные ресурсы на его поиск. Данная технология призвана помочь людям в поиске жилья. Существует несколько интернет-сервисов, так называемых агрегаторов предложений объектов недвижимости, которые позволяют людям искать недвижимость прямо в браузере компьютера или приложении смартфона по определенным характеристикам, например по цене, географическому расположению, количеству комнат и т.д. Результатом поиска становится некоторый список вариантов, которые клиент, как правило, смотрит лично непосредственно на месте.Finding housing is a difficult task. People spend considerable time and material resources on its search. This technology is designed to help people find housing. There are several Internet services, the so-called property listing aggregators, that allow people to search for properties directly in their computer browser or smartphone application by certain characteristics, such as price, geographic location, number of rooms, etc. The result of the search is a certain list of options that the client, as a rule, looks at in person directly on the spot.

Расположение (location), пожалуй, является самым важным критерием для выбора объекта недвижимости, не зря агентства недвижимости используют такую характеристику, как хороший район, удобное расположение, развитая инфраструктура и т.д. Данное изобретение строится вокруг этой характеристики.Location is perhaps the most important criterion for choosing a property, it is not for nothing that real estate agencies use such characteristics as a good area, convenient location, developed infrastructure, etc. The present invention is built around this characteristic.

Клиентам нужно будет добираться до места работы, школы или в другие места. Время в пути по этим маршрутам определяет ценность того или иного объекта недвижимости для каждого конкретного клиента. Кроме того, для всех клиентов в крупных городах существует общая заинтересованность как в экономии времени поездок, которое можно было бы освободить для более продуктивной деятельности, так и в экономии сил на преодоление интенсивного городского трафика. Данное изобретение помогает удовлетворить как общие, так и персональные потребности.Clients will need to commute to work, school, or other locations. Travel time along these routes determines the value of a particular property for each specific client. In addition, there is a common interest for all customers in large cities both in saving travel time, which could be freed up for more productive activities, and in saving the effort to overcome heavy city traffic. This invention helps to meet both general and personal needs.

Для простого примера представим семью из двух человек, проживающую в столице Южной Кореи. Один из членов семьи работает государственным служащим в городской администрации, а другой трудится библиотекарем в Главной библиотеке Национального Университета города Сеул. Сейчас они живут в двухкомнатной квартире площадью 69 м2 с одним санузлом, необходимый депозит за которую составляет 350000000 южнокорейских вон. Квартира имеет координаты по широте и долготе (37.5333, 127.0746). Суммарное время их ежедневных поездок до места работы и обратно составляет 1 ч 41 мин (около 25 мин в один конец в среднем). Но оказывается, что они могут уменьшить время на перемещения до 1 ч 16 мин (сэкономив 25 мин), если переедут в другую квартиру с теми же параметрами, но расположенную в координатах (37.5041, 126.8888). Кратчайшее время в пути для обеих квартир составляет 50 мин. Но новая квартира имеет другую цену и размер (иллюстрация от 19 февраля 2018 г.) [017].For a simple example, imagine a family of two living in the capital of South Korea. One of the family members works as a civil servant in the city government, and the other works as a librarian at the Main Library of Seoul National University. They now live in a two-room apartment of 69 m 2 with one bathroom, the required deposit for which is 350,000,000 KRW. The apartment has latitude and longitude coordinates (37.5333, 127.0746). The total time of their daily trips to and from work is 1 hour 41 minutes (about 25 minutes one way on average). But it turns out that they can reduce the travel time to 1 hour 16 minutes (saving 25 minutes) if they move to another apartment with the same parameters, but located at coordinates (37.5041, 126.8888). The shortest travel time for both apartments is 50 minutes. But the new apartment has a different price and size (illustration dated February 19, 2018) [017].

В чем состоит сложность такой оптимизации для всех? Довольно примитивно рассматривать отдельно каждый вариант объекта недвижимости, представленного на рынке, отвечающего требованиям семьи по размеру и другим характеристикам, и, зная места работы, рассчитывать время в пути, запрашивая информацию через существующие интернет-сервисы построения маршрутов. Такой подход все же не пригоден для большого потока запросов. Одной из проблем является большое количество представленных на рынке объектов недвижимости современного крупного города. Другой проблемой является большое количество семей/пользователей, которые потенциально нуждаются в оптимизации. Даже если допустить возможность недорогого использования сервисов по построению маршрутов, квадратичный характер проблемы по-прежнему будет означать удорожание по общему объему запросов в такие сервисы.What is the difficulty of such optimization for everyone? It is quite primitive to consider separately each version of a property on the market that meets the requirements of a family in terms of size and other characteristics, and, knowing the place of work, calculate the travel time by requesting information through existing Internet route building services. This approach is still not suitable for a large flow of requests. One of the problems is a large number of real estate objects of a modern large city presented on the market. Another issue is the large number of families/users that potentially need to be optimized. Even assuming the possibility of inexpensive use of route building services, the quadratic nature of the problem will still mean an increase in the cost of the total volume of requests to such services.

Каким образом можно удовлетворить потребность в оптимизации для всех? Данное изобретение является решением. В изобретении имеются следующие компоненты.How can you meet the need for optimization for everyone? This invention is the solution. The invention has the following components.

1) Изобретение определяет модель маршрута до места работы и обратно (commute path). Данная модель является универсальной за счет включения широкого набора реально существующих маршрутов до разных мест, например сначала до школы, потом до репетитора по пианино, а затем обратно домой. Полезность данной модели повышается благодаря тому, что можно быстро находить объекты недвижимости, для которых минимизируется время в пути.1) The invention defines a route model to and from work (commute path). This model is versatile by including a wide range of real-life routes to different places, for example, first to school, then to the piano tutor, and then back home. The usefulness of this model is enhanced by the fact that you can quickly find properties for which travel time is minimized.

2) Изобретение предлагает способ оптимизации для быстрого расчета времени в пути. Изобретение определяет части какого-либо маршрута до места работы и обратно, привязанные к какому-либо объекту недвижимости. Время в пути для данных частей рассчитывается заранее и сохраняется в базу. В резуль2) The invention provides an optimization method for fast travel time calculation. The invention defines the parts of any route to and from the place of work, tied to any real estate object. The travel time for these parts is calculated in advance and stored in the database. As a result

- 3 042786 тате, когда будет нужно найти маршрут до места работы и обратно, изобретение сможет быстро выстроить (assemble) временные отрезки, получая время в пути для каждого объекта недвижимости.- 3 042786 tata, when you need to find a route to the place of work and back, the invention will be able to quickly build (assemble) time segments, getting the travel time for each property.

3) Вариантом реализации изобретения является компьютерный сервис с доступом через Интернет. Сервис дает возможность 25 млн жителей столичной агломерации Сеула искать и сравнивать объекты недвижимости по времени в пути.3) An embodiment of the invention is a computer service with access via the Internet. The service enables 25 million residents of the Seoul metropolitan area to search and compare real estate by travel time.

2. Описание способа.2. Description of the method.

Авторы используют термин перемещение (travel) в широком смысле, который включает в себя движение объектов или данных. Описание перемещения (description of travel) - это некое описание, которое может дать человек с базовыми техническими знаниями. Вот некоторые из примеров описания перемещения:The authors use the term travel in a broad sense, which includes the movement of objects or data. A description of travel is a description that a person with basic technical knowledge can give. Here are some examples of movement descriptions:

(1) эй, друг, тебе нужно пройти один квартал на север, затем взять чуть левее; или (2) 5 долларов [020].(1) hey friend, you need to go one block to the north, then take a little to the left; or (2) $5 [020].

Можно использовать термин маршрут перемещения (travel path), когда имеется в виду название перемещения. Длина перемещения (length of travel) - это числовое значение (numeric value), которое человек с базовыми техническими знаниями сможет привязать к перемещению, например, в качестве расстояния, стоимости в деньгах и т.д. В качестве другого примера, можно использовать термин время в пути (travel duration), когда имеется в виду длина перемещения, выраженная во времени. Длина перемещения сама по себе является описанием перемещения. Описание перемещения не может включать любую длину перемещения, а может включать только определенную длину перемещения либо также некоторые другие данные.You can use the term travel path when you mean the name of a travel. The length of travel is a numeric value that a person with basic technical knowledge would be able to associate with travel, such as distance, monetary value, etc. As another example, the term travel duration can be used when referring to the length of travel expressed in time. The length of the move is itself a description of the move. The move description cannot include any move length, but may only include a specific move length or also some other data.

Авторы продемонстрировали некоторые возможности способа и ввели терминологию, которая будет использоваться в дальнейшем. Способ может рассчитывать время в пути по маршрутам до места работы и обратно для каждого объекта недвижимости. Это показано на фиг. 1. Городская территория разделена на цветные квадраты. Цветом обозначено, как долго требуется добираться на общественном транспорте от определенного объекта недвижимости в каждом конкретном районе: зеленым цветом показан короткий маршрут, желтым - более длинный, а красным - самый долгий маршрут. Маршрут до места работы и обратно начинается от объекта недвижимости, затем идет до определенных мест geo, ..., и, наконец, снова возвращается в исходный объект недвижимости. В какой-то степени объект недвижимости является свободной переменной (free variable), в то время как geo, ... - это фиксированные переменные. На фиг. 1 представлено два маршрута до места работы и обратно: незамкнутый маршрут вида объект недвижимости^geo.0.0^geo.0.l^объект недвижимости дважды в неделю, и маршрут в прямом и обратном направлении вида объект недвижимости^geo.1.0^объект недвижимости три раза в неделю. Как видно, с учетом этих двух маршрутов до места работы и обратно, а также их регулярности, объекты недвижимости с небольшой взвешенной суммой значений времени в пути образуют своеобразную кляксу (темно-зеленого цвета), что неудивительно, учитывая густоту сети общественного транспорта.The authors demonstrated some of the possibilities of the method and introduced the terminology that will be used in the future. The method can calculate the travel time for routes to and from work for each property. This is shown in FIG. 1. The city area is divided into colored squares. The color indicates how long it takes to travel by public transport from a particular property in a particular area: green indicates the shortest route, yellow indicates the longer route, and red indicates the longest route. The route to and from work starts from the property, then goes to certain locations geo, ..., and finally returns to the original property again. To some extent, a real estate object is a free variable, while geo, ... are fixed variables. In FIG. Figure 1 shows two routes to and from work: a non-closed route of the type real estate^geo.0.0^geo.0.l^property twice a week, and a forward and backward route of the type real estate^geo.1.0^property three once a week. As you can see, given these two routes to and from work, as well as their regularity, properties with a small weighted sum of travel times form a kind of blob (dark green), which is not surprising, given the density of the public transport network.

На высшем уровне способ состоит из двух частей. В первой части рассчитывается время в пути между объектами недвижимости и представителями (representatives), которые представляют собой остановки в транспортной системе (transportation system). Данное время в пути сохраняется (stored) в базе данных (database), и его можно брать в готовом виде при поступлении запроса (request). См. фиг. 2 для иллюстрации. Во второй части происходит обработка запросов. Запрос содержит маршрут до места работы и обратно, а также желаемые характеристики (features) объекта недвижимости. При получении (received) запроса соответствующее время в пути берется из базы данных и используется вместе с другими данными для получения общего времени в пути по маршруту до места работы и обратно для каждого объекта недвижимости с выбранными характеристиками. См. фиг. 3 для иллюстрации. Подробности и варианты данного описания приведены в следующих пунктах [022].At the highest level, the method consists of two parts. The first part calculates the travel time between properties and representatives, which are stops in the transportation system. This travel time is stored (stored) in the database (database), and it can be taken ready-made when a request arrives (request). See fig. 2 for illustration. The second part is processing requests. The request contains the route to the place of work and back, as well as the desired characteristics (features) of the property. When a received request is received, the corresponding travel time is taken from the database and used along with other data to obtain the total travel time to and from work for each property with the selected characteristics. See fig. 3 for illustration. Details and variations of this description are given in the following paragraphs [022].

3. Маршруты до места работы и обратно.3. Routes to the place of work and back.

Данный способ обрабатывает обширную выборку маршрутов до места работы и обратно, используемых людьми в границах городской агломерации. Маршрут до места работы и обратно начинается от точки Н, которую авторы назвали дом (home). H имеет произвольное расположение. Она может быть представлена любым объектом недвижимости, например квартирой, арендуемой комнатой, коттеджем с собственным участком, крупным предприятием, отелем и т.д. Также она может являться и точкой, где работает клиент, например рестораном, магазином и т.д. Но по договоренности о наименованиях в раскрытии сущности изобретения авторы, как правило, используют термин дом; такая договоренность не предполагает ограничений. В одном из вариантов реализации клиент перемещается в разные места, а затем возвращается в точку Н.This method processes a large sample of routes to and from work, used by people within the boundaries of an urban agglomeration. The route to the place of work and back starts from point H, which the authors called the house (home). H has an arbitrary location. It can be represented by any real estate object, for example, an apartment, a rented room, a cottage with its own plot, a large enterprise, a hotel, etc. It can also be a point where the client works, for example, a restaurant, a shop, etc. But by agreement on names in disclosing the essence of the invention, the authors, as a rule, use the term house; such an agreement does not imply restrictions. In one implementation, the client travels to different locations and then returns to point H.

В одном из вариантов реализации маршрут перемещения укладывается в рамки одного дня, например клиент выходит из Н утром и возвращается в Н вечером того же дня. В другом варианте реализации маршрут укладывается на пару дней, например, если клиент работает в ночную смену или его рабочая смена составляет 25 ч. В одном из вариантов реализации какое-либо перемещение может начинаться в определенное время либо заканчиваться в определенное время, например в 8:12. В другом варианте реализации какое-либо перемещение может начинаться или заканчиваться в пределах некоторого интервала,In one implementation, the travel route fits within the framework of one day, for example, the client leaves H in the morning and returns to H in the evening of the same day. In another implementation, the route fits within a couple of days, for example, if the client works the night shift or his work shift is 25 hours. In one implementation, any movement can start at a certain time or end at a certain time, for example at 8:00: 12. In another implementation, any movement may begin or end within a certain interval,

- 4 042786 например утром.- 4 042786 for example in the morning.

Проще говоря, клиент перемещается из Н до места W, которое авторы назвали работа (work). W имеет произвольное расположение. Сюда же относится школа, дом бабушки с дедушкой, площадка для игры в гольф по выходным, любимый ресторан, кабинет врача, культовое учреждение и т.д. Это также может быть и местом, где человек живет. Но по договоренности о наименованиях в раскрытии сущности изобретения авторы, как правило, используют термин работа; такая договоренность не предполагает ограничений. Затем клиент возвращается из W в Н. Авторы называют эти два перемещения маршрут в прямом и обратном направлении. См. фиг. 4А для иллюстрации.Simply put, the client moves from H to W, which the authors call work. W has an arbitrary location. This includes school, grandparents' home, weekend golf course, favorite restaurant, doctor's office, place of worship, and so on. It can also be the place where the person lives. But by agreement on the names in the disclosure of the essence of the invention, the authors, as a rule, use the term work; such an agreement does not imply restrictions. The client then returns from W to H. The authors refer to these two movements as a forward and reverse route. See fig. 4A for illustration.

Незамкнутый маршрут до места работы и обратно представляет собой пример более сложного маршрута до места работы и обратно. См. фиг. 4В для иллюстрации. При таком маршруте клиент перемещается из Н до места W1. После чего клиент перемещается из места W1 в другое место W2. Наконец, клиент перемещается из места W2 обратно в точку Н. Можно привести один из примеров, когда клиент идет в школу, а после школы идет к репетитору по пианино.An open-loop route to and from work is an example of a more complex route to and from work. See fig. 4B for illustration. With this route, the client moves from H to place W1. After that, the client moves from location W1 to another location W2. Finally, the client moves from W2 back to H. One example is when the client goes to school and after school goes to the piano tutor.

В целом данный способ допускает любые произвольные перемещения. На фиг. 4С показана иллюстрация маршрута до места работы и обратно с пропуском перемещения от W4 до W2 и повторением перемещения от W2 до W3. На фиг. 4D показана иллюстрация незамкнутых маршрутов до места работы и обратно: маршрут до места работы и обратно, выходящий из Н, но без возврата в Н; и маршрут до места работы и обратно, с возвратом в Н без предварительного выхода из Н. На фиг. 4Е показана иллюстрация несвязанного маршрута до места работы и обратно. Маршрут до места работы и обратно может начинаться из одного дома, а заканчиваться в другом доме. данный способ определяет маршрут до места работы и обратно следующим образом.In general, this method allows any arbitrary movement. In FIG. 4C shows an illustration of a route to and from the job site skipping W 4 to W2 and repeating W2 to W 3 . In FIG. 4D shows an illustration of non-closed routes to and from work: a route to and from work leaving H but not returning to H; and the route to the place of work and back, with a return to H without first exiting H. FIG. 4E is an illustration of an unrelated route to and from a job site. The route to the place of work and back can start from one house and end in another house. this method determines the route to the place of work and back as follows.

Определение 1. Маршрут до места работы и обратно - это совокупность перемещений W2^W3, W4^W5,—,Wk-2^Wk-1, при k>2, который считается целым числом, включая НпеpBЫЙ^W1 или Wkп0CледHИЙ (таким образом, маршрут до места работы и обратно всегда содержит по крайней мере один дом и по крайней мере одно место работы), осуществляемых в произвольные моменты времени.Definition 1. The route to the place of work and back is a set of movements W 2 ^W 3 , W4^W 5 ,—, W k-2 ^W k-1 , with k>2, which is considered an integer, including H re p BY ^W 1 or W k ^ N next (thus, the route to the place of work and back always contains at least one home and at least one place of work), carried out at arbitrary times.

Маршрут до места работы и обратно можно представить в виде спецификации (specification) маршрута в границах транспортной системы. Различные W и Н в определении 1 указывают направление для перемещения клиента [028].The route to and from the place of work can be represented as a specification of the route within the boundaries of the transport system. The various W and H in definition 1 indicate the direction for the client to move [028].

В одном из вариантов реализации авторы рассматривают более простой маршрут до места работы и обратно H^W1^W2^...^Wk^-H, при каком-либо k>1 конечные точки перемещения по этому маршруту будут пересекаться, а дом в начале и в конце маршрута один и тот же. В раскрытии сущности изобретения авторы используют, как правило, более простую форму, поскольку она является самой частой на практике и упрощает понимание презентации. При этом любому человеку, обладающему базовыми техническими знаниями, очевидно, что данный способ применяется к авторскому (основному) определению маршрута до места работы и обратно.In one of the implementation options, the authors consider a simpler route to the place of work and back H^W 1 ^W 2 ^...^W k ^-H, for any k>1, the end points of movement along this route will intersect, and the house at the beginning and at the end of the route is the same. In disclosing the essence of the invention, the authors use, as a rule, a simpler form, since it is the most frequent in practice and simplifies the understanding of the presentation. At the same time, it is obvious to any person with basic technical knowledge that this method is applied to the author's (basic) determination of the route to and from the place of work.

Данный способ находит кратчайшее время в пути по любому из маршрутов до места работы и обратно. Само по себе это уже было отражено в различных известных технических решениях. Но данный способ находит время в пути для всех домов за чрезвычайно малое время.This method finds the shortest travel time on any of the routes to the place of work and back. In itself, this has already been reflected in various known technical solutions. But this method finds the travel time for all the houses in an extremely short time.

4. Предварительная обработка транспортной системы.4. Pretreatment of the transport system.

Способ проводит предварительную обработку данных о системе общественного транспорта, чтобы предварительно рассчитать (precompute) и сохранить кратчайшее время в пути для всех домов.The method pre-processes public transport system data to precompute and store the shortest travel time for all homes.

4.1. Расчет кратчайшего времени перемещения.4.1. Calculation of the shortest travel time.

Авторы описывают способ эффективного расчета кратчайшего времени перемещения между всеми домами и всеми расположениями остановок общественного транспорта. Как правило, в раскрытии сущности изобретения авторы используют термин остановки (stopstations) для остановок общественного транспорта, которые включают остановки автобусов, станции метро, либо оба этих вида транспорта сразу.The authors describe a way to efficiently calculate the shortest travel time between all homes and all public transit locations. As a rule, in the disclosure of the essence of the invention, the authors use the term stops (stopstations) for public transport stops, which include bus stops, metro stations, or both of these modes of transport at once.

Способ начинается с построения произвольного графа (graph) системы общественного транспорта GT, который моделирует систему общественного транспорта (public transportation system) и который можно взять из известных технических решений. Граф может содержать вершины (vertexes), которые представляют автобусные остановки, станции метро или и те, и другие сразу. На графе могут присутствовать и другие вершины, означающие, например, место остановки или разворота транспорта либо место остановки или поворота пешеходов. Вершины на графе, соответствующие местам остановки транспорта, имеют обозначениеThe method begins with the construction of an arbitrary graph (graph) of the GT public transport system, which models the public transportation system and which can be taken from known technical solutions. The graph may contain vertexes that represent bus stops, subway stations, or both. Other vertices may also be present on the graph, meaning, for example, the place where vehicles stop or turn around, or the place where pedestrians stop or turn. The vertices on the graph corresponding to the places of transport stops are denoted

STOPSTATIONs, с индексом s. На графе имеются ориентированные взвешенные ребра (directed weighted edges), каждое из которых обозначает время в пути вдоль отрезка (segment) от исходной вершины ребра до целевой вершины ребра. Граф также может иметь другие ребра. Ребро может обозначать отрезок пути на пересадку между разными маршрутами транспорта. Граф может содержать данные о времени отправления или времени прибытия разных маршрутов общественного транспорта. Как правило, используется алгоритм Дейкстры по поиску кратчайшего плеча графа от одной вершины до всех остальных (shortest graphSTOPSTATIONs, with index s. The graph has directed weighted edges, each of which represents the travel time along the segment from the source edge vertex to the target edge vertex. The graph can also have other edges. An edge can denote a segment of a transfer route between different transport routes. The graph may contain data on the departure time or arrival time of different public transport routes. As a rule, Dijkstra's algorithm is used to find the shortest graph arm from one vertex to all the others (shortest graph

- 5 042786 paths) либо поисковый алгоритм А* (А звезда) для расчета пути от одной из вершин графа с кратчайшим плечом графа (суммы весовых значений), обозначая кратчайшее время в пути от одной- 5 042786 paths) or the search algorithm A* (A star) for calculating the path from one of the vertices of the graph with the shortest arm of the graph (sum of weight values), denoting the shortest travel time from one

STOP STATION s' до другойSTOP STATION s' to another

STOP STATIONs, для любого s' u s, а также если перемещение начинается в заданное время или заканчивается в заданное время [033].STOP STATIONs, for any s' u s, and if the movement starts at the specified time or ends at the specified time [033].

Данный способ расширяет граф системы общественного транспорта GT. См. фиг. 5 для иллюстрации.This method extends the graph of the public transport system GT. See fig. 5 for illustration.

Сначала авторы вводят кластеры остановок (clusters of stopstations). Способ группирует остановки по кластерам с помощью какого-либо алгоритма группирования в кластеры; в одном из вариантов реализации способ группирует две остановки в один кластер, если географическое расстояние между двумя остановками не превышает пороговое значение (threshold), например, 5 м либо если время в пути между двумя остановками не превышает пороговое значение. Авторы говорят о расположении кластера, имея в виду какое-либо географическое расположении в границах кластера, например его центральную точку. Для каждого кластера остановок с данный способ добавляет две вершиныFirst, the authors introduce clusters of stops (clusters of stopstations). The method groups stops into clusters using some clustering algorithm; in one implementation, the method groups two stops into one cluster if the geographic distance between the two stops does not exceed a threshold value (threshold), for example, 5 m, or if the travel time between two stops does not exceed the threshold value. The authors talk about the location of the cluster, referring to some geographic location within the boundaries of the cluster, such as its central point. For each cluster of stops with this method adds two vertices

STOPSTA TIONCL USTERSO URGE_с иSTOPSTA TIONCL USTERSO URGE_s and

STOPSTA TION CL USTER TARGET c, а также ребра, соединяющие кластер с остановками GTSTOPSTATION CL USTER TARGET c, as well as edges connecting the cluster with GT stops

STOPSTATION CLUSTERSOURCEc -+ STOPSTATION s' с пометкой FirstWaitGetOn иSTOPSTATION CLUSTERSOURCEc -+ STOPSTATION s' marked FirstWaitGetOn and

STOPSTATION s'-+ STOPSTATION_CLUSTER TARGET с с пометкой Zero, для любого s', всегда когда s' находится в кластере с. Ребра имеют нулевой вес. Получившийся граф обозначается GC с вершинами VC и ребрами ЕС. Подмножество вершинSTOPSTATION s'-+ STOPSTATION_CLUSTER TARGET c marked Zero, for any s', always when s' is in cluster c. Edges have zero weight. The resulting graph is denoted GC with vertices VC and edges EC. Subset of vertices

STOPSTA TION CL USTER SO URCE c, для всех с обозначается VS [035].STOPSTATION CL USTER SO URCE c, denoted by VS [035] for all c.

Другим расширением являются кластеры домов. Способ группирует дома в кластеры по какомулибо алгоритму группирования в кластеры; в одном из вариантов реализации способ использует такой же алгоритм, что и при группировании в кластеры остановок. Аналогичным образом определяется расположение кластера домов. Для каждого кластера s способ вводит вершинуAnother extension is house clusters. The method groups houses into clusters according to some clustering algorithm; in one implementation, the method uses the same algorithm as when clustering stops. The location of a cluster of houses is determined in a similar way. For each cluster s, the method introduces a vertex

HOMECL USTERSOURCEs и вершинуHOMECL USTERSOURCEs and top

HOME CL USTER TARGET sHOME CL USTER TARGETs

[036].[036].

с пометкой Walk, если имеется пеший участок в обратном направлении от расположения кластера остановок с до расположения кластера домов t, для любых с и t, при этом вес ребра отражает время в пути по пешему участку. В одном из вариантов реализации способ ограничивает пешие перемещения кратчайшими участками с заданной скоростью, например, 4 км/ч, продолжительностью не выше порогового значения, например, 1 ч. Получившийся граф обозначается G. Обозначение VH авторы присвоили вершинамlabeled Walk if there is a walking segment in the opposite direction from the location of the cluster of stops c to the location of the cluster of houses t, for any c and t, while the weight of the edge reflects the travel time along the walking segment. In one of the implementation options, the method limits walking movements to the shortest sections at a given speed, for example, 4 km / h, with a duration not exceeding a threshold value, for example, 1 hour. The resulting graph is denoted G. The authors assigned the designation VH to the vertices

Данный способ соединяет каждый кластер домов с кластерами остановок в виде пеших участков. В частности, способ добавляет реброThis method connects each cluster of houses with clusters of stops in the form of walking sites. In particular, the method adds an edge

HOME CLUSTER SOURCEs -+ STOP STATION CLUSTERSOURCE_с с отметкой Walk, если имеется пеший участок от расположения кластера домов s до расположения кластера остановок с, для любых s и с, при этом вес ребра отражает время в пути по пешему участку; и перевернутое реброHOME CLUSTER SOURCEs -+ STOP STATION CLUSTERSOURCE_c with the flag Walk if there is a walkable segment from the location of the cluster of houses s to the location of the cluster of stops c, for any s and c, while the weight of the edge reflects the travel time along the walking segment; and inverted rib

STOPSTATION CLUSTER TARGET с -+ HOME CLUSTER TARGETJ с пометкой Walk, если имеется пеший участок в обратном направлении от расположения кластера остановок с до расположения кластера домов t, для любых с и t, при этом вес ребра отражает время в пути по пешему участку. В одном из вариантов реализации способ ограничивает пешие перемещения кратчайшими участками с заданной скоростью, например, 4 км/ч, продолжительностью не выше порогового значения, например, 1 ч. Получившийся граф обозначается G. Обозначение VH авторы присвоили вершинамSTOPSTATION CLUSTER TARGET with -+ HOME CLUSTER TARGETJ marked Walk if there is a walking leg in the opposite direction from the location of the cluster of stops c to the location of the cluster of houses t, for any c and t, with the weight of the edge reflecting the travel time along the walking leg. In one of the implementation options, the method limits walking movements to the shortest sections at a given speed, for example, 4 km / h, with a duration not exceeding a threshold value, for example, 1 hour. The resulting graph is denoted G. The authors assigned the designation VH to the vertices

HOMECLUSTERSOURCEs, для всех s; а обозначения ЕН - множеству реберHOMECLUSTERSOURCEs, for all s; and the notation EN - to the set of edges

HOME CLUSTER SOURCE s -+ STOPSTATION CLUSTER SOURCE с, для всех s и с.HOME CLUSTER SOURCE s -+ STOPSTATION CLUSTER SOURCE s, for all s and s.

Авторов интересует расчет самого короткого плеча графа от каждого кластера остановок до каждого кластера домов, а также самое короткое плечо графа в обратном направлении от каждого кластераThe authors are interested in calculating the shortest graph arm from each cluster of stops to each cluster of houses, as well as the shortest graph arm in the opposite direction from each cluster

- 6 042786 домов до каждого кластера остановок.- 6,042,786 houses to each stop cluster.

Отметим, что группирование в кластеры позволяет данному способу значительно повысить качество расчета самого короткого плеча графа за счет унификации расположений, которые в сущности являются одними и теми же с точки зрения самого короткого плеча графа. Например, в высотном жилом комплексе могут находиться сотни квартир, а данный способ объединит их в один единый кластер домов. Таким образом, алгоритму расчета самого короткого плеча графа потребуется обработать всего один кластер домов, а не сотни входящих в него квартир.Note that clustering allows this method to significantly improve the quality of calculation of the shortest arm of the graph due to the unification of locations, which are essentially the same from the point of view of the shortest arm of the graph. For example, in a high-rise residential complex there may be hundreds of apartments, and this method will combine them into one single cluster of houses. Thus, the algorithm for calculating the shortest arm of the graph will need to process only one cluster of houses, and not hundreds of apartments included in it.

При этом типовое применение алгоритма Дейкстры все-таки не обеспечивает высокое качество. В типовом применении алгоритм начинает обработку с каждогоAt the same time, the typical application of Dijkstra's algorithm still does not provide high quality. In a typical application, the algorithm starts processing with each

STOP ST A TION CL USTERSO URCEc в G без каких-либо вершинSTOP ST ATION CL USTERSO URCEc in G without any vertices

HOME CLUSTER SOURCE S после чего алгоритм переходит от каждой вершиныHOME CLUSTER SOURCE S after which the algorithm proceeds from each vertex

HOMECLUSTERSOURCEs в G без каких-либо вершинHOMECLUSTERSOURCEs in G without any vertices

HOME CL USTERTARGETJHOME CL USTERTARGETJ

Совокупная асимптотическая временная сложность (asymptotic time complexity) выглядит какThe cumulative asymptotic time complexity looks like

О(\vs\ · (\ЕС\ + \ЕН\ + (\VC\ + \VH\} log(|VC\ + \VHJ) +O(\vs\ (\EC\ + \EN\ + (\VC\ + \VH\} log(|VC\ + \VHJ) +

O(]VH\ · (\EC\ + \EH\ +(|LC| + |VH\) log(QQ + \EHJ).O(]VH\ · (\EC\ + \EH\ +(|LC| + |VH\) log(QQ + \EHJ).

В данном способе улучшено типовое применение этого алгоритма. Авторы заметили, что в крупных городских образованиях, количество кластеров домов значительно превосходит количество кластеров остановок |ЕН|»|VSI, при одинаковом пороговом значении для группирования в кластеры. Исходя из этого наблюдения данный способ использует другой алгоритм расчета самого короткого плеча графа от кластеров домов: в данном способе переворачиваются (reverses) ребра G, и для каждогоThis method improves the typical application of this algorithm. The authors noticed that in large urban areas, the number of clusters of houses significantly exceeds the number of clusters of stops |EN|»|VSI, with the same threshold for grouping into clusters. Based on this observation, this method uses a different algorithm for calculating the shortest arm of the graph from clusters of houses: in this method, the edges of G are reversed, and for each

STOP ST A TIONCL USTERTARGETc на перевернутом графе рассчитывается самое короткое плечо до всех вершинSTOP ST A TIONCL USTERTARGETc on the inverted graph, the shortest leverage to all tops is calculated

HOMECLUSTERSOURCEs при помощи алгоритма Дейкстры (любые вершиныHOMECLUSTERSOURCEs using Dijkstra's algorithm (any vertices

HOMECL USTERTARGETJ можно убрать). Это дает желаемый эффект, ведь, когда переворачивают ребра какого-либо самого короткого плеча отHOMECL USTERTARGETJ can be removed). This gives the desired effect, because when the edges of any of the shortest arms are turned over from

STOP ST A TIONCL USTERTARGETc доSTOP ST A TIONCL USTERTARGETc to

HOME CL USTERSOURCEs на перевернутом графе, получают самое короткое плечо графа отHOME CL USTERSOURCEs on an inverted graph get the shortest graph arm from

HOME_CLUSTER_SOURCE_s доHOME_CLUSTER_SOURCE_s before

STOPSTA TIONCL USTER TARGETc на изначальном (не перевернутом) графе. Отсюда по данному способу получают асимптотическую временную сложность видаSTOPSTA TIONCL USTER TARGETc on the original (not flipped) graph. Hence, by this method, an asymptotic time complexity of the form is obtained

O(|FS| · QEQ + \EH\) + (IFC| + \VH\) log(|EQ + |ЕЯ|))).O(|FS| QEQ + \EH\) + (IFC| + \VH\) log(|EQ + |EH|))).

Фактически данный способ предлагает существенное сокращение общего времени обработки на графе G для городской агломерации Сеула [040].In fact, this method offers a significant reduction in the total processing time on graph G for the Seoul metropolitan area [040].

В данном способе используется симметричный алгоритм для противоположной ситуации, когда количество кластеров остановок превышает количество кластеров домов |VH|<|VS|. В этом случае данный способ переворачивает ребра при расчете самого короткого плеча графа от кластеров остановок до кластеров домов.This method uses a symmetric algorithm for the opposite situation, when the number of stop clusters exceeds the number of house clusters |VH|<|VS|. In this case, this method reverses the edges when calculating the shortest arm of the graph from clusters of stops to clusters of houses.

В одном из вариантов реализации способ использует время отправления (departure times). Способ рассчитывает самое короткое плечо графа от каждогоIn one embodiment, the method uses the departure time (departure times). The method calculates the shortest graph arm from each

STOPSTA TIONCL USTERSO URCEc до каждогоSTOPSTA TIONCL USTERSO URCEc before each

HOME CL USTER TARGETJ, для заданного времени отправления изHOME CL USTER TARGETJ, for a given departure time from

STOPSTA TION CL USTER SO URCE c.STOPSTATION CL USTER SO URCE c.

В этом случае способ использует соответствующий граф GT из известных технических решений, который позволяет задавать время отправления от остановок общественного транспорта; такой случай иногда обозначается вершиной, которая соответствует значению времени и географическому расположению, и ребром, которое обозначает время в пути из географического расположения в указанное время.In this case, the method uses the corresponding GT graph from known technical solutions, which allows you to set the departure time from public transport stops; such a case is sometimes denoted by a vertex, which corresponds to a time value and geographic location, and an edge, which denotes the travel time from the geographic location to the specified time.

- 7 042786- 7 042786

Аналогичным образом способ работает на перевернутом графе с использованием заданного времени прибытия вSimilarly, the method works on an inverted graph using a given time of arrival at

STOPSTA TION CL USTERTARGETc.STOPSTATION CL USTERTARGETc.

Длины самого короткого плеча графа переводят эти значения времени прибытия в значения времени отправления из каждогоThe lengths of the shortest arm of the graph translate these arrival times into departure times from each

HOME CLUSTER SOURCEs.HOME CLUSTER SOURCEs.

Аналогичный граф используется для расчета самого короткого плеча графа на основе сроков прибытия (arrival deadline). Соответствующим образом построенный граф может быть использован для расчета вероятности прибытия раньше срока [042].A similar graph is used to calculate the shortest graph leg based on the arrival deadline. An appropriately constructed graph can be used to calculate the probability of arriving early [042].

В одном из вариантов реализации не вводят в GT ни вершиныIn one implementation, no vertices are introduced into the GT

STOPSTA TION CL USTERSOURCEc ни вершиныSTOPSTATION CL USTERSOURCEc no top

STOPSTA TION CL USTER TARGET c.STOPSTATION CL USTER TARGET c.

Вместо этого соединяют вершиныInstead connect the vertices

HOME CLUSTER SOURCEs и вершиныHOME CLUSTER SOURCEs and peaks

HOME CL USTER TARGET J прямыми ребрами пеших участков с вершинамиHOME CL USTER TARGET J

STOP STATION s'.STOP STATION s'.

В одном из вариантов реализации не вводят в GT ни вершиныIn one implementation, no vertices are introduced into the GT

HOME CLUSTER SOURCE s ни вершиныHOME CLUSTER SOURCE s no top

HOME CL USTERTARGETJ.HOME CL USTERTARGETJ.

Вместо этого вводят вершиныInstead, introduce vertices

HOMEs, каждая из которых соответствует дому и которые соединяют с вершинамиHOMEs, each corresponding to a house and connected to vertices

STOPSTATIONS' ребрами пеших участков напрямую.STOPSTATIONS' EDGE HIKING SITES DIRECTLY.

В одном из вариантов реализации не группируют дома в кластеры.In one embodiment, the houses are not grouped into clusters.

В одном из вариантов реализации не группируют остановки в кластеры.One implementation does not group stops into clusters.

В одном из вариантов реализации рассчитывают самое короткое плечо графа по срокам прибытия: от кластеров остановок до кластеров домов с учетом срока прибытия в каждый кластер домов или от кластеров домов до кластеров остановок с учетом срока прибытия в каждый кластер остановок.In one implementation, the shortest arm of the time-of-arrival graph is calculated: from clusters of stops to clusters of houses, taking into account the time of arrival at each cluster of houses, or from clusters of houses to clusters of stops, taking into account the time of arrival at each cluster of stops.

В одном из вариантов реализации авторы используют некоторые алгоритмы расчета плеча графа, отличающиеся от алгоритма Дейкстры, например поисковый алгоритм А* (А звезда). В одном из вариантов реализации авторы используют аппроксимирующий алгоритм (approximation algorithm) для расчета самого короткого плеча графа. Можно использовать алгоритмы без каких-либо усовершенствований по качеству расчета.In one implementation, the authors use some algorithms for calculating the shoulder of a graph that differ from Dijkstra's algorithm, for example, the search algorithm A* (A star). In one implementation, the authors use an approximation algorithm to calculate the shortest arm of a graph. You can use the algorithms without any improvement in the quality of the calculation.

В одном из вариантов реализации весовые значения на некоторых ребрах графа обозначают денежную стоимость перемещения, а не время в пути. Тогда данный способ ищет и сравнивает дома исходя из денежных затрат на дорогу до места работы и обратно. Можно использовать любые другие смысловые ряды для весовых значений ребер, например количество пересадок между разными маршрутами общественного транспорта, время ожидания, финансовые издержки от ожидания или дальность перемещения.In one embodiment, the weights on some of the graph's edges indicate the monetary cost of the move rather than the travel time. Then this method searches and compares houses based on the cost of travel to and from work. You can use any other semantic series for edge weights, such as the number of transfers between different public transport routes, waiting time, financial costs of waiting, or travel distance.

В одном из вариантов реализации авторы применяют поиск с многоцелевой оптимизацией (multiobjective optimization search) на основе многомерной стоимости (multi-dimensional cost). Например, ищут самое короткое плечо графа, длина которого обозначает время в пути, так чтобы денежная стоимость, которая обозначает плечо графа, не превышала пороговое значение, или когда денежная стоимость прибавляется в качестве издержки за протяженность плеча графа [050].In one implementation, the authors use multiobjective optimization search based on multi-dimensional cost. For example, the shortest graph arm whose length denotes travel time is searched for, such that the monetary value that denotes the graph arm does not exceed a threshold value, or when the monetary value is added as a cost for the length of the graph arm [050].

В одном из вариантов реализации маршрут перемещения обозначен как плечо графа. Авторы рассчитывают различные характеристики самого короткого маршрута перемещения с использованием самого короткого графа, например первая остановка (т.е. посадка) или последняя остановка (т.е. высадка) на самом коротком плече графа, основную остановку пересадки на самом коротком плече графа, количество пересадок между разными маршрутами, транспорт с наибольшим временем в пути (например, автобус 1234), общее время ожидания на остановках, общее расстояние пеших участков, степень перегруженности конкретного плеча графа в часы-пик или последовательность географических расположений вдоль плеча графа. Такие характеристики могут использоваться при обработке запросов для фильтрования маршрутов перемещения, характеристики которых совпадают с условием, заданным в запросе.In one embodiment, the route of movement is designated as the arm of the graph. The authors calculate various characteristics of the shortest travel route using the shortest graph, e.g. first stop (i.e. embarkation) or last stop (i.e. disembarkation) on the shortest leg of the graph, main transfer stop on the shortest leg of the graph, number transfers between different routes, the transport with the longest travel time (for example, bus 1234), the total waiting time at stops, the total distance of walking sections, the degree of congestion of a particular arm of the graph during peak hours, or the sequence of geographic locations along the shoulder of the graph. Such characteristics can be used when processing requests to filter travel routes whose characteristics match the condition specified in the request.

В одном из вариантов реализации авторы рассчитали два или более плеча графа между некоторыми вершинами графа. Например, одно плечо графа от вершины и до вершины v можно преодолеть максимум на одном автобусе, а на другом плече графа от вершины и до вершины v может не быть метро, ноIn one implementation, the authors calculated two or more arms of the graph between some graph vertices. For example, one arm of the graph from the vertex to the vertex v can be covered by a maximum of one bus, and on the other arm of the graph from the vertex to the vertex v there may not be a subway, but

- 8 042786 время в пути на нем всего на 10 мин дольше, чем по самому короткому плечу графа.- 8 042786 the travel time on it is only 10 minutes longer than on the shortest arm of the graph.

В одном из вариантов реализации авторы рассчитали плечо графа, которое отвечает разным условиям фильтра (filtering conditions). Например, плечо графа, на котором предусмотрено не более одной пересадки или установлено максимальное время преодоления пеших участков.In one of the implementation options, the authors calculated the shoulder of the graph, which corresponds to different filter conditions (filtering conditions). For example, the shoulder of the graph, on which no more than one transfer is provided or the maximum time for overcoming pedestrian sections is set.

В одном из вариантов реализации авторы используют сервис построения маршрутов (например, на основе известных технических решений) для расчета кратчайшего времени в пути между домами и остановками общественного транспорта. Поэтому в некоторых случаях не могут использоваться графы, описанные в настоящем разделе 4.1.In one implementation, the authors use a route building service (eg, based on known technical solutions) to calculate the shortest travel time between homes and public transport stops. Therefore, in some cases, the columns described in this section 4.1 cannot be used.

Способ, описанный в разделе 4.1, рассчитывает кратчайшее время в пути от каждого дома до каждой остановки, а также кратчайшее время в обратном направлении. Ниже описана структура данных для эффективного хранения и обработки данных о кратчайшем времени в пути, используемых данным способом.The method described in section 4.1 calculates the shortest travel time from each house to each stop, as well as the shortest time in the opposite direction. The following describes a data structure for efficient storage and processing of shortest travel time data used by this method.

4.2. Хранение кратчайшего времени перемещения.4.2. Storage of the shortest travel time.

В одном из вариантов реализации данный способ сохраняет (stores) время в пути в виде векторов (vector form). Способ выстраивает последовательности кластеров остановок в виде s1, ..., sn, а также последовательности кластеров домов в виде hi, ., hm в некотором порядке, например произвольно. В одном из вариантов реализации такие последовательности становятся фиксированными. Для каждого si данный способ хранит вектор кратчайшего времени в пути от si до кластеров домов, используя последовательность кластеров домовIn one implementation, this method stores (stores) travel time in the form of vectors (vector form). The method builds sequences of clusters of stops in the form s1, ..., sn, as well as sequences of clusters of houses in the form hi, ., h m in some order, for example, arbitrarily. In one embodiment, such sequences become fixed. For each si, this method stores a vector of the shortest travel time from si to house clusters using a sequence of house clusters

V/ (41, //,2, · · · , так чтобы значение вектора (vector) vi в координате (coordinate) j, vi[j], было ti,j, равное кратчайшему времени в пути от кластера остановок si до кластера домов hj. См. фиг. 6 для иллюстрации [056].V/ (41, //,2, · · , so that the value of the vector (vector) vi at coordinate (coordinate) j, vi[j], is ti,j, equal to the shortest travel time from the stop cluster si to house cluster hj See Fig. 6 for an illustration [056].

Последовательность кластеров домов упрощает расчет кратчайшего времени в пути до каждого кластера домов. Например, если клиенту нужно переместиться от кластера остановок si1 и далее от кластера остановок si2, просто складывают векторы vi1 и vi2 покоординатно, а получившаяся сумма содержит общее время в пути от обоих кластеров остановок до каждого кластера домов h1, ., hm.The sequence of house clusters simplifies the calculation of the shortest travel time to each house cluster. For example, if the client needs to move from the cluster of stops si1 and further from the cluster of stops s i2 , just add the vectors v i1 and v i2 coordinatewise, and the resulting sum contains the total travel time from both clusters of stops to each cluster of houses h1, ., h m .

В одном из вариантов реализации способ хранит время обратного пути от домов до остановок, используя эту же последовательность кластеров домов. Т.е. способ хранит векторIn one implementation, the method stores the return journey time from houses to stops using the same sequence of house clusters. Those. way store vector

V / (/ /, 1, t i,2, , t i,m), так что v'iU]=t'hJ, является кратчайшим временем в пути от кластера домов hj до кластера остановок si (необходимо учитывать замену переменных; вектор v'i используется для одного кластера остановок, даже если перемещение осуществляется в обратном направлении) [058].V / - (/ /, 1, ti,2, , ti,m), so that v'iU] = t'hJ, is the shortest travel time from the cluster of houses hj to the cluster of stops si (change of variables must be taken into account; the vector v'i is used for one stop cluster, even if the movement is in the opposite direction) [058].

Как правило, два вектора для одного и того же кластера остановок si не равны, v,^v'i, потому что минимальное время в пути до дома может отличаться от времени в пути из дома (как правило, перемещение - это не симметричный (not symmetric) процесс). Однако в одном из вариантов реализации способ рассчитывает и сохраняет всего один из двух векторов, а также использует его вместо второго, благодаря чему сокращается время расчета и экономится место в системе. В другом из вариантов реализации способ сохраняет средневзвешенное (weighted average) значение каждой координаты двух векторов, благодаря чему может снизиться наихудшая погрешность. Весовые значения могут быть заданы в виде 0,5, либо можно задать предпочтение маршруту до или из определенного кластера домов исходя из, например, частоты запросов [059].As a rule, two vectors for the same cluster of stops si are not equal, v,^v'i, because the minimum travel time to home may differ from the travel time from home (as a rule, the movement is not symmetrical (not symmetric) process). However, in one implementation, the method calculates and stores only one of the two vectors, and also uses it instead of the second, thereby reducing calculation time and saving space in the system. In another implementation, the method stores a weighted average of each coordinate of the two vectors, which can reduce the worst-case error. The weight values can be given as 0.5, or a route preference can be given to or from a particular cluster of houses based on, for example, the frequency of requests [059].

В одном из вариантов реализации способ сохраняет время в пути, округленное до ближайшей целой минуты, используя один бит памяти компьютера, выраженное беззнаковым целым числом от 0 до 254, при этом 255 обозначает неизвестное или слишком долгое время в пути. Хранение таких данных позволяет эффективно складывать векторы с помощью современного компьютерного оборудования, поддерживающего выполнение векторных операций (vector operations) и арифметику с насыщением (saturation arithmetic) (например, набор команд AVX-512/AVX-512 instruction set или внутренние механизмы графического ускорителя (GPU intrinsics)), при этом не давая погрешности выйти за практически приемлемый уровень не более 30 с и охватывая значения общего времени в пути вплоть до 4 ч и более. Можно применять любое другое округление (rounding), например время в секундах можно поделить на 120 и округлить до целого числа, которым будет выражено время при разрешении в 2 мин [060].In one implementation, the method stores travel time rounded to the nearest whole minute using one bit of computer memory expressed as an unsigned integer from 0 to 254, with 255 indicating an unknown or too long travel time. Storing such data allows efficient addition of vectors using modern computer hardware that supports vector operations and saturation arithmetic (for example, the AVX-512/AVX-512 instruction set or the internal mechanisms of the graphics accelerator (GPU intrinsics)), while not allowing the error to go beyond a practically acceptable level of no more than 30 s and covering the values of the total travel time up to 4 hours or more. Any other rounding may be used, for example the time in seconds can be divided by 120 and rounded up to an integer, which will be expressed as time at a resolution of 2 minutes [060].

В одном из вариантов реализации способ сохраняет вектор не для кластеров. Например, некоторые s1, ., sn обозначают остановки (а не кластеры остановок), или некоторые h1, ., hm обозначают дома (а не кластеры домов).In one implementation, the method stores the vector for non-clusters. For example, some s1, ., s n denote stops (not clusters of stops), or some h1, ., h m denote houses (not clusters of houses).

В одном из вариантов реализации данный способ использует другой вид векторов для сохранения значений времени в пути. Например, хеш-таблицу (hash map) или список (list) (координат, значений). Такие нечасто встречающиеся виды могут иметь преимущество в случае множества неизвестных или слишком больших значений времени в пути [062].In one implementation, this method uses a different kind of vectors to store travel time values. For example, a hash table (hash map) or a list (list) (coordinates, values). Such infrequent species may have an advantage in the case of many unknowns or too long travel times [062].

В одном из вариантов реализации способ сохраняет маршруты перемещения, используя векторы, которые идут по последовательности кластеров домов h1, ., hm, либо другой вид векторов, например хеш-таблицу или список (координат, значений). Такие маршруты перемещения могут использоватьсяIn one implementation, the method stores travel routes using vectors that follow a sequence of house clusters h1, ., h m , or another kind of vector, such as a hash table or list (of coordinates, values). These routes can be used

- 9 042786 при обработке запросов для фильтрования маршрутов перемещения, характеристики которых совпадают с условием, заданным в запросе [063].- 9 042786 when processing requests to filter travel routes whose characteristics match the condition specified in the request [063].

5. Время в пути по одному маршруту до места работы и обратно.5. Travel time on one route to the place of work and back.

Авторы дают описание эффективного расчета данным способом кратчайшего времени в пути по какому-либо маршруту до места работы и обратно. Рассмотрим маршрут до места работы и обратно, начинающийся от кластера домов Н, проходящий через работу k>1 и возвращающийся в кластер домов: Н^W1^W2^...^Wk^Н. Нужно найти кратчайшее время в пути для данного маршрута до места работы и обратно от каждого Н. Такой расчет будет довольно затратным, ведь количество кластеров домов может быть каким угодно большим, например 500000, учитывая радиус в несколько метров, заданный для группирования в кластеры. Но данный способ предлагает решение, которое существенно ускоряет поиск: данный способ раскладывает (decomposes) маршрут до места работы и обратно на часть, не привязанную к домам, и часть, привязанную к домам, как показано на фиг. 7.The authors give a description of the efficient calculation by this method of the shortest travel time along any route to the place of work and back. Consider a route to the place of work and back, starting from the cluster of houses H, passing through job k>1 and returning to the cluster of houses: H^W 1 ^W 2 ^...^W k ^H. We need to find the shortest travel time for a given route to and from the place of work from each N. Such a calculation will be quite expensive, because the number of clusters of houses can be as large as 500,000, given a radius of several meters specified for grouping into clusters. But this method offers a solution that significantly speeds up the search: this method decomposes the route to and from the place of work into a part not tied to houses and a part tied to houses, as shown in Fig. 7.

5.1. Средняя часть: перемещение W1^W2^...^Wk.5.1. Middle part: displacement W1^W 2 ^...^W k .

Данный способ находит кратчайшее время в пути для перемещения W1^W2^...^Wk, исключая кластер домов. Для каждого отрезка Wi^Wi+1 указанный способ обращается к одному из сервисов построения маршрутов (например, из известных технических решений), который рассчитывает кратчайшее время в пути от Wi до Wi+1 с использованием транспортной системы (например, включая пешие участки, поездки на метро и автобусе, пересадки, либо полностью пеший участок от Wi до Wi+1). После чего данный способ складывает значения кратчайшего времени в пути в виде разных i. Получившаяся сумма выражается следующим образом:This method finds the shortest travel time to move W1^W 2 ^...^W k , excluding the cluster of houses. For each segment Wi^Wi+1, this method refers to one of the routing services (for example, from known technical solutions), which calculates the shortest travel time from Wi to Wi +1 using the transport system (for example, including walking sections, trips by metro and bus, transfers, or a completely walking section from Wi to Wi +1 ). After that, this method adds up the values of the shortest travel time in the form of different i. The resulting amount is expressed as follows:

PathNonHomeDuration(Hzi —> Wi —>. . . —> Wk) =PathNonHomeDuration(H z i —> Wi —>. . . —> Wk) =

RoutingEngineShortestDuration(147 И^+1).RoutingEngineShortestDuration(147 &^ +1 ).

l<i<k-ll<i<k-l

Отметим, что в сервис построения маршрутов потребуется отправить только k-1 обращений. Это число не привязано к количеству домов.Note that only k-1 calls will need to be sent to the route building service. This number is not tied to the number of houses.

В одном из вариантов реализации данный способ использует время отправления (departure time), срок прибытия (arrival deadline) или иные части запроса при обращении в сервис построения маршрутов [066].In one implementation, this method uses the departure time (departure time), arrival deadline (arrival deadline) or other parts of the request when contacting the route building service [066].

Затем данный способ рассчитывает кратчайшее время в пути для незамкнутой части (open-jaw part) маршрута до места работы и обратно: два отрезка Н >W] и Wk >Н, в которых присутствует кластер домов. Расчет должен производиться очень быстро, ведь его результат понадобится для каждого кластера домов.Then this method calculates the shortest travel time for the open-jaw part of the route to and from work: two segments H > W] and Wk > H, in which there is a cluster of houses. The calculation must be done very quickly, because its result will be needed for each cluster of houses.

5.2. Начальная часть/Start part: перемещение Н^W1.5.2. Start part: move H^W 1 .

Данный способ рассматривает два пути перемещения от Н до 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].This method considers two travel paths from H to W1. See fig. 8 for illustration. One of the routes provides a completely pedestrian section. If H and W1 are near by, it is often actually fastest to move completely on foot. In this case, this method refers to the route building service (for example, from known technical solutions) to calculate the shortest travel time walk (H^W1). The second way involves the use of the transport system. This method finds stop clusters (stopstation clusters) that are within a threshold reach, for example 2000 m from W1, designating them as set A. Set A is a subset {s1, .„, s n } of all stop clusters (in Fig. 8 A={s1, s2 , s3 }). This method calls the walking path service to get the shortest travel time walk(s i ^W 1 ) for each s i in A. If H and W1 are not nearby, often the fastest way is to travel using a stop. from set A, and then continue moving along the corresponding walking section. Due to our two-way approach, the resulting value is often the shortest travel time [068].

Подход с двумя вариантами может быть применен к каждому кластеру домов. Напомним, что вектор v'i содержит значения кратчайшего времени в пути до кластера остановок si от следующих друг за другом кластеров домов. Таким образом, данный способ рассчитывает кратчайшее время в пути от кластера домов hj, извлекая векторы v'iиз базы данных и используя следующую формулу:A two-way approach can be applied to each cluster of houses. Recall that the vector v' i contains the values of the shortest travel time to the cluster of stops s i from successive clusters of houses. Thus, this method calculates the shortest travel time from the cluster of houses hj by extracting the vectors v' i from the database and using the following formula:

a.j = min{walk(Hj -> 14^), min{r·[/] + walk(si -> VFjjj (Уравнение 1)a.j = min{walk(Hj -> 14^), min{r [/] + walk(si -> VFjjj (Equation 1)

В одном из вариантов реализации данный способ рассчитывает walk(Hj^W1), только если расстояние от кластера домов Hj до W1 меньше порогового значения, например 2000 м, либо если время в пути от кластера домов Hj до W1 меньше порогового значения. Обозначим множество таких кластеров домов как J.In one implementation, this method calculates walk(Hj^W1) only if the distance from the house cluster Hj to W1 is less than a threshold, such as 2000 m, or if the travel time from the house cluster Hj to W 1 is less than the threshold. Denote the set of such clusters of houses as J.

В одном из вариантов реализации благодаря обозначению векторов v' данный способ сразу рассчитывает время в пути от каждого кластера домов с помощью векторных операций (vector operations) с ν' следующим образом:In one implementation, by designating the vectors v', this method immediately calculates the travel time from each cluster of houses using vector operations (vector operations) with ν' as follows:

- 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}.- 10 042786 for j = 1 to m a j = ^ for all 5 ; EA w = walk(s l -> Wi) / a r \ / min{a 1 , r-[1] + w] \ a 2 \ _ min{a 2 , V-[2] + w] j \ a m/ \min{a m , v- [m] + w}/ for all j EJ w = walk(Hj -> Wi) a } = m)^, w}.

В одном из вариантов реализации данный способ использует математическую формулу (mathematical formula) mm{walk(Si -> W-A + ν·], s^A где операция + (operation) прибавляет число к значению в каждой координате вектора, а операция min вычисляет минимальное значение в каждой координате по нескольким векторам [072].In one implementation, this method uses the mathematical formula (mathematical formula) mm{walk(Si -> W-A + ν ], s^A where the + (operation) operation adds a number to the value at each vector coordinate, and the min operation calculates the minimum value in each coordinate over several vectors [072].

Вектор (а1, ..., am) значений времени в пути обозначается следующим образом: PathFromHomeDurations(—> Wi) = (αι, ..., ат).The vector (a1, ..., am) of travel time values is denoted as follows: PathFromHomeDurations(—> Wi) = (αι, ..., a m ).

Пример языка описания алгоритмов для расчета PathFromHomeDurations приведен на фиг. 10.An example of an algorithm description language for calculating PathFromHomeDurations is shown in Fig. 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].One implementation uses the uint8 number format to store aj, v'ij, or w. In one embodiment, the stored number is expressed in minutes. In one implementation, the sum v'i[j]+w for some j is performed using saturation arithmetic in the range 0 to a threshold, such as 255. In one implementation, the term v' 1 [j] is first converted to a wider number format, such as the fp16 or uint16 formats, and only then added to w to avoid arithmetic overflow during addition. In one implementation, some of the calculations included in the mathematical formula are performed using at least one instruction for vector operations (including tensor operations), such as the AVX-512 instruction or the internal mechanisms of the graphics accelerator supported by the hardware security. In one implementation, some of the calculations included in the mathematical formula are partitioned and such sections are performed in parallel [075].

В одном из вариантов реализации данный способ использует структуру данных с ближайшей соседней записью (nearest-neighbor), например дерево KD для расположений кластеров остановок, чтобы быстро рассчитывать множество А при обработке запроса.In one implementation, this method uses a nearest neighbor (nearest-neighbor) data structure, such as a KD tree for stop cluster locations, to quickly calculate set A when processing a query.

В одном из вариантов реализации данный способ ограничивает множество А значением, не превышающим количество кластеров остановок, ближайших к W1, например не более 100.In one implementation, this method limits the set A to a value not exceeding the number of stop clusters closest to W1, for example, not more than 100.

В одном из вариантов реализации данный способ ограничивает множество А кластерами остановок в пределах пешего участка, не выходя за определенное расстояние до W1, например, в радиусе 2000 м.In one implementation, this method limits the set A to clusters of stops within the walking area, not going beyond a certain distance to W1, for example, within a radius of 2000 m.

В одном из вариантов реализации данный способ предварительно рассчитывает кратчайшее время в пути по пешим участкам от точек в пределах порогового расстояния от расположений каждого кластера домов до местоположения кластера домов либо предварительно рассчитывает кратчайшее время в пути по пешим участкам от точек в пределах порогового расстояния от расположений кластеров остановок до расположения кластера остановок. Затем во время обработки запросов данный способ не обращается к каким-либо сервисам расчета пеших участков, а вместо этого использует предварительно рассчитанное время в пути по пешим участкам.In one implementation, this method precalculates the shortest walking time from points within a threshold distance from each house cluster location to the home cluster location, or precalculates the shortest walking time from points within a threshold distance from cluster locations stops to the location of the cluster of stops. This method then does not call any walkway calculation services during query processing, but instead uses the pre-calculated walking time.

В одном из вариантов реализации кратчайшее время в пути по пешему участку рассчитывается по геодезической линии, игнорируя любые препятствия. Это позволяет ускорить расчет walk(si^W1) в ущерб точности.In one implementation, the shortest travel time on foot is calculated from the geodetic line, ignoring any obstacles. This speeds up the calculation of walk(si^W1) at the expense of accuracy.

В одном из вариантов реализации в уравнении 1 используются маршруты перемещения. Например, если в пользовательском запросе задано условие, ограничивающее количество пересадок между транспортными маршрутами, задают фильтр для si и j: в уравнении находят количество пересадок, сохраненное на маршруте перемещения, и, если это число превысит заданное ограничение, игнорируют определенные si и j в уравнении.In one embodiment, Equation 1 uses travel routes. For example, if a user query has a condition that limits the number of transfers between transport routes, a filter is set for si and j: the equation finds the number of transfers stored on the travel route, and if this number exceeds the specified limit, ignore the defined s i and j in equation.

В одном из вариантов реализации группировка значений времени в пути по остановкам si точно так же, как это делалось для v'i, повышает качество работы с базой данных. Действительно, несмотря на то что множество А зависит от пользовательского запроса, который нельзя знать заранее, для каждой si из множества А необходимо получить ожидаемо большое количество значений времени в пути.In one implementation, grouping travel times by stops si, just as it was done for v'i, improves the quality of work with the database. Indeed, despite the fact that set A depends on a user request that cannot be known in advance, for each si from set A, it is necessary to obtain an expectedly large number of travel time values.

В одном из вариантов реализации векторы v'i для массива i случайным образом распределяются по разным блокам обработки. Это может уменьшить интервал ожидания при расчете вектора (a1, ..., am),In one implementation, the vectors v'i for the array i are randomly assigned to different processing blocks. This can reduce the waiting interval when calculating the vector (a1, ..., am),

- 11 042786 поскольку остановки, включенные во множество А, зачастую равномерно распределены по блокам обработки.- 11 042786 because the stops included in set A are often evenly distributed across processing units.

В одном из вариантов реализации векторы v'i для массива i объединяются в блоки обработки по географическому принципу. Это может повысить скорость обработки при расчете вектора (а1, ..., am) за счет уменьшения потребности в передаче данных в силу того факта, что множество А зачастую состоит из остановок, находящихся рядом друг с другом.In one embodiment, the vectors v'i for the array i are combined into geographic processing blocks. This can improve processing speed when calculating the vector (a1, ..., am) by reducing the need for data transmission due to the fact that the set A often consists of stops located next to each other.

5.3. Конечная часть: перемещение Wk^H.5.3. End part: displacement Wk^H.

Расчет аналогичен предыдущему пункту, но использует векторы v, а не v'. См. фиг. 9 для иллюстрации. данный способ рассчитывает множество В кластеров остановок в пределах порогового расстояния от Wk (на фиг. 9 множество В=^4, s5}). Таким образом, данный способ рассчитывает кратчайшее время в пути от кластера домов hj в видеThe calculation is similar to the previous point, but uses the vectors v, not v'. See fig. 9 for illustration. this method calculates the set B of clusters of stops within the threshold distance from Wk (in Fig. 9, the set B=^ 4 , s 5 }). Thus, this method calculates the shortest travel time from the cluster of houses hj in the form

Ibj = min{walk(Wk -> Hj), min{waZk(iyfc sj + iy[/]}j (Уравнение 2)Ibj = min{walk(W k -> Hj), min{waZk(iy fc sj + iy[/]}j (Equation 2)

Как и выше, в одном из вариантов реализации при обозначении вектора как v, данный способ рассчитывает время в пути сразу до каждого кластера домов, используя векторные операции с v по уравнению 2. В одном из вариантов реализации данный способ использует математическую формулу min{waZ/c(I46, -> sj 4- vj Si^BAs above, in one implementation, when the vector is denoted as v, this method calculates the travel time immediately to each cluster of houses using vector operations on v according to equation 2. In one implementation, this method uses the mathematical formula min{waZ/ c(I46, -> sj 4- vj Si^B

[086].[086].

Вектор (b1, ., bm) значений времени в пути обозначается следующим образом: PathToHomeDurations(M —>) = (bi, ..., bm).A vector (b1, ., b m ) of travel time values is denoted as follows: PathToHomeDurations(M ->) = (bi, ..., b m ).

В данном способе используются варианты, аналогичные разделу 5.2. Например, в одном из вариантов реализации данный способ использует векторную операцию, которая рассчитывает сразу часть вектора (аь ., am) и вектора (bi, ., bm).This method uses options similar to section 5.2. For example, in one of the implementation options, this method uses a vector operation that calculates the part of the vector (a b ., am) and the vector (bi, ., bm) at once.

5.4. Объединение начальной, средней и конечной частей.5.4. Combining the beginning, middle and end parts.

Наконец, данный способ рассчитывает (computes) кратчайшее время в пути по маршруту до места работы и обратно для каждого кластера домов. Данный способ просто складывает два вектора и двигает значения по координатам. Обозначим получившийся вектор в видеFinally, this method calculates (computes) the shortest travel time to and from work for each cluster of houses. This method simply adds two vectors and moves the values along the coordinates. Denote the resulting vector as

PathDurations( Wi ^>· W2 ... Wk ^) =PathDurations( Wi ^> W2 ... Wk ^) =

PathFromHomeDurations(—> Wi) + PathToHomeDurations(M —>) + PathNonHomeDuration(PFi W2 ^ . . . ^ Wk), (Уравнение 3) где первый + означает покоординатное сложение векторов, а второй + означает прибавление числа к значению у каждой координаты вектора [089].PathFromHomeDurations(—> Wi) + PathToHomeDurations(M —>) + PathNonHomeDuration(PFi W2 ^ . . . ^ Wk), (Equation 3) where the first + means coordinatewise vector addition, and the second + means adding a number to the value at each vector coordinate [089].

В одном из вариантов реализации данный способ рассчитывает время в пути с учетом заданного времени отправления из какого-либо географического расположения или срока прибытия в какое-либо географическое расположение по какому-либо маршруту до места работы и обратно [090].In one implementation, this method calculates the travel time given a given departure time from a geographic location or arrival time to a geographic location along a route to and from a place of work [090].

В одном из вариантов реализации данный способ предварительно рассчитывает время в пути PathDurations для заданных маршрутов до места работы и обратно. Например, данный способ рассчитывает и сохраняетIn one implementation, this method precalculates the travel time PathDurations for given routes to and from work. For example, this method calculates and saves

Path From Hom eDurations(—> W) иPath From Hom eDurations(—> W) and

PathToHomeDurations(lP —►), для каждого W, который представляет собой школу. В процессе обработки запроса данный способ находит предварительно рассчитанные векторы в базе данных, вместо того чтобы рассчитывать их по уравнению 1, уравнению 2 и уравнению 3 [091].PathToHomeDurations(lP -►), for each W that represents a school. During query processing, this method finds precalculated vectors in the database instead of calculating them according to equation 1, equation 2 and equation 3 [091].

В одном из вариантов реализации значение PathDurations может быть изменено. Рассмотрим школу W, для приема в которую имеется требование прописки в определенном районе, что означает, что в нее могут ходить только дети из определенных домов. Это условие можно легко выполнить, установив значения координат вектора PathFromHomeDurations(^W) на бесконечность для тех кластеров домов, которые выходят за границы района (zone) прописки для приема в школу, и таким же образом установив значения координат вектора PathToHomeDurations(W^). Аналогичное изменение можно сделать, если W - это ресторан с ограничением по району доставки еды из него или государственное учреждение, в зоне ответственности которого находится определенный район. Измененные таким образом значения могут быть сохранены и использованы при обработке запросов [092].In one implementation, the value of PathDurations can be changed. Consider school W, which has a local residence requirement for admission, meaning that only children from certain homes can attend. This condition can be easily satisfied by setting the coordinate values of the PathFromHomeDurations(^W) vector to infinity for those clusters of houses that fall outside the boundaries of the area (zone) of registration for admission to school, and in the same way setting the coordinate values of the vector PathToHomeDurations(W^). A similar change can be made if W is an area-restricted restaurant, or a government agency that is responsible for a particular area. Values changed in this way can be saved and used when processing requests [092].

В одном из вариантов реализации данный способ применяет произвольную функцию манипулирования (manipulation) к значениям координат векторов vi, v'i или PathDurations. Например, это может помочь в реализации государственной политики по снижению тарифа проезда при перемещениях между теми или иными частями городской агломерации в особой экономической зоне, пострадавшей от чрезIn one implementation, this method applies an arbitrary manipulation function (manipulation) to the coordinate values of the vectors vi, v'i or PathDurations. For example, this can help in the implementation of state policy to reduce the fare when moving between certain parts of an urban agglomeration in a special economic zone affected by

- 12 042786 вычайной ситуации. Такая функция может быть применена до обработки запроса (например, в качестве общей политики) или в процессе обработки (например, в качестве персонализированной политики) [093].- 12 042786 emergency. Such a feature may be applied before the request is processed (eg, as a general policy) or during processing (eg, as a personalized policy) [093].

В одном из вариантов реализации данный способ рассчитывает PathDurations для подмножества кластеров домов. Например, подмножество определяется по условию характеристик дома, заданных в пользовательском запросе. В одном из вариантов реализации выбираем последовательность h1, ..., hm из кластеров домов таким образом, что эти подмножества часто располагаются на коротком отрезке последовательности, что снижает объем передачи данных.In one implementation, this method calculates PathDurations for a subset of clusters of houses. For example, a subset is determined by a condition of the characteristics of a house given in a user query. In one implementation, we select the sequence h1, ..., hm from clusters of houses in such a way that these subsets are often located on a short segment of the sequence, which reduces the amount of data transfer.

6. Поиск одного дома.6. Search for one house.

Данный способ демонстрирует эффективный подбор домов по маршрутам до места работы и обратно. Сначала покажем несколько примеров поисковых запросов, прежде чем представить общий поисковый запрос для одного дома.This method demonstrates the efficient selection of houses along the routes to and from the place of work. Let's first show some examples of search queries before presenting a general search query for a single house.

6.1. Запрос со взвешенной суммой.6.1. Query with a weighted sum.

Рассмотрим семью, где один из родителей ходит на работу, которая находится в geo 1, пять раз в неделю, а другой из родителей ходит на работу в geo2 три раза в неделю. Эта семья хочет подобрать дом с кратчайшим временем еженедельных перемещений. Можно найти время еженедельных перемещений семьи для каждого кластера домов в виде взвешенной суммы (weighted sum) двух векторов, а именноConsider a family where one parent goes to work in geo 1 five times a week and the other parent goes to work in geo2 three times a week. This family wants to find a home with the shortest weekly travel times. One can find the weekly family move times for each house cluster as a weighted sum of two vectors, namely

5· Path Durations^ geol —>) + 3 Path Durations^ geol —>).5 Path Durations^ geol —>) + 3 Path Durations^ geol —>).

6.2. Запрос минимального значения.6.2. Minimum value request.

Рассмотрим случай матери-одиночки, которая работает из дома и провожает ребенка в школу. Ей нужно подобрать дом, который находился бы недалеко от какой-либо школы из множества Е. Можно найти время ежедневных перемещений ребенка для каждого кластера домов в виде минимального покоординатного значения (coordinate-wise minimum) векторов, а именно min PathDurations(-> е ->)Consider the case of a single mother who works from home and walks her child to school. She needs to find a house that is not far from any school from the set E. You can find the time of daily movements of the child for each cluster of houses in the form of a minimum coordinate-wise minimum value of the vectors, namely min PathDurations (-> e - >)

6.3. Общий поисковый запрос для одного дома.6.3. General search query for a single house.

В одном из вариантов реализации данный способ определяет запрос как некую последовательность маршрутов до места работы и обратно path1, ..., pathq для любого q и функцию Deriver: Rq^R , которая преобразует любой вектор чисел q в какое-либо число. Данный способ рассчитывает векторы времени в пути (от начальной позиции путем извлечения предварительно рассчитанных векторов либо и с тем, и с другим)In one of the implementation options, this method defines a request as a certain sequence of routes to and from the place of work path1, ..., pathq for any q and the function Deriver: Rq^R , which converts any vector of numbers q into any number. This method calculates travel time vectors (from starting position by extracting precalculated vectors or both)

PathDurations(/W/?i) ..., d^m),PathDurations(/W/?i) ..., d^m),

Path Duration ) =(dqx, , dq,m), и покоординатно применяет функцию Deriver к векторам, чтобы получить вектор RequestDurations(f»a/Z?i, ,.,pathq, Denver) = (Deriver(Ji_i, ..., dq^\Path Duration ) =(d q x, , d q ,m), and applies the Deriver function to the vectors coordinate-wise to obtain a RequestDurations(f»a/Z?i, ,.,path q , Denver) = (Deriver(Ji_i , ..., d q ^\

Deriver(tZi,2, ..., dq,i),Deriver(tZi,2, ..., d q ,i),

Deriver(Ji,m,..., dq,m) ) с выведенным временем в пути для каждого кластера домов.Deriver(Ji, m ,..., d q , m ) ) with the derived travel time for each house cluster.

В одном из вариантов реализации функция Deriver представляет собой взвешенную сумму чисел Deriver(xi, . . ., Xq) = W]_ xi + . . . + wq xq, для весовых значений (weights) w1, ..., wq. Весовые значения могут быть положительными или отрицательными. Если время в пути интерпретируется в виде денежной стоимости перемещения, тогда отрицательное весовое значение можно интерпретировать как финансовую экономию, например, если клиент хочет сэкономить на перемещениях по определенному маршруту до места работы и обратно (например, на доставках посылок). Весовые значения могут отражать относительную важность маршрутов перемещения до места работы и обратно, например маршрут до места работы и обратно генерального директора может иметь более высокое весовое значение, чем маршрут до места работы и обратно руководителя первого звена [099].In one implementation, the Deriver function is a weighted sum of numbers Deriver(xi, . . ., Xq) = W]_ xi + . . . + w q x q , for weights w1, ..., w q . Weight values can be positive or negative. If travel time is interpreted as a monetary cost of travel, then a negative weighting value can be interpreted as financial savings, for example, if the customer wants to save on travel on a certain route to and from work (for example, on parcel deliveries). The weights may reflect the relative importance of travel routes to and from the workplace, for example, the route to and from the workplace of the CEO may have a higher weight than the route to and from the workplace of the first line manager [099].

В одном из вариантов реализации функция Deriver представляет собой минимальное значение чиселIn one implementation, the Deriver function represents the minimum value of the numbers

Derivertxi,. . ., xq) = min xt l<i<qDerivertxi. . ., x q ) = min x t l<i<q

В одном из вариантов реализации функция Deriver представляет собой взвешенную сумму и минимальное значениеIn one implementation, the Deriver function is a weighted sum and a minimum value

Derivertxi, . . ., xr, χ,-ι,. . ., хЭ = %т xi +. . . + wxr + min W; Х;Derivertxi, . . ., x r , χ,-ι,. . ., xE = %m xi +. . . + wxr + minW; X;

r+l<i<qr+l<i<q

В одном из вариантов реализации функция Deriver является условной, напримерIn one implementation, the Deriver function is conditional, such as

- 13 042786- 13 042786

Deriver(xi, x2) = [ if xi < 30 then return xi + X2 else return да], или какой-либо алгоритм.Deriver(xi, x 2 ) = [ if xi < 30 then return xi + X2 else return yes], or some algorithm.

7. Сравнение двух домов или более.7. Comparison of two houses or more.

Данный способ демонстрирует эффективное сравнение множества домов по маршрутам до места работы и обратно. Авторы показывают реализацию этого способа на нескольких примерах, прежде чем представить общий запрос на сравнение.This method demonstrates the efficient comparison of many houses along the routes to and from the place of work. The authors show the implementation of this method with several examples before submitting a general request for comparison.

7.1. Дом, являющийся местом проживания в текущий момент.7.1. The house where you currently live.

Рассмотрим семью, которая живет в некотором доме. Члены семьи перемещаются по определенным маршрутам к местам работы, в школу и другие места, а также в обратном направлении. Семья рассматривает варианты переезда в другой дом и хочет сравнить общее время в пути для их текущего дома с общим временем в пути для других потенциальных новых домов. Данный способ делает такое сравнение гораздо проще.Consider a family that lives in a certain house. Family members travel along specific routes to and from work, school, and other places. The family is considering moving to another home and wants to compare the total travel time for their current home with the total travel time for other potential new homes. This method makes such a comparison much easier.

В одном из вариантов реализации способ рассчитывает время в пути для каждого кластера домов, включая кластер домов hj текущего дома S семьиIn one implementation, the method calculates the travel time for each cluster of houses, including the cluster of houses hj of the current house S of the family

RequestDurations = (щ, ..., qm).RequestDurations = (w, ..., qm).

Данный способ возвращает ответ, содержащий вектор разности (difference): указанный способ вычитает значение у-й координаты из значения каждой координаты (щ-ф ,..., qj-1-qj, 0, qj+1-qj , ... , qm ~ qj).This method returns a response containing a vector of difference (difference): this method subtracts the value of the y-th coordinate from the value of each coordinate (q-f ,..., qj-1-qj, 0, qj+1-qj , ... , qm ~ qj).

Отрицательное значение координаты вектора разности означает, что дом, соответствующий координате, имеет более короткое время в пути по сравнению с текущим домом S [105].The negative value of the coordinate of the difference vector means that the house corresponding to the coordinate has a shorter travel time compared to the current house S [105].

В одном из вариантов реализации данный способ использует одни маршруты до места работы и обратно для текущего дома и другие маршруты до места работы и обратно для других домов. Таким образом, данный способ помогает семье оценить гипотетический сценарий: Допустим, мы поменяем место работы и переедем в какой-то другой дом. Как новое время в пути до места работы и обратно будет соотноситься с нашим текущим временем в пути до места работы и обратно?.In one implementation, this method uses one route to and from work for the current home and different routes to and from work for other homes. Thus, this method helps the family evaluate a hypothetical scenario: Let's say we change jobs and move to some other house. How will the new travel time to and from work compare to our current travel time to and from work?

7.2. Общее сравнение двух домов или более.7.2. A general comparison of two or more houses.

Рассмотрим семью, в которой и мама, и папа должны будут продолжать ходить в свои прежние места работы (место работы не меняется), но дети могут поменять школы. Рассмотрим другой пример двух семей: родители и бабушка с дедушкой со стороны матери. Они хотят найти два дома в пределах не более 30 мин пути друг от друга, при этом один дом должен быть рядом с больницей, а другой дом рядом с определенными школами и местами работы. Данный способ делает сравнения таких домов с другими домами гораздо более простым.Consider a family where both mom and dad will have to continue going to their old jobs (the job doesn't change), but the kids can change schools. Consider another example of two families: parents and maternal grandparents. They want to find two houses within 30 minutes of each other, with one house close to a hospital and the other close to certain schools and places of work. This method makes comparisons of such houses with other houses much easier.

В одном из вариантов реализации данный способ рассчитывает время в пути PathDurations для кластеров домов по некоторому ряду маршрутов до места работы и обратноIn one of the implementation options, this method calculates the travel time PathDurations for clusters of houses along a certain number of routes to and from the place of work

PathDurations(/w/7i) = (Ji.i, ..., di,m),PathDurations(/w/7i) = (Ji.i, ..., di, m ),

PathDurationsf/W/fy) = (dq,i, ..., dq^.PathDurationsf/W/fy) = (d q ,i, ..., d q ^.

После чего данный способ применяет обобщенную функцию Deriver, которая работает не покоординатно, как в разделе 6.3, а одновременно по всем значениям q-m времени в пути и дает вектор одного или множества чисел. Другими словами, обобщенная функция выглядит следующим образом:After that, this method applies the generalized Deriver function, which does not work coordinate-wise, as in Section 6.3, but simultaneously for all q-m values of travel time and gives a vector of one or a set of numbers. In other words, the generic function looks like this:

Denver : R? т R<Denver: R ? t R<

для некоторого у.for some y.

8. Поиск или сравнение.8. Search or compare.

В одном из вариантов реализации функция Deriver представляет собой какой-либо алгоритм, например рандомизированный алгоритм, который берет какую-либо вводную (например, маршруты перемещения до места работы и обратно, значения кратчайшего времени в пути, дома или условие, заданное пользовательским запросом) и выдает какой-либо результат (например, рейтинг (top list) домов, отвечающих пользовательскому условию, с кратчайшим временем в пути, которое также отвечает пользовательскому условию, с сортировкой по кратчайшему времени в пути) [109].In one implementation, the Deriver function is some kind of algorithm, such as a randomized algorithm, that takes some input (for example, travel routes to and from work, shortest travel times, home, or a condition specified by a user query) and produces some result (for example, the top list of houses that meet the user condition, with the shortest travel time, which also meets the user condition, sorted by the shortest travel time) [109].

9. Варианты.9. Options.

Люди с базовыми техническими знаниями хорошо представят себе множественные модификации и исполнения, не отклоняясь от общей структуры и сути реализации изобретения. Приведем несколько вариантов для иллюстрации.People with basic technical knowledge will be well aware of multiple modifications and implementations without deviating from the general structure and essence of the implementation of the invention. Here are a few examples to illustrate.

9.1. Расширение перемещений.9.1. Movement expansion.

В одном из вариантов реализации данный способ сначала рассчитывает кратчайшее время неполноIn one implementation, this method first calculates the shortest time incompletely

- 14 042786 го перемещения, а затем расширяет (extends) его на выбранные кластеры домов. Здесь не выполняется дополнительная обработка и сохранение с целью снижения объема хранения и времени обработки за счет меньшего числа кластеров домов в векторах vi и v'i.- 14 042786 th move, and then expands (extends) it to the selected clusters of houses. There is no additional processing and storage to reduce storage and processing time due to fewer house clusters in vectors vi and v'i.

Метод определяет связующие точки (connectors) домов, которые представляют собой некоторые элементы транспортной системы. В одном из вариантов реализации связующие точки домов - это кластеры домов или кластеры остановок, которые могут отличаться от кластеров, описанных в разделе 4.1. Затем данный способ предварительно рассчитывает и сохраняет в базе данных кратчайшее время в пути от кластеров остановок до кластеров домов, используя варианты реализации, аналогичные описанным в разделе 4 [112].The method determines the connecting points (connectors) of houses, which are some elements of the transport system. In one implementation, house tie points are house clusters or stop clusters, which may be different from the clusters described in section 4.1. The method then precalculates and stores in the database the shortest travel time from the stop clusters to the house clusters using implementations similar to those described in section 4 of [112].

При получении запроса данный способ рассчитывает кратчайшее время в пути от места работы W, содержащегося в запросе, до выбранных кластеров домов. Для этой цели данный способ определяет кластеры остановок рядом с работой W и извлекает предварительно рассчитанные значения кратчайшего времени в пути от ближайших кластеров остановок до связующих точек домов, чтобы получить кратчайшее время в пути между местом работы W и связующими точками домов, как описано в разделе 5. В одном из вариантов реализации такой расчет использует векторные операции, аналогичные описанным в разделах 5.2 и 5.3. После чего данные значения кратчайшего времени в пути расширяются дальше связующих точек домов, получая значения кратчайшего времени в пути между местом работы W и выбранными кластерами домов. Это можно проделать, просто найдя для каждого кластера домов минимальное расширенное перемещение (которое может содержать не только пешие участки), маршрут которого проходит через какую-либо связующую точку домов рядом с кластером домов, например, в пределах 2000 м, а в некоторых случаях найдя прямой кратчайший маршрут между местом работы W и кластером домов (аналогично разделам 5.2 и 5.3). В одном из вариантов реализации в зонах перекрытия данный способ использует и связующие точки домов, и векторы vi и v'i.Upon receipt of a request, this method calculates the shortest travel time from the place of work W contained in the request to the selected clusters of houses. For this purpose, this method determines stop clusters near work W and extracts pre-calculated shortest travel times from nearest stop clusters to house tie points to obtain the shortest travel time between work W and house tie points, as described in Section 5. In one implementation, this calculation uses vector operations similar to those described in Sections 5.2 and 5.3. After that, these values of the shortest travel time are expanded beyond the connecting points of houses, obtaining the values of the shortest travel time between the place of work W and the selected clusters of houses. This can be done by simply finding, for each house cluster, the minimum extended move (which may contain more than just walkable parcels) whose route passes through some house tie point near the house cluster, for example, within 2000 m, and in some cases finding the direct shortest route between the workplace W and the cluster of houses (similar to Sections 5.2 and 5.3). In one embodiment, in overlap zones, this method uses both house tie points and vectors vi and v'i.

Качество экстраполяции перемещений пропорционально общему количеству связующих точек домов, а также пропорционально количеству связующих точек домов рядом с каким-либо выбранным кластером домов. В одном из вариантов реализации расширение используется лишь в нескольких частях городской агломерации, когда два количественных значения скорее всего будут небольшими. В одном из вариантов реализации данный способ использует функцию издержек на выполнение для следующих целей:The quality of displacement extrapolation is proportional to the total number of house tie points, and also proportional to the number of house tie points near any selected cluster of houses. In one implementation, the expansion is used in only a few parts of the urban agglomeration, when the two quantities are likely to be small. In one implementation, this method uses the execution overhead function for the following purposes:

(1) определение связующих точек домов;(1) determination of connecting points of houses;

(2) выбор кластеров домов; и (3) определение подмножества ближайших связующих точек домов для каждого из выбранных кластеров домов.(2) choice of house clusters; and (3) determining a subset of the nearest house tie points for each of the selected house clusters.

9.2. Перемещение по маршруту до места работы и обратно на автомобиле.9.2. Moving along the route to the place of work and back by car.

В одном из вариантов реализации авторы рассчитали время в пути по маршруту до места работы и обратно на автомобиле, а не на общественном транспорте. Это сделано путем внесения небольших модификаций в предыдущие пункты.In one implementation, the authors calculated the travel time on the route to and from work by car rather than by public transport. This is done by making minor modifications to the previous paragraphs.

При предварительной обработке транспортной системы для домов по разделу 4 вместо использования GT в качестве графа системы общественного транспорта возьмем GT как граф схемы движения на автомобиле. Граф схемы движения на автомобиле можно получить, например, из известных технических решений. Такой граф может иметь вершины, обозначающие географические расположения на дорогах, и ребра, обозначающие движение автомобиля или поворот автомобиля; ребра могут содержать данные о времени движения в различное время суток, например, в часы-пик.In preprocessing the transport system for houses in Section 4, instead of using GT as the public transport system graph, let's take GT as the car traffic graph. The traffic pattern graph for a car can be obtained, for example, from known technical solutions. Such a graph may have vertices representing geographic locations on roads and edges representing vehicle movement or vehicle turning; edges can contain data about the time of movement at different times of the day, for example, during peak hours.

Расширим GT. Для каждого кластера домов s, добавим вершиныLet's expand GT. For each house cluster s, add vertices

HOMECLUSTER SOURCEs иHOMECLUSTER SOURCEs and

HOME CL USTER TARGET s.HOME CL USTER TARGET s.

Соединим каждый кластер домов с какими-либо дорогами, находящимися в пределах порогового расстояния, например 100 м, добавив вершинуConnect each cluster of houses to any roads that are within a threshold distance, such as 100 m, by adding a vertex

CONNECTOR г, для по крайней мере одного r. В одном из вариантов реализации вершина обозначает кратчайшую проекцию (shortest-distance projection) расположения кластера домов на дорогу, которая находится в пределах порогового расстояния; дорога может находиться внутри автостоянки, назначенной кластеру домов. Эта вершина соединяется с двумя вершинами кластера домов ребрами с пометкой Zero и весовым значением 0. Вершина также соединяется с вершинами, обозначающими конечные точки отрезка дороги. Вместо добавления кластеров остановок, которые не нужны, поскольку теперь GT не моделирует ни станции метро, ни автобусные остановки, добавим вершиныCONNECTOR r, for at least one r. In one implementation, the vertex denotes the shortest-distance projection of the location of the cluster of houses onto the road, which is within the threshold distance; the road can be inside the car park assigned to the cluster of houses. This vertex is connected to two vertices in the cluster of houses by edges labeled Zero and weighted to 0. The vertex is also connected to the vertices that represent the endpoints of the road segment. Instead of adding clusters of stops, which are not needed since GT does not model any metro stations or bus stops now, let's add vertices

REPRESENTA TIVESOURCEs' иREPRESENTA TIVESOURCEs' and

REPRESENTA TIVE TARGET J для массива s' и t'; данные вершины представляют (represent) расположения, которые часто встреREPRESENTA TIVE TARGET J for array s' and t'; vertex data represents locations that are frequently encountered

- 15 042786 чаются (frequently occur) на кратчайших маршрутах; расположения могут быть получены, например, из известных технических решений. Данные вершины могут представлять кластеры. Данные вершины соответствующим образом соединяются с другими вершинами при помощи ребер [117].- 15 042786 often occur on the shortest routes; arrangements can be obtained, for example, from known technical solutions. These vertices may represent clusters. These vertices are appropriately connected to other vertices using edges [117].

Авторы используют расширенную модель GT для расчета кратчайшего времени движения маршрутам графа от каждогоThe authors use the extended GT model to calculate the shortest travel time for graph routes from each

REPRESENTA TIVESOURCEs’ до каждогоREPRESENTA TIVESOURCEs’ before everyone

HOME CL USTER TARGET s, и от каждогоHOME CL USTER TARGET s, and from each

HOMECLUSTER SOURCEs до каждогоHOMECLUSTER SOURCEs up to each

REPRESENTA TIVE TARGETt’, можно использовать варианты реализации, аналогичные вариантам, описанным в разделе 4.1. Данные значения времени в пути будут сохранены в виде вектора vi и v'i, как описано в разделе 4.2.REPRESENTA TIVE TARGETt’, implementations similar to those described in Section 4.1 can be used. These travel times will be stored as a vector vi and v'i as described in section 4.2.

При расчете времени в пути по маршруту до места работы и обратно авторы использовали движение на автомобиле вместо прохождения пеших участков, как в разделе 5.When calculating the travel time along the route to and from the place of work, the authors used the movement by car instead of passing the pedestrian sections, as in section 5.

Для начальной части перемещения делаем следующие модификации по сравнению с разделом 5.2. Вместо walk(Hj^W1) используем время движения на автомобиле от кластера домов Hj до Wb полученное, например, из известных технических решений; в одном из вариантов реализации вместо этого задаем такое время как бесконечность, если расстояние между Hj и W1 превышает пороговое значение. Множество А представляет собой набор вершинFor the initial part of the move, we make the following modifications compared to section 5.2. Instead of walk(Hj^W 1 ) we use the driving time from the cluster of houses Hj to W b obtained, for example, from known technical solutions; in one implementation, we instead set such time as infinity if the distance between Hj and W 1 exceeds a threshold value. Set A is a set of vertices

REPRESENTA TIVE TARGETJ' расположенных в пределах порогового расстояния от W1. Для каждой вершины siGА авторы рассчитали время движения на автомобиле от si до W1, используя, например, известные технические решения. Затем применили соответствующие модификации в уравнении 1 [120].REPRESENTA TIVE TARGETJ' located within the threshold distance from W1. For each vertex s i GA, the authors calculated the travel time by car from si to W1, using, for example, well-known technical solutions. Then the corresponding modifications were applied in equation 1 [120].

Для конечной части перемещения выполним такие же модификации, но теперь в раздел 5.3. Вместо walk(Wk^Hj) используем время движения на автомобиле от Wk до кластера домов Hj, полученное, например, из известных технических решений; в одном из вариантов реализации вместо этого задаем такое время как бесконечность, если расстояние между Wk и Hj превышает пороговое значение. Множество В представляет собой набор вершинFor the final part of the movement, we will make the same modifications, but now in section 5.3. Instead of walk(Wk^Hj), we use the driving time from W k to the cluster of houses Hj, obtained, for example, from known technical solutions; in one implementation, we instead set such time as infinity if the distance between W k and Hj exceeds a threshold value. Set B is a set of vertices

REPRESENTA TIVESOURCE s’ расположенных в пределах порогового расстояния от Wk. Для каждой вершины sieb рассчитаем время движения на автомобиле от Wk до si, используя, например, известные технические решения. Затем применим эти модификации в уравнении 2 [121].REPRESENTA TIVESOURCE s' located within the threshold distance from Wk. For each vertex sieb we calculate the driving time from W k to s i , using, for example, well-known technical solutions. Then we apply these modifications in equation 2 [121].

Используем другие варианты реализации, упомянутые в разделе 5. Например, можно рассчитать время в пути на автомобиле по геодезической линии.We use other implementations mentioned in section 5. For example, you can calculate the travel time by car along a geodesic line.

Можно просто расширить структуру расчета из раздела 6, чтобы иметь возможность ограничивать виды транспорта, используемые на каждом из маршрутов до места работы и обратно. В результате можно определить, например, время в пути по маршруту до места работы и обратно для каждого дома семьи, в которой один из родителей ездит на работу, находящуюся в geo1 на автомобиле пять раз в неделю, а другой из родителей ездит на работу в geo2 на общественном транспорте три раза в неделю.One can simply extend the calculation structure from section 6 to be able to limit the modes of transport used on each route to and from the place of work. As a result, you can determine, for example, the travel time along the route to and from work for each home of a family in which one of the parents travels to work located in geo1 by car five times a week, and the other parent travels to work in geo2 by public transport three times a week.

Можно аналогичным образом расширить схему сравнения из раздела 7. В результате можно, например, найти новый дом, из которого клиент будет ездить на автомобиле, и сравнить с текущим временем в пути на общественном транспорте. Результат, полученный данным способом, можно использовать как мотив к покупке автомобиля в силу большего удобства при перемещении.You can extend the comparison scheme in Section 7 in a similar way. As a result, you can, for example, find a new home from which the client will drive and compare with the current travel time by public transport. The result obtained by this method can be used as a motive for buying a car due to greater convenience when moving.

9.3. Перемещение с использованием других видов транспорта.9.3. Moving using other modes of transport.

В одном из вариантов реализации данный способ использует маршруты до места работы и обратно с другими видами транспорта, например только пешком; только на велосипеде; только на экспрессавтобусе и пешком; только на метро и пешком; только на экспресс-автобусе, метро и пешком; только в совместно используемых автомобилях и пешком; водным транспортом; на самолетах; и т.д. Просто используем модификации, аналогичные описанным в разделе 9.2. В одном из вариантов реализации данный способ определяет другие дома и другие средства перемещения, дает пользователю рекомендации и объясняет выгоду по сравнению с текущим домом и текущими средствами перемещения.In one implementation, this method uses routes to and from the place of work with other modes of transport, for example, only on foot; only by bike; only by express bus and on foot; only by metro and on foot; only by express bus, metro and on foot; only in shared cars and on foot; water transport; on airplanes; etc. We simply use modifications similar to those described in Section 9.2. In one embodiment, the method identifies other homes and other means of transportation, makes recommendations to the user, and explains the benefit over the current home and current means of transportation.

Кратчайшее плечо графа на заданном графе можно рассчитать, не зная географических расположений разных вершин графа. Так, в одном из вариантов реализации, данный способ использует транспортную систему, различные элементы (elements) которой не имеют привязки к географическому расположению.The shortest arm of a graph on a given graph can be calculated without knowing the geographic locations of the different vertices of the graph. So, in one of the implementation options, this method uses a transport system, the various elements (elements) of which are not tied to a geographical location.

Не нужно физически перемещать объекты по транспортной системе. Для данного способа нужно только иметь возможность определить маршрут или длины маршрутов между элементами транспортной системы. Так, компьютерная сеть, по которой перемещаются данные, служит примером транспортной системы, в которую входят следующие транспортные элементы: кабели/линии (по аналогии с дорогами)No need to physically move objects through the transport system. For this method, it is only necessary to be able to determine the route or lengths of routes between elements of the transport system. Thus, a computer network through which data moves is an example of a transport system, which includes the following transport elements: cables / lines (similar to roads)

- 16 042786 и сетевые узлы/коммутаторы (по аналогии с остановками/поворотами). Любой человек, обладающий базовыми техническими знаниями, сможет привести множество примеров транспортных систем [127].- 16 042786 and network nodes/switches (similar to stops/turns). Anyone with basic technical knowledge can give many examples of transportation systems [127].

9.4. Условия по маршрутам перемещения.9.4. Conditions on routes of movement.

Можно запросто реализовать разные условия для фильтра (filtering conditions) маршрутов перемещения. Например, можно построить граф G, который не имеет пересадки между какими-либо линиями метро, но имеет пешие участки между кластерами домов и кластерами остановок. Вместе с модификациями, аналогичными описанным в разделе 9.2, данный способ проведет поиск или сравнение домов, живя в которых клиент будет с комфортом добираться от дома до работы (и дом, и работа должны будут находиться в шаговой доступности от станций метро на одной линии). Аналогичным образом можно построить G и изменить алгоритмы расчета кратчайшего плеча графа, чтобы ограничить плечо графа максимум одной пересадкой либо из метро на автобус, либо из автобуса на метро, или пересадкой в определенный интервал времени, или видом маршрута, наиболее часто используемого клиентами. В данном способе предусмотрены другие варианты установки фильтра маршрутов перемещения, которые может представить любой человек с базовыми техническими знаниями.You can easily implement different filtering conditions for the travel paths. For example, one can construct a graph G that does not have transfers between any subway lines, but has walking distances between clusters of houses and clusters of stops. Together with modifications similar to those described in Section 9.2, this method will search or compare houses where the client will comfortably get from home to work (both home and work will need to be within walking distance of metro stations on the same line). Similarly, one can build G and change the algorithms for calculating the shortest arm of the graph to limit the graph arm to at most one transfer, either from the metro to the bus or from the bus to the metro, or a transfer at a certain time interval, or the type of route most often used by customers. This method provides other options for setting the travel route filter that anyone with basic technical knowledge can imagine.

9.5. Условия по домам.9.5. Conditions at home.

В одном из вариантов реализации данный способ получает условие фильтра по разным характеристикам домов, ищет или сравнивает дома, характеристики которых соответствуют условию. Характеристики могут быть следующие: тип (например, отдельный дом или квартира в высотке), форма проживания (например, с покупкой или арендой), цена, комиссия агентства недвижимости, налоги, максимальная сумма платежа по ипотеке, количество комнат или санузлов, площадь/размер дома, выход окон по сторонам света, номер этажа в доме, количество этажей в здании или стандартная сумма ежемесячных коммунальных платежей. Данный способ просто хранит перечень характеристик для каждого дома и в зависимости от условия определяет дома, характеристики которых соответствуют условию. Время перемещения для таких совпавших с условием домов можно получить по времени перемещения для кластеров домов. В данном способе предусмотрены другие варианты установки фильтра домов, которые может представить себе любой человек с базовыми техническими знаниями.In one implementation, this method obtains a filter condition for different characteristics of houses, searches for or compares houses whose characteristics match the condition. Characteristics can be the following: type (for example, a detached house or apartment in a high-rise), form of residence (for example, with a purchase or lease), price, real estate agency commission, taxes, maximum mortgage payment amount, number of rooms or bathrooms, area / size at home, the exit of windows to the cardinal points, the floor number in the house, the number of floors in the building or the standard amount of monthly utility bills. This method simply stores a list of characteristics for each house and, depending on the condition, determines the houses whose characteristics match the condition. The travel time for these matched houses can be obtained from the travel time for clusters of houses. This method provides other options for installing a house filter that anyone with basic technical knowledge can imagine.

9.6. Метапоиск или сравнение.9.6. Metasearch or comparison.

В одном из вариантов реализации данный способ ищет или сравнивает дома на основе комбинации предыдущих запросов поиска и сравнения и ответов на них. Это можно представить как метаспособ (meta method) (способ, который использует сам себя). Он полезен, например, для расчета значения, отражающего потенциал застройки новыми объектами недвижимости.In one embodiment, the method searches or compares houses based on a combination of previous search and compare requests and their responses. This can be thought of as a meta method (a method that uses itself). It is useful, for example, to calculate a value that reflects the development potential of new properties.

Опишем один из вариантов реализации метаспособа. Получили некоторое количество и маршрутов до места работы и обратно path1, ..., pathu. В одном из вариантов реализации маршруты до места работы и обратно берутся из истории использования компьютерного сервиса по поиску и сравнению домов, каждый маршрут до места работы и обратно может быть указан разными пользователями сервиса. Для каждого маршрута до места работы и обратно pathk рассчитаем время в пути для всех кластеров домов PathDurations(pathk) согласно разделу 5. Затем применим агрегатор (aggregator), который обработает значения времени в пути. В одном из вариантов реализации для каждого маршрута до места работы и обратно pathk получаем вектор весовых значений wk. В одном из вариантов реализации каждое весовое значение представляет собой вероятность выбора пользователем того или иного дома в соответствующем кластере домов, что может зависеть от условия по объектам недвижимости или маршрутам перемещения, заданного пользовательским запросом. Затем покоординатно рассчитаем агрегаты, как показано в следующей формуле и — / wk- PathDurations(pat/ik) и Z—। к=1 j-й агрегат - это средневзвешенное время в пути для кластера домов Hj. В одном из вариантов реализации j-й агрегат обозначает нормализованный вклад кластера домов в общее время в пути по всей городской агломерации; в некотором смысле он ставит кластер домов в центральное положение (centrality) относительно городской агломерации. Так как данный способ быстро рассчитывает PathDurations(pathk), можно быстро рассчитать агрегаты. Это позволяет быстро рассчитывать востребованность каждого объекта недвижимости с точки зрения транспортного удобства [131].Let us describe one of the options for implementing the metamethod. We got a certain number of routes to the place of work and back path1, ..., pathu. In one implementation, routes to and from work are taken from the history of using a computer service for finding and comparing houses, each route to and from work can be specified by different users of the service. For each route to and from work, pathk calculate the travel time for all clusters of houses PathDurations(path k ) according to section 5. Then we apply an aggregator that will process the travel time values. In one of the implementation options for each route to the place of work and back path k we get a vector of weight values w k . In one implementation, each weight represents the probability that the user will select a particular house in the corresponding cluster of houses, which may be dependent on the property or travel path condition specified by the user query. Then we calculate the aggregates coordinate-wise, as shown in the following formula and - / w k - PathDurations(pat / i k ) and Z - । k=1 j-th unit is the weighted average travel time for the cluster of houses Hj. In one implementation, the j-th aggregate denotes the normalized contribution of the cluster of houses to the total travel time throughout the urban agglomeration; in a sense, it puts the cluster of houses in a central position relative to the urban agglomeration. Since this method quickly calculates PathDurations(path k ), you can quickly calculate aggregates. This allows you to quickly calculate the demand for each property in terms of transport convenience [131].

Люди с базовыми техническими знаниями легко представят себе многие другие варианты реализации метаспособа. В других вариантах реализации маршруты до места работы и обратно составляются от географических расположений домов и мест работы. В других вариантах реализации весовые значения задаются отличными от нуля для некоторого ряда кластеров домов с наименьшим временем пути, а для других кластеров с нулевым значением. В других вариантах реализации специалист по обработке данных оценивает гипотетические сценарии; ведь благодаря преимуществам данного способа это можно сделать быстро. В других вариантах реализации агрегатор представляет собой произвольный алгоритм, например алгоритм, рассчитывающий дисперсию, квантили, накопительную функцию распределения или вероятность превышения пороговых значений.People with basic technical knowledge can easily imagine many other ways to implement the metamethod. In other implementations, the routes to and from the place of work are based on the geographic locations of homes and places of work. In other implementations, the weights are set to non-zero for some set of house clusters with the shortest travel time, and zero for other clusters. In other implementations, the data scientist evaluates hypothetical scenarios; because thanks to the advantages of this method, this can be done quickly. In other implementations, the aggregator is an arbitrary algorithm, such as an algorithm that calculates variance, quantiles, cumulative distribution function, or probability of exceeding thresholds.

- 17 042786- 17 042786

9.7. Маршрут до места работы и обратно с двумя домами или более.9.7. A route to and from work with two or more houses.

В одном из вариантов реализации маршрут до места работы и обратно включает (involves) какиелибо два дома или более. Это полезно, например, при поиске и сравнении домов сразу для двух семей или более.In one implementation, the route to and from work includes (involves) any two or more houses. This is useful, for example, when searching and comparing houses for two or more families at once.

В одном из вариантов реализации H1 и H2 являются двумя кластерами домов. Можно рассчитать время в пути по какому-либо маршруту от места работы и обратно H1+path+H2, который начинается в H1, но заканчивается в H2, который может отличаться от Hb Просто используем j, соответствующий H1 в уравнении 1, но в уравнении 2 используем j, соответствующий H2.In one embodiment, H1 and H2 are two clusters of houses. It is possible to calculate the travel time for some route from the place of work and back H 1 +path+H2, which starts at H1 but ends at H2, which may be different from H b Just use j corresponding to H1 in equation 1, but in Equation 2 uses j corresponding to H2.

В одном из вариантов реализации предварительно рассчитаем оба вектора (a1, ..., am) и (b1, ..., bm), а затем найдем время в пути для двух произвольных кластеров домов Hi и Hj, просто прибавив значение координаты (a1, ..., am), соответствующее Hi, к значению координаты (b1, ..., bm), соответствующее Hj, плюс время в пути по промежуточной части маршрута (не привязанной ни к Hj, ни к Hj). Отметим, что время в пути для любой пары кластеров домов, одной из пар m2, можно найти по константе времени O(l), используя только векторное пространство O(m). Это обусловлено аддитивной структурой (additive structure) времени в пути и тем фактом, что маршрут выступает разделителем между любыми двумя кластерами домов.In one implementation, we precalculate both vectors (a1, ..., am) and (b1, ..., bm), and then find the travel time for two arbitrary house clusters Hi and Hj by simply adding the value of the coordinate (a1 , ..., am) corresponding to Hi to the coordinate value (b1, ..., b m ) corresponding to Hj, plus the travel time along the intermediate part of the route (not tied to either Hj or Hj). Note that the travel time for any pair of house clusters, one of the m2 pairs, can be found from the time constant O(l) using only the vector space O(m). This is due to the additive structure of travel time and the fact that the route acts as a separator between any two clusters of houses.

В одном из вариантов реализации множество кластеров домов, разрешенное для H1, может отличаться от множества кластеров домов, разрешенного для H2. Например, пользовательское условие может задать ограничение по нахождению H1 в восточной части города, a H2 в западной части города. В этом случае можно использовать вектор (b1, ..., bm) длиной m', отличной от m.In one embodiment, the set of house clusters allowed for H1 may be different from the set of house clusters allowed for H2. For example, a custom condition might constrain H1 to be in the east side of the city and H 2 to be in the west side of the city. In this case, you can use a vector (b1, ..., bm) with length m' different from m.

В более общем виде данный способ рассчитывает время в пути для какой-либо последовательности k>2 кластеров домов H1^path1^H2^path2^...^pathk.1^Hk. Используя предварительный расчет, это можно сделать по O(k) времени и O(m-k) пространству.More generally, this method calculates the travel time for some sequence of k>2 clusters of houses H 1 ^path 1 ^H 2 ^path 2 ^...^path k . 1 ^H k . Using a preliminary calculation, this can be done in O(k) time and O(mk) space.

В одном из вариантов реализации маршрут до места работы и обратно включает прямое перемещение между кластерами домов, Нх+Ну, как на этом примере маршрута до места работы и обратно: H1^path1ху^path2^H2. На этом примере данный способ делит расчет на три части:In one implementation, the route to and from work includes direct travel between clusters of houses, Hx+H y , as in this example route to and from work: H 1 ^path 1 ^H x ^ H y ^path 2 ^H 2 . In this example, this method divides the calculation into three parts:

(1) расчет времени в пути H1^path1х;(1) calculation of travel time H 1 ^path 1x ;

(2) расчет времени в пути Нх+Ну; и (3) расчет времени в пути HY^path2^H2.(2) calculation of travel time Hx+H y ; and (3) calculating the travel time H Y ^path 2 ^H 2 .

Части (1) и (3) могут выполняться способом, описанным выше в данном разделе 9.7. Часть (2) может выполняться аналогично, если теоретически принять либо Нх, либо Ну в качестве места работы. Например, используя векторы v'i в координате, соответствующей Нх, получим время в пути от кластера домов Нх до каждого кластера остановок; их можно извлечь в виде столбца из предварительно рассчитанных векторов v'i, l<i<n. Затем расширим от каждого кластера остановок в пределах пороговой дистанции от Ну для получения полного перемещения до Ну аналогично разделу 5.2; см. пример на фиг. 8 и уравнение 1. Благодаря предварительному расчету по данному способу (3) можно выполнить по времени пропорционально количеству кластеров остановок в пределах пороговой дистанции. В других вариантах реализации, так как кластеры домов известны заранее, предварительно рассчитываем время в пути между каждой парой кластеров домов, а затем просто берем время в пути как константу времени O(l). Аналогичное деление естественным образом применяется к любому маршруту до места работы и обратно, который содержит одно или больше прямых перемещений между кластерами домов.Parts (1) and (3) can be performed in the manner described above in this section 9.7. Part (2) can be carried out in a similar way if, in theory, either H x or H y is taken as the place of work. For example, using the vectors v'i in the coordinate corresponding to H x , we get the travel time from the cluster of houses H x to each cluster of stops; they can be extracted as a column from pre-computed vectors v'i, l<i<n. Then expand from each cluster of stops within the threshold distance from H y to obtain a full travel to H y similarly to section 5.2; see example in FIG. 8 and Equation 1. Thanks to the preliminary calculation by this method, (3) can be performed in time in proportion to the number of stop clusters within the threshold distance. In other implementations, since the house clusters are known in advance, we pre-calculate the travel time between each pair of house clusters, and then simply take the travel time as an O(l) time constant. A similar division naturally applies to any route to and from work that contains one or more direct transfers between clusters of houses.

9.8. Исследования пространств.9.8. Space exploration.

Данный способ представляет высококачественные алгоритмы исследований пространств (exploration algorithms). Рассмотрим ситуацию, когда клиент перемещается по определенному маршруту до места работы и обратно H1+path+H2 с некоторой стоимостью; функция стоимости (cost function) зависит от двух домов H1 и H2. Клиент ищет дома Н1 и H2, чтобы минимизировать эту стоимость. Это полезно, например, когда семья желает сменить места работы (Н1 и H2) обоих родителей одновременно, при этом минимизируя общее время в пути от расположения текущего дома (в пределах маршрута) семьи; это известная задача о двух телах.This method represents high quality exploration algorithms. Let's consider a situation when the client moves along a certain route to the place of work and back H 1 +path+H2 with some cost; the cost function depends on the two houses H1 and H2. The client is looking for H1 and H2 houses to minimize this cost. This is useful, for example, when a family wants to change jobs (H1 and H2) of both parents at the same time, while minimizing the total travel time from the location of the current home (within the route) of the family; this is the well-known two-body problem.

Одним из вариантов реализации исследования пространства является алгоритм градиентного спуска (gradient descent algorithm). Функция стоимости может быть дифференцируемой функцией (differentiable function); например, при условии фиксированного маршрута функция берет два дома Н1 и H2 в качестве вводных данных и возвращает в качестве результата расстояние между двумя домами Н1 и H2, умноженное на время в пути по маршруту до места работы и обратно H1+path+H2 (данную функцию можно соответствующим образом расширить за пределы дискретного домена (discrete domain) пар домов, например, по географическому расположению домов и экстраполяции). На заданном шаге алгоритма спуска градиента алгоритм рассчитывает градиент функции стоимости при заданной паре домов, а затем отбирает пару домов по направлению градиента (direction of the gradient) для выполнения следующего шага алгоритма. Градиент может быть рассчитан по значениям функции стоимости, например, с помощью двухточечной формулы (two-point formula), для которой нужно два значения. В одном из вариантов реализации результатом алгоритма спуска градиента является та пара домов, где градиент имеет достаточноOne of the options for implementing space exploration is the gradient descent algorithm. The cost function can be a differentiable function; for example, given a fixed route, the function takes two houses H1 and H2 as input and returns as a result the distance between two houses H 1 and H 2 multiplied by the travel time along the route to and from work H 1 +path+H2 (this function can be appropriately extended beyond the discrete domain of pairs of houses, for example, by the geographical location of houses and extrapolation). At a given step of the gradient descent algorithm, the algorithm calculates the gradient of the cost function given the pair of houses, and then selects the pair of houses in the direction of the gradient to perform the next step of the algorithm. The gradient can be calculated from the values of the cost function, for example, using a two-point formula (two-point formula), which requires two values. In one implementation, the result of the gradient descent algorithm is that pair of houses where the gradient has enough

- 18 042786 низкий критерий (norm) [140].- 18 042786 low criterion (norm) [140].

В одном из вариантов реализации предварительно рассчитываем векторы (а1, ..., am) и (b1, ..., bm), помещенные в векторное пространство О(m), и на каждом этапе данного способа рассчитываем градиент по константе O(l) времени. Таким образом, алгоритм градиента спуска зачастую может ускорить работу.In one of the implementation options, we preliminarily calculate the vectors (a1, ..., am) and (b1, ..., b m ) placed in the vector space O(m), and at each stage of this method we calculate the gradient by the constant O( l) time. Thus, the gradient descent algorithm can often speed things up.

В одном из вариантов реализации не рассчитываем предварительно (а1, ..., am) и (bi, ..., bm), а вместо этого получаем необходимые значения по уравнению 1 и уравнению 2, когда требуется. Такой подход может использоваться, если количество домов настолько большое, что предварительный расчет (a1, ..., am) или (b1, ..., bm) практически нецелесообразен.In one implementation, we do not precalculate (a1, ..., am) and (bi, ..., b m ), but instead obtain the necessary values from Equation 1 and Equation 2 when required. This approach can be used if the number of houses is so large that a preliminary calculation of (a1, ..., am) or (b1, ..., b m ) is not practical.

В одном из вариантов реализации алгоритм исследования пространства может иметь ограничения по домам. Например, если требуется маршрут до одного дома в направлениях туда-обратно, ограничением будет являться Н12. Можно ограничить географический регион, разрешенный для Н1 или разрешенный для H2.In one embodiment, the space exploration algorithm may have restrictions on houses. For example, if a round-trip route to one house is required, the constraint would be H 1 =H 2 . You can restrict the geographic region allowed for H1 or allowed for H2.

В одном из вариантов реализации алгоритм исследования пространства использует маршрут до места работы и обратно, включая только один дом: Н1ypath или pathyl 11 В других вариантах реализации алгоритм исследования пространства использует маршрут до места работы и обратно, включая два дома и более, как описано в разделе 9.7.In one implementation, the space exploration algorithm uses a route to and from work, including only one home: H 1 ypath or pathyl 11 In other implementations, the space exploration algorithm uses a route to and from work, including two or more homes, as described in section 9.7.

В одном из вариантов реализации функция стоимости зависит от домов и мест работы. Например, такая функция стоимости может использоваться, если клиент стремится минимизировать соотношение издержек по времени и деньгам. В одном из вариантов реализации функцией стоимости является время перемещения между Н и W, плюс денежная стоимость аренды Н, минус заработная плата, выплачиваемая на W с возможным присвоением весовых значений, которые будут означать относительную важность этих составляющих. В одном из вариантов реализации благодаря преимуществам данного способа, спуск градиента может эффективно использоваться для поиска домов и мест работы по такой функции стоимости.In one implementation, the cost function depends on homes and places of work. For example, such a cost function may be used if the client is seeking to minimize the time-to-money cost ratio. In one implementation, the cost function is the travel time between H and W, plus the monetary cost of renting H, minus the wages paid on W, with possible weights that would indicate the relative importance of these components. In one implementation, due to the advantages of this method, gradient descent can be effectively used to find homes and jobs for such a cost function.

10. Общий случай.10. General case.

В одном из вариантов реализации слова дом и работа имеют произвольное смысловое значение. Например, рассмотрим ситуацию, когда клиент ищет работу, которая находилась бы недалеко от его текущего дома. Клиент не хочет переезжать в другой дом, а просто хочет найти работу поближе к текущему дому. В этом случае можно просто применить данный способ. При наличии ряда точек на всей городской агломерации, в которых люди работают (например, различные учреждения, предприятия и т.д.), данный способ рассчитывает время в пути между каждым кластером рабочих мест и каждым кластером остановок. Таким образом, данный способ можно считать инструментом поиска или сравнения рабочих мест по маршруту до места работы и обратно. В одном из вариантов реализации данный способ ищет или сравнивает места работы по виду занятости пользователя или уровню зарплат, а также по времени в пути от текущего дома пользователя. В качестве другого примера рассмотрим компанию, которая хочет перевезти свой головной офис в новое место. Данный способ может быть использован для расчета совокупного времени в пути компании для каждого нового расположения головного офиса по всей городской агломерации. Таким образом компания может определить, как новое расположение повлияет на маршруты ее сотрудников до места работы и обратно. Новое расположение можно выбрать, например, так, чтобы (1) уменьшить время в пути до работы и обратно при самых неблагоприятных условиях; и (2) среднее время в пути до работы и обратно было небольшим, тем самым решив задачи для каждого сотрудника и общества в целом.In one embodiment, the words home and work have an arbitrary semantic meaning. For example, consider a situation where a client is looking for a job that is close to their current home. The client does not want to move to another house, but simply wants to find a job closer to the current home. In this case, you can simply apply this method. Given a number of points throughout the urban agglomeration in which people work (for example, various institutions, enterprises, etc.), this method calculates the travel time between each cluster of jobs and each cluster of stops. Thus, this method can be considered a tool for searching or comparing jobs along the route to the place of work and back. In one embodiment, the method searches or compares jobs by the user's occupation or salary level, as well as travel time from the user's current home. As another example, consider a company that wants to move its head office to a new location. This method can be used to calculate the total travel time of the company for each new head office location throughout the metropolitan area. In this way, the company can determine how the new location will affect the routes of its employees to and from work. A new location can be chosen, for example, to (1) reduce travel time to and from work under the most adverse conditions; and (2) the average travel time to and from work was short, thus meeting the challenges for each employee and society as a whole.

В данном описании много сказано про время в пути как основную цель поиска или сравнения. Однако данный способ может брать за основу любые другие цели, например денежная стоимость перемещения; расстояние в метрах; определенные характеристики или атрибуты маршрутов перемещения, например количество пересадок или длина пеших участков; или характеристики домов, например цена, размер или тип. В одном из вариантов реализации это просто решается построением соответствующих графов и заданием весовых значений ребер. Разные цели могут объединяться при поиске с многоцелевой оптимизацией (multi-objective optimization) на основе многомерной стоимости (multi-dimensional cost), например при поиска дома, расположение которого минимизирует время в пути, что отражается в финансовых затратах на перемещение [147].This description says a lot about travel time as the main goal of a search or comparison. However, this method can be based on any other goals, such as the monetary value of the movement; distance in meters; certain characteristics or attributes of travel routes, such as the number of transfers or the length of walking distances; or characteristics of houses, such as price, size, or type. In one implementation, this is simply solved by building the corresponding graphs and setting the weight values of the edges. Different goals can be combined when searching with multi-objective optimization based on multi-dimensional cost, for example, when searching for a house whose location minimizes travel time, which is reflected in the financial costs of moving [147].

В общем случае данный способ использует произвольные точки S1, ..., Sm (точками (site) авторы называли дома в разделах выше) и произвольные места P1, ..., Pk (местами (place) авторы называли места работы в разделах выше), и данный способ ищет или сравнивает точки S1, ..., Sm по маршрутам или длинам маршрутов (в разделах выше маршрутами (route) называлось описание перемещения, а длиной маршрута (route length) называлось расстояние перемещения), которые начинаются или заканчиваются в некоторых точках или проходят через некоторые места, определяемые произвольными спецификациями маршрутов (спецификацией маршрутов (route specification) назывался маршрут до места работы и обратно в разделах выше), включающими точки и места. Для поиска или сравнения может использоваться любой из вариантов, описанных в разделе 9. Таким образом, данный способ может возвращать в качестве ответа маршруты или длины маршрутов либо их представление (representation). Информацию, рассчитыIn the general case, this method uses arbitrary points S1, ..., S m (the authors called places (site) houses in the sections above) and arbitrary places P1, ..., P k (places (place) the authors called places of work in the sections above), and this method searches or compares points S1, ..., S m by routes or route lengths (in the sections above, routes (route) was called the description of the movement, and the length of the route (route length) was called the distance of the movement) that start or terminate at some points or pass through some places, defined by arbitrary route specifications (route specification was the route to and from work in the sections above), including points and places. Any of the options described in clause 9 can be used for searching or comparing. Thus, this method can return routes or route lengths, or a representation of them, as a response. information, calculations

- 19 042786 ваемую в одном из вариантов реализации способа, можно использовать рекурсивно (recursively) в качестве вводных для того или иного варианта реализации способа [148].- 19 042786 obtained in one of the embodiments of the method, can be used recursively (recursively) as input for one or another embodiment of the method [148].

11. Компьютерная система.11. Computer system.

Одним из вариантов реализации изобретения является компьютерная система (computer system), которая ищет или сравнивает объекты недвижимости по маршрутам до места работы и обратно. Авторы проиллюстрировали вариант реализации компьютерной системы на фиг. 11.One of the embodiments of the invention is a computer system (computer system), which searches or compares real estate objects along the routes to and from the place of work. The authors have illustrated an embodiment of the computer system in FIG. eleven.

В данном описании авторы используют термин модуль (module). Как известно из области техники, данный термин означает компьютерную (под)систему, выполняющую определенный функционал. Данная разбивка компьютерной системы на отдельные модули представлена в качестве одного из вариантов и не является обязательной. Люди с базовыми техническими знаниями отметят, что систему можно скомпоновать по модулям в ином виде, не нарушив сущность изобретения.In this description, the authors use the term module (module). As known in the art, this term refers to a computer (sub)system that performs a specific functionality. This breakdown of the computer system into separate modules is presented as an option and is not mandatory. People with basic technical knowledge will note that the system can be modularized in a different way without violating the essence of the invention.

В одном из вариантов реализации каждое перемещение по какому-либо маршруту до места работы и обратно содержит время отправления.In one implementation, each movement along any route to the place of work and back contains the time of departure.

Один модуль (1101) системы считывает данные о транспортной системе из источника данных (1102) и строит граф G. При построении графа модуль берет данные о домах из источника данных об объектах недвижимости (1103), а из другого источника данных (1104) берет кратчайшие пешие участки между кластерами домов и кластерами остановок, а также рядом с ними. Граф G содержит данные о расписании маршрутов транспорта. Модуль выдает граф без вершинOne module (1101) of the system reads data about the transport system from the data source (1102) and builds graph G. When building the graph, the module takes data about houses from the data source about real estate (1103), and from another data source (1104) takes the shortest walking areas between and near clusters of houses and clusters of stops. Column G contains data on the schedule of transport routes. The module produces a graph without vertices

HOME CLUSTER SOURCE s (1105), а также выдает граф без вершинHOME CLUSTER SOURCE s (1105) and also produces a graph without vertices

HOME CL USTER TARGET s но с перевернутыми ребрами (1106). Также модуль строит структуру данных с ближайшими соседними записями (1107), чтобы можно было находить остановки в пределах порогового расстояния от какого-либо географического расположения, и предварительно рассчитывает кратчайшие пешие участки рядом с кластерами домов и кластерами остановок (1108).HOME CL USTER TARGET s but with inverted ribs (1106). The module also builds a data structure with nearest neighbor records (1107) to be able to find stops within a threshold distance from any geographic location, and precalculates shortest walking distances near house clusters and stop clusters (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].Simultaneously another module (1109) of the system reads two graphs and calculates the shortest arm of the graph. In one implementation, the module scans time slots every 5 minutes during the day. For each departure time, the module builds one table (1110) containing the shortest travel time from stop clusters to home clusters using (1105) and another table (1111) containing the shortest travel time from home clusters to stop clusters using (1106). In one implementation, each travel time, rounded to the nearest minute, is stored as a uint8 data type in the C++ programming language, reserving the maximum value of 255 as an indication of an unknown or very long travel time. In one implementation, tables are laid out (laid out) on HDDs in rows (row-major order). In one implementation, the system uses a cache hierarchy using HDDs, SSDs, and RAM. In one implementation, the tables or portions thereof are compressed using a compression algorithm such as delta compression. According to the authors' observations, for any pair from a cluster of houses and a cluster of stops, the travel time is often the same in certain time periods. This similarity is also often true in the neighboring environment of the couple. In one implementation, we select the sequence h1, ..., h m of house clusters so that any hi and h i+1 that are adjacent (adjacent) in the sequence are with high probability the nearest clusters of houses, and we select the sequence s1, . .., s n stop clusters so that any si and s i+1 that are adjacent in the sequence are, with high probability, the nearest stop clusters [153].

Модули (1101) и (1109) работают в непрерывном режиме. В результате в системе обеспечивается актуальность данных о времени в пути с учетом определенном времени отправления.Modules (1101) and (1109) operate continuously. As a result, the system ensures that the travel time data is up-to-date, taking into account a specific departure time.

Параллельно модуль времени в пути (1112) рассчитывает PathDurations. Имея маршрут до места работы и обратно, а также время отправления, модуль обращается (1113) за соответствующими значениями PathDurations, которые уже были предварительно рассчитаны. Недостающие значения рассчитываются из начальной позиции: модуль обращается к источнику навигационных данных (1114) для расчета значения PathNonHomeDuration части маршрута до места работы и обратно, не включающей какие-либо дома. Также модуль рассчитывает время в пути PathFromHomeDurations и PathToHomeDurations, включающие дома, путем обращения за векторами ближайших остановок (1107), пешеходных участков (1108) и времени в пути от дома (1110 и 1111) в соответствующее время отправления.In parallel, the travel time module (1112) calculates PathDurations. Having a route to and from the place of work, as well as the time of departure, the module calls (1113) for the corresponding values of PathDurations, which have already been pre-calculated. Missing values are calculated from the starting position: the module calls the navigation data source (1114) to calculate the PathNonHomeDuration value for the portion of the route to and from work that does not include any homes. The module also calculates the travel time PathFromHomeDurations and PathToHomeDurations including homes by invoking nearest stop (1107), walking distance (1108), and travel time from home (1110 and 1111) vectors at the corresponding departure time.

Параллельно модуль обработки запросов (1115) ищет или сравнивает объекты недвижимости. Любой запрос (1116) содержит маршруты до места работы и обратно, включая географические расположения на маршрутах до места работы и обратно, и время отправления, а также функцию Deriver. При получении запроса от пользователя модуль извлекает PathDurations из модуля времени в пути (1112), применяет функцию Deriver и возвращает пользователю информацию, выражающую результат функции Deriver (1117).In parallel, the query processing module (1115) searches or compares properties. Any request (1116) contains routes to and from work, including geographic locations on routes to and from work, and departure time, as well as the Deriver function. Upon receiving a request from the user, the module extracts the PathDurations from the travel time module (1112), applies the Deriver function, and returns information to the user expressing the result of the Deriver function (1117).

Аспекты изобретения могут быть реализованы в форме устройства, программного обеспечения илиAspects of the invention may be embodied in the form of a device, software, or

- 20 042786 аппаратно-программного комплекса. Шаги в изобретении, например блоки принципиальной схемы, могут выполняться не по порядку, частично параллельно или браться из кеша в зависимости от функционала или оптимизации. Аспекты изобретения могут быть реализованы в последовательной системе или параллельной/распределенной системе, в которой каждый компонент содержит в себе определенный аспект; можно предусматривать резервирование в других компонентах, а связь между компонентами может быть реализована, например, через любого вида сети. Изобретение не описывается с отсылкой на какой-либо конкретный язык программирования. Компьютерная программа, выполняющая операции по аспектам изобретения, может быть написана на любом языке программирования, например C++, Java или JavaScript. Какая-либо программа может исполняться на произвольной аппаратной платформе, например в центральном процессоре (ЦП) или графическом процессоре (ГП), а также связанными запоминающими устройствами или носителями. Программа может исполнять аспекты изобретения на одной или нескольких программных платформах, включая, помимо прочих, смартфоны с операционными системами Android или iOS, или интернет-браузеры, например Firefox, Chrome, Internet Explorer или Safari.- 20 042786 hardware and software complex. Steps in the invention, such as circuit blocks, may be executed out of order, partially in parallel, or taken from the cache, depending on the functionality or optimization. Aspects of the invention may be implemented in a serial system or a parallel/distributed system in which each component contains a particular aspect; it is possible to provide for redundancy in other components, and communication between components can be implemented, for example, via any kind of network. The invention is not described with reference to any particular programming language. A computer program that performs operations on aspects of the invention may be written in any programming language, such as C++, Java, or JavaScript. Any program may run on any hardware platform, such as a central processing unit (CPU) or graphics processing unit (GPU), and associated storage devices or media. The program may execute aspects of the invention on one or more software platforms, including, but not limited to, smartphones running Android or iOS operating systems, or Internet browsers such as Firefox, Chrome, Internet Explorer, or Safari.

12. Компьютерный сервис.12. Computer service.

Одним из вариантов реализации изобретения является компьютерный сервис (computer service) по поиску или сравнению объектов недвижимости по маршрутам до места работы и обратно. Сервис предоставляется пользователям через пользовательское устройство, например, в виде приложения на смартфоне или сайта в сети интернет. Любому человеку с базовыми техническими знаниями очевидно, что изобретение не ограничено в использовании только на перечисленных устройствах. Также очевидно, что представление сервиса на данных схемах можно изменить (например, изменив компоновку, размеры, цвета, форму, добавив или убрав компоненты), не нарушая сущности изобретения.One of the options for implementing the invention is a computer service (computer service) for searching or comparing real estate objects along the routes to and from the place of work. The service is provided to users through the user device, for example, in the form of an application on a smartphone or a website on the Internet. It is obvious to any person with basic technical knowledge that the invention is not limited to use only on the listed devices. It is also obvious that the representation of the service in these diagrams can be changed (for example, by changing the layout, dimensions, colors, shape, adding or removing components) without violating the essence of the invention.

В одном из вариантов реализации доступ к сервису осуществляется через приложение на смартфоне. См. фиг. 12 для иллюстрации. Пользователь вводит запрос. В одном из вариантов реализации запрос включает желаемые характеристики объекта недвижимости (1201), например 3 комнаты, многоэтажное знание, верхние этажи;In one embodiment, the service is accessed through an application on a smartphone. See fig. 12 for illustration. The user enters a query. In one implementation, the request includes the desired properties of the property (1201), such as 3 rooms, multi-storey knowledge, upper floors;

маршруты до места работы и обратно (1202, 1203, школы Towsend или Jericho High, 1204), время отправления (1205, 1206) и частоту перемещения по каждому маршруту (1207, 1208); и географическое расположение текущего дома (1209) пользователя.routes to and from work (1202, 1203, Towsend or Jericho High, 1204), departure time (1205, 1206) and frequency of travel for each route (1207, 1208); and geographic location of the user's current home (1209).

В ответ сервис возвращает информацию о времени в пути. Например, сервис отображает (renders) географические расположения объектов недвижимости, соответствующие пользовательскому запросу (1210). Сервис показывает зависимость времени в пути от расположения объектов в сравнении с текущим домом. Сервис показывает краткую информацию (summary) о соответствующем объекте недвижимости, например его цену. Объекты недвижимости можно нанести (stacked) на двухмерную карту, так чтобы объекты недвижимости с более коротким временем в пути были на верхнем слое, а объекты недвижимости с более длинным временем в пути были на нижнем слое. Если количество объектов такое, что их нормальное отображение на карте затруднено, тогда сервис может сгруппировать объекты недвижимости и отобразить кластеры, размер которых коррелирует с количеством объектов недвижимости в кластере. Кластер может отображать краткую информацию, например, о количестве, типовых характеристиках объектов недвижимости в кластере [160].In response, the service returns information about the travel time. For example, the service renders geographic locations of real estate objects that match a user query (1210). The service shows the dependence of travel time on the location of objects in comparison with the current home. The service shows brief information (summary) about the relevant property, such as its price. Properties can be stacked on a 2D map so that properties with shorter travel times are on the top layer and properties with longer travel times are on the bottom layer. If the number of objects is such that their normal display on the map is difficult, then the service can group the properties and display clusters, the size of which correlates with the number of properties in the cluster. The cluster can display brief information, for example, about the number, typical characteristics of real estate objects in the cluster [160].

В одном из вариантов реализации сервис показывает объекты недвижимости с кратчайшим временем в пути. Краткая информация об объектах недвижимости также отображается (1211). Объекты недвижимости можно сортировать по времени в пути.In one implementation, the service shows properties with the shortest travel time. Brief information about real estate objects is also displayed (1211). Properties can be sorted by travel time.

В одном из вариантов реализации сервис отображает карту интенсивности (heatmap), на которой цветом выделено время в пути из каждого района городской агломерации, например минимальное время для района, как можно увидеть на иллюстрации фиг. 1. Карта интенсивности может показывать разницу времени в пути для каких-либо домов и времени в пути для текущего дома пользователя. В одном из вариантов реализации карта интенсивности показывает только те объекты недвижимости, которые соответствуют желаемым пользовательским характеристикам объекта недвижимости [162].In one implementation, the service displays a heatmap, on which the travel time from each area of the urban agglomeration is highlighted in color, for example, the minimum time for the area, as can be seen in the illustration of Fig. 1. The intensity map can show the difference in travel time for some homes and travel time for the user's current home. In one implementation, the intensity map shows only those properties that correspond to the desired user characteristics of the property [162].

В одном из вариантов реализации сервис отображает гистограмму (histogram) времени в пути (1212). Гистограмма содержит время в пути по одной оси, а по другой оси долю объектов недвижимости, расположение которых обеспечивает соответствующее время в пути. В одном из вариантов реализации гистограмма показывает только те объекты недвижимости, которые соответствуют желаемым пользовательским характеристикам объекта недвижимости. В одном из вариантов реализации пользователь может наводить на какой-либо участок гистограммы (1213), а сервис будет отображать результаты по времени в пути для соответствующего участка. В одном из вариантов реализации данный способ использует другой вид графиков, например круговую диаграмму (pie chart) [163].In one implementation, the service displays a histogram of travel time (1212). The histogram contains travel time on one axis, and on the other axis, the proportion of properties whose location provides the corresponding travel time. In one implementation, the histogram only shows properties that match the user's desired property characteristics. In one embodiment, the user can hover over a portion of the histogram (1213) and the service will display the results of the travel time for that portion. In one implementation, this method uses another type of graph, such as a pie chart (pie chart) [163].

В одном из вариантов реализации пользователь может ограничить маршруты перемещения, например, ограничив общее время прохождения пеших участков, количество пересадок и т.д., например, используя слайдеры диапазонов (1214).In one embodiment, the user may restrict travel routes, such as by limiting total walking time, number of transfers, etc., such as using range sliders (1214).

В одном из вариантов реализации сервис отображает краткую информацию о маршруте перемещения для объекта недвижимости.In one implementation, the service displays summary information about the travel route for the property.

- 21 042786- 21 042786

В одном из вариантов реализации сервис возвращает пользователю по крайней мере одно из следующего:In one implementation, the service returns at least one of the following to the user:

(а) географическое расположение: места или точки, отображенной на карте;(a) geographic location: a place or point displayed on a map;

(b) время отправления или время прибытия для: места или точки;(b) departure time or arrival time for: a place or point;

(c) краткую информацию о точке; краткая информация может включать по крайней мере одно из следующего: имя или адрес точки, цену точки или размер точки;(c) brief information about the point; summary information may include at least one of the following: point name or address, point price, or point size;

(d) краткую информацию о точках, образующих кластер из ближайших точек;(d) brief information about the points that form a cluster of nearest points;

(e) изображение кластера ближайших точек, размер изображения, коррелирующий с количеством точек в кластере ближайших точек;(e) an image of a cluster of nearest points, an image size correlating with the number of points in the cluster of nearest points;

(f) расположение точек по приоритету индекса z (z-index order) на основе длины маршрута; более короткие маршруты должны быть на верхнем слое карты;(f) location of points by z-index priority (z-index order) based on route length; shorter routes should be on the top layer of the map;

(g) информация о маршруте и длине маршрута; информация может включать по крайней мере одно из следующего:(g) route information and route length; information may include at least one of the following:

(i) длину маршрута, время, денежные затраты, скорость или время ожидания;(i) route length, time, cost, speed or waiting time;

(ii) название транспортного маршрута, автомобильной дороги, пешего участка, остановки, точки поворота или станции пересадки между маршрутами общественного транспорта; или (iii) географическое расположение с точки зрения денежных затрат, скорости, времени ожидания, транспортного маршрута, автомобильной дороги, пешего участка, остановки, точки поворота или станции пересадки между маршрутами общественного транспорта;(ii) the name of the transport route, road, footpath, stop, turning point or transfer station between public transport routes; or (iii) geographic location in terms of cost, speed, waiting time, transportation route, highway, footway, stop, turning point or interchange station between public transport routes;

(h) гистограмма длины маршрута через точки; или карта интенсивности длин маршрута через точки, изображенные на карте;(h) histogram of route length through points; or a map of the intensity of route lengths through the points depicted on the map;

(i) минимальная длина маршрута; гистограмма минимальной длины маршрута через точки; или карта интенсивности минимальной длины маршрута через точки, изображенные на карте;(i) minimum route length; histogram of the minimum route length through points; or an intensity map of the minimum length of the route through the points shown on the map;

(j) взвешенная длина маршрута; гистограмма взвешенной длины маршрута через точки; или карта интенсивности взвешенных длин маршрута через точки, изображенные на карте;(j) weighted route length; histogram of weighted route length through points; or an intensity map of the weighted route lengths through the points depicted on the map;

(k) дифференцированная длина маршрута; гистограмма дифференцированной длины маршрута через точки; или карта интенсивности дифференцированных длин маршрута через точки, изображенные на карте;(k) differentiated route length; histogram of differentiated route length through points; or an intensity map of differentiated route lengths through the points depicted on the map;

(l) изображение результата применения функции Deriver;(l) a picture of the result of applying the Deriver function;

(m) точка с наименьшей длиной маршрута через точки при ограничении по денежным затратам на перемещение;(m) the point with the shortest route length through the points under the restriction on the monetary cost of movement;

(n) какие-то из представленных выше подпунктов с (а) по (m) ограничиваются условием, заданным пользователем; или (о) рейтинг точек из множества соответствующих точек, маршрутов и длин маршрутов, отвечающих заданному условию, с сортировкой по длине маршрута.(n) any of (a) through (m) above is subject to a condition specified by the user; or (o) a rating of points from a set of corresponding points, routes, and route lengths that meet a given condition, sorted by route length.

13. Заметка о формуле изобретения.13. Note on the claims.

Люди с базовыми техническими знаниями должны отметить возможность выполнения множества модификаций, а также замены на эквиваленты с большой степенью родства без нарушения сущности данного изобретения. Кроме того, принципы изобретения можно адаптировать под ту или иную ситуацию без нарушения его сущности. Таким образом, несмотря на раскрытие упомянутых вариантов реализации изобретения изобретение не должно быть ограничено только этими вариантами реализации. Напротив, изобретение будет предусматривать все варианты реализации, предусмотренные формулой изобретения, изложенной в приложении.Those with basic technical knowledge should note that many modifications can be made, as well as substitutions for highly related equivalents, without violating the spirit of the present invention. In addition, the principles of the invention can be adapted to a particular situation without violating its essence. Thus, despite the disclosure of the mentioned embodiments of the invention, the invention should not be limited only to these embodiments. On the contrary, the invention will provide for all embodiments contemplated by the claims set forth in the appendix.

14. Глоссарий.14. Glossary.

Авторы включили глоссарий отдельных выражений, встречающихся в формуле изобретения, а также ссылки на спецификацию. Ссылки не являются исчерпывающими; существуют иные ссылки. Перечень выражений составлен в порядке по первому упоминанию этих выражений в тексте формулы изобретения.The authors have included a glossary of individual expressions found in the claims, as well as references to the specification. The links are not exhaustive; there are other links. The list of expressions is compiled in the order of the first mention of these expressions in the text of the claims.

В формуле изобретения также используются следующие выражения, о значении которых дается пояснение.The following expressions are also used in the claims, the meaning of which is explained.

1) Выражение at least one А (по крайней мере один А) является эквивалентом #А>1, где #А это номер А.1) The expression at least one A (at least one A) is equivalent to #A>1, where #A is the number A.

2) Выражение one or more А (один или более А) является эквивалентом #А>1, где #А это номер А.2) The expression one or more A (one or more A) is equivalent to #A>1, where #A is the number A.

3) Выражение plurality of As (множество А) является эквивалентом #А>2, где #А - это номер А.3) The expression plurality of As (set A) is equivalent to #A>2, where #A is the number A.

4) Выражение at least two As (по крайней мере два А) является эквивалентом #А>2, где #А - это номер А.4) The expression at least two As (at least two A) is equivalent to #A>2, where #A is the number A.

5) Выражение one of A, or В (один из А или В) является эквивалентом #А+#В=1, где #А - это номер А, а #В - это номер В.5) The expression one of A, or B (one of A or B) is equivalent to #A+#B=1, where #A is the number A and #B is the number B.

6) Выражение at least one of A, or В (по крайней мере один из А или В) является эквивалентом6) The expression at least one of A, or B (at least one of A or B) is equivalent to

- 22 042786 #А+#В>1, где #А - это номер А, а #В - это номер В.- 22 042786 #A+#B>1, where #A is the number A and #B is the number B.

7) Выражение at least one В or С (по крайней мере один В или С) является эквивалентом at least one A, wherein each A is (B or С) (по крайней мере один А, где каждый А это (В или С)).7) The expression at least one B or C (at least one B or C) is equivalent to at least one A, although each A is (B or C) (at least one A, where each A is (B or C) ).

выражение expression ссылка на пример использования link to usage example способ (method) way (method) пункт[003] item[003] поиск или сравнение (searching or comparing) search or compare (search or compare) пункт[002] item[002] гонка (site) race (site) пункт[148] paragraph[148] маршрут или длина маршрута (route or route length) route or route length пункты [013] , [127] items [013] , [127] место (place) place (place) пункт[148] paragraph[148] гранспортная система (transportation system) gransport system (transport system) пункт[022] item[022] представитель (representative) representative (representative) пункты [022] , [117] items [022] , [117] хранение (storing) storage пункт[022] item[022] база данных (database) database пункт[022] item[022] предварительно рассчитанный (precomputed) precomputed Раздел 4 Section 4 описание перемещения (description of travel) movement description (description of travel) пункт[020] item[020] получение (receiving) receiving пункт[003] item[003] запрос (request) request (request) пункт[022] item[022] начальное место (start place) starting place (start place) Раздел 5.2 Section 5.2 конечное место (end place) end place (end place) Раздел 5.3 Section 5.3 расчет (computing) calculation (computing) пункт[089] item[089] ближайший представитель (nearby representative) nearest representative пункты [068] , [120] , [121] items [068] , [120] , [121] длина перемещения (length of travel) length of travel пункт[020] item[020]

- 23 042786- 23 042786

пороговое значение (threshold) threshold value пункт[035] item[035] извлечение (retrieving) retrieving пункт[022] item[022] удаленная точка (not nearby site) remote point (not nearby site) пункт[068] item[068] ответ (responding) answer (responding) пункт[003] item[003] информация (information) information пункт[003] item[003] обозначение (representation) designation (representation) пункт[148] paragraph[148] объект недвижимости / конечная точка маршрута до места работы и обратно (real estate property / commute destination) real estate object / end point of the route to the place of work and back (real estate property / commute destination) пункт[002] item[002] время отправления / срок прибытия (departure time /arrival deadline) departure time / arrival deadline (departure time /arrival deadline) пункты [066] , [090] items [066] , [090] место Pi, начальное место Pi, конечное место Рк (place Pi, start place Pi, end place Pk) place Pi, start place Pi, end place Pk (place Pi, start place Pi, end place Pk) Определение 1 Definition 1 первая точка, последняя точка (first site, last site) first point, last point (first site, last site) Раздел 9.7 Section 9.7 включает (involves) includes (involve) Раздел 9.7 Section 9.7 маршрут или длина маршрута от точки до места (site-place route or route length) site-place route or route length пункт[091] item[091] точка кластера / представитель кластера (cluster site /cluster representative) cluster point / cluster representative (cluster site / cluster representative) пункты [035] , [036] items [035] , [036] связующая точка кластера (site connector) cluster tie point (site connector) пункт[112] paragraph[112] сжатие (compression) compression (compression) пункт[153] paragraph[153] функция манипулирования (manipulation function) manipulation function (manipulation function) пункт[093] item[093] район area пункт[092] item[092]

- 24 042786- 24 042786

(zone) (zone) транспортные элементы (transportation elements) transport elements пункт[127] paragraph[127] длина отрезка (segment length) segment length (segment length) пункт[033] item[033] граф / вершины графа (graph /graph vertexes) graph / graph vertexes (graph /graph vertexes) пункт[033] item[033] вершины транспортного элемента (transportation element vertexes) transport element vertexes Раздел 9.3 Section 9.3 вершина точки / вершина представителя (site vertex / representative vertex) site vertex / representative vertex пункт[117] paragraph[117] ребро графа (graph edge) graph edge пункт [033] item [033] исходная вершина ребра графа/ целевая вершина ребра графа / весовое значение ребра графа (graph edge source vertex / graph edge target vertex / graph edge weight) graph edge source vertex / graph edge target vertex / graph edge weight пункт[033] item[033] плечо графа или длина плеча графа (graph path or graph path length) graph arm or graph path length пункт[033] item[033] время (time) time пункт[042] item[042] алгоритм (algorithm) algorithm (algorithms) пункт[033] item[033] перевернутый (reversed) inverted (reversed) пункт[040] item[040] координата (coordinate) coordinate пункт[056] item[056] вектор v, значение v[i] (vector v, value v/z7) vector v, value v[i] (vector v, value v/z7) пункт[056] item[056] вектор ν', значение v'[i] (vector ν', value ν'[if) vector ν', value v'[i] (vector ν', value ν'[if) пункт[058] item[058] размещение (laying out) placement (laying out) пункт[153] paragraph[153] список / хеш-таблица list / hash table пункты [062] , [063] items [062] , [063]

- 25 042786- 25 042786

(list / hash map) (list/hashmap) весовое значение w, (weight w;)weight value w, (weight w ; ) пункт[059] item[059] нижняя граница Ibi, верхняя граница ubt, коэффициент масштабирования sf, (lower bound Ibi, upper bound up, scaling factor sf)lower bound Ibi, upper bound ub t , scaling factor sf, (lower bound Ibi, upper bound up, scaling factor sf) пункт[060] item[060] операция «+», операция «min» (+ operation, min operation) operation "+", operation "min" (+ operation, min operation) пункт[072] item[072] первая математическая формула / вторая математическая формула (first mathematical formula /second mathematical formula) first math formula / second math formula (first mathematical formula /second mathematical formula) пункты [072] , [086] items [072] , [086] целит (partitions) celite (partitions) пункт[075] item[075] спецификация маршрута Е (route specification E) route specification E пункты [028] , [148] items [028] , [148] функция deriver deriver function пункт[109] paragraph[109] минимальная длина маршрута (minimum route length) minimum route length Раздел 6.2 Section 6.2 весовые значения wi,..., wq (weights it7,..., Wq)weights wi,..., w q (weights it7,..., Wq) пункт[099] item[099] взвешенная длина маршрута (weighted route length) weighted route length Раздел 6.1 Section 6.1 точка S (site 0) point S (site 0) пункт[105] paragraph[105] дифференцированная длина маршрута (difference route length) differential route length Раздел 7.1 Section 7.1 условие (condition) condition (condition) Разделы 9.4,9.5 Sections 9.4,9.5 установка фильтра (filtering) filter installation пункт [006], Разделы 9.4, 9.5 Section [006], Sections 9.4, 9.5 агрегатор (aggregator) aggregator (aggregator) пункт [131] paragraph [131] центральное положение central position пункт [131] paragraph [131]

--

Claims (3)

(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](centrality) cost function (cost function) paragraph[140] research algorithm (exploration algorithm) Section 9.8 differentiable function item[140] gradient descent (gradient descent) [140] multi-objective optimization / multi-dimensional cost paragraphs [050] , [147] computer system (computer system) Section And instrument (apparatus) Section 12 summary / display / display priority (summary / rendering / stacking) item[160] heatmap item[162] histogram item[163] rating (top list) paragraph[109] ФОРМУЛА ИЗОБРЕТЕНИЯCLAIM 1. Способ поиска или сравнения по крайне мере одной точки с использованием по крайней мере двух описаний перемещения в транспортной системе между указанной по крайней мере одной точкой и по крайней мере одним местом, при этом указанный способ включает (a) получение запроса, включающего указанное по крайней мере одно место;1. A method of searching or comparing at least one point using at least two descriptions of movement in the transport system between the specified at least one point and at least one place, while the specified method includes (a) receiving a request that includes the specified by at least one place; (b) вычисление указанных по крайней мере двух описаний перемещения, которые включают (i) описание перемещения в указанной транспортной системе между каждым из множества разных мест, включенных в указанное по крайней мере одно место, и точку, включенную в указанную по крайней мере одну точку, но не входящую в указанное множество разных мест, или (ii) описание перемещения в указанной транспортной системе между каждым из множества разных точек, включенных в указанную по крайней мере одну точку, и место, включенное в указанное по крайней мере одно место, но не входящее в указанное множество разных точек; и (c) реагирование на указанный запрос путем выведенного описания перемещения, полученного на основе указанных по крайней мере двух описаний перемещения.(b) computing said at least two movement descriptions that include (i) a description of movement in said transportation system between each of a plurality of different places included in said at least one place and a point included in said at least one point , but not included in the specified set of different places, or (ii) a description of the movement in the specified transportation system between each of the many different points included in the specified at least one point, and a place included in the specified at least one place, but not included in the specified set of different points; and (c) responding to said request with an inferred movement description derived from said at least two movement descriptions. 2. Способ по п.1, отличающийся тем, что указанное выведенное описание перемещения вычисляется с использованием этапов, включающих (a) расчет минимум множества длин перемещения, включенных в указанные по крайней два описания перемещения;2. The method according to claim 1, characterized in that said derived motion description is calculated using steps including (a) calculating a minimum of a plurality of motion lengths included in said at least two motion descriptions; (b) расчет взвешенной суммы множества длин перемещения, включенных в указанные по крайней два описания перемещения, с использованием числовых весов, дополнительно включенных в указанный запрос; или (c) расчет разницы между первой длиной перемещения, имеющей конечную точку, которая является первой точкой, и второй длиной перемещения, имеющей конечную точку, которая является второй точкой, при этом указанные две длины перемещения являются включенными в указанные по крайней мере два описания перемещения, при этом указанные две точки являются включенными в указанное множество разных точек, и при этом одна из двух точек дополнительно является включенной в указанный запрос.(b) calculating a weighted sum of a plurality of movement lengths included in said at least two movement descriptions using numerical weights further included in said query; or (c) calculating the difference between a first travel length having an end point that is a first point and a second travel length having an end point that is a second point, said two travel lengths being included in said at least two travel descriptions , wherein the specified two points are included in the specified set of different points, and wherein one of the two points is additionally included in the specified query. 3. Способ по п.1, отличающийся тем, что точка, включенная в указанную по крайней мере одну точку, или место, включенное в указанное по крайней мере одно место, представляют собой3. The method according to claim 1, characterized in that the point included in the specified at least one point, or the place included in the specified at least one place, are --
EA202192708 2018-02-20 2019-02-14 METHOD AND TOOL FOR SEARCHING OR COMPARING POINTS USING ROUTES OR ROUTE LENGTHS BETWEEN POINTS AND PLACES IN TRANSPORT SYSTEM EA042786B1 (en)

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 (en) 2023-03-24

Family

ID=

Similar Documents

Publication Publication Date Title
JP7264357B2 (en) Method and Apparatus for Searching or Comparing Sites Using Routes or Route Distances Between Sites and Locations in a Transportation System
TWI735292B (en) A method for providing a route for a journey from a source location to a target location
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 (en) Method and Apparatus for Searching or Comparing Sites Using Routes or Route Distances Between Sites and Locations in a Transportation System
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 (en) METHOD AND TOOL FOR SEARCHING OR COMPARING POINTS USING ROUTES OR ROUTE LENGTHS BETWEEN POINTS AND PLACES IN TRANSPORT SYSTEM
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 (en) A method and an apparatus for searching or comparing sites using routes or route lengths between sites and places within a transportation system
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
CN116997923A (en) Method for displaying places by using place similarity and travel duration
Hijmans Opleiding Informatica