METHOD AND SYSTEM FOR GENERATING VIABLE PATTERN-TRANSFERS FOR AN ITINERARY -PLANNING SYSTEM
The present invention relates to a method and system for generating viable pattern-transfers for an itinerary-planning system. The method commences with the identification of pairs of patterns along fixed transit routes that are proximate one another. Each of the patterns include a number of stops connected by pattern segments traveled in a specific order. Pattern-transfers are identified between the stops along an inbound pattern of the pairs and the stops along an outbound pattern of the pairs. At least one of the pattern-transfers is discarded if traveling from the inbound pattern to the outbound pattern via the at least one of the pattern-transfers is unadvantageous compared to traveling from the inbound pattern to the outbound pattern via at least one other of the pattern-transfers. The undiscarded pattern-transfers are stored in storage for use by an itinerary-planning system.
Latest TRAPEZE SOFTWARE INC. Patents:
- System and method of communications
- Method and system for generating fixed transit routes
- Method and system for adjusting a demand-response transit schedule
- Methods and Systems for Determining, Characterizing, Addressing and Quantifying Disturbances to Transit System Operation
- Systems and Methods For Transit Industry Vehicle Hardware-Agnostic Communication
The present invention relates to the field of transportation. In particular, it relates to a method and system for generating viable pattern-transfers for an itinerary-planning system.
BACKGROUND OF THE INVENTIONItinerary planning is generally known. Given a travel network, and a set of parameters that form an itinerary-planning request, an itinerary is generated that best satisfies the parameters. The travel network typically is a street network, a walking network or a public transportation network, but, in some cases, can incorporate two or more travel means to enable a comprehensive solution to be provided. The travel network consists of a set of paths, or network segments, that are terminated at both ends by nodes. For example, both metropolitan trains and transit buses travel along fixed routes that have scheduled stops therealong. Nodes can be used to represent the stops and network segments model the travel of the trains and buses between the stops. Nodes are often defined to denote points where interchange between various travel means can occur.
In the case of fixed-route transit, such as via train or urban bus service, the route followed by a vehicle in a direction represents a pattern of travel, or more simply, a pattern. Patterns are punctuated by a series of stops. Itinerary-planning systems store these patterns as a series of network segments spanning between nodes. Geolocations are assigned to the nodes, typically as latitudinal and longitudinal or global positioning system coordinates.
In order for such itinerary-planning systems to generate solutions that include a transfer between a first (or “inbound”) pattern to a second (or “outbound”) pattern where the geolocations of the stops along the patterns don't align perfectly, transfers between patterns (referred to as “pattern-transfers”) by walking are generated by hand and stored with the patterns before deployment so that they can be used to quickly bridge the gap between stops along two different patterns. As changes to the networks occur, such as the addition of new walking paths and the alteration of fixed-route service, the transfers must be manually adjusted and/or added to compensate. This process is tedious, labor-intensive and error-prone. Transfers generated manually may not provide the best solutions for transferring between two patterns. Further, transfers between patterns may be missed entirely.
It is therefore an object of this invention to provide a novel method and system for generating viable pattern-transfers for an itinerary-planning system.
SUMMARY OF THE INVENTIONAccording to an aspect of the invention, there is provided a method for generating viable pattern-transfers for an itinerary-planning system, comprising:
identifying pairs of patterns along fixed transit routes that are proximate one another, each of said patterns comprising a number of stops connected by pattern segments traveled in a specific order;
identifying pattern-transfers between said stops along an inbound pattern of said pairs and said stops along an outbound pattern of said pairs;
discarding at least one of said pattern-transfers if traveling from said inbound pattern to said outbound pattern via said at least one of said pattern-transfers is unadvantageous compared to traveling from said inbound pattern to said outbound pattern via at least one other of said pattern-transfers; and
storing said undiscarded pattern-transfers in storage for use by an itinerary-planning system.
The pattern-transfers can traverse a walking network. The identifying pattern-transfers can include:
determining if said pattern-transfers between one of said stops along said inbound pattern and stops along said outbound pattern and other patterns have been previously identified.
The identifying pattern-transfers can further include:
performing an itinerary query over a walking network to identify said pattern-transfers between said one stop along said inbound pattern and stops proximate said one stop along said outbound pattern and other patterns if said pattern-transfers have not been identified for said one stop along said inbound pattern.
The itinerary query can include the one stop along the inbound pattern as an origin, an arbitrary location relatively distant from the one stop as a destination and a specified maximum walking distance. The itinerary query can also include an arbitrary departure time.
The identified pattern-transfers can be registered in a node-connection map, which can indicate that the itinerary query was performed for the one stop along the inbound pattern. The determining can include determining if the itinerary query has been performed for the one stop.
The identifying pattern-transfers can include:
performing an itinerary query over a walking network to identify said pattern-transfers available at a stop along segment between one of said stops on said first pattern and one of said stops on said second pattern.
The identifying pattern-transfers can include:
identifying pattern-transfers between said stops along said inbound pattern and said stops on said outbound pattern.
The discarding can include:
identifying at least one alternate route from said inbound pattern to said outbound pattern via said other pattern-transfers having a shorter expected travel time and walking distance than via said at least one pattern-transfers.
The discarding can include:
selecting outbound pattern segments along said outbound pattern, commencing with a first of said outbound pattern segments and subsequently selecting immediately-subsequent outbound pattern segments; and
selecting inbound pattern segments along said inbound pattern, commencing with a last of said inbound pattern segments and subsequently selecting immediately-preceding inbound pattern segments.
The discarding can further include:
evaluating transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments in comparison to transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of previously-selected inbound pattern segments to the start of said previously-selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is unadvantageous in comparison to transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said previously-selected inbound pattern segments to the start of said previously-selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers between said selected inbound pattern segments to the start of said selected outbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is unadvantageous in comparison to transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said previously-selected inbound pattern segments and said previously-selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments are longer than said pattern-transfers bridging from the start of said selected inbound pattern segments to the start of said previously-selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments are longer than said pattern-transfers bridging from the end of said selected inbound pattern segments to the end of said selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments are longer than said pattern-transfers bridging from the start of said selected inbound pattern segments to the end of said selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is slower than transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the start of said selected inbound pattern segments to the end of said selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if traveling along said selected inbound segments and transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is unadvantageous in comparison to transferring from said inbound pattern to said outbound pattern at the start of said selected inbound pattern segments and traveling along said outbound pattern to the start of said selected outbound pattern segments.
The discarding can further include:
discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected inbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments and traveling along said selected outbound pattern segments is unadvantageous in comparison to traveling further along said inbound pattern past the end of said selected inbound pattern segments and then transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging to the end of said selected outbound pattern segments.
The identifying pairs of patterns can include:
determining that said pairs of patterns are proximate one another if rectangles bounding said patterns in said pair overlap or are proximate one another.
According to another aspect of the invention, there is provided a computer system for generating viable pattern-transfers for an itinerary-planning system, comprising:
a processor executing computer-readable instructions for identifying pairs of patterns along fixed transit routes in a travel network database that are proximate one another, each of said patterns comprising a number of stops connected by pattern segments traveled in a specific order, identifying pattern-transfers between said stops along an inbound pattern of said pairs and said stops along an outbound pattern of said pairs, discarding at least one of said pattern-transfers if traveling from said inbound pattern to said outbound pattern via said at least one of said pattern-transfers is unadvantageous compared to traveling from said inbound pattern to said outbound pattern via at least one other of said pattern-transfers, and storing said undiscarded pattern-transfers in storage accessible to said computer system for use by an itinerary-planning system.
According to a further aspect of the invention, there is provided a method for generating viable pattern-transfers for an itinerary-planning system, comprising:
identifying pairs of patterns along fixed transit routes that are proximate one another, each of said patterns comprising a number of stops connected by pattern segments traveled in a specific order;
selecting one of said pairs of patterns;
setting one of said patterns in said one pair as an inbound pattern and another of said patterns in said one pair as an outbound pattern;
identifying pattern-transfers between said stops along an inbound pattern and said stops along an outbound pattern; and
storing at least one of said pattern-transfers in storage for use by an itinerary-planning system if traveling from said inbound pattern to said outbound pattern via said at least one of said pattern-transfers provides an advantage compared to traveling from said inbound pattern to said outbound pattern via other of said pattern-transfers.
Other and further advantages and features of the invention will be apparent to those skilled in the art from the following detailed description thereof, taken in conjunction with the accompanying drawings.
The invention will now be described in more detail, by way of example only, with reference to the accompanying drawings, in which like numbers refer to like elements, wherein:
An itinerary-planning system generates itineraries in response to receiving itinerary-planning requests. Itinerary-planning requests generally include an origin (commonly referred to as a “point of departure”) and a destination, and also can include a desired time of departure or arrival and various other constraints. One or more suitable travel itineraries may be generated by the itinerary-planning system, if possible. Depending on the type of itinerary-planning system, an itinerary can include public transportation, or walking and road travel by private vehicle or taxi, or some combination thereof.
Itinerary-planning systems generally store, or access stored, information about various travel networks to enable them to plan itineraries. Such systems can include information regarding fixed-route transit, street and walking networks. The information stored for fixed-route transit typically consists of patterns and schedule information, but may also include additional information regarding expected travel speeds along the pattern. Patterns represent the travel of a fixed-route transit vehicle in one direction between the various stops along the route. The stops are types of network nodes that are physical locations, such as intersections, bus stops and train stations. Pattern segments are a type of network segment that represents means for traveling between the nodes. A network segment is usually one of the following: a set of trips between consecutive stopping points, a walk transfer between vehicles, and the traversal of a street segment, either on foot or by private vehicle (for example, car or taxi). The geolocations (i.e., latitude and longitude coordinates) of the stops are stored together with the pattern segments that span the stops.
Walking networks are somewhat different, in that there are no patterns, per se, or schedules. Loosely described, walking networks consist of network segments that represent a route that can be traversed by a pedestrian between network nodes that define points at which alternative route choices can be made. As different choices may be available and issues may be encountered for each direction of travel along a portion of a walking network, network segments represent travel in one direction. Thus, a walking path may be represented by two network segments, one traveling in each direction. Additional information for walking networks may include expected travel speeds, gradients, etc. The geolocations of the network nodes are stored together with the other information for the walking segments.
Itinerary-planning systems generate itineraries by chaining together network segments stored in a database and favoring builds of chained network segments that appear more likely to provide a better solution over other builds. When such systems are looking to extend a build of network segments chained together, they look to see what network segments are available at the end node of the last network segment in the chain terminates. This generally continues until one or more solutions to the destination are found.
The exploration of walking networks available at stops along a pattern being explored at runtime in a subconscious effort to locate other patterns that may take one closer to the destination can be very resource-intensive. As a result, it is desirable to generate network segments representing the traversal from one pattern to another on foot once so that they can be used reiteratively during the day-to-day operation of the itinerary-planning system. By pre-generating such “pattern-transfers”, itinerary solutions to queries can be generated much more rapidly.
The invention relates to a method and system for generating viable pattern-transfers for an itinerary-planning system. Given a set of fixed-route transit patterns, proximate pairs of patterns of fixed-route transit are identified. The patterns include a number of stops connected by pattern segments traveled in a specific order. Pattern-transfers between the stops along an inbound pattern of one of the pairs and the stops along an outbound pattern of one of the pairs are identified. At least one of the pattern-transfers is discarded if traveling from the inbound pattern to the outbound pattern via the at least one of the pattern-transfers is unadvantageous compared to traveling from the inbound pattern to the outbound pattern via at least one other of the pattern-transfers. The undiscarded walking segments are stored in storage for use by an itinerary-planning system.
It has been found that, by generating viable pattern-transfers prior to deployment using an automated approach, the pattern-transfers stored for use by an itinerary-planning system are selected after consideration of the various possible walking segments one can use to get from one pattern to another. Using this methodical approach, some less-obvious walking segments may be located that are more favorable than those identified using a manual process. Further, the manual labor involved in maintaining the pattern-transfers is greatly reduced. In addition, the pattern-transfers can be revised immediately in response to continual changes to the travel network.
An itinerary-planning system 28 is also in communication with the travel network database 24. The itinerary-planning system 28 is coupled to a large communications network 32, such as the Internet. The itinerary-planning system 28 operates a web service for serving web pages in response to requests for the same. A personal computer 36 is also shown in communication with the communications network 32 and executes an operating system and a web browser for enabling a user to access content available through web servers. A mobile device 40 is additionally in communication with the communications network 32 via a number of intermediate cellular communications towers, servers and switches that are not shown. Like the personal computer 36, the mobile device 40 executes an operating system and a web browser for enabling a user to access functionality and data available through web servers.
Using the travel network data stored in the travel network database 24, the itinerary-planning system 28 can receive an itinerary-planning request generated via a served request page, analyze the travel network data, generate one or more itineraries, and generate and serve one or more web pages that show the itineraries generated for the itinerary-planning request.
The transfer-generating software generates viable pattern-transfers between patterns, where possible.
Travel Network DataIn order to understand the type of data that is stored in the travel network database 24, as well as its use, it will now be described.
All bus trips that visit exactly the same sequence of stops are said to belong to the same pattern. In this example, there are three patterns in each direction (normal—trips 2 to 10, detour—trip 1, and short running—trips 11 and 12). Vehicles that run to the same pattern do not overtake one another. A pattern also has a unique sequence of stop activities, i.e. whether passengers may alight, board, or transfer to other vehicles. The travel network database 24 groups all public transportation trips into patterns. The link between each consecutive pair of stops in a pattern is called a pattern segment. The same is also true for trains and other public transit vehicles performing fixed routes. Each stop is assigned a unique node ID that is associated with the stop's geolocations.
For walking networks, each section of walking path between junctions is known as a walking segment. This is a derivation and specific case of a network segment. There is a separate walking segment for each direction of travel. Each segment may have its own maximum walk speed (which may depend on gradient and may vary with time of day). These speeds may be modified using a customer-specific or enquiry-specific multiplication factor.
General MethodAssume that the stops of the pattern are S1 to Sn. For each stop, Si, the geolocation coordinates (xi, yi) are determined. The bounding rectangle for a pattern is thus the rectangle whose two cater-cornered vertices are [min(xi) for all i, min(yi) for all i] and [max(xi) for all i, max(yi) for all i]. For purposes of simplifying the notation, the coordinates of the cater-cornered vertices of a bounding rectangle for a pattern Pj will be written as [min(xj),min(yj)] and [max(xj),max(yj)], where xj and yj represent all of the values of x and y for the stops on the pattern Pj.
Returning to
min(xj)<max(xk)
min(xk)<max(xj)
min(yj)<max(yk)
min(yk)<max(yj)
If any of these conditions is not satisfied, then the bounding rectangles do not overlap. Patterns whose bounding rectangles do not overlap may still be deemed to be proximate one another if the bounding rectangles are close to one another. In particular, if the displacement between the bounding rectangles is not greater than a threshold, T, along both the x and the y axis, then the patterns are deemed to be proximate one another. Thus, expressed formulaically, patterns Pj and Pk are deemed to be proximate one another if all of the following four conditions are satisfied:
min(xj)<max(xk)+T
min(xk)<max(xj)+T
min(yj)<max(yk)+T
min(yk)<max(yj)+T
Each pair of patterns deemed to be proximate one another is stored in a proximate pattern list by the computer system 20.
Once pairs of proximate patterns have been identified at 120, an unanalyzed proximate pair of patterns is selected from the proximate pattern list (130). Next, it is determined if there are any viable pattern-transfers from the inbound pattern to the outbound pattern in the pair selected from the proximate pattern list (140). As it will be desirable to identify viable pattern-transfers from the each pattern to the other in a pair of proximate patterns, one of the pair of patterns is first selected as an inbound pattern and the other as an outbound pattern and viable pattern-transfers from the inbound pattern to the outbound pattern are looked for. Then, the pattern previously selected as an outbound pattern is made the inbound pattern and the pattern previously selected as an inbound pattern is made the outbound pattern, and the process of identifying viable pattern-transfers from the inbound pattern to the outbound pattern is repeated. In order to illustrate the identification of viable pattern-transfers between a pair of patterns that are proximate one another, an exemplary pair of patterns proximate one another will be shown.
The process commences with the placement of all of the outbound pattern segments in an outbound queue (310). The pattern segments or ordered in the queue such that the first pattern segment travel along the pattern is placed on top, with the remaining pattern segments being placed in the outbound queue in the order traveled. Next, all of the inbound pattern segments are placed in an inbound queue (315). The pattern segments are ordered in the queue such that the last pattern segment traveled along the pattern is placed on top with the remaining pattern segments being placed in the inbound queue in the reverse order traveled. A next remaining network segment along the outbound pattern is then selected (320). As the outbound pattern segments in the outbound queue are placed in the same order as they are traveled along the pattern, an outbound pattern segment selected from the outbound queue is the “earliest” of the remaining outbound pattern segments in the outbound queue. For example, when pattern 204 shown in
Once an inbound and an outbound segment are selected, the walking distance between the selected pattern segments is determined (340). Walking distances are determined from the end node of the selected inbound pattern segment to the start node of the selected outbound pattern. The “start node”, or “start”, of a pattern segment is the network node that is visited earlier during travel along the pattern, and the “end node”, or “end”, of a pattern segment is the network node that is visited later during travel along the pattern. The actual walking distances are determined by performing an itinerary query using the end node of the selected inbound pattern segment and specifying a threshold for the maximum walking distance permitted. The specified maximum walking distance is a selected distance that is deemed too far for anyone to walk between patterns when trying to generate an itinerary. Builds of network segments on the walking network commencing at the end node of the selected inbound pattern segment, referred to as the “origin”, are expanded, thus exploring the walking network. If a stop along any pattern (not just the two being examined) is discovered during expansion, the walking distance from the end node of the selected inbound pattern segment to the discovered stop is registered in a node-connection map. The node-connection map is a registry of stops along the patterns that are within the maximum walking distance from other stops on the other patterns. Entries in the node-connection map generally include the origin node ID and the node ID of the located stops, as well as information about the walks. Builds of network segments explored from the end node of the selected inbound pattern segment are not allowed to exceed the maximum walking distance. Once all builds not exceeding the maximum walking distance have been explored, an entry is made in the node-connection map of (origin node ID, origin node ID) to indicate that no other stops are within the maximum walking distance and that an itinerary query was performed for the origin node; that is, the end node of the selected inbound pattern segment. The node-connection map is maintained in storage, thereby enabling rapid referral to previously-determined walking distances from stops to other stops. This is useful as a stop location, as represented by a node ID, can be common to more than one pattern, and stop-to-stop walking itineraries previously identified can be used at later times.
If neither (origin node ID, destination node ID) nor (origin node ID, origin node ID) are in the node-connection map, then an itinerary query for walking along the walking network around the origin node is performed (346). The itinerary query specifies an arbitrary destination relatively distant from the origin node such that all directions are explored around the origin. Further, an arbitrary time of departure and the maximum walking distance threshold are specified. By expanding builds of network segments commencing at the origin node, but stopping the expansion once all builds cannot be expanded without exceeding the maximum walking distance, all stops for any pattern within walking distance from the origin node can be registered in the node-connection map. As the stops of any pattern are encountered in the expansion builds, entries of (origin node ID, destination node ID) are placed in the node-connection map, together with the distance and duration. In order to calculate a duration for a walk between two stops, the walk's distance is divided by an average walking speed specified during configuration of the computer system 20. Further, by making an entry in the node-connection map of (origin node ID, origin node ID), it can be quickly determined from the node-connection map whether the analysis has been performed for the origin node.
In this illustrated example, stops along the same pattern and on other patterns are discovered during the itinerary generating at 345. In particular, nodes A13 and A14 are stops along the same pattern, and D21, G6 and R32 are stops along other patterns, all of which are within the maximum walking distance of A15. Stops A12 to A1, and all of the stops on pattern 204 for that matter, in this case were not discovered while exploring builds less than the maximum walking distance and, as a result, corresponding entries are not made in the node-connection map with A15 as the origin node. As will be appreciated, when performing the same analysis for A8 and A7, at least, walking segments from these stops to stops along pattern 204 are likely to be located and placed in the node-connection map.
Returning again to
Upon retrieving the walking distance and duration from the node-connection map at 343 or upon concluding that the walking distance from the origin to the destination exceeds the maximum walking distance at 345, it is determined if the start node for the selected inbound pattern segment has been set as the origin node (347). If it has not, the origin node is set to be the start node of the inbound pattern segment (348), after which it is determined if the (origin node ID, destination node ID) combination is in the node-combination map at 342. If, instead, it is determined that the start node for the selected inbound pattern segment had previously been set as the origin node, the process 340 of determining the walking distance between the selected inbound and outbound pattern segments ends.
Returning again to
Ai-1:Ai˜Bj:Bj+1
is quicker than
Ai-1:Ai+m˜Bj-n:B3+1
where Ai-1:Ai represents travel along a pattern from Ai-1 to Ai, and Ai˜Bj represents a walking transfer from Ai to Bj. Implicit in this determination is that any walking transfer from later along the inbound pattern to the outbound pattern must be shorter than the currently-examined walking transfer, otherwise the alternative route cannot be faster. This comparison is performed using expected travel times in this embodiment, but those skilled in the art will appreciate that other methods of determining quickness can be employed.
As walking segments between later network segments of the inbound pattern and earlier network segments of the outbound pattern have already been explored, the information required to generate these answers rapidly is readily available. Also of note, if no viable walking segments between later stops along the inbound pattern and earlier stops along the outbound pattern have been registered, then the current walking transfer is, by default, quicker than any found so far.
Referring again to
If, instead, it is determined at 404 that the currently-examined pattern-transfer from the end node of the selected inbound pattern segment is quicker than traveling further along the inbound pattern, transferring to the outbound pattern at some earlier stop thereon, then traveling along the outbound pattern to the start of the selected outbound pattern-transfer, then it is determined whether the currently-analyzed pattern-transfer is shorter than the pattern-transfer from the previous stop along the inbound pattern to the same stop on the outbound pattern (412). That is, whether
Ai-1˜Bj
is shorter than
Ai˜Bj.
If the pattern-transfer Ai-1˜Bj is deemed to exceed the maximum walking distance during 340, then Ai˜Bj is deemed to be shorter, by default.
Referring again to
If, instead, it is determined at 412 that the currently-examined pattern-transfer from the end node of the selected inbound pattern segment to the start node of the selected outbound pattern segment is shorter than the pattern-transfer from the start node of the selected inbound pattern segment to the same stop on the outbound pattern, then it is determined whether the currently-examined pattern-transfer from the end node of the selected inbound pattern segment to the start node of the selected outbound pattern segment is shorter than the pattern-transfer from the end node of the selected inbound pattern segment to the end node of the selected outbound pattern segment (416). That is, whether
Ai˜Bj
is shorter than
Ai˜Bj+1.
If the pattern-transfer Ai˜Bj+1 is deemed to exceed the maximum walking distance during 340, then Ai˜Bj is deemed to be shorter, by default.
Referring again to
If, instead, it is determined at 416 that the currently-examined pattern-transfer from the end node of the selected inbound pattern segment to the start node of the selected inbound pattern segment is shorter than the pattern-transfer from the end node of the selected inbound pattern segment to the end node of the selected outbound pattern segment, then it is determined whether the pattern-transfer from the end node of the selected inbound pattern segment to the start node of the selected outbound pattern segment is shorter than the pattern-transfer from the start node of the selected inbound pattern segment to the end node of the selected outbound pattern segment (420). That is, whether
Ai˜Bj
is shorter than
Ai-1˜Bj+1.
If the pattern-transfer Ai-1˜Bj+1 is deemed to exceed the maximum walking distance during 340, then Ai˜Bj is deemed to be shorter, by default.
Referring again to
If, instead, it is determined at 420 that the correctly-examined pattern-transfer from the end node of the selected inbound pattern segment to the start node of the selected outbound pattern segment is shorter than the pattern-transfer from the start node of the selected inbound pattern segment to the end node of the selected outbound pattern segment, then it is determined whether the expected time to travel across the selected inbound pattern segment, walk to the start node of the selected outbound pattern segment via the currently-examined pattern-transfer, then travel across the selected outbound pattern segment is shorter than the expected travel time to walk directly from the start node of the selected inbound pattern segment to the end node of the selected outbound pattern segment (424). That is, whether the expected travel time for
Ai-1:Ai˜Bj:Bj+1
is lower than for
Ai-1˜Bj+1
One scenario addressed here is where Ai-1:Ai and Bj:Bj+1 essentially travel along the same road, and Ai-1 and Bj+1 represent stops on opposite sides of the road.
Returning again to
Referring again to
If, instead, it is determined at 424 that the expected time to travel across the selected inbound pattern segment, walk to the start node of the selected outbound pattern segment via the currently-examined pattern-transfer, then travel across the selected outbound pattern segment is shorter than the expected travel time to walk directly from the start node of the selected inbound pattern segment to the end node of the selected outbound pattern segment, then it is determined whether traveling across the selected inbound pattern segment then walking to the start node of the selected outbound pattern segment via the currently-examined pattern-transfer is expected to be quicker or involves less walking than walking from the start node of the selected inbound pattern segment to a stop along the outbound pattern and traveling along the outbound pattern to the start node of the selected outbound pattern segment (428). That is, whether
Ai-1:Ai˜Bj
is expected to be quicker or involves less walking than
Ai-1˜Bj-n:Bj.
Referring again to
If, instead, it is determined to 428 that traveling across the selected inbound pattern segment then walking to the start node of the selected outbound pattern segment via the currently-examined pattern-transfer is expected to be quicker or involves less walking than walking from the start node of the selected inbound pattern segment to a stop along the outbound pattern and traveling along the outbound pattern to the start node of the selected outbound pattern segment, then it is determined whether walking from the end node of the selected inbound pattern segment to the start node of the selected outbound pattern segment and then traveling along the selected outbound pattern segment is expected to be quicker or involves less walking than traveling further along the inbound pattern and then walking to the end node of the selected outbound pattern segment (432). That is, whether
Ai˜Bj:Bj+1
is expected to be quicker or involves less walking than
Ai:Ai+m˜Bj+1, for any m.
Referring again to
If, instead, it is determined at 432 that walking from the end node of the selected inbound pattern segment to the start node of the selected outbound pattern segment via the currently-examined pattern-transfer and then traveling along the selected outbound pattern segment is expected to be quicker or involves less walking than traveling further along the inbound pattern and then walking to the end node of the selected outbound pattern segment, then the currently-examined pattern-transfer is deemed to be viable (436), after which the method 360 ends.
Returning to
Once the correctly-examined pattern-transfer is either discarded or registered in the viable pattern-transfer set, it is determined if there are remaining pattern segments in the inbound queue (380). If there are, the last remaining pattern segment in the inbound queue is selected at 330, and the process of analyzing a pair of pattern segments is repeated.
If, instead, it is determined at 380 that there are no remaining inbound pattern segments, it is then determined if there are remaining outbound pattern segments in the outbound queue (380). If there are, then the inbound pattern segments are placed in the inbound queue again at 315, and the process of analyzing pairs of pattern segments repeats.
Once all of the viable pattern-transfers from one of the patterns to the other have been identified and placed in the viable pattern-transfer set at 140, the role of the patterns in the pair of proximate patterns is switched and viable pattern-transfers between the patterns are determined, if any (150). That is, the outbound pattern is made the inbound pattern, and the inbound pattern is made the outbound pattern. The process for determining viable pattern-transfers here is the same as described with respect to 140 above.
After identifying viable pattern-transfers between the patterns, it is determined if there are any unanalyzed identified pairs of proximate patterns in the proximate patterns list (160). If there are, the method 100 returns to 130, at which an unanalyzed pair of proximate patterns is selected to identify viable pattern-transfers between the patterns.
Once it is determined that there are no remaining unanalyzed pairs of proximate patterns at 160, the method 100 ends.
While, in the described embodiment, the computer system for generating viable pattern-transfers is described as a separate physical machine from the itinerary-planning system, those skilled in the art will appreciate that they can reside on the same computer system. Alternatively, each of the computer systems for generating viable pattern-transfers and the itinerary-planning system can be one or more computer systems cooperatively providing the functionality described herein.
Instead of performing generalized itinerary queries for each stop on the outbound patterns to locate proximate stops along other patterns, in an alternative embodiment, itinerary queries are performed between stops along the inbound patterns and stops along the outbound patterns. Additionally, if an estimated straight-line distance between a stop along an inbound pattern and a stop along an outbound pattern exceeds a threshold maximum distance, the itinerary query may be skipped.
A range of durations may be recorded in the viable pattern-transfer set stored in storage. In some cases, the durations for some patterns can vary during the course of the day, depending on traffic conditions, etc. It can be beneficial to register a range in some circumstances to assist in identifying more suitable itinerary solutions.
Other attributes of pattern-transfers, such as gradients, can be registered in the viable pattern-transfer set and used to help select one or more suitable itinerary solutions for an itinerary query generated at runtime.
Some pattern-transfers may be pre-defined as part of the travel network. Such pre-defined pattern-transfers may be used for complex interchanges, possibly involving stairs or lifts, such as at rail stations, or areas where it is impractical to define a walking network. Where a pattern transfer is pre-defined, it can be made to take precedence over any automatically-generated pattern-transfers. In such cases, the transfer duration can be fixed and independent of any walking speed specified that is used to calculate the duration of pattern-transfers generated by the system.
Computer-executable instructions for implementing the itinerary-planning software on a computer system could be provided separately from the computer system, for example, on a computer-readable medium (such as, for example, an optical disk, a hard disk, a USB drive or a media card) or by making them available for downloading over a communications network, such as the Internet.
While the computer system is shown as a single physical computer, it will be appreciated that the computer system can include two or more physical computers in communication with each other. Accordingly, while the embodiment shows the various components of the itinerary-planning software residing on the same physical computer, those skilled in the art will appreciate that the components can reside on separate physical computers.
This concludes the description of the presently preferred embodiments of the invention. The foregoing description has been presented for the purpose of illustration and is not intended to be exhaustive or to limit the invention to the precise form disclosed. It is intended the scope of the invention be limited not by this description but by the claims that follow.
Claims
1. A method for generating viable pattern-transfers for an itinerary-planning system, comprising:
- identifying pairs of patterns along fixed transit routes that are proximate one another, each of said patterns comprising a number of stops connected by pattern segments traveled in a specific order;
- identifying pattern-transfers between said stops along an inbound pattern of said pairs and said stops along an outbound pattern of said pairs;
- discarding at least one of said pattern-transfers if traveling from said inbound pattern to said outbound pattern via said at least one of said pattern-transfers is unadvantageous compared to traveling from said inbound pattern to said outbound pattern via at least one other of said pattern-transfers; and
- storing said undiscarded pattern-transfers in storage for use by an itinerary-planning system.
2. The method of claim 1, wherein said pattern-transfers traverse a walking network.
3. The method of claim 2, wherein said identifying pattern-transfers comprises:
- determining if said pattern-transfers between one of said stops along said inbound pattern and stops along said outbound pattern and other patterns have been previously identified.
4. The method of claim 3, wherein said identifying pattern-transfers further comprises:
- performing an itinerary query over a walking network to identify said pattern-transfers between said one stop along said inbound pattern and stops proximate said one stop along said outbound pattern and other patterns if said pattern-transfers have not been identified for said one stop along said inbound pattern.
5. The method of claim 4, wherein said itinerary query includes said one stop along said inbound pattern as an origin, an arbitrary location relatively distant from said one stop as a destination and a specified maximum walking distance.
6. The method of claim 5, wherein said itinerary query includes an arbitrary departure time.
7. The method of claim 5, wherein said identified pattern-transfers are registered in a node-connection map.
8. The method of claim 7, wherein said node-connection map indicates that said itinerary query was performed for said one stop along said inbound pattern.
9. The method of claim 8, wherein said determining comprises:
- determining if said itinerary query has been performed for said one stop.
10. The method of claim 2, wherein said identifying pattern-transfers comprises:
- performing an itinerary query over a walking network to identify said pattern-transfers available at a stop along segment between one of said stops on said first pattern and one of said stops on said second pattern.
11. The method of claim 1, wherein said identifying pattern-transfers comprises:
- identifying pattern-transfers between said stops along said inbound pattern and said stops on said outbound pattern.
12. The method of claim 1, wherein said discarding comprises:
- identifying at least one alternate route from said inbound pattern to said outbound pattern via said other pattern-transfers having a shorter expected travel time and walking distance than via said at least one pattern-transfers.
13. The method of claim 1, wherein said discarding comprises:
- selecting outbound pattern segments along said outbound pattern, commencing with a first of said outbound pattern segments and subsequently selecting immediately-subsequent outbound pattern segments; and
- selecting inbound pattern segments along said inbound pattern, commencing with a last of said inbound pattern segments and subsequently selecting immediately-preceding inbound pattern segments.
14. The method of claim 13, wherein said discarding further comprises:
- evaluating transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments in comparison to transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of previously-selected inbound pattern segments to the start of said previously-selected outbound pattern segments.
15. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is unadvantageous in comparison to transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said previously-selected inbound pattern segments to the start of said previously-selected outbound pattern segments.
16. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers between said selected inbound pattern segments to the start of said selected outbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is unadvantageous in comparison to transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said previously-selected inbound pattern segments and said previously-selected outbound pattern segments.
17. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments are longer than said pattern-transfers bridging from the start of said selected inbound pattern segments to the start of said previously-selected outbound pattern segments.
18. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments are longer than said pattern-transfers bridging from the end of said selected inbound pattern segments to the end of said selected outbound pattern segments.
19. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments are longer than said pattern-transfers bridging from the start of said selected inbound pattern segments to the end of said selected outbound pattern segments.
20. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is slower than transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the start of said selected inbound pattern segments to the end of said selected outbound pattern segments.
21. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments if traveling along said selected inbound segments and transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments is unadvantageous in comparison to transferring from said inbound pattern to said outbound pattern at the start of said selected inbound pattern segments and traveling along said outbound pattern to the start of said selected outbound pattern segments.
22. The method of claim 14, wherein said discarding further comprises:
- discarding said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected inbound pattern segments if transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging from the end of said selected inbound pattern segments to the start of said selected outbound pattern segments and traveling along said selected outbound pattern segments is unadvantageous in comparison to traveling further along said inbound pattern past the end of said selected inbound pattern segments and then transferring from said inbound pattern to said outbound pattern via said pattern-transfers bridging to the end of said selected outbound pattern segments.
23. The method of claim 1, wherein said identifying pairs of patterns comprises:
- determining that said pairs of patterns are proximate one another if rectangles bounding said patterns in said pair overlap or are proximate one another.
24. A computer system for generating viable pattern-transfers for an itinerary-planning system, comprising:
- a processor executing computer-readable instructions for identifying pairs of patterns along fixed transit routes in a travel network database that are proximate one another, each of said patterns comprising a number of stops connected by pattern segments traveled in a specific order, identifying pattern-transfers between said stops along an inbound pattern of said pairs and said stops along an outbound pattern of said pairs, discarding at least one of said pattern-transfers if traveling from said inbound pattern to said outbound pattern via said at least one of said pattern-transfers is unadvantageous compared to traveling from said inbound pattern to said outbound pattern via at least one other of said pattern-transfers, and storing said undiscarded pattern-transfers in storage accessible to said computer system for use by an itinerary-planning system.
25. A method for generating viable pattern-transfers for an itinerary-planning system, comprising:
- identifying pairs of patterns along fixed transit routes that are proximate one another, each of said patterns comprising a number of stops connected by pattern segments traveled in a specific order;
- selecting one of said pairs of patterns;
- setting one of said patterns in said one pair as an inbound pattern and another of said patterns in said one pair as an outbound pattern;
- identifying pattern-transfers between said stops along an inbound pattern and said stops along an outbound pattern; and
- storing at least one of said pattern-transfers in storage for use by an itinerary-planning system if traveling from said inbound pattern to said outbound pattern via said at least one of said pattern-transfers provides an advantage compared to traveling from said inbound pattern to said outbound pattern via other of said pattern-transfers.
Type: Application
Filed: Mar 27, 2012
Publication Date: Jan 9, 2014
Applicant: TRAPEZE SOFTWARE INC. (Mississaugua)
Inventor: Matthew David Francis (Bradford on Avon)
Application Number: 14/006,615
International Classification: G06Q 10/02 (20060101);