US20150168149A1 - Systems and Methods for Generating a Plurality of Trip Patterns - Google Patents
Systems and Methods for Generating a Plurality of Trip Patterns Download PDFInfo
- Publication number
- US20150168149A1 US20150168149A1 US13/894,025 US201313894025A US2015168149A1 US 20150168149 A1 US20150168149 A1 US 20150168149A1 US 201313894025 A US201313894025 A US 201313894025A US 2015168149 A1 US2015168149 A1 US 2015168149A1
- Authority
- US
- United States
- Prior art keywords
- transit
- trip
- arc
- arcs
- solution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3423—Multimodal routing, i.e. combining two or more modes of transportation, where the modes can be any of, e.g. driving, walking, cycling, public transport
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C22/00—Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
- G01C22/002—Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers for cycles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C22/00—Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
- G01C22/02—Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers by conversion into electric waveforms and subsequent integration, e.g. using tachometer generator
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0968—Systems involving transmission of navigation instructions to the vehicle
- G08G1/096833—Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route
- G08G1/096844—Systems involving transmission of navigation instructions to the vehicle where different aspects are considered when computing the route where the complete route is dynamically recomputed based on new data
Definitions
- the present disclosure relates generally to transit system trip planning. More particularly, the present disclosure relates to systems and methods for generating a plurality of potential trip patterns with respect to one or more transit systems.
- a user inputs a departure and/or arrival time as well as origin and destination locations to the transit planning service.
- Search algorithms are used to identify possible transit trips between the origin and the destination across one or more modes of transportation, such as ferries, buses, rails, walking, etc.
- Certain services can return only a single result based on a complex model and a computationally expensive search algorithm.
- Other services can attempt to identify a large number of trips to consider for recommendation, but may use computationally expensive methods, fail to provide a large diversity of results, or identify too few trips worthy of consideration.
- One exemplary aspect of the present disclosure is directed to a computer-implemented method of determining a plurality of trip patterns.
- the method includes receiving transit graph data describing a plurality of nodes respectively corresponding to a plurality of transit stations and a plurality of arcs respectively connecting the plurality of nodes and respectively corresponding to transportation between the plurality of transit stations.
- the method also includes performing a plurality of identification iterations. Each identification iteration includes determining an optimal transit trip connecting an origin node to a destination node based on a cost model.
- the cost model provides an arc cost for each of the plurality of arcs.
- Each identification iteration also includes revising the cost model based on the determined optimal transit trip, such that the arc costs associated with one or more arcs associated with the optimal transit trip are increased.
- Each subsequent identification iteration can determine the optimal transit trip based on the cost model as revised by the immediately preceding identification iteration such that a plurality of optimal transit trips are determined.
- Each optimal transit trip can have an associated trip pattern describing a sequence of nodes traversed by such optimal transit trip.
- FIG. 1 depicts an overview of an exemplary system for transit trip planning according to an exemplary embodiment of the present disclosure
- FIG. 2 depicts a flowchart of an exemplary method for identifying a plurality of trip patterns and transit trips according to an exemplary embodiment of the present disclosure
- FIG. 3 depicts a representation of an exemplary transit system according to an exemplary embodiment of the present disclosure
- FIGS. 4A and 4B depict a flowchart of an exemplary method for determining a plurality of trip patterns according to an exemplary embodiment of the present disclosure.
- FIG. 5 depicts an exemplary computing system according to an exemplary embodiment of the present disclosure.
- Each trip pattern can describe a sequence of stations at which a traveler travelling on a transit trip connecting an origin station to a destination station boards or alights a vehicle providing transportation, such as particular instances of transportation by bus lines, rail lines, etc.
- a transit graph comprising a plurality of arcs (available instances of transportation) and nodes (arrival or departure of an instance of transportation at a transit station) can be searched to find a first optimal transit trip from the origin to the destination according to a given cost model.
- the sequence of stations at which a traveler is required to board or alight a vehicle providing transportation according to the first optimal transit trip can be described by a first trip pattern.
- the cost model can be revised to penalize one or more arcs associated with the first optimal transit trip and the transit graph can be searched again to find a second optimal transit trip based on the revised cost model.
- a plurality of transit trips can be determined and, likewise, a plurality of trip patterns can be identified.
- additional trip patterns can be identified by merging trip patterns found using the iterative method.
- a second graph can be constructed based on selected of the determined transit trips or trip patterns. Additional arcs that were not identified by the iterative searching process can be added to the second graph. Additional unique trip patterns included within the second graph can be determined using one or more graph traversal algorithms. All discovered trip patterns can be stored and a plurality of transit trips can be identified based on the plurality of trip patterns.
- a transit graph can be provided that comprises a plurality of nodes and arcs.
- Each arc can correspond to an available instance of transportation using a transit line.
- an exemplary arc may correspond to transportation using Bus Line 3 from Station X to Station Y from 9:00 AM to 10:00 AM on a Monday.
- Each node of the transit graph can respectively correspond to arrival or departure of an instance of transportation at a transit station. Therefore, the exemplary arc corresponding to an instance of transportation using Bus Line 3 would connect at least two nodes: the departure of Bus Line 3 from Station X at 9:00 AM and the arrival of Bus Line 3 at Station Y at 10:00 AM.
- walking arcs or driving arcs such as arcs representing transportation by taxi cab or rental vehicle, can be included in the transit graph.
- a cost model can be used to define an arc cost associated with each arc.
- such cost model can incorporate a plurality of parameters reflective of various costs associated with each arc, including duration, fare, mode of transportation, transit provider (agency), or a penalty associated with undesirable factors such as a walking penalty.
- the arc cost for each arc can be the sum of its costs for each parameter.
- a first optimal transit trip connecting an origin station to a destination station can be determined based on the transit graph.
- the first optimal transit trip should minimize trip cost according to the cost model. Any suitable shortest path algorithm can be used to find such first optimal transit trip, including Dijkstra's algorithm.
- a first trip pattern can describe a sequence of nodes at which a traveler travelling upon the first optimal transit trip boards or disembarks from a vehicle providing transportation. Such first trip pattern can be extracted or otherwise identified and stored.
- one or more of the arcs connecting transit stations associated with nodes traversed by the first optimal transit trip can be penalized (e.g. have their costs increased) and the transit graph can be searched again to find a second optimal transit trip. Due to the penalization of the one or more arcs, this second optimal transit trip likely traverses one or more different stations or sequence of stations than the first optimal transit trip. Thus, repeating the above process can provide a plurality of unique trip patterns.
- all arcs connecting transit stations associated with a pair of sequential nodes included in the first trip pattern can be penalized. For example, if the first optimal transit trip has the following trip pattern: A>B>B>C>C>D, then all arcs connecting the transit stations respectively associated with nodes A and B, all arcs connecting the transit stations respectively associated with nodes B and C, and all arcs connecting the transit stations respectively associated with nodes C and D can be penalized.
- the added penalties for each arc can be proportional to a duration associated with such arc. Therefore, arcs that have a greater duration can receive a larger penalty. In such fashion, the resulting plurality of trip patterns can include trip patterns with more significant diversity.
- all arcs connecting the pair of transit stations respectively associated with the pair of nodes connected by the solution arc that contributes the greatest cost to the first optimal transit trip are penalized. For example, if solution arc (B, C) contributes the greatest cost out of solution arcs (A, B), (B, C), and (C, D), then all arcs connecting the transit stations respectively associated with nodes B and C can be penalized. As another example, a similar penalization can be applied based upon which solution arc has the associated duration of greatest magnitude.
- each transit line utilized by the first optimal transit trip can be penalized. For example, if arc (B, C) comprises a portion of a “Bus Line 1” and arc (C, D) comprises a portion of a “Metro Line 2,” then all arcs that correspond to either Bus Line 1 or Metro Line 2 can be penalized following the first search. Further embodiments can add penalties based on mode of transportation or vehicle provider (agency).
- the shortest path algorithm is performed again in order to determine a second optimal transit trip. Due to the added penalties, the second optimal transit trip is likely different from the first optimal transit trip.
- iteratively repeating the above process can provide a plurality of unique trip patterns.
- the above method can be performed for a fixed number of iterations or can be stopped when the determined transit trips or associated trip patterns become repetitive or fail to meet certain criteria.
- iteratively repeating the above process can fail to identify every available trip pattern. For example, certain arcs can fail to be identified when revising the cost model includes penalizing all arcs corresponding to the entire optimal transit trip.
- the trip patterns identified by the iterative process discussed above can be merged together in order to identify additional trip patterns.
- a second graph can be built from selected of the plurality of optimal transit trips determined by the above iterative process or their associated trip patterns.
- the trip patterns resulting from the first ten iterations of the above method can be selected and a directed graph can be formed from arcs connecting the stations described by such trip patterns.
- One or more additional arcs can be added to the second graph. For example, walking arcs or other suitable arcs connecting nearby stations can be added to the second graph.
- the additional trip patterns can be identified by performing one or more graph traversal algorithms with respect to the second graph. All discovered trip patterns can be stored and a plurality of transit trips can be identified based on the plurality of trip patterns.
- FIG. 1 depicts an overview of an exemplary system 100 for transit trip planning according to an exemplary embodiment of the present disclosure.
- the system 100 can include a transit planning platform 110 in communication with a computing device 130 over a network 140 .
- the transit planning platform 110 can be hosted by any suitable computing device, such as a web server.
- the computing device 130 can be any suitable computing device, such as a laptop, desktop, smartphone, tablet, mobile device, wearable computing device, or other computing device.
- a user 132 can input a request for one or more transit trips from an origin to a destination into the computing device 130 using a suitable user interface, such as a browser or other interface, including an interface embedded into a geographic information system.
- the computing device 130 can send the request for transit information to the transit planning platform 110 .
- the request can be for a recommendation of specific transit trips between an origin and destination.
- the transit trips can be associated with one or more different transit routes and can use one or more modes of transportation, such as rails, ferries, buses, etc.
- a transit route is a fixed set of transit paths between an origin and a destination and can include multiple modes of transportation.
- An example transit route can be a combination of one or more portions of transit lines, such as bus lines, rail lines, walking paths, etc. that allow an individual to reach the destination.
- a transit trip is a specific instance of transportation over the transit route and is associated with a particular departure time and a particular arrival time.
- a plurality of transit trips can be associated with each transit route and can have different departure and arrival times.
- a transit trip exhibits a trip pattern.
- the sequence of stations at which a traveler travelling upon such transit trip boards or alights a vehicle providing transportation can be described by a trip pattern.
- the trip pattern for each transit trip can describe, in order, each instance in which a traveler travelling upon such transit route would board, get on, get off, disembark, or alight vehicles, transit lines, or modes of transportation. Transit trips and trip patterns will be discussed further with respect to FIG. 3 .
- the request for transit trips can be a departure time based request or an arrival time based request.
- a departure time based request seeks transit trips between an origin and a destination that depart later than a specified time T D .
- transit trips are optimized for arrival time in recommending transit trips responsive to the departure time based request.
- An arrival time based request seeks transit trips between an origin and a destination that arrive earlier than a specified time T A .
- Transit trips are typically optimized for departure time in recommending transit trips responsive to the arrival time based request.
- the transit planning platform 110 can receive the request from the computing device 130 .
- the transit planning platform 110 can include a suitable interface 120 for connecting to the network 140 and receiving the request.
- Transit data 118 can include information associated with one or more transit systems, such as transit schedules, departure times, arrival times, stops, fares, walking distance, transfers, and other information associated with the one or more transit systems.
- Transit data 118 can be stored in one or more internal or external databases or other suitable storage means or can be accessed via network 140 .
- the transit planning platform 110 can implement a trip pattern identification module 122 to identify a plurality of trip patterns respectively associated with a plurality of transit trips between an origin and a destination.
- Each trip pattern can describe a sequence of stations or stops at which a passenger upon a transit trip either boards or disembarks a vehicle providing transportation.
- trip pattern identification module 122 can implement an iterative method in order to identify the plurality of trip patterns. For example, trip pattern identification module 122 can iterate between determining an optimal transit trip based on a cost model and revising the cost model based on the determined optimal transit trip.
- trip pattern identification module 122 can build an additional transit graph and perform one or more graph traversal algorithms with respect to such additional transit graph. In such fashion, any previously identified trip patterns can be merged to identify additional trip patterns.
- the transit planning platform 110 can also implement a transit trip generation module 124 to generate a set of transit trips.
- transit trip generation module 124 can generate or identify one or more transit trips for each of the plurality of trip patterns identified by trip pattern identification module 122 .
- transit trip generation module 124 can be viewed as “adding time” to the trip patterns determined by trip pattern identification module 122 .
- the transit planning platform 110 can send one or more transit trips to the user device 130 , for instance, over the network 140 .
- the user device 130 can then display the one or more time transit trips to the user 132 through a suitable user interface.
- user device 130 can provide the recommended transit trips in conjunction with a geographic information system or device location identification system in order to provide user 132 with continuing navigational instructions.
- FIG. 2 depicts a flow diagram of an exemplary method ( 200 ) for identifying a plurality of trip patterns and transit trips according to an exemplary embodiment of the present disclosure. While exemplary method ( 200 ) will be discussed with reference to the system 100 of FIG. 1 , method ( 200 ) can be implemented using any suitable computing system. In addition, although FIG. 2 depicts steps performed in a particular order for purposes of illustration and discussion, methods of the present disclosure are not limited to such particular order or arrangement. One skilled in the art, using the disclosures provided herein, will appreciate that various steps of the method ( 200 ) can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.
- a plurality of trip patterns between an origin and a destination can be identified by iteratively searching a transit graph.
- transit panning platform 110 can implement trip pattern identification module 122 to identify a plurality of trip patterns.
- a plurality of identification iterations can be performed at ( 202 ) to respectively identify the plurality of trip patterns.
- Each identification iteration can determine an optimal transit trip from an origin to a destination based upon application of a cost model to transit graph data. Further, each identification iteration can revise such cost model based on the determined optimal transit trip. Therefore, each subsequent identification iteration can determine its optimal transit trip based on the cost model as revised by the previous identification iteration. In such fashion, a plurality of unique optimal transit trips are determined.
- additional trip patterns can be identified by merging the plurality of trip patterns previously identified at ( 202 ).
- a second transit graph can be built at ( 204 ) based on such previously identified trip patterns.
- the additional trip patterns can be identified by performing one or more graph traversal algorithms with respect to the second transit graph. All identified trip patterns can be stored for further processing.
- a plurality of transit trips can be identified for each time-independent trip pattern.
- transit planning platform 110 can implement transit trip generation module 124 to generate the plurality of transit trips based on the plurality trip patterns identified at ( 202 ) and ( 204 ).
- ( 206 ) can be viewed as “adding time” to the plurality of trip patterns.
- FIG. 3 depicts a representation of an exemplary transit system 300 that includes a plurality of identified transit routes 310 , 320 , 330 , and 340 between an origin A and destination B.
- Each of the transit routes 310 , 320 , 330 , and 340 can include a plurality of transit paths respectively providing transportation between a plurality of transit stations.
- a transit path is any available path of transportation from one location to another, such as portions of bus lines, tram lines, train lines, metro lines, taxi driving paths, user driving paths, walking paths, subway lines, or other suitable means of transportation from one location to another.
- a transit station can be any location at which a traveler can get on, get off, join, alight, disembark, or transfer transit paths.
- a transit station can include a bus stop, a ferry terminal, a subway station, a metro station, a tram stop, terminal, airport, rail station, designated taxi-hailing location, or other suitable transit station.
- walking paths and driving paths can be considered as time-independent elements of a transit system. Therefore, transit stations are not limited to locations at which traditional public transportation is accessible, but can include any location at which a walking path may begin, such as, for example, the particular location at which a user submits a request for transit trip planning.
- transit route 310 involves walking from Origin A to Station 1 along a walking path 302 , boarding a ferry line 312 at Station 1, disembarking ferry line 312 at Station 2, and walking from Station 2 to the Destination B along a walking path 352 . Therefore, transit trips along transit route 310 exhibit the following trip pattern: 1>2.
- Transit route 320 involves walking from Origin A to Station 1 along walking path 302 , boarding a rail line 322 at Station 1, disembarking rail line 322 at Station 3, walking from Station 3 to Station 9 along walking path 323 , boarding a tram line 324 at Station 9, disembarking tram line 324 at Station 2, and walking to Destination B along walking path 352 . Therefore, transit trips along transit route 320 exhibit the following trip pattern: 1>3>9>2.
- Transit route 330 involves walking from Origin A to Station 1 along walking path 302 , boarding a bus line 332 at Station 1, disembarking bus line 332 at Station 4, boarding a tram line 334 at Station 4, disembarking tram line 334 at Station 5, boarding a tram line 336 at Station 5, disembarking tram line 336 at Station 2, and walking from Station 2 to the Destination B along walking path 352 . Therefore, transit trips along transit route 330 exhibit the following trip pattern: 1>4>4>5>5>2.
- Transit route 340 involves walking from Origin A to Station 6 along walking path 304 , boarding rail line 342 at Station 6, disembarking rail line 342 at Station 2, and walking from Station 2 to Destination B along walking path 352 . Therefore, transit trips along transit route 340 exhibit the following trip pattern: 6>2.
- exemplary transit system 300 has been simplified for the purposes of illustration and explanation of the present disclosure.
- each transit path can pass through, pause at, or otherwise visit one or more transit stations in addition to those shown in FIG. 3 .
- transit route 340 traverses Stations 7 and 8.
- Such information concerning all stations traversed by a given transit path can be processed, stored, and intelligently considered by a system implementing the present disclosure.
- Stations 7 and 8 are not included in the trip pattern exhibited by transit trips along transit route 340 .
- transit paths can be discretized into a number of sub-paths.
- rail line 342 can be viewed as a single transit path connecting Station 6 to Station 2.
- rail line 342 can be viewed as three discrete transit paths which cumulatively connect Station 6 to Station 2.
- three transit paths respectively connecting Station 6 to Station 7, Station 7 to Station 8, and Station 8 to Station 2 can collectively connect Station 6 to Station 2.
- transit graph data including a plurality of arcs respectively corresponding to transportation between transit stations can be modeled such that multiple arcs can be treated as a single arc when corresponding to transit paths that collectively connect two transit stations.
- a transit trip is a specific instance of transportation over a transit route and is associated with a particular departure time and a particular arrival time.
- a transit trip over transit route 310 can include a specific instance of use of ferry line 312 .
- a transit trip over transit route 310 could include, at a particular day or instance within a reoccurring period, walking from Origin A to Station 1 from 9:00 AM to 10:05 AM, riding ferry line 312 from Station 1 to Station 2 from 10:05 AM to 10:50 AM, and walking from Station 2 to Destination B from 10:50 AM to 10:55 AM.
- transit routes 320 , 330 , and 340 can respectively have 100, 50, and 50 transit trips in the same period of time.
- Each transit trip can have a specific departure time and a specific arrival time.
- the departure time and the arrival time can be estimated time(s) or can be times determined or identified from data associated with the transit network, such as transit time tables.
- FIGS. 4A and 4B depict a flowchart of an exemplary method ( 400 ) for determining a plurality of trip patterns according to an exemplary embodiment of the present disclosure. While exemplary method ( 400 ) will be discussed with reference to the transit system 300 of FIG. 3 , method ( 400 ) can be implemented to determine trip patterns with respect to any suitable transit system. Further, exemplary method ( 400 ) can be implemented using any suitable computing device or system including, for example, system 100 of FIG. 1 and system 500 of FIG. 5 . In particular, trip pattern identification module 122 can be implemented to perform exemplary method ( 400 ).
- FIGS. 4A and 4B depict steps performed in a particular order for purposes of illustration and discussion, methods of the present disclosure are not limited to such particular order or arrangement.
- steps of the method ( 400 ) can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure.
- the transit graph data can include a plurality of nodes and a plurality of arcs respectively connecting the plurality of nodes.
- Each arc can correspond to an available instance of transportation using a transit line and each node of the transit graph can respectively correspond to arrival or departure of an instance of transportation at a transit station.
- walking arcs or driving arcs such as arcs representing transportation by taxi cab or rental vehicle, can be included in the transit graph.
- the plurality of arcs described by the transit graph data can respectively correspond to each instance of available transportation along one of the transit paths included in transit system 300 of FIG. 3 . Therefore, the transit graph data can describe 25 arcs respectively corresponding to available instances of transportation using ferry line 312 . Each of such arcs can respectively connect two nodes corresponding to the departure of such instance of transportation using ferry line 312 from Station 1 and the arrival of such instance of transportation using ferry line 312 at Station 2.
- the transit graph data can describe 50 arcs respectively connecting 50 nodes corresponding to departure from Station 6 to 50 nodes corresponding to arrival at Station 2 and each of such arcs can traverse 4 nodes corresponding to arrival and departure from each of Stations 7 and 8.
- the transit graph data can describe 50 arcs respectively connecting 50 nodes corresponding to departure from Station 6 to 50 nodes corresponding to arrival at Station 7, 50 arcs respectively connecting 50 nodes corresponding to departure from Station 7 to 50 nodes corresponding to arrival at Station 8, and 50 arcs respectively connecting 50 nodes corresponding to departure from Station 8 to 50 nodes corresponding to arrival at Station 9.
- the present disclosure including method ( 400 ) can be satisfied using a wide range of graph designs, including those discussed above.
- a cost model is defined.
- the cost model can provide an arc cost for each arc described by the transit graph data received at ( 402 ).
- the cost model can incorporate a plurality of parameters reflective of various costs associated with the transportation respectively associated with each arc, including duration, fare, mode of transportation, transit provider (agency), vehicle type, or a penalty associated with undesirable factors such as a walking penalty.
- the arc cost for each arc can be the sum of its costs for each parameter.
- an exemplary cost model can include two parameters for each arc: duration of the transportation associated with such arc, and penalty of the transportation.
- the penalty for transportation can include walking penalties, fares, or other suitable penalties.
- the arc cost for the arc can be the sum of the two parameters.
- the penalty parameter in order to sum the two parameters, the penalty parameter must be expressed in a homogenous fashion as the duration parameter. Therefore, the penalty parameter can be expressed in units of time. For example, a penalty of 5 minutes can be assigned to each arc corresponding to transportation using an undesirable vehicle type.
- a cost model can include a plurality of parameters respectively having one of a plurality of weighting factors.
- a cost model can have a plurality of parameters expressed in non-homogenous units.
- optimal paths through the transit graph can optimize across any one of such parameters.
- a shortest-path algorithm such as Dijkstra's algorithm, can return several optimal paths which are not comparable unless relative adjustments are defined.
- a first optimal transit trip is determined based on the cost model.
- any suitable shortest-path algorithm can be used to determine the optimal transit trip from an origin to a destination, including Dijkstra's algorithm.
- such shortest-path algorithm can apply the cost model defined at ( 404 ) to the transit graph data received at ( 402 ). In such fashion, the optimal transit trip from the origin to the destination can be determined.
- the determined optimal transit trip can include a plurality of solution arcs respectively connecting a pair of solution nodes.
- an exemplary shortest-path algorithm might determine that a particular transit trip along third route 330 of FIG. 3 is the optimal transit trip from Origin A to the Destination B based on the cost model defined at ( 404 ).
- the determined optimal transit trip can include: a first solution arc corresponding to an instance of transportation using bus line 332 ; a second solution arc corresponding to an instance of transportation using tram line 334 ; and a third solution arc corresponding to an instance of transportation using tram line 336 .
- first solution arc can connect a first pair of solution nodes (corresponding to departure from Station 1 and arrival at Station 4)
- second solution arc can connect a second pair of solution nodes (corresponding to departure form Station 4 and arrival at Station 5)
- third solution arc can connect a third pair of solution nodes (corresponding to departure from Station 5 and arrival at Station 2).
- an exemplary shortest-path algorithm might determine that a particular transit trip along fourth route 340 is the optimal transit trip from Origin A to Destination B. Therefore, a first solution arc can correspond to an instance of transportation from Station 6 to Station 2 using rail line 342 .
- the first solution arc can correspond to a single arc connecting nodes corresponding to Station 6 and Station 2 while traversing Stations 7 and 8, or the first solution arc can correspond to three arcs respectively connecting nodes corresponding to Stations 6 and 7, Stations 7 and 8, and Stations 8 and 2. In the latter instance, such three arcs can be collectively treated as a single solution arc for the purposes of method ( 400 ).
- the trip pattern exhibited by the optimal transit trip determined at ( 406 ) is identified or extracted.
- the trip pattern can describe a sequence of transit stations at which a passenger travelling upon the optimal transit trip determined at ( 406 ) would be required to board or disembark a vehicle providing transportation.
- Such identified trip pattern can be stored for later processing.
- the trip pattern exhibited by such transit trip can be identified at ( 408 ). More particularly, in such exemplary instance, the trip pattern identified at ( 408 ) can be identified as 1>4>4>5>5>2.
- the trip pattern identified at ( 408 ) can be written in a number of formats which all represent the same core information.
- the trip pattern 1>4>4>5>5>2 can be written as [1,4], [4,5], [5,2] in order to more precisely identify the pairs of solution nodes.
- Many other notations are available as well. It will be appreciated that such notations are simply a matter of convention and each of such notations can be used in accordance with the present disclosure.
- the cost model can be revised based on the optimal transit trip determined at ( 406 ).
- the cost model can be revised such that the arc costs associated with one or more arcs associated with the optimal transit trip can be increased.
- revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc connecting nodes corresponding to the same pair of stations as one of the pairs of solution nodes traversed by the optimal transit trip determined at ( 406 ).
- revising the cost model at ( 410 ) can include penalizing all arcs included in the transit graph data received at ( 402 ) that connect nodes corresponding to Station 1 and Station 4, penalizing all arcs that connect nodes corresponding to Station 4 and Station 5, and penalizing all arcs that connect nodes corresponding to Station 5 and Station 2.
- revising the cost model at ( 410 ) can include increasing the arc cost associated with each arc connecting nodes corresponding to the same pair of stations as the pair of solution nodes connected by the solution arc having the arc cost of greatest magnitude. For example, if the optimal transit trip determined at ( 406 ) corresponds to a particular instance of travel upon third route 330 and the solution arc corresponding to the portion of tram line 336 connecting Stations 5 and 2 has the arc cost of greatest magnitude, then only those arcs that connect nodes corresponding to Stations 5 and 2 can be penalized at ( 410 ).
- revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc corresponding to one or more of the transit lines utilized by the optimal transit trip determined at ( 406 ). For example, if the optimal transit trip determined at ( 406 ) corresponds to an instance of travel upon third route 330 , then revising the cost model at ( 410 ) can include penalizing all arcs included in the transit graph data that correspond to a portion of bus line 332 , penalizing all arcs that correspond to a portion of tram line 334 , and/or penalizing all arcs that correspond to a portion of tram line 336 .
- revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc corresponding to one or more vehicle types utilized by the optimal transit trip determined at ( 406 ). For example, if the optimal transit trip determined at ( 406 ) corresponds to an instance of travel upon fourth route 440 , then revising the cost model at ( 410 ) can include penalizing all arcs that correspond to transportation by rail (due to utilization of rail line 342 ). Therefore, with respect to the example provided in FIG. 3 , all arcs corresponding rail lines 342 and 322 can be penalized (but not, for example, tram lines 324 , 334 , or 336 , ferry line 312 , or bus line 332 ).
- revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc corresponding to one or more vehicle providers or agencies providing transportation utilized by the optimal transit trip determined at ( 406 ). For example, if the optimal transit trip determined at ( 406 ) corresponds to an instance of travel upon first route 310 and ferry line 312 is operated by Western State Ferry Authority, then revising the cost model at ( 410 ) can include penalizing all arcs included in the transit graph data received at ( 402 ) that correspond to transportation by a ferry operated by Western State Ferry Authority, whether or not such transportation corresponds to the particular ferry line 312 .
- each of the plurality of arcs described by the transit graph data can have an associated duration.
- the duration associated with each arc can describe an amount of time that the transportation represented by such arc is expected or projected to take. For example, as shown in FIG. 3 , transportation from Station 1 to Station 2 using ferry line 312 is expected to have a duration of 45 minutes. Such duration can be associated with each arc corresponding to such portion of ferry line 312 . It will be appreciated, however, that arcs corresponding to the same portion of a transit line may in fact have different durations, such that traffic patterns or other factors can be accommodated or modeled.
- the duration of solution arcs can be considered when revising the cost model at ( 410 ).
- the penalty applied to each arc that is penalized at ( 410 ) can be proportional to the duration associated with such arc. For example, if the optimal transit trip determined at ( 406 ) corresponds to a particular instance of travel upon third route 330 , then one or more arcs corresponding to one or more of transit paths 332 , 334 , or 336 can be penalized. However, the particular penalty applied to each arc can be proportional to the duration associated with such arc. Therefore, non-identical penalties can be applied at ( 410 ).
- the penalties applied to arcs corresponding to transit path 336 can be 1.5 times the magnitude of the penalties applied to arcs corresponding to transit paths 332 and 334 .
- a one-to-one proportionality between penalty magnitude and duration is not required.
- proportionality is not a strictly required facet of the present disclosure and, in fact, penalization of arcs at ( 410 ) can simply include addition of a positive constant to the arc cost associated with each arc subject to penalization.
- revising the cost model at ( 410 ) can include increasing the arc cost associated with each arc connecting nodes corresponding to the same stations as the pair of solution nodes connected by the solution arc having the duration of greatest magnitude. For example, if the optimal transit trip determined at ( 406 ) corresponds to a particular instance of travel upon third route 330 , then only those arcs that connect nodes corresponding to Stations 5 and 2 can be penalized at ( 410 ) because the 15 minute duration associated with the portion of tram line 336 connecting Stations 5 and 2 is greater than the duration associated with any other segment of transit route 330 .
- method ( 400 ) returns to ( 406 ) and determines a second optimal transit trip based on the cost model as previously revised at ( 410 ).
- a subsequent iteration of ( 406 )-( 410 ) is likely to determine a different, second optimal transit trip based on the revised cost model.
- performing a plurality of iterations of ( 406 )-( 410 ) can serve to determine a plurality of unique optimal transit trips and, likewise, identify a plurality of unique trip patterns.
- performing a plurality of such iterations is desirable and can serve to satisfy the need for the plurality of trip patterns.
- different methods of revising the cost model can be performed at different iterations of ( 410 ) such that unique trip patterns are continuously identified.
- the decision at ( 412 ) can be made based upon a number of factors.
- the number of iterations performed is compared to a target number.
- method ( 400 ) can be implemented to perform exactly 100 iterations of ( 406 )-( 410 ) and then proceed to ( 414 ) of FIG. 4B following the one-hundredth iteration.
- a clever stop to iterations can be performed at ( 412 ). For example, it can be determined at ( 412 ) that additional iterations are not desired when the optimal transit trip determined by the previous iteration fails to meet certain criteria. As an example, if the optimal transit trip determined by the previous iteration is greater than a threshold duration, then it can be determined at ( 412 ) that additional iterations are not desired and method ( 400 ) can proceed to ( 414 ).
- the threshold duration is determined based upon the first optimal trip determined at the first iteration of ( 406 ). For example, if at ( 412 ) it is determined that the duration of the most recently determined optimal transit trip is greater than two times the duration of the first optimal trip determined at the first iteration, then it can be determined that additional iterations are not desired.
- performing a plurality of iterations of ( 406 )-( 410 ) can serve to determine a plurality of unique optimal transit trips and, likewise, identify a plurality of unique trip patterns.
- performing a plurality of identification iterations will fail to identify every available transit trip and, therefore, fail to identify every available trip pattern.
- performing a plurality of iterations of ( 406 )-( 410 ) can fail to identify every available transit trip in the following scenario: assume an Origin A and a Destination B.
- Such exemplary transit network can further include a transit path from Origin A to a Station 1; a transit path from Origin A to Station 2; a transit path from Station 1 to Destination B; a transit path from Station 2 to Destination B; and a transit path connecting Stations 1 and 2.
- a first iteration of ( 406 ) can consider a cost model to determine a first optimal transit trip.
- the first optimal transit trip can have the following trip pattern: A>1>1>B.
- the cost model can be revised based on such first optimal transit trip at ( 410 ). For example, the arcs respectively corresponding to the transit paths connecting Origin A to Station 1 and connecting Station 1 to Destination B can be penalized.
- a second iteration of ( 406 ) can consider the revised cost model to determine a second optimal transit trip.
- the second optimal transit trip can have the following trip pattern: A>2>2>B.
- the cost model can be revised based on such second optimal transit trip at ( 410 ). For example, the arcs respectively corresponding to the transit paths connecting Origin A to Station 2 and connecting Station 2 to Destination B can be penalized and method ( 400 ) can again return to ( 406 ).
- additional steps can be performed in order to identify additional unique trip patterns.
- the plurality of trip patterns identified by the plurality of iterations of ( 406 )-( 410 ) can be merged to identify such additional trip patterns.
- a second transit graph can be built based on selected of the plurality of trip patterns identified at previous iterations of ( 408 ).
- a directed graph can be built describing a plurality of arcs which connect stations corresponding to pairs of solution nodes according to the previously identified trip patterns.
- the second transit graph can have a second origin node and a second destination node which respectively correspond to the origin node and the destination node of the first transit graph received at ( 402 ).
- the second transit graph constructed at ( 414 ) can be based on solution arcs included in selected of the plurality of optimal transit trips identified at previous iterations of ( 406 ).
- one or more supplemental arcs can be added to the second transit graph constructed at ( 414 ).
- the supplemental arcs can be arcs that were not traversed by any of the previously determined optimal transit trips.
- the supplemental arcs can correspond to walking arcs between stations.
- the supplemental arcs can correspond to arcs that provide a connection between more substantial “main” transit routes.
- one or more graph traversal algorithms can be performed with respect to the second transit graph data.
- all possible routes between a second origin node and a second destination node included in the second transit graph can be identified at ( 418 ).
- the trip pattern associated with each of such routes can be identified and stored.
- Exemplary graph traversal algorithms include, but are not limited to, a depth-first search algorithm, a breadth-first search algorithm, or other suitable algorithms.
- the trip patterns associated with all traversal routes can be identified and stored.
- all identified trip patterns can be stored for further processing.
- the trip patterns stored at ( 420 ) can be those identified at the plurality of iterations of ( 408 ).
- the trip patterns stored at ( 420 ) can also be those identified by performing the graph traversal algorithm with respect to the second transit graph data at ( 418 ).
- FIG. 5 depicts an exemplary computing system 500 that can be used to implement the methods and systems for transit trip planning according to aspects of the present disclosure.
- the system 500 has a client-server architecture that includes a server 510 that communicates with one or more client devices 530 over a network 540 .
- the system 500 can be implemented using other suitable architectures, such as a single computing device.
- the system 500 includes a server 510 , such as a web server.
- the server can host a transit planning platform.
- the server 510 can be implemented using any suitable computing device(s).
- the server 510 can have a processor(s) 512 and a memory 514 .
- the server 510 can also include a network interface used to communicate with one or more remote computing devices (e.g. client devices) 530 over the network 540 .
- the processor(s) 512 can be any suitable processing device, such as a microprocessor, microcontroller, integrated circuit, or other suitable processing device.
- the memory 514 can include any suitable computer-readable medium or media, including, but not limited to, non-transitory computer-readable media, RAM, ROM, hard drives, flash drives, or other memory devices.
- the memory 514 can store information accessible by processor(s) 512 , including instructions 516 that can be executed by processor(s) 512 .
- the instructions 516 can be any set of instructions that when executed by the processor(s) 512 , cause the processor(s) 512 to provide desired functionality. For instance, the instructions 516 can be executed by the processor(s) 512 to implement the trip pattern identification module 122 , and the transit trip generation module 124 .
- module refers to computer logic utilized to provide desired functionality.
- a module can be implemented in hardware, application specific circuits, firmware and/or software controlling a general purpose processor.
- the modules are program code files stored on the storage device, loaded into memory and executed by a processor or can be provided from computer program products, for example computer executable instructions, that are stored in a tangible computer-readable storage medium such as RAM, ROM, hard disk or optical or magnetic media.
- Memory 514 can also include data 518 , such as transit data, that can be retrieved, manipulated, created, or stored by processor(s) 512 .
- the data 518 can be stored in one or more databases.
- the one or more databases can be connected to the server 510 by a high bandwidth LAN or WAN, or can also be connected to server 510 through network 540 .
- the one or more databases can be split up so that they are located in multiple locales.
- the server 510 can exchange data with one or more client devices 530 over the network 540 . Although two clients 530 are illustrated in FIG. 5 , any number of client devices 530 can be connected to the server 510 over the network 540 .
- the client devices 530 can be any suitable type of computing device, such as a general purpose computer, special purpose computer, laptop, desktop, integrated circuit, mobile device, smartphone, tablet, wearable computing device, or other suitable computing device.
- a client device 530 can include a processor(s) 532 and a memory 534 .
- the memory 534 can store information accessible by processor(s) 532 , including instructions that can be executed by processor(s) 532 and data.
- the client device 530 can include various input/output devices for providing and receiving information from a user, such as a touch screen, touch pad, data entry keys, speakers, and/or a microphone suitable for voice recognition.
- the computing device 530 can have a display 536 for presenting information, such as recommended transit trips to a user.
- the client device 530 can also include a positioning system 538 that can be used to identify the position of the client device 530 .
- the positioning system 538 can be optionally used by the user to monitor the user's position relative to a transit route.
- the positioning system 538 can be any device or circuitry for monitoring the position of the client device 530 .
- the positioning device 538 can determine actual or relative position by using a satellite navigation positioning system (e.g.
- a GPS system a Galileo positioning system, the GLObal Navigation satellite system (GLONASS), the BeiDou Satellite Navigation and Positioning system), an inertial navigation system, a dead reckoning system, based on IP address, by using triangulation and/or proximity to cellular towers or WiFi hotspots, and/or other suitable techniques for determining position.
- GLONASS GLObal Navigation satellite system
- BeiDou Satellite Navigation and Positioning system a BeiDou Satellite Navigation and Positioning system
- IP address based on IP address, by using triangulation and/or proximity to cellular towers or WiFi hotspots, and/or other suitable techniques for determining position.
- the users may be provided with an opportunity to control whether programs or features collect the information and control whether and/or how to receive content from the system or other application. No such information or data is collected or used until the user has been provided meaningful notice of what information is to be collected and how the information is used. The information is not collected or used unless the user provides consent, which can be revoked or modified by the user at any time. Thus, the user can have control over how information is collected about the user and used by the application or system. In addition, certain information or data can be treated in or more ways before it is stored or used, so that personally identifiable information is removed.
- the network 540 can be any type of communications network, such as a local area network (e.g. intranet), wide area network (e.g. Internet), or some combination thereof.
- the network 540 can also include a direct connection between a client device 530 and the server 510 .
- communication between the server 510 and a client device 530 can be carried via network interface using any type of wired and/or wireless connection, using a variety of communication protocols (e.g. TCP/IP, HTTP), encodings or formats (e.g. HTML, XML), and/or protection schemes (e.g. VPN, secure HTTP, SSL).
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
Abstract
Description
- The present disclosure relates generally to transit system trip planning. More particularly, the present disclosure relates to systems and methods for generating a plurality of potential trip patterns with respect to one or more transit systems.
- Many services exist for planning a route using a transit system. Typically, a user inputs a departure and/or arrival time as well as origin and destination locations to the transit planning service. Search algorithms are used to identify possible transit trips between the origin and the destination across one or more modes of transportation, such as ferries, buses, rails, walking, etc.
- Certain services can return only a single result based on a complex model and a computationally expensive search algorithm. Other services can attempt to identify a large number of trips to consider for recommendation, but may use computationally expensive methods, fail to provide a large diversity of results, or identify too few trips worthy of consideration.
- Aspects and advantages of the invention will be set forth in part in the following description, or may be obvious from the description, or may be learned through practice of the invention.
- One exemplary aspect of the present disclosure is directed to a computer-implemented method of determining a plurality of trip patterns. The method includes receiving transit graph data describing a plurality of nodes respectively corresponding to a plurality of transit stations and a plurality of arcs respectively connecting the plurality of nodes and respectively corresponding to transportation between the plurality of transit stations. The method also includes performing a plurality of identification iterations. Each identification iteration includes determining an optimal transit trip connecting an origin node to a destination node based on a cost model. The cost model provides an arc cost for each of the plurality of arcs. Each identification iteration also includes revising the cost model based on the determined optimal transit trip, such that the arc costs associated with one or more arcs associated with the optimal transit trip are increased. Each subsequent identification iteration can determine the optimal transit trip based on the cost model as revised by the immediately preceding identification iteration such that a plurality of optimal transit trips are determined. Each optimal transit trip can have an associated trip pattern describing a sequence of nodes traversed by such optimal transit trip.
- These and other features, aspects and advantages of the present invention will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
- A full and enabling disclosure of the present invention, including the best mode thereof, directed to one of ordinary skill in the art, is set forth in the specification, which makes reference to the appended figures, in which:
-
FIG. 1 depicts an overview of an exemplary system for transit trip planning according to an exemplary embodiment of the present disclosure; -
FIG. 2 depicts a flowchart of an exemplary method for identifying a plurality of trip patterns and transit trips according to an exemplary embodiment of the present disclosure; -
FIG. 3 depicts a representation of an exemplary transit system according to an exemplary embodiment of the present disclosure; -
FIGS. 4A and 4B depict a flowchart of an exemplary method for determining a plurality of trip patterns according to an exemplary embodiment of the present disclosure; and -
FIG. 5 depicts an exemplary computing system according to an exemplary embodiment of the present disclosure. - Reference now will be made in detail to embodiments of the invention, one or more examples of which are illustrated in the drawings. Each example is provided by way of explanation of the invention, not limitation of the invention. In fact, it will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the scope or spirit of the invention. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus, it is intended that the present invention covers such modifications and variations as come within the scope of the appended claims and their equivalents.
- Generally, the present disclosure is directed to a method for determining a plurality of trip patterns. Each trip pattern can describe a sequence of stations at which a traveler travelling on a transit trip connecting an origin station to a destination station boards or alights a vehicle providing transportation, such as particular instances of transportation by bus lines, rail lines, etc. First, a transit graph comprising a plurality of arcs (available instances of transportation) and nodes (arrival or departure of an instance of transportation at a transit station) can be searched to find a first optimal transit trip from the origin to the destination according to a given cost model. The sequence of stations at which a traveler is required to board or alight a vehicle providing transportation according to the first optimal transit trip can be described by a first trip pattern. The cost model can be revised to penalize one or more arcs associated with the first optimal transit trip and the transit graph can be searched again to find a second optimal transit trip based on the revised cost model. By iteratively performing such method, a plurality of transit trips can be determined and, likewise, a plurality of trip patterns can be identified. Next, additional trip patterns can be identified by merging trip patterns found using the iterative method. In particular, a second graph can be constructed based on selected of the determined transit trips or trip patterns. Additional arcs that were not identified by the iterative searching process can be added to the second graph. Additional unique trip patterns included within the second graph can be determined using one or more graph traversal algorithms. All discovered trip patterns can be stored and a plurality of transit trips can be identified based on the plurality of trip patterns.
- A transit graph can be provided that comprises a plurality of nodes and arcs. Each arc can correspond to an available instance of transportation using a transit line. For example, an exemplary arc may correspond to transportation using
Bus Line 3 from Station X to Station Y from 9:00 AM to 10:00 AM on a Monday. Each node of the transit graph can respectively correspond to arrival or departure of an instance of transportation at a transit station. Therefore, the exemplary arc corresponding to an instance of transportation usingBus Line 3 would connect at least two nodes: the departure ofBus Line 3 from Station X at 9:00 AM and the arrival ofBus Line 3 at Station Y at 10:00 AM. In some implementations, walking arcs or driving arcs, such as arcs representing transportation by taxi cab or rental vehicle, can be included in the transit graph. - A cost model can be used to define an arc cost associated with each arc. In particular, such cost model can incorporate a plurality of parameters reflective of various costs associated with each arc, including duration, fare, mode of transportation, transit provider (agency), or a penalty associated with undesirable factors such as a walking penalty. Thus, the arc cost for each arc can be the sum of its costs for each parameter.
- A first optimal transit trip connecting an origin station to a destination station can be determined based on the transit graph. In particular, the first optimal transit trip should minimize trip cost according to the cost model. Any suitable shortest path algorithm can be used to find such first optimal transit trip, including Dijkstra's algorithm. A first trip pattern can describe a sequence of nodes at which a traveler travelling upon the first optimal transit trip boards or disembarks from a vehicle providing transportation. Such first trip pattern can be extracted or otherwise identified and stored.
- After the first search, one or more of the arcs connecting transit stations associated with nodes traversed by the first optimal transit trip can be penalized (e.g. have their costs increased) and the transit graph can be searched again to find a second optimal transit trip. Due to the penalization of the one or more arcs, this second optimal transit trip likely traverses one or more different stations or sequence of stations than the first optimal transit trip. Thus, repeating the above process can provide a plurality of unique trip patterns.
- In one embodiment, all arcs connecting transit stations associated with a pair of sequential nodes included in the first trip pattern can be penalized. For example, if the first optimal transit trip has the following trip pattern: A>B>B>C>C>D, then all arcs connecting the transit stations respectively associated with nodes A and B, all arcs connecting the transit stations respectively associated with nodes B and C, and all arcs connecting the transit stations respectively associated with nodes C and D can be penalized.
- Further, the added penalties for each arc can be proportional to a duration associated with such arc. Therefore, arcs that have a greater duration can receive a larger penalty. In such fashion, the resulting plurality of trip patterns can include trip patterns with more significant diversity.
- In another embodiment, all arcs connecting the pair of transit stations respectively associated with the pair of nodes connected by the solution arc that contributes the greatest cost to the first optimal transit trip are penalized. For example, if solution arc (B, C) contributes the greatest cost out of solution arcs (A, B), (B, C), and (C, D), then all arcs connecting the transit stations respectively associated with nodes B and C can be penalized. As another example, a similar penalization can be applied based upon which solution arc has the associated duration of greatest magnitude.
- In yet another embodiment, each transit line utilized by the first optimal transit trip can be penalized. For example, if arc (B, C) comprises a portion of a “Bus Line 1” and arc (C, D) comprises a portion of a “
Metro Line 2,” then all arcs that correspond to either Bus Line 1 orMetro Line 2 can be penalized following the first search. Further embodiments can add penalties based on mode of transportation or vehicle provider (agency). - Once the transit graph has been modified with the added penalties, then the shortest path algorithm is performed again in order to determine a second optimal transit trip. Due to the added penalties, the second optimal transit trip is likely different from the first optimal transit trip.
- Therefore, iteratively repeating the above process can provide a plurality of unique trip patterns. For example, the above method can be performed for a fixed number of iterations or can be stopped when the determined transit trips or associated trip patterns become repetitive or fail to meet certain criteria.
- However, in some implementations, iteratively repeating the above process can fail to identify every available trip pattern. For example, certain arcs can fail to be identified when revising the cost model includes penalizing all arcs corresponding to the entire optimal transit trip.
- Therefore, according to another aspect of the present disclosure, the trip patterns identified by the iterative process discussed above can be merged together in order to identify additional trip patterns. In particular, a second graph can be built from selected of the plurality of optimal transit trips determined by the above iterative process or their associated trip patterns. For example, the trip patterns resulting from the first ten iterations of the above method can be selected and a directed graph can be formed from arcs connecting the stations described by such trip patterns.
- One or more additional arcs can be added to the second graph. For example, walking arcs or other suitable arcs connecting nearby stations can be added to the second graph.
- Finally, the additional trip patterns can be identified by performing one or more graph traversal algorithms with respect to the second graph. All discovered trip patterns can be stored and a plurality of transit trips can be identified based on the plurality of trip patterns.
- With reference now to the FIGS., exemplary embodiments of the present disclosure will now be discussed in detail.
FIG. 1 depicts an overview of anexemplary system 100 for transit trip planning according to an exemplary embodiment of the present disclosure. Thesystem 100 can include atransit planning platform 110 in communication with acomputing device 130 over anetwork 140. Thetransit planning platform 110 can be hosted by any suitable computing device, such as a web server. Thecomputing device 130 can be any suitable computing device, such as a laptop, desktop, smartphone, tablet, mobile device, wearable computing device, or other computing device. - A
user 132 can input a request for one or more transit trips from an origin to a destination into thecomputing device 130 using a suitable user interface, such as a browser or other interface, including an interface embedded into a geographic information system. Thecomputing device 130 can send the request for transit information to thetransit planning platform 110. The request can be for a recommendation of specific transit trips between an origin and destination. The transit trips can be associated with one or more different transit routes and can use one or more modes of transportation, such as rails, ferries, buses, etc. - As used herein, a transit route is a fixed set of transit paths between an origin and a destination and can include multiple modes of transportation. An example transit route can be a combination of one or more portions of transit lines, such as bus lines, rail lines, walking paths, etc. that allow an individual to reach the destination. A transit trip is a specific instance of transportation over the transit route and is associated with a particular departure time and a particular arrival time. A plurality of transit trips can be associated with each transit route and can have different departure and arrival times.
- A transit trip exhibits a trip pattern. In particular, the sequence of stations at which a traveler travelling upon such transit trip boards or alights a vehicle providing transportation can be described by a trip pattern. As such, the trip pattern for each transit trip can describe, in order, each instance in which a traveler travelling upon such transit route would board, get on, get off, disembark, or alight vehicles, transit lines, or modes of transportation. Transit trips and trip patterns will be discussed further with respect to
FIG. 3 . - Returning to
FIG. 1 , the request for transit trips can be a departure time based request or an arrival time based request. A departure time based request seeks transit trips between an origin and a destination that depart later than a specified time TD. Usually, transit trips are optimized for arrival time in recommending transit trips responsive to the departure time based request. An arrival time based request seeks transit trips between an origin and a destination that arrive earlier than a specified time TA. Transit trips are typically optimized for departure time in recommending transit trips responsive to the arrival time based request. Thetransit planning platform 110 can receive the request from thecomputing device 130. For example, thetransit planning platform 110 can include asuitable interface 120 for connecting to thenetwork 140 and receiving the request. - The
transit planning platform 110 can accesstransit data 118.Transit data 118 can include information associated with one or more transit systems, such as transit schedules, departure times, arrival times, stops, fares, walking distance, transfers, and other information associated with the one or more transit systems.Transit data 118 can be stored in one or more internal or external databases or other suitable storage means or can be accessed vianetwork 140. - The
transit planning platform 110 can implement a trippattern identification module 122 to identify a plurality of trip patterns respectively associated with a plurality of transit trips between an origin and a destination. Each trip pattern can describe a sequence of stations or stops at which a passenger upon a transit trip either boards or disembarks a vehicle providing transportation. According to aspects of the present disclosure, trippattern identification module 122 can implement an iterative method in order to identify the plurality of trip patterns. For example, trippattern identification module 122 can iterate between determining an optimal transit trip based on a cost model and revising the cost model based on the determined optimal transit trip. - As another example, trip
pattern identification module 122 can build an additional transit graph and perform one or more graph traversal algorithms with respect to such additional transit graph. In such fashion, any previously identified trip patterns can be merged to identify additional trip patterns. - The
transit planning platform 110 can also implement a transittrip generation module 124 to generate a set of transit trips. In particular, transittrip generation module 124 can generate or identify one or more transit trips for each of the plurality of trip patterns identified by trippattern identification module 122. In some instances, transittrip generation module 124 can be viewed as “adding time” to the trip patterns determined by trippattern identification module 122. - The
transit planning platform 110 can send one or more transit trips to theuser device 130, for instance, over thenetwork 140. Theuser device 130 can then display the one or more time transit trips to theuser 132 through a suitable user interface. In particular, in some implementations,user device 130 can provide the recommended transit trips in conjunction with a geographic information system or device location identification system in order to provideuser 132 with continuing navigational instructions. -
FIG. 2 depicts a flow diagram of an exemplary method (200) for identifying a plurality of trip patterns and transit trips according to an exemplary embodiment of the present disclosure. While exemplary method (200) will be discussed with reference to thesystem 100 ofFIG. 1 , method (200) can be implemented using any suitable computing system. In addition, althoughFIG. 2 depicts steps performed in a particular order for purposes of illustration and discussion, methods of the present disclosure are not limited to such particular order or arrangement. One skilled in the art, using the disclosures provided herein, will appreciate that various steps of the method (200) can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure. - At (202) a plurality of trip patterns between an origin and a destination can be identified by iteratively searching a transit graph. As an example,
transit panning platform 110 can implement trippattern identification module 122 to identify a plurality of trip patterns. - In particular, according to aspects of the present disclosure, a plurality of identification iterations can be performed at (202) to respectively identify the plurality of trip patterns. Each identification iteration can determine an optimal transit trip from an origin to a destination based upon application of a cost model to transit graph data. Further, each identification iteration can revise such cost model based on the determined optimal transit trip. Therefore, each subsequent identification iteration can determine its optimal transit trip based on the cost model as revised by the previous identification iteration. In such fashion, a plurality of unique optimal transit trips are determined.
- At (204) additional trip patterns can be identified by merging the plurality of trip patterns previously identified at (202). In particular, a second transit graph can be built at (204) based on such previously identified trip patterns. The additional trip patterns can be identified by performing one or more graph traversal algorithms with respect to the second transit graph. All identified trip patterns can be stored for further processing.
- At (206) a plurality of transit trips can be identified for each time-independent trip pattern. As an example,
transit planning platform 110 can implement transittrip generation module 124 to generate the plurality of transit trips based on the plurality trip patterns identified at (202) and (204). In some instances, (206) can be viewed as “adding time” to the plurality of trip patterns. -
FIG. 3 depicts a representation of anexemplary transit system 300 that includes a plurality of identifiedtransit routes transit routes - As used herein, a transit path is any available path of transportation from one location to another, such as portions of bus lines, tram lines, train lines, metro lines, taxi driving paths, user driving paths, walking paths, subway lines, or other suitable means of transportation from one location to another.
- Further, as used herein, a transit station can be any location at which a traveler can get on, get off, join, alight, disembark, or transfer transit paths. For example, a transit station can include a bus stop, a ferry terminal, a subway station, a metro station, a tram stop, terminal, airport, rail station, designated taxi-hailing location, or other suitable transit station.
- In some implementations, walking paths and driving paths can be considered as time-independent elements of a transit system. Therefore, transit stations are not limited to locations at which traditional public transportation is accessible, but can include any location at which a walking path may begin, such as, for example, the particular location at which a user submits a request for transit trip planning.
- As an example,
transit route 310 involves walking from Origin A to Station 1 along awalking path 302, boarding aferry line 312 at Station 1, disembarkingferry line 312 atStation 2, and walking fromStation 2 to the Destination B along awalking path 352. Therefore, transit trips alongtransit route 310 exhibit the following trip pattern: 1>2. -
Transit route 320 involves walking from Origin A to Station 1 along walkingpath 302, boarding arail line 322 at Station 1, disembarkingrail line 322 atStation 3, walking fromStation 3 to Station 9 along walkingpath 323, boarding atram line 324 at Station 9, disembarkingtram line 324 atStation 2, and walking to Destination B along walkingpath 352. Therefore, transit trips alongtransit route 320 exhibit the following trip pattern: 1>3>9>2. -
Transit route 330 involves walking from Origin A to Station 1 along walkingpath 302, boarding abus line 332 at Station 1, disembarkingbus line 332 atStation 4, boarding atram line 334 atStation 4, disembarkingtram line 334 atStation 5, boarding atram line 336 atStation 5, disembarkingtram line 336 atStation 2, and walking fromStation 2 to the Destination B along walkingpath 352. Therefore, transit trips alongtransit route 330 exhibit the following trip pattern: 1>4>4>5>5>2. -
Transit route 340 involves walking from Origin A toStation 6 along walkingpath 304, boardingrail line 342 atStation 6, disembarkingrail line 342 atStation 2, and walking fromStation 2 to Destination B along walkingpath 352. Therefore, transit trips alongtransit route 340 exhibit the following trip pattern: 6>2. - One of skill in the art will appreciate that
exemplary transit system 300 has been simplified for the purposes of illustration and explanation of the present disclosure. As an example, each transit path can pass through, pause at, or otherwise visit one or more transit stations in addition to those shown inFIG. 3 . - For example,
rail line 342 is shown as passing through or pausing atStations Station 6 toStation 2. Therefore,transit route 340 traversesStations transit route 340 from Origin A to Destination B does not transfer vehicles, lines, or modes of transportation atStations Stations transit route 340. - One of skill in the art will further appreciate, in light of the disclosures contained herein, that transit paths can be discretized into a number of sub-paths. For example,
rail line 342 can be viewed as a single transitpath connecting Station 6 toStation 2. Alternatively,rail line 342 can be viewed as three discrete transit paths which cumulatively connectStation 6 toStation 2. In particular, three transit paths respectively connectingStation 6 toStation 7,Station 7 toStation 8, andStation 8 toStation 2 can collectively connectStation 6 toStation 2. - The present disclosure can be implemented to consider transit paths according to any suitable level of discretization. In particular, as will be discussed further, transit graph data including a plurality of arcs respectively corresponding to transportation between transit stations can be modeled such that multiple arcs can be treated as a single arc when corresponding to transit paths that collectively connect two transit stations.
- A transit trip is a specific instance of transportation over a transit route and is associated with a particular departure time and a particular arrival time. As an example, a transit trip over
transit route 310 can include a specific instance of use offerry line 312. For example, a transit trip overtransit route 310 could include, at a particular day or instance within a reoccurring period, walking from Origin A to Station 1 from 9:00 AM to 10:05 AM, ridingferry line 312 from Station 1 toStation 2 from 10:05 AM to 10:50 AM, and walking fromStation 2 to Destination B from 10:50 AM to 10:55 AM. - Therefore, for each time-independent transit route, there can be a specific number of transit trips during a specified time interval. As an example, if
ferry line 312 provides transportation from Station 1 toStation 2 five times per day Monday through Friday, then 25 distinct transit trips overtransit route 310 exist in a standard week. As another example,transit routes - Each transit trip can have a specific departure time and a specific arrival time. The departure time and the arrival time can be estimated time(s) or can be times determined or identified from data associated with the transit network, such as transit time tables.
-
FIGS. 4A and 4B depict a flowchart of an exemplary method (400) for determining a plurality of trip patterns according to an exemplary embodiment of the present disclosure. While exemplary method (400) will be discussed with reference to thetransit system 300 ofFIG. 3 , method (400) can be implemented to determine trip patterns with respect to any suitable transit system. Further, exemplary method (400) can be implemented using any suitable computing device or system including, for example,system 100 ofFIG. 1 andsystem 500 ofFIG. 5 . In particular, trippattern identification module 122 can be implemented to perform exemplary method (400). - Additionally, although
FIGS. 4A and 4B depict steps performed in a particular order for purposes of illustration and discussion, methods of the present disclosure are not limited to such particular order or arrangement. One skilled in the art, using the disclosures provided herein, will appreciate that various steps of the method (400) can be omitted, rearranged, combined, and/or adapted in various ways without deviating from the scope of the present disclosure. - At (402) transit graph data is received. The transit graph data can include a plurality of nodes and a plurality of arcs respectively connecting the plurality of nodes. Each arc can correspond to an available instance of transportation using a transit line and each node of the transit graph can respectively correspond to arrival or departure of an instance of transportation at a transit station. In some implementations, walking arcs or driving arcs, such as arcs representing transportation by taxi cab or rental vehicle, can be included in the transit graph.
- As an example, the plurality of arcs described by the transit graph data can respectively correspond to each instance of available transportation along one of the transit paths included in
transit system 300 ofFIG. 3 . Therefore, the transit graph data can describe 25 arcs respectively corresponding to available instances of transportation usingferry line 312. Each of such arcs can respectively connect two nodes corresponding to the departure of such instance of transportation usingferry line 312 from Station 1 and the arrival of such instance of transportation usingferry line 312 atStation 2. - One of skill in the art, in light of the disclosures contained herein, will appreciate that a graph describing a transit system can be constructed in numerous ways. As an example, with respect to
rail line 342, the transit graph data can describe 50 arcs respectively connecting 50 nodes corresponding to departure fromStation 6 to 50 nodes corresponding to arrival atStation 2 and each of such arcs can traverse 4 nodes corresponding to arrival and departure from each ofStations - Alternatively, the transit graph data can describe 50 arcs respectively connecting 50 nodes corresponding to departure from
Station 6 to 50 nodes corresponding to arrival atStation Station 7 to 50 nodes corresponding to arrival atStation Station 8 to 50 nodes corresponding to arrival at Station 9. Generally, the present disclosure, including method (400) can be satisfied using a wide range of graph designs, including those discussed above. - At (404) a cost model is defined. In particular, the cost model can provide an arc cost for each arc described by the transit graph data received at (402).
- The cost model can incorporate a plurality of parameters reflective of various costs associated with the transportation respectively associated with each arc, including duration, fare, mode of transportation, transit provider (agency), vehicle type, or a penalty associated with undesirable factors such as a walking penalty. Thus, the arc cost for each arc can be the sum of its costs for each parameter.
- As a simplified example, an exemplary cost model can include two parameters for each arc: duration of the transportation associated with such arc, and penalty of the transportation. The penalty for transportation can include walking penalties, fares, or other suitable penalties. The arc cost for the arc can be the sum of the two parameters. In particular, in order to sum the two parameters, the penalty parameter must be expressed in a homogenous fashion as the duration parameter. Therefore, the penalty parameter can be expressed in units of time. For example, a penalty of 5 minutes can be assigned to each arc corresponding to transportation using an undesirable vehicle type.
- One of skill in the art, in light of the disclosures provided herein, will appreciate that many additional parameters can be added or modeled without departing from the scope of the present disclosure. As another example, a cost model can include a plurality of parameters respectively having one of a plurality of weighting factors.
- As yet another example, a cost model can have a plurality of parameters expressed in non-homogenous units. As such, optimal paths through the transit graph can optimize across any one of such parameters. Thus, a shortest-path algorithm, such as Dijkstra's algorithm, can return several optimal paths which are not comparable unless relative adjustments are defined.
- At (406) a first optimal transit trip is determined based on the cost model. For example, any suitable shortest-path algorithm can be used to determine the optimal transit trip from an origin to a destination, including Dijkstra's algorithm. In particular, such shortest-path algorithm can apply the cost model defined at (404) to the transit graph data received at (402). In such fashion, the optimal transit trip from the origin to the destination can be determined.
- The determined optimal transit trip can include a plurality of solution arcs respectively connecting a pair of solution nodes. As an example, an exemplary shortest-path algorithm might determine that a particular transit trip along
third route 330 ofFIG. 3 is the optimal transit trip from Origin A to the Destination B based on the cost model defined at (404). - In such instance, the determined optimal transit trip can include: a first solution arc corresponding to an instance of transportation using
bus line 332; a second solution arc corresponding to an instance of transportation usingtram line 334; and a third solution arc corresponding to an instance of transportation usingtram line 336. - Further, the first solution arc can connect a first pair of solution nodes (corresponding to departure from Station 1 and arrival at Station 4), the second solution arc can connect a second pair of solution nodes (corresponding to
departure form Station 4 and arrival at Station 5), and the third solution arc can connect a third pair of solution nodes (corresponding to departure fromStation 5 and arrival at Station 2). - As another example, an exemplary shortest-path algorithm might determine that a particular transit trip along
fourth route 340 is the optimal transit trip from Origin A to Destination B. Therefore, a first solution arc can correspond to an instance of transportation fromStation 6 toStation 2 usingrail line 342. - As discussed above, depending on selected graph design, the first solution arc can correspond to a single arc connecting nodes corresponding to
Station 6 andStation 2 while traversingStations Stations Stations Stations - Returning to
FIG. 4 , at (408) the trip pattern exhibited by the optimal transit trip determined at (406) is identified or extracted. In particular, the trip pattern can describe a sequence of transit stations at which a passenger travelling upon the optimal transit trip determined at (406) would be required to board or disembark a vehicle providing transportation. Such identified trip pattern can be stored for later processing. - As an example, if an exemplary shortest-path algorithm determined at (406) that a particular transit trip along
third route 330 was the optimal transit trip, then the trip pattern exhibited by such transit trip can be identified at (408). More particularly, in such exemplary instance, the trip pattern identified at (408) can be identified as 1>4>4>5>5>2. - One of skill in the art, in light of the disclosures provided herein, will appreciate that the trip pattern identified at (408) can be written in a number of formats which all represent the same core information. For example, the trip pattern 1>4>4>5>5>2 can be written as [1,4], [4,5], [5,2] in order to more precisely identify the pairs of solution nodes. Many other notations are available as well. It will be appreciated that such notations are simply a matter of convention and each of such notations can be used in accordance with the present disclosure.
- At (410) the cost model can be revised based on the optimal transit trip determined at (406). In particular, the cost model can be revised such that the arc costs associated with one or more arcs associated with the optimal transit trip can be increased.
- As an example, revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc connecting nodes corresponding to the same pair of stations as one of the pairs of solution nodes traversed by the optimal transit trip determined at (406). For example, if the optimal transit trip determined at (406) corresponds to an instance of travel upon
third route 330, then revising the cost model at (410) can include penalizing all arcs included in the transit graph data received at (402) that connect nodes corresponding to Station 1 andStation 4, penalizing all arcs that connect nodes corresponding toStation 4 andStation 5, and penalizing all arcs that connect nodes corresponding toStation 5 andStation 2. - As another example, revising the cost model at (410) can include increasing the arc cost associated with each arc connecting nodes corresponding to the same pair of stations as the pair of solution nodes connected by the solution arc having the arc cost of greatest magnitude. For example, if the optimal transit trip determined at (406) corresponds to a particular instance of travel upon
third route 330 and the solution arc corresponding to the portion oftram line 336 connectingStations Stations - As another example, revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc corresponding to one or more of the transit lines utilized by the optimal transit trip determined at (406). For example, if the optimal transit trip determined at (406) corresponds to an instance of travel upon
third route 330, then revising the cost model at (410) can include penalizing all arcs included in the transit graph data that correspond to a portion ofbus line 332, penalizing all arcs that correspond to a portion oftram line 334, and/or penalizing all arcs that correspond to a portion oftram line 336. - As yet another example, revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc corresponding to one or more vehicle types utilized by the optimal transit trip determined at (406). For example, if the optimal transit trip determined at (406) corresponds to an instance of travel upon fourth route 440, then revising the cost model at (410) can include penalizing all arcs that correspond to transportation by rail (due to utilization of rail line 342). Therefore, with respect to the example provided in
FIG. 3 , all arcs correspondingrail lines tram lines ferry line 312, or bus line 332). - As another example, revising the cost model based on the determined optimal transit trip can include increasing the arc cost associated with each arc corresponding to one or more vehicle providers or agencies providing transportation utilized by the optimal transit trip determined at (406). For example, if the optimal transit trip determined at (406) corresponds to an instance of travel upon
first route 310 andferry line 312 is operated by Western State Ferry Authority, then revising the cost model at (410) can include penalizing all arcs included in the transit graph data received at (402) that correspond to transportation by a ferry operated by Western State Ferry Authority, whether or not such transportation corresponds to theparticular ferry line 312. - According to an aspect of the present disclosure, each of the plurality of arcs described by the transit graph data can have an associated duration. In particular, the duration associated with each arc can describe an amount of time that the transportation represented by such arc is expected or projected to take. For example, as shown in
FIG. 3 , transportation from Station 1 toStation 2 usingferry line 312 is expected to have a duration of 45 minutes. Such duration can be associated with each arc corresponding to such portion offerry line 312. It will be appreciated, however, that arcs corresponding to the same portion of a transit line may in fact have different durations, such that traffic patterns or other factors can be accommodated or modeled. - The duration of solution arcs can be considered when revising the cost model at (410). In particular, according to an aspect of the present disclosure, the penalty applied to each arc that is penalized at (410) can be proportional to the duration associated with such arc. For example, if the optimal transit trip determined at (406) corresponds to a particular instance of travel upon
third route 330, then one or more arcs corresponding to one or more oftransit paths - In particular, in one implementation, the penalties applied to arcs corresponding to transit
path 336 can be 1.5 times the magnitude of the penalties applied to arcs corresponding to transitpaths - As another example, revising the cost model at (410) can include increasing the arc cost associated with each arc connecting nodes corresponding to the same stations as the pair of solution nodes connected by the solution arc having the duration of greatest magnitude. For example, if the optimal transit trip determined at (406) corresponds to a particular instance of travel upon
third route 330, then only those arcs that connect nodes corresponding toStations tram line 336 connectingStations transit route 330. - One of skill in the art, in light of the disclosures contained herein, will appreciate that the above disclosed exemplary criteria for revising the cost model at (410) are non-exhaustive in nature. In particular, multiple criteria can be applied simultaneously or sequentially to satisfy (410). Further, criteria can be combined with or modified by one another to create new criteria.
- At (412) it is determined whether additional iterations of (406)-(410) are desired. If it is determined at (412) that additional iterations are desired, then method (400) returns to (406) and determines a second optimal transit trip based on the cost model as previously revised at (410). In particular, because one or more arcs associated with the first optimal transit trip determined at (406) were penalized or otherwise had their arc costs increased at (410), then a subsequent iteration of (406)-(410) is likely to determine a different, second optimal transit trip based on the revised cost model.
- Therefore, performing a plurality of iterations of (406)-(410) can serve to determine a plurality of unique optimal transit trips and, likewise, identify a plurality of unique trip patterns. Thus, performing a plurality of such iterations is desirable and can serve to satisfy the need for the plurality of trip patterns. Further, it will be appreciated that different methods of revising the cost model can be performed at different iterations of (410) such that unique trip patterns are continuously identified.
- The decision at (412) can be made based upon a number of factors. In one implementation, the number of iterations performed is compared to a target number. For example, method (400) can be implemented to perform exactly 100 iterations of (406)-(410) and then proceed to (414) of
FIG. 4B following the one-hundredth iteration. - In another implementation, a clever stop to iterations can be performed at (412). For example, it can be determined at (412) that additional iterations are not desired when the optimal transit trip determined by the previous iteration fails to meet certain criteria. As an example, if the optimal transit trip determined by the previous iteration is greater than a threshold duration, then it can be determined at (412) that additional iterations are not desired and method (400) can proceed to (414).
- In one implementation, the threshold duration is determined based upon the first optimal trip determined at the first iteration of (406). For example, if at (412) it is determined that the duration of the most recently determined optimal transit trip is greater than two times the duration of the first optimal trip determined at the first iteration, then it can be determined that additional iterations are not desired.
- As discussed above, performing a plurality of iterations of (406)-(410) can serve to determine a plurality of unique optimal transit trips and, likewise, identify a plurality of unique trip patterns. However, in some implementations, performing a plurality of identification iterations will fail to identify every available transit trip and, therefore, fail to identify every available trip pattern.
- As an example, performing a plurality of iterations of (406)-(410) can fail to identify every available transit trip in the following scenario: assume an Origin A and a Destination B. Such exemplary transit network can further include a transit path from Origin A to a Station 1; a transit path from Origin A to
Station 2; a transit path from Station 1 to Destination B; a transit path fromStation 2 to Destination B; and a transitpath connecting Stations 1 and 2. - A first iteration of (406) can consider a cost model to determine a first optimal transit trip. For example, the first optimal transit trip can have the following trip pattern: A>1>1>B.
- The cost model can be revised based on such first optimal transit trip at (410). For example, the arcs respectively corresponding to the transit paths connecting Origin A to Station 1 and connecting Station 1 to Destination B can be penalized.
- A second iteration of (406) can consider the revised cost model to determine a second optimal transit trip. For example, the second optimal transit trip can have the following trip pattern: A>2>2>B.
- The cost model can be revised based on such second optimal transit trip at (410). For example, the arcs respectively corresponding to the transit paths connecting Origin A to
Station 2 and connectingStation 2 to Destination B can be penalized and method (400) can again return to (406). - However, one of skill in the art will appreciate that iteratively performing the above exemplary steps will never discover transit trips that utilize the transit
path connecting Stations 1 and 2. More particularly, when all arcs corresponding to the each entire optimal transit trip are penalized and several independent trips are available, then the iterative method will tend to repetitively select such trips as the optimal transit trips. - Therefore, additional steps can be performed in order to identify additional unique trip patterns. In particular, the plurality of trip patterns identified by the plurality of iterations of (406)-(410) can be merged to identify such additional trip patterns.
- Referring now to
FIG. 4B , at (414) a second transit graph can be built based on selected of the plurality of trip patterns identified at previous iterations of (408). For example a directed graph can be built describing a plurality of arcs which connect stations corresponding to pairs of solution nodes according to the previously identified trip patterns. As another example, the second transit graph can have a second origin node and a second destination node which respectively correspond to the origin node and the destination node of the first transit graph received at (402). Alternatively, the second transit graph constructed at (414) can be based on solution arcs included in selected of the plurality of optimal transit trips identified at previous iterations of (406). - At (416) one or more supplemental arcs can be added to the second transit graph constructed at (414). As an example, the supplemental arcs can be arcs that were not traversed by any of the previously determined optimal transit trips. For example, the supplemental arcs can correspond to walking arcs between stations. As another example, the supplemental arcs can correspond to arcs that provide a connection between more substantial “main” transit routes.
- At (418) one or more graph traversal algorithms can be performed with respect to the second transit graph data. In one implementation, all possible routes between a second origin node and a second destination node included in the second transit graph can be identified at (418). The trip pattern associated with each of such routes can be identified and stored.
- Exemplary graph traversal algorithms include, but are not limited to, a depth-first search algorithm, a breadth-first search algorithm, or other suitable algorithms. The trip patterns associated with all traversal routes can be identified and stored.
- At (420) all identified trip patterns can be stored for further processing. For example, the trip patterns stored at (420) can be those identified at the plurality of iterations of (408). The trip patterns stored at (420) can also be those identified by performing the graph traversal algorithm with respect to the second transit graph data at (418).
-
FIG. 5 depicts anexemplary computing system 500 that can be used to implement the methods and systems for transit trip planning according to aspects of the present disclosure. Thesystem 500 has a client-server architecture that includes aserver 510 that communicates with one ormore client devices 530 over anetwork 540. Thesystem 500 can be implemented using other suitable architectures, such as a single computing device. - The
system 500 includes aserver 510, such as a web server. The server can host a transit planning platform. Theserver 510 can be implemented using any suitable computing device(s). Theserver 510 can have a processor(s) 512 and amemory 514. Theserver 510 can also include a network interface used to communicate with one or more remote computing devices (e.g. client devices) 530 over thenetwork 540. - The processor(s) 512 can be any suitable processing device, such as a microprocessor, microcontroller, integrated circuit, or other suitable processing device. The
memory 514 can include any suitable computer-readable medium or media, including, but not limited to, non-transitory computer-readable media, RAM, ROM, hard drives, flash drives, or other memory devices. Thememory 514 can store information accessible by processor(s) 512, includinginstructions 516 that can be executed by processor(s) 512. Theinstructions 516 can be any set of instructions that when executed by the processor(s) 512, cause the processor(s) 512 to provide desired functionality. For instance, theinstructions 516 can be executed by the processor(s) 512 to implement the trippattern identification module 122, and the transittrip generation module 124. - It will be appreciated that the term “module” refers to computer logic utilized to provide desired functionality. Thus, a module can be implemented in hardware, application specific circuits, firmware and/or software controlling a general purpose processor. In one embodiment, the modules are program code files stored on the storage device, loaded into memory and executed by a processor or can be provided from computer program products, for example computer executable instructions, that are stored in a tangible computer-readable storage medium such as RAM, ROM, hard disk or optical or magnetic media.
-
Memory 514 can also includedata 518, such as transit data, that can be retrieved, manipulated, created, or stored by processor(s) 512. Thedata 518 can be stored in one or more databases. The one or more databases can be connected to theserver 510 by a high bandwidth LAN or WAN, or can also be connected toserver 510 throughnetwork 540. The one or more databases can be split up so that they are located in multiple locales. - The
server 510 can exchange data with one ormore client devices 530 over thenetwork 540. Although twoclients 530 are illustrated inFIG. 5 , any number ofclient devices 530 can be connected to theserver 510 over thenetwork 540. Theclient devices 530 can be any suitable type of computing device, such as a general purpose computer, special purpose computer, laptop, desktop, integrated circuit, mobile device, smartphone, tablet, wearable computing device, or other suitable computing device. - Similar the
computing device 510, aclient device 530 can include a processor(s) 532 and amemory 534. Thememory 534 can store information accessible by processor(s) 532, including instructions that can be executed by processor(s) 532 and data. Theclient device 530 can include various input/output devices for providing and receiving information from a user, such as a touch screen, touch pad, data entry keys, speakers, and/or a microphone suitable for voice recognition. For instance, thecomputing device 530 can have adisplay 536 for presenting information, such as recommended transit trips to a user. - The
client device 530 can also include apositioning system 538 that can be used to identify the position of theclient device 530. Thepositioning system 538 can be optionally used by the user to monitor the user's position relative to a transit route. Thepositioning system 538 can be any device or circuitry for monitoring the position of theclient device 530. For example, thepositioning device 538 can determine actual or relative position by using a satellite navigation positioning system (e.g. a GPS system, a Galileo positioning system, the GLObal Navigation satellite system (GLONASS), the BeiDou Satellite Navigation and Positioning system), an inertial navigation system, a dead reckoning system, based on IP address, by using triangulation and/or proximity to cellular towers or WiFi hotspots, and/or other suitable techniques for determining position. - In situations in which the systems and method discussed herein collect information about users, such as position data, user preferences, or other information, the users may be provided with an opportunity to control whether programs or features collect the information and control whether and/or how to receive content from the system or other application. No such information or data is collected or used until the user has been provided meaningful notice of what information is to be collected and how the information is used. The information is not collected or used unless the user provides consent, which can be revoked or modified by the user at any time. Thus, the user can have control over how information is collected about the user and used by the application or system. In addition, certain information or data can be treated in or more ways before it is stored or used, so that personally identifiable information is removed.
- The
network 540 can be any type of communications network, such as a local area network (e.g. intranet), wide area network (e.g. Internet), or some combination thereof. Thenetwork 540 can also include a direct connection between aclient device 530 and theserver 510. In general, communication between theserver 510 and aclient device 530 can be carried via network interface using any type of wired and/or wireless connection, using a variety of communication protocols (e.g. TCP/IP, HTTP), encodings or formats (e.g. HTML, XML), and/or protection schemes (e.g. VPN, secure HTTP, SSL). - While the present subject matter has been described in detail with respect to specific exemplary embodiments and methods thereof, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing may readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, the scope of the present disclosure is by way of example rather than by way of limitation, and the subject disclosure does not preclude inclusion of such modifications, variations and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/894,025 US9273970B2 (en) | 2013-05-14 | 2013-05-14 | Systems and methods for generating a plurality of trip patterns |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/894,025 US9273970B2 (en) | 2013-05-14 | 2013-05-14 | Systems and methods for generating a plurality of trip patterns |
Publications (2)
Publication Number | Publication Date |
---|---|
US20150168149A1 true US20150168149A1 (en) | 2015-06-18 |
US9273970B2 US9273970B2 (en) | 2016-03-01 |
Family
ID=53368030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/894,025 Active 2033-08-28 US9273970B2 (en) | 2013-05-14 | 2013-05-14 | Systems and methods for generating a plurality of trip patterns |
Country Status (1)
Country | Link |
---|---|
US (1) | US9273970B2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160358112A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Enriching Transit Data and Transit Data Processing |
US9534914B1 (en) * | 2015-06-25 | 2017-01-03 | International Business Machines Corporation | Cognitive needs-based trip planning |
EP3133550A1 (en) * | 2015-08-20 | 2017-02-22 | Tata Consultancy Services Limited | Methods and systems for planning evacuation paths |
US20190101400A1 (en) * | 2015-06-07 | 2019-04-04 | Apple Inc. | Frequency Based Transit Trip Characterizations |
US10274330B2 (en) * | 2014-12-30 | 2019-04-30 | Here Global B.V. | Method and apparatus for providing a navigation route |
CN111447061A (en) * | 2020-04-21 | 2020-07-24 | 南京珥仁科技有限公司 | Data anti-disclosure and data credibility verification method for file data ferrying |
US11015951B2 (en) | 2015-06-06 | 2021-05-25 | Apple Inc. | Feature selection in transit mode |
US11054275B2 (en) | 2015-06-06 | 2021-07-06 | Apple Inc. | Mapping application with transit mode |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6326329B2 (en) * | 2014-09-03 | 2018-05-16 | アイシン・エィ・ダブリュ株式会社 | Route search system, route search method and computer program |
US9534913B2 (en) * | 2015-04-09 | 2017-01-03 | Mapquest, Inc. | Systems and methods for simultaneous electronic display of various modes of transportation for viewing and comparing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845227A (en) * | 1991-02-01 | 1998-12-01 | Peterson; Thomas D. | Method and apparatus for providing shortest elapsed time route and tracking information to users |
US20090040931A1 (en) * | 2007-08-10 | 2009-02-12 | Max-Planck-Gesellschaft Zur Forderung Der Wissenschaften E.V. | Method and device for determining the length of a shortest path in a network |
US20110112759A1 (en) * | 2009-11-11 | 2011-05-12 | Google Inc. | Transit routing system for public transportation trip planning |
US8271190B2 (en) * | 2004-11-30 | 2012-09-18 | Dash Navigation Inc. | Methods and system for deducing road geometry and connectivity |
US8700328B1 (en) * | 2011-09-13 | 2014-04-15 | Google Inc. | Better diversity for transit routing |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7595740B2 (en) | 2005-10-26 | 2009-09-29 | Transspot Ltd. | Real time navigation and advertising platform for public transportation |
US7822546B2 (en) | 2006-09-05 | 2010-10-26 | Garmin Switzerland Gmbh | Travel guide and schedule-based routing device and method |
GB2443472A (en) | 2006-10-30 | 2008-05-07 | Cotares Ltd | Method of generating routes |
US8645050B2 (en) | 2010-09-09 | 2014-02-04 | Google Inc. | Transportation information systems and methods associated with degradation modes |
-
2013
- 2013-05-14 US US13/894,025 patent/US9273970B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845227A (en) * | 1991-02-01 | 1998-12-01 | Peterson; Thomas D. | Method and apparatus for providing shortest elapsed time route and tracking information to users |
US8271190B2 (en) * | 2004-11-30 | 2012-09-18 | Dash Navigation Inc. | Methods and system for deducing road geometry and connectivity |
US20090040931A1 (en) * | 2007-08-10 | 2009-02-12 | Max-Planck-Gesellschaft Zur Forderung Der Wissenschaften E.V. | Method and device for determining the length of a shortest path in a network |
US20110112759A1 (en) * | 2009-11-11 | 2011-05-12 | Google Inc. | Transit routing system for public transportation trip planning |
US8417409B2 (en) * | 2009-11-11 | 2013-04-09 | Google Inc. | Transit routing system for public transportation trip planning |
US8700328B1 (en) * | 2011-09-13 | 2014-04-15 | Google Inc. | Better diversity for transit routing |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10274330B2 (en) * | 2014-12-30 | 2019-04-30 | Here Global B.V. | Method and apparatus for providing a navigation route |
US20160358112A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Enriching Transit Data and Transit Data Processing |
US11080631B2 (en) * | 2015-06-05 | 2021-08-03 | Apple Inc. | Enriching transit data and transit data processing |
US11015951B2 (en) | 2015-06-06 | 2021-05-25 | Apple Inc. | Feature selection in transit mode |
US11054275B2 (en) | 2015-06-06 | 2021-07-06 | Apple Inc. | Mapping application with transit mode |
US20190101400A1 (en) * | 2015-06-07 | 2019-04-04 | Apple Inc. | Frequency Based Transit Trip Characterizations |
US10976168B2 (en) * | 2015-06-07 | 2021-04-13 | Apple Inc. | Frequency based transit trip characterizations |
US11231288B2 (en) | 2015-06-07 | 2022-01-25 | Apple Inc. | Transit navigation |
US11768077B2 (en) | 2015-06-07 | 2023-09-26 | Apple Inc. | Transit navigation |
US9534914B1 (en) * | 2015-06-25 | 2017-01-03 | International Business Machines Corporation | Cognitive needs-based trip planning |
EP3133550A1 (en) * | 2015-08-20 | 2017-02-22 | Tata Consultancy Services Limited | Methods and systems for planning evacuation paths |
CN111447061A (en) * | 2020-04-21 | 2020-07-24 | 南京珥仁科技有限公司 | Data anti-disclosure and data credibility verification method for file data ferrying |
Also Published As
Publication number | Publication date |
---|---|
US9273970B2 (en) | 2016-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9273970B2 (en) | Systems and methods for generating a plurality of trip patterns | |
EP3318985B1 (en) | Driving route matching method and apparatus and storage medium | |
TWI735292B (en) | A method for providing a route for a journey from a source location to a target location | |
US9097535B2 (en) | Public transportation journey planning | |
JP5666613B2 (en) | Transit route determination system for public transportation trip planning | |
US20140012611A1 (en) | Method and system for generating viable pattern-transfers for an itinerary -planning system | |
US8972190B1 (en) | Systems and methods for generating transit trips | |
US20060161337A1 (en) | Route planning process | |
US20120239289A1 (en) | Transportation Information Systems and Methods Associated With Generating Multiple User Routes | |
US11067406B2 (en) | Navigation method using historical navigation data to provide geographical- and user-optimised route suggestions | |
Yarkoni et al. | Quantum shuttle: traffic navigation with quantum computing | |
US20140343852A1 (en) | Guidebook Transit Routing | |
US20150168148A1 (en) | Systems and Methods for Generating Guidebook Routes | |
US20140343974A1 (en) | Selecting a Subset of Transit Trips Based on Time and Duration | |
Varone et al. | Multi-modal transportation with public transport and ride-sharing-multi-modal transportation using a path-based method | |
JPWO2014199503A1 (en) | Traffic demand control device | |
KR102026913B1 (en) | Method and system for selecting a stop for traffic demand service | |
US20150170063A1 (en) | Pattern Based Transit Routing | |
KR20150117209A (en) | Travel planning system | |
Jamal et al. | Tour planning and ride matching for an urban social carpooling service | |
EP3502623A1 (en) | Navigation method using historical navigation data to provide geographical- and user-optimised route suggestions | |
Tsolkas et al. | Busfinder: a personalized multimodal transportation guide with dynamic routing | |
Aissat et al. | A posteriori approach of real-time ridesharing problem with intermediate locations | |
Masri et al. | Retry: Integrating ridesharing with existing trip planners | |
JP7127595B2 (en) | Information processing device and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GRAELLS, ALBERT;PECH, LUCIEN;REEL/FRAME:030480/0037 Effective date: 20130521 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044566/0657 Effective date: 20170929 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |