Method and system for prioritizing roads
By determining road priority based on the total number of vehicles and speed, and matching the rankings and priority rankings to determine road priority, the problem of resource-intensive and slow processing in the prior art is solved, and more efficient and flexible road priority determination is achieved.
Patent Information
- Application Number
- CN202311785159.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-22
- Publication Date
- 2025-06-24
AI Technical Summary
The prior art is resource-intensive, slow processing, and difficult to achieve in different regions without retraining the model.
The processor determines the position of the road based on the total number of vehicles traveling on the road and the speed of the vehicle, and determines the priority of the road based on whether the position and the priority match.
This method reduces resource usage and processing power, can be achieved in different regions without retraining, and has faster processing speeds.
Smart Images

Figure CN120199063A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally but not exclusively to methods and systems for determining the priority of roads. Background Art
[0002] Ride-hailing and delivery platforms often face challenges in determining the priority of roads. For example, two roads that may be classified as residential roads (e.g., the two roads are determined to have the same priority) may actually differ in various characteristics such as traffic capacity, accessibility, and physical surface.
[0003] Currently, traditional methods for determining the priority of roads are to use image recognition, where images of roads are used to analyze and determine the priority of roads. However, this method typically requires resource-intensive processes such as machine learning or artificial intelligence (AI) programs, not to mention the further resources required to obtain and process a large number of road images. For larger areas with more roads, the use of such resources will further increase.
[0004] In addition, traditional methods are slow because the labeling of sample data and training models for machine learning and artificial intelligence programs often takes a long time to complete. A single machine learning or AI model used to perform traditional methods is also unlikely to be applicable to different regions or districts because different models must be adjusted and trained based on conditions specific to each region or district.
[0005] Therefore, there is a need to provide methods and systems that seek to overcome or at least minimize the above challenges. Summary of the Invention
[0006] According to a first aspect of the present disclosure, there is provided a method for determining the priority of roads, including: determining, by a processor, a rank associated with a road relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of one or more vehicles on the road; and determining, by the processor, the priority of the road based on whether a rank associated with a priority relative to the one or more roads matches the rank associated with the road.
[0007] According to a second aspect of the present disclosure, there is provided a system for determining the priority of roads, including: at least one processor; and at least one memory including computer program code; the at least one memory and the computer program code are configured to cause the system, using the at least one processor, to at least: determine a rank associated with a road relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of one or more vehicles on the road; and determine the priority of the road based on whether a rank associated with a priority relative to one or more roads matches the rank associated with the road. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The embodiments and implementations are provided only by way of example and will be better understood and readily appreciated by those of ordinary skill in the art from the following written description read in conjunction with the accompanying drawings, wherein:
[0009] Figure 1 Illustrated is a system for determining the priority of roads according to various embodiments of the present disclosure.
[0010] Figure 2 Is a schematic diagram of a determination server according to various embodiments of the present disclosure.
[0011] Figure 3A Depicts an exemplary illustration of how to perform fuzzy classification of roads according to traditional methods.
[0012] Figure 3B Depicts an exemplary illustration of how route planning is affected by roads with fuzzy classification.
[0013] Figure 4A Depicts an exemplary illustration of a road network including roads with and without priority according to various embodiments of the present disclosure.
[0014] Figure 4B Depicts an exemplary illustration of a road usage distribution based on a Gaussian distribution according to various embodiments of the present disclosure.
[0015] Figure 4C Depicts an exemplary illustration of the relationship between road lengths and values of multiple roads in Ho Chi Minh City according to various embodiments of the present disclosure.
[0016] Figure 4D Depicts an exemplary illustration of python code for sorting roads by value and determining the priority of each road based on that value according to various embodiments of the present disclosure.
[0017] Figure 4E Depicts an exemplary illustration of a road network before and after determining the priority of each road in the road network according to various embodiments of the present disclosure.
[0018] Figure 5 Illustrated is an example flowchart for determining the priority of roads according to various embodiments.
[0019] Figure 6 Is a schematic block diagram of a general-purpose computer system on which the Figure 2 determination server can be practiced.
[0020] Figure 7is a schematic block diagram of a general-purpose computer system on which the Figure 1 combined transaction processing and determination server can be practiced.
[0021] Figure 8 shows an example of a computing device implementing the Figure 1 transaction processing server shown in.
[0022] Figure 9 shows an example of a computing device implementing the Figure 1 determination server shown in.
[0023] Figure 10 shows an example of a computing device implementing the Figure 1 combined transaction processing and determination server shown in.
[0024] Those skilled in the art will understand that the elements in the figures are shown for simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some elements in the illustration, block diagram, or flowchart may be exaggerated relative to other elements to help improve the understanding of the present embodiment. Detailed Embodiment
[0025] Term description
[0026] A platform refers to a set of technologies that are used as a basis to facilitate the exchange between two or more interdependent servers, entities, and / or devices, such as the exchange between a requester device (e.g., associated with a requester of a product or service) and a provider device (e.g., associated with a provider of a product or service). For example, the platform can provide services provided by the provider to the requester, such as ride-hailing, delivery, online shopping, insurance, and other similar services. The requester can typically use the requester device to access the platform via a website, application, or other similar means. The provider device can be associated with a provider who can provide the ride or delivery requested by the requester. For example, a request from the requester device can be a request for a driver to provide a ride, delivery service, or other services, such as cleaning, repair, plumbing, renovation, medical emergency, and other similar services. In the present disclosure, the requester device and the provider device can be referred to herein as user devices, where the user associated with the user device can be a requester or a provider.
[0027] A road refers to a section of surface built for an entity such as a person, vehicle, or other similar entity to travel along, for example, to reach a certain location. Each road in a region may have different characteristics from each other, such as width, length, total number of vehicles using each road, average speed of vehicles on each road, traffic capacity, accessibility, road surface, and other characteristics. The region can include one or more roads and can be collectively referred to as the road network of the region.
[0028] The position associated with one or more roads, e.g., in a road network, refers to how a road is ranked compared to one or more other roads. The position can be determined based on the total number of one or more vehicles traveling on the road (e.g., during a specified time period) and the speed of one or more vehicles on the road. In an implementation, the total number of vehicles traveling on the road can be obtained based on Global Positioning System (GPS) ping data. Such GPS ping data can be obtained directly from a GPS-capable vehicle that is considered to be traveling on the road during the specified time period, or from a provider device or requester device associated with the user driving the vehicle, or other similar methods for obtaining such GPS ping data. Additionally, the speed can be calculated by adding the speed of each of the one or more vehicles on the road (e.g., dividing the total length traveled by the vehicles on the road by the total amount of time required for the vehicles to traverse the total length) and dividing it by the total number of vehicles traveling on the road (e.g., during a specified time period). A value for each road in the road network can be calculated based on these statistics, and the position of each road can be obtained by positioning each road based on these values (e.g., in ascending or descending order). The value associated with a road can be a measure of road accessibility, and a higher value can be associated with a higher level of accessibility. In an implementation, the GPS ping of the road and the speed of one or more vehicles on the road can be obtained from a map application (such as OpenStreetMap (OSM), a map, or other similar applications).
[0029] The priority of a road is generally related to the level of accessibility of the road. During route planning, for example, for a driver going to a certain location, it is desirable to select a road with a higher priority to allow for a smoother and faster route to reach that location. Depending on the use case application, an appropriate number of priorities can be configured for the road network. For example, a large geographical area with a dense population and a large number of roads can be configured to have a larger number of priorities compared to a smaller geographical area with a lower population and fewer roads. The priority can be associated with the road length and thus with the percentage of the road length relative to the total road length in the road network, e.g., calculated by (road length) / (total road length)*100. Based on the percentage, a value range associated with each priority can be determined.
[0030] The rank associated with one or more priorities relative to a priority refers to the value range where the priority starts and ends compared to one or more priorities. If the value associated with a road falls within the value range of the priority, the road can be considered to have the priority. In an implementation, if the value associated with a road falls within the value range of the priority and the total length of the road is included in the road length associated with the priority, the road can be considered to have the priority. If the total road length exceeds the road length associated with the priority, the next lower priority can be assigned to the road. For example, assume that three roads with a length of 3 km each have values that fall within the value range associated with priority 1, and priority 1 is associated with a road length of 8. Then two of the three roads are included in the road length associated with priority 1 and are thus assigned priority 1. The remaining one road exceeds the road length associated with priority 1 and is thus assigned the next lower priority, for example, priority 2, assuming that priority 1 has a higher priority than priority 2. In an implementation, all three roads can be assigned priority 1 as long as their values are within the value range associated with priority 1.
[0031] In at least some embodiments, a user can be any suitable type of entity, which can include a person who issues a request (e.g., a request to a driver), a consumer who wishes to purchase a product or service via a transaction processing server, a seller or merchant who wishes to sell a product or service via a transaction processing server, a motorcycle driver or a passenger on the back seat in a case where the user wishes to book or offer a motorcycle ride via a transaction processing server, a car driver or a passenger in a case where the user wishes to book or offer a car ride via a transaction processing server, and other similar entities. A user registered to the transaction processing server will be referred to as a registered user. A user not registered to the transaction processing server will be referred to as an unregistered user. The term "user" will be used to collectively refer to registered users and unregistered users. A user can be interchangeably referred to as a requester (e.g., a person who requests a product or service) or a provider (e.g., a person who provides the requested product or service to the requester).
[0032] In at least some embodiments, a determination server is a server that hosts a software application for determining the priority of a road. The determination server can be implemented as shown in the schematic diagram 200 of Figure 2 for determining the priority of a road.
[0033] In at least some embodiments, the transaction processing server is a server that hosts a software application for processing payment transactions, such as service requests, deliveries, ride coordination requests, user purchases of goods or services, and other similar services. The transaction processing server communicates with any other server (e.g., a determination server) involved in processing payment transactions related to the purchase of goods or services, such as requests for services (which may be referred to as requests, e.g., requests for rides, deliveries, or other similar services, asking a provider to locate and arrive at a location indicated in the request). For example, data related to the request (e.g., information related to the location, date, time, and other similar data where a driver is needed) can be provided to the determination server, which can then process it to determine the driver for the request. The transaction processing server can use various different protocols and processes to handle payments and / or driver requests.
[0034] Transactions that can be performed by the transaction processing server include product or service purchases, credit purchases, debit transactions, fund transfers, account withdrawals, etc. The transaction processing server can be configured to process transactions through cash substitutes, which can include payment cards, letters of credit, checks, payment accounts, etc.
[0035] In at least some embodiments, the transaction processing server is typically managed by a service provider, which can be an entity (e.g., a company or organization) that operates to process transaction requests and / or driver requests, such as pairing a driver with a requester of a driver request. The transaction processing server can include one or more computing devices for processing transaction requests and / or driver requests.
[0036] In at least some embodiments, a transaction account is an account of a user registered with the transaction processing server. The user can be a customer, a merchant providing products for sale on the platform and / or for logging into the platform, a ride or delivery provider (e.g., a driver), or any third party (e.g., a courier) who wants to use the transaction processing server. In some cases, a transaction account is not required to use the transaction processing server. The transaction account includes details of the user (e.g., name, address, vehicle, facial image, etc.). The transaction processing server manages the transactions.
[0037] Embodiments will be described by way of example only with reference to the accompanying drawings. Like reference numerals and characters in the drawings refer to like elements or equivalents.
[0038] Certain portions of the description below are presented in terms of algorithms and symbolic representations of operations on data within a computer memory, either explicitly or implicitly. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing art to most effectively convey the substance of their work to others skilled in the art. An algorithm is here generally considered to be a self-consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulation of physical quantities, such as electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated.
[0039] Unless otherwise specifically stated, and as will be apparent from the following, it should be understood that throughout this specification, discussions using terms such as "identify", "detect", "recommend", "determine", "associate", "extract", "calculate", "process", "store", "indicate", "compare", "provide", "divide", etc. refer to the actions and processes of a computer system or similar electronic device that manipulates and transforms data represented as physical quantities within the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission, or display device.
[0040] In addition, this specification also implicitly discloses a computer program, and it will be apparent to those skilled in the art that the various steps of the methods described herein can be implemented by computer code. The computer program is not intended to be limited to any particular programming language and its implementation. It should be understood that various programming languages and their codings can be used to implement the teachings of the present disclosure contained herein. In addition, the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program that can use different control flows without departing from the scope of this specification.
[0041] In addition, one or more steps of the computer program can be executed in parallel rather than sequentially. Such a computer program can be stored on any computer-readable medium. The computer-readable medium can include storage devices such as magnetic disks or optical discs, memory chips, or other storage devices suitable for interfacing with a computer. The computer-readable medium can also include hardwired media, as exemplified in Internet systems, or wireless media, as exemplified in GSM mobile phone systems. When the computer program is loaded and executed on such a computer, it effectively produces an apparatus for implementing the steps of the preferred method.
[0042] In the present disclosure, a system for determining the priority of roads is proposed to address the problems of slow resource processing and low usage efficiency. For example, the rank associated with a road relative to one or more roads can be determined based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road. Then, the priority of the road can be determined based on whether the rank associated with the priority relative to one or more roads matches the rank associated with the road. Advantageously, compared with existing methods, this solution not only uses fewer resources and processing capabilities, but can also be easily implemented on a large scale and can be implemented in different regions without the need for retraining (as opposed to machine learning and / or AI models).
[0043] Figure 1 A block diagram of an example system 100 for determining the priority of roads is shown. In some embodiments, system 100 implements a payment transaction for goods or services between a requester (e.g., a user associated with the request) and a provider (e.g., a driver handling the request), and / or a request for, e.g., a ride or delivery of physical goods (e.g., one or more food items or packages). The rank associated with a road relative to one or more roads can be determined based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road, and the priority of the road can be determined based on whether the rank associated with the priority relative to one or more roads matches the rank associated with the road. By selecting one or more roads based on the priority associated with each road, a route for the provider to pick up and deliver physical goods from, e.g., the provider's original location (e.g., the location where the provider is located when accepting a ride or delivery request) to a starting location (e.g., the pick-up location indicated in the ride or delivery request) and from the starting location to a destination location (e.g., the drop-off location indicated in the ride or delivery request) can be determined.
[0044] System 100 includes a requester device 102, a provider device 104, an acquirer server 106, a transaction processing server 108, an issuer server 110, a determination server 140, and a database 150.
[0045] The requester device 102 communicates with the provider device 104 via the connection 112 and can be associated with a user. The connection 112 can be wireless (e.g., via NFC communication, Bluetooth, etc.) or through a network (e.g., the Internet). The requester device 102 also communicates with the determination server 140 via the connection 121, where the determination server 140 can be configured to receive information related to a request from the requester device 102 (e.g., a request for a service such as delivery or a ride, the information including location information related to the pick-up location of the service, the destination location of the service, the current location of the requester device 102, and other similar information). The location information related to the pick-up location, the destination location, and the current location of the requester device 102 can include identifiers, addresses, GPS information, latitude and longitude coordinates, geohash information, or other similar information respectively associated with the pick-up location, the destination location, and the current location. In an implementation, the determination server 140 can utilize the location information to determine a route from the current location to the pick-up location and transmit it to the requester device 102 and / or the provider device 104. The determination server 140 can also utilize the location information to determine a route from the pick-up location to the destination location and transmit it to the provider device 104 and / or the requester device 102. The determination server 140 can also be configured to receive GPS ping data from the requester device 102. In an implementation, the determination server 140 can be configured to utilize the GPS ping data to determine the total number of one or more vehicles traveling on a road and the speed of the one or more vehicles on the road. The requester device 102 can be configured to communicate with the provider device 104 (e.g., communication related to a request from the provider device 104). The connection 121 can be via a network (e.g., the Internet). The requester device 102 can also be connected to a cloud that facilitates the system 100 in determining the priority of a road. For example, the requester device 102 can directly send signals or data to the cloud via a wireless connection (e.g., via NFC communication, Bluetooth, etc.) or through a network (e.g., the Internet). It should be understood that there can be multiple requester devices 102 such that each requester device 102 is associated with a corresponding user.
[0046] As described above, the provider device 104 generally communicates with the requester device 102 via the transaction processing server 108 and may be associated with a provider of a service or delivery (e.g., a provider responding to a service request, e.g., a delivery or a ride to a location). The provider device 104 in turn communicates with the acquirer server 106 via the connection 114. The provider device 104 also communicates with the determination server 140 via the connection 123, where the determination server 140 may be configured to receive from the provider device 104 information related to the location of the provider device 104 (e.g., an identifier, an address, GPS information, latitude and longitude coordinates, geohash information, or other similar information associated with a location) and other similar information. The determination server 140 may utilize the location information to determine a route from the location of the provider device 104 to the pick-up location indicated in the request and transmit it to the provider device 104 and / or the requester device 102. The determination server 140 may also utilize the location information to determine a route from the pick-up location to the destination location indicated in the request and transmit it to the provider device 104 and / or the requester device 102. The determination server 140 may also be configured to receive GPS ping data from the provider device 104. In an implementation, the determination server 140 may be configured to utilize the GPS ping data to determine the total number of one or more vehicles traveling on a road and the speed of one or more vehicles on the road. When determining a driver for processing a request, the provider device 104 associated with the driver may be configured to communicate with the requester device 102 (e.g., communication related to the request of the requester device 102). The connections 114 and 123 may be via a network (e.g., the Internet). The provider device 104 may also be connected to a cloud that facilitates the system 100 in determining the priority of roads. For example, the provider device 104 may send signals or data directly to the cloud via a wireless connection (e.g., via NFC communication, Bluetooth, etc.) or through a network (e.g., the Internet). It should be understood that there may be multiple provider devices 104 such that each provider device 104 is associated with a corresponding user.
[0047] The acquirer server 106 in turn communicates with the transaction processing server 108 via the connection 116. The transaction processing server 108 in turn communicates with the issuer server 110 via the connection 118. The connections 116 and 118 may be via a network (e.g., the Internet).
[0048] The transaction processing server 108 further communicates with the determination server 140 via the connection 120. The connection 120 may be via a network (e.g., a local area network, a wide area network, the Internet, etc.). In one arrangement, the transaction processing server 108 and the determination server 140 are combined and the connection 120 may be an interconnected bus.
[0049] It is determined that the determination server 140 also communicates with the database 150 via the corresponding connection 122. The connection 122 can be through a network (e.g., the Internet). The determination server 140 can also be connected to a cloud that facilitates the system 100 in determining the priority of roads. For example, the determination server 140 can send signals or data directly to the cloud via a wireless connection (e.g., via NFC communication, Bluetooth, etc.) or through a network (e.g., the Internet).
[0050] The database 150 can include data used by the determination server 140 to determine the priority of roads. For example, data related to one or more roads in a region, GPS ping data for each of the one or more roads, the total number of one or more vehicles traveling on each road during a specific time period, the speed of one or more vehicles on each road during a specific time period, one or more priorities associated with one or more roads, and other information and / or data required to determine the priority of roads can be processed and stored in the database 150. In an implementation, the database 150 can be combined with the determination server 140. In an example, the database 150 can be managed by an external entity.
[0051] The determination server 140 can be configured to determine the rank associated with a road relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of one or more vehicles on the road. The determination server 140 can further be configured to determine the priority of a road based on whether the rank associated with a priority relative to one or more roads matches the rank associated with the road. In an implementation, determining the priority of a road can further include determining the percentage of the road length associated with a priority relative to the total road length of one or more roads, and determining the rank associated with the priority based on the percentage. In an implementation, determining the priority of a road can further include determining whether the total length of the road is included in the road length associated with a priority. In an implementation, when the total length of the road is not included in the road length associated with a priority, the determination server 140 can assign the next lower priority to the road.
[0052] In an implementation, determining the rank associated with a road may further include: for each road of one or more roads, calculating a value associated with each road based on the total number of one or more vehicles traveling on each road and the speed of the one or more vehicles on each road; and determining the rank of each road of the one or more roads based on the values calculated for each road. In an implementation, the determination server 140 may determine whether the values associated with each of two or more roads fall within the same value range, and based on the determination, combine the total road lengths of the two or more roads with the same value range. In an implementation, the determination server 140 may assign a priority to each of one or more roads based on the values calculated for each road. In an implementation, the determination server 140 may determine the total number of one or more vehicles traveling on a road based on the total GPS ping count associated with the road. In an implementation, the determination server 140 may determine the speed of one or more vehicles on a road based on the movement of the GPS pings associated with each of the one or more vehicles on the road and the total GPS ping count associated with the road. In an implementation, when determining a route from a first location to a second location, the determination server 140 may select one or more roads based on the priorities associated with each road of the route. This advantageously enables higher-priority roads to be included during route planning and thus results in a faster travel time from the first location to the second location. In Figure 4A - Figure 4E The above implementation is further explained below.
[0053] In an implementation, there may be more than one database, where the determination server 140 may be configured to determine which database to use for each step in the process of determining the priority of a road. Alternatively, one or more modules may store the above data instead of the database 150, where the module may be integrated as part of the determination server 140 or external to the determination server 140.
[0054] In an illustrative embodiment, each of the requester device 102, the provider device 104, and the acquirer server 106, the transaction processing server 108, the issuer server 110, the determination server 140, and / or the database 150 provides an interface to enable communication with other connected requester devices 102, provider devices 104, and / or provider devices 104 and acquirer servers 106, transaction processing servers 108, issuer servers 110, determination servers 140, and / or databases 150. This communication is facilitated by an application programming interface (“API”). Such an API can be part of a user interface, which can include a graphical user interface (GUI), a web-based interface, a programming interface (e.g., an application programming interface (API) and / or a set of remote procedure calls (RPCs) corresponding to interface elements), a messaging interface (where the interface elements correspond to messages of a communication protocol), and / or a suitable combination thereof. For example, the requester device 102 can send data related to a request, such as information related to the location, date, time, and other similar data of a driver in need, and the provider device 104 can send data related to the location of an associated provider in response to a query displayed on a GUI running on the corresponding API.
[0055] The term “server” as used herein can refer to a single computing device or multiple interconnected computing devices that operate together to perform a specific function. That is, a server can be contained within a single hardware unit or distributed among several or more different hardware units.
[0056] The determination server 140 is associated with an entity (e.g., an intermediary of a company or organization or service). In one arrangement, the determination server 140 is owned and operated by the entity operating the transaction processing server 108. In this arrangement, the determination server 140 can be implemented as part of the transaction processing server 108 (e.g., a computer program module, a computing device, etc.).
[0057] The transaction processing server 108 can also be configured to manage user registration. A registered user has a transaction account (see the discussion above), which includes the user's details. The registration step is referred to as enrollment. A user can use the requester device 102 or the provider device 104 to perform enrollment with the transaction processing server 108.
[0058] It may not be necessary to have a transaction account at the transaction processing server 108 to access the functions of the transaction processing server 108. However, in an implementation, there may be functions that are only available to registered users.
[0059] The user's registration process is performed by the user through one of the requester device 102 or the provider device 104. In one arrangement, the user downloads an application (which includes an API for interacting with the transaction processing server 108) to the requester device 102 or the provider device 104. In another arrangement, the user accesses a website (which includes an API for interacting with the transaction processing server 108) on the requester device 102 or the provider device 104. Then, the user is able to interact with the determination server 140. The user can be a requester or a provider associated with the requester device 102 or the provider device 104, respectively.
[0060] For example, the registration details can include the user's name, the user's address, emergency contacts, blood type or other healthcare information, next of kin contacts, permission to retrieve data and information from the requester device 102 and / or the provider device 104 for determining the priority of a road, such as permission to retrieve location and status information, and other similar data and information from the requester device 102 and / or the provider device 104. Alternatively, another device (e.g., a mobile device, a laptop computer, a personal digital assistant computer (PDA), a mobile computer, a tablet computer, or other similar device) can be selected to retrieve data instead of the requester device 102 and / or the provider device 104. Once registered, the user will have a transaction account that stores all the details.
[0061] The requester device 102 is associated with a user (or requester) who is a party to a transaction that occurs between the requester device 102 and the provider device 104 or between the requester device 102 and the determination server 140. The requester device 102 can be a computing device, such as a desktop computer, an interactive voice response (IVR) system, a smartphone, a laptop computer, a personal digital assistant computer (PDA), a mobile computer, a tablet computer, etc. The requester device 102 can be associated with a user who initiates a request to a driver.
[0062] The requester device 102 includes the requester's transaction credentials (e.g., a payment account) to enable the requester device 102 to be a party to a payment transaction. If the requester has a transaction account, the transaction account can also be included (e.g., stored) in the requester device 102. For example, a mobile device (which is the requester device 102) can store the customer's transaction account in the mobile device.
[0063] In one example arrangement, the requester device 102 is a computing device in a watch or similar wearable device and is equipped with a wireless communication interface (e.g., an NFC interface). The requester device 102 can then communicate electronically with the provider device 104 regarding a request (e.g., for delivery, a ride, or other similar service). The user makes a request using the watch or similar wearable device by pressing a button on the watch or wearable device.
[0064] The provider device 104 is associated with a provider who is also a party to the request (e.g., for delivery, a ride, or other similar service) that occurs between the requester device 102 and the provider device 104. The provider device 104 can be a computing device such as a desktop computer, an interactive voice response (IVR) system, a smartphone, a laptop computer, a personal digital assistant computer (PDA), a mobile computer, a tablet computer, etc. The provider device 104 can be associated with a provider of a ride or delivery (e.g., the provider in response to the request).
[0065] Hereinafter, the term "provider" refers to a service provider and any third party associated with providing a product or service to be purchased, or a travel or ride or delivery service via the provider device 104. Thus, the provider's transaction account refers to the provider's transaction account and the transaction accounts of third parties associated with the provider (e.g., a driver, a ride coordinator, or a merchant).
[0066] If the provider has a transaction account, the transaction account can also be included (e.g., stored) in the provider device 104. For example, a mobile device (which is the provider device 104) can store the provider's transaction account in the mobile device.
[0067] In one example arrangement, the provider device 104 is a computing device in a watch or similar wearable device and is equipped with a wireless communication interface (e.g., an NFC interface). Then, the provider device 104 can communicate electronically with the requester to make a request by pressing a button on the watch or wearable device.
[0068] The acquirer server 106 is associated with an acquirer who can be an entity (e.g., a company or organization) that issues (e.g., establishes, operates, manages) a merchant's payment account (e.g., a financial bank account). Examples of acquirers include banks and / or other financial institutions. As described above, the acquirer server 106 can include one or more computing devices for establishing communication with another server (e.g., the transaction processing server 108) by exchanging messages and / or passing information to another server. The acquirer server 106 forwards payment transactions related to a transaction request or a delivery request or other similar service to the transaction processing server 108.
[0069] The transaction processing server 108 is configured to process processes related to a transaction by, for example, forwarding data and information associated with the transaction to other servers (such as the determination server 140) in the system 100. In an example, the transaction processing server 108 can transmit data related to a request (such as a request for a service such as delivery or a ride, the data including location information related to the pick-up location of the service, the destination location of the service, the current location of the requester device 102 or the provider device 104, and other similar information) from the requester device 102 or the provider device 104 to the determination server 140, instead of the requester device 102 or the provider device 104, to determine the route of the requester device 102 or the provider device 104. In an implementation, the transaction processing server 108 can transmit the GPS ping data of the requester device 102 or the provider device 104 to the determination server 140, instead of the requester device 102 or the provider device 104, to determine the total number of one or more vehicles traveling on the road and the speed of one or more vehicles on the road. The location information related to the pick-up location, the destination location, and the current location of the requester device 102 or the provider device 104 can include identifiers, addresses, GPS information, latitude and longitude coordinates, geohash information, or other similar information respectively associated with the pick-up location, the destination location, and the current location. The transaction processing server 108 can use various different protocols and processes to process payments and / or requests. It should be understood that payments for transactions can be made via a variety of methods, such as credit cards, debit cards, digital wallets, buy now pay later schemes, and other similar payment methods.
[0070] The issuer server 110 is associated with an issuer and can include one or more computing devices for performing payment transactions. The issuer can be an entity (such as a company or organization) that issues (such as establishes, operates, manages) a transaction credential or a payment account (such as a financial bank account) associated with the owner of the requester device 102. As described above, the issuer server 110 can include one or more computing devices for establishing communication with another server (such as the transaction processing server 108) by exchanging messages and / or passing information to another server.
[0071] The database 150 is a database or server associated with an entity (e.g., a company or organization) that manages (e.g., establishes, manages) data associated with users, transactions, products, services, and other similar data, such as data associated with the entity. In an arrangement, the database 150 can include data used by the determination server 140 to determine the priority of roads. For example, data related to one or more roads in a region, GPS ping data for each of the one or more roads, the total number of one or more vehicles traveling on each road during a specific time period, the speed of one or more vehicles on each road during a specific time period, one or more priorities associated with one or more roads, and other information and / or data required to determine the priority of roads can be processed and stored in the database 150. In an implementation, the database 150 can be combined with the determination server 140. In an example, the database 150 can be managed by an external entity.
[0072] Advantageously, compared with existing methods for determining the priority of roads, the system 100 uses only fewer resources and processing capabilities, can also be easily implemented on a large scale, and can be implemented in different regions without the need for retraining (as opposed to machine learning and / or AI models).
[0073] Figure 2FIG. shows a schematic diagram of an example determination server 140 according to various embodiments. The determination server 140 may include a data module 260 configured to receive data and information from a requester device 102, a provider device 104, a transaction processing server 108, a database 150, a cloud, and other information sources to determine a driver for a request by the determination server 140. For example, the data module 260 may be configured to receive the following required data and information: the rank associated with one or more roads relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road; determining the priority of a road based on whether the position associated with one or more priorities matches the rank associated with the road relative to one or more roads; determining the percentage of the road length associated with the priority relative to the total road length of one or more roads; and determining the rank associated with the priority based on the percentage; determining whether the total length of the road is included in the road length associated with the priority; when the total length of the road is not included in the road length associated with the priority, assigning the next lower priority to the road; for each of one or more roads, calculating a value associated with each road based on the total number of one or more vehicles traveling on each road and the speed of the one or more vehicles on each road; and determining the rank of each of the one or more roads based on the value calculated for each road; determining whether the values associated with each of two or more roads fall within the same value range; and based on the determination, combining the total road lengths of two or more roads in the same value range; assigning a priority to each of one or more roads based on the value calculated for each road; determining the total number of one or more vehicles traveling on the road based on the total GPS ping count associated with the road; determining the speed of the one or more vehicles on the road based on the movement of the GPS pings associated with each of the one or more vehicles on the road and the total GPS ping count associated with the road; when determining a route from a first location to a second location, selecting one or more roads based on the priority associated with each road of the route; and other similar processes from the requester device 102, the provider device 104, the transaction processing server 108, the database 150, and / or other information sources. The data module 260 may further be configured to send information related to the data retrieved in response to the request to the requester device 102, the provider device 104, the transaction processing server 108, or other destinations that need the information.
[0074] The determination server 140 may include a road module 262 configured to determine a rank associated with one or more roads relative to the one or more roads based on the total number of one or more vehicles traveling on the roads and the speeds of the one or more vehicles on the roads. In an implementation, the road module 262 may be configured to, for each of the one or more roads, calculate a value associated with each road based on the total number of one or more vehicles traveling on each road and the speeds of the one or more vehicles on each road; and determine the rank of each of the one or more roads based on the values calculated for each road. In an implementation, the road module 262 may be configured to determine whether the values associated with each of two or more roads fall within the same value range; and based on the determination, combine the total road lengths of the two or more roads with the same value range. In an implementation, the road module 262 may be configured to determine the total number of one or more vehicles traveling on the road based on the total GPS ping count associated with the road. In an implementation, the road module 262 may be configured to determine the speeds of the one or more vehicles on the road based on the movement of the GPS pings associated with each of the one or more vehicles on the road and the total GPS ping count associated with the road. In Figure 4A - Figure 4E The above process is further explained below.
[0075] The determination server 140 may further include a determination module 264 configured to determine the priority of a road based on whether the rank associated with one or more priorities relative to the one or more roads matches the rank associated with the road (e.g., determined by the road module 262). In an implementation, the determination module 264 may be configured to determine the percentage of the road length associated with the priority relative to the total road length of the one or more roads, and determine the rank associated with the priority based on the percentage. In an implementation, the determination module 264 may be configured to determine whether the total length of the road is included in the road length associated with the priority. In an implementation, the determination module 264 may be configured to assign the next lower priority to the road when the total length of the road is not included in the road length associated with the priority. In an implementation, the determination module 264 may be configured to assign a priority to each of the one or more roads based on the values calculated for each road. In an implementation, when determining a route from a first location to a second location, the determination module 264 may select one or more roads based on the priorities associated with each road of the route. This advantageously enables higher-priority roads to be included during route planning and thus results in a faster travel time from the first location to the second location. In Figure 3A 、 Figure 3B and Figure 4A - Figure 4E The above process is further explained below.
[0076] Each of the data module 260, the road module 262, and the determination module 264 can further communicate with a processing module (not shown) of the determination server 140, for example, to coordinate corresponding tasks and functions during processing. The data module 260 can further be configured to communicate with and store data and information for each of the processing module, the road module 262, and the determination module 264. Alternatively, all tasks and functions required to adaptively determine the priority of a road can be performed by a single processor of the determination server 140.
[0077] Figure 3A An exemplary illustration depicting how roads are fuzzily classified according to a conventional method is shown. For example, in a map 300 that can be characterized in a data map application such as OSM, two roads 302 and 304 can both be classified as residential roads. However, as can be seen from an image 306 showing a cross-section of road 302 and an image 308 showing a cross-section of road 304, the two roads look very different in terms of traffic capacity, accessibility, and physical surface. Thus, roads 302 and 304 with the same classification are ambiguous and cannot be used as an accurate indication of whether a road should be selected during route planning.
[0078] For example, as Figure 3B shown, referring to an illustration 310 depicting route planning from location 312 to location 314, road 316 can be selected for the route because it is shorter in length than road 318. This can occur if there is no priority hierarchy for each road in the map (e.g., each road has the same priority as each other), or if each road is fuzzily classified, as shown in illustration 300. However, it is possible that road 316 actually has a worse traffic capacity compared to road 318 (e.g., due to traffic conditions, road conditions, or other similar issues, cars may tend to move very slowly on road 316) (e.g., road 316 should have a lower priority than road 318), and selecting road 316 instead of road 318 for route planning between locations 312 and 314 will likely result in an inefficient and slower route.
[0079] Thus, in the solution proposed in the present application, the priority of a road can be determined, thereby allowing for improved route planning, where roads with higher priorities are preferred. Additionally, compared to existing methods, the present solution not only uses fewer resources and processing capabilities, but can also be easily implemented on a large scale and can be implemented in different regions without the need for retraining (as opposed to machine learning and / or AI models).
[0080] A road network without any priorities would look like Figure 4AIllustration 400. All roads in this network have the same priority. A route planning system built on this road network will recommend the shortest route from location 410 to location 412, such as route 402. In most cases, this route is inefficient because it does not consider the accessibility level of each road selected for this route. On the other hand, Figure 4A Illustration 404 shows a road network with three priorities. For example, road 406 with priority 1 (e.g., indicating the highest priority for roads with the highest accessibility), road 408 with priority 2, and the remaining roads with priority 3 (e.g., indicating the lowest priority for roads with the lowest accessibility). Therefore, route 411 from location 410 to location 412 is significantly changed to select as many roads 406 (with the highest priority) as possible. Advantageously, based on travel time considerations, this is a more efficient route.
[0081] Generally, a road network model with an ideal priority hierarchy should look like illustration 404 (e.g., priority 2 is associated with twice the road length associated with priority 1, priority 3 is associated with twice the road length associated with priority 2, and so on). From this model, a formula regarding the road length relationship between each priority can be derived (e.g., n priorities are L1, L2, L3, … to L n ), for example, as follows: L1:L2:L3:…:L n =1:2:4:8:…:2 n-1 . It should be understood that the appropriate number of priorities can be determined based on use case applications and one or more characteristics of the relevant area (e.g., the size of the area, the number of roads in the area, the population density of the area, and other similar characteristics).
[0082] The general rule for road usage is: roads associated with priorities in the middle range (e.g., road 408 with priority 2 in illustration 404) are usually the busiest (e.g., having the highest road usage frequency and thus the highest total GPS ping count range). Therefore, an illustration plotted based on road usage frequency and the priority of each road in the road network can be a Gaussian distribution diagram 414 as shown in Figure 4B . For this solution, the formula L1:L2:L3:…:L n =1:2:4:8:…:2 n-1 can be used to determine the ranking of each priority relative to one or more priorities (depending on the total number of priorities that can be determined for the road network) based on the percentage of the road length associated with each priority relative to the total road length of one or more roads in the road network. For example, the road length percentages for each priority (assuming there are 8 priorities) can be calculated according to Table 1 shown below.
[0083] Priority Ratio Road length % L1 (highest) 1 1 / 255=0.39% L2 2 2 / 255=0.78% L3 4 4 / 255=1.57% L4 8 8 / 255=3.14% L5 16 16 / 255=6.27% L6 32 32 / 255=12.55% L7 64 64 / 255=25.10% L8 (lowest) 128 128 / 255=50.20% Sum 255 100.0%
[0084] Table 1
[0085] For example, Priority 1 can have a percentage of road length of 0.39%, Priority 2 can have a percentage of road length of 0.78%, and so on.
[0086] In addition, the total number of one or more vehicles traveling on a road can be identified based on, for example, GPS ping data associated with the road. GPS ping data can be obtained from various sources, such as GPS-enabled vehicles that are considered to be traveling on the road during a specified time period, requester device 102 (e.g., if the user associated with requester device 102 is traveling along the road), provider device 104 (e.g., if the user associated with provider device 104 is traveling along the road), or other similar sources. The speed of one or more vehicles on the road can also be calculated. For example, the speed can be calculated by adding the speed of each vehicle of the one or more vehicles on the road (e.g., dividing the total length traveled by the vehicles on the road by the total amount of time required for the vehicles to cross the total length) and dividing it by the total number of vehicles traveling on the road (e.g., during a specified time period). In an implementation, the speed of one or more vehicles can be the average speed of the one or more vehicles on the road during a specified time period. GPS ping data and the speed of one or more vehicles can also be obtained from a map application (such as OSM, Map or other similar applications). An example of the data set for each road that can be obtained from a map application and the corresponding GPS ping count and average speed of the vehicles are shown in Table 2 below.
[0087]
[0088] Table 2
[0089] Based on the total number of vehicles on the road and the speed of one or more vehicles on the road obtained for a road, a value associated with the road can be calculated, which can be a measure of road accessibility. A higher value can be associated with a higher level of accessibility, and the following formula can be used to calculate it: Based on the values of the road length distribution calculated for several cities in Southeast Asia (such as Manila, Ho Chi Minh, Jakarta, Bangkok, Chiang Mai, and Cebu), it can be observed that they are all very close to a Gaussian distribution, as Figure 4C shown in Illustration 416 in Diagram 416 is plotted based on the total number of vehicles traveling on each road within a specified time period (e.g., based on the total number of GPS ping counts within the specified time period) and the average speed of vehicles on the road within the specified time period for each road in Ho Chi Minh City. Each entry in Diagram 416 is the total road length (Y-axis) plotted against a value range (X-axis). For example, in Diagram 416, a road with a value of 8.1 is plotted within the value range of 8.0–8.5. If this is the only road falling within the 8.0 - 8.5 value range, the Y-axis for this 8.0 - 8.5 value range is the total length of the road. Thus, each road can be positioned relative to one or more roads based on the value calculated for each road. In one implementation, if there is more than one road falling within the 8.0 - 8.5 value range, the Y-axis for this 8.0 - 8.5 value range is the combined total length of the multiple roads. The final Diagram 416 indicates that this value is advantageously a strong signal for classifying each road, and it can be directly and easily applied to different cities.
[0090] Assume formula L1:L2:L3:…:L n =1:2:4:8:…:2 n-1 When used with 8 priorities for one or more roads in Ho Chi Minh City, the percentages calculated for each priority in Table 2 can be used to calculate the value ranges associated with each priority, as shown in Table 3, for example:
[0091]
[0092]
[0093] Table 3
[0094] For example, priority 1 can be associated with a value range of >10.212, priority 2 can be associated with a value range of 9.707 to 10.212, priority 3 can be associated with a value range of 9.242 to 9.707, and so on. Thus, the ranking of each priority can be determined based on the percentage associated with each priority. Then, based on the values calculated for each road, a priority can be assigned to each of one or more roads in Ho Chi Minh City. For example, a road with a value of 9 can be assigned priority 3 (e.g., with a value range of 9.242 to 9.707). Additionally, before a priority can be assigned to a road, it can be determined whether the total length of the road is included in the road length associated with the priority. For example, assume that the road associated with a value of 9 has a road length of 1 km and is the only road within the value range of 9.242 to 9.707, and priority 3 is associated with a road length of 3 km. Then, this road can be considered to be included in the road length associated with priority 3 and thus be assigned priority 3. If more than one road is within the value range of 9.242 to 9.707, the next lower priority (e.g., priority 4) can be assigned to the road whose road length is not included in the road length associated with priority 3. In an implementation, each of more than one road can be assigned priority 3 as long as their associated values are within the value range of 9.242 to 9.707.
[0095] The above process can be implemented via a program. For example, the Python code as shown in the illustration 422 of Figure 4D The target percentages in the rows are based on the percentages calculated for each priority as shown in Table 1 and are used as cut-off values for each priority in the program. In this program, one or more roads in Ho Chi Minh City are sorted according to their corresponding values (e.g., in ascending order from the minimum value to the maximum value, or vice versa). The roads starting from the road with the highest value are assigned priority 1 until the value of the next road does not fall within the value range associated with priority 1 (e.g., >10.212) and / or the total length of the next road is not included in the total road length associated with priority 1. Then, the next lower priority (e.g., priority 2) is assigned to the next road, and the process continues until all roads have been assigned priorities. It should be understood that other programming languages can also be used for the implementation.
[0096] Figure 4EIllustrates an exemplary diagram 424 of a road network before and after determining the priority of each road in the road network according to various embodiments of the present disclosure. Based on a subset of roads within circle 430 in map 426 (e.g., before determining the priority of each road), it can be seen that each road has the same priority. In contrast, for the same subset of roads within circle 430 in map 428 (e.g., after determining the priority of each road), it can be seen that roads 432, 434, 436, and 438 are now assigned a higher priority (e.g., indicated by a darker shade) compared to other roads within circle 430. Thus, for route planning purposes, such as from a first location to a second location, these roads will be prioritized.
[0097] Figure 5 Shows an example flowchart of a method 500 for determining the priority of a road according to various embodiments. In step 502, a rank associated with a road is determined relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road. In step 504, the priority of the road is determined based on whether the rank associated with the priority relative to one or more roads matches the rank associated with the road.
[0098] Figure 6 Depicts an example computer system 1400 according to which the described determination server 140 may be practiced. Computer system 1400 includes a computer module 1401. Computer module 1401 may communicate with a communication network 1420 via a connection 1421 using an external modem-demodulator (modem) transceiver device 1416. Communication network 1420 may be a wide area network (WAN), such as the Internet, a cellular telecommunications network, or a private WAN. In the case where connection 1421 is a telephone line, modem 1416 may be a traditional "dial-up" modem. Alternatively, in the case where connection 1421 is a high-capacity (e.g., cable) connection, modem 1416 may be a broadband modem. A wireless modem may also be used for wireless connection to communication network 1420.
[0099] The computer module 1401 generally includes at least one processor unit 1405 and a memory unit 1406. For example, the memory unit 1406 may have a semiconductor random access memory (RAM) and a semiconductor read only memory (ROM). The computer module 1401 also includes an interface 1408 for an external modem 1416. In some implementations, the modem 1416 may be incorporated within the computer module 1401, such as within the interface 1408. The computer module 1401 also has a local network interface 1411 that allows the computer system 1400 to be coupled to a local communication network 1422 known as a local area network (LAN) via a connection 1423. As Figure 6 shown, the local communication network 1422 may also be coupled to a wide area network 1420 via a connection 1424, which typically includes a so-called "firewall" device or a device with similar functionality. The local network interface 1411 may include an Ethernet circuit card, a wireless device or an IEEE 802.11 wireless device; however, many other types of interfaces may be practiced for the interface 1411.
[0100] The I / O interface 1408 may provide one or both of serial and parallel connections, the former typically implemented according to the Universal Serial Bus (USB) standard and having a corresponding USB connector (not shown). A storage device 1409 is provided, and the storage device 1409 typically includes a hard disk drive (HDD) 1410. Other storage devices, such as floppy disk drives and tape drives (not shown), may also be used. An optical disk drive 1412 is typically provided to act as a non-volatile data source. Portable memory devices, such as optical disks, USB-RAM, portable external hard disk drives, and floppy disks, may be used as suitable data sources for the system 1400.
[0101] The components 1405 to 1412 of the computer module 1401 generally communicate via an interconnect bus 1404 and in a manner that results in a conventional operating mode of the computer system 1400 known to persons skilled in the relevant art. For example, the processor 1405 is coupled to the system bus 1404 using a connection 1418. Similarly, the memory 1406 and the optical disk drive 1412 are coupled to the system bus 1404 via a connection 1419. Examples of computers on which the described arrangements may be practiced include IBM-PCs and their compatibles, Sun Sparcstations, Apple, or similar computer systems.
[0102] The method 500 performed by the determination server 140 can be implemented using the computer system 1400. This process can be implemented as one or more software applications 1433 executable within the computer system 1400. Specifically, the method 500 is implemented by instructions in the software program 1433 executed within the computer system 1400. The software instructions can be formed into one or more code modules, each code module for performing one or more specific tasks. The software can also be divided into two separate parts, where the first part and the corresponding code modules perform the method 500, and the second part and the corresponding code modules manage the user interface between the first part and the user.
[0103] The software can be stored in a computer-readable medium, such as the storage devices described below. The software is loaded from the computer-readable medium into the computer system 1400 and then executed by the computer system 1400. A computer-readable medium having such software or computer program recorded thereon is a computer program product. Using the computer program product in the computer system 1400 preferably implements an advantageous apparatus for the determination server 140.
[0104] The software program 1433 is typically stored in the HDD 1410 or the memory 1406. The software is loaded from the computer-readable medium into the computer system 1400 and executed by the computer system 1400. Thus, for example, the software program 1433 can be stored on an optically readable disk storage medium (e.g., CD-ROM) 1425 read by the optical disk drive 1412. A computer-readable medium having such software or computer program recorded thereon is a computer program product. Using the computer program product in the computer system 1400 preferably implements an apparatus for the determination server 140.
[0105] In some instances, the application 1433 can be provided to a user, encoded on one or more CD-ROMs 1425 and read via the corresponding drive 1412, or alternatively can be read by the user from the network 1420 or 1422. Further still, software can also be loaded into the computer system 1400 from other computer-readable media. A computer-readable storage medium is any non-transitory tangible storage medium that provides recorded instructions and / or data to the computer system 1400 for execution and / or processing. Examples of such storage media include floppy disks, magnetic tapes, optical disks, hard disk drives, ROMs or integrated circuits, USB memories, magneto-optical disks, or computer-readable cards such as PCMCIA cards, whether these devices are internal or external to the computer module 1401. Examples of temporary or non-tangible computer-readable transmission media that can also participate in providing software, applications, instructions, and / or data to the computer module 1401 include radio or infrared transmission channels and network connections to another computer or networked device, as well as the Internet or an intranet including e-mail transmissions and information recorded on websites, etc.
[0106] The second part of the above application 1433 and the corresponding code modules can be executed to implement one or more graphical user interfaces (GUIs) to be presented or otherwise represented on a display. By typically manipulating a keyboard and a mouse, the user of the computer system 1400 and the application can manipulate the interface in a functionally adaptable manner to provide control commands and / or inputs to the application associated with the GUI. Other forms of functionally adaptable user interfaces can also be implemented, such as an audio interface utilizing voice prompts output via a speaker and user voice commands input via a microphone.
[0107] It should be understood that the configuration context of the computer system 1400 (i.e., the determination server 140) is presented only as an example. Thus, in some arrangements, one or more features of the computer system 1400 can be omitted. Additionally, in some arrangements, one or more features of the computer system 1400 can be combined together. Moreover, in some arrangements, one or more features of the computer system 1400 can be separated into one or more components.
[0108] Figure 7 and Figure 8Shows an implementation of the transaction processing server 108 (i.e., the computer system 1500). In this implementation, the transaction processing server 108 can generally be described as a physical device including at least one processor 802 and at least one memory 804 including computer program code. The at least one memory 804 and the computer program code are configured to work together with the at least one processor 802 such that the transaction processing server 108 facilitates the operations described in method 500. The transaction processing server 108 may also include a transaction processing module 806. The memory 804 stores the computer program code, and the processor 802 compiles the computer program code to cause the transaction processing module 806 to perform corresponding functions.
[0109] Reference Figure 1 and Figure 8 , the transaction processing module 806 performs functions of communicating with the requester device 102, the provider device 104, the acquirer server 106, and the issuer server 110 to receive and transmit transactions, service requests, deliveries, ride coordination requests, user purchases of goods or services, and other similar services respectively. The transaction processing module 806 can be configured to process transaction-related processes by, for example, forwarding data and information associated with the transaction to other servers in the system 100 (such as the determination server 140). In an example, the transaction processing module 806 can transmit data related to the request (such as a request for a service such as delivery or a ride, the data including location information related to the pick-up location of the service, the destination location of the service, the current location of the requester device 102 or the provider device 104, and other similar information) from the requester device 102 or the provider device 104 to the determination server 140 instead of the requester device 102 or the provider device 104 to determine the route of the requester device 102 or the provider device 104. In an implementation, the transaction processing module 806 can transmit the GPS ping data of the requester device 102 or the provider device 104 to the determination server 140 instead of the requester device 102 or the provider device 104 to determine the total number of one or more vehicles traveling on the road and the speed of one or more vehicles on the road. The location information related to the pick-up location, the destination location, and the current location of the requester device 102 or the provider device 104 may include identifiers, addresses, GPS information, latitude and longitude coordinates, geohash information, or other similar information respectively associated with the pick-up location, the destination location, and the current location. The transaction processing module 806 can use various different protocols and processes to handle payments and / or requests. It should be understood that payments for transactions can be made via multiple methods, such as credit cards, debit cards, digital wallets, buy-now-pay-later schemes, and other similar payment methods.
[0110] Figure 9An alternative implementation of the determination server 140 (e.g., computer system 1400) is shown. In the alternative implementation, the determination server 140 can generally be described as a physical device including at least one processor 902 and at least one memory 904 including computer program code. The at least one memory 904 and the computer program code are configured to, together with the at least one processor 902, cause the determination server 140 to perform the operations described in method 500. The determination server 140 may further include a data module 906, a road module 908, and a determination module 910. The memory 904 stores the computer program code, and the processor 902 compiles the computer program code to cause each of the modules 906 to 910 to perform their respective functions.
[0111] Reference Figure 1 to Figure 9 , the road module 908 performs the function of determining the rank associated with one or more roads relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road. In an implementation, the road module 908 may be configured to: for each of one or more roads, calculate a value associated with each road based on the total number of one or more vehicles traveling on each road and the speed of the one or more vehicles on each road; and determine the rank of each of the one or more roads based on the values calculated for each road. In an implementation, the road module 908 may be configured to determine whether the values associated with each of two or more roads fall within the same value range; and based on the determination, combine the total road lengths of the two or more roads with the same value range. In an implementation, the road module 908 may be configured to assign a priority to each of one or more roads based on the values calculated for each road. In an implementation, the road module 908 may be configured to determine the total number of one or more vehicles traveling on the road based on the total GPS ping count associated with the road. In an implementation, the road module 908 may be configured to determine the speed of the one or more vehicles on the road based on the movement of the GPS pings associated with each of the one or more vehicles on the road and the total GPS ping count associated with the road.
[0112] Reference Figure 1 to Figure 9, the determining module 910 performs the function of determining the priority of a road based on whether the rank associated with one or more priorities relative to one or more roads matches the rank associated with the road (e.g., determined by the road module 908). In an implementation, the determining module 910 may be configured to determine the percentage of the road length associated with a priority relative to the total road length of one or more roads; and determine the rank associated with the priority based on the percentage. In an implementation, the determining module 910 may be configured to determine whether the total length of the road is included in the road length associated with the priority. In an implementation, the determining module 910 may be configured to assign the next lower priority to the road when the total length of the road is not included in the road length associated with the priority. In an implementation, the determining module 910 may be configured to assign a priority to each of one or more roads based on the value calculated for each road. In an implementation, when determining a route from a first location to a second location, the determining module 910 may select one or more roads based on the priorities associated with each road of the route. This advantageously enables higher priority roads to be included during route planning and thus results in a faster travel time from the first location to the second location.
[0113] Reference Figure 1 to Figure 9, the data module 906 performs the function of receiving data and information from the requester device 102, the provider device 104, the transaction processing server 108, the database 150, the cloud, and other information sources to determine a driver for a request by the determination server 140. For example, the data module 906 can be configured to receive the following required data and information: determine the rank associated with one or more roads relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road; determine the priority of a road based on whether the rank associated with one or more priorities relative to one or more roads matches the rank associated with the road; determine the percentage of the road length associated with the priority relative to the total road length of one or more roads; and determine the rank associated with the priority based on the percentage; determine whether the total length of the road is included in the road length associated with the priority; when the total length of the road is not included in the road length associated with the priority, assign the next lower priority to the road; for each of one or more roads, calculate a value associated with each road based on the total number of one or more vehicles traveling on each road and the speed of the one or more vehicles on each road; and determine the rank of each of one or more roads based on the value calculated for each road; determine whether the values associated with each of two or more roads fall within the same value range, and based on the determination, combine the total road lengths of two or more roads with the same value range; assign a priority to each of one or more roads based on the value calculated for each road; determine the total number of one or more vehicles traveling on the road based on the total GPS ping count associated with the road; determine the speed of the one or more vehicles on the road based on the movement of the GPS pings associated with each of the one or more vehicles on the road and the total GPS ping count associated with the road; when determining a route from a first location to a second location, select one or more roads based on the priority associated with each road of the route; and other similar processes from the requester device 102, the provider device 104, the transaction processing server 108, the database 150, and / or other information sources. The data module 906 can further be configured to send information related to the data retrieved in response to a request to the requester device 102, the provider device 104, the transaction processing server 108, or other destinations that need the information.
[0114] Figure 7FIG. 1500 depicts a general purpose computer system on which the described combined transaction processing server 108 and determination server 140 may be practiced. The computer system 1500 includes a computer module 1501. The computer module 1501 may communicate with a communication network 1520 via a connection 1521 using an external modem - transceiver device 1516. The communication network 1520 may be a wide area network (WAN), such as the Internet, a cellular telecommunications network, or a dedicated WAN. Where the connection 1521 is a telephone line, the modem 1516 may be a conventional "dial-up" modem. Alternatively, where the connection 1521 is a high-capacity (e.g., cable) connection, the modem 1516 may be a broadband modem. A wireless modem may also be used for wireless connection to the communication network 1520.
[0115] The computer module 1501 generally includes at least one processor unit 1505 and a memory unit 1506. For example, the memory unit 1506 may have a semiconductor random access memory (RAM) and a semiconductor read only memory (ROM). The computer module 1501 also includes an interface 1508 for the external modem 1516. In some implementations, the modem 1516 may be incorporated within the computer module 1501, such as within the interface 1508. The computer module 1501 also has a local network interface 1511 that allows the computer system 1500 to be coupled to a local communication network 1522 known as a local area network (LAN) via a connection 1523. As Figure 7 shown, the local communication network 1522 may also be coupled to the wide area network 1520 via a connection 1524, which typically includes a so-called "firewall" device or a device with similar functionality. The local network interface 1511 may include an Ethernet circuit card, a wireless device, or an IEEE 802.11 wireless device; however, many other types of interfaces may be practiced for the interface 1511.
[0116] The I / O interface 1508 may provide one or both of serial and parallel connections, the former typically implemented according to the Universal Serial Bus (USB) standard and having a corresponding USB connector (not shown). A storage device 1509 is provided, and the storage device 1509 typically includes a hard disk drive (HDD) 1510. Other storage devices, such as floppy disk drives and tape drives (not shown), may also be used. An optical disk drive 1512 is typically provided to act as a non-volatile data source. Portable memory devices, such as optical disks, USB-RAM, portable external hard disk drives, and floppy disks, may be used as suitable data sources for the system 1500.
[0117] The components 1505 to 1512 of the computer module 1501 typically communicate via the interconnect bus 1504 and communicate in a manner that results in a conventional operating mode of the computer system 1500 known to persons skilled in the relevant art. For example, the processor 1505 is coupled to the system bus 1504 using the connection 1518. Similarly, the memory 1506 and the optical disk drive 1512 are coupled to the system bus 1504 via the connection 1519. Examples of computers on which the described arrangements may be practiced include IBM-PCs and their compatibles, Sun Sparcstations, Apple, or similar computer systems.
[0118] The computer system 1500 may be used to implement the steps of the method 500 executed by the determination server 140 and facilitated by the transaction processing server 108. For example, the steps of the method 500 executed by the determination server 140 may be implemented as one or more software applications 1533 executable within the computer system 1500. Specifically, the steps of the method 500 are implemented by instructions in the software application 1533 executed within the computer system 1500. The software instructions may be formed into one or more code modules, each code module for performing one or more specific tasks. The software may also be divided into two separate parts, where the first part and the corresponding code modules execute the steps of the method 500, and the second part and the corresponding code modules manage the user interface between the first part and the user.
[0119] The software may be stored in a computer-readable medium, such as the storage devices described below. The software is loaded from the computer-readable medium into the computer system 1500 and then executed by the computer system 1500. A computer-readable medium having such software or computer program recorded thereon is a computer program product. Using the computer program product in the computer system 1500 preferably implements an advantageous apparatus for combining transaction processing and determination servers.
[0120] The software application 1533 is typically stored in the HDD 1510 or the memory 1506. The software is loaded from the computer-readable medium into the computer system 1500 and executed by the computer system 1500. Thus, for example, the software application 1533 may be stored on an optically readable disk storage medium (e.g., CD-ROM) 1525 read by the optical disk drive 1512. A computer-readable medium having such software or computer program recorded thereon is a computer program product. Using the computer program product in the computer system 1500 preferably implements an apparatus for combining transaction processing and determination servers.
[0121] In some instances, the application 1533 can be provided to the user, encoded on one or more CD-ROMs 1525 and read via the corresponding drive 1512, or alternatively can be read by the user from the network 1520 or 1522. Further still, software can also be loaded into the computer system 1500 from other computer-readable media. A computer-readable storage medium is any non-transitory tangible storage medium that provides recorded instructions and / or data to the computer system 1500 for execution and / or processing. Examples of such storage media include floppy disks, magnetic tapes, optical disks, hard disk drives, ROMs or integrated circuits, USB memories, magneto-optical disks, or computer-readable cards such as PCMCIA cards, whether these devices are internal or external to the computer module 1501. Examples of temporary or non-tangible computer-readable transmission media that can also participate in providing software, applications, instructions, and / or data to the computer module 1501 include radio or infrared transmission channels and network connections to another computer or networked device, as well as the Internet or an intranet including email transmissions and information recorded on websites, etc.
[0122] The second part of the above application 1533 and the corresponding code modules can be executed to implement one or more graphical user interfaces (GUIs) to be presented or otherwise represented on a display. By typically manipulating a keyboard and a mouse, the user of the computer system 1500 and the application can manipulate the interface in a functionally adaptable manner to provide control commands and / or input to the application associated with the GUI. Other forms of functionally adaptable user interfaces can also be implemented, such as an audio interface utilizing voice prompts output via a speaker and user voice commands input via a microphone.
[0123] It should be understood that the configuration context of the computer system 1500 (e.g., the combined transaction processing and determination server 1500) is presented only as an example. Thus, in some arrangements, one or more features of the server 1500 can be omitted. Additionally, in some arrangements, one or more features of the server 1500 can be combined together. Moreover, in some arrangements, one or more features of the server 1500 can be separated into one or more components.
[0124] Figure 10An alternative implementation of the combined transaction processing and determination server (i.e., computer system 1500) is shown. In the alternative implementation, the combined transaction processing and determination server can generally be described as a physical device including at least one processor 1002 and at least one memory 1004 including computer program code. The at least one memory 1004 and the computer program code are configured to, together with the at least one processor 1002, cause the combined transaction processing and determination server to perform the operations described in the steps of method 500. The combined transaction processing and determination server may also include a transaction processing module 806, a data module 906, a road module 908, and a determination module 910. The memory 1004 stores the computer program code, and the processor 1002 compiles the computer program code to cause each of modules 806 to 910 to perform their respective functions. The transaction processing module 806 performs the same functions as described for the same transaction processing module in Figure 8 The data module 906, the road module 908, and the determination module 910 perform the same functions as described for the same corresponding modules in Figure 9 .
[0125] Those skilled in the art will understand that many variations and / or modifications can be made to the present disclosure as shown in the specific embodiments without departing from the scope of the specification as broadly described. Accordingly, this embodiment is to be considered in all respects as illustrative and not restrictive.
Claims
1. A method for determining the priority of a road, comprising: Determining, by a processor, a rank associated with the road relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road; And Determining, by the processor, the priority of the road based on whether a rank associated with a priority of one or more priorities relative to the one or more roads matches the rank associated with the road.
2. The method according to claim 1, wherein Determining the priority of the road further includes determining a percentage of the road length associated with the priority relative to the total road length of the one or more roads; and determining the rank associated with the priority based on the percentage.
3. The method according to claim 1, wherein Determining the priority of the road further includes determining whether the total length of the road is included in the road length associated with the priority.
4. The method according to claim 3, further comprising assigning a next lower priority to the road when the total length of the road is not included in the road length associated with the priority.
5. The method according to claim 1, wherein Determining the rank associated with the road further includes: for each road of the one or more roads, calculating a value associated with each road based on the total number of one or more vehicles traveling on each road and the speed of the one or more vehicles on each road; and positioning each road of the one or more roads based on the value calculated for each road.
6. The method according to claim 5, further comprising determining whether values associated with each of two or more roads fall within the same value range, and combining the total road lengths of the two or more roads in the same value range based on the determination.
7. The method according to claim 5, further comprising assigning a priority to each road of the one or more roads based on the value calculated for each road.
8. The method according to claim 1, further comprising determining the total number of the one or more vehicles traveling on the road based on the total global positioning system (GPS) ping count associated with the road.
9. A system for determining the priority of a road, comprising: At least one processor; And at least one memory, the at least one memory including computer program code; The at least one memory and the computer program code are configured to cause the system, using the at least one processor, to at least: Determine a rank associated with the road relative to one or more roads based on the total number of one or more vehicles traveling on the road and the speed of the one or more vehicles on the road; And Determine the priority of the road based on whether a rank associated with a priority of one or more priorities relative to the one or more roads matches the rank associated with the road.
10. The system according to claim 9, wherein Determining the priority of the road further includes determining the percentage of the road length associated with the priority relative to the total road length of the one or more roads; and determining the rank associated with the priority based on the percentage.
11. The system according to claim 9, wherein, Determining the priority of the road further includes determining whether the total length of the road is included in the road length associated with the priority.
12. The system according to claim 11, the system is further configured to assign the next lower priority to the road when the total length of the road is not included in the road length associated with the priority.
13. The system according to claim 9, wherein, Determining the rank associated with the road further includes: for each of the one or more roads, calculating a value associated with each road based on the total number of one or more vehicles traveling on each road and the speed of the one or more vehicles on each road; and positioning each road in the road network based on the value calculated for each road.
14. The system according to claim 13, the system is further configured to determine whether the values associated with each of two or more roads fall within the same value range, and based on the determination, combine the total road lengths of the two or more roads in the same value range.
15. The system according to claim 13, the system is further configured to assign a priority to each of the one or more roads based on the value calculated for each road.
16. The system according to claim 9, the system is further configured to determine the total number of vehicles traveling on the road based on the total global positioning system (GPS) ping count associated with the road.