RU2807495C1 - Method and system for forming door-to-door travel route - Google Patents

Method and system for forming door-to-door travel route Download PDF

Info

Publication number
RU2807495C1
RU2807495C1 RU2023105503A RU2023105503A RU2807495C1 RU 2807495 C1 RU2807495 C1 RU 2807495C1 RU 2023105503 A RU2023105503 A RU 2023105503A RU 2023105503 A RU2023105503 A RU 2023105503A RU 2807495 C1 RU2807495 C1 RU 2807495C1
Authority
RU
Russia
Prior art keywords
route
user
travel
door
routes
Prior art date
Application number
RU2023105503A
Other languages
Russian (ru)
Inventor
Светлана Валерьевна Алехина
Сергей Владимирович Бонич
Владимир Валерьевич Губарев
Сергей Владимирович Кулагин
Original Assignee
Общество с ограниченной ответственностью "Система бронирования"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Система бронирования" filed Critical Общество с ограниченной ответственностью "Система бронирования"
Application granted granted Critical
Publication of RU2807495C1 publication Critical patent/RU2807495C1/en

Links

Abstract

FIELD: computer technology.
SUBSTANCE: method for planning a travel route using various modes of transport. A method for generating a door-to-door travel route performed by a computing device includes the following steps: receiving a request from the user's device to a search service located on the server, wherein the request includes the exact address of the destination, receiving a schedule from suppliers on the server, generating a route using the RAPTOR algorithm based on data from the user's request, requesting information about available seats and prices from suppliers based on prepared routes, obtaining search parameters through the use of recurrent artificial neural networks that predict the next reference route for the user, comparing one by one the found routes with the reference route, generating travel route for use by filtering the travel routes obtained in the previous step, booking the route automatically.
EFFECT: improved accuracy of generating a door-to-door travel route.
1 cl, 6 dwg

Description

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

[001] Изобретение относится в общем к вычислительной области техники, а в частности к способам и системам планирования маршрута для передвижения, используя различные виды транспорта с заранее известной начальной точкой отправления и конечной точкой прибытия, учитывая различные параметры и критерии подбора видов транспорта, такие как время в пути, стоимость, время пересадок и другие. Способ предоставляет возможность составлять маршрут не только наземным транспортом, а также воздушным и морским.[001] The invention relates generally to the computing field, and in particular to methods and systems for planning a route for travel using various modes of transport with a pre-known starting point of departure and final point of arrival, taking into account various parameters and criteria for selecting modes of transport, such as travel time, cost, transfer times and others. The method provides the opportunity to create a route not only by land transport, but also by air and sea.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART

[002] На данный момент существует большое количество решения для построения маршрутов из известной точки отправления в точку прибытия. Такие решения применяются в навигаторах, в логистических системах. Подобные решения предлагают построения маршрута наземным транспортом без пересадок. Т.е. прокладывают маршрут по известным дорогам общего назначения с учетом пробок и других факторов, влияющих на скорость поездки.[002] At the moment, there are a large number of solutions for building routes from a known departure point to an arrival point. Such solutions are used in navigators and logistics systems. Such solutions offer route construction by ground transport without transfers. Those. plan a route along well-known public roads, taking into account traffic jams and other factors affecting the speed of travel.

[003] Также в опубликованной заявке RU2571450C2 раскрывается устройства для построения мультимодальной навигации. Текущее местоположение путешественника по GPS синхронизируется с запланированным и в случае отклонения маршрута перестраивается. В заявке также сказано, что есть возможность использовать различные виды транспорта в городской среде: пешком, на автомобиле, на автобусе или метро. Предполагается что путешественник сам будет покупать билеты и заботиться о возможности перемещения тем или иным видом транспорта. Навигационная система только составляет маршрут.[003] Also in the published application RU2571450C2 devices for constructing multimodal navigation are disclosed. The traveler's current GPS location is synchronized with the planned one and, if the route deviates, it is rebuilt. The application also states that it is possible to use various modes of transport in an urban environment: on foot, by car, by bus or metro. It is assumed that the traveler himself will buy tickets and take care of the possibility of traveling by one or another type of transport. The navigation system only creates a route.

[004] В заявке RU2572279C1 также раскрывается способ построения мультимодального маршрута. В данной заявке рассматривается наземный транспорт для городской среды с использованием автобусов, пеших маршрутов, самокатов.[004] Application RU2572279C1 also discloses a method for constructing a multimodal route. This application considers ground transport for the urban environment using buses, walking routes, and scooters.

[005] Утомительно каждый раз искать и подбирать маршруты для передвижения. При том, что выбор обычно падает на надежных поставщиков услуг и на привычные и однотипные варианты передвижения. Сложно вручную подбирать время стыковок маршрутов. Например, если в маршруте есть маршрут на электричке и время отправление в 19:00, то необходимо вручную подобрать перелет или такси для самого короткого ожидания. Также следует учитывать цену, класс транспорта и другие параметры. Могут быть личные предпочтения, такие как место в женском купе или такси с водителем-женщиной.[005] It’s tiresome to search and select routes for movement every time. Despite the fact that the choice usually falls on reliable service providers and on familiar and similar travel options. It is difficult to manually select route connecting times. For example, if the route includes a train route and departure time is at 19:00, then you need to manually select a flight or taxi for the shortest wait. You should also take into account the price, class of transport and other parameters. There may be personal preferences, such as a seat in a women's compartment or a taxi with a female driver.

[006] Гарантированная доставка путешественника из точки отправления в точку прибытия. Построение маршрута различными видами транспорта с учетом параметров поиска. Также подбираются варианты с учетом персональных предпочтений путешественника. Путешественник не будет задумываться о покупке билетов, возврате в случае отмены или переноса рейсов, самостоятельном заказе такси и других видов транспорта.[006] Guaranteed delivery of the traveler from the point of departure to the point of arrival. Building a route by various modes of transport, taking into account search parameters. Options are also selected taking into account the traveler’s personal preferences. The traveler will not have to think about buying tickets, getting a refund in case of cancellation or rescheduling of flights, or independently ordering a taxi and other types of transport.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[007] Настоящее изобретение включает в себя формирование маршрута передвижения пользователя из заранее известной точки отправления в заранее известную точку прибытия. Маршрут составляется автоматически с учетом критериев пользователя посредством использования алгоритмов машинного обучения. Также учитываются предпочтения пользователя на основе его “поведенческого портрета” пользователя.[007] The present invention includes generating a travel route for a user from a pre-known departure point to a pre-known arrival point. The route is automatically compiled taking into account the user's criteria through the use of machine learning algorithms. The user’s preferences are also taken into account based on his “behavioral portrait” of the user.

[008] Изобретение предоставляет пользователю систему бронирования, которая подбирает маршрут по предпочтениям, и дает возможность забронировать все средства передвижения. От пользователя изобретения необходимо получить только точку отправления, точку прибытия и указать пользователя. Система предложит маршрут по параметрам автоматически.[008] The invention provides the user with a reservation system that selects a route according to preferences and makes it possible to book all means of transportation. From the user of the invention it is only necessary to obtain the point of departure, the point of arrival and indicate the user. The system will suggest a route based on the parameters automatically.

