WO2007145625A1 - Dynamic route prediction based on travel patterns of mobile units - Google Patents
Dynamic route prediction based on travel patterns of mobile units Download PDFInfo
- Publication number
- WO2007145625A1 WO2007145625A1 PCT/US2006/023232 US2006023232W WO2007145625A1 WO 2007145625 A1 WO2007145625 A1 WO 2007145625A1 US 2006023232 W US2006023232 W US 2006023232W WO 2007145625 A1 WO2007145625 A1 WO 2007145625A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mobile unit
- cell
- current
- route
- journey
- Prior art date
Links
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
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3484—Personalized, e.g. from learned user behaviour or user-defined profiles
-
- 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/36—Input/output arrangements for on-board computers
- G01C21/3605—Destination input or retrieval
- G01C21/3617—Destination input or retrieval using user history, behaviour, conditions or preferences, e.g. predicted or inferred from previous use or current movement
Definitions
- This invention relates generally to communication systems, and, more particularly, to wireless communication systems.
- the coverage area of a wireless communication system is typically divided into a number of cells, which may be grouped into one or more networks.
- Mobile units located in each cell may access the wireless communications system by establishing a wireless communication link, often referred to as an air interface, with a base station associated with the cell.
- the mobile units may include devices such as mobile telephones, personal data assistants, smart phones, Global Positioning System devices, wireless network interface cards, desktop or laptop computers, and the like.
- Mobile units may initiate a communication session with a base station by providing a signal on an access channel to an antenna associated with a sector of the cell served by the base station.
- the communication session may be idle or active. For example, an idle mobile unit may maintain a communication session with the network as it roams through the network.
- a separate traffic channel may be established so that the mobile unit and the base station may exchange messages over the air interface using the traffic channel.
- mobile units do not typically remain connected to the same base station or antenna for the duration of every communication session.
- mobile units may frequently change base stations, e.g., in response to detecting another antenna or base station that provides a higher signal quality.
- the user of a mobile unit may be moving and therefore may pass from a cell served by a first base station into a cell served by a second base station.
- the mobile unit may therefore be handed over from the first base station to the second base station.
- the mobile unit may move between sectors served by different antennas associated with a single base station and may therefore' be handed over from one antenna to another.
- the mobile unit does not, however, have to be moving to be handed off between antennas and/or base stations.
- changes in environmental conditions may result in a different antenna and/or base station providing superior signal quality to a stationary mobile unit, which may result in the mobile unit being handed over to the antenna and/or base station that provides a superior signal quality.
- FIG 1 conceptually illustrates one exemplary embodiment of a conventional wireless communication system 100.
- the wireless communication system 100 includes a plurality of base stations (BS) that includes three or more antennas (not shown) for providing wireless connectivity to sectors 105 in cells 110.
- BS base stations
- the sectors 105 may also be indicated by identifying numbers, such as the sectors 18181, 54521, 21002, etc.
- GSM Global System for Mobile communication
- each sector 105 has a unique identity formed by concatenating a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a cell ID (CID).
- MCC Mobile Country Code
- MNC Mobile Network Code
- LAC Location Area Code
- CID cell ID
- a mobile unit may connect to the wireless communication system 100 using one or more antennas associated with one or more of the base stations.
- the mobile unit may remain stationary or may roam throughout the wireless communication system 100.
- a stationary mobile unit at a fixed location 1 may be connected to cell 54523 for a relatively long time.
- a stationary mobile unit at a fixed location 2 that is served by overlapping sectors 18181 and 21002 may alternately be connected to cell 18181 or 21002.
- the oscillation patterns between 2 or more cells e.g., cells or sectors 18181 or 21002 at the same physical location may change from day to day and a significant percentage of the cell changes may occur while the mobile unit is not moving.
- a roaming mobile unit may be traveling a route 3 and therefore may successively be connected to cells 54523-*54521-*21001-*21000 during the journey.
- another journey along the same physical path may result in different sequences of cell IDs.
- a mobile unit traveling the same route 3 under slightly different environmental conditions may be connected to cells 54523 ⁇ 18181 ⁇ 54521 ⁇ 21001 ⁇ 21000 during the journey.
- the wireless communication system 100 may provide one or more location-based services and therefore the wireless communication system 100 may attempt to determine and/or predict locations of mobile units within the system 100. For example, a wireless communication system 100 may attempt to predict the next location of a mobile unit based upon the current location of the mobile unit. Conventional algorithms for predicting the next location of the mobile unit typically assume that the mobile unit is being used by a user that follows predictable repeating routines, schedules, and/or habits.
- Ashbrook and Starner (“Learning Significant Locations and Predicting User Movement with GPS,” Proceedings of the 6 th International Symposium on Wearable Computers, IEEE 2002, referred to hereinafter as Ashbrook) describe determining a plurality of places using time gaps in GPS data that indicate that a user has stopped moving.
- the places may be clustered into locations that include all the places within a selected radius of a selected location.
- a second-order Markov model may then be constructed using the collected data to predict the probability that the user will move between any two locations.
- Ashbrook does not describe updating the model during the journeys, only after one or more journeys have been completed and the associated data has been collected.
- the technique described by Ashbrook is also limited to identifying final destinations and not intermediate locations along the route.
- Ashbrook does not associate the places or locations within a particular cell or sector.
- the technique described by Ashbrook does not incorporate temporal information and therefore cannot predict arrival times at either the places or the locations.
- Bhattacharya and Das describe techniques for determining mobility models based on movement histories of mobile units within a service area.
- the mobility model is a probabilistic sequence of locations associated with the mobile unit that is assumed to reflect patterns in the life of the user of the mobile unit. Location information is collected after a predetermined time period and if the mobile unit does not move, then the locations may be repeated.
- the mobility model described by Bhattacharya may be used to determine likely locations for paging the mobile unit.
- the tree depth of the model is not predetermined and may become quite large in some cases, which may degrade the convergence properties and predictive power of the model. Large trees also require significant storage space. Furthermore, the techniques described by Bhattacharya are not used to predict final destinations of mobile units based on the mobility models and make no prediction of estimated arrival times associated with the mobile unit and cells in the mobility model.
- Laasonen et al. (“Adaptive On-Device Location Recognition," pages 287-304, PERVASIVE 2004, referred to hereinafter as Laasonen) describes techniques for identifying locations and routes using cellular network data. Important locations called bases, and routes between successive bases, can be identified using a user's location data. Laasonen describes determining target or destination bases based upon the routes. However, Laasonen does not implement the modeling part of a data compaction algorithm to learn travel patterns and predict the next cell (or base station) and beyond. Furthermore, the techniques described by Laasonen make no prediction of estimated arrival times associated with any of the bases and, in particular, Laasonen does not predict arrival times associated with the targeted bases.
- a method for dynamic route prediction may include determining at least one current route associated with a mobile unit in response to determining that the mobile unit has begun a current journey. Each current route is determined based on at least one location visited by the mobile unit during the current journey.
- Figure 1 conceptually illustrates one exemplary embodiment of a conventional wireless communication system
- Figure 2 conceptually illustrates one exemplary embodiment of a system for learning and/or predicting traveling patterns of mobile units in a wireless communication system, in accordance with the present invention
- FIG. 3 conceptually illustrates one exemplary embodiment of the wireless communication system, in accordance with the present invention
- Figure 4 conceptually illustrates an exemplary embodiment of a probability distribution, in accordance with the present invention
- Figure 5 conceptually illustrates a directed transition graph representing seven journeys taken by a user between three locations, in accordance with the present invention
- Figure 7 conceptually illustrates one exemplary embodiment of a method for finding or selecting routes to a given target cell, in accordance with the present invention
- Figure 8 conceptually illustrates one exemplary embodiment of a search through a prediction tree, in accordance with the present invention.
- Figure 9 conceptually illustrates one exemplary embodiment of a collection of routes to a selected target cell, in accordance with the present invention.
- the software implemented aspects of the invention are typically encoded on some form of program storage medium or implemented over some type of transmission medium.
- the program storage medium may be magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or "CD ROM"), and may be read only or random access.
- the transmission medium may be twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The invention is not limited by these aspects of any given implementation.
- Figure 2 conceptually illustrates one exemplary embodiment of a system 200 for learning and/or predicting traveling patterns of mobile units in a wireless communication system.
- the system 200 receives input in the form of a time- stamped sequence of identifiers for a mobile unit (not shown).
- the identifiers may be cell identifiers.
- the input is not limited to the time-stamped sequence of cell identifiers. In alternative embodiments, other information may be used instead of, or in addition to, the time-stamped sequence of cell identifiers.
- the input may also include one or more base station identifiers, location area codes, mobile country codes, mobile network codes, identifiers indicative of one or more global positioning system coordinates, identifiers indicative of one or more regions of a map, and the like.
- the other input may or may not be time-stamped.
- the identifiers may be accessed after the mobile unit is attached to the network.
- the mobile unit may include a Subscriber Identity Module (SIM) card (e.g., if the network is a GSM/GPRS system) or User SIM card (e.g., if the network is a UMTS system).
- SIM Subscriber Identity Module
- User SIM e.g., if the network is a UMTS system.
- Cell identifiers may be obtained after the SIM/USIM cards are attached to the network.
- the network may authenticate the mobile unit (or corresponding SIM/USIM card) before the mobile unit is allowed to attach and obtain the cell identifier.
- the identifiers may be accessed without attaching to the network. For example, WiFi Access Point MAC addresses and/or SSIDs can be detected without attaching.
- GPS devices can also access location information without necessarily attaching to a network.
- the identifier may be extracted either by the mobile unit or by another entity or entities within the network infrastructure.
- the techniques described herein may therefore be implemented on the mobile unit, within the network infrastructure, or in some combination thereof.
- the mobile unit could gather information and send it to a trusted point where information from multiple users is processed.
- a mobile-unit-only solution may give the end user more control of the information learned and predicted for this user, while a network-infrastructure-only solution may require user approval and enforcement of applicable privacy law.
- the time-stamped sequence of cell identifiers may reflect one or more journeys taken by the mobile unit.
- the term "journey” will be understood to refer to the physical movement of a mobile unit from a current location to a destination location.
- a journey may be from home to work, from cell 1 to cell 7, or between any other locations.
- Journeys may include two or more destination locations.
- a journey may be from home to school to the store and back home.
- Each journey will result in the mobile unit passing through (or being associated with) a sequence of cells, base stations, or other locations as it travels from a current location to a destination location.
- the sequence of cells, base stations, or other locations associated with the mobile unit during a journey will be referred to hereinafter as a "route.”
- Journeys may be along one or more routes.
- a journey along a road from the user's home to work may correspond to a route that includes a cell that provides coverage to the home of the user of the mobile unit, a sequence of cells that lies along the path the user takes from home to work, and a cell that provides coverage to the user's workplace.
- a journey along roads leading from the user's home to school, from the school to the store, and the returning from the store to home may correspond to a route that includes the cell that provides coverage to the user's home, a sequence of cells that lies along a path taken by the user from home to school, the sequence of cells that lies along the path taken by the user from school to the store, and a sequence of cells that lies along a path taken by the user from the store to home.
- journeys are often repeated numerous times and so multiple journeys may be taken along a single route.
- the journeys taken by a mobile unit may be used to determine one or more routes associated with the mobile unit.
- a user may take a first road from home to work when traffic is light and a second road when traffic is heavy.
- the same journey may not always include precisely the same sequence of cells.
- the user may take a slightly different path for different iterations of the same journey.
- Environmental conditions or other factors may also result in different cells or sectors being assigned to the mobile unit during different journeys along a route. These factors may be accounted for when determining routes based on journeys.
- the input may be provided to an inference module 205 in the system 200.
- the inference module 205 may perform a number of functions including identifying and/or maintaining a list of favorite cells visited by the mobile unit, inferring whether the mobile unit is traveling or not, isolating separate journeys taken by the mobile unit from the input sequence and communicating them to other modules, and the like.
- the inference module 205 may use the time-stamped input sequence to compute the total time spent in each cell by the mobile unit, a minimum duration of visits to each cell by the mobile unit, a maximum duration of visits to each cell by the mobile units, a mean of the durations of the visits to each cell by the mobile unit, a standard deviation of the durations of visits to each cell, and the like.
- the inference module 205 may also store a time stamp indicating the last time each cell was visited by the mobile unit.
- the inference module 205 may also maintain other information such as the number of times each cell was visited and the number of neighboring cells from each cell visited.
- the inference module 205 may determine and/or maintain a list of "favorite cells". For example, the inference module 205 may include cells in the list of favorite cells if the mean duration of the visits to the cell exceeds some threshold value, indicating that the user is likely to stay in the cell for a relatively large amount of time. However, any criterion may be used to select cells for the list of favorite cells. Furthermore, cells may also be removed from the list of favorite cells if the user no longer visits the cells on a regular basis or spends a sufficient amount of time in the cells.
- the inference module 205 may use the favorite cell when performing other tasks, such as determining whether the user is traveling and/or isolating separate journeys, as will be discussed in detail below.
- the information maintained by the inference module may be used to derive "home,” "work,” and/or other relevant locations, possibly by taking into account other user information such as profile information, e.g. postal codes of the user's home address, or direct input from the user.
- the inference module 205 may also determine whether the mobile unit is roaming, traveling, or otherwise moving. In one embodiment, the inference module 205 determines whether the mobile unit is traveling, e.g., the mobile unit has begun a journey, based on the input information including the time-stamped sequence of location identifiers. For example, if the mobile unit spends a relatively long time in a single cell, then the inference module 205 may use the non-occurrence of cell changes to infer or determine that the mobile unit is not traveling, e.g., the mobile unit has not begun a journey, especially if this cell is ranked high in the list of favorite cells. In contrast, the inference module 205 may use input information indicating the frequent occurrence of cell changes (excluding oscillation patterns) to infer or determine that the user is traveling. Oscillation patterns may also indicate that the mobile unit is not traveling.
- Figure 3 conceptually illustrates one exemplary embodiment of a wireless communication system 300.
- exemplary locations are shown that may be prone to creating oscillation patterns are indicated by the small circles.
- the numerals within the circles indicate the number of cells or sectors that may participate in the oscillation patterns. For example, oscillations may occur between 2-6 cells at different locations in an ideal honeycomb network.
- Locations that are particularly prone to oscillation patterns include regions where the coverage area of two or more cells overlap, regions near the borders or edges of sectors, regions near the intersection of multiple sectors of a single cell, and the like.
- Oscillation patterns are typically indicated by a pattern of switching between sectors or cells that may provide wireless connectivity to the mobile unit. Most oscillation patterns involve 2 cells, but patterns involving 3 or more cells may occur as well. When 3 or more cells are involved any order may occur. As an example, patterns involving 3 cells often included ... ⁇ 1 ⁇ 2 ⁇ 1 ⁇ 3 ⁇ 1 ⁇ ... as a sub pattern, i.e. a dominant cell is alternatively superseded with one of two other cells, but also ... ⁇ 1 ⁇ 2 ⁇ 3 ⁇ 1 ⁇ 2 ⁇ 3 ⁇ ... may occasionally occur. Oscillations may also occur between regions that are identified using GPS data. For example, if GPS coordinates are mapped to squares, a mobile unit can typically oscillate between up to four squares. Alternatively, if GPS coordinates are mapped to a honeycomb structure, a mobile unit can typically oscillate between up to 3 regions of the honeycomb structure.
- the inference module 205 may filter out the oscillation patterns.
- the inference module 205 may implement a filtering algorithm that takes into account that cell changes take place between a small subset of 2-6 cells.
- the inference module 205 may also maintain a parameter called visit distance, which is defined in accordance with usage in the art as a number of cell changes between current and previous visits to each cell. For example, the visit distance for cell 1 in the pattern ... ⁇ 1 ⁇ 2 ⁇ 1 ⁇ 3 ⁇ 1 ⁇ ... is infinite (or some other large number) for the first visit to cell 1 and then 2 for the second and third visits to cell 1.
- a visit distance history that includes the previous values of the visit distances may also be created.
- the visit distance and cell identifiers may be used to filter out oscillation patterns.
- the start of an oscillation pattern may be identified if the visit distance associated with a cell equals 2
- the end of an oscillation pattern may be identified if it is determined that the upcoming cells are not part of the current oscillation pattern given the configured maximum number of cells in the oscillation pattern (typically 2-6). Exceptions may be made for special cases such as ... ⁇ 2 r> 1 ⁇ 2 ⁇ ..., /. e. reaching and staying relatively long in destination cell 1 while arriving and leaving via cell 2. Note that in this case the time stamps are used to determine that a relativity long time was spent in cell 1 and during both visits a relatively short time was spent in cell 2.
- a visit distance of 2 is used to as a triggering event for the start of an oscillation pattern
- other events may also be used as a trigger for identifying oscillation patterns.
- a triggering event may be used to distinguish an oscillation pattern from "traveling in rounds,” as will be discussed in detail below.
- the oscillation pattern may also be identified by using the visit distance history.
- the visit distance history may indicate that the visit distance associated with the cell remained predominantly small for a period of time or after several location changes. For example, if a mobile unit has changed from one cell to another several times over a period of time, but the visit distance associated with the cell has remained less than a visit distance associated with an oscillation pattern, then it may be identified as part of the oscillation pattern.
- persons of ordinary skill in the art should appreciate that some of the visit distances in an oscillation pattern may be large. For example, if a cell occurs for the first time ever for a user, the visit distance is infinite or some other preselected large value.
- the visit distance may be a relatively large value if a cell is encountered for the first time in an oscillation pattern.
- the visit distance may be large if the oscillation pattern is relatively long (e.g. 100 cell changes) and an associated cell only occurs at the beginning and at the end of the pattern. The cell transitions that are part of the oscillation pattern may therefore be filtered out.
- the visit distance and its history can also be used to determine whether the mobile unit is "traveling back" or "traveling in rounds". For example, consider the sequence of identifiers l ⁇ 2 ⁇ 3 ⁇ 4 ⁇ 5 ⁇ 6 ⁇ 7 ⁇ 6 ⁇ 5 ⁇ 4 ⁇ 3 ⁇ 2 ⁇ l, possibly corresponding to a first journey from 1 to 7, followed by a second journey back from 7 to 1. For the transitions that may be part of the second journey, e.g. starting with 7 ⁇ 6, the visit distances are 2, 4, 6, 8, 10, and 12, respectively. Thus, the visit distance increases by 2 for each transition in the second journey and this pattern corresponds to traveling back from 7 to 1. In practice, when traveling back, the sequence of identifiers may be slightly different (e.g.
- identifiers may be observed that were not encountered when traveling on the first, outbound, journey or some identifiers may not be observed that were encountered when traveling on the first journey), but nevertheless the trend of an increasing visit distance will be the same.
- sequence of identifiers l ⁇ 8 ⁇ 9 ⁇ 10 ⁇ 11 ⁇ 1 ⁇ 8 ⁇ 9 ⁇ 10 ⁇ 11 ⁇ 1 p ossibly corresponding to one or two journeys traveling the same round twice, i.e. traveling in rounds. On the first transition 11 ⁇ 1, the visit distance obtains a value of 5 and it remains 5 on every next transition.
- the sequence of identifiers may be slightly different, but the trend will be the same.
- the results of the techniques described above can be used to form indicators such as "traveling back" or "traveling in rounds” and associate these indicators with the corresponding journeys or routes.
- the inference module 205 uses the input time-stamped information to determine a traveling state of the mobile unit. In the NO state, the mobile unit is not traveling and in the YES state the mobile unit is traveling. Transitions from NO to YES can be based on the occurrence frequency of cell changes, excluding oscillation patterns. The list of favorite cells may also be taken into account. For example, if the occurrence frequency exceeds a predetermined threshold, then the inference module 205 may determine that the mobile unit is traveling and therefore the traveling state may transition to YES. In some embodiments, additional information may also be used to determine whether a journey has stopped or started, e.g. home WiFi Access Point ID, AC connectivity, GPS location, and the like. In some cases, there may be a time delay between the time the mobile unit begins to travel and the time to the inference module 205 determines that the mobile unit is traveling.
- Transitions from YES to NO can be based either on the time spent in a cell or the occurrence of an oscillation pattern, as well as the duration of the oscillation pattern.
- the traveling state may transition from YES to NO if the mobile unit spends more than Tl minutes in the same cell.
- the value of Tl may be based on an estimate of the probability that the mobile unit stays in the same cell even though the mobile unit is traveling.
- the value of Tl may be set by requiring that the probability
- Pr ⁇ time in cell > Tl while traveling ⁇ ⁇ ⁇ The probability distribution Pr ⁇ time in cell > t while traveling ⁇ may be approximated with ex ⁇ (-(t/ ⁇ ) ⁇ ⁇ ), i.e. the complementary cumulative
- CCDF distribution function of a Weibull distribution 400 as shown in Figure 4.
- the probability of correctness of this decision process mainly depends on the value of Tl, and the possibility that some (typically short) journeys may be classified as oscillation patterns, while some oscillation patterns may be classified as short journeys (depending on the configured maximum number of cells in oscillation patterns).
- the inference module 205 may also isolate separate journeys by detecting that the user started traveling and reached a destination. In one embodiment, the decision whether a
- the destination is reached or an intermediate stop is made may be based on a threshold T2 > Tl on time in cell, the list of favorite cells, and other information which is maintained by the inference module 205, as described above.
- a list of destination cells of previous journeys may be maintained that may also be used to make the decision. This list may or may not overlap with the list of favorite cells.
- the inference module 205 may isolate separate journeys in response to detecting transition of the traveling state from NO to YES (and/or YES to NO), as discussed above.
- the system 200 also includes a learning module 210 that may be used to determine (e.g. , learn) one or more journeys associated with the mobile unit.
- the inference module 205 forwards sequential time-stamped lists of location information, such as cell identifiers, which are associated with journeys of the mobile unit.
- the inference module 205 may only forward journeys of a minimal length to the learning module.
- the inference module 205 may forward journeys that include a number of location changes that exceeds a threshold number, at least in part to avoid possible confusion between oscillation patterns and journeys.
- the inference module 205 may forward journeys with a minimal number of location area codes and learning these location area code sequences.
- FIG. 5 conceptually illustrates a directed transition graph 500 representing seven journeys taken by a user between three locations: Home, Work, and Shop.
- each node in the directed transition graph represents a cell and a directed edge represents the transition from one cell to another.
- the nodes are numbered consecutively and the directed edges are labeled with the number of transitions that have occurred between the nodes connected by the edge.
- Table 1 shows cell transitions corresponding to the journeys depicted in Figure 5. '
- the learning module 210 may construct a model 215 of the user's journeys.
- the learning module 210 uses the data modeling part of universal data compaction algorithms to learn all the journeys made.
- the learning module 210 may implement the Prediction by Partial Match (PPM) algorithm, which is based on the idea that the previous k symbols, referred to as the finite
- context s of length k ⁇ D can be used to predict the next symbol.
- the context s of length k ⁇ D can be used to predict the next symbol.
- the model 215 is a prediction tree 215.
- the prediction tree 215 may maintain counters, as well as time stamps, which may be used to clean up the prediction tree 215 and improve prediction.
- the prediction tree 215 may also include well as other information that may be used to estimate estimated arrival times at the cells and/or to detect anomalies.
- the learning module 210 may form a prediction tree 215 based upon time-stamped location information corresponding to the journeys depicted in Figure 5 and Table 1.
- the next possible cell according to the graph in Figure 5 could be either 5, 9, or 11 , but the transition 3 ⁇ 4 ⁇ 11 never occurred in any of the 7 travels.
- the learning module 210 may not include the transition 3 ⁇ 4 ⁇ 11 in the prediction tree 215.
- This tree is created by parsing the cell transition sequence for each journey according to the PPM algorithm and building up the prediction tree.
- the nodes in this tree are labeled with cell IDs and the edges are labeled with counters that indicate the number of times that a segment has been traveled in the given context.
- the parsed sequence is: 1 ⁇ 2 (leading to 3), 2 ⁇ 3 (leading to 4), 3 ⁇ 4 (leading to 5), 4 ⁇ 5 (leading to 6), 5 ⁇ 6 (leading to 7), 6 ⁇ 7 (destination).
- the complete PPM prediction tree shown in Figure 6 contains all accumulated route segments of all journeys with a maximum length of 3 and the number of times a route segment was traveled.
- the route segment 1 ⁇ 2 ⁇ 3 is represented by the left most branch of the tree and has been traveled 3 times as indicated by the number between nodes 2 and 3 of the leftmost branch.
- the segment 3 ⁇ 4 ⁇ 5 has been traveled 2 times and the segment 3 ⁇ 4 ⁇ 9 has only been traveled once. Note that the sub segment 3 ⁇ 4 has been traveled 3 times as can been seen by the counter between node 3 and 4 in the third left branch.
- nodes contain counters indicating the number of journeys that visited the node.
- nodes may also contain time stamps to be used for cleaning up the tree or improving prediction and other information, such as total, minimum, maximum, mean, and/or standard deviations for time spent per cell, time of day, day of week for estimation of the estimated time of arrival (ETA) and anomaly detection.
- ETA estimated time of arrival
- the particular value of the depth of the PPM prediction tree may be selected based on a variety of factors. For example, a smaller value of D increases the probability to find routes that never have been traveled in reality. A smaller value of D may also result in a more compact representation of the user's model requiring less storage capacity.
- the PPM algorithm may address the zero-frequency problem (i.e. dealing with cell changes that have not occurred before) using an escape mechanism that can possibly be enhanced by using an exclusion mechanism.
- Techniques for implementing escape mechanisms and/or exclusion mechanisms in the PPM algorithm are known in the art of universal data compaction.
- the escape mechanism of PPM can be adopted and modified for one or more of the embodiments discussed above by setting an escape count to a very low value (inspired by the rich structure within the traveling patterns of individual users).
- no administration of neighboring cells needs to be maintained in the learning module 210.
- the learning module 210 may implement other algorithms.
- alternative lossless data compression algorithms may also be applied, e.g. the Lempel-Ziv 78 algorithm, which is a dictionary data compaction algorithm based on the idea that data contains many repeated strings.
- the learning module 210 could also maintain a graph representing all cell changes, but generally prediction at splitting points is much less accurate when the past is not taken into account as illustrated above in the explanation of Figure 5 and Table 1.
- the prediction model 215 may include journeys that have not taken place.
- the learning module 210 may store all journeys.
- the system 200 also includes a prediction module 220 that may use information provided by the inference module 205 and/or the prediction tree 215 to select routes to a given target or destination cell.
- the prediction module 220 may also determine a probability that each of the selected routes to the target cell is the route being taken by the mobile unit and/or a probability that a journey will reach the target cell.
- the prediction module 220 may also determine the possible destination or target cells that correspond to a particular set of locations visited during a current journey, as well as a probability that the current journey ends at each of the possible destination or target cells. Results from the prediction module 220 may be provided to one or more applications 225.
- the nodes in the prediction tree may contain counters and other information, such as the temporal information described above.
- the prediction module 220 may therefore also determine or predict estimated arrival times for each of the nodes in the tree, including the destination nodes.
- the estimated arrival times may be predicted based on a minimum time spent in each cell, a maximum time spent in each cell, a mean time spent in each cell, and the like.
- the prediction module 220 may also take into account information such as total number of times this cell was visited, the last time this cell was visited, and the like.
- the estimated arrival times may be expressed as a range of possible arrival times. For example, a relatively wide range of estimated arrival times may be determined using the earliest time a mobile unit has entered the cell and the latest time the mobile unit has left the cell. For another example, a relatively narrow range of estimated arrival times may be determined using the latest time a mobile unit has entered the cell and the earliest time the mobile unit has left the cell.
- the prediction module 220 may also define one or more anomalies that are associated with the cells and/or the routes that include the cells. For example, the prediction module 220 may define an anomaly when the time spent in the cell by a mobile unit exceeds the mean time spent by mobile units in the cell by more than three standard deviations. For another example, the prediction module 220 may identify an anomaly if a particular cell was previously visited only on weekdays, but the mobile unit visits the cell on a weekend.
- Figure 7 conceptually illustrates one exemplary embodiment of a method 700 for finding or selecting routes to a given target cell.
- the method 700 is used to select routes to a given target cell using information included in a prediction tree, such as the prediction tree 215 shown in Figure 2 in the prediction tree shown in Figure 6.
- a prediction tree such as the prediction tree 215 shown in Figure 2 in the prediction tree shown in Figure 6.
- persons of ordinary skill in the art having benefit of the present disclosure should appreciate that the present invention is not limited to the specific embodiment shown in Figure 7.
- other methods may be used to select routes to a given target cell using information stored in other forms, such as the other types of models discussed above.
- the method 700 begins at step 0 and uses the following data structures and variables.
- the method 700 may have access to a stack of tree nodes, such as may be determined using a prediction tree. Nodes can be pushed on the stack and popped from the stack.
- the method 700 also uses a current path, which includes a sequence of tree nodes that indicate a possible route to the destination and a path list that includes a list of paths that lead to the destination.
- the method 700 may also determine or access a current node, which is a temporarily node variable used to iterate through the tree, a start node, and an end node.
- the stack, current path and path list are cleared at step 1 , the end node variable is set to the desired destination at step 2, the start node variable is set the desired start point at step 3, and the current node variable is initialized to the start node at step 4.
- the method 700 may then determine (at step 5) whether the current node is equal to the end node. If the current node is not equal to the end node, then the method 700 may determine (at step 6) whether the current node is a final node or has already been used as a current node in a previous iteration of the method 700.
- a final node is defined herein as a node in the prediction tree that has no children and is at a tree level that is less then the maximum tree depth. If the current node is not the final node and has not already been used as a current node in a previous iteration, and the method 700 determines (at step 7) whether the current node has any children.
- the current node may be set (at step 15) to an equivalent node.
- the equivalent node is found by using the list of ancestors of the current node, with the exception of the oldest ancestor, to traverse the prediction tree down from its root, using the sequence of ancestors (starting with the next oldest ancestor), until the node with the cell number of the current cell is encountered. The equivalent node becomes the current node. If the current node has children, then the method 700 determines (at step 8) whether the current node has multiple children.
- the method 700 pushes (at step 16) the current node to the stack.
- the current node may be remembered by pushing it on the stack data structure. At this step additional criteria can be taken into account to exclude particular branches. Otherwise, the current node is added (at step 9) to the current path and the probability of that this step is the next step in the route may be calculated (at step 9), as discussed in detail below.
- the current node is set (at step 10) to the next child of the current node. The next child is defined herein as the first child node that has not already been used as a current node in a previous iteration. The method 700 then returns to step 5.
- the method 700 determines (at step 11) that a path from the start node to the end node has been found and the current path is added (at step 11) to the path list data structure.
- the method 700 determines (at step 12) whether the stack is empty. If the stack holds other nodes, then the top node may be popped (at step 13) from the stack and the current node variable may be assigned (at step 13) to the next child of this node.
- the current path is reduced (at step 14) by finding the position of the current node in the current path and removing all nodes following this position.
- the method 700 then returns to step 5. If the stack is empty, the method 700 terminates (at step 17) and the path list data structure holds all discovered paths from the start node to the end node.
- Figure 8 conceptually illustrates one exemplary embodiment of a search through a prediction tree 800 and Figure 9 conceptually illustrates one exemplary embodiment of a collection of routes 900 to a target cell.
- a new journey has started from cell 1 (Home) and a change to cell 2 has been observed.
- a searching algorithm attempts to determine whether the destination cell is cell 7, the potential routes to destination cell 7, and the probability associated with each potential route to destination cell 7.
- Figures 8 and 9 illustrate how the algorithm searches through the prediction tree when selecting the transition from cell 1 to cell 2 as starting point and selecting cell 7 as the end point.
- the arrowed lines connect the successive current nodes after the first iteration until the end nodes (indicated in red) have been found.
- the dashed arrowed lines in Figure 8 show the change of the current node to the equivalent node, as described in step 15 of the method 7 shown in Figure 7. Arrival times at each of the nodes in the determined routes may then be determined using the time-stamped information associated with each of the nodes.
- the determined routes may also be dynamically modified when the mobile unit moves to different locations.
- the determined routes may be modified when the mobile unit transitions from one cell to another. For example, if the mobile unit is in cell 4 (as shown in Figure 5) the method depicted in Figures 7 and 8 may determine that the mobile unit may be associated with a route to the Shop or one of the routes to Work. However, if the mobile unit transitions from cell 4 to cell 9, the method depicted in Figures 7 and 8 may use the new route segment 3 ⁇ 4 ⁇ 9 to modify the determined routes to associate the mobile unit with the route to the Shop. Modification of the routes may occur in approximately real time.
- the probability that each route ends at the target or destination cell may also be computed by calculating the probability of each transition using the counters in the tree, and then multiplying these probabilities. In the illustrated embodiment, there is a probability of 1/3 that the current journey will terminate at cell 7 after following one of the two routes to cell 7 shown in Figure 9. Note that several transitions have probability 1. If an escape mechanism would be applied, these transitions would have a probability ⁇ 1.
- the illustrated embodiment may be varied to achieve different objectives or to reach these objectives in a different manner.
- the method 700 may exclude a transition from consideration if the transition has a very small probability (e.g., below a threshold).
- the method 700 may also exclude branches of the prediction tree if the last visit to a node on the corresponding branch was a relatively long time ago, e.g., beyond a time threshold. These transitions and/or branches may also be excluded when determining the probability of a transition. In other words, if a branch is excluded its count may or may not be reset to 0 for prediction purposes.
- the techniques described herein may also be modified to determine all possible destinations and corresponding probabilities based on the cells that have been visited in the current journey.
- the method of 700 may be modified so that a particular destination or target cell is not defined and instead all routes to all possible end points are searched and found.
- step 2 may be omitted from the method 700
- step 5 may be modified so that the method 700 determines whether the current node is a final node
- step 6 may be omitted.
- step 17 terminates with a path list containing all paths to all possible final nodes that can be reached from the given start point.
- the probabilities of the destinations can be computed as discussed above.
- the techniques described herein may further be modified so that cell selection for mobile units that are currently involved in an active call session may be different than cell selection while the mobile unit is in idle mode. Moreover, the techniques may be implemented so that journeys and/or routes may be learned and/or identified even if mobile units are temporarily disconnected from the network because of loss of signal.
- the system may also adapt to changes made to the cellular network (e.g., when new base stations are added). For example, the learning module and the prediction module may be configured to adapt to the new configuration of the cellular network. Similarly, the system may be configured to adapt to changes in the user's pattern (e.g., when the user has moved to another city or changed jobs).
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
The present invention provides a method of dynamic route prediction. The method may include determining at least one current route associated with a mobile unit in response to determining that the mobile unit has begun a current journey. Each current route is determined based on at least one location visited by the mobile unit during the current journey.
Description
DYNAMIC ROUTE PREDICTION BASED ON TRAVEL PATTERNS OF MOBILE
UNITS
BACKGROUND OF THE INVENTION
1. FIELD OF THE INVENTION
This invention relates generally to communication systems, and, more particularly, to wireless communication systems.
2. DESCRIPTION OF THE RELATED ART
The coverage area of a wireless communication system is typically divided into a number of cells, which may be grouped into one or more networks. Mobile units located in each cell may access the wireless communications system by establishing a wireless communication link, often referred to as an air interface, with a base station associated with the cell. The mobile units may include devices such as mobile telephones, personal data assistants, smart phones, Global Positioning System devices, wireless network interface cards, desktop or laptop computers, and the like. Mobile units may initiate a communication session with a base station by providing a signal on an access channel to an antenna associated with a sector of the cell served by the base station. The communication session may be idle or active. For example, an idle mobile unit may maintain a communication session with the network as it roams through the network. When the mobile unit is active, a separate traffic channel may be established so that the mobile unit and the base station may exchange messages over the air interface using the traffic channel.
Almost by definition, mobile units do not typically remain connected to the same base station or antenna for the duration of every communication session. To the contrary, mobile
units may frequently change base stations, e.g., in response to detecting another antenna or base station that provides a higher signal quality. For example, the user of a mobile unit may be moving and therefore may pass from a cell served by a first base station into a cell served by a second base station. The mobile unit may therefore be handed over from the first base station to the second base station. Similarly, the mobile unit may move between sectors served by different antennas associated with a single base station and may therefore' be handed over from one antenna to another. The mobile unit does not, however, have to be moving to be handed off between antennas and/or base stations. For example, changes in environmental conditions may result in a different antenna and/or base station providing superior signal quality to a stationary mobile unit, which may result in the mobile unit being handed over to the antenna and/or base station that provides a superior signal quality.
Figure 1 conceptually illustrates one exemplary embodiment of a conventional wireless communication system 100. The wireless communication system 100 includes a plurality of base stations (BS) that includes three or more antennas (not shown) for providing wireless connectivity to sectors 105 in cells 110. In the interest of clarity, only one sector 105 and one cell 110 are indicated by numerals in Figure 1. The sectors 105 may also be indicated by identifying numbers, such as the sectors 18181, 54521, 21002, etc. For example, in Global System for Mobile communication (GSM) networks, each sector 105 has a unique identity formed by concatenating a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a cell ID (CID).
A mobile unit (not shown in Figure 1) may connect to the wireless communication system 100 using one or more antennas associated with one or more of the base stations. The
mobile unit may remain stationary or may roam throughout the wireless communication system 100. For example, a stationary mobile unit at a fixed location 1 may be connected to cell 54523 for a relatively long time. However, a stationary mobile unit at a fixed location 2 that is served by overlapping sectors 18181 and 21002 may alternately be connected to cell 18181 or 21002. The oscillation patterns between 2 or more cells (e.g., cells or sectors 18181 or 21002) at the same physical location may change from day to day and a significant percentage of the cell changes may occur while the mobile unit is not moving. For another example, a roaming mobile unit may be traveling a route 3 and therefore may successively be connected to cells 54523-*54521-*21001-*21000 during the journey. However, another journey along the same physical path may result in different sequences of cell IDs. For example, a mobile unit traveling the same route 3 under slightly different environmental conditions may be connected to cells 54523➨ 18181 ➨ 54521 ➨21001 ➨21000 during the journey.
The wireless communication system 100 may provide one or more location-based services and therefore the wireless communication system 100 may attempt to determine and/or predict locations of mobile units within the system 100. For example, a wireless communication system 100 may attempt to predict the next location of a mobile unit based upon the current location of the mobile unit. Conventional algorithms for predicting the next location of the mobile unit typically assume that the mobile unit is being used by a user that follows predictable repeating routines, schedules, and/or habits.
Ashbrook and Starner ("Learning Significant Locations and Predicting User Movement with GPS," Proceedings of the 6th International Symposium on Wearable
Computers, IEEE 2002, referred to hereinafter as Ashbrook) describe determining a plurality of places using time gaps in GPS data that indicate that a user has stopped moving. The places may be clustered into locations that include all the places within a selected radius of a selected location. A second-order Markov model may then be constructed using the collected data to predict the probability that the user will move between any two locations. However, Ashbrook does not describe updating the model during the journeys, only after one or more journeys have been completed and the associated data has been collected. The technique described by Ashbrook is also limited to identifying final destinations and not intermediate locations along the route. However, Ashbrook does not associate the places or locations within a particular cell or sector. Moreover, the technique described by Ashbrook does not incorporate temporal information and therefore cannot predict arrival times at either the places or the locations.
Bhattacharya and Das ("LeZi-Update: An Information Theoretic Approach to Track Mobile Users in PCS Networks," Proceedings of the Fifth Annual ACM/IEEE International Conference on Mobile Computing and Networking, Seattle, August 17-19, 1999, referred to hereinafter as Bhattacharya) describe techniques for determining mobility models based on movement histories of mobile units within a service area. The mobility model is a probabilistic sequence of locations associated with the mobile unit that is assumed to reflect patterns in the life of the user of the mobile unit. Location information is collected after a predetermined time period and if the mobile unit does not move, then the locations may be repeated. The mobility model described by Bhattacharya may be used to determine likely locations for paging the mobile unit. However, the tree depth of the model is not predetermined and may become quite large in some cases, which may degrade the
convergence properties and predictive power of the model. Large trees also require significant storage space. Furthermore, the techniques described by Bhattacharya are not used to predict final destinations of mobile units based on the mobility models and make no prediction of estimated arrival times associated with the mobile unit and cells in the mobility model.
Laasonen, et al. ("Adaptive On-Device Location Recognition," pages 287-304, PERVASIVE 2004, referred to hereinafter as Laasonen) describes techniques for identifying locations and routes using cellular network data. Important locations called bases, and routes between successive bases, can be identified using a user's location data. Laasonen describes determining target or destination bases based upon the routes. However, Laasonen does not implement the modeling part of a data compaction algorithm to learn travel patterns and predict the next cell (or base station) and beyond. Furthermore, the techniques described by Laasonen make no prediction of estimated arrival times associated with any of the bases and, in particular, Laasonen does not predict arrival times associated with the targeted bases.
SUMMARY OF THE INVENTION
The present invention is directed to addressing the effects of one or more of the problems set forth above. The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an exhaustive overview of the invention. It is not intended to identify key or critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is discussed later.
In one embodiment of the present invention, a method is provided for dynamic route prediction. The method may include determining at least one current route associated with a mobile unit in response to determining that the mobile unit has begun a current journey. Each current route is determined based on at least one location visited by the mobile unit during the current journey.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention may be understood by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements, and in which:
Figure 1 conceptually illustrates one exemplary embodiment of a conventional wireless communication system;
Figure 2 conceptually illustrates one exemplary embodiment of a system for learning and/or predicting traveling patterns of mobile units in a wireless communication system, in accordance with the present invention;
Figure 3 conceptually illustrates one exemplary embodiment of the wireless communication system, in accordance with the present invention;
Figure 4 conceptually illustrates an exemplary embodiment of a probability distribution, in accordance with the present invention;
Figure 5 conceptually illustrates a directed transition graph representing seven journeys taken by a user between three locations, in accordance with the present invention;
Figure 6 shows a prediction tree for D = 2 of depth D+l=3 trained with seven journeys depicted in Figure 5, in accordance with the present invention;
Figure 7 conceptually illustrates one exemplary embodiment of a method for finding or selecting routes to a given target cell, in accordance with the present invention;
Figure 8 conceptually illustrates one exemplary embodiment of a search through a prediction tree, in accordance with the present invention; and
Figure 9 conceptually illustrates one exemplary embodiment of a collection of routes to a selected target cell, in accordance with the present invention.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions should be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.
Portions of the present invention and corresponding detailed description are presented in terms of software, or algorithms and symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the ones by which those of ordinary skill in the art effectively convey the substance of their work to others of ordinary skill in the art. An algorithm, as the term is used here, and as it is used generally, is conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of optical, electrical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied
to these quantities. Unless specifically stated otherwise, or as is apparent from the discussion, terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical, electronic quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Note also that the software implemented aspects of the invention are typically encoded on some form of program storage medium or implemented over some type of transmission medium. The program storage medium may be magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or "CD ROM"), and may be read only or random access. Similarly, the transmission medium may be twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The invention is not limited by these aspects of any given implementation.
The present invention will now be described with reference to the attached figures. Various structures, systems and devices are schematically depicted in the drawings for purposes of explanation only and so as to not obscure the present invention with details that are well known to those skilled in the art. Nevertheless, the attached drawings are included to describe and explain illustrative examples of the present invention. The words and phrases used herein should be understood and interpreted to have a meaning consistent with the understanding of those words and phrases by those skilled in the relevant art. No special definition of a term or phrase, i.e., a definition that is different from the ordinary and custom-
ary meaning as understood by those skilled in the art, is intended to be implied by consistent usage of the term or phrase herein. To the extent that a term or phrase is intended to have a special meaning, i. e. , a meaning other than that understood by skilled artisans, such a special definition will be expressly set forth in the specification in a definitional manner that directly and unequivocally provides the special definition for the term or phrase.
Figure 2 conceptually illustrates one exemplary embodiment of a system 200 for learning and/or predicting traveling patterns of mobile units in a wireless communication system. In the illustrated embodiment, the system 200 receives input in the form of a time- stamped sequence of identifiers for a mobile unit (not shown). For example, the identifiers may be cell identifiers. However, persons of ordinary skill in the art having benefit of the present disclosure should appreciate that the input is not limited to the time-stamped sequence of cell identifiers. In alternative embodiments, other information may be used instead of, or in addition to, the time-stamped sequence of cell identifiers. For example, the input may also include one or more base station identifiers, location area codes, mobile country codes, mobile network codes, identifiers indicative of one or more global positioning system coordinates, identifiers indicative of one or more regions of a map, and the like. Furthermore, the other input may or may not be time-stamped.
The identifiers may be accessed after the mobile unit is attached to the network. In some embodiments, the mobile unit may include a Subscriber Identity Module (SIM) card (e.g., if the network is a GSM/GPRS system) or User SIM card (e.g., if the network is a UMTS system). Cell identifiers may be obtained after the SIM/USIM cards are attached to the network. For example, the network may authenticate the mobile unit (or corresponding
SIM/USIM card) before the mobile unit is allowed to attach and obtain the cell identifier. However, in some cases the identifiers may be accessed without attaching to the network. For example, WiFi Access Point MAC addresses and/or SSIDs can be detected without attaching. Global Position System (GPS) devices can also access location information without necessarily attaching to a network. In various alternative embodiments, the identifier may be extracted either by the mobile unit or by another entity or entities within the network infrastructure. The techniques described herein may therefore be implemented on the mobile unit, within the network infrastructure, or in some combination thereof. For example, the mobile unit could gather information and send it to a trusted point where information from multiple users is processed. These different deployment options may have different impacts on user privacy. A mobile-unit-only solution may give the end user more control of the information learned and predicted for this user, while a network-infrastructure-only solution may require user approval and enforcement of applicable privacy law.
The time-stamped sequence of cell identifiers (or other location information) may reflect one or more journeys taken by the mobile unit. As used herein and in accordance with usage in the art, the term "journey" will be understood to refer to the physical movement of a mobile unit from a current location to a destination location. For example, a journey may be from home to work, from cell 1 to cell 7, or between any other locations. Journeys may include two or more destination locations. For example, a journey may be from home to school to the store and back home. Each journey will result in the mobile unit passing through (or being associated with) a sequence of cells, base stations, or other locations as it travels from a current location to a destination location. The sequence of cells, base stations,
or other locations associated with the mobile unit during a journey will be referred to hereinafter as a "route."
Journeys may be along one or more routes. For example, a journey along a road from the user's home to work may correspond to a route that includes a cell that provides coverage to the home of the user of the mobile unit, a sequence of cells that lies along the path the user takes from home to work, and a cell that provides coverage to the user's workplace. For another example, a journey along roads leading from the user's home to school, from the school to the store, and the returning from the store to home may correspond to a route that includes the cell that provides coverage to the user's home, a sequence of cells that lies along a path taken by the user from home to school, the sequence of cells that lies along the path taken by the user from school to the store, and a sequence of cells that lies along a path taken by the user from the store to home.
Journeys are often repeated numerous times and so multiple journeys may be taken along a single route. Thus, the journeys taken by a mobile unit may be used to determine one or more routes associated with the mobile unit. As an example of different routes, a user may take a first road from home to work when traffic is light and a second road when traffic is heavy. However, persons of ordinary skill in the art having benefit of the present disclosure should appreciate that the same journey may not always include precisely the same sequence of cells. For example, the user may take a slightly different path for different iterations of the same journey. Environmental conditions or other factors may also result in different cells or sectors being assigned to the mobile unit during different journeys along a route. These factors may be accounted for when determining routes based on journeys.
The input may be provided to an inference module 205 in the system 200. In various alternative embodiments, the inference module 205 may perform a number of functions including identifying and/or maintaining a list of favorite cells visited by the mobile unit, inferring whether the mobile unit is traveling or not, isolating separate journeys taken by the mobile unit from the input sequence and communicating them to other modules, and the like. For example, the inference module 205 may use the time-stamped input sequence to compute the total time spent in each cell by the mobile unit, a minimum duration of visits to each cell by the mobile unit, a maximum duration of visits to each cell by the mobile units, a mean of the durations of the visits to each cell by the mobile unit, a standard deviation of the durations of visits to each cell, and the like. The inference module 205 may also store a time stamp indicating the last time each cell was visited by the mobile unit. The inference module 205 may also maintain other information such as the number of times each cell was visited and the number of neighboring cells from each cell visited.
Based on the input information, the inference module 205 may determine and/or maintain a list of "favorite cells". For example, the inference module 205 may include cells in the list of favorite cells if the mean duration of the visits to the cell exceeds some threshold value, indicating that the user is likely to stay in the cell for a relatively large amount of time. However, any criterion may be used to select cells for the list of favorite cells. Furthermore, cells may also be removed from the list of favorite cells if the user no longer visits the cells on a regular basis or spends a sufficient amount of time in the cells. In one embodiment, the inference module 205 may use the favorite cell when performing other tasks, such as determining whether the user is traveling and/or isolating separate journeys, as will be
discussed in detail below. The information maintained by the inference module may be used to derive "home," "work," and/or other relevant locations, possibly by taking into account other user information such as profile information, e.g. postal codes of the user's home address, or direct input from the user.
The inference module 205 may also determine whether the mobile unit is roaming, traveling, or otherwise moving. In one embodiment, the inference module 205 determines whether the mobile unit is traveling, e.g., the mobile unit has begun a journey, based on the input information including the time-stamped sequence of location identifiers. For example, if the mobile unit spends a relatively long time in a single cell, then the inference module 205 may use the non-occurrence of cell changes to infer or determine that the mobile unit is not traveling, e.g., the mobile unit has not begun a journey, especially if this cell is ranked high in the list of favorite cells. In contrast, the inference module 205 may use input information indicating the frequent occurrence of cell changes (excluding oscillation patterns) to infer or determine that the user is traveling. Oscillation patterns may also indicate that the mobile unit is not traveling.
Figure 3 conceptually illustrates one exemplary embodiment of a wireless communication system 300. In the illustrated embodiment, exemplary locations are shown that may be prone to creating oscillation patterns are indicated by the small circles. The numerals within the circles indicate the number of cells or sectors that may participate in the oscillation patterns. For example, oscillations may occur between 2-6 cells at different locations in an ideal honeycomb network. Locations that are particularly prone to oscillation patterns include regions where the coverage area of two or more cells overlap, regions near
the borders or edges of sectors, regions near the intersection of multiple sectors of a single cell, and the like.
Oscillation patterns are typically indicated by a pattern of switching between sectors or cells that may provide wireless connectivity to the mobile unit. Most oscillation patterns involve 2 cells, but patterns involving 3 or more cells may occur as well. When 3 or more cells are involved any order may occur. As an example, patterns involving 3 cells often includ ... ➨ 1 ➨2➨ 1➨ 3➨1 ➨ ... as a sub pattern, i.e. a dominant cell is alternatively superseded with one of two other cells, but also ... ➨1➨2➨3➨1➨2➨3➨... may occasionally occur. Oscillations may also occur between regions that are identified using GPS data. For example, if GPS coordinates are mapped to squares, a mobile unit can typically oscillate between up to four squares. Alternatively, if GPS coordinates are mapped to a honeycomb structure, a mobile unit can typically oscillate between up to 3 regions of the honeycomb structure.
Referring back to Figure 2, the inference module 205 may filter out the oscillation patterns. In one embodiment, the inference module 205 may implement a filtering algorithm that takes into account that cell changes take place between a small subset of 2-6 cells. The inference module 205 may also maintain a parameter called visit distance, which is defined in accordance with usage in the art as a number of cell changes between current and previous visits to each cell. For example, the visit distance for cell 1 in the pattern ... ➨ 1➨2➨1 ➨3 ➨1 ➨ ... is infinite (or some other large number) for the first visit to cell 1 and then 2 for the second and third visits to cell 1. A visit distance history that includes the previous values of the visit distances may also be created.
The visit distance and cell identifiers may be used to filter out oscillation patterns. In one embodiment, the start of an oscillation pattern may be identified if the visit distance associated with a cell equals 2, while the end of an oscillation pattern may be identified if it is determined that the upcoming cells are not part of the current oscillation pattern given the configured maximum number of cells in the oscillation pattern (typically 2-6). Exceptions may be made for special cases such as ... ➨2 r> 1 ➨ 2 ➨ ..., /. e. reaching and staying relatively long in destination cell 1 while arriving and leaving via cell 2. Note that in this case the time stamps are used to determine that a relativity long time was spent in cell 1 and during both visits a relatively short time was spent in cell 2. Although a visit distance of 2 is used to as a triggering event for the start of an oscillation pattern, persons of ordinary skill in the art having benefit of the present disclosure should appreciate that other events may also be used as a trigger for identifying oscillation patterns. For example, a triggering event may be used to distinguish an oscillation pattern from "traveling in rounds," as will be discussed in detail below.
The oscillation pattern may also be identified by using the visit distance history. In one embodiment, the visit distance history may indicate that the visit distance associated with the cell remained predominantly small for a period of time or after several location changes. For example, if a mobile unit has changed from one cell to another several times over a period of time, but the visit distance associated with the cell has remained less than a visit distance associated with an oscillation pattern, then it may be identified as part of the oscillation pattern. However, persons of ordinary skill in the art should appreciate that some of the visit distances in an oscillation pattern may be large. For example, if a cell occurs for
the first time ever for a user, the visit distance is infinite or some other preselected large value. For another example, the visit distance may be a relatively large value if a cell is encountered for the first time in an oscillation pattern. For yet another example, the visit distance may be large if the oscillation pattern is relatively long (e.g. 100 cell changes) and an associated cell only occurs at the beginning and at the end of the pattern. The cell transitions that are part of the oscillation pattern may therefore be filtered out.
The visit distance and its history can also be used to determine whether the mobile unit is "traveling back" or "traveling in rounds". For example, consider the sequence of identifiers l ➨2➨ 3➨ 4➨ 5➨ 6➨ 7➨ 6➨ 5➨4➨ 3➨2➨ l, possibly corresponding to a first journey from 1 to 7, followed by a second journey back from 7 to 1. For the transitions that may be part of the second journey, e.g. starting with 7➨ 6, the visit distances are 2, 4, 6, 8, 10, and 12, respectively. Thus, the visit distance increases by 2 for each transition in the second journey and this pattern corresponds to traveling back from 7 to 1. In practice, when traveling back, the sequence of identifiers may be slightly different (e.g. identifiers may be observed that were not encountered when traveling on the first, outbound, journey or some identifiers may not be observed that were encountered when traveling on the first journey), but nevertheless the trend of an increasing visit distance will be the same. As another example, consider the sequence of identifiers l ➨ 8➨ 9➨ 10➨ 11 ➨1➨ 8➨ 9 ➨10➨11➨ 1, possibly corresponding to one or two journeys traveling the same round twice, i.e. traveling in rounds. On the first transition 11➨ 1, the visit distance obtains a value of 5 and it remains 5 on every next transition. In practice, when traveling in rounds in this manner, the sequence of identifiers may be slightly different, but the trend will be the same. In one embodiment, the results of the techniques described above can be used to form indicators such as "traveling
back" or "traveling in rounds" and associate these indicators with the corresponding journeys or routes.
In one embodiment, the inference module 205 uses the input time-stamped information to determine a traveling state of the mobile unit. In the NO state, the mobile unit is not traveling and in the YES state the mobile unit is traveling. Transitions from NO to YES can be based on the occurrence frequency of cell changes, excluding oscillation patterns. The list of favorite cells may also be taken into account. For example, if the occurrence frequency exceeds a predetermined threshold, then the inference module 205 may determine that the mobile unit is traveling and therefore the traveling state may transition to YES. In some embodiments, additional information may also be used to determine whether a journey has stopped or started, e.g. home WiFi Access Point ID, AC connectivity, GPS location, and the like. In some cases, there may be a time delay between the time the mobile unit begins to travel and the time to the inference module 205 determines that the mobile unit is traveling.
Transitions from YES to NO can be based either on the time spent in a cell or the occurrence of an oscillation pattern, as well as the duration of the oscillation pattern. For example, the traveling state may transition from YES to NO if the mobile unit spends more than Tl minutes in the same cell. In one embodiment, the value of Tl may be based on an estimate of the probability that the mobile unit stays in the same cell even though the mobile unit is traveling. For example, the value of Tl may be set by requiring that the probability
Pr {time in cell > Tl while traveling} < γ. The probability distribution Pr {time in cell > t
while traveling} may be approximated with exρ(-(t/β)Λα), i.e. the complementary cumulative
distribution function (CCDF) of a Weibull distribution 400 as shown in Figure 4. The probability of correctness of this decision process mainly depends on the value of Tl, and the possibility that some (typically short) journeys may be classified as oscillation patterns, while some oscillation patterns may be classified as short journeys (depending on the configured maximum number of cells in oscillation patterns).
The inference module 205 may also isolate separate journeys by detecting that the user started traveling and reached a destination. In one embodiment, the decision whether a
destination is reached or an intermediate stop is made may be based on a threshold T2 > Tl on time in cell, the list of favorite cells, and other information which is maintained by the inference module 205, as described above. A list of destination cells of previous journeys may be maintained that may also be used to make the decision. This list may or may not overlap with the list of favorite cells. In one embodiment, the inference module 205 may isolate separate journeys in response to detecting transition of the traveling state from NO to YES (and/or YES to NO), as discussed above.
The system 200 also includes a learning module 210 that may be used to determine (e.g. , learn) one or more journeys associated with the mobile unit. The inference module 205 forwards sequential time-stamped lists of location information, such as cell identifiers, which are associated with journeys of the mobile unit. In one embodiment, the inference module 205 may only forward journeys of a minimal length to the learning module. For example, the inference module 205 may forward journeys that include a number of location changes that
exceeds a threshold number, at least in part to avoid possible confusion between oscillation patterns and journeys. For another example, such as may be implemented in a GSM system, the inference module 205 may forward journeys with a minimal number of location area codes and learning these location area code sequences.
Figure 5 conceptually illustrates a directed transition graph 500 representing seven journeys taken by a user between three locations: Home, Work, and Shop. In the illustrated embodiment, each node in the directed transition graph represents a cell and a directed edge represents the transition from one cell to another. The nodes are numbered consecutively and the directed edges are labeled with the number of transitions that have occurred between the nodes connected by the edge. Table 1 shows cell transitions corresponding to the journeys depicted in Figure 5. '
Table 1
Referring back to Figure 2, the learning module 210 may construct a model 215 of the user's journeys. In the illustrated embodiment, the learning module 210 uses the data modeling part of universal data compaction algorithms to learn all the journeys made. For example, the learning module 210 may implement the Prediction by Partial Match (PPM) algorithm, which is based on the idea that the previous k symbols, referred to as the finite
context s of length k <D, can be used to predict the next symbol. In this embodiment, the
model 215 is a prediction tree 215. The prediction tree 215 may maintain counters, as well as time stamps, which may be used to clean up the prediction tree 215 and improve prediction. The prediction tree 215 may also include well as other information that may be used to estimate estimated arrival times at the cells and/or to detect anomalies.
Referring now to Figures 2 and 5, the learning module 210 may form a prediction tree 215 based upon time-stamped location information corresponding to the journeys depicted in Figure 5 and Table 1. When the user is traveling according to 1 ➨ 2➨ 3 ➨4, the next possible cell according to the graph in Figure 5 could be either 5, 9, or 11 , but the transition 3 ➨ 4 ➨ 11 never occurred in any of the 7 travels. Thus, the learning module 210 may not include the transition 3➨ 4 ➨ 11 in the prediction tree 215.
Figure 6 shows the basic PPM prediction tree 600 for D = 2 of depth D+l=3 trained with all seven journeys depicted in Figure 5 and Table 1. This tree is created by parsing the cell transition sequence for each journey according to the PPM algorithm and building up the prediction tree. The nodes in this tree are labeled with cell IDs and the edges are labeled with counters that indicate the number of times that a segment has been traveled in the given
context. For journey 1, the parsed sequence is: 1→2 (leading to 3), 2→3 (leading to 4), 3→4 (leading to 5), 4→5 (leading to 6), 5→6 (leading to 7), 6→7 (destination). The complete PPM prediction tree shown in Figure 6 contains all accumulated route segments of all journeys with a maximum length of 3 and the number of times a route segment was traveled. For example, the route segment 1➨ 2➨ 3 is represented by the left most branch of the tree and has been traveled 3 times as indicated by the number between nodes 2 and 3 of the leftmost branch. The segment 3➨4➨ 5 has been traveled 2 times and the segment 3➨ 4➨ 9 has only been traveled once. Note that the sub segment 3 ➨4 has been traveled 3 times as can been seen by the counter between node 3 and 4 in the third left branch.
In the embodiment shown in Figure 6, nodes contain counters indicating the number of journeys that visited the node. However, in alternative embodiments, nodes may also contain time stamps to be used for cleaning up the tree or improving prediction and other information, such as total, minimum, maximum, mean, and/or standard deviations for time spent per cell, time of day, day of week for estimation of the estimated time of arrival (ETA) and anomaly detection. The particular value of the depth of the PPM prediction tree may be selected based on a variety of factors. For example, a smaller value of D increases the probability to find routes that never have been traveled in reality. A smaller value of D may also result in a more compact representation of the user's model requiring less storage capacity. Moreover, a smaller value of D may make it easier to deal with deviations in patterns caused by atmospheric conditions, users being in a call, or network errors when cells are temporarily unavailable.
Referring back to Figure 2, the PPM algorithm may address the zero-frequency problem (i.e. dealing with cell changes that have not occurred before) using an escape mechanism that can possibly be enhanced by using an exclusion mechanism. Techniques for implementing escape mechanisms and/or exclusion mechanisms in the PPM algorithm are known in the art of universal data compaction. However, in one embodiment, the escape mechanism of PPM can be adopted and modified for one or more of the embodiments discussed above by setting an escape count to a very low value (inspired by the rich structure within the traveling patterns of individual users). Furthermore, because of the escape mechanism, no administration of neighboring cells needs to be maintained in the learning module 210.
In other embodiments, the learning module 210 may implement other algorithms. For example, alternative lossless data compression algorithms may also be applied, e.g. the Lempel-Ziv 78 algorithm, which is a dictionary data compaction algorithm based on the idea that data contains many repeated strings. In other alternative embodiments, the learning module 210 could also maintain a graph representing all cell changes, but generally prediction at splitting points is much less accurate when the past is not taken into account as illustrated above in the explanation of Figure 5 and Table 1. Moreover, in this approach the prediction model 215 may include journeys that have not taken place. Alternatively, the learning module 210 may store all journeys.
The system 200 also includes a prediction module 220 that may use information provided by the inference module 205 and/or the prediction tree 215 to select routes to a given target or destination cell. The prediction module 220 may also determine a probability
that each of the selected routes to the target cell is the route being taken by the mobile unit and/or a probability that a journey will reach the target cell. The prediction module 220 may also determine the possible destination or target cells that correspond to a particular set of locations visited during a current journey, as well as a probability that the current journey ends at each of the possible destination or target cells. Results from the prediction module 220 may be provided to one or more applications 225.
The nodes in the prediction tree may contain counters and other information, such as the temporal information described above. The prediction module 220 may therefore also determine or predict estimated arrival times for each of the nodes in the tree, including the destination nodes. The estimated arrival times may be predicted based on a minimum time spent in each cell, a maximum time spent in each cell, a mean time spent in each cell, and the like. The prediction module 220 may also take into account information such as total number of times this cell was visited, the last time this cell was visited, and the like. In one embodiment, the estimated arrival times may be expressed as a range of possible arrival times. For example, a relatively wide range of estimated arrival times may be determined using the earliest time a mobile unit has entered the cell and the latest time the mobile unit has left the cell. For another example, a relatively narrow range of estimated arrival times may be determined using the latest time a mobile unit has entered the cell and the earliest time the mobile unit has left the cell.
In one embodiment, the prediction module 220 may also define one or more anomalies that are associated with the cells and/or the routes that include the cells. For example, the prediction module 220 may define an anomaly when the time spent in the cell
by a mobile unit exceeds the mean time spent by mobile units in the cell by more than three standard deviations. For another example, the prediction module 220 may identify an anomaly if a particular cell was previously visited only on weekdays, but the mobile unit visits the cell on a weekend.
Figure 7 conceptually illustrates one exemplary embodiment of a method 700 for finding or selecting routes to a given target cell. In the illustrated embodiment, the method 700 is used to select routes to a given target cell using information included in a prediction tree, such as the prediction tree 215 shown in Figure 2 in the prediction tree shown in Figure 6. However, persons of ordinary skill in the art having benefit of the present disclosure should appreciate that the present invention is not limited to the specific embodiment shown in Figure 7. In alternative embodiments, other methods may be used to select routes to a given target cell using information stored in other forms, such as the other types of models discussed above.
The method 700 begins at step 0 and uses the following data structures and variables. The method 700 may have access to a stack of tree nodes, such as may be determined using a prediction tree. Nodes can be pushed on the stack and popped from the stack. The method 700 also uses a current path, which includes a sequence of tree nodes that indicate a possible route to the destination and a path list that includes a list of paths that lead to the destination. The method 700 may also determine or access a current node, which is a temporarily node variable used to iterate through the tree, a start node, and an end node. The stack, current path and path list are cleared at step 1 , the end node variable is set to the desired destination
at step 2, the start node variable is set the desired start point at step 3, and the current node variable is initialized to the start node at step 4.
The method 700 may then determine (at step 5) whether the current node is equal to the end node. If the current node is not equal to the end node, then the method 700 may determine (at step 6) whether the current node is a final node or has already been used as a current node in a previous iteration of the method 700. A final node is defined herein as a node in the prediction tree that has no children and is at a tree level that is less then the maximum tree depth. If the current node is not the final node and has not already been used as a current node in a previous iteration, and the method 700 determines (at step 7) whether the current node has any children.
If the current node does not have children, then the current node may be set (at step 15) to an equivalent node. The equivalent node is found by using the list of ancestors of the current node, with the exception of the oldest ancestor, to traverse the prediction tree down from its root, using the sequence of ancestors (starting with the next oldest ancestor), until the node with the cell number of the current cell is encountered. The equivalent node becomes the current node. If the current node has children, then the method 700 determines (at step 8) whether the current node has multiple children.
If there is more than one child, then the method 700 pushes (at step 16) the current node to the stack. The current node may be remembered by pushing it on the stack data structure. At this step additional criteria can be taken into account to exclude particular branches. Otherwise, the current node is added (at step 9) to the current path and the
probability of that this step is the next step in the route may be calculated (at step 9), as discussed in detail below. The current node is set (at step 10) to the next child of the current node. The next child is defined herein as the first child node that has not already been used as a current node in a previous iteration. The method 700 then returns to step 5.
If the current node is equal to the end node, then the method 700 determines (at step 11) that a path from the start node to the end node has been found and the current path is added (at step 11) to the path list data structure. The method 700 determines (at step 12) whether the stack is empty. If the stack holds other nodes, then the top node may be popped (at step 13) from the stack and the current node variable may be assigned (at step 13) to the next child of this node. The current path is reduced (at step 14) by finding the position of the current node in the current path and removing all nodes following this position. The method 700 then returns to step 5. If the stack is empty, the method 700 terminates (at step 17) and the path list data structure holds all discovered paths from the start node to the end node.
Figure 8 conceptually illustrates one exemplary embodiment of a search through a prediction tree 800 and Figure 9 conceptually illustrates one exemplary embodiment of a collection of routes 900 to a target cell. In the embodiment illustrated in Figures 8 and 9, a new journey has started from cell 1 (Home) and a change to cell 2 has been observed. A searching algorithm then attempts to determine whether the destination cell is cell 7, the potential routes to destination cell 7, and the probability associated with each potential route to destination cell 7. Figures 8 and 9 illustrate how the algorithm searches through the prediction tree when selecting the transition from cell 1 to cell 2 as starting point and selecting cell 7 as the end point. The arrowed lines connect the successive current nodes after
the first iteration until the end nodes (indicated in red) have been found. The dashed arrowed lines in Figure 8 show the change of the current node to the equivalent node, as described in step 15 of the method 7 shown in Figure 7. Arrival times at each of the nodes in the determined routes may then be determined using the time-stamped information associated with each of the nodes.
The determined routes may also be dynamically modified when the mobile unit moves to different locations. In one embodiment, the determined routes may be modified when the mobile unit transitions from one cell to another. For example, if the mobile unit is in cell 4 (as shown in Figure 5) the method depicted in Figures 7 and 8 may determine that the mobile unit may be associated with a route to the Shop or one of the routes to Work. However, if the mobile unit transitions from cell 4 to cell 9, the method depicted in Figures 7 and 8 may use the new route segment 3➨ 4➨ 9 to modify the determined routes to associate the mobile unit with the route to the Shop. Modification of the routes may occur in approximately real time.
The probability that each route ends at the target or destination cell may also be computed by calculating the probability of each transition using the counters in the tree, and then multiplying these probabilities. In the illustrated embodiment, there is a probability of 1/3 that the current journey will terminate at cell 7 after following one of the two routes to cell 7 shown in Figure 9. Note that several transitions have probability 1. If an escape mechanism would be applied, these transitions would have a probability < 1. The total probability that a journey reaches the target cell may be computed by adding the probabilities
of all possible routes. In the illustrated embodiment, the total probability that the journey reaches cell 7 (Work) is 1/3 + 1/3 = 2/3.
Referring back to Figure 7, the illustrated embodiment may be varied to achieve different objectives or to reach these objectives in a different manner. For example, the method 700 may exclude a transition from consideration if the transition has a very small probability (e.g., below a threshold). The method 700 may also exclude branches of the prediction tree if the last visit to a node on the corresponding branch was a relatively long time ago, e.g., beyond a time threshold. These transitions and/or branches may also be excluded when determining the probability of a transition. In other words, if a branch is excluded its count may or may not be reset to 0 for prediction purposes.
The techniques described herein may also be modified to determine all possible destinations and corresponding probabilities based on the cells that have been visited in the current journey. In one embodiment, the method of 700 may be modified so that a particular destination or target cell is not defined and instead all routes to all possible end points are searched and found. For example, step 2 may be omitted from the method 700, step 5 may be modified so that the method 700 determines whether the current node is a final node, and step 6 may be omitted. With these adaptations step 17 terminates with a path list containing all paths to all possible final nodes that can be reached from the given start point. The probabilities of the destinations can be computed as discussed above.
The techniques described herein may further be modified so that cell selection for mobile units that are currently involved in an active call session may be different than cell
selection while the mobile unit is in idle mode. Moreover, the techniques may be implemented so that journeys and/or routes may be learned and/or identified even if mobile units are temporarily disconnected from the network because of loss of signal. The system may also adapt to changes made to the cellular network (e.g., when new base stations are added). For example, the learning module and the prediction module may be configured to adapt to the new configuration of the cellular network. Similarly, the system may be configured to adapt to changes in the user's pattern (e.g., when the user has moved to another city or changed jobs).
The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below.
Claims
1. A method, comprising: determining at least one current route associated with a mobile unit in response to determining that the mobile unit has begun a current journey, said at least one current route being determined based on at least one location visited by the mobile unit during the current journey.
2. The method of claim 1, wherein determining said at least one current route comprises selecting at least one prior route associated with the mobile unit, wherein selecting said at least one prior route comprises selecting said at least one prior route based on at least one time-stamped identifier associated with said at least one location visited by the mobile unit during the current journey.
3. The method of claim 2, comprising predicting at least one arrival time of the mobile unit at a location associated with said at least one prior route based on said at least one time- stamped identifier.
4. The method of claim 3, wherein predicting said at least one arrival time comprises predicting at least one arrival time of the mobile unit at a destination location associated with said at least one prior route.
5. The method of claim 4, comprising providing information indicative of said at least one arrival time.
6. The method of claim 2, wherein selecting said at least one prior route associated with the mobile unit comprises selecting at least one prior route traveled by the mobile unit during at least one previous journey by comparing information indicative of said at least one location visited during the current journey to information indicative of at least one location in the prior route.
7. The method of claim 6, comprising determining said at least one prior route based upon said at least one previous journey and forming a prediction tree associated with said at least one prior route based upon said at least one previous journey.
8. The method of claim 1, wherein determining said at least one current route comprises filtering oscillation patterns between at least two of the locations visited by the mobile unit during the current journey.
9. The method of claim 1, comprising determining that the mobile unit has begun the current journey.
10. The method of claim I5 wherein determining said at least one current route comprises modifying the determination of said at least one current route in response to the mobile unit being associated with information indicative of a new location.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06773203A EP2039197A1 (en) | 2006-06-14 | 2006-06-14 | Dynamic route prediction based on travel patterns of mobile units |
PCT/US2006/023232 WO2007145625A1 (en) | 2006-06-14 | 2006-06-14 | Dynamic route prediction based on travel patterns of mobile units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2006/023232 WO2007145625A1 (en) | 2006-06-14 | 2006-06-14 | Dynamic route prediction based on travel patterns of mobile units |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007145625A1 true WO2007145625A1 (en) | 2007-12-21 |
Family
ID=37722571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2006/023232 WO2007145625A1 (en) | 2006-06-14 | 2006-06-14 | Dynamic route prediction based on travel patterns of mobile units |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP2039197A1 (en) |
WO (1) | WO2007145625A1 (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015144B2 (en) | 2008-02-26 | 2011-09-06 | Microsoft Corporation | Learning transportation modes from raw GPS data |
WO2014123987A2 (en) * | 2013-02-06 | 2014-08-14 | Facebook, Inc. | Pattern labeling |
US8966121B2 (en) | 2008-03-03 | 2015-02-24 | Microsoft Corporation | Client-side management of domain name information |
US8972177B2 (en) | 2008-02-26 | 2015-03-03 | Microsoft Technology Licensing, Llc | System for logging life experiences using geographic cues |
US9009177B2 (en) | 2009-09-25 | 2015-04-14 | Microsoft Corporation | Recommending points of interests in a region |
US9020754B2 (en) | 2013-03-22 | 2015-04-28 | Here Global B.V. | Vehicle arrival prediction |
US9063226B2 (en) | 2009-01-14 | 2015-06-23 | Microsoft Technology Licensing, Llc | Detecting spatial outliers in a location entity dataset |
US9261376B2 (en) | 2010-02-24 | 2016-02-16 | Microsoft Technology Licensing, Llc | Route computation based on route-oriented vehicle trajectories |
US20160057691A1 (en) * | 2014-08-25 | 2016-02-25 | International Business Machines Corporation | System and method en-route wireless network access |
US20160112942A1 (en) * | 2014-10-21 | 2016-04-21 | Microsoft Corporation | Access Point Assisted Roaming |
US9536146B2 (en) | 2011-12-21 | 2017-01-03 | Microsoft Technology Licensing, Llc | Determine spatiotemporal causal interactions in data |
EP3121564A1 (en) * | 2015-07-21 | 2017-01-25 | Preh Car Connect GmbH | Method for determining a probable route by means of a navigation system |
US9593957B2 (en) | 2010-06-04 | 2017-03-14 | Microsoft Technology Licensing, Llc | Searching similar trajectories by locations |
US9754226B2 (en) | 2011-12-13 | 2017-09-05 | Microsoft Technology Licensing, Llc | Urban computing of route-oriented vehicles |
US9848293B2 (en) | 2011-02-23 | 2017-12-19 | Buddi Limited | Method and apparatus for defining a zone |
WO2018125686A3 (en) * | 2016-12-30 | 2018-08-09 | Intel Corporation | Methods and devices for radio communications |
US10288433B2 (en) | 2010-02-25 | 2019-05-14 | Microsoft Technology Licensing, Llc | Map-matching for low-sampling-rate GPS trajectories |
CN113865606A (en) * | 2017-11-23 | 2021-12-31 | 北京嘀嘀无限科技发展有限公司 | System and method for estimating time of arrival |
CN111985710B (en) * | 2020-08-18 | 2023-08-25 | 深圳诺地思维数字科技有限公司 | Bus passenger travel station prediction method, storage medium and server |
CN117295008A (en) * | 2023-11-24 | 2023-12-26 | 荣耀终端有限公司 | Information pushing method and device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5919246A (en) * | 1994-10-07 | 1999-07-06 | Mannesmann Aktiengesellschaft | Target input for navigation system |
US6615134B2 (en) * | 2000-05-25 | 2003-09-02 | Sony Corporation | Data communication system and method, and mobile body apparatus |
EP1551195A1 (en) * | 2002-10-10 | 2005-07-06 | Matsushita Electric Industrial Co., Ltd. | Information acquisition method, information providing method, and information acquisition device |
-
2006
- 2006-06-14 WO PCT/US2006/023232 patent/WO2007145625A1/en active Application Filing
- 2006-06-14 EP EP06773203A patent/EP2039197A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5919246A (en) * | 1994-10-07 | 1999-07-06 | Mannesmann Aktiengesellschaft | Target input for navigation system |
US6615134B2 (en) * | 2000-05-25 | 2003-09-02 | Sony Corporation | Data communication system and method, and mobile body apparatus |
EP1551195A1 (en) * | 2002-10-10 | 2005-07-06 | Matsushita Electric Industrial Co., Ltd. | Information acquisition method, information providing method, and information acquisition device |
Non-Patent Citations (1)
Title |
---|
KARI LAASONEN: "Clustering and Prediction of Mobile User Routes from Cellular Data", PKDD 2005, 2005, pages 569 - 576, XP019021321 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8315959B2 (en) | 2008-02-26 | 2012-11-20 | Microsoft Corporation | Learning transportation modes from raw GPS data |
US9683858B2 (en) | 2008-02-26 | 2017-06-20 | Microsoft Technology Licensing, Llc | Learning transportation modes from raw GPS data |
US8015144B2 (en) | 2008-02-26 | 2011-09-06 | Microsoft Corporation | Learning transportation modes from raw GPS data |
US8972177B2 (en) | 2008-02-26 | 2015-03-03 | Microsoft Technology Licensing, Llc | System for logging life experiences using geographic cues |
US8966121B2 (en) | 2008-03-03 | 2015-02-24 | Microsoft Corporation | Client-side management of domain name information |
US9063226B2 (en) | 2009-01-14 | 2015-06-23 | Microsoft Technology Licensing, Llc | Detecting spatial outliers in a location entity dataset |
US9009177B2 (en) | 2009-09-25 | 2015-04-14 | Microsoft Corporation | Recommending points of interests in a region |
US9501577B2 (en) | 2009-09-25 | 2016-11-22 | Microsoft Technology Licensing, Llc | Recommending points of interests in a region |
US9261376B2 (en) | 2010-02-24 | 2016-02-16 | Microsoft Technology Licensing, Llc | Route computation based on route-oriented vehicle trajectories |
US10288433B2 (en) | 2010-02-25 | 2019-05-14 | Microsoft Technology Licensing, Llc | Map-matching for low-sampling-rate GPS trajectories |
US9593957B2 (en) | 2010-06-04 | 2017-03-14 | Microsoft Technology Licensing, Llc | Searching similar trajectories by locations |
US10571288B2 (en) | 2010-06-04 | 2020-02-25 | Microsoft Technology Licensing, Llc | Searching similar trajectories by locations |
US9848293B2 (en) | 2011-02-23 | 2017-12-19 | Buddi Limited | Method and apparatus for defining a zone |
US9754226B2 (en) | 2011-12-13 | 2017-09-05 | Microsoft Technology Licensing, Llc | Urban computing of route-oriented vehicles |
US9536146B2 (en) | 2011-12-21 | 2017-01-03 | Microsoft Technology Licensing, Llc | Determine spatiotemporal causal interactions in data |
CN105103573A (en) * | 2013-02-06 | 2015-11-25 | 脸谱公司 | Pattern labeling |
CN105103573B (en) * | 2013-02-06 | 2019-01-11 | 脸谱公司 | A kind of position tracking method and equipment |
US9411897B2 (en) | 2013-02-06 | 2016-08-09 | Facebook, Inc. | Pattern labeling |
WO2014123987A3 (en) * | 2013-02-06 | 2014-10-16 | Facebook, Inc. | Pattern labeling |
WO2014123987A2 (en) * | 2013-02-06 | 2014-08-14 | Facebook, Inc. | Pattern labeling |
US9020754B2 (en) | 2013-03-22 | 2015-04-28 | Here Global B.V. | Vehicle arrival prediction |
US9622142B2 (en) | 2014-08-25 | 2017-04-11 | International Business Machines Corporation | System and method en-route wireless network access |
US20160057691A1 (en) * | 2014-08-25 | 2016-02-25 | International Business Machines Corporation | System and method en-route wireless network access |
EP3210415A1 (en) * | 2014-10-21 | 2017-08-30 | Microsoft Technology Licensing, LLC | Access point assisted roaming |
CN107079360A (en) * | 2014-10-21 | 2017-08-18 | 微软技术许可有限责任公司 | Access point auxiliary roaming |
US10667207B2 (en) * | 2014-10-21 | 2020-05-26 | Microsoft Technology Licensing, Llc | Access point assisted roaming |
US20160112942A1 (en) * | 2014-10-21 | 2016-04-21 | Microsoft Corporation | Access Point Assisted Roaming |
EP3121564A1 (en) * | 2015-07-21 | 2017-01-25 | Preh Car Connect GmbH | Method for determining a probable route by means of a navigation system |
WO2018125686A3 (en) * | 2016-12-30 | 2018-08-09 | Intel Corporation | Methods and devices for radio communications |
US11452032B2 (en) | 2016-12-30 | 2022-09-20 | Intel Corporation | Methods and devices for radio communications |
US11653292B2 (en) | 2016-12-30 | 2023-05-16 | Intel Corporation | Methods and devices for radio communications |
CN113865606A (en) * | 2017-11-23 | 2021-12-31 | 北京嘀嘀无限科技发展有限公司 | System and method for estimating time of arrival |
CN111985710B (en) * | 2020-08-18 | 2023-08-25 | 深圳诺地思维数字科技有限公司 | Bus passenger travel station prediction method, storage medium and server |
CN117295008A (en) * | 2023-11-24 | 2023-12-26 | 荣耀终端有限公司 | Information pushing method and device |
CN117295008B (en) * | 2023-11-24 | 2024-04-05 | 荣耀终端有限公司 | Information pushing method and device |
Also Published As
Publication number | Publication date |
---|---|
EP2039197A1 (en) | 2009-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2007145625A1 (en) | Dynamic route prediction based on travel patterns of mobile units | |
Laasonen | Clustering and prediction of mobile user routes from cellular data | |
KR20090006099A (en) | Method of providing route update messages and paging access terminals | |
US8618984B2 (en) | Selecting beacons for location inference | |
KR101217058B1 (en) | Method of providing route update messages and providing messages to access terminals | |
US6259917B1 (en) | Apparatus and method for deriving a current network location from previously visited networks and movements between the previously visited networks | |
US8504034B2 (en) | System and method for population tracking, counting, and movement estimation using mobile operational data and/or geographic information in mobile network | |
KR101385928B1 (en) | Method and apparatus for traffic management | |
CN110213724B (en) | Pseudo base station motion trajectory identification method | |
Hadachi et al. | Cell phone subscribers mobility prediction using enhanced markov chain algorithm | |
US9084220B2 (en) | Method of providing route update messages and paging access terminals | |
US20120028647A1 (en) | Method of assigning a mobile unit to a tracking area based on a location update frequency | |
CN108574934B (en) | Pseudo base station positioning method and device | |
US8738559B2 (en) | Graph partitioning with natural cuts | |
Anagnostopoulos et al. | Intelligent trajectory classification for improved movement prediction | |
CN109768869A (en) | A kind of traffic forecast method, system and computer storage medium | |
JP2007198769A (en) | System, method, server, and program for retrieval of movement route | |
CN105813086A (en) | Method and system for target network coverage detection | |
Rodriguez-Carrion et al. | Performance evaluation of LZ-based location prediction algorithms in cellular networks | |
CN116913073A (en) | Road congestion prediction method, device, equipment and computer storage medium | |
Amirat et al. | Nextroute: a lossless model for accurate mobility prediction | |
CN117010786A (en) | Escort route planning method, escort route planning device, electronic equipment and storage medium | |
KR20140134431A (en) | Device and method for recommending location using poi | |
CN110121891B (en) | Method and apparatus for predicting mobility of a mobile communication device in a cellular communication network | |
Munadi et al. | Location management cost reduction using fuzzy logic in cellular radio network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 06773203 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006773203 Country of ref document: EP |