Apparatus and method for predicting a path taken by a vehicle for a transport task
By using OBDD[Λ] and POBDD[Λ] to represent and predict routes, the problem of inaccurate vehicle route prediction in electronic ride-hailing services is solved, improving driver allocation efficiency and the accuracy of arrival time estimation, thus optimizing the traffic system.
Patent Information
- Application Number
- CN202280035429.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-06-30
- Filing Date
- 2022-06-27
- Publication Date
- 2025-11-04
- Estimated Expiration
- 2042-06-27
AI Technical Summary
Existing technologies struggle to effectively predict vehicle routes, resulting in low driver allocation efficiency and inaccurate arrival time estimates in electronic ride-hailing services.
Ordered binary decision graphs (OBDD[Λ]) and probabilistic extended ordered binary decision graphs (POBDD[Λ]) are used to represent and predict routes. The probability of routes is learned through training data and sampled to generate popular routes and predict driver routes.
It improved the accuracy and efficiency of driver route prediction, reduced traffic congestion, and optimized the operation of the vehicle dispatching system.
Smart Images

Figure CN117413159B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Various aspects of the present disclosure relate to devices and methods for predicting a path taken by a vehicle for a transportation task. BACKGROUND
[0002] Predicting a vehicle's route is a task with multiple applications in real-world scenarios, from optimizing the efficiency of a vehicle dispatching system to predicting and reducing traffic congestion. It is of particular interest in the context of electronic hailing of vehicles, which has become popular worldwide thanks to the advancement of smartphone technology, with customers being able to hail a taxi using their smartphone.
[0003] For example, correctly predicting the route taken by a driver's trip (i.e., a customer served by an electronic hailing service) allows an electronic hailing server to estimate the time the trip will take, and thus when the driver will be available to serve another customer, i.e., the time at which the driver can be reassigned to another transportation task, i.e., another trip. The better the route can be predicted, the better the estimate of the time of arrival can be expected (assuming information like traffic information is available, which in turn can be estimated by predicting the vehicle's trip).
[0004] Therefore, there is a need for an efficient method for predicting the route taken by a trip. SUMMARY
[0005] Various embodiments relate to a method for predicting a path taken by a vehicle for a transportation task, the method comprising: obtaining training data comprising a plurality of training data elements, wherein each training data element specifies a path taken in a network of locations; representing a set of valid paths as a Boolean formula operating on a set of variables, wherein each location in the network of locations is represented by a variable in the set of variables, and an output of the Boolean formula for an assignment of values to the variables indicates whether the assignment of values to the variables represents a valid path through the network of locations; converting the Boolean formula into an ordered binary decision diagram augmented with conjunction nodes, for each variable in the set of variables, the conjunction node comprises a decision node representing the variable, wherein for each assignment of a value to the variable represented by the decision node, the decision node has an outgoing edge associated with the value; augmenting each outgoing edge of each decision node with a probability, the probability depending on a number of times the location represented by the decision node is visited in the paths specified by the training data elements; and sampling assignments of values to the variables by traversing the ordered binary decision diagram augmented with conjunction nodes to predict a path for a given transportation task, wherein at each decision node, if the assignment of values to the variables results in a valid path for the transportation task, the assignment of the value to the variable represented by the decision node is selected with a probability of the outgoing edge associated with the value.
[0006] According to one embodiment, predicting the path comprises computing probabilities of paths by traversing the ordered binary decision diagram augmented with conjunction nodes in a layer-by-layer manner.
[0007] According to one embodiment, predicting the path comprises determining an output assignment for each node in the ordered binary decision diagram augmented with conjunction nodes, wherein each output assignment specifies a partial assignment of values to variables of the Boolean formula.
[0008] According to one embodiment, determining the output assignment at a conjunction node comprises combining assignments output by child nodes of the conjunction node.
[0009] According to one embodiment, determining the output assignment at a decision node comprises combining an output of an assignment of a child node of an outgoing branch corresponding to a selected assignment of a variable represented by the decision node with the selected assignment of the variable represented by the decision node.
[0010] According to one embodiment, predicting the path comprises processing the ordered binary decision diagram augmented with conjunction nodes in multiple layers, wherein nodes in one layer are not child or parent nodes of nodes in other layers.
[0011] According to one embodiment, predicting the path comprises generating a decision node matrix for each layer, the decision node matrix having a column for each decision node, the column containing probabilities of outgoing edges of the decision node; and predicting the path comprises generating a conjunction node matrix for each layer, the conjunction node matrix having a column for each conjunction node, the column containing identifications of child nodes of the conjunction node, and processing the decision node matrices and the conjunction node matrices.
[0012] According to one embodiment, the transportation task specifies a departure location and a destination location, and wherein the valid path conforms to the transportation task because the valid path connects the departure location and the destination location within the location network.
[0013] According to one embodiment, the set of variables is a first set of variables, and the Boolean formula further operates on a second set of variables, wherein each location in the location network is associated with a respective variable of the second set of variables, a value of the respective variable indicating whether the location is an end location of the path for the path.
[0014] According to one embodiment, if the path contains at least one end location, the output of the Boolean formula only indicates that the path is a valid path.
[0015] According to one embodiment, if the path contains at most two end locations, the output of the Boolean formula only indicates that the path is a valid path.
[0016] According to one embodiment, the output of the Boolean formula indicates that the path is a valid path even if the path includes a main path including at least one end position and one or more loops in addition to the main path, the one or more loops not including a node adjacent to a node of the path. According to one embodiment, each position is a geographic region corresponding to a predetermined level of geographic hash (e.g., a 5th level of geographic hash) or corresponding to an OSM (OpenStreetMap) node.
[0017] According to one embodiment, in the assignment of the variables, each variable is assigned true if the position represented by the variable is part of the path represented by the assignment or false if the position represented by the variable is not part of the path represented by the assignment.
[0018] According to one embodiment, there is provided a server computer comprising a radio interface, a memory interface, and a processing unit configured to perform the above-described method for predicting a path taken by a vehicle for a transport task.
[0019] According to one embodiment, there is provided a computer program element comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the above-described method for predicting a path taken by a vehicle for a transport task.
[0020] According to one embodiment, there is provided a computer-readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the above-described method for predicting a path taken by a vehicle for a transport task. BRIEF DESCRIPTION OF DRAWINGS
[0021] The application will be better understood with reference to the detailed description when considered in conjunction with the non-limiting examples and the accompanying drawings, in which:
[0022] Figure 1 A smartphone is shown.
[0023] Figure 2 A flowchart for predicting a route is shown.
[0024] Figure 3 An ordered binary decision diagram augmented with a disjunction node is shown.
[0025] Figure 4 A flowchart illustrating a method for predicting a path taken by a vehicle for a transport task is shown.
[0026] Figure 5 A server computer according to an embodiment is shown. DETAILED DESCRIPTION
[0027] The following detailed description references the drawings, wherein like numerals indicate the same elements throughout the several figures. The detailed description is intended for illustrating the present disclosure rather than limiting the same. The detailed description is not intended to be exhaustive or to limit the present disclosure to the precise embodiments described. The detailed description is intended to highlight various aspects of the present disclosure. Other embodiments are contemplated and can be made by those skilled in the art in view of the following detailed description, from which the features noted above, as well as others, will become apparent.
[0028] Embodiments described in the context of one device or method are similarly applicable in the context of the other device or method. Similarly, embodiments described in the context of a vehicle or method are similarly applicable in the context of a device or method, and vice versa.
[0029] Features described in one embodiment can be applicable to the same or similar features in other embodiments. Features described in one embodiment can be applicable to other embodiments even if not explicitly described in those other embodiments. Furthermore, additions and / or combinations and / or alternatives to features described in one embodiment can be applicable to the same or similar features in other embodiments.
[0030] In various embodiments, the articles "a", "an", and "the" as used in the context of features or elements include a reference to one or more of the features or elements.
[0031] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0032] In the following, embodiments will be described in detail.
[0033] Electronic hailing applications, commonly used on smartphones, allow users to hail a taxi (or private driver) ride through a smartphone.
[0034] Figure 1 A smartphone 100 is shown.
[0035] The smartphone 100 has a screen displaying a graphical user interface (GUI) of an electronic hailing application that the user of the smartphone has previously installed on his smartphone and has opened (i.e. started) for electronic hailing (taxi or private driver),
[0036] The GUI 101 includes a map 102 of the user's vicinity (the application can determine this based on a location service, e.g., a GPS-based location service). In addition, the GUI 101 includes a field for the origin 103 (which can be set to the user's current location obtained from the location service) and a field for the destination 104, which the user can touch to enter the destination (e.g., open a list of possible destinations). There can also be menus (not shown) that allow the user to select various options, e.g., how to pay (cash, credit card, credit balance of an electronic ride-hailing service). When the user has selected a destination and made any necessary option selections, he or she can touch the "Find Car" button 105 to initiate a search for a car suitable for a trip between the user's location and the selected destination, i.e., to request a trip between the user's location and the selected destination.
[0037] To this end, the electronic ride-hailing application communicates with a server 106 of the electronic ride-hailing service via a radio connection. The server 106 includes a database (e.g., database 107) that stores the current locations of registered drivers, when they are expected to be free, with information about traffic congestion, etc. From this information, a processor 110 of the server 106 determines the most suitable driver (if available) and provides an estimate of when the driver will be there to pick up the user, the price of the ride, and how long it will take to get to the destination. The server communicates this information back to the smartphone 100, and the smartphone 100 displays this information on the GUI 101. The user can then accept (i.e., book) by touching the corresponding button.
[0038] To determine the most suitable driver and the estimate of when the driver will be there to pick up the user, the price of the ride, and how long it will take to get to the destination, the server 106 can have a memory 109 that stores a trained route prediction model 111 that the processor 110 can run to predict the route that the respective driver assigned to the requested trip will take for the ride. The server 106 can also use this time to estimate how long it will take the driver to get to the user's location to pick up. The server 106 can also estimate traffic by using the model 111 to predict the routes taken by other vehicles and estimate travel times based on the estimated traffic.
[0039] To train the model 111, the database 107 stores map data (i.e., location network data) and historical trip data 108 that specifies the routes taken between respective origins and destinations. For example, the server 106 can collect this information by recording information about the routes taken by drivers of the electronic ride-hailing service.
[0040] In this example, the database 107 is implemented by local memory 109 of the server computer 106. However, this database 107 can also be implemented at least partly outside the server computer 106 (e.g. in the cloud). It should be noted that while the server 106 is described as a single server, its functionality (e.g. to provide an electronic ride-hailing service for an entire city) will typically be provided in practice by an arrangement of multiple server computers (e.g. implementing a cloud service). Thus, the functionality described below as being provided by the server 106 can be understood as being provided by a server or arrangement of server computers.
[0041] The task of predicting a route taken by a driver between a start point (e.g. a customer location or the current location of the driver) and a destination (e.g. a destination desired by the customer or a location to pick up the customer, respectively) can also be seen as a popular route mining, i.e. the task of finding popular routes on a map (given a start point "location A" and a destination "location B").
[0042] According to various embodiments, the task of finding popular routes on a map from location A to location B is formulated as a sampling problem, with popular routes (and thus, for example, predicted routes) being routes that have a high probability in a distribution of all possible routes between location A and location B.
[0043] According to various embodiments, locations are represented by nodes of a graph. They can correspond to points of interest and / or road segments of a road network on a map (e.g. given by map data stored in the memory 107). In the embodiments described below, a 5th level geohash is used for the nodes of the graph, but the methods described below work at various levels of detail. For example, the road network of OpenStreetMap can be used as a basis for the nodes of the graph. A location can be a start location (i.e. a start point) of a trip, an end location (i.e. a destination) of a trip or a point on a route (i.e. a waypoint).
[0044] In the embodiments described below, probability distributions are included over the space of all valid paths (by a graph) and the probabilities of routes are learned from training data (e.g. historical trip data).
[0045] In the following embodiments, an OBDD [A] is used as a graph that represents locations and that represents whether a combination of locations forms a valid route. An OBDD [A] is an extension of an OBDD (ordered binary decision diagram) with a conjunctive decomposition, i.e. an OBDD that includes a conjunction.
[0046] A sampling algorithm is provided that allows for obtaining routes (or paths) in one shot, rather than in an iterative fashion, although both are possible for OBBD[A] representations. OBBD[A] is augmented with probabilities learned from training data and allows for determining (sampling) popular routes, i.e., predicting a route taken between two given locations. The approach described below allows for computing probabilities of routes (from learned route distributions) and sampling routes based on learned route probabilities. According to various embodiments, matrix multiplication is used to compute probabilities and sample routes.
[0047] To obtain popular routes, they can be sampled from route distributions learned from training data, where, for example, regions using 5th level geo-hashes are used as nodes (i.e., locations), so that the sampled popular routes are also sufficiently different. For example, it is thus possible to achieve different sampled routes that differ not only by one or two turns, but rather significantly, e.g., taking different highways. By using 5th level geo-hash nodes, different routes are implicitly sampled based on the 5th level geo-hash path distributions. If routes are different at a high level of abstraction, it can be expected that they are different at a road network level.
[0048] The approach described below allows for:
[0049] • learning element distributions (routes in the current use case) that can be described in a conjunctive normal form Boolean representation
[0050] • computing the probability of a certain route occurring in the space of all routes
[0051] • weighted sampling of routes based on weights (learned probability parameters)
[0052] • sampling routes from A to B on a map, computing probabilities of routes
[0053] • determining which path a driver is most likely to take and predicting ETA (estimated time of arrival) and ETT (estimated travel time)
[0054] • analyzing general traffic patterns, as popular routes can be determined, thus shunting drivers Figure 2 A flowchart 200 for predicting routes is shown.
[0055] A location network 201 is used as input. This can be a list of 5th level geo-hash nodes and information adjacent to the 5th level geo-hash nodes (e.g., as an adjacency list). The location network 201 can also be given in the form of a road network, which specifies locations and road segments (i.e., edges) connecting these locations.
[0056] The CNF (conjunctive normal form) encoder 202 brings the location network 201 into a CNF representation 202. The CNF representation is a Boolean formula (or Boolean function) that is true for all combinations of locations in the location network 201 that contain a valid route (also referred to as a path), including the locations designated as endpoints, and false for all combinations of locations in the location network 201 that do not contain a valid path. This means that for an input assignment of variable values, the output of the Boolean formula indicates whether that assignment of variables (and hence that assignment of locations to paths) gives a valid path. For example, a path can be invalid if it has gaps, i.e. missing via points between nodes that are part of the combination but not adjacent, or if it does indeed have more than two endpoints.
[0057] The OBBD[A] compiler 204 brings the CNF into the form of an OBBD[A], i.e. generates an OBBD[A] representation 205 for the CNF. OBBD[A] compilers are available tools and an existing OBBD[A] compiler can be used.
[0058] The POBDD[A] converter 207 (which performs a learning or training method) uses training data (i.e. valid routes, where each valid route is given by a combination of locations (i.e. an assignment of locations to routes)) 206 to include probabilistic information into the OBDD[A] and hence generate a POBDD[A] representation 208.
[0059] To predict a route, the POBDD[A] can be queried 209 with a corresponding query (e.g. specifying the start location and end location of the route and possibly one or more midpoint locations that the route should pass through as parameters) and the POBDD[A] can answer this by outputting one sample path 210 (i.e. a prediction) or multiple sample paths (e.g. the k hottest paths that satisfy the parameters of the query 209).
[0060] As mentioned above, the CNF representation is a Boolean formula that is true for all combinations of locations in the location network 201 that form a valid path, including the locations designated as endpoints, and false for all combinations of locations in the location network 201 that do not form a valid path.
[0061] To this end, two sets of variables are used: n variables and s variables. Each location (or location network vertex) has one associated n variable and one associated s variable. Each path is given (i.e. encoded) by assigning values to the variables. When an n variable is set to true (according to the assignment of the path), it means that the path includes the associated location, otherwise it is false. When an s variable is set to true (according to the assignment of the path), it means that the associated location is a terminating location of the path, i.e. the vertex is either the start or the destination of the path.
[0062] The CNF representation 203 can be seen as an approximate encoding of all valid paths, because while every assignment satisfying all the above conditions will contain a path from the start vertex to the end vertex, there can be additional disjoint loops in the assignment. However, these can be very easily cleaned up by performing a depth-first traversal from the start vertex to the end vertex.
[0063] 1. For each vertex i, if s i is true, then n i is true and at most one adjacent vertex of i must be true
[0064] 2. At most two of the s variables are true
[0065] 3. At least one of the s variables is true
[0066] 4. For each vertex i, if n i is true, then at least one of the n of its adjacent vertices is true
[0067] 5. For each vertex i, if n i is true and for all n j of the adjacent vertices of i, one of the nj is true, then either exactly one n k must be true, where k≠j and k is in the set of adjacent vertices of i; or s i must be true.
[0068] Any assignment of all variables (including n and s type variables) satisfying all the above conditions contains a valid path.
[0069] In the query 209, the s variables of the start vertex and end vertex (and possibly the midpoints) are set to true.
[0070] The CNF representation 203 can be seen as an approximate encoding of all valid paths, because while every assignment satisfying all the above conditions will contain a path from the start vertex to the end vertex, there can be additional disjoint loops in the assignment. However, these can be very easily cleaned up by performing a depth-first traversal from the start vertex to the end vertex.
[0071] It should be noted that the number of variables in the CNF is linear in the number of vertices (locations) in the location network, and the depth of the constructed OBDD [A] representation 205 has the number of variables in the CNF representation 203 as an upper bound. This ensures that the probability and sample assignments can be computed quickly.
[0072] For training, each historical trip (which is a training data element) of the trip data (training data) 108 is converted into an assignment of variables according to the CNF encoding. This means that the n-variables for the locations that occur in the trip are set to true, and the s-variables for the locations that are end locations (departure point and destination) are set to true (all other variables are set to false). Thus, a trip is described as an assignment of the variables used in the CNF representation 203, and for historical trips, the CNF outputs true because they are valid paths. The POBDD[Λ] probability parameters (i.e., the probability values of the POBDD[Λ] representation 208) are set (or updated) using the training data. The POBDD[Λ] representation 208 can be seen as an OBDD[Λ] augmented with probabilities.
[0073] OBDD[Λ] and POBDD[Λ] are directed acyclic graphs (DAGs) that have four types of nodes: true nodes, false nodes, conjunction nodes (also called and nodes), and decision nodes (also called or nodes). Decision nodes have two child nodes, called the low (or "lo") child node and the high (or "hi") child node. Leaf nodes can only be true nodes or false nodes. True nodes and false nodes have no children. The root node of a DAG is typically a conjunction node or a decision node.
[0074] OBDD stands for ordered binary decision diagram. It allows for representing Boolean formulas by means of a DAG, where each node (except leaves) is a decision node and represents a variable that occurs in the Boolean formula. As mentioned above, leaves are true nodes or false nodes. A Boolean formula for an input assignment of variables represented by an OBDD can be evaluated by starting at the root and, at each node, proceeding to the low child node if the variable represented by that node is false and to the high child node if the variable represented by that node is true, until a leaf is reached. The value of the leaf node (true or false) gives the value (i.e., the output) of the Boolean formula for that assignment.
[0075] OBDD[Λ] further includes conjunction nodes. At a conjunction node, the results of the Boolean formulas represented by the subgraphs with the child nodes of the conjunction node as roots are combined according to the logical and.
[0076] Thus, starting at the root node from a given assignment, the validity output (true or false) for that assignment is given. Similarly, each node gives the validity output, not starting at the root node, but starting at that node and traversing the graph according to the assignment.
[0077] Figure 3 An OBDD[Λ] 300, i.e., an ordered binary decision diagram augmented with conjunction nodes, is shown.
[0078] As mentioned above, a decision node 301 is associated with a Boolean variable in the CNF representation 203, and the child nodes of a decision node 301 can be seen as decisions about the Boolean variable (the high child node for the case where the variable of the decision node is set to true, and the low child node for the case where the variable of the decision node is set to false).
[0079] In this simple example, the OBDD [A] comprises a decision node 301 representing the n variables n1 to n6, and is therefore labeled with the n variables n1 to n6. The OBDD [A] further comprises a leaf node 302 and a conjunction node 303. The conjunction node 303 has at least one child node, while the decision node 301 has exactly two child nodes.
[0080] The OBDD [A] (and implicitly the POBDD [A]) has three properties, which play a role in the following methods. The properties are decomposability, determinism, and smoothness.
[0081] Decomposability occurs at the conjunction node 303. The conjunction node 303 is decomposable if the nodes of its sub-subgraphs (i.e. the subgraphs with its child nodes as root nodes) all represent disjoint sets of Boolean variables. The conjunction node can be seen as partitioning the feature of the space constituting all scenarios into disjoint feature sets. This allows to decompose the represented Boolean formula into smaller formulas that do not share variables.
[0082] Determinism occurs at the decision node 301. The decision node 301 holds the determinism property if the two subgraphs associated with each of its child nodes are logically contradictory, in other words mutually exclusive. This is clear because a Boolean variable can be assigned to true or false, but not to both true and false.
[0083] The last property is smoothness. The OBDD [A] or POBDD [A] is called smooth for each decision node 301 within the graph if its two sub-subgraphs have exactly the same set of Boolean variables associated with them. This means that all sets of variables (i.e. represented by the nodes of the subgraph) in the subgraph rooted with the hi-child node are exactly the same as all sets of variables in the subgraph rooted with the lo-child node.
[0084] The POBDD [A] representation 208 is generated from the OBDD [A] representation 205 by augmenting the edges (to its child nodes) of each decision node in the OBDD [A] with a probability parameter. The probability parameter depends on the number of times each branch is taken in the training data and defaults to 0.5.
[0085] To learn from historical trips as training data, each trip is converted into a sequence of 5th level geo hashes as described above and then into assignments to the variables of the CNF representation 203 (which also includes the variables represented by the nodes of the OBDD [A] representation 205).
[0086] For each data training element, the POBDD [A] converter 207 traverses the OBDD [A] starting from the root node. At each conjunction node, it visits all subgraphs with each subnode as root. At each decision node, it follows the decision regarding the assignment of the variable represented by the decision node (given by the training data element) and increments the counter by 1 at the edge it follows. Once it has reached the leaf nodes on all subgraphs that have to be traversed and has done so for all training data elements, the POBDD [A] converter 207 normalizes the counts of each decision node and sets the probability parameters. The probability parameters at each of the two outgoing edges of a decision node can be considered as the ratio of the two decisions, normalized to sum up to 1. Thus, the probability parameters represent the probabilities of the variable values associated with the decision node, conditioned on the set of traversals from the root node of the POBDD [A] to this particular decision node (i.e., conditioned on the set of training data elements, i.e., the historical trip data 108).
[0087] The POBDD [A] representation 208 generated by the POBDD [A] converter 207 in this way can be used to compute the probability of a given path (i.e., a given assignment of variables). This is described below.
[0088] First, it should be noted that, as described above, the validity output (true or false) of an assignment is given starting from the root node of the given assignment and similarly, the validity output can also be computed for each node (by taking the node as root node). Now, having the POBDD [A] 208, which are also the probabilities indicated at the edges, each node can also provide the probability output of a given assignment by multiplying the probabilities of the edges taken along the path through the OBDD subgraph (with the subnodes of the conjunction node as root) according to the assignment and multiplying the probability outputs of all subnodes at the conjunction node. When the variable associated with a decision node is not assigned, the output of each of the two subnodes is taken, multiplied by the probability of the respective outgoing edge of the decision node, and the two results are added.
[0089] In other words, the probability of an assignment (which can be partial, i.e., leaving one or more variables unassigned) can be computed by the following: for a decision node, its probability output will be a weighted sum of the outputs of its children, with weights being the respective edge parameters. In case of a variable of the decision node being assigned, the probability output of the decision node is the branch parameter, corresponding to the value of the variable multiplied by the probability output of the child. For a conjunction node, its probability output is the product of the probability outputs of all its children. For a true node, its probability output is 1, and for a false node, its probability output is 0. The final probability is given by the probability output of the root node of the POBDD [A].
[0090] In order to compute the probability of a path (i.e., a sequence of geo-hashes of level 5, for example) in this way, the POBDD [A] 208 is pre-processed. A topological sorting of the POBDD [A] 208 is performed. This is similar to splitting the DAG structure of the POBDD [A] 208 into multiple layers, where the nodes in one layer do not depend on the nodes of other layers (meaning that they are not children of each other). For each layer, two matrices are created, one for the decision nodes within the layer (called decision node matrix) and one for the conjunction nodes (called conjunction node matrix).
[0091] The decision node matrix of each layer has shape 2 x D, where D is the number of decision nodes in the layer. Thus, each column of the decision node matrix corresponds to one decision node. The two values of the column are pre-filled with the probability parameters of the two outgoing edges of the decision node.
[0092] The conjunction node matrix of each layer has shape A x C, where C is the number of conjunction nodes in the layer and A is the number of unique children of all conjunction nodes in the layer. Thus, each column of the conjunction node matrix corresponds to one conjunction node and has a value for each child of the conjunction node of the layer.
[0093] If the value corresponding to the combination of conjunction node and child (by its column and row index) is a child of the conjunction node, the value is set to the identity of the child, otherwise to 1. This matrix generation pre-processing is called BuildMat.
[0094] In the following, an algorithm for computing the probability of an input assignment τ (which is also a partial assignment) is given.
[0095]
[0096] Algorithm 1: Return probability of input (partial) assignment τ of input POBDD [A] using matrices
[0097] Algorithm 1 processes each layer’s conjunctive node matrix and decision node matrix separately. For the decision node matrix, a dependency matrix of dimension D x 2 is constructed, where D is the number of decision nodes in the decision node matrix (line 5). For each decision node, the entry of the dependency matrix in the first column (in the row corresponding to the decision node) is the probability output of the lo child of the decision node of this layer. Similarly, the entry of the second column is the probability output of the hi child of the decision node. This means that the probability output refers to the conditional probability output of the respective subgraph starting from the corresponding child node.
[0098] Further, a masked version of the decision node matrix is generated (line 6), which facilitates the selection of the dependent nodes to be considered based on the input assignment τ. In the get-masked DMat routine, the mask matrix is multiplied element-wise with the decision node matrix. The matrix multiplication of the dependency matrix and the masked decision node matrix gives the probability output of each decision node at its diagonal entry, respectively.
[0099] As mentioned above, in the conjunctive node matrix, the pre-filled values are the child node IDs of each conjunctive node. During the algorithm’s execution, the child node ID values are replaced by their outputs. These values are then multiplied along the rows, resulting in a 1 x C probability output vector, which represents the probability output value of each conjunctive node. The output of a true node is 1, and the output of a false node is 0.
[0100] Each layer is processed in this way, and the final probability value (i.e., the probability of the input assignment) is the probability output of the root node of the POBDD[Λ].
[0101] In the following, it is described how a path can be sampled from the POBDD[Λ] representation 208 for a query 209. The query 209 specifies a partial assignment of locations to a route (i.e., not all locations are assigned or unassigned). For this partial assignment, the probability can be computed (according to Algorithm 1), and the remaining unassigned variables can be sampled as described below. Intuitively, sampling means that the path given by the query (i.e., given that some nodes need to be taken) is completed.
[0102] Algorithm 2 given below allows to sample a route in one bottom-up pass through the POBDD[Λ] representation 208 (instead of iteratively). Depending on the locations given in the query 209 (e.g., a start location and a destination location), the sampling is performed directly on the POBDD[Λ] of the assignment corresponding to the path in the location network 201.
[0103]
[0104]
[0105] Algorithm 2: Return a sample that satisfies the input partial assignment τ based on the parameters in the input POBDD [Λ]
[0106] In Algorithm 2, the output of a node is determined, which is referred to as the assignment output. The assignment output specifies a (partial) assignment of samples that is consistent with the input assignment τ. However, the assignment output can be invalid. The determination of the assignment output is done in a bottom-up manner, such that more and more variables get assigned until the output of the root node gives a complete (sampled) assignment.
[0107] Algorithm 2 is similar to the probability computation Algorithm 1, processing the POBDD [Λ] layer by layer. In Algorithm 2, no matrix multiplication is performed, Algorithm 2 makes use of the two matrices (decision node matrix and conjunction node matrix) created in the preprocessing matrix described above. At each layer, Algorithm 2 first obtains a random sample value sampleVar from a uniform distribution between 0 and 1, inclusive (line 4). Next, the decision node matrix and the conjunction node matrix are processed separately.
[0108] For a decision node corresponding to a column of the decision node matrix, the POBDD [Λ] gives the probability parameters for the hi and lo branches. Algorithm 2 first checks whether the variable of each decision node has already been assigned in the input assignment τ. If the variable is already assigned by the input assignment, the algorithm follows that assignment. If this results in an invalid assignment, the assignment output of the decision node is also invalid. If the variable is not assigned by the input assignment and sampleVar is higher than the probability parameter for the lo branch, the variable is assigned true, otherwise false. Next, the algorithm checks whether the assignment is valid, i.e., whether the assignment output of the corresponding child node (i.e., the hi child or lo child output) is valid, respectively. If the assignment output of the corresponding child node of the partial assignment is invalid, the algorithm switches to the other child node and changes the assignment of the variable of the decision node (i.e., the variable represented by the decision node) accordingly. The assignment output of the decision node is the combination of the assignment output of the child node (taken according to the assignment of the decision node) and the assignment of the variable of the decision node.
[0109] For the conjunction node matrix, Algorithm 2 checks for each conjunction node whether any of its child nodes has an invalid partial assignment output. If any of its child nodes has an invalid partial assignment output, the conjunction node assignment output is also invalid. Otherwise, the conjunction node output is the combination of the assignment outputs of its child nodes. The combination of assignments is an assignment that sets all variables assigned by the combined assignments to the values given by the combined assignments.
[0110] The final sampled variable assignment is the assignment output at the root node of the POBDD [Λ].
[0111] In summary, according to various embodiments, as Figure 4The method is provided by a computer program product.
[0112] Figure 4 A flowchart illustrating a method for predicting a path taken by a vehicle for a transportation task is shown.
[0113] In 401, training data comprising a plurality of training data elements is obtained, wherein each training data element specifies a path taken in a location network.
[0114] In 402, the set of valid paths is represented as a Boolean formula operating on a set of variables, wherein each location in the location network is represented by a variable in the set of variables, and for an assignment of values to the variables, the output of the Boolean formula indicates whether the assignment of values represents a valid path through the road network.
[0115] In 403, the Boolean formula is converted into an ordered binary decision diagram augmented with conjunction nodes, for each variable in the set of variables, the conjunction node comprises a decision node representing the variable, wherein for each assignment of a value to the variable represented by the decision node, the decision node has an outgoing edge associated with the value.
[0116] In 404, each outgoing edge of each decision node is augmented with a probability depending on how often the location represented by the decision node was visited in the paths specified by the training data elements.
[0117] In 405, an assignment of values to the variables is sampled by traversing the ordered binary decision diagram augmented with conjunction nodes to predict a path for a given transportation task, wherein at each decision node, if the assignment of values to the variables results in a valid path for the transportation task, the assignment of the value to the variable represented by the decision node is selected with the probability of the outgoing edge associated with the value.
[0118] According to various embodiments, in other words, a valid path through the location network is given by a combination of locations for which the Boolean formula of variables (where each variable indicates whether the respective location is part of the path) gives "true" (or "false" if indicating the opposite). This Boolean formula is converted into an OBDD [Λ], i.e. an ordered binary decision diagram augmented with conjunction nodes, or in other words, a structure comprising a plurality of OBDDs connected via one or more conjunction nodes (i.e. nodes representing a combination of their child nodes). Depending on the paths (and thus, decisions) taken in the historical trip data as training data, the OBDD [Λ] is augmented with probabilities (i.e. assigning probabilities to outgoing branches of decision nodes). The result, represented as POBDD [Λ], is then used for prediction: a path satisfying a query (e.g. a start location, an end location, and possibly intermediate locations) is sampled from the POBDD [Λ] by following branches according to the probabilities already assigned to the branches.
[0119] It should be noted that the transportation task can refer to transportation of people, like in an electronic ride-hailing application, but also to transportation of packages, food, mail, etc. In particular, the method can be applied in any transportation network where transportation vehicles autonomously select the path they take. For example, the vehicles can be autonomous vehicles.
[0120] For example, the method of Figure 5 is performed by a server computer as shown in Figure 4 .
[0121] Figure 5 A server computer 500 according to one embodiment is shown.
[0122] The server computer 500 comprises a communication interface 501 configured to receive a query for a predicted route. The server computer 500 further comprises a processing unit 502 and a memory 503. The memory 503 can be used by the processing unit 502 to store, for example, historical data, i.e. training data. The server computer is configured to perform the method of Figure 5 .
[0123] The methods described herein can be performed, and the various processing or computing units as well as devices and computing entities described herein can be implemented by one or more circuits. In one embodiment, a “circuit” can be understood as any kind of logic implementing entity, which can be hardware, software, firmware, or any combination thereof. Thus, in one embodiment, a “circuit” can be a hard-wired logic circuit or a programmable logic circuit such as a programmable processor, e.g. a microprocessor. A “circuit” can also be software, e.g. a computer program, which is executed by a processor, e.g. a microprocessor. Any other type of implementation of the functions described herein is also envisaged as “circuit” according to an alternative embodiment.
[0124] While the disclosed subject matter has been particularly shown and described with reference to specific embodiments thereof, it will be understood by those skilled in the art that various changes in form and details can be made therein without departing from the spirit and scope of the disclosed subject matter as defined by the appended claims. Therefore, the scope of the disclosed subject matter is to be interpreted only as is construed in accordance with the substance and range of equivalents of the appended claims.
Claims
1. A method for predicting a path taken by a vehicle for a transportation task, the method comprising: obtaining training data comprising a plurality of training data elements, wherein each training data element specifies a path taken in a location network; representing a set of valid paths as a Boolean formula operating on a set of variables, wherein each location in the location network is represented by a variable in the set of variables and, for an assignment of values to the variables, an output of the Boolean formula indicates whether the assignment of values to the variables represents a valid path through a road network; converting the Boolean formula to an ordered binary decision diagram augmented with conjunctive nodes, the conjunctive nodes comprising, for each variable in the set of variables, a decision node representing the variable, wherein, for each assignment of a value to the variable represented by the decision node, the decision node has an outgoing edge associated with the value; augmenting each outgoing edge of each decision node with a probability dependent on a number of times a location represented by the decision node is visited in the paths specified by the training data elements; and sampling assignments of values to the variables by traversing the ordered binary decision diagram augmented with the conjunctive nodes to predict a path for a given transportation task, wherein, at each decision node, if an assignment of a value to the variable represented by the decision node results in a valid path for the transportation task, the assignment of the value to the variable represented by the decision node is selected with the probability of the outgoing edge associated with the value.
2. The method of claim 1, comprising computing probabilities of paths by traversing the ordered binary decision diagram augmented with conjunctive nodes in a layer-wise manner.
3. The method of claim 1, wherein, Predicting the path comprises determining an output assignment for each node in the ordered binary decision diagram augmented with conjunctive nodes, wherein each output assignment specifies a partial assignment of values to variables of the Boolean formula.
4. The method of claim 3, wherein, Determining the output assignment at a conjunctive node comprises combining assignments output by child nodes of the conjunctive node.
5. The method of claim 3 or 4, wherein, Determining the output assignment at a decision node comprises combining an output of a child node of an outgoing branch corresponding to a selected assignment of the variable represented by the decision node with the selected assignment of the variable represented by the decision node.
6. The method of any one of claims 1 to 4, wherein, Predicting the path comprises processing the ordered binary decision diagram augmented with conjunctive nodes in multiple layers, wherein nodes in one layer are not child or parent nodes of nodes in other layers.
7. The method of claim 6, wherein, Predicting the path comprises generating, for each layer, a decision node matrix having a column for each decision node, the column containing probabilities of the outgoing edges of the decision node, and predicting the path comprises generating, for each layer, a conjunctive node matrix having a column for each conjunctive node, the column for each conjunctive node containing identities of child nodes of the conjunctive node, and processing the decision node matrices and the conjunctive node matrices.
8. The method of any one of claims 1 to 4, wherein, The transportation task specifies a departure location and a destination location, and wherein a valid path is the valid path connects the departure location and the destination location within the location network.
9. The method of any one of claims 1 to 4, wherein, The set of variables is a first set of variables, and the Boolean formula further operates on a second set of variables, wherein each location in the location network is associated with a respective variable in the second set of variables, the value of the respective variable indicating for a path whether the location is an end location of the path.
10. The method of claim 9, wherein, If a path contains at least one end location, the output of the Boolean formula indicates for the path only that the path is a valid path.
11. The method of claim 9, wherein, If a path contains at most two end locations, the output of the Boolean formula indicates for the path only that the path is a valid path.
12. The method of any one of claims 1 to 4, wherein, Even if a path contains a main path comprising at least one end location, and in addition to the main path one or more loops, the one or more loops not containing a node adjacent to a node of the path, the output of the Boolean formula indicates for the path that the path is a valid path.
13. The method of any one of claims 1 to 4, wherein, is a geographical area corresponding to a predetermined level of geographical hash.
14. The method of any one of claims 1 to 4, wherein, In the assignment of variables, each of the variables is assigned true if the location represented by the variable is part of the path represented by the assignment; or each of the variables is assigned false if the location represented by the variable is not part of the path represented by the assignment.
15. A server computer comprising a radio interface, a memory interface, and a processing unit, the processing unit being configured to perform the method of any one of claims 1 to 14.
16. A computer program element comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 14.
17. A computer readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 14.
Citation Information
Patent Citations
Power distribution network tree-shaped topology constraint judging method based on path accessibility
CN105529707A
Command and control network two-terminal reliability estimation method based on edge expansion diagram (EED)
CN108521344A