[009] Техническим результатом, достигаемым в данном техническом решении, является повышение точности формирования маршрута передвижения от двери до двери за счет использования алгоритма поиска маршрута RAPTOR и алгоритмов машинного обучения.[009] The technical result achieved in this technical solution is to increase the accuracy of forming a door-to-door travel route through the use of the RAPTOR route search algorithm and machine learning algorithms.

[0010] Указанный технический результат достигается благодаря осуществлению способа формирования маршрута передвижения от двери до двери, который выполняется по меньшей мере одним вычислительным устройством и включает следующие шаги: получают от меньшей мере одного устройства пользователя запрос по протоколу HTTPS в JSON формате в сервис поиска d2d-service, находящийся на по меньшей мере одном сервере, причем запрос включает точный адрес места назначения; формируют по меньшей мере один маршрут посредством алгоритма RAPTOR на основании данных из запроса пользователя, полученного на предыдущем шаге; получают параметры поиска посредством использования рекуррентной искусственной нейронной сети, причем модель нейронной сети предсказывает эталонный маршрут на основании истории передвижения пользователя; осуществляют поиск маршрутов передвижения посредством запросов поставщикам маршрутов, причем найденные маршруты один за другим сравниваются с эталонным маршрутом методом косинусной близости; формируют по меньшей мере один маршрут передвижения пользования посредством фильтрации полученных на предыдущем шаге маршрутов передвижения.[0010] The specified technical result is achieved by implementing a method for generating a travel route from door to door, which is performed by at least one computing device and includes the following steps: receiving a request from at least one user device via the HTTPS protocol in JSON format to the d2d search service service located on at least one server, the request including the exact destination address; generating at least one route using the RAPTOR algorithm based on data from the user request received in the previous step; obtaining search parameters by using a recurrent artificial neural network, wherein the neural network model predicts a reference route based on the user's movement history; search for travel routes through requests to route providers, and the found routes are compared one by one with the reference route using the cosine proximity method; forming at least one travel route for use by filtering the travel routes obtained at the previous step.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0011] На Фиг. 1 показан примерный вариант реализации способа передвижения от двери до двери в виде блок-схемы.[0011] In FIG. 1 shows an example implementation of a door-to-door travel method in the form of a block diagram.

[0014] На Фиг. 2 показан вариант реализации, где данные из ответа сохраняются в реляционной БД, для быстрого доступа и быстрой выборки.[0014] In FIG. Figure 2 shows an implementation option where the data from the response is stored in a relational database for quick access and quick retrieval.

[0013] На Фиг. 3 показан вариант реализации интерфейса, на которой отображается карта, с помощью которой возможно задать координаты.[0013] In FIG. Figure 3 shows a variant of the interface implementation, which displays a map with which it is possible to set coordinates.

[0014] На Фиг. 4 показан вариант реализации алгоритма, который находит кратчайший путь, состоящий из набора маршрутов.[0014] In FIG. Figure 4 shows an implementation of an algorithm that finds the shortest path consisting of a set of routes.

[0015] На Фиг. 5 показан вариант реализации финальной выдачи, которая формируется в сервисе aggregation-service и отправляется в сервис d2d-service.[0015] In FIG. Figure 5 shows an implementation option for the final output, which is generated in the aggregation-service and sent to the d2d-service.

[0016] На Фиг. 6 показан вариант реализации маршрутов и доступных вариантов передвижения от поставщиков.[0016] In FIG. Figure 6 shows an option for implementing routes and available travel options from suppliers.

ПОДРОБНОЕ РАСКРЫТИЕ ТЕХНИЧЕСКОГО РЕШЕНИЯDETAILED DISCLOSURE OF TECHNICAL SOLUTION

[0017] Данное техническое решение представляет возможность искать варианты передвижения различными транспортами и способами (см. Фиг. 1).[0017] This technical solution makes it possible to search for travel options using various vehicles and methods (see Fig. 1).

[0018] На первом шаге способа осуществляют получение на сервере расписания от поставщиков. Поставщиком может являться сервис в сети Интернет, который предоставляет информацию о передвижении, например, транспортного средства. Для авиаперелетов существуют GDS (глобальная дистрибьютерская система), предоставляющая возможность поиска, бронирования авиабилетов. Самые известные в уровне техники системы GDS: Amadeus, Sabre, Galileo. Некоторые авиакомпании имеют свои собственные системы бронирования, они также могут выступать в роли поставщика. Так же в GDS есть информация о железнодорожных перевозках. Поставщиком для железнодорожных перевозок может выступать GDS или система бронирования от железнодорожных компаний. Для, например, России поставщиком услуг железнодорожных перевозок выступает РЖД, через интегратор Teletrain. Для гостиниц поставщиком выступают системы бронирования отелей, например, Островок, Броневик, A&A и др., в том числе зарубежные: Booking, Expedia. Для такси поставщиком может выступать агрегатор такси, работающий в стране использования, например, Яндекс.Такси, Uber. Для каждого поставщика услуг заранее делают интеграцию с ним.[0018] At the first step of the method, schedules are received from suppliers on the server. The supplier may be a service on the Internet that provides information about the movement of, for example, a vehicle. For air travel, there is a GDS (global distribution system), which provides the ability to search and book air tickets. The most famous GDS systems in the state of the art: Amadeus, Saber, Galileo. Some airlines have their own reservation systems, and they may also act as a supplier. GDS also contains information about rail transportation. The supplier for rail transport can be a GDS or a reservation system from railway companies. For, for example, Russia, the supplier of railway transportation services is Russian Railways, through the integrator Teletrain. For hotels, the supplier is hotel reservation systems, for example, Ostrovok, Bronevik, A&A, etc., including foreign ones: Booking, Expedia. For a taxi, the supplier can be a taxi aggregator operating in the country of use, for example, Yandex.Taxi, Uber. For each service provider, integration with it is done in advance.

[0019] Для составления маршрута необходимо знать все возможные варианты передвижения, т.е. расписание самолетов, поездов, электричек и аэроэкспресса. Эту информацию предоставляют поставщики услуг по API на основании предварительного запроса из данной системы.[0019] To create a route, you need to know all possible travel options, i.e. schedule of planes, trains, electric trains and Aeroexpress. This information is provided by service providers via API based on a preliminary request from this system.

