WO2020237710A1 - Systems and methods for route planning - Google Patents

Systems and methods for route planning Download PDF

Info

Publication number
WO2020237710A1
WO2020237710A1 PCT/CN2019/090340 CN2019090340W WO2020237710A1 WO 2020237710 A1 WO2020237710 A1 WO 2020237710A1 CN 2019090340 W CN2019090340 W CN 2019090340W WO 2020237710 A1 WO2020237710 A1 WO 2020237710A1
Authority
WO
WIPO (PCT)
Prior art keywords
link
historical
count
time
travel time
Prior art date
Application number
PCT/CN2019/090340
Other languages
French (fr)
Inventor
Haibo Li
Hui QIU
Original Assignee
Beijing Didi Infinity Technology And Development Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology And Development Co., Ltd. filed Critical Beijing Didi Infinity Technology And Development Co., Ltd.
Publication of WO2020237710A1 publication Critical patent/WO2020237710A1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3492Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3438Rendez-vous, i.e. searching a destination where several users can meet, and the routes to this destination for these users; Ride sharing, i.e. searching a route such that at least two users can share a vehicle for at least part of the route

Definitions

  • the present disclosure generally relates to systems and methods for route planning, and more particularly, to systems and methods for providing optimal path to ease congestion.
  • LBS location based services
  • shortest route also referred as the shortest route
  • An aspect of the present disclosure introduces a system for route planning.
  • the system may at least one storage medium including a set of instructions for route planning, and at least one processor in communication with the storage medium.
  • the at least one processor may perform the following operations.
  • the at least one processor may obtain a route planning request including a start time from a user terminal.
  • the at least one processor may determine a plurality of candidate paths for the route planning request. Each candidate path may include a plurality of links.
  • the at least one processor may determine an estimated travel time cost of the link at a target time associated with the start time, obtain vehicle-link information relating to a count of vehicles associated with the link, and determine a weight of the link based on the estimated travel time cost and the vehicle-link information.
  • the at least one processor may determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
  • the at least one processor may further determine a count of historical vehicles that traveled on the link at a historical target time corresponding to the start time; determine a count of current vehicles traveling on the link at a current time; determine a count of planned vehicles that being planned to the link within a predetermined historical time period; and determine the vehicle-link information relating to the count of vehicles associated with the link based on the count of historical vehicles, the count of current vehicles, and the count of planned vehicles.
  • the at least one processor may further obtain a historical travel time cost of the link at the historical target time corresponding to the target time; obtain a current travel time cost on the link at the current time; determine a time interval between the target time and the current time; and determine the estimated travel time cost based on the historical travel time cost, the current travel time cost, and the time interval
  • the at least one processor may further determine that the start time is on a weekday or a weekend; and in response to a determination that the start time is on a weekday, determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a first predetermined count of historical weekdays as the historical travel time cost.
  • the at least one processor may further determine that the start time is on a weekday or a weekend; and in response to a determination that the start time is on a weekend, determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a second predetermined count of historical weekends as the historical travel time cost.
  • the at least one processor may further determine a weight sum of a plurality of weights of the plurality of links of the candidate path; and determine the optimal path based on the weight sums corresponding to the plurality of candidate paths.
  • the at least one processor may further direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request.
  • a method for route planning may include obtaining a route planning request including a start time from a user terminal; determining a plurality of candidate paths for the route planning request, each candidate path including a plurality of links; for each link of the plurality of links of each candidate path, determining an estimated travel time cost of the link at a target time associated with the start time, obtaining vehicle-link information relating to a count of vehicles associated with the link, and determining a weight of the link based on the estimated travel time cost and the vehicle-link information; and determining an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
  • a non-transitory computer readable medium comprising at least one set of instructions compatible for route planning.
  • the at least one set of instructions When executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method.
  • the method may include obtaining a route planning request including a start time from a user terminal; determining a plurality of candidate paths for the route planning request, each candidate path including a plurality of links; for each link of the plurality of links of each candidate path, determining an estimated travel time cost of the link at a target time associated with the start time, obtaining vehicle-link information relating to a count of vehicles associated with the link, and determining a weight of the link based on the estimated travel time cost and the vehicle-link information; and determining an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
  • a system for route planning may include a request obtaining module, a candidate path determining module, a weight determining module, and an optimal path determining module.
  • the request obtaining module may be configured to obtain a route planning request including a start time from a user terminal.
  • the candidate path determining module may be configured to determine a plurality of candidate paths for the route planning request. Each candidate path may include a plurality of links.
  • the weight determining module may be configured to determine an estimated travel time cost of the link at a target time associated with the start time; obtain vehicle-link information relating to a count of vehicles associated with the link; and determine a weight of the link based on the estimated travel time cost and the vehicle-link information.
  • the optimal path determining module may be configured to determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
  • FIG. 1 is a schematic diagram illustrating an exemplary system according to some embodiments of the present disclosure
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of a computing device according to some embodiments of the present disclosure
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure
  • FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure
  • FIG. 5 is a flowchart illustrating an exemplary process for route planning according to some embodiments of the present disclosure
  • FIG. 6 is a flowchart illustrating an exemplary process for determining vehicle-link information according to some embodiments of the present disclosure
  • FIG. 7 is a flowchart illustrating an exemplary process for determining an estimated travel time cost according to some embodiments of the present disclosure
  • FIG. 8 is a flowchart illustrating an exemplary process for determining a historical travel time cost according to some embodiments of the present disclosure
  • FIG. 9 is a flowchart illustrating an exemplary process for determining an optimal path according to some embodiments of the present disclosure.
  • FIG. 10 is a schematic diagram illustrating exemplary candidate paths according to some embodiments of the present disclosure.
  • the flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
  • An aspect of the present disclosure relates to systems and methods for route planning.
  • the systems and methods may obtain vehicle-link information relating to a count of vehicles associated with a link.
  • the vehicle-link information may include a count of historical vehicles that traveled on the link at a particular historical time, a count of current vehicles traveling on the link at a current time, and a count of planned vehicles that are being planned to travel on the link within a predetermined time period before the current time.
  • the systems and methods of the present disclosure may also determine a weight of the link (in regard to time cost for route planning) based on the vehicle-link information.
  • the systems and methods may further determine an optimal path for the route planning based on weights of a plurality of links of one or more possible routes. In this way, the systems and methods of the present disclosure may effectively reduce travel time of the users and ease congestion simultaneously.
  • FIG. 1 is a schematic diagram of an exemplary (AI) system 100 according to some embodiments of the present disclosure.
  • the system 100 may be an online to offline service platform for providing services such as taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, shuttle services, online navigation services, good delivery services, etc.
  • the system 100 may include a server 110, a network 120, a user terminal 130, and a storage 140.
  • the server 110 may include a processing engine 112.
  • the server 110 may be configured to process information and/or data relating to route planning. For example, the server 110 may determine a plurality of candidate paths for a route planning request including a start time. Each candidate path may include a plurality of links. As another example, the server 110 may determine an optimal path for the route planning request from the plurality of candidate paths based on a weight of each link of the plurality of links of each candidate path. As another example, the server 110 may direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request. In some embodiments, the server 110 may be a single server, or a server group. The server group may be centralized, or distributed (e.g., server 110 may be a distributed system) .
  • the server 110 may be local or remote.
  • the server 110 may access information and/or data stored in the user terminal 130, and/or the storage 140 via the network 120.
  • the server 110 may connect the user terminal 130, and/or the storage 140 to access stored information and/or data.
  • the server 110 may be implemented on a cloud platform.
  • the cloud platform may be a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
  • the server 110 may include a processing engine 112.
  • the processing engine 112 may process information and/or data relating to relating to route planning to perform one or more functions described in the present disclosure. For example, the processing engine 112 may determine an estimated travel time cost of a link at a target time associated with the start time for each link. As another example, the processing engine 112 may determine a weight of the link based on the estimated travel time cost and a vehicle-link information relating to a count of vehicles associated with the link. In some embodiments, the processing engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) .
  • processing engines e.g., single-core processing engine (s) or multi-core processor (s)
  • the processing engine 112 may be one or more hardware processors, such as a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • ASIP application-specific instruction-set processor
  • GPU graphics processing unit
  • PPU physics processing unit
  • DSP digital signal processor
  • FPGA field programmable gate array
  • PLD programmable logic device
  • controller a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any
  • the network 120 may facilitate exchange of information and/or data.
  • one or more components of the system 100 e.g., the server 110, the user terminal 130, and the storage 140
  • the server 110 may obtain a route planning request including a start time from a user terminal via the network 120.
  • the server 110 may direct the user terminal to display an optimal path on a user interface of the user terminal in response to the route planning request via the network 120.
  • the network 120 may be any type of wired or wireless network, or combination thereof.
  • the network 120 may be a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof.
  • the network 120 may include one or more network access points.
  • the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, ... , through which one or more components of the system 100 may be connected to the network 120 to exchange data and/or information between them.
  • the user terminal 130 may be any electronic device used by a service requester of a route planning service.
  • the user terminal 130 may be a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a desktop computer 130-4, or the like, or any combination thereof.
  • the mobile device 130-1 may be a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
  • the wearable device may be a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
  • the smart mobile device may be a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may be a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may be a Google Glass TM , a RiftCon TM , a Fragments TM , a Gear VR TM , etc.
  • the desktop computer 130-4 may be an onboard computer, an onboard television, etc.
  • the user terminal 130 may be a device with positioning technology for locating the position of the passenger and/or the user terminal 130.
  • the positioning technology used in the present disclosure may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a Galileo positioning system, a quasi-zenith satellite system (QZSS) , a wireless fidelity (WiFi) positioning technology, or the like, or any combination thereof.
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • COMPASS compass navigation system
  • Galileo positioning system Galileo positioning system
  • QZSS quasi-zenith satellite system
  • WiFi wireless fidelity
  • the user terminal 130 may further include at least one network port.
  • the at least one network port may be configured to send information to and/or receive information from one or more components in the system 100 (e.g., the server 110, the storage 140) via the network 120.
  • the user terminal 130 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2, or a mobile device 300 having one or more components illustrated in FIG. 3 in the present disclosure.
  • the storage 140 may store data and/or instructions.
  • the storage 140 may store data (e.g., a route planning request including a start time) obtained from the user terminal 130.
  • the storage 140 may store historical data of a link (e.g., a historical travel time cost of the link at particular time, a count of historical vehicles that traveled on the link at particular historical time, or a count of planned vehicles that being planned to the link within a predetermined historical time period) .
  • the storage 140 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure.
  • the storage 140 may be a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof.
  • Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc.
  • Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc.
  • Exemplary volatile read-and-write memory may include a random-access memory (RAM) .
  • Exemplary RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc.
  • Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc.
  • the storage 140 may be implemented on a cloud platform.
  • the cloud platform may be a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the storage 140 may include at least one network port to communicate with other devices in the system 100.
  • the storage 140 may be connected to the network 120 to communicate with one or more components of the system 100 (e.g., the server 110, the user terminal 130) via the at least one network port.
  • One or more components in the system 100 may access the data or instructions stored in the storage 140 via the network 120.
  • the storage 140 may be directly connected to or communicate with one or more components in the system 100 (e.g., the server 110, the user terminal 130) .
  • the storage 140 may be part of the server 110.
  • one or more components of the system 100 may communicate with each other in form of electronic and/or electromagnetic signals, through wired and/or wireless communication.
  • the system 100 may further include at least one data exchange port.
  • the at least one exchange port may be configured to receive information and/or send information relating to the route planning service (e.g., in form of electronic signals and/or electromagnetic signals) between any electronic devices in the system 100.
  • the at least one data exchange port may be one or more of an antenna, a network interface, a network port, or the like, or any combination thereof.
  • the at least one data exchange port may be a network port connected to the server 110 to send information thereto and/or receive information transmitted therefrom.
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, and/or the user terminal 130 may be implemented according to some embodiments of the present disclosure.
  • the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
  • the computing device 200 may be used to implement a system 100 for the present disclosure.
  • the computing device 200 may be used to implement any component of system 100 that perform one or more functions disclosed in the present disclosure.
  • the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof.
  • only one such computer is shown, for convenience, the computer functions relating to the online to offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
  • the computing device 200 may include COM ports 250 connected to and from a network connected thereto to facilitate data communications.
  • the COM port 250 may be any network port or data exchange port to facilitate data communications.
  • the computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors (e.g., logic circuits) , for executing program instructions.
  • the processor may include interface circuits and processing circuits therein.
  • the interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process.
  • the processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals.
  • the processing circuits may also generate electronic signals including the conclusion or the result and a triggering code.
  • the trigger code may be in a format recognizable by an operation system (or an application installed therein) of an electronic device (e.g., the user terminal 130) in the system 100.
  • the trigger code may be an instruction, a code, a mark, a symbol, or the like, or any combination thereof, that can activate certain functions and/or operations of a mobile phone or let the mobile phone execute a predetermined program (s) .
  • the trigger code may be configured to rend the operation system (or the application) of the electronic device to generate a presentation of the conclusion or the result (e.g., a prediction result) on an interface of the electronic device. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
  • the exemplary computing device may include the internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device.
  • the exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220.
  • the methods and/or processes of the present disclosure may be implemented as the program instructions.
  • the exemplary computing device may also include operation systems stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220.
  • the program instructions may be compatible with the operation systems for providing the online to offline service.
  • the computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components.
  • the computing device 200 may also receive programming and data via network communications.
  • processors are also contemplated; thus, operations and/or method steps performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors.
  • the processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
  • the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390.
  • the CPU may include interface circuits and processing circuits similar to the processor 220.
  • any other suitable component including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
  • a mobile operating system 370 e.g., iOS TM , Android TM , Windows Phone TM , etc.
  • one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340.
  • the applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to the route planning service.
  • User interactions with the information stream may be achieved via the I/O devices 350 and provided to the processing engine 112 and/or other components of the system 100 via the network 120.
  • computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein (e.g., the system 100, and/or other components of the system 100 described with respect to FIGs. 1-10) .
  • the hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to determine an optimal path for a route planning request as described herein.
  • a computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming and general operation of such computer equipment and as a result the drawings should be self-explanatory.
  • an element of the system 100 may perform through electrical signals and/or electromagnetic signals.
  • the server 110 may operate logic circuits in its processor to process such task.
  • the processor of the server 110 may generate electrical signals encoding the optimal path.
  • the processor of the server 110 may then send the electrical signals to at least one data exchange port of a target system associated with the server 110.
  • the server 110 communicates with the target system via a wired network, the at least one data exchange port may be physically connected to a cable, which may further transmit the electrical signals to an input port (e.g., an inforamtion exchange port) of the user terminal 130. If the server 110 communicates with the target system via a wireless network, the at least one data exchange port of the target system may be one or more antennas, which may convert the electrical signals to electromagnetic signals.
  • the at least one data exchange port of the target system may be one or more antennas, which may convert the electrical signals to electromagnetic signals.
  • an electronic device such as the user terminal 130, and/or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals.
  • the processor when it retrieves or saves data from a storage medium (e.g., the storage 140) , it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium.
  • the structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device.
  • an electrical signal may be one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
  • FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure.
  • the processing engine 112 may include a request obtaining module 410, a candidate path determining module 420, a weight determining module 430, an optimal path determining module 440, and a displaying module 450.
  • the request obtaining module 410 may be configured to obtain a route planning request from a user terminal.
  • the route planning request may include information such as a start time, a start location, an end location, a travel mode, a driving history of a user of the user terminal, a profile information of the user, or the like, or any combination thereof.
  • the start time may refer to a time when the user begins a trip from the start location to the end location.
  • the information may be obtained from one or more components of the system 100 (e.g., the storage 140, the user terminal 130) or an external source that can communicate with the system 100.
  • the candidate path determining module 420 may be configured to determine a plurality of candidate paths for the route planning request.
  • a candidate path may refer to a route with directions from the start location associated with the route planning request to the end location associated with the route planning request.
  • a candidate path may include a plurality of links, and each link may represent a road segment of the candidate path.
  • the plurality of candidate paths may be historical routes from the start location to the end location that one or more users of the system 100 have ever traveled in the history. The historical routes may be stored in any storage (e.g., the storage 140) of the system 100.
  • the candidate path determining module 420 may access the storage to obtain the plurality of candidate paths.
  • the plurality of candidate paths may be routes from the start location to the end location that are planned by an online electronic map.
  • the candidate path determining module 420 may determine the plurality of candidate paths according to the online electronic map.
  • the weight determining module 430 may be configured to determine a weight of a link.
  • the weight of the link may indicate an actual estimated travel time cost of the link.
  • the actual estimated travel time cost of the link may refer to a modified estimated travel time cost of the link that is determined based on an estimated travel time cost of the link by considering vehicle-link information of the link. The greater the weight of the link is, the longer the actual estimated travel time cost of the link may be.
  • the weight determining module 430 may determine an estimated travel time of the link and vehicle information of the link to further determine the weight of the link. For example, the weight determining module 430 may determine the estimated travel time of the link based on a historical travel time cost of the link and a current travel time cost on the link.
  • the weight determining module 430 may determine the vehicle information of the link, such as, a count of historical vehicles that traveled on the link, a count of current vehicles on the link, and/or a count of planned vehicles that being planned to the link. As still another example, the weight determining module 430 may determine the weight of the link according to an algorithm or a formula based on the estimated travel time and the vehicle information of the link. More descriptions of determining the weight of the link may be found elsewhere in the present disclosure (e.g., operations 530-550 in FIG. 5, FIGs. 6-8 and the descriptions thereof) .
  • the optimal path determining module 440 may be configured to determine an optimal path for the route planning request. For example, the optimal path determining module 440 may select the optimal path from the plurality of candidate paths. In some embodiments, the optimal path determining module 440 may determine a path weight for each candidate path based on the weight of each link of the plurality of links of each candidate path. The optimal path determining module 440 may determine a candidate path that has the minimum path weight as the optimal path. More descriptions of determining the optimal path may be found elsewhere in the present disclosure (e.g., operation 560 in FIG. 5, FIG. 9 and the descriptions thereof) .
  • the displaying module 450 may be configured to direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request. In some embodiments, the displaying module 450 may further direct the user terminal to display one or more candidate paths on the user interface of the user terminal.
  • the modules in the processing engine 112 may be connected to or communicate with each other via a wired connection or a wireless connection.
  • the wired connection may be a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof.
  • the wireless connection may be a Local Area Network (LAN) , a Wide Area Network (WAN) , a Bluetooth, a ZigBee, a Near Field Communication (NFC) , or the like, or any combination thereof.
  • LAN Local Area Network
  • WAN Wide Area Network
  • Bluetooth a ZigBee
  • NFC Near Field Communication
  • the weight determination module 420 may be divided into two or more units for determining the estimated travel time cost of the link, determining the vehicle-link information of the link, and determining the weight of the link, respectively.
  • the processing engine 112 may include a storage module (not shown) used to store data and/or information relating to the route planning service.
  • FIG. 5 is a flowchart illustrating an exemplary process 500 for route planning according to some embodiments of the present disclosure.
  • the process 500 may be executed by the system 100.
  • the process 500 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 500.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 5 and described below is not intended to be limiting.
  • the processing engine 112 may obtain a route planning request including a start time from a user terminal.
  • the start time may refer to a time when a user of the user terminal begins a trip.
  • the start time may be a current time or a future time set by a user of the user terminal.
  • the user may request for route planning when the user intends to begin the trip at the current time.
  • the current time may refer to the present moment when the user sends the route planning request or a defined time reasonably close to the present moment for an ordinary person in the art (e.g., 1 minute, 2 minutes, or 5 minutes after the present moment) .
  • the user may request for a route planning when the user intends to begin the trip at a future time.
  • the future time may refer to a time reasonably long from the present moment for the ordinary person in the art (e.g., 30 minutes, 1 hour, 2 hours, or 1 day after the present moment) .
  • the start time may be a default setting of the system 100 (e.g., the current time) if the user dose not set the start time.
  • obtaining a route planning request may refer to “obtaining information related to the route planning request” .
  • the route planning request may be associated with a particular trip that the user intends to begin.
  • the route planning request may include a start location and an end location associated with the particular trip.
  • the start location or the end location may include name information and/or address information, which may be set by the user.
  • the user may select or input the name and/or address of the start location or the end location on a user interface of the user terminal (e.g., the user terminal 130) .
  • the route planning request may include the current location of the user (i.e., the current location of the user terminal) when the user sent the route planning request.
  • the current location may be set as the start location by default if the user does not select or input the start location.
  • the route planning request may further include a travel mode (e.g., by driving a car, by hailing a car, by bicycle, or by walking) , a driving history (e.g., historical travel routes, historical travel time, a count of historical travels, etc. ) of the user that reflects his/her driving habits, profile information of the user (e.g., a gender, an age, contact information, a telephone number, an education level, an address, an occupation, a marriage state, a criminal record, a credit record, a traffic violation record, etc. ) , or the like, or any combination thereof.
  • a travel mode e.g., by driving a car, by hailing a car, by bicycle, or by walking
  • a driving history e.g., historical travel routes, historical travel time, a count of historical travels, etc.
  • profile information of the user e.g.,
  • the information related to the route planning request may be obtained from one or more components of the system 100.
  • information such as the start time, the start location and the end location may be inputted by the user via the user terminal and be transmitted to and/or stored in the storage 140.
  • the processing engine 112 may retrieve the information from the storage 140 or obtain the information from the user terminal via the network 120. Additionally or alternatively, a portion of the information related to the route planning request may be obtain from an external source that can communicate with the system 100 via the network 120.
  • the profile information of the user may be obtained from one or more third-party applications that share the user information with the system 100.
  • the processing engine 112 may obtain the traffic violation record of the user from a website or a database of traffic violation records.
  • the processing engine 112 may determine a plurality of candidate paths for the route planning request.
  • each candidate path may include a plurality of links.
  • a candidate path may refer to a route with directions from the start location to the end location of the route planning request. From the start location to the end location of the route planning request, there may be a plurality of candidate paths.
  • the plurality of candidate paths may be historical routes from the start location to the end location that one or more users of the system 100 have ever traveled in the history. The historical routes may be stored in any storage (e.g., the storage 140) of the system 100.
  • the processing engine 112 may access the storage to obtain the plurality of candidate paths.
  • the plurality of candidate paths may be routes from the start location to the end location that are planned by an online electronic map. The processing engine 112 may determine the plurality of candidate paths according to the online electronic map.
  • a link may be a road segment or a part of a road that has a certain direction.
  • a link may have a predetermined length.
  • the links may have varying lengths.
  • the predetermined length may be a default value stored in a storage device of the system 100 (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) , or determined by the system 100 or an operator thereof according to different application scenarios.
  • Two adjacent links in a candidate path may be connected by a common node.
  • the common node may be an intersection that includes the two adjacent links or may be a virtual point that connects two (or more) links.
  • the processing engine 112 may determine an estimated travel time cost of the link at a target time associated with the start time.
  • the estimated travel time cost of the link may refer to an estimated time that a vehicle associated with the user terminal will spend to pass through the link.
  • the target time associated with the start time may refer to a time point that the vehicle associated with the user terminal may start to travel on the link.
  • the target time may be the start time of the route planning request.
  • the target time may be an estimated time point calculated from the start time.
  • the target time of link l1 may be the start time of the route planning request.
  • the target time of link l2 may be determined based on the target time of link l1 and an estimated time cost of link l1.
  • the target time of link l2 may be 9: 10 am.
  • the target time of links l3, l4 and l5 may be determined similarly as the target time of link l2, and may not be repeated here.
  • the estimated travel time costs of the link at different target time may be different.
  • an estimated travel time cost of the link at 8: 00 am on a weekday may be more than an estimated travel time cost at 10: 00 am on the weekday because 8: 00 am on a weekday is within a morning rush.
  • an estimated travel time cost of the link at 11: 00 am on a weekday may be less than an estimated travel time cost at 11: 00 am on a weekend (e.g., a day of Saturday or Sunday) because more people may travel for entertainment on weekends than weekdays.
  • the processing engine 112 may determine the estimated travel time cost of the link at the target time based on a historical travel time cost of the link at a historical target time corresponding to the target time and a current travel time cost on the link at the current time.
  • the historical travel time cost of the link at the historical target time may be determined based on a plurality of historical travel time costs of the link at a plurality of historical target time in past periods (e.g., the past week, the past month) by statistical algorithms.
  • the current travel time cost on the link at the current time may be determined based on a plurality of travel time costs on the link associated with the current time by statistical algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof. More descriptions of determining the estimated travel time cost of the link at a target time may be found elsewhere in the present disclosure (e.g., FIGs. 7 and 8 and the descriptions thereof) .
  • the processing engine 112 may obtain vehicle-link information relating to a count of vehicles associated with the link.
  • the vehicle-link information may refer to information relating to vehicle information associated with a link.
  • the vehicle-link information may be information relating to a count of vehicles on the link.
  • the vehicle-link information relating to the count of vehicles on the link may include information of historical vehicles on the link (e.g., a count of historical vehicles that traveled on the link at a historical target time corresponding to the target time) , information of current vehicles on the link (e.g., a count of current vehicles traveling on the link at a current time) , information of planned vehicles on the link (e.g. a count of planned vehicles that are being planned to travel on the link within a predetermined historical time period) , or the like, or any combination thereof.
  • the count of historical vehicles that traveled on the link at the historical target time may be determined based on a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target time in past periods (e.g., the past week, the past month) by statistical algorithms.
  • the count of current vehicles on the link at the current time may be determined based on a plurality of counts of vehicles on the link associated with the current time by statistical algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof.
  • the statistical algorithms for determining the count of historical vehicles and the count of current vehicles may be same or different.
  • the count of planned vehicles that are being planned to travel on the link within a predetermined historical time period may be obtained by a route planning system (e.g., the system 100) .
  • the vehicle-link information may be stored in a storage (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) of the system 100.
  • the processing engine 112 may access the storage to obtain the vehicle-link information. More descriptions of obtaining the vehicle-link information may be found elsewhere in the present disclosure (e.g., FIG. 6 and the descriptions thereof.
  • the processing engine 112 may determine a weight of the link based on the estimated travel time cost and the vehicle-link information.
  • the weight of the link may indicate an actual estimated travel time cost of the link.
  • the actual estimated travel time cost of the link may refer to an estimated time that the vehicle will spend to pass through the link after consideration of the vehicle-link information. The greater the weight of the link is, the longer the actual estimated travel time cost of the link may be.
  • the weight of the link may further indicate a probability that the link will be part of an optimal path being recommended to the user terminal in response to the route planning request. In some embodiments, the greater the weight of the link is, the longer the actual estimated travel time cost of the link may be, and the less likely that the link being part of an optimal path may be.
  • the weight of the link may further indicate a ratio of the candidate paths that include the link and all of the plurality of candidate paths, in essence the percentage of paths that include the link. In some embodiments, the weight of the link reflects all the factors, such as but not limited to the estimated travel time cost, the likelihood that the link is part of the optimal path, and the percentage of candidate paths that include the link.
  • the weight of the link may be determined based on the estimated travel time cost and the vehicle-link information according to Equation (1) below:
  • count hc refers to a count of historical vehicles that traveled on the i-th link at a historical target time corresponding to the start time
  • count cc refers to a count of current vehicles traveling on the i-th link at the current time
  • count rp refers to a count of planned vehicles that being planned to the i-th link within a predetermined historical time period
  • refers to a parameter that may be a default setting of the system 100 (e.g., 0.3) or may be adjustable in different situations.
  • the weight may be a relative value larger than 1.
  • the processing engine 112 may determine a preliminary weight for each link.
  • the preliminary weight may be a default setting of the system 100.
  • the processing engine 112 may determine whether to update the preliminary weight of the link based on a predetermined threshold. If the difference between the preliminary weight of the link and the weight of the link is greater than the predetermined threshold, the processing engine 112 may update the preliminary weight of the link as the weight of the link determined according to Equation (1) . Alternatively, if the difference between the preliminary weight of the link and the weight of the link is less than or equal to the predetermined threshold, the processing engine 112 may not update the preliminary weight of the link.
  • the predetermined threshold may be a preset value or can be adjusted, and it may be stored in a storage (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) of the system 100, or dynamically determined based on different situations (e.g., a congestion degree of the link) .
  • the processing engine 112 may determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
  • the optimal path may refer to a most appropriate path that saves the user’s time and/or effectively eases congestion.
  • the optimal path may be a candidate path that has the minimum actual estimated travel time in comparison with that of other candidate paths among the plurality of candidate paths.
  • the actual estimated travel time of a candidate path may be indicated partly by a path weight of the candidate path.
  • the path weight of the candidate path may be determined based on the weight of each link of the plurality of links of the candidate path.
  • a path weight of a candidate path may be a sum of weights of links that included in the candidate path.
  • a path weight of a candidate path takes into consideration the weight of certain links that are shared by more than one candidate paths.
  • the processing engine 112 may determine a plurality of path weights corresponding to the plurality of candidate paths. Each path weight may correspond to a candidate path. The processing engine 112 may select the optimal path from the plurality of candidate paths that has the minimum path weight among the plurality of path weights corresponding to the plurality of candidate paths. More descriptions of determining the optimal path may be found elsewhere in the present disclosure (e.g., FIGs. 8 and 9 and the descriptions thereof) .
  • the system and methods of the present disclosure may balance the overall travel time of a group of users versus the travel time of a single user.
  • the optimal path is a path that prevent congestion and ensure that the group of users (e.g. 2, 5, 10, 50, 100 or more users) , as a whole, have the lowest overall travel time. For example, if after calculation, one user has two candidate paths, A and B, that respectively have a travel time of 100 and 95 minutes, it would be possible, but not mandatory, that path A is chosen as the optimal path if selecting path A results in a group of 50 users saving an overall 50 minutes of travel time.
  • the “sacrifice” of the user may be kept minimum, for example, according to a threshold (e.g. 5 minutes or 5%of overall travel time) .
  • the “sacrifice” of the user may be pre-approved by the user.
  • the processing engine 112 may send signals to a mobile device associated with the user, directing the mobile device to display a message that outlines the alternatives.
  • the message may indicate that path A and path B have similar estimated travel time or that the travel time of path A is slightly longer than that of path B, but choosing path A will resulting in less congestion as a whole, inquiring it is acceptable to choose path A.
  • path A may be selected as the optimal path.
  • the processing engine 112 may direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request.
  • the user may begin the trip based on the optimal path, for example, by confirming the optimal path on the user interface.
  • the optimal path displayed on the user interface may include the start location associated with the route planning request, the end location associated with the route planning request, an actual estimated time cost of the optimal path, a distance of the optimal path, or the like, or any combination thereof.
  • the processing engine 112 may update and display an optimal path on the user interface of the user terminal during the trip. For example, when the processing engine 112 determine that the current displayed optimal path is no long the optimal one, the processing engine 112 may determine and display another optimal path for the user.
  • operations 530-550 may be integrated into a single step.
  • the weight of the link may be determined based on an estimated travel velocity of the link and the vehicle link information of the link, similar to that based on the estimated travel time of the link and the vehicle link information of the link described in operation 550.
  • the estimated travel velocity of the link may be determined based on the estimated travel time of the link and a length of the link.
  • FIG. 6 is a flowchart illustrating an exemplary process 600 for determining vehicle-link information according to some embodiments of the present disclosure.
  • the process 600 may be executed by the system 100.
  • the process 600 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 600.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 6 and described below is not intended to be limiting.
  • the processing engine 112 may determine a count of historical vehicles that traveled on the link at a historical target time corresponding to the start time.
  • the historical target time corresponding to the start time may be a same historical time as the target time. For example, if the target time associated with the start time is 9: 10 am today (weekday) , the historical target time corresponding to the start time may be 9: 10 am at a particular historical day before today (e.g., yesterday, a same date in the last month, a same date in the last year, etc. ) or a plurality of historical days before today (e.g., a plurality of weekdays in the last month, a plurality of weekdays in the last year, a plurality of same dates in several past months, etc. ) .
  • a particular historical day before today e.g., yesterday, a same date in the last month, a same date in the last year, etc.
  • a plurality of historical days before today e.g., a plurality of weekdays in the last month, a plurality of weekdays in the last year, a plurality of same dates in several past months, etc
  • the historical vehicles may refer to vehicles that ever traveled on the link in past periods (e.g., several past days, several past weeks, several past months, etc. ) .
  • the count of historical vehicles that traveled on the link at the historical target time corresponding to the start time may be an average count of historical vehicles that traveled on the link at a same time with the target time in a predetermined period of time in the history.
  • the average count of historical vehicles that traveled on the link at the historical target time may be determined based on a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target times in the predetermined period of time in the history (e.g., past periods such as the past week, the past month, etc. ) by statistical algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof.
  • the processing engine 112 may determine whether the start time is on a weekday or a weekend. In response to a determination that the start time is on a weekday, the processing engine 112 may obtain a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target time in several past weekdays (e.g., 30 weekdays except weekends before the weekday that the start time is on) . For example, the count of historical vehicles that traveled on the link at the historical target time may be determined according to Equation (2) :
  • count hc refers to the count of historical vehicles that traveled on the link at the historical target time
  • M refers to a count of the past weekdays
  • count i refers to a historical count of historical vehicles that traveled on the link at a historical target time on an i-th weekday
  • ⁇ M count i refers to a sum of the historical counts of historical vehicles that traveled on the link at the historical target time in the M past weekdays.
  • the processing engine 112 may obtain a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target times in several past weekends (e.g., 30 weekends before the weekend that the start time is on) .
  • the processing engine 112 may determine the count of historical vehicles that traveled on the link at the historical target time based on the plurality of historical counts of historical vehicles that traveled on the link at the plurality of historical target time in past weekends similar to Equation (2) .
  • the processing engine 112 may determine a count of current vehicles traveling on the link at a current time.
  • the current vehicles traveling on the link at the current time may refer to vehicles that are traveling on the link at the current time.
  • the processing engine 112 may obtain the count of current vehicles that are traveling on the link in real-time.
  • the processing engine 112 may obtain the count of current vehicles that are traveling on the link within a predetermined time period (e.g., five minutes, 10 minutes) around the current time. For example, if the current time is 8: 30 am, the processing engine 112 may determine a count of vehicles that are traveling on the link from 8: 20 to 8: 30 and designate the determined count of vehicles as the count of current vehicles traveling on the link at the 8: 30.
  • the processing engine 112 may determine a count of planned vehicles that being planned to the link within a predetermined historical time period.
  • a planned vehicle that is being planned to travel on the link may refer to a vehicle that being recommended to the link by a route planning system (e.g., the system 100) .
  • the route planning system planned a route including the link for a user associated with the vehicle, regardless whether the route is confirmed by the user, the vehicle may be a planned vehicle.
  • the system 100 may recommend at least one route for the user in response to the route planning request. If any one of the recommend route incudes the link, a vehicle associated with the user terminal may be regarded as a planned vehicle that is being planned to travel on the link.
  • the predetermined historical time period may be a predetermined time period (e.g., half of an hour, an hour, two hours) before the current time.
  • the count of planned vehicles that is being planned to travel on the link within the predetermined historical time period may be obtained from one or more components of the system 100 (e.g., the storage 140) . Taking the predetermined time period of an hour and the current time of 8: 00 am as an example, the predetermined historical time period may range from 7: 00 am to 8: 00 am.
  • the planned vehicles that is being planned to travel on the link may be stored in the storage 140.
  • the processing engine 112 may directly obtain the count of planned vehicles that is being planned to travel on the link from 7: 00 am to 8: 00 am from the storage 140 of the system 100.
  • the predetermined historical time period may be a preset period stored in the system 100, or be dynamically determined according to different situations (e.g., different current time, different links, etc. ) .
  • the processing engine 112 may determine the vehicle-link information relating to the count of vehicles associated with the link based on the count of historical vehicles, the count of current vehicles, and the count of planned vehicles.
  • the processing engine 112 may determine a weight of the link based on the vehicle-link information relating to the count of vehicles associated with the link according to Equation (1) .
  • Equation (1) may also be expressed as which shows that: the greater the count of historical vehicles that traveled on the link is, the less the weight of the link may be; the greater the count of current vehicles traveling on the link is, the greater the weight of the link may be; and the greater the count of planned vehicles that is being planned to travel on the link is, the greater the weight of the link may be.
  • part of Equation (1) relating to the count of vehicles associated with the link such as may be assign as the vehicle-link information. The greater the vehicle-link information is, the greater the weight of the link may be.
  • FIG. 7 is a flowchart illustrating an exemplary process 700 for determining an estimated travel time cost according to some embodiments of the present disclosure.
  • the process 700 may be executed by the system 100.
  • the process 700 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 700.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 700 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 7 and described below is not intended to be limiting.
  • the processing engine 112 may obtain a historical travel time cost of the link at the historical target time corresponding to the target time.
  • the historical travel time cost may be an average time cost that a plurality of historical vehicles spent to pass through the link at the historical target times that are similar to the target time in a predetermined period of time in the history.
  • the historical travel time cost may be determined based on a plurality of historical travel time costs of the link at a plurality of historical target time within the predetermined period of time in the history (e.g., within the past week, within the past month, etc. ) by statistical algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof.
  • the processing engine 112 may obtain counts of historical travel time costs of the link at 9: 00 on every past weekdays within 30 days in the history directly from one or more components of the system 100 (e.g., the storage 140) .
  • the processing engine 112 may determine an average historical travel time cost of the obtained counts of historical travel time costs of the link as the historical travel time cost at the 9: 00 am. More descriptions of determining the historical travel time cost may be found elsewhere in the present disclosure (e.g., FIG. 8 and the descriptions thereof) .
  • the processing engine 112 may obtain a current travel time cost on the link at the current time.
  • the current travel time cost may be an average time cost that a vehicle spends to pass through the link at the current time.
  • the current travel time cost at the current time may be determined based on an average time cost of travel time costs within a preset time period before the current time. For example, if the current time is 8: 30 am and the preset time period is 10 minutes, the processing engine 112 may obtain travel time costs on the link from 8: 20 to 8: 30. The processing engine 112 may determine an average of the travel time costs as the current travel time cost at the current time.
  • the preset time period may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations.
  • the processing engine 112 may determine a time interval between the start time and the current time.
  • the time interval between the start time and the current time may be measured in different dimensions (e.g., minutes or hours) .
  • the time interval between the start time and the current time may be 30 munities or 0.5 hour.
  • the time interval between the start time and the current time may be 480 minutes or 8 hours.
  • the processing engine 112 may determine the estimated travel time cost based on the historical travel time cost, the current travel time cost, and the time interval.
  • the processing engine 112 may determine whether the time interval is less than a predetermined interval (e.g., 60 minutes, 2 hours) .
  • the predetermined interval may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations.
  • the processing engine 112 may determine the estimated travel time cost based on the historical travel time cost and the current travel time cost.
  • the processing engine 112 may determine the estimated travel time cost only based on the historical travel time cost. For example, the processing engine 112 may determine the estimated travel time cost according to Equation (4) below:
  • t f refers to the time interval between the start time and the current time
  • refers to the predetermined interval, t f and ⁇ having the same measurement dimension (e.g., both in minutes or hours) .
  • the predetermined interval ( ⁇ ) is 60 minutes
  • the processing engine 112 may determine ⁇ as 1, and the estimated travel time cost as The estimated travel time cost may be determined only based on the historical travel time cost
  • the processing engine 112 may determine ⁇ as and the estimated travel time cost as
  • FIG. 8 is a flowchart illustrating an exemplary process 800 for determining a historical travel time cost according to some embodiments of the present disclosure.
  • the process 800 may be executed by the system 100.
  • the process 800 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 800.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 8 and described below is not intended to be limiting.
  • the processing engine 112 may determine that the start time is on a weekday or a weekend.
  • the weekday may be a day that a large number of people are at work, and the weekend may be a day that a large number of people are on leave or on holiday.
  • the weekday may be a default setting of any day from Monday to Friday, and the weekend may be a default setting of a day of Saturday or Sunday.
  • the weekday may not include a day belongs to legal holidays even the day is from Monday to Friday and the day may be set as a weekend.
  • the processing engine 112 in response to a determination that the start time is on a weekday, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a first predetermined count of historical weekdays as the historical travel time cost.
  • the first predetermined count of historical weekdays may include a first predetermined count of consecutive weekdays before the weekday that the start time is on. For example, if the first predetermined count is 5 and the weekday that the start time is on is Friday in this week, the historical weekdays may include four days from Monday to Thursday in this week and a day of Friday in the last week.
  • the first predetermined count may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations.
  • the processing engine 112 may obtain historical travel time cost of the link at the historical target time for each historical weekday from one or more components of the system 100 (e.g., the storage 140) .
  • the processing engine 112 may determine the average historical travel time cost of the link at the historical target time of the first predetermined count of historical weekdays based on the historical travel time costs of the link at the historical target time of the historical weekdays.
  • the processing engine 112 may designate the average historical travel time cost of the link at the historical target time of the first predetermined count of historical weekdays as the historical travel time cost. For example, the processing engine 112 may determine the historical travel time cost of the link at the historical target time according to Equation (3) below:
  • H refers to the first predetermined count of historical weekdays
  • H refers to a historical travel time cost of a historical weekday
  • the processing engine 112 may obtain each historical travel time cost of the link at the historical target time on each weekdays of Monday to Thursday in this week and Friday in last week, and determine the average travel time cost of these weekdays according to Equation (3) .
  • the processing engine 112 may determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a second predetermined count of historical weekends as the historical travel time cost.
  • the second predetermined count of historical weekends may include a second predetermined count of consecutive weekends before the weekend that the start time is on. For example, if the second predetermined count is 5 and the weekend that the start time is on is Sunday in this week, the historical weekends may include a day of Saturday in this week, two days of Saturday and Sunday in last week, and two days of Saturday and Sunday in the week before the last week.
  • the second predetermined count may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations.
  • the processing engine 112 may obtain historical travel time cost of the link at the historical target time for each historical weekend from one or more components of the system 100 (e.g., the storage 140) .
  • the processing engine 112 may determine the average historical travel time cost of the link at the historical target time of the second predetermined count of historical weekends based on the historical travel time costs of the link at the historical target time of the historical weekends, which is similar to Equation (3) .
  • the processing engine 112 may designate the average historical travel time cost of the link at the historical target time of the second predetermined count of historical weekends as the historical travel time cost.
  • the processing engine 112 may obtain each historical travel time cost of the link at the historical target time on each weekends including Saturday in this week, Saturday and Sunday in last week, and two days of Saturday and Sunday in the week before the last week, and determine the average travel time cost of these weekends according to Equation (3) .
  • FIG. 9 is a flowchart illustrating an exemplary process 900 for determining an optimal path according to some embodiments of the present disclosure.
  • the process 900 may be executed by the system 100.
  • the process 900 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 900.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 900 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 9 and described below is not intended to be limiting.
  • the process in 910-920 demonstrates one possible approach to determine the optimal path. It should be noted, however, that other alternatives do exist and other factors may be taken into consideration in determination of the optimal path.
  • the processing engine 112 e.g., the processor 220, the optimal path determining module 440
  • the weight sum of the plurality of weights of the plurality of links of the candidate path may be designated as the path weight of the candidate path.
  • the path weight of the candidate path may indicate an actual estimated travel time cost of the candidate path, which may further indicate a congestion degree of the candidate path. The greater the path weight of the candidate path is, the longer the actual estimated travel time cost of the candidate path may be, and the less probability that the candidate path is determined as an optimal path.
  • the path weight of the candidate path may be a sum of W1, W2, W3, W4, and W5.
  • the path weight of the candidate path may be determined according to other methods.
  • the path weight of the candidate path may be an average value of W1, W2, W3, W4, and W5.
  • the processing engine 112 may determine the optimal path based on the weight sums corresponding to the plurality of candidate paths.
  • the processing engine 112 may determine a plurality of path weights corresponding to the plurality of candidate paths based on the weight sums corresponding to the plurality of candidate paths.
  • the processing engine 112 may rank the plurality of path weights according to a predetermined order (e.g., an ascending order, a descending order) . For example, the greater the path weight is, the higher the ranking of a corresponding candidate path may be. Further, the processing engine 112 may select a candidate path that has the minimum value of path weight as the optimal path.
  • FIG. 10 is a schematic diagram illustrating exemplary candidate paths according to some embodiments of the present disclosure.
  • each line segment with an arrow represents a link
  • each circle represents a node (e.g., an intersection that includes at least one link connected to the intersection) .
  • Multiple links in a direction along the arrows from a start location 1010 to an end location 1020 may form a path, which can be a candidate path.
  • each link may include a preliminary weight.
  • Each candidate path may include a preliminary path weight based on a weight sum of a plurality of preliminary weights of a plurality of links of the candidate path.
  • a candidate path also referred as the first candidate path
  • link L1, link L5, link L6, link L7 and link L8 that have the minimum preliminary path weight among a plurality of preliminary path weights of the plurality of candidate paths may be determined as a preliminary optimal path.
  • the preliminary weight of each link may be updated.
  • the path weight of each candidate path may be updated based on a weight sum of a plurality of updated weights of a plurality of links of the candidate path.
  • the path weight of the first candidate path may be updated based on a weight sum of the updated weights of w1, w5, w6, w7 and w8.
  • a path weight of another candidate path (also referred to as a second candidate path) comprising link L1, link L2, link L3, link L9 and link L8 may be updated based on a weight sum of the updated weights of w1, w2, w3, w9 and w8.
  • a path weight of still another a candidate path (also referred to as a third candidate path) comprising link L1, link L2, link L3, link L4, link L6, link L7 and link L8 may be updated based on a weight sum of the updated weights of w1, w2, w3, w4, w6, w7 and w8.
  • the second candidate path (comprising link L1, link L2, link L3, link L9 and link L8) that has the minimum value of updated path weight may be determined as the optimal path based on updated path weights of the candidate paths.
  • aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electro-magnetic, optical, or the like, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 1703, Perl, COBOL 1702, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service (SaaS) .
  • LAN local area network
  • WAN wide area network
  • an Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, etc.
  • SaaS software as a service
  • the numbers expressing quantities or properties used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ”
  • “about, ” “approximate, ” or “substantially” may indicate ⁇ 20%variation of the value it describes, unless otherwise stated.
  • the numerical parameters set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment.
  • the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the application are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)

Abstract

A system and a method for route planning. The system may perform the method to: obtain a route planning request including a start time from a user terminal; determine a plurality of candidate paths for the route planning request, each candidate path including a plurality of links; for each link of the plurality of links of each candidate path, determine an estimated travel time cost of the link at a target time associated with the start time; obtain vehicle-link information relating to a count of vehicles associated with the link; and determine a weight of the link based on the estimated travel time cost and the vehicle-link information; and determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.

Description

SYSTEMS AND METHODS FOR ROUTE PLANNING
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority of Chinese Application No. 201910469821.2, filed on May 31, 2019, the contents of which are incorporated herein in its entirety by reference.
TECHNICAL FIELD
The present disclosure generally relates to systems and methods for route planning, and more particularly, to systems and methods for providing optimal path to ease congestion.
BACKGROUND
With the popularity of the location based services (LBS) , people’s travel habits are increasingly affected by mobile maps, particularly in their most important and frequently used function of providing route planning and recommendation services. People increasingly rely on the route planning function of the mobile map for travelling. In some occasions, the route planning function of the mobile map, to some extent, has affected the traffic congestions of a city. For example, on weekends, a number of residents (e.g., users of the mobile map) in a same large residential community plan to drive or take a ride to a same shopping mall for entertainment, dining, etc. If all or most of the users are recommended the same route that takes the shortest time (also referred as the shortest route) , there may be a large number of users on the shortest route, which may result in traffic congestion and the users may spend more time to arrive at the shopping mall, at least partly due to the beforehand planning. Thus, it is desirable to provide effective systems and methods for route planning to simultaneously prevent congestion caused by the planning itself, reduce travel time of the users, and improve user experience.
SUMMARY
An aspect of the present disclosure introduces a system for route planning. The system may at least one storage medium including a set of instructions for route planning, and at least one processor in communication with the storage medium. When executing the set of instructions, the at least one processor may perform the following operations. The at least one processor may obtain a route planning request including a start time from a user terminal. The at least one processor may determine a plurality of candidate paths for the route planning request. Each candidate path may include a plurality of links. For each link of the plurality of links of each candidate path, the at least one processor may determine an estimated travel time cost of the link at a target time associated with the start time, obtain vehicle-link information relating to a count of vehicles associated with the link, and determine a weight of the link based on the estimated travel time cost and the vehicle-link information. The at least one processor may determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
In some embodiments, to obtain the vehicle-link information relating to the count of vehicles associated with the link, the at least one processor may further determine a count of historical vehicles that traveled on the link at a historical target time corresponding to the start time; determine a count of current vehicles traveling on the link at a current time; determine a count of planned vehicles that being planned to the link within a predetermined historical time period; and determine the vehicle-link information relating to the count of vehicles associated with the link based on the count of historical vehicles, the count of current vehicles, and the count of planned vehicles.
In some embodiments, to determine the estimated travel time cost, the at least one processor may further obtain a historical travel time cost of the link at the historical target time corresponding to the target time; obtain a current travel time cost on the link at the current time; determine a time interval between the target time  and the current time; and determine the estimated travel time cost based on the historical travel time cost, the current travel time cost, and the time interval
In some embodiments, to obtain the historical travel time cost, the at least one processor may further determine that the start time is on a weekday or a weekend; and in response to a determination that the start time is on a weekday, determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a first predetermined count of historical weekdays as the historical travel time cost.
In some embodiments, to obtain the historical travel time cost, the at least one processor may further determine that the start time is on a weekday or a weekend; and in response to a determination that the start time is on a weekend, determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a second predetermined count of historical weekends as the historical travel time cost.
In some embodiments, to determine the optimal path from the plurality of candidate paths, for each candidate path of the plurality of candidate paths, the at least one processor may further determine a weight sum of a plurality of weights of the plurality of links of the candidate path; and determine the optimal path based on the weight sums corresponding to the plurality of candidate paths.
In some embodiments, the at least one processor may further direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request.
According to another aspect of the present disclosure, a method for route planning may include obtaining a route planning request including a start time from a user terminal; determining a plurality of candidate paths for the route planning request, each candidate path including a plurality of links; for each link of the plurality of links of each candidate path, determining an estimated travel time cost of the link at a target time associated with the start time, obtaining vehicle-link information relating to a count of vehicles associated with the link, and determining a weight of the link based on the estimated travel time cost and the vehicle-link information; and  determining an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
According to still another aspect of the present disclosure, a non-transitory computer readable medium, comprising at least one set of instructions compatible for route planning. When executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method. The method may include obtaining a route planning request including a start time from a user terminal; determining a plurality of candidate paths for the route planning request, each candidate path including a plurality of links; for each link of the plurality of links of each candidate path, determining an estimated travel time cost of the link at a target time associated with the start time, obtaining vehicle-link information relating to a count of vehicles associated with the link, and determining a weight of the link based on the estimated travel time cost and the vehicle-link information; and determining an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
According to still another aspect of the present disclosure, a system for route planning may include a request obtaining module, a candidate path determining module, a weight determining module, and an optimal path determining module. The request obtaining module may be configured to obtain a route planning request including a start time from a user terminal. The candidate path determining module may be configured to determine a plurality of candidate paths for the route planning request. Each candidate path may include a plurality of links. For each link of the plurality of links of each candidate path, the weight determining module may be configured to determine an estimated travel time cost of the link at a target time associated with the start time; obtain vehicle-link information relating to a count of vehicles associated with the link; and determine a weight of the link based on the estimated travel time cost and the vehicle-link information. The optimal path determining module may be configured to determine an optimal path for the route  planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure is further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
FIG. 1 is a schematic diagram illustrating an exemplary system according to some embodiments of the present disclosure;
FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of a computing device according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure;
FIG. 5 is a flowchart illustrating an exemplary process for route planning according to some embodiments of the present disclosure;
FIG. 6 is a flowchart illustrating an exemplary process for determining vehicle-link information according to some embodiments of the present disclosure;
FIG. 7 is a flowchart illustrating an exemplary process for determining an estimated travel time cost according to some embodiments of the present disclosure;
FIG. 8 is a flowchart illustrating an exemplary process for determining a historical travel time cost according to some embodiments of the present disclosure;
FIG. 9 is a flowchart illustrating an exemplary process for determining an optimal path according to some embodiments of the present disclosure; and
FIG. 10 is a schematic diagram illustrating exemplary candidate paths according to some embodiments of the present disclosure.
DETAILED DESCRIPTION
The following description is presented to enable any person skilled in the art to make and use the present disclosure, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments shown but is to be accorded the widest scope consistent with the claims.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises, ” “comprising, ” “includes, ” and/or “including” when used in this disclosure, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
These and other features, and characteristics of the present disclosure, as well as the methods of operations and functions of the related elements of structure and the combination of parts and economies of manufacture, may become more  apparent upon consideration of the following description with reference to the accompanying drawing (s) , all of which form part of this specification. It is to be expressly understood, however, that the drawing (s) are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
The flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
An aspect of the present disclosure relates to systems and methods for route planning. To this end, the systems and methods may obtain vehicle-link information relating to a count of vehicles associated with a link. The vehicle-link information may include a count of historical vehicles that traveled on the link at a particular historical time, a count of current vehicles traveling on the link at a current time, and a count of planned vehicles that are being planned to travel on the link within a predetermined time period before the current time. The systems and methods of the present disclosure may also determine a weight of the link (in regard to time cost for route planning) based on the vehicle-link information. The systems and methods may further determine an optimal path for the route planning based on weights of a plurality of links of one or more possible routes. In this way, the systems and methods of the present disclosure may effectively reduce travel time of the users and ease congestion simultaneously.
FIG. 1 is a schematic diagram of an exemplary (AI) system 100 according to some embodiments of the present disclosure. For example, the system 100 may be an online to offline service platform for providing services such as taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, shuttle services, online navigation services, good delivery services, etc. The system 100 may include a server 110, a network 120, a user terminal 130, and a storage 140.  The server 110 may include a processing engine 112.
The server 110 may be configured to process information and/or data relating to route planning. For example, the server 110 may determine a plurality of candidate paths for a route planning request including a start time. Each candidate path may include a plurality of links. As another example, the server 110 may determine an optimal path for the route planning request from the plurality of candidate paths based on a weight of each link of the plurality of links of each candidate path. As another example, the server 110 may direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request. In some embodiments, the server 110 may be a single server, or a server group. The server group may be centralized, or distributed (e.g., server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110 may access information and/or data stored in the user terminal 130, and/or the storage 140 via the network 120. As another example, the server 110 may connect the user terminal 130, and/or the storage 140 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may be a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
In some embodiments, the server 110 may include a processing engine 112. The processing engine 112 may process information and/or data relating to relating to route planning to perform one or more functions described in the present disclosure. For example, the processing engine 112 may determine an estimated travel time cost of a link at a target time associated with the start time for each link. As another example, the processing engine 112 may determine a weight of the link based on the estimated travel time cost and a vehicle-link information relating to a count of vehicles associated with the link. In some embodiments, the processing  engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing engine 112 may be one or more hardware processors, such as a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
The network 120 may facilitate exchange of information and/or data. In some embodiments, one or more components of the system 100 (e.g., the server 110, the user terminal 130, and the storage 140) may transmit information and/or data to other component (s) in the system 100 via the network 120. For example, the server 110 may obtain a route planning request including a start time from a user terminal via the network 120. As another example, the server 110 may direct the user terminal to display an optimal path on a user interface of the user terminal in response to the route planning request via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network 120 may be a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof. In some embodiments, the network 120 may include one or more network access points. For example, the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, … , through which one or more components of the system 100 may be connected to the network 120 to exchange data and/or information between them.
The user terminal 130 may be any electronic device used by a service requester of a route planning service. In some embodiments, the user terminal 130 may be a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a desktop computer 130-4, or the like, or any combination thereof. In some embodiments, the mobile device 130-1 may be a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the wearable device may be a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof. In some embodiments, the smart mobile device may be a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may be a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof. For example, the virtual reality device and/or the augmented reality device may be a Google Glass TM, a RiftCon TM, a Fragments TM, a Gear VR TM, etc. In some embodiments, the desktop computer 130-4 may be an onboard computer, an onboard television, etc.
In some embodiments, the user terminal 130 may be a device with positioning technology for locating the position of the passenger and/or the user terminal 130. The positioning technology used in the present disclosure may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a Galileo positioning system, a quasi-zenith satellite system (QZSS) , a wireless fidelity (WiFi) positioning technology, or the like, or any combination thereof. One or more of the above positioning technologies may be used interchangeably in the present disclosure.
In some embodiments, the user terminal 130 may further include at least one network port. The at least one network port may be configured to send information to and/or receive information from one or more components in the system 100 (e.g.,  the server 110, the storage 140) via the network 120. In some embodiments, the user terminal 130 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2, or a mobile device 300 having one or more components illustrated in FIG. 3 in the present disclosure.
The storage 140 may store data and/or instructions. For example, the storage 140 may store data (e.g., a route planning request including a start time) obtained from the user terminal 130. As another example, the storage 140 may store historical data of a link (e.g., a historical travel time cost of the link at particular time, a count of historical vehicles that traveled on the link at particular historical time, or a count of planned vehicles that being planned to the link within a predetermined historical time period) . As still another example, the storage 140 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage 140 may be a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. Exemplary volatile read-and-write memory may include a random-access memory (RAM) . Exemplary RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc. Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the storage 140 may be implemented on a cloud platform. Merely by way of example, the cloud platform may be a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
In some embodiments, the storage 140 may include at least one network  port to communicate with other devices in the system 100. For example, the storage 140 may be connected to the network 120 to communicate with one or more components of the system 100 (e.g., the server 110, the user terminal 130) via the at least one network port. One or more components in the system 100 may access the data or instructions stored in the storage 140 via the network 120. In some embodiments, the storage 140 may be directly connected to or communicate with one or more components in the system 100 (e.g., the server 110, the user terminal 130) . In some embodiments, the storage 140 may be part of the server 110.
In some embodiments, one or more components of the system 100 (e.g., the server 110, the user terminal 130, and the storage 140) may communicate with each other in form of electronic and/or electromagnetic signals, through wired and/or wireless communication. In some embodiments, the system 100 may further include at least one data exchange port. The at least one exchange port may be configured to receive information and/or send information relating to the route planning service (e.g., in form of electronic signals and/or electromagnetic signals) between any electronic devices in the system 100. In some embodiments, the at least one data exchange port may be one or more of an antenna, a network interface, a network port, or the like, or any combination thereof. For example, the at least one data exchange port may be a network port connected to the server 110 to send information thereto and/or receive information transmitted therefrom.
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, and/or the user terminal 130 may be implemented according to some embodiments of the present disclosure. For example, the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
The computing device 200 may be used to implement a system 100 for the present disclosure. The computing device 200 may be used to implement any component of system 100 that perform one or more functions disclosed in the present disclosure. For example, the processing engine 112 may be implemented  on the computing device 200, via its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown, for convenience, the computer functions relating to the online to offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
The computing device 200, for example, may include COM ports 250 connected to and from a network connected thereto to facilitate data communications. The COM port 250 may be any network port or data exchange port to facilitate data communications. The computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors (e.g., logic circuits) , for executing program instructions. For example, the processor may include interface circuits and processing circuits therein. The interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. The processing circuits may also generate electronic signals including the conclusion or the result and a triggering code. In some embodiments, the trigger code may be in a format recognizable by an operation system (or an application installed therein) of an electronic device (e.g., the user terminal 130) in the system 100. For example, the trigger code may be an instruction, a code, a mark, a symbol, or the like, or any combination thereof, that can activate certain functions and/or operations of a mobile phone or let the mobile phone execute a predetermined program (s) . In some embodiments, the trigger code may be configured to rend the operation system (or the application) of the electronic device to generate a presentation of the conclusion or the result (e.g., a prediction result) on an interface of the electronic device. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
The exemplary computing device may include the internal communication bus 210, program storage and data storage of different forms including, for example,  a disk 270, and a read only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device. The exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220. The methods and/or processes of the present disclosure may be implemented as the program instructions. The exemplary computing device may also include operation systems stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220. The program instructions may be compatible with the operation systems for providing the online to offline service. The computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components. The computing device 200 may also receive programming and data via network communications.
Merely for illustration, only one processor is illustrated in FIG. 2. Multiple processors are also contemplated; thus, operations and/or method steps performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors. For example, if in the present disclosure the processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
As illustrated in FIG. 3, the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390. The CPU may include interface circuits and processing circuits similar to the processor 220. In some embodiments, any other suitable component, including but not limited  to a system bus or a controller (not shown) , may also be included in the mobile device 300. In some embodiments, a mobile operating system 370 (e.g., iOS TM, Android TM, Windows Phone TM, etc. ) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340. The applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to the route planning service. User interactions with the information stream may be achieved via the I/O devices 350 and provided to the processing engine 112 and/or other components of the system 100 via the network 120.
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein (e.g., the system 100, and/or other components of the system 100 described with respect to FIGs. 1-10) . The hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to determine an optimal path for a route planning request as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming and general operation of such computer equipment and as a result the drawings should be self-explanatory.
One of ordinary skill in the art would understand that when an element of the system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when a server 110 processes a task, such as determining an optimal path for a route planning request, the server 110 may operate logic circuits in its processor to process such task. When the server 110 completes determining the optimal path, the processor of the server 110 may generate electrical signals encoding the optimal path. The processor of the server 110 may then send the electrical signals to at least one data exchange port of a  target system associated with the server 110. The server 110 communicates with the target system via a wired network, the at least one data exchange port may be physically connected to a cable, which may further transmit the electrical signals to an input port (e.g., an inforamtion exchange port) of the user terminal 130. If the server 110 communicates with the target system via a wireless network, the at least one data exchange port of the target system may be one or more antennas, which may convert the electrical signals to electromagnetic signals. Within an electronic device, such as the user terminal 130, and/or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals. For example, when the processor retrieves or saves data from a storage medium (e.g., the storage 140) , it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium. The structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device. Here, an electrical signal may be one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure. As illustrated in FIG. 4, the processing engine 112 may include a request obtaining module 410, a candidate path determining module 420, a weight determining module 430, an optimal path determining module 440, and a displaying module 450.
The request obtaining module 410 may be configured to obtain a route planning request from a user terminal. The route planning request may include information such as a start time, a start location, an end location, a travel mode, a driving history of a user of the user terminal, a profile information of the user, or the like, or any combination thereof. The start time may refer to a time when the user begins a trip from the start location to the end location. The information may be obtained from one or more components of the system 100 (e.g., the storage 140, the user terminal 130) or an external source that can communicate with the system 100.
The candidate path determining module 420 may be configured to determine  a plurality of candidate paths for the route planning request. A candidate path may refer to a route with directions from the start location associated with the route planning request to the end location associated with the route planning request. A candidate path may include a plurality of links, and each link may represent a road segment of the candidate path. In some embodiments, the plurality of candidate paths may be historical routes from the start location to the end location that one or more users of the system 100 have ever traveled in the history. The historical routes may be stored in any storage (e.g., the storage 140) of the system 100. The candidate path determining module 420 may access the storage to obtain the plurality of candidate paths. In some embodiments, the plurality of candidate paths may be routes from the start location to the end location that are planned by an online electronic map. The candidate path determining module 420 may determine the plurality of candidate paths according to the online electronic map.
The weight determining module 430 may be configured to determine a weight of a link. The weight of the link may indicate an actual estimated travel time cost of the link. The actual estimated travel time cost of the link may refer to a modified estimated travel time cost of the link that is determined based on an estimated travel time cost of the link by considering vehicle-link information of the link. The greater the weight of the link is, the longer the actual estimated travel time cost of the link may be. In some embodiments, the weight determining module 430 may determine an estimated travel time of the link and vehicle information of the link to further determine the weight of the link. For example, the weight determining module 430 may determine the estimated travel time of the link based on a historical travel time cost of the link and a current travel time cost on the link. As another example, the weight determining module 430 may determine the vehicle information of the link, such as, a count of historical vehicles that traveled on the link, a count of current vehicles on the link, and/or a count of planned vehicles that being planned to the link. As still another example, the weight determining module 430 may determine the weight of the link according to an algorithm or a formula based on the estimated travel time and the vehicle information of the link. More descriptions of  determining the weight of the link may be found elsewhere in the present disclosure (e.g., operations 530-550 in FIG. 5, FIGs. 6-8 and the descriptions thereof) .
The optimal path determining module 440 may be configured to determine an optimal path for the route planning request. For example, the optimal path determining module 440 may select the optimal path from the plurality of candidate paths. In some embodiments, the optimal path determining module 440 may determine a path weight for each candidate path based on the weight of each link of the plurality of links of each candidate path. The optimal path determining module 440 may determine a candidate path that has the minimum path weight as the optimal path. More descriptions of determining the optimal path may be found elsewhere in the present disclosure (e.g., operation 560 in FIG. 5, FIG. 9 and the descriptions thereof) .
The displaying module 450 may be configured to direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request. In some embodiments, the displaying module 450 may further direct the user terminal to display one or more candidate paths on the user interface of the user terminal.
The modules in the processing engine 112 may be connected to or communicate with each other via a wired connection or a wireless connection. The wired connection may be a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof. The wireless connection may be a Local Area Network (LAN) , a Wide Area Network (WAN) , a Bluetooth, a ZigBee, a Near Field Communication (NFC) , or the like, or any combination thereof. Two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units. For example, the weight determination module 420 may be divided into two or more units for determining the estimated travel time cost of the link, determining the vehicle-link information of the link, and determining the weight of the link, respectively. As another example, the processing engine 112 may include a storage module (not shown) used to store data and/or information relating to the route planning service.
FIG. 5 is a flowchart illustrating an exemplary process 500 for route planning according to some embodiments of the present disclosure. The process 500 may be executed by the system 100. For example, the process 500 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 500. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 5 and described below is not intended to be limiting.
In 510, the processing engine 112 (e.g., the processor 220, the request obtaining module 410) may obtain a route planning request including a start time from a user terminal.
In some embodiments, the start time may refer to a time when a user of the user terminal begins a trip. The start time may be a current time or a future time set by a user of the user terminal. For example, the user may request for route planning when the user intends to begin the trip at the current time. The current time may refer to the present moment when the user sends the route planning request or a defined time reasonably close to the present moment for an ordinary person in the art (e.g., 1 minute, 2 minutes, or 5 minutes after the present moment) . As another example, the user may request for a route planning when the user intends to begin the trip at a future time. The future time may refer to a time reasonably long from the present moment for the ordinary person in the art (e.g., 30 minutes, 1 hour, 2 hours, or 1 day after the present moment) . In some embodiments, the start time may be a default setting of the system 100 (e.g., the current time) if the user dose not set the start time.
As used herein, “obtaining a route planning request” may refer to “obtaining information related to the route planning request” . The route planning request may be associated with a particular trip that the user intends to begin. In some  embodiments, the route planning request may include a start location and an end location associated with the particular trip. The start location or the end location may include name information and/or address information, which may be set by the user. For example, the user may select or input the name and/or address of the start location or the end location on a user interface of the user terminal (e.g., the user terminal 130) . In some embodiments, the route planning request may include the current location of the user (i.e., the current location of the user terminal) when the user sent the route planning request. The current location may be set as the start location by default if the user does not select or input the start location. In some embodiments, the route planning request may further include a travel mode (e.g., by driving a car, by hailing a car, by bicycle, or by walking) , a driving history (e.g., historical travel routes, historical travel time, a count of historical travels, etc. ) of the user that reflects his/her driving habits, profile information of the user (e.g., a gender, an age, contact information, a telephone number, an education level, an address, an occupation, a marriage state, a criminal record, a credit record, a traffic violation record, etc. ) , or the like, or any combination thereof.
In some embodiments, the information related to the route planning request may be obtained from one or more components of the system 100. Merely by way of example, information such as the start time, the start location and the end location may be inputted by the user via the user terminal and be transmitted to and/or stored in the storage 140. The processing engine 112 may retrieve the information from the storage 140 or obtain the information from the user terminal via the network 120. Additionally or alternatively, a portion of the information related to the route planning request may be obtain from an external source that can communicate with the system 100 via the network 120. For example, the profile information of the user may be obtained from one or more third-party applications that share the user information with the system 100. For example, the processing engine 112 may obtain the traffic violation record of the user from a website or a database of traffic violation records.
In 520, the processing engine 112 (e.g., the processor 220, the candidate  path determining module 420) may determine a plurality of candidate paths for the route planning request. In some embodiments, each candidate path may include a plurality of links.
In some embodiments, a candidate path may refer to a route with directions from the start location to the end location of the route planning request. From the start location to the end location of the route planning request, there may be a plurality of candidate paths. In some embodiments, the plurality of candidate paths may be historical routes from the start location to the end location that one or more users of the system 100 have ever traveled in the history. The historical routes may be stored in any storage (e.g., the storage 140) of the system 100. The processing engine 112 may access the storage to obtain the plurality of candidate paths. In some embodiments, the plurality of candidate paths may be routes from the start location to the end location that are planned by an online electronic map. The processing engine 112 may determine the plurality of candidate paths according to the online electronic map.
In some embodiments, a link may be a road segment or a part of a road that has a certain direction. In some embodiments, a link may have a predetermined length. In some embodiments, the links may have varying lengths. In some embodiments, the predetermined length may be a default value stored in a storage device of the system 100 (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) , or determined by the system 100 or an operator thereof according to different application scenarios. Two adjacent links in a candidate path may be connected by a common node. The common node may be an intersection that includes the two adjacent links or may be a virtual point that connects two (or more) links.
In 530, for each link of the plurality of links of each candidate path, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine an estimated travel time cost of the link at a target time associated with the start time.
In some embodiments, the estimated travel time cost of the link may refer to an estimated time that a vehicle associated with the user terminal will spend to pass  through the link. The target time associated with the start time may refer to a time point that the vehicle associated with the user terminal may start to travel on the link. In some embodiments, at a first link (can also be referred to as a link at the beginning of the candidate path) of the candidate path, the target time may be the start time of the route planning request. At another link other than the first link of the candidate path, the target time may be an estimated time point calculated from the start time. Taking a candidate path including five links (denoted by l1, l2, l3, l4, l5 in order from the start location to the end location) as an example, the target time of link l1 may be the start time of the route planning request. The target time of link l2 may be determined based on the target time of link l1 and an estimated time cost of link l1. When the start time is 9: 00 am and the estimated time cost of link l1 is 10 minutes, the target time of link l2 may be 9: 10 am. The target time of links l3, l4 and l5 may be determined similarly as the target time of link l2, and may not be repeated here. In some embodiments, the estimated travel time costs of the link at different target time may be different. For example, an estimated travel time cost of the link at 8: 00 am on a weekday (e.g., any day from Monday to Friday) may be more than an estimated travel time cost at 10: 00 am on the weekday because 8: 00 am on a weekday is within a morning rush. As another example, an estimated travel time cost of the link at 11: 00 am on a weekday may be less than an estimated travel time cost at 11: 00 am on a weekend (e.g., a day of Saturday or Sunday) because more people may travel for entertainment on weekends than weekdays.
In some embodiments, the processing engine 112 may determine the estimated travel time cost of the link at the target time based on a historical travel time cost of the link at a historical target time corresponding to the target time and a current travel time cost on the link at the current time. The historical travel time cost of the link at the historical target time may be determined based on a plurality of historical travel time costs of the link at a plurality of historical target time in past periods (e.g., the past week, the past month) by statistical algorithms. The current travel time cost on the link at the current time may be determined based on a plurality of travel time costs on the link associated with the current time by statistical  algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof. More descriptions of determining the estimated travel time cost of the link at a target time may be found elsewhere in the present disclosure (e.g., FIGs. 7 and 8 and the descriptions thereof) .
In 540, for each link of the plurality of links of each candidate path, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may obtain vehicle-link information relating to a count of vehicles associated with the link.
In some embodiments, the vehicle-link information may refer to information relating to vehicle information associated with a link. For example, the vehicle-link information may be information relating to a count of vehicles on the link. In some embodiments, the vehicle-link information relating to the count of vehicles on the link may include information of historical vehicles on the link (e.g., a count of historical vehicles that traveled on the link at a historical target time corresponding to the target time) , information of current vehicles on the link (e.g., a count of current vehicles traveling on the link at a current time) , information of planned vehicles on the link (e.g. a count of planned vehicles that are being planned to travel on the link within a predetermined historical time period) , or the like, or any combination thereof. In some embodiments, the count of historical vehicles that traveled on the link at the historical target time may be determined based on a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target time in past periods (e.g., the past week, the past month) by statistical algorithms. The count of current vehicles on the link at the current time may be determined based on a plurality of counts of vehicles on the link associated with the current time by statistical algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof. In some embodiments, the statistical algorithms for determining the count of historical vehicles and the count of current vehicles may be same or different. The count of planned vehicles that are being planned to travel on  the link within a predetermined historical time period may be obtained by a route planning system (e.g., the system 100) . In some embodiments, the vehicle-link information may be stored in a storage (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) of the system 100. The processing engine 112 may access the storage to obtain the vehicle-link information. More descriptions of obtaining the vehicle-link information may be found elsewhere in the present disclosure (e.g., FIG. 6 and the descriptions thereof.
In 550, for each link of the plurality of links of each candidate path, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine a weight of the link based on the estimated travel time cost and the vehicle-link information.
In some embodiments, the weight of the link may indicate an actual estimated travel time cost of the link. The actual estimated travel time cost of the link may refer to an estimated time that the vehicle will spend to pass through the link after consideration of the vehicle-link information. The greater the weight of the link is, the longer the actual estimated travel time cost of the link may be. In some embodiments, the weight of the link may further indicate a probability that the link will be part of an optimal path being recommended to the user terminal in response to the route planning request. In some embodiments, the greater the weight of the link is, the longer the actual estimated travel time cost of the link may be, and the less likely that the link being part of an optimal path may be. In some embodiments, the weight of the link may further indicate a ratio of the candidate paths that include the link and all of the plurality of candidate paths, in essence the percentage of paths that include the link. In some embodiments, the weight of the link reflects all the factors, such as but not limited to the estimated travel time cost, the likelihood that the link is part of the optimal path, and the percentage of candidate paths that include the link.
In some embodiments, the weight of the link may be determined based on the estimated travel time cost and the vehicle-link information according to Equation (1) below:
Figure PCTCN2019090340-appb-000001
where w i refers to the weight of a i-th link, count hc refers to a count of historical vehicles that traveled on the i-th link at a historical target time corresponding to the start time, count cc refers to a count of current vehicles traveling on the i-th link at the current time, count rp refers to a count of planned vehicles that being planned to the i-th link within a predetermined historical time period, 
Figure PCTCN2019090340-appb-000002
refers to the estimated travel time cost of the i-th link at a target time associated with the start time, and αrefers to a parameter that may be a default setting of the system 100 (e.g., 0.3) or may be adjustable in different situations.
According to Equation (1) , the greater the count of historical vehicles (count hc) is, the less the weight of the i-th link (w i) may be, and the more likely that the i-th link being part of an optimal path to be recommended to the user may be. The greater the count of current vehicles (count cc) or the count of planned vehicles (count rp) is, the greater the weight of the i-th link (w i) may be, and the less possible that the i-th link being part of an optimal path to be recommended to the user may be. In some embodiments, the weight may be a relative value larger than 1.
In some embodiments, at the beginning of route planning, the processing engine 112 may determine a preliminary weight for each link. The preliminary weight may be a default setting of the system 100. The processing engine 112 may determine whether to update the preliminary weight of the link based on a predetermined threshold. If the difference between the preliminary weight of the link and the weight of the link is greater than the predetermined threshold, the processing engine 112 may update the preliminary weight of the link as the weight of the link determined according to Equation (1) . Alternatively, if the difference between the preliminary weight of the link and the weight of the link is less than or equal to the predetermined threshold, the processing engine 112 may not update the preliminary weight of the link. In some embodiments, the predetermined threshold may be a preset value or can be adjusted, and it may be stored in a storage (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) of the system 100, or dynamically  determined based on different situations (e.g., a congestion degree of the link) .
In 560, the processing engine 112 (e.g., the processor 220, the optimal path determining module 440) may determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
In some embodiments, the optimal path may refer to a most appropriate path that saves the user’s time and/or effectively eases congestion. The optimal path may be a candidate path that has the minimum actual estimated travel time in comparison with that of other candidate paths among the plurality of candidate paths. In some embodiments, the actual estimated travel time of a candidate path may be indicated partly by a path weight of the candidate path. The path weight of the candidate path may be determined based on the weight of each link of the plurality of links of the candidate path. For example, in certain embodiments, a path weight of a candidate path may be a sum of weights of links that included in the candidate path. In certain embodiments, a path weight of a candidate path takes into consideration the weight of certain links that are shared by more than one candidate paths. In some embodiments, the greater the path weight is, the longer the actual estimated travel time of a corresponding candidate path may be. In some embodiments, the processing engine 112 may determine a plurality of path weights corresponding to the plurality of candidate paths. Each path weight may correspond to a candidate path. The processing engine 112 may select the optimal path from the plurality of candidate paths that has the minimum path weight among the plurality of path weights corresponding to the plurality of candidate paths. More descriptions of determining the optimal path may be found elsewhere in the present disclosure (e.g., FIGs. 8 and 9 and the descriptions thereof) .
In some embodiments, the system and methods of the present disclosure may balance the overall travel time of a group of users versus the travel time of a single user. In certain cases, when the difference of time costs between more than one candidate path for a user is very low, it would be possible that the optimal path is a path that prevent congestion and ensure that the group of users (e.g. 2, 5, 10, 50,  100 or more users) , as a whole, have the lowest overall travel time. For example, if after calculation, one user has two candidate paths, A and B, that respectively have a travel time of 100 and 95 minutes, it would be possible, but not mandatory, that path A is chosen as the optimal path if selecting path A results in a group of 50 users saving an overall 50 minutes of travel time. In some embodiments, the “sacrifice” of the user may be kept minimum, for example, according to a threshold (e.g. 5 minutes or 5%of overall travel time) . In some embodiments, the “sacrifice” of the user may be pre-approved by the user. For example, the processing engine 112 may send signals to a mobile device associated with the user, directing the mobile device to display a message that outlines the alternatives. For example, the message may indicate that path A and path B have similar estimated travel time or that the travel time of path A is slightly longer than that of path B, but choosing path A will resulting in less congestion as a whole, inquiring it is acceptable to choose path A. With the approval of the user, path A may be selected as the optimal path.
In 570, the processing engine 112 (e.g., the processor 220, the displaying module 450) may direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request.
In some embodiments, the user may begin the trip based on the optimal path, for example, by confirming the optimal path on the user interface. In some embodiments, the optimal path displayed on the user interface may include the start location associated with the route planning request, the end location associated with the route planning request, an actual estimated time cost of the optimal path, a distance of the optimal path, or the like, or any combination thereof. In some embodiments, the processing engine 112 may update and display an optimal path on the user interface of the user terminal during the trip. For example, when the processing engine 112 determine that the current displayed optimal path is no long the optimal one, the processing engine 112 may determine and display another optimal path for the user.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure.  For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. For example, operations 530-550 may be integrated into a single step. As another example, the weight of the link may be determined based on an estimated travel velocity of the link and the vehicle link information of the link, similar to that based on the estimated travel time of the link and the vehicle link information of the link described in operation 550. The estimated travel velocity of the link may be determined based on the estimated travel time of the link and a length of the link. However, those variations and modifications do not depart from the scope of the present disclosure.
FIG. 6 is a flowchart illustrating an exemplary process 600 for determining vehicle-link information according to some embodiments of the present disclosure. The process 600 may be executed by the system 100. For example, the process 600 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 600. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 6 and described below is not intended to be limiting.
In 610, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine a count of historical vehicles that traveled on the link at a historical target time corresponding to the start time.
In some embodiments, the historical target time corresponding to the start time may be a same historical time as the target time. For example, if the target time associated with the start time is 9: 10 am today (weekday) , the historical target time corresponding to the start time may be 9: 10 am at a particular historical day before today (e.g., yesterday, a same date in the last month, a same date in the last year, etc. ) or a plurality of historical days before today (e.g., a plurality of weekdays  in the last month, a plurality of weekdays in the last year, a plurality of same dates in several past months, etc. ) .
In some embodiments, the historical vehicles may refer to vehicles that ever traveled on the link in past periods (e.g., several past days, several past weeks, several past months, etc. ) . The count of historical vehicles that traveled on the link at the historical target time corresponding to the start time may be an average count of historical vehicles that traveled on the link at a same time with the target time in a predetermined period of time in the history. In some embodiments, the average count of historical vehicles that traveled on the link at the historical target time may be determined based on a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target times in the predetermined period of time in the history (e.g., past periods such as the past week, the past month, etc. ) by statistical algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof.
In some embodiments, the processing engine 112 may determine whether the start time is on a weekday or a weekend. In response to a determination that the start time is on a weekday, the processing engine 112 may obtain a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target time in several past weekdays (e.g., 30 weekdays except weekends before the weekday that the start time is on) . For example, the count of historical vehicles that traveled on the link at the historical target time may be determined according to Equation (2) :
Figure PCTCN2019090340-appb-000003
where count hc refers to the count of historical vehicles that traveled on the link at the historical target time, M refers to a count of the past weekdays, count i refers to a historical count of historical vehicles that traveled on the link at a historical target time on an i-th weekday, and ∑ M count i refers to a sum of the historical counts of historical vehicles that traveled on the link at the historical target time in the M past  weekdays.
In response to a determination that the start time is on a weekend, the processing engine 112 may obtain a plurality of historical counts of historical vehicles that traveled on the link at a plurality of historical target times in several past weekends (e.g., 30 weekends before the weekend that the start time is on) . The processing engine 112 may determine the count of historical vehicles that traveled on the link at the historical target time based on the plurality of historical counts of historical vehicles that traveled on the link at the plurality of historical target time in past weekends similar to Equation (2) .
In 620, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine a count of current vehicles traveling on the link at a current time.
In some embodiments, the current vehicles traveling on the link at the current time may refer to vehicles that are traveling on the link at the current time. For example, the processing engine 112 may obtain the count of current vehicles that are traveling on the link in real-time. As another example, the processing engine 112 may obtain the count of current vehicles that are traveling on the link within a predetermined time period (e.g., five minutes, 10 minutes) around the current time. For example, if the current time is 8: 30 am, the processing engine 112 may determine a count of vehicles that are traveling on the link from 8: 20 to 8: 30 and designate the determined count of vehicles as the count of current vehicles traveling on the link at the 8: 30.
In 630, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine a count of planned vehicles that being planned to the link within a predetermined historical time period.
In some embodiments, a planned vehicle that is being planned to travel on the link may refer to a vehicle that being recommended to the link by a route planning system (e.g., the system 100) . In some embodiments, when the route planning system planned a route including the link for a user associated with the vehicle, regardless whether the route is confirmed by the user, the vehicle may be a  planned vehicle. For example, once the system 100 receives a route planning request from a user terminal, the system 100 may recommend at least one route for the user in response to the route planning request. If any one of the recommend route incudes the link, a vehicle associated with the user terminal may be regarded as a planned vehicle that is being planned to travel on the link.
In some embodiments, the predetermined historical time period may be a predetermined time period (e.g., half of an hour, an hour, two hours) before the current time. In some embodiments, the count of planned vehicles that is being planned to travel on the link within the predetermined historical time period may be obtained from one or more components of the system 100 (e.g., the storage 140) . Taking the predetermined time period of an hour and the current time of 8: 00 am as an example, the predetermined historical time period may range from 7: 00 am to 8: 00 am. The planned vehicles that is being planned to travel on the link may be stored in the storage 140. The processing engine 112 may directly obtain the count of planned vehicles that is being planned to travel on the link from 7: 00 am to 8: 00 am from the storage 140 of the system 100. In some embodiments, the predetermined historical time period may be a preset period stored in the system 100, or be dynamically determined according to different situations (e.g., different current time, different links, etc. ) .
In 640, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine the vehicle-link information relating to the count of vehicles associated with the link based on the count of historical vehicles, the count of current vehicles, and the count of planned vehicles.
In some embodiments, the processing engine 112 may determine a weight of the link based on the vehicle-link information relating to the count of vehicles associated with the link according to Equation (1) . Equation (1) may also be expressed as
Figure PCTCN2019090340-appb-000004
which shows that: the greater the count of historical vehicles that traveled on the link is, the less the weight of the link may be; the greater the count of current vehicles traveling on the link is, the greater  the weight of the link may be; and the greater the count of planned vehicles that is being planned to travel on the link is, the greater the weight of the link may be. In some embodiments, part of Equation (1) relating to the count of vehicles associated with the link, such as
Figure PCTCN2019090340-appb-000005
may be assign as the vehicle-link information. The greater the vehicle-link information is, the greater the weight of the link may be.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 600.
FIG. 7 is a flowchart illustrating an exemplary process 700 for determining an estimated travel time cost according to some embodiments of the present disclosure. The process 700 may be executed by the system 100. For example, the process 700 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 700. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 700 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 7 and described below is not intended to be limiting.
In 710, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may obtain a historical travel time cost of the link at the historical target time corresponding to the target time.
In some embodiments, the historical travel time cost may be an average time cost that a plurality of historical vehicles spent to pass through the link at the  historical target times that are similar to the target time in a predetermined period of time in the history. In some embodiments, the historical travel time cost may be determined based on a plurality of historical travel time costs of the link at a plurality of historical target time within the predetermined period of time in the history (e.g., within the past week, within the past month, etc. ) by statistical algorithms, such as but not limited to an arithmetic mean algorithm, a weighted average algorithm, a sampling statistic algorithm, or the like, or any combination thereof. For example, the target time is 9: 00 am on Monday, the processing engine 112 may obtain counts of historical travel time costs of the link at 9: 00 on every past weekdays within 30 days in the history directly from one or more components of the system 100 (e.g., the storage 140) . The processing engine 112 may determine an average historical travel time cost of the obtained counts of historical travel time costs of the link as the historical travel time cost at the 9: 00 am. More descriptions of determining the historical travel time cost may be found elsewhere in the present disclosure (e.g., FIG. 8 and the descriptions thereof) .
In 720, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may obtain a current travel time cost on the link at the current time.
In some embodiments, the current travel time cost may be an average time cost that a vehicle spends to pass through the link at the current time. The current travel time cost at the current time may be determined based on an average time cost of travel time costs within a preset time period before the current time. For example, if the current time is 8: 30 am and the preset time period is 10 minutes, the processing engine 112 may obtain travel time costs on the link from 8: 20 to 8: 30. The processing engine 112 may determine an average of the travel time costs as the current travel time cost at the current time. In some embodiments, the preset time period may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations.
In 730, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine a time interval between the start time and  the current time.
In some embodiments, the time interval between the start time and the current time may be measured in different dimensions (e.g., minutes or hours) . For example, if the start time is 8: 30 am today and the current time is 8: 00 am today, the time interval between the start time and the current time may be 30 munities or 0.5 hour. As another example, if the start time is 23: 00 on Monday and the current time is 7: 00 am on Monday, the time interval between the start time and the current time may be 480 minutes or 8 hours.
In 740, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine the estimated travel time cost based on the historical travel time cost, the current travel time cost, and the time interval.
In some embodiments, the processing engine 112 may determine whether the time interval is less than a predetermined interval (e.g., 60 minutes, 2 hours) . In some embodiments, the predetermined interval may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations. In response to a determination that the time interval is less than the predetermined interval, the processing engine 112 may determine the estimated travel time cost based on the historical travel time cost and the current travel time cost. In response to the determination that the time interval is greater than or equal to the predetermined interval, the processing engine 112 may determine the estimated travel time cost only based on the historical travel time cost. For example, the processing engine 112 may determine the estimated travel time cost according to Equation (4) below:
Figure PCTCN2019090340-appb-000006
where
Figure PCTCN2019090340-appb-000007
refers to the estimated travel time cost of a i-th link at the target time associated with the start time, 
Figure PCTCN2019090340-appb-000008
refers to the historical travel time cost of the i-th link at the historical target time corresponding to the target time, 
Figure PCTCN2019090340-appb-000009
refers to the current travel time cost of the i-th link at the current time, and
Figure PCTCN2019090340-appb-000010
which refers to a minimum value between 1 and
Figure PCTCN2019090340-appb-000011
wherein t f refers to the time interval  between the start time and the current time, and α refers to the predetermined interval, t f and α having the same measurement dimension (e.g., both in minutes or hours) . For example, the predetermined interval (α) is 60 minutes, if the time interval (t f) is greater than or equal to 60 minutes (e.g., 80 minutes) , the processing engine 112 may determine θ as 1, and the estimated travel time cost as
Figure PCTCN2019090340-appb-000012
The estimated travel time cost may be determined only based on the historical travel time cost
Figure PCTCN2019090340-appb-000013
As another example, if the time interval (t f) is less than 60 minutes (e.g., 30 minutes) , the processing engine 112 may determine θ as
Figure PCTCN2019090340-appb-000014
and the estimated travel time cost as
Figure PCTCN2019090340-appb-000015
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 700.
FIG. 8 is a flowchart illustrating an exemplary process 800 for determining a historical travel time cost according to some embodiments of the present disclosure. The process 800 may be executed by the system 100. For example, the process 800 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 800. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 8 and described below is not intended to be limiting.
In 810, the processing engine 112 (e.g., the processor 220, the weight  determining module 430) may determine that the start time is on a weekday or a weekend.
In some embodiments, the weekday may be a day that a large number of people are at work, and the weekend may be a day that a large number of people are on leave or on holiday. For example, the weekday may be a default setting of any day from Monday to Friday, and the weekend may be a default setting of a day of Saturday or Sunday. As another example, the weekday may not include a day belongs to legal holidays even the day is from Monday to Friday and the day may be set as a weekend.
In 820, in response to a determination that the start time is on a weekday, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a first predetermined count of historical weekdays as the historical travel time cost.
In some embodiments, the first predetermined count of historical weekdays may include a first predetermined count of consecutive weekdays before the weekday that the start time is on. For example, if the first predetermined count is 5 and the weekday that the start time is on is Friday in this week, the historical weekdays may include four days from Monday to Thursday in this week and a day of Friday in the last week. In some embodiments, the first predetermined count may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations.
In some embodiments, the processing engine 112 may obtain historical travel time cost of the link at the historical target time for each historical weekday from one or more components of the system 100 (e.g., the storage 140) . The processing engine 112 may determine the average historical travel time cost of the link at the historical target time of the first predetermined count of historical weekdays based on the historical travel time costs of the link at the historical target time of the historical weekdays. The processing engine 112 may designate the average historical travel time cost of the link at the historical target time of the first  predetermined count of historical weekdays as the historical travel time cost. For example, the processing engine 112 may determine the historical travel time cost of the link at the historical target time according to Equation (3) below:
Figure PCTCN2019090340-appb-000016
where
Figure PCTCN2019090340-appb-000017
refers to the historical travel time cost of a i-th link (i.e., an average historical travel time of the i-th link) at the historical target time, H refers to the first predetermined count of historical weekdays, 
Figure PCTCN2019090340-appb-000018
refers to a historical travel time cost of a historical weekday, and
Figure PCTCN2019090340-appb-000019
refers to a sum of historical travel time costs of the historical weekdays. For example, the processing engine 112 may obtain each historical travel time cost of the link at the historical target time on each weekdays of Monday to Thursday in this week and Friday in last week, and determine the average travel time cost of these weekdays according to Equation (3) .
In 830, in response to a determination that the start time is on a weekend, the processing engine 112 (e.g., the processor 220, the weight determining module 430) may determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a second predetermined count of historical weekends as the historical travel time cost.
In some embodiments, the second predetermined count of historical weekends may include a second predetermined count of consecutive weekends before the weekend that the start time is on. For example, if the second predetermined count is 5 and the weekend that the start time is on is Sunday in this week, the historical weekends may include a day of Saturday in this week, two days of Saturday and Sunday in last week, and two days of Saturday and Sunday in the week before the last week. In some embodiments, the second predetermined count may be a default value stored in a storage (e.g., the storage 140) of the system 100, or be dynamically determined according to different situations.
In some embodiments, the processing engine 112 may obtain historical travel time cost of the link at the historical target time for each historical weekend from one or more components of the system 100 (e.g., the storage 140) . The  processing engine 112 may determine the average historical travel time cost of the link at the historical target time of the second predetermined count of historical weekends based on the historical travel time costs of the link at the historical target time of the historical weekends, which is similar to Equation (3) . The processing engine 112 may designate the average historical travel time cost of the link at the historical target time of the second predetermined count of historical weekends as the historical travel time cost. For example, the processing engine 112 may obtain each historical travel time cost of the link at the historical target time on each weekends including Saturday in this week, Saturday and Sunday in last week, and two days of Saturday and Sunday in the week before the last week, and determine the average travel time cost of these weekends according to Equation (3) .
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 800.
FIG. 9 is a flowchart illustrating an exemplary process 900 for determining an optimal path according to some embodiments of the present disclosure. The process 900 may be executed by the system 100. For example, the process 900 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 900. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 900 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 9 and described below is not intended to be limiting.
The process in 910-920 demonstrates one possible approach to determine the optimal path. It should be noted, however, that other alternatives do exist and other factors may be taken into consideration in determination of the optimal path. In 910, for each candidate path of the plurality of candidate paths, the processing engine 112 (e.g., the processor 220, the optimal path determining module 440) may determine a weight sum of a plurality of weights of the plurality of links of the candidate path.
In some embodiments, the weight sum of the plurality of weights of the plurality of links of the candidate path may be designated as the path weight of the candidate path. The path weight of the candidate path may indicate an actual estimated travel time cost of the candidate path, which may further indicate a congestion degree of the candidate path. The greater the path weight of the candidate path is, the longer the actual estimated travel time cost of the candidate path may be, and the less probability that the candidate path is determined as an optimal path. Taking a candidate path including five links (with weights denoted by W1, W2, W3, W4, W5 respectively) as an example, the path weight of the candidate path may be a sum of W1, W2, W3, W4, and W5. In some embodiments, the path weight of the candidate path may be determined according to other methods. For example, the path weight of the candidate path may be an average value of W1, W2, W3, W4, and W5.
In 920, the processing engine 112 (e.g., the processor 220, the optimal path determining module 440) may determine the optimal path based on the weight sums corresponding to the plurality of candidate paths.
In some embodiments, the processing engine 112 may determine a plurality of path weights corresponding to the plurality of candidate paths based on the weight sums corresponding to the plurality of candidate paths. The processing engine 112 may rank the plurality of path weights according to a predetermined order (e.g., an ascending order, a descending order) . For example, the greater the path weight is, the higher the ranking of a corresponding candidate path may be. Further, the processing engine 112 may select a candidate path that has the minimum value of  path weight as the optimal path.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 900.
FIG. 10 is a schematic diagram illustrating exemplary candidate paths according to some embodiments of the present disclosure. As shown in FIG. 10, each line segment with an arrow represents a link, and each circle represents a node (e.g., an intersection that includes at least one link connected to the intersection) . Multiple links in a direction along the arrows from a start location 1010 to an end location 1020 may form a path, which can be a candidate path.
In some embodiments, each link may include a preliminary weight. Each candidate path may include a preliminary path weight based on a weight sum of a plurality of preliminary weights of a plurality of links of the candidate path. For example, a candidate path (also referred as the first candidate path) comprising link L1, link L5, link L6, link L7 and link L8 that have the minimum preliminary path weight among a plurality of preliminary path weights of the plurality of candidate paths may be determined as a preliminary optimal path. According to process and/or method described in the present disclosure (e.g., FIGs. 5-9 and the descriptions thereof) , the preliminary weight of each link may be updated. The path weight of each candidate path may be updated based on a weight sum of a plurality of updated weights of a plurality of links of the candidate path. For example, the path weight of the first candidate path may be updated based on a weight sum of the updated weights of w1, w5, w6, w7 and w8. A path weight of another candidate path (also referred to as a second candidate path) comprising link L1, link L2, link L3, link L9 and link L8 may be updated based on a weight sum of the updated weights of w1, w2, w3, w9 and w8. A path weight of still another a candidate path (also referred to as a third  candidate path) comprising link L1, link L2, link L3, link L4, link L6, link L7 and link L8 may be updated based on a weight sum of the updated weights of w1, w2, w3, w4, w6, w7 and w8. The second candidate path (comprising link L1, link L2, link L3, link L9 and link L8) that has the minimum value of updated path weight may be determined as the optimal path based on updated path weights of the candidate paths.
Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested by this disclosure, and are within the spirit and scope of the exemplary embodiments of this disclosure.
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment, ” “one embodiment, ” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present disclosure.
Further, it will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein  as a "block, " “module, ” “engine, ” “unit, ” “component, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electro-magnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 1703, Perl, COBOL 1702, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service  (SaaS) .
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations, therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software-only solution-e.g., an installation on an existing server or mobile device.
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.
In some embodiments, the numbers expressing quantities or properties used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ” For example, “about, ” “approximate, ” or “substantially” may indicate ±20%variation of the value it describes, unless otherwise stated. Accordingly, in some embodiments, the numerical parameters set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameters should be construed in light of the number  of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the application are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.
Each of the patents, patent applications, publications of patent applications, and other material, such as articles, books, specifications, publications, documents, things, and/or the like, referenced herein is hereby incorporated herein by this reference in its entirety for all purposes, excepting any prosecution file history associated with same, any of same that is inconsistent with or in conflict with the present document, or any of same that may have a limiting affect as to the broadest scope of the claims now or later associated with the present document. By way of example, should there be any inconsistency or conflict between the descriptions, definition, and/or the use of a term associated with any of the incorporated material and that associated with the present document, the description, definition, and/or the use of the term in the present document shall prevail.
In closing, it is to be understood that the embodiments of the application disclosed herein are illustrative of the principles of the embodiments of the application. Other modifications that may be employed may be within the scope of the application. Thus, by way of example, but not of limitation, alternative configurations of the embodiments of the application may be utilized in accordance with the teachings herein. Accordingly, embodiments of the present application are not limited to that precisely as shown and describe.

Claims (20)

  1. A system for route planning, comprising:
    at least one storage medium including a set of instructions for route planning; and
    at least one processor in communication with the storage medium, wherein when executing the set of instructions, the at least one processor is directed to:
    obtain a route planning request including a start time from a user terminal;
    determine a plurality of candidate paths for the route planning request, each candidate path including a plurality of links;
    for each link of the plurality of links of each candidate path,
    determine an estimated travel time cost of the link at a target time associated with the start time;
    obtain vehicle-link information relating to a count of vehicles associated with the link; and
    determine a weight of the link based on the estimated travel time cost and the vehicle-link information; and
    determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
  2. The system of claim 1, wherein to obtain the vehicle-link information relating to the count of vehicles associated with the link, the at least one processor is further directed to:
    determine a count of historical vehicles that traveled on the link at a historical target time corresponding to the start time;
    determine a count of current vehicles traveling on the link at a current time;
    determine a count of planned vehicles being planned to the link within a predetermined historical time period; and
    determine the vehicle-link information relating to the count of vehicles  associated with the link based on the count of historical vehicles, the count of current vehicles, and the count of planned vehicles.
  3. The system of claim 1 or claim 2, wherein to determine the estimated travel time cost, the at least one processor is further directed to:
    obtain a historical travel time cost of the link at the historical target time corresponding to the target time;
    obtain a current travel time cost on the link at the current time;
    determine a time interval between the target time and the current time; and
    determine the estimated travel time cost based on the historical travel time cost, the current travel time cost, and the time interval.
  4. The system of claim 3, wherein to obtain the historical travel time cost, the at least one processor is further directed to:
    determine that the start time is on a weekday or a weekend; and
    in response to a determination that the start time is on a weekday, determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a first predetermined count of historical weekdays as the historical travel time cost.
  5. The system of claim 3, wherein to obtain the historical travel time cost, the at least one processor is further directed to:
    determine that the start time is on a weekday or a weekend; and
    in response to a determination that the start time is on a weekend, determine an average historical travel time cost of the link at the historical target time corresponding to the target time of a second predetermined count of historical weekends as the historical travel time cost.
  6. The system of any one of claims 1-5, wherein to determine the optimal path from the plurality of candidate paths, the at least one processor is further directed to:
    for each candidate path of the plurality of candidate paths, determine a weight sum of a plurality of weights of the plurality of links of the candidate path; and
    determine the optimal path based on the weight sums corresponding to the plurality of candidate paths.
  7. The system of any one of claims 1-6, wherein the at least one processor is further directed to:
    direct the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request.
  8. A method for route planning, implemented on a computing device including at least one storage medium including a set of instructions, a data exchange port communicatively connected to a network, and at least one processor in communication with the storage medium, the method comprising:
    obtaining a route planning request including a start time from a user terminal;
    determining a plurality of candidate paths for the route planning request, each candidate path including a plurality of links;
    for each link of the plurality of links of each candidate path,
    determining an estimated travel time cost of the link at a target time associated with the start time;
    obtaining vehicle-link information relating to a count of vehicles associated with the link; and
    determining a weight of the link based on the estimated travel time cost and the vehicle-link information; and
    determining an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
  9. The method of claim 8, wherein the obtaining the vehicle-link information relating to the count of vehicles associated with the link comprises:
    determining a count of historical vehicles that traveled on the link at a historical target time corresponding to the start time;
    determining a count of current vehicles traveling on the link at a current time;
    determining a count of planned vehicles being planned to the link within a predetermined historical time period; and
    determining the vehicle-link information relating to the count of vehicles associated with the link based on the count of historical vehicles, the count of current vehicles, and the count of planned vehicles.
  10. The method of claim 8 or claim 9, wherein the determining the estimated travel time cost comprises:
    obtaining a historical travel time cost of the link at the historical target time corresponding to the target time;
    obtaining a current travel time cost on the link at the current time;
    determining a time interval between the target time and the current time; and
    determining the estimated travel time cost based on the historical travel time cost, the current travel time cost, and the time interval.
  11. The method of claim 10, wherein the obtaining the historical travel time cost comprises:
    determining that the start time is on a weekday or a weekend; and
    in response to a determination that the start time is on a weekday, determining an average historical travel time cost of the link at the historical target time corresponding to the target time of a first predetermined count of historical weekdays as the historical travel time cost.
  12. The method of claim 10, wherein the obtaining the historical travel time cost comprises:
    determining that the start time is on a weekday or a weekend; and
    in response to a determination that the start time is on a weekend,  determining an average historical travel time cost of the link at the historical target time corresponding to the target time of a second predetermined count of historical weekends as the historical travel time cost.
  13. The method of any one of claims 8-12, wherein the determining the optimal path from the plurality of candidate paths comprises:
    for each candidate path of the plurality of candidate paths, determining a weight sum of a plurality of weights of the plurality of links of the candidate path; and
    determining the optimal path based on the weight sums corresponding to the plurality of candidate paths.
  14. The method of any one of claims 8-13, wherein the method further comprises:
    directing the user terminal to display the optimal path on a user interface of the user terminal in response to the route planning request.
  15. A non-transitory readable medium, comprising at least one set of instructions for route planning, wherein when executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method, the method comprising:
    obtaining a route planning request including a start time from a user terminal;
    determining a plurality of candidate paths for the route planning request, each candidate path including a plurality of links;
    for each link of the plurality of links of each candidate path,
    determining an estimated travel time cost of the link at a target time associated with the start time;
    obtaining vehicle-link information relating to a count of vehicles associated with the link; and
    determining a weight of the link based on the estimated travel time cost and the vehicle-link information; and
    determining an optimal path for the route planning request from the plurality of  candidate paths based on the weight of each link of the plurality of links of each candidate path.
  16. The non-transitory readable medium of claim 15, wherein the obtaining the vehicle-link information relating to the count of vehicles associated with the link comprises:
    determining a count of historical vehicles that traveled on the link at a historical target time corresponding to the start time;
    determining a count of current vehicles traveling on the link at a current time;
    determining a count of planned vehicles being planned to the link within a predetermined historical time period; and
    determining the vehicle-link information relating to the count of vehicles associated with the link based on the count of historical vehicles, the count of current vehicles, and the count of planned vehicles.
  17. The non-transitory readable medium of claim 15 or claim 16, wherein the determining the estimated travel time cost comprises:
    obtaining a historical travel time cost of the link at the historical target time corresponding to the target time;
    obtaining a current travel time cost on the link at the current time;
    determining a time interval between the target time and the current time; and determining the estimated travel time cost based on the historical travel time cost, the current travel time cost, and the time interval.
  18. The non-transitory readable medium of claim 17, wherein the obtaining the historical travel time cost comprises:
    determining that the start time is on a weekday or a weekend; and
    in response to a determination that the start time is on a weekday, determining an average historical travel time cost of the link at the historical target time corresponding to the target time of a first predetermined count of historical  weekdays as the historical travel time cost.
  19. The non-transitory readable medium of claim 17, wherein the obtaining the historical travel time cost comprises:
    determining that the start time is on a weekday or a weekend; and
    in response to a determination that the start time is on a weekend, determining an average historical travel time cost of the link at the historical target time corresponding to the target time of a second predetermined count of historical weekends as the historical travel time cost.
  20. A system for route planning, comprising:
    a request obtaining module, configured to obtain a route planning request including a start time from a user terminal;
    a candidate path determining module, configured to determine a plurality of candidate paths for the route planning request, each candidate path including a plurality of links;
    a weight determining module, configured to, for each link of the plurality of links of each candidate path,
    determine an estimated travel time cost of the link at a target time associated with the start time;
    obtain vehicle-link information relating to a count of vehicles associated with the link; and
    determine a weight of the link based on the estimated travel time cost and the vehicle-link information; and
    an optimal path determining module, configured to determine an optimal path for the route planning request from the plurality of candidate paths based on the weight of each link of the plurality of links of each candidate path.
PCT/CN2019/090340 2019-05-31 2019-06-06 Systems and methods for route planning WO2020237710A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910469821.2 2019-05-31
CN201910469821.2A CN110702129B (en) 2019-05-31 2019-05-31 System and method for path planning

Publications (1)

Publication Number Publication Date
WO2020237710A1 true WO2020237710A1 (en) 2020-12-03

Family

ID=69193081

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/090340 WO2020237710A1 (en) 2019-05-31 2019-06-06 Systems and methods for route planning

Country Status (2)

Country Link
CN (1) CN110702129B (en)
WO (1) WO2020237710A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380314A (en) * 2020-12-04 2021-02-19 腾讯科技(深圳)有限公司 Road network information processing method and device, storage medium and electronic equipment
CN112884837A (en) * 2021-03-16 2021-06-01 百度在线网络技术(北京)有限公司 Road positioning method, device, equipment and storage medium
CN113411375A (en) * 2021-05-08 2021-09-17 长沙智能驾驶研究院有限公司 Information processing method, device and computer storage medium
CN113465612A (en) * 2021-07-02 2021-10-01 南京航空航天大学 Parallel path planning method and system based on double-layer index
CN114295144A (en) * 2021-12-30 2022-04-08 海南大学 DIKW-based vehicle path planning method
CN115655301A (en) * 2022-11-11 2023-01-31 北京中交兴路车联网科技有限公司 Vehicle navigation route selection method and device, electronic equipment and medium

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111784475A (en) * 2020-07-06 2020-10-16 北京嘀嘀无限科技发展有限公司 Order information processing method, system, device and storage medium
CN112036615A (en) * 2020-08-17 2020-12-04 上海钧正网络科技有限公司 Vehicle scheduling method, device, equipment and storage medium
CN112748736B (en) * 2020-12-22 2023-01-06 潍柴动力股份有限公司 Vehicle driving assisting method and device
CN113358130A (en) * 2021-05-31 2021-09-07 中国银行股份有限公司 Method, device and equipment for acquiring planned path and readable storage medium
CN113715020B (en) * 2021-08-31 2023-03-21 上海擎朗智能科技有限公司 Robot traveling method, device, equipment and storage medium
CN113758494B (en) * 2021-08-31 2023-07-28 北京百度网讯科技有限公司 Navigation path planning method, device, equipment and storage medium
CN114137973B (en) * 2021-11-26 2024-05-07 湖北亿纬动力有限公司 Path planning method, device, equipment and storage medium
CN114611341B (en) * 2022-05-11 2022-08-02 中移铁通有限公司广东分公司 Automatic planning method, device and equipment for optical cable route and storage medium
CN115482660A (en) * 2022-09-02 2022-12-16 江苏中寰卫星导航通信有限公司 Path determining method, device, equipment and storage medium
CN115752502B (en) * 2023-01-04 2023-05-02 小米汽车科技有限公司 Path screening method and device and electronic equipment
CN116164769B (en) * 2023-04-21 2023-08-22 北京路凯智行科技有限公司 Path planning method of mining unmanned vehicle and mining unmanned vehicle

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134501A (en) * 1997-08-29 2000-10-17 Denso Corporation Vehicle travel-route guidance apparatus with internal intersection discount feature
CN103245347A (en) * 2012-02-13 2013-08-14 腾讯科技(深圳)有限公司 Intelligent navigation method and system based on road condition prediction
CN105588572A (en) * 2014-10-02 2016-05-18 财团法人资讯工业策进会 Path planning system, path planning method and driving information updating method
CN109724611A (en) * 2019-01-08 2019-05-07 北京三快在线科技有限公司 Paths planning method, device, electronic equipment and storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134501A (en) * 1997-08-29 2000-10-17 Denso Corporation Vehicle travel-route guidance apparatus with internal intersection discount feature
CN103245347A (en) * 2012-02-13 2013-08-14 腾讯科技(深圳)有限公司 Intelligent navigation method and system based on road condition prediction
CN105588572A (en) * 2014-10-02 2016-05-18 财团法人资讯工业策进会 Path planning system, path planning method and driving information updating method
CN109724611A (en) * 2019-01-08 2019-05-07 北京三快在线科技有限公司 Paths planning method, device, electronic equipment and storage medium

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380314A (en) * 2020-12-04 2021-02-19 腾讯科技(深圳)有限公司 Road network information processing method and device, storage medium and electronic equipment
CN112884837A (en) * 2021-03-16 2021-06-01 百度在线网络技术(北京)有限公司 Road positioning method, device, equipment and storage medium
CN112884837B (en) * 2021-03-16 2023-06-20 百度在线网络技术(北京)有限公司 Road positioning method, device, equipment and storage medium
CN113411375A (en) * 2021-05-08 2021-09-17 长沙智能驾驶研究院有限公司 Information processing method, device and computer storage medium
CN113465612A (en) * 2021-07-02 2021-10-01 南京航空航天大学 Parallel path planning method and system based on double-layer index
CN113465612B (en) * 2021-07-02 2024-03-26 南京航空航天大学 Parallel path planning method and system based on double-layer index
CN114295144A (en) * 2021-12-30 2022-04-08 海南大学 DIKW-based vehicle path planning method
CN114295144B (en) * 2021-12-30 2023-05-26 海南大学 DIKW-based vehicle path planning method
CN115655301A (en) * 2022-11-11 2023-01-31 北京中交兴路车联网科技有限公司 Vehicle navigation route selection method and device, electronic equipment and medium

Also Published As

Publication number Publication date
CN110702129B (en) 2022-02-18
CN110702129A (en) 2020-01-17

Similar Documents

Publication Publication Date Title
WO2020237710A1 (en) Systems and methods for route planning
US11022455B2 (en) Systems and methods for providing a reliability of passing time for a path in route planning
US11011057B2 (en) Systems and methods for generating personalized destination recommendations
EP3320420B1 (en) Systems and methods for recommending recommended service location
US10713939B2 (en) Artificial intelligent systems and methods for predicting traffic accident locations
US20200058044A1 (en) Systems and methods for carpooling
AU2019246799B2 (en) Systems and methods for distributing a service request for an on-demand service
US10979863B2 (en) Systems and methods for recommending a destination
US11388547B2 (en) Systems and methods for updating sequence of services
WO2017128927A1 (en) Systems and methods for matching and displaying service request and available vehicles
CN111862585B (en) System and method for traffic prediction
US20200300650A1 (en) Systems and methods for determining an estimated time of arrival for online to offline services
CN110869953A (en) System and method for recommending transportation travel service
US11468536B2 (en) Systems and methods for recommending a personalized pick-up location
US20210088350A1 (en) Systems and methods for determining link topology relationships
US20230266137A1 (en) Systems and methods for recommending points of interest
CN112243487A (en) System and method for on-demand services

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19930606

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19930606

Country of ref document: EP

Kind code of ref document: A1