[0020] Система построена на сервисно-ориентированной архитектуре. Каждый элемент системы отвечает за одну конкретную задачу и называется сервисом. Сервис для поиска делает запросы во все доступные поставщики по API. Формат запроса зависит от поставщика. Например, для поиска авиабилетов распространен протокол взаимодействия NDC. Так же может быть SOAP или REST в формате JSON, поверх HTTP. Данное техническое решение никак не ограничивает протоколы взаимодействия между системой и поставщиком. В ответ возвращается полное расписание в формате взаимодействия с поставщиками. В ответе есть точка отправления, точка прибытия, время отправления, время в пути, терминал отправления/прибытия, время перелета, номер рейса/номер поезда.[0020] The system is built on a service-oriented architecture. Each element of the system is responsible for one specific task and is called a service. The search service makes requests to all available providers via API. The request format varies by provider. For example, the NDC interaction protocol is common for searching for air tickets. It can also be SOAP or REST in JSON format over HTTP. This technical solution does not limit the interaction protocols between the system and the supplier. In response, the full schedule is returned in the format of interaction with suppliers. The answer contains the point of departure, point of arrival, departure time, travel time, departure/arrival terminal, flight time, flight number/train number.

[0021] У каждого поставщика есть метод в API для получения расписания. Формат запроса и ответа зависит от конкретного поставщика. В общем виде это запрос без параметров. Для REST запросов будет выглядеть как Error! Hyperlink reference not valid. [0021] Each provider has a method in the API to retrieve the schedule. The request and response format varies by vendor. In general, this is a request without parameters. For REST requests it will look like Error! Hyperlink reference not valid.

[0022] Для SOAP[0022] For SOAP

0023] В зависимости от поставщика, в ответе может быть файл с расписанием в формате CSV или JSON, или ответ в SOAP-формате.0023] Depending on the vendor, the response may be a schedule file in CSV or JSON format, or a response in SOAP format.

[0024] Независимо от формата ответа, в ответе будут необходимые данные:[0024] Regardless of the response format, the response will contain the necessary data:

FlightNumber - номер рейса;FlightNumber - flight number;

Departure - аэропорт отправления;Departure - departure airport;

Arrival - аэропорт прибытия;Arrival - arrival airport;

DepartureDate - дата и время отправления;DepartureDate - date and time of departure;

ArrivalDate - дата и время прибытия;ArrivalDate - date and time of arrival;

DepartureTerminal - терминал отправления;DepartureTerminal - departure terminal;

ArrivalTerminal - терминал прибытия;ArrivalTerminal - arrival terminal;

FlightDuration - время перелета.FlightDuration - flight time.

[0025] Расписание сохраняется на сервере в реляционную БД со структурой (Фиг. 2). Отдельные таблицы используются для каждого поставщика.[0025] The schedule is saved on the server in a relational database with a structure (Fig. 2). Separate tables are used for each supplier.

create table segments_providercreate table segments_provider

[0026] Для ЖД-билетов алгоритм работает аналогичным образом. Сначала с помощью метода API получают все возможные поезда. Запрос справочника поездов вызывается без параметров. А в ответе будет список поездов.[0026] For train tickets, the algorithm works in a similar way. First, all possible trains are obtained using the API method. The train directory request is called without parameters. And the answer will be a list of trains.

<train_number>772АА</train_number>
<train_number>51Б</train_number>
<train_number>772AA</train_number>
<train_number>51B</train_number>

<train_number>51Й</train_number><train_number>51й</train_number>

[0027] По каждому поезду запрашивается его путь следования, методом получения информации о маршруте движения поезда.[0027] For each train, its route is requested, a method for obtaining information about the route of the train.

[0028] В параметрах запроса указывается номер поезда: <train_number>772А</train_number>[0028] The request parameters indicate the train number: <train_number>772A</train_number>

[0029] В ответе получаем весь маршрут со всеми остановками
[0029] In the response we get the entire route with all stops

<route>МОСКВА ОКТ</route><route>MOSCOW OCT</route>

<route>С-ПЕТЕР-ГЛ</route><route>S-PETER-GL</route>

<stop><stop>

<station>МОСКВА</station><station>MOSCOW</station>

<code>2000000</code><code>2000000</code>

<dep_time>19:30</dep_time><dep_time>19:30</dep_time>

<days>00</days><days>00</days>

</stop></stop>

<stop><stop>

<station>МОСКВА ОКТ</station><station>MOSCOW OCT</station>

<code>2006004</code><code>2006004</code>

<dep_time>19:30</dep_time><dep_time>19:30</dep_time>

<days>00</days><days>00</days>

</stop></stop>

[0030] Где:[0030] Where:

station - станция остановки;station - stopping station;

code - код станции;code - station code;

dep_time - время отправления;dep_time - departure time;

days - день, если поезд едет более одного дня.days - day if the train travels for more than one day.

[0031] Эта данные сохраняются в реляционную БД в таблицу со схемой (Фиг. 2).[0031] This data is stored in a relational database in a table with a schema (Fig. 2).

create table segments_providercreate table segments_provider

[0032] Обновление происходит раз в сутки, но также доступен ручной запуск обновления на случай ошибки или непредвиденных обстоятельств. Данные из ответа сохраняются в реляционной БД, для быстрого доступа и быстрой выборки (Фиг. 2). Для удобства поиска данных в конкретном примере реализации была выбрана реляционная БД. Альтернативой могут выступать колоночные БД, но в колоночных БД обновление/удаление элементов является дорогой операцией. В документно-ориентированных БД, поиск передвижения будет узким местом.[0032] The update occurs once a day, but a manual update is also available in case of an error or unforeseen circumstances. Data from the response is stored in a relational database for quick access and quick retrieval (Fig. 2). For ease of data retrieval, a relational database was chosen in a specific implementation example. Columnar databases can be an alternative, but in columnar databases updating/deleting elements is an expensive operation. In document-oriented databases, movement search will be a bottleneck.

[0033] Выбор точки отправления и точки прибытия раскрывается более подробно ниже.[0033] The selection of the departure point and arrival point is discussed in more detail below.

[0034] Для ввода параметров для поиска есть веб-интерфейс, с двумя текстовыми полями и двумя полями для ввода даты. Для ввода параметров так же доступна карта. Модуль карты может быть любой, например Яндекс.Карты, OpenStreetMaps. Яндекс карты подключаются следующим скриптом[0034] There is a web interface for entering search parameters, with two text fields and two date fields. A map is also available for entering parameters. The map module can be anything, for example Yandex.Maps, OpenStreetMaps. Yandex maps are connected using the following script

<head><head>

<script src="https://api-maps.yandex.ru/2.1/?apikey=ваш API-ключ&lang=ru_RU" <script src="https://api-maps.yandex.ru/2.1/?apikey=your API key&lang=ru_RU"

type="text/javascript"> type="text/javascript">

</script>
</head>
</script>
</head>

<meta name="viewport" content="initial-scale=1.0, user-scalable=no, maximum-scale=1" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no, maximum-scale=1" />

[0035] В интерфейсе находится карта, с помощью которой возможно задать координаты. Есть 2 текстовых поля, 2 кнопки, 2 поля для ввода даты, поле для выбора сотрудника и кнопка поиска (Фиг. 3).[0035] The interface contains a map with which you can set coordinates. There are 2 text fields, 2 buttons, 2 fields for entering a date, a field for selecting an employee and a search button (Fig. 3).

[0036] Пользователь может вводить данные в поле ввода в формате <Страна> <Город> <Улица> <Дом>. По введенным символам система предлагает подходящие варианты поиска. Справочники для регионов и улиц хранятся в БД и индексируется СУБД ElasticSearch. Может использоваться любая другая СУБД, поддерживающая n-gram токенизацию. N-gram представляет из себя последовательность слов, букв, слогов. Для нечеткого поиска достаточно разделить словарь стран, городов, улиц на триграммы, т.е. по три символа. На основе этих триграмм можно определить какие из них встречаются часто. Например, триграмма «Мос» встречается часто, а «Мсо» нет, вероятней всего имели в виду «Мос». Такой подход позволяет искать записи в словаре даже если в слове есть ошибка/опечатка. БД заполняется странами, регионами (города, населенные пункты, села, деревни и т.п.), улицами и номерами домов. По России эти данные берутся из федеральной информационной адресной системы ФИАС, для остальных стран используется OpenStreetMap. Оба источника свободны для скачивания и использования. Обязательное условие, что поиск должен происходить в нижнем регистре. N-gram токенизация поддерживает ошибки в словах, если пользователь ошибется в написании одного из регионов, система сможет предложить правильный вариант.[0036] The user can enter data into the input field in the format <Country> <City> <Street> <House>. Based on the entered characters, the system offers suitable search options. Directories for regions and streets are stored in the database and indexed by the ElasticSearch DBMS. Any other DBMS that supports n-gram tokenization can be used. N-gram is a sequence of words, letters, syllables. For fuzzy search, it is enough to divide the dictionary of countries, cities, streets into trigrams, i.e. three characters each. Based on these trigrams, you can determine which of them occur frequently. For example, the trigram “Mos” is found often, but “Mso” is not, most likely they meant “Mos”. This approach allows you to search for entries in the dictionary even if there is an error/typo in the word. The database is filled with countries, regions (cities, towns, villages, villages, etc.), streets and house numbers. For Russia, this data is taken from the FIAS federal information address system; for other countries, OpenStreetMap is used. Both sources are free to download and use. A prerequisite is that the search must be in lower case. N-gram tokenization supports errors in words; if the user misspelt one of the regions, the system will be able to offer the correct option.

[0037] Система предлагает два способа ввода параметров поиска. Первый - ввод точного адреса (описан выше). Второй - задать координаты на карте, используя веб-интерфейс. В качестве карт может выступать любой сервис, предоставляющий такую возможность: Яндекс.Карты, OpenStreetMap, Google Maps и т.п.[0037] The system offers two ways to enter search parameters. The first is to enter the exact address (described above). The second is to set coordinates on the map using the web interface. Any service that provides such an opportunity can act as maps: Yandex.Maps, OpenStreetMap, Google Maps, etc.

[0038] Составление графа передвижения осуществляется следующим образом.[0038] The movement graph is compiled as follows.

[0039] На основе пункта отправления, пункта прибытия и расписания поставщиков составляется граф передвижения. Если пользователь указал координаты, то система находит ближайший населенный пункт с ЖД вокзалом или аэропортом. Для определения ближайшего населенного пункта используется СУБД PostgreSQL с расширением postgis. У этого расширения есть оператор «<->» который находит ближайшие точки:[0039] Based on the point of departure, the point of arrival and the schedule of the suppliers, a movement graph is drawn up. If the user has specified coordinates, the system finds the nearest settlement with a railway station or airport. To determine the nearest settlement, the PostgreSQL DBMS with the postgis extension is used. This extension has an operator "<->" that finds the nearest points:

[0040] Для составления конечного маршрута передвижения используется алгоритм RAPTOR. Для этого алгоритма загружаются параметры построения маршрута.[0040] The RAPTOR algorithm is used to create the final travel route. For this algorithm, route construction parameters are loaded.

[0041] Алгоритм работает с параметрами (П, S, T, R, F).
П - Время в пути. Этот параметр нужен для контроля времени в пути, чтобы поездки укладывались в разумные сроки. Также этот параметр можно изменять для уменьшения времени путешествия.
[0041] The algorithm works with parameters (P, S, T, R, F).
P - Travel time. This parameter is needed to control travel time so that trips fit within a reasonable time frame. This parameter can also be changed to reduce travel time.

[0042] S - Множество остановок. Набор точек пересадок. В нашем случае это будут все точки из общей выдачи. Другими словами, это все ЖД-станции и все аэропорты.[0042] S - Many stops. Set of transfer points. In our case, these will be all points from the general output. In other words, these are all railway stations and all airports.

[0043] T - Множество поездок. Поездка - это одно предложение от поставщика. Либо определенный поезд, либо отдельный авиаперелет.[0043] T - Lots of trips. The trip is one offer from the supplier. Either a specific train or a separate flight.

[0044] R - Выбор маршрутов. В одной поездке может быть несколько маршрутов. Например, одна поездка Пенза - Санкт-Петербург, но 2 маршрута Пенза - Москва и Москва - Санкт-Петербург. Другими словами, поездка может быть с пересадкой[0044] R - Select routes. One trip can have several routes. For example, one trip Penza - St. Petersburg, but 2 routes Penza - Moscow and Moscow - St. Petersburg. In other words, the trip may have a transfer

[0045] F - Набор пересадок. В этом параметре задается множество пересадок, которые возможно сделать. Например, при пересадке в Москве, можно добраться из Аэропорта на ЖД вокзал и продолжить путешествие. Параметр F будет содержать в себе эту информацию. Другими словами, все возможные перемещения между ЖД-вокзалами и Аэропортами.[0045] F - Set of transfers. This parameter specifies the number of transfers that can be made. For example, if you have a transfer in Moscow, you can get from the Airport to the railway station and continue your journey. Parameter F will contain this information. In other words, all possible movements between railway stations and airports.

[0046] Параметр S. Заполняется всеми аэропортами и жд-вокзалами.[0046] Parameter S. Filled in with all airports and train stations.

[0047] Параметр T. Из БД с расписанием строятся возможные поездки, т.е. это набор передвижений точка-точка без пересадки. У ЖД это станции по одному маршруту, у самолетов это города прямого авиасообщения и с пересадкой.[0047] Parameter T. Possible trips are built from the schedule database, i.e. This is a set of point-to-point movements without transfers. For railways these are stations on one route, for airplanes these are cities with direct flights and with transfers.

[0048] Параметр R. Маршруты. Поезда ходят по маршрутам, весь маршрут запишется в параметр R. У самолетов, маршрутом будет являться перелет, т.е. маршрут из 2х точек. Так же в этот пункт попадает аэроэкспресс, как маршрут, состоящий из 2х точек.[0048] Parameter R. Routes. Trains run along routes, the entire route will be recorded in parameter R. For airplanes, the route will be the flight, i.e. route from 2 points. The Aeroexpress also arrives at this point as a route consisting of 2 points.

[0049] Параметр F. Набор точек для «пешего пути». В этот пункт попадают такси. Из исторических данных рассчитывается худшее время в пути, так же прибавляется один час, на возможность сойти с самолета или поезда, и на вызов такси.[0049] Parameter F. A set of points for the “walking path”. Taxis arrive at this point. The worst travel time is calculated from historical data, and one hour is also added for the opportunity to get off the plane or train, and for calling a taxi.

[0050] Алгоритм находит кратчайший путь, состоящий из набора маршрутов (Фиг. 4).[0050] The algorithm finds the shortest path consisting of a set of routes (Fig. 4).

[0051] На первом этапе выбирается коэффициент K - количество сегментов. Так как в данном алгоритме используются авиаперелеты и железнодорожные поезда, то будет разумным подобрать коэффициент K с небольшим значением. Большое количество пересадок сильно увеличит время поездки и в таких поездках не будет смысла. В конкретном примере реализации коэффициент алгоритма K=3. По статистике авиаперелет с двумя пересадки выбирают достаточно редко, проще выбрать либо другой транспорт без пересадок, либо рассмотреть другие варианты передвижения.[0051] At the first stage, the coefficient K is selected - the number of segments. Since this algorithm uses air travel and railway trains, it would be reasonable to select a coefficient K with a small value. A large number of transfers will greatly increase the travel time and there will be no point in such trips. In a specific implementation example, the coefficient of the algorithm is K=3. According to statistics, air travel with two transfers is chosen quite rarely; it is easier to choose either another transport without transfers, or consider other travel options.

[0052] Алгоритм Raptor делает количество итераций, равное количеству пересадок. В каждой итерации выбираются все маршруты, проходящие через эту точку. В нашем случае это будет либо авиаперелет, либо жд-маршрут. На этом этапе проверяется возможно ли успеть на новый рейс. На первой итерации это не пригодится, в дальнейшем от времени прибытия будет зависеть подходит маршрут или нет. Подходящие маршруты сохраняются в список маршрутов для следующих преобразований.[0052] The Raptor algorithm makes a number of iterations equal to the number of transfers. In each iteration, all routes passing through this point are selected. In our case, it will be either an air flight or a train route. At this stage, it is checked whether it is possible to catch the new flight. At the first iteration this will not be useful; in the future, the time of arrival will determine whether the route is suitable or not. Matching routes are saved in the route list for future conversions.

[0053] На следующем этапе отмечаются все точки маршрута не раньше, чем время прибытия текущего маршрута. Таким образом мы имеем список маршрутов и остановок, подходящих для перемещения. Следующей итерацией фильтруются маршруты и остановки исходя из найденных маршрутов и остановок на прошлой итерации. После K-итераций останутся маршруты, подходящие для передвижения.[0053] In the next step, all route points are marked no earlier than the arrival time of the current route. Thus, we have a list of routes and stops suitable for travel. The next iteration filters routes and stops based on the routes and stops found at the previous iteration. After K-iterations, routes suitable for movement will remain.

[0054] Сканирование маршрутов от остановки ps до pt раскрывается ниже.[0054] Route scanning from stop ps to pt is disclosed below.

[0055] На первой итерации сканируется маршрут r1, на второй r2 и r3, на третьей r4.[0055] At the first iteration, route r1 is scanned, at the second, r2 and r3, at the third, r4.

[0056] На каждой итерации составляется набор поездок, состоящих из маршрутов и пересадок.[0056] At each iteration, a set of trips consisting of routes and transfers is compiled.

[0057] Алгоритм RAPTOR на выходе даст набор поездок. Далее исключаем из набора поездки, не содержащие начальный и конечный пункт ps и pt. Таким образом останутся только те поездки, которые гарантированно доставят из пункта ps в пункт pt.[0057] The RAPTOR algorithm outputs a set of trips. Next, we exclude from the set trips that do not contain the starting and ending points ps and pt. This way, only those trips will remain that are guaranteed to deliver from point ps to point pt.

[0058] Зная время отправления и прибытия на каждой пересадке, система считает суммарное время поездки и выбирает наименьшее время в пути, т.е. самый быстрый маршрут.[0058] Knowing the time of departure and arrival at each transfer, the system calculates the total travel time and selects the shortest travel time, i.e. the fastest route.

[0059] Затем системе необходимо сделать запрос к поставщикам. Критерии поиска подбираются индивидуально. В окне интерфейса есть поле для выбора путешественника. На основе его прошлых поездок подбираются критерии поиска.[0059] The system then needs to make a request to the suppliers. Search criteria are selected individually. In the interface window there is a field for selecting a traveler. Search criteria are selected based on his past trips.

[0061] Для обучения искусственной нейронной сети используются исторические данные всех пользователей. Поездки за все время группируются по пользователю. Т.е. у каждого пользователя будет свой набор поездок.[0061] The historical data of all users is used to train the artificial neural network. Trips for all time are grouped by user. Those. Each user will have their own set of trips.

[0061] Для предсказания будущей поездки может использоваться нейронная сеть RNN (рекуррентная нейронная сеть) класса LSTM (долгая краткосрочная память). Рекуррентная нейронная сеть позволяет предсказывать следующий элемент на основе набора элементов. В данном случае будет находиться вариант поездки на основе прошлых поездок.[0061] An LSTM (Long Short Term Memory) class RNN (Recurrent Neural Network) neural network can be used to predict a future trip. A recurrent neural network allows you to predict the next item based on a set of items. In this case, there will be a trip option based on past trips.

[0062] Сгруппированные поездки разделяются на блоки по 5 + 1 поездок. Минимум с пяти поездок возможно предсказать следующую поездку.[0062] Grouped trips are divided into blocks of 5 + 1 trips. After at least five trips it is possible to predict the next trip.

[0063] Для обучения необходимо подготовить данные.[0063] For training, data must be prepared.

[0064] Векторное представление строки формируется как:[0064] The vector representation of a string is generated as:

def vectorize(self, text)def vectorize(self, text)

[0065] Для каждого символа задается свое числовое представление, которое является кодом utf-8, которое возвращается в виде вектора (массива). Для подготовки чистых входных данных используется метод Vectorizer.word_tokenize из библиотеки keras.[0065] Each character is given its own numeric representation, which is a UTF-8 code, which is returned as a vector (array). To prepare clean input data, the Vectorizer.word_tokenize method from the keras library is used.

[0066] Подготовленными данными обучается модель машинного обучения на основе LSTM нейросетей, где входными данными будет список векторов с параметрами, а выходным значением будет следующая поездка.[0066] The prepared data is used to train a machine learning model based on LSTM neural networks, where the input data is a list of vectors with parameters, and the output value is the next trip.

[0067] В нейросети будет использоваться 2 слоя: LSTM и Dense.[0067] The neural network will use 2 layers: LSTM and Dense.

[0068] LSTM слой отвечает за обучение и предсказание с функцией активации relu. Relu-функция возвращает 0, если принимает отрицательный аргумент, в случае же положительного аргумента, функция возвращает само число. Функция активации будет возвращать значение параметра, а не его вероятность.[0068] The LSTM layer is responsible for training and prediction with the relu activation function. The Relu function returns 0 if it takes a negative argument, but if it takes a positive argument, the function returns the number itself. The activation function will return the value of the parameter, not its probability.

[0069] Dense - скрытый слой, который нужен для вычисления конечного результата.[0069] Dense is a hidden layer that is needed to calculate the final result.

[0070] Сгруппированные по пользователю поездки представлены в виде массива. Для обучения нейронной сети, проходим по всему списку поездок, берем 5 поездок для прошлых поездок и 6-ю поездку для выходного значения. Сдвигаемся на одну поездку, и снова берем 5 поездок.[0070] Trips grouped by user are presented as an array. To train the neural network, we go through the entire list of trips, taking 5 trips for past trips and the 6th trip for the output value. We shift by one trip, and again take 5 trips.

[0071] Входные данные:[0071] Input data:

a. Количество пересадок - 0, 1, 2;a. Number of transfers - 0, 1, 2;

b. Код тарифа - число;b. Tariff code - number;

Код авиакомпании - векторное представление строки;The airline code is a vector representation of the string;

c. Наличие багажа - 0, 1;c. Availability of luggage - 0, 1;

Код аэропорта отправления - векторное представление строки;The departure airport code is a vector representation of the string;

d. Код аэропорта прибытия - векторное представление строки;d. Arrival airport code is a vector string representation;

e. Время в пути в секундах - число;e. Travel time in seconds - number;

f. Время вылета в секундах;f. Departure time in seconds;

g. Авиакомпания - векторное представление строки.g. Airline - vector line representation.

[0072] Выходные данные:[0072] Output data:

[количество пересадок, код тарифа, время вылета в секундах, время в пути в секундах, авиакомпания][number of transfers, fare code, departure time in seconds, travel time in seconds, airline]

[0073] Из выходной модели исключены аэропорты вылета и прилета, т.к. нам уже известны эти данные.[0073] Departure and arrival airports are excluded from the output model, because we already know this data.

[0074] Подготовленными данными нейронная сеть обучается. Готовая модель сохраняется для дальнейшего использования на сервере. Определение подходящих вариантов перелетов раскрывается ниже.[0074] The neural network is trained with the prepared data. The finished model is saved for further use on the server. The definition of suitable flight options is disclosed below.

[0075] Для работы алгоритма у пользователя должно быть не менее пяти поездок. Сначала делается поиск у поставщиков на данное направление и дату. Затем по 5ти последним поездкам пользователя модель нейронной сети предсказывает следующий маршрут, причем этот маршрут считается “эталонным” для этого пользователя.[0075] For the algorithm to work, the user must have at least five trips. First, a search is made for suppliers for a given direction and date. Then, based on the user’s last 5 trips, the neural network model predicts the next route, and this route is considered the “reference” route for this user.

[0076] Найденные маршруты один за другим сравниваются с эталонным маршрутом методом косинусной близости. С помощью него можно достаточно точно определить, насколько похож вариант из выдачи на эталонный маршрут.[0076] The found routes are compared one by one with the reference route using the cosine proximity method. Using it, you can quite accurately determine how similar the option from the search results is to the reference route.

[0077] Пример кода на python для нахождения косинусного расстояния[0077] Example python code for finding cosine distance

from numpy import dotfrom numpy import dot

from numpy. linalg import normfrom numpy. linalg import norm

cos_sim = dot (a, b)/( norm (a)\* norm (b))cos_sim = dot (a, b)/( norm (a)\* norm (b))

[0078] Выбирается, например, пять самых близких поездок, для возможности выбора, на случай если нейронная сеть ошиблась или у пользователя изменились планы и предпочтения.[0078] For example, the five closest trips are selected to provide a choice in case the neural network makes a mistake or the user's plans and preferences change.

[0079] Для ЖД-билетов алгоритм отличается только входной и выходной моделями.[0079] For railway tickets, the algorithm differs only in the input and output models.

[0080] Входная модель выглядит так:[0080] The input model looks like this:

○ Тип вагона - число с кодом типа вагона○ Car type - a number with a car type code

○ Код перевозчика - векторное представление строки○ Carrier code - vector representation of the string

Время отправленияDeparture time

○ Номер поезда - число с кодом номера поезда○ Train number - a number with the train number code

○ Время в пути в секундах - число○ Travel time in seconds - number

○ Вокзал отправления - векторное представление строки○ Departure station - vector representation of a line

○ Вокзал прибытия - векторное представление строки○ Arrival station - vector representation of line

○ Время вылета в секундах○ Departure time in seconds

○ Авиакомпания - векторное представление строки.○ Airline - vector representation of a string.

[0081] Выходная модель:[0081] Output model:

[0082] [Тип вагона, код перевозчика, время отправления, номер поезда, время в пути в секундах][0082] [Car type, carrier code, departure time, train number, travel time in seconds]

[0083] Из выходной модели исключены вокзал отправления и вокзал прибытия.
Текстовые данные аналогично текстовым данным в авиабилетах, представляются в виде векторов чисел с помощью функции word_tokenize.
[0083] The departure station and arrival station are excluded from the output model.
Text data, similar to the text data in airline tickets, is represented as vectors of numbers using the word_tokenize function.

[0084] С доверительной вероятностью 95% можно утверждать, что максимальное число бронирований для полной идентификации будет равно 5, то есть уже с 6-го бронирования для каждого пользователя можно достаточно точно предугадывать подходящие варианты передвижения.[0084] With a confidence probability of 95%, it can be stated that the maximum number of reservations for complete identification will be 5, that is, already from the 6th reservation for each user, suitable travel options can be predicted quite accurately.

[0085] Имея кратчайший путь и параметры для поиска, система делает запросы ко всем поставщикам с заданными параметрами.[0085] Given the shortest path and search parameters, the system makes queries to all suppliers with the given parameters.

[0086] Формат запросов к поставщику зависит от поставщика. В общем случае может быть REST, SOAP или в бинарном формате со своей структурой сообщения работающая поверх протокола TCP.[0086] The format of vendor requests varies by vendor. In general, it can be REST, SOAP, or in a binary format with its own message structure running on top of the TCP protocol.

[0087] Следующие параметры в запросы являются обязательными:[0087] The following parameters in requests are required:

Departure - аэропорт отправления;Departure - departure airport;

Arrival - аэропорт прибытия;Arrival - arrival airport;

Date - дата отправления;Date - departure date;

Class - класс перелета;Class - flight class;

TravellerCount - количество человек.TravelerCount - number of people.

[0088] Возможны дополнительные параметры, например авиакомпания или тип перевозчика. В конкретном примере реализации они не пригодятся.[0088] Additional parameters are possible, such as airline or carrier type. They will not be useful in a specific implementation example.

[0089] В формате поставщика формируется запрос и отправляется поставщику. В ответ возвращаются варианты перелета.[0089] A request is generated in supplier format and sent to the supplier. In response, flight options are returned.

[0090] Т.к. поставщики имеют разные форматы в своих API, то форматы будут разные. У всех поставщиков можно выделить обязательные данные в ответе, необходимые для бронирования.[0090] Because Providers have different formats in their APIs, then the formats will be different. For all suppliers, you can select mandatory data in the response required for booking.

○ DepartureDate - дата и время вылета○ DepartureDate - date and time of departure

○ ArrivalDate - дата и время вылета AirlineCompany - авиакомпания Duration - время в пути Fare - тариф Price - цена○ ArrivalDate - date and time of departure AirlineCompany - airline Duration - travel time Fare - fare Price - price

[0091] Для ЖД-билетов запросы отправляются схожим образом с АБ. Формат запроса зависит от поставщика. В общем виде, к поставщику отправляются[0091] For train tickets, requests are sent in a similar way to AB. The request format varies by provider. In general, they are sent to the supplier

from - станция отправленияfrom - departure station

to - станция прибытияto - arrival station

date - дата отправленияdate - departure date

[0092] В ответ возвращается доступные билеты на указанную дату.[0092] The response returns available tickets for the specified date.

number - номер поездаnumber - train number

type - тип перевозчикаtype - carrier type

departure_date - дата отправленияdeparture_date - departure date

departure_time - время отправленияdeparture_time - departure time

arrival_date - дата прибытияarrival_date - arrival date

arrival_time - время прибытияarrival_time - arrival time

travel_time - время в путиtravel_time - travel time

eregistration - флаг электронной регистрацииeregistration - electronic registration flag

Так же приходят свободные места в поезде:
type - тип места (плацкартный, купэ)
There are also free seats on the train:
type - type of seat (reserved seat, compartment)

free_seats - количество свободных местfree_seats - number of free seats

class_service - класс вагонаclass_service - car class

tariff - стоимостьtariff - cost

[0093] Этих данных достаточно для дальнейшего составления маршрута.[0093] This data is sufficient for further preparation of the route.

[0094] Класс перелета и авиакомпанию указывает на этапе поиска. Одинаковые результаты поиска агрегирует по цене, оставляя самый дешевый вариант.[0094] The flight class and airline are specified at the search stage. The same search results are aggregated by price, leaving the cheapest option.

[0095] Система подбирает два варианта маршрутов: самый подходящий и самый дешевый.[0095] The system selects two route options: the most suitable and the cheapest.

[0096] Алгоритмом быстрой сортировки результаты поиска сортируются по цене и выбираются самые дешевые варианты. Из этих результатов составляется «самый дешевый» вариант.[0096] The quick sort algorithm sorts search results by price and selects the cheapest options. From these results, the “cheapest” option is compiled.

[0097] Для «самого подходящего», система оставляет только варианты, подходящие под критерии поиска, т.е. фильтрует по параметрам тип вагона, флаг пересадки, багаж, возможность возврата, авиакомпания. Проходит по всем результатам поиска и оставляет только варианты, подходящие по параметрам. Так же как в варианте с «самым дешевым» выбираются самые дешевые варианты.[0097] For “most suitable”, the system leaves only options that match the search criteria, i.e. filters by parameters: carriage type, transfer flag, baggage, return option, airline. It goes through all search results and leaves only options that match the parameters. Just like in the “cheapest” option, the cheapest options are selected.

[0098] Если пользователя устраивают условия передвижения, то этот маршрут можно положить в корзину и забронировать. Бронирование проходит в автоматическом режиме. Т.е. не нужно бронировать каждую услугу, на данном этапе хватает всех данных, чтобы выкупить все услуги из поездки.[0098] If the user is satisfied with the travel conditions, then this route can be added to the cart and booked. Booking takes place automatically. Those. you don’t need to book every service; at this stage, all the data is enough to buy all the services from the trip.

[0099] Система построена на сервисно-ориентированной архитектуре. Может работать как на виртуальных серверах, так и быть развернута в облачных хостингах. Доступ к системе осуществляется через веб-интерфейс по защищеному протоколу HTTPS. Внутри системы сервисы обмениваются данными по протоколу gRPC.[0099] The system is built on a service-oriented architecture. It can work both on virtual servers and be deployed in cloud hosting. Access to the system is via a web interface using the secure HTTPS protocol. Within the system, services exchange data using the gRPC protocol.

[00100] Параметры для поиска приходят в сервис поиска d2d-service.[00100] Search parameters are sent to the d2d-service search service.

[00101] D2d-service - это сервис, находящийся на серверах и входящий в состав системы. Он отвечает за поиск в целом и за обмен информацией с клиентской частью системы.[00101] D2d-service is a service located on servers and part of the system. He is responsible for the search as a whole and for exchanging information with the client part of the system.

[00102] От клиента, веб-интерфейса, приходит запрос по протоколу HTTPS в JSON формате.[00102] A request is received from the client, the web interface, via the HTTPS protocol in JSON format.

гдеWhere

DepartureId - id-точки отправленияDepartureId - id point of departure

ArrivalId - id-точки прибытияArrivalId - arrival point id

TravellerId - путешественникTravelerId - traveler

DepartureLoc - объект с координатами точки отправленияDepartureLoc - an object with the coordinates of the departure point

ArriavalLoc - объект с координатами точки прибытияArriavalLoc - an object with the coordinates of the arrival point

Date - дата отправленияDate - departure date

[00103] Запрос приходит в d2d-service. Затем d2d-service проверяет, стоит DepartureId и ArrivalId, если эти параметры установлены, из справочника получаются координаты пунктов отправления и прибытия. Справочник находится в реляционной БД. Данные забираются SQL-запросом.[00103] The request comes to d2d-service. Then the d2d-service checks whether the DepartureId and ArrivalId are set; if these parameters are set, the coordinates of the departure and arrival points are obtained from the directory. The directory is located in a relational database. The data is retrieved by an SQL query.

SELECT * FROM AirlineDictionary WHERE id = <DepartureId>SELECT * FROM AirlineDictionary WHERE id = <DepartureId>

[00104] Иначе координаты берутся из DepartureLoc и ArrivalLoc. Если не установлены DepartureLoc и ArrivalLoc, запрос считается невалидным и возвращается ошибка. TravellerId необходим для подбора рекомендаций. Подготовленные данные передаются в сервис route-engine.[00104] Otherwise, the coordinates are taken from DepartureLoc and ArrivalLoc. If DepartureLoc and ArrivalLoc are not set, the request is considered invalid and an error is returned. TravelerId is required to select recommendations. The prepared data is transferred to the route-engine service.

[00105] Затем управление передается в route-engine, который забирает из БД расписание на выбранные даты и строит маршрут по алгоритму RAPTOR. Сервисная архитектура позволяет заменять алгоритм на другой подходящий. Построенные маршруты передаются в сервис recommendation-service, который на основе нейронных сетей подбирает подходящие варианты на основе обученной модели. Подготовленные маршруты передаются в search-service, который запрашивает информацию о свободных местах и ценах у поставщиков. Финальная выдача формируется в сервисе aggregation-service и отправляется в сервис d2d-service. (Фиг. 5). Маршруты и доступные варианты передвижения от поставщиков, как показано на Фиг. 6, передаются в recommendation-service, где все варианты проверяются на соответствие “портрету” пользователю. Рассчитывается косинусное расстояние, описанное выше, причем всех вариантов, и сравнивается с предсказанным моделью, вариантом передвижения наилучшие варианты сохраняются в выходную модель.[00105] Then control is transferred to the route-engine, which takes the schedule for the selected dates from the database and builds a route using the RAPTOR algorithm. The service architecture allows you to replace the algorithm with another suitable one. The constructed routes are transferred to the recommendation-service, which, based on neural networks, selects suitable options based on the trained model. Prepared routes are sent to the search-service, which requests information about available places and prices from suppliers. The final output is generated in the aggregation-service and sent to the d2d-service. (Fig. 5). Routes and available travel options from providers as shown in FIG. 6 are passed to the recommendation-service, where all options are checked for compliance with the “portrait” of the user. The cosine distance described above is calculated, including all options, and compared with the model predicted; the best options are saved in the output model.

Claims (9)

Способ формирования маршрута передвижения от двери до двери, выполняемый по меньшей мере одним вычислительным устройством и включающий следующие шаги:A method for generating a door-to-door travel route, performed by at least one computing device and including the following steps: получают от по меньшей мере одного устройства пользователя запрос по протоколу HTTPS в JSON формате в сервис поиска d2d-service, находящийся на по меньшей мере одном сервере, причем запрос включает точный адрес места назначения;receiving from at least one user device a request via the HTTPS protocol in JSON format to a d2d-service search service located on at least one server, wherein the request includes the exact address of the destination; осуществляют получение на сервере расписания от поставщиков;receive schedules from suppliers on the server; формируют по меньшей мере один маршрут посредством алгоритма RAPTOR на основании данных из запроса пользователя, полученного на предыдущем шаге, при этом система считает суммарное время поездки и выбирает самый быстрый маршрут;forming at least one route using the RAPTOR algorithm based on data from the user request received in the previous step, while the system calculates the total travel time and selects the fastest route; запрашивают информацию о свободных местах и ценах у поставщиков на основании подготовленных маршрутов;request information about available seats and prices from suppliers based on prepared routes; получают параметры поиска посредством использования рекуррентных искусственных нейронных сетей, которые позволяют предсказывать следующий элемент на основе прошлых поездок пользователя, при этом для работы алгоритма у пользователя должно быть не менее пяти поездок на данное направление, по которым модель нейронной сети предсказывает следующий эталонный маршрут для пользователя;obtain search parameters through the use of recurrent artificial neural networks, which make it possible to predict the next element based on the user’s past trips, while for the algorithm to work, the user must have at least five trips to a given direction, according to which the neural network model predicts the next reference route for the user; сравнивают один за другим найденные маршруты с эталонным маршрутом методом косинусной близости для точного определения, насколько похож вариант из выдачи на эталонный маршрут;compare the found routes one by one with the reference route using the cosine proximity method to accurately determine how similar the option from the search results is to the reference route; формируют по меньшей мере один маршрут передвижения пользования посредством фильтрации полученных на предыдущем шаге маршрутов передвижения, причемat least one travel route for use is formed by filtering the travel routes obtained at the previous step, wherein если пользователя устраивают условия передвижения, то этот маршрут можно забронировать в автоматическом режиме.If the user is satisfied with the travel conditions, then this route can be booked automatically.
RU2023105503A 2023-03-10 Method and system for forming door-to-door travel route RU2807495C1 (en)

Publications (1)

Publication Number Publication Date
RU2807495C1 true RU2807495C1 (en) 2023-11-15

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2726288C2 (en) * 2015-04-29 2020-07-10 ФОРД ГЛОУБАЛ ТЕКНОЛОДЖИЗ, ЭлЭлСи Formation of joint trip route using context constraints
EA202090999A1 (en) * 2017-12-21 2020-08-05 Гжегож Малевич METHOD FOR BUILDING A ROUTE OR DURATION OF A ROUTE FOR A TRIP FROM THE STARTING POINT TO THE END POINT (VERSIONS)
US11131553B1 (en) * 2018-12-27 2021-09-28 United Services Automobile Association (Usaa) Driver feedback and rerouting in response to adverse driving conditions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2726288C2 (en) * 2015-04-29 2020-07-10 ФОРД ГЛОУБАЛ ТЕКНОЛОДЖИЗ, ЭлЭлСи Formation of joint trip route using context constraints
EA202090999A1 (en) * 2017-12-21 2020-08-05 Гжегож Малевич METHOD FOR BUILDING A ROUTE OR DURATION OF A ROUTE FOR A TRIP FROM THE STARTING POINT TO THE END POINT (VERSIONS)
US11131553B1 (en) * 2018-12-27 2021-09-28 United Services Automobile Association (Usaa) Driver feedback and rerouting in response to adverse driving conditions

Similar Documents

Publication Publication Date Title
Gavalas et al. The eCOMPASS multimodal tourist tour planner
US6834229B2 (en) Integrated journey planner
US7957871B1 (en) Methods and apparatuses for navigation in urban environments
JP5666613B2 (en) Transit route determination system for public transportation trip planning
US20160203422A1 (en) Method and electronic travel route building system, based on an intermodal electronic platform
US20090119001A1 (en) Method and system for finding multimodal transit route directions based on user preferred transport modes
RU2629438C2 (en) Method and system for navigation of the transport park, dispatcherization and payment of the route for a lot of vehicles and a lot of places of appointment
KR101974109B1 (en) A method and a computer system for providing a route or a route duration for a journey from a source location to a target location
EP3046058A1 (en) Method and electronic travel route building system, based on an intermodal electronic platform
US20080046298A1 (en) System and Method For Travel Planning
US20140149157A1 (en) Travel planning
US20140351037A1 (en) Travel planning
US20140222950A1 (en) Predictive Mobile Map Download
Smirnov et al. Intelligent mobile tourist guide: Context-based approach and implementation
Czioska et al. Real-world meeting points for shared demand-responsive transportation systems
CN102073696A (en) Auxiliary system and method for travel journey plan
CN106104615A (en) For providing method and the server of one group of price evaluation value, such as air fare price evaluation value
US20210110490A1 (en) Dynamic tourist travel planner service
RU2807495C1 (en) Method and system for forming door-to-door travel route
JP4851402B2 (en) Information distribution system, information distribution server, portable terminal device, and information distribution method
KR102118172B1 (en) Smart tour information providing system using public transportation and method thereof
Zenker et al. ROSE–AN INTELLIGENT MOBILE ASSISTANT-Discovering Preferred Events and Finding Comfortable Transportation Links
Dalkılıç et al. A gradual approach for multimodel journey planning: A case study in Izmir, Turkey
Jain et al. Public transport ontology for passenger information retrieval
Kokolius Platform for finding optimal trip plan