# Patent

## Title
Route prediction

## Abstract

Driving history of a user with regard to a particular road intersection can be collected and retained in storage. A Markov model can be used to predict likelihood of the user making a particular decision regarding the intersection. A highest likelihood decision can be identified and used to create a travel route. In addition, contextual information can be taken into account when creating the route, such as time of day, road conditions, user situation, and the like.

## Background
TECHNICAL FIELD
The subject specification relates generally to route prediction and in particular to using a Markov model to determine likelihood of a user making a travel decision.
BACKGROUND
Computer-driven route planning applications are utilized to aid users in locating points of interest, such as particular buildings, addresses, and the like. Additionally, in several existent commercial applications users can vary a zoom level, thereby enabling variation of context and detail as a zoom level of a map is altered. For example, as a user zooms in on a particular location, details such as names of local roads, identification and location of police and fire stations, identification and location of public services, such as libraries, museums, and the like can be provided to the user. When zooming out, the user can glean information from the map such as location of the point of interest within a city, state, and/or country, proximity of the point of interest to major freeways, proximity of the point of interest to a specific city, and the like. In some applications, satellite images can be utilized to provide users with additional detail regarding a particular geographic location or region. For example, a prospective purchaser of a house can obtain an overhead satellite image of the house, thereby enabling the prospective purchaser to view lines of occupation, proximity of the house to other adjacent houses, and other information that can be pertinent to the user.
Furthermore, conventional computer-implemented mapping applications often include route-planning applications that can be utilized to provide users with directions between different locations. Pursuant to an example, a user can provide a route planning application with a beginning point of travel and an end point of travel (e.g., beginning and ending addresses). The route planning application can include or utilize representations of roads and intersections and one or more algorithms to output a suggested route of travel. These algorithms can output routes depending upon user-selected parameters. For instance, a commercial route planning application can include a check box that enables a user to specify that she wishes to avoid highways. Similarly, a user can inform the route planning application that she wishes to travel on a shortest route or a route that takes a least amount of time.
SUMMARY
The following discloses a simplified summary of the specification in order to provide a basic understanding of some aspects of the specification. This summary is not an extensive overview of the specification. It is intended to neither identify key or critical elements of the specification nor delineate the scope of the specification. Its sole purpose is to disclose some concepts of the specification in a simplified form as a prelude to the more detailed description that is disclosed later.
Commonly, a user travel along certain routes multiple times, such a main road near her home. When the user reaches an intersection, there are commonly at least two choices that can be made. Based on a wide-variety of factors, the user makes a decision regarding the intersection that can be collected as part of a user travel history. There can be benefit in understanding a likelihood of a user making a particular decision and a Markov model can be used to determine a likelihood of a user making a selection at an intersection based upon her travel history.
When the user nears the intersection, personal travel history as well as contextual information can be collected. The Markov model can use the history to determine a decision the user is more likely to make. Information can be provided to the user concerning the more likely route, such as traffic patterns, construction, weather conditions, and the like. An observation can be made if the prediction is correct and based upon the observation the Markov model can be trained and user travel history updated.
The following description and the annexed drawings set forth certain illustrative aspects of the specification. These aspects are indicative, however, of but a few of the various ways in which the principles of the specification can be employed. Other advantages and novel features of the specification will become apparent from the following detailed description of the specification when considered in conjunction with the drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a representative system for determining likelihood of a user making a choice concerning a travel path decision in accordance with an aspect of the subject specification.
FIG. 2 illustrates a representative system for determining likelihood of a user making a choice concerning a travel path decision with a detailed analysis component in accordance with an aspect of the subject specification.
FIG. 3 illustrates a representative system for determining likelihood of a user making a choice concerning a travel path decision with a detailed calculation component in accordance with an aspect of the subject specification.
FIG. 4 illustrates a representative travel decision point map associated with percentages of predicted use in accordance with an aspect of the subject specification.
FIG. 5 illustrates a representative methodology for route decision point likelihood prediction using a Markov model in accordance with an aspect of the subject specification.
FIG. 6 illustrates a representative methodology for route decision point likelihood prediction with user interaction in accordance with an aspect of the subject specification.
FIG. 7 illustrates a representative methodology for route decision point likelihood prediction using multiple users in accordance with an aspect of the subject specification.
FIG. 8 illustrates a representative methodology for route decision point likelihood prediction and model training in accordance with an aspect of the subject specification.
FIG. 9 illustrates an example of a schematic block diagram of a computing environment in accordance with an aspect subject specification.
FIG. 10 illustrates an example of a block diagram of a computer operable to execute the disclosed architecture.



DETAILED DESCRIPTION
The claimed subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. It can be evident, however, that the claimed subject matter can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the claimed subject matter.
As used in this application, the terms “component,” “module,” “system,” “interface,” or the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a controller and the controller can be a component. One or more components can reside within a process and/or thread of execution and a component can be localized on one computer and/or distributed between two or more computers. As another example, an interface can include I/O components as well as associated processor, application, and/or API components.
Now referring to FIG. 1, an example system 100 is disclosed for making short term route prediction for vehicles. A user history can be collected (e.g., through global positioning data) and a Markov model can be used to make probabilistic predictions based upon the collected history. Different outcomes for a road segment can be assigned a likelihood percentage on how likely a user is to take an outcome and the likelihood percentages can be used to perform a variety of tasks, such as create a user route, provide warnings to the user, and the like.
Predicting a driver's near-term future path could be useful for giving the driver warnings about upcoming road situations, delivering anticipatory information, and allowing a vehicle to automatically adapt to expected operating conditions. A prediction algorithm can be used and trained from a driver's history. Specifically, training can occur through an nth-order Markov model to probabilistically predict future road segments based on a short sequence of just-driven road segments. The algorithm can be simple enough to be trained and executed on an in-vehicle navigation computer and can be implemented without off-board network connection.
A user history can be created and an analysis component 102 can evaluate travel history of an entity (e.g., a user, a user classification, a vehicle, etc.). A result of the evaluation can be accessed by a calculation component 104 that can use a Markov model to compute a route likelihood (e.g., percentage chance that a user takes an outcome of at least one intersection) as a function of the result of the evaluation. Commonly, the route likelihood is the probability a user takes different outcomes of at least one travel decision point (e.g., a road intersection). In addition, outcomes of travel decision points are typically independent of one another such that the route likelihood is a function of an outcome of at least two travel decision points. According to one embodiment, the Markov model can make a prediction based on only a single previous observation of a road segment.
Different outcomes can take place regarding the route likelihood. For example, a user can reach an intersection about ten times, where the intersection can have two realistic outcomes—turning right and turning left. A realistic outcome is an outcome of a user making a reasonable choice or/and outcome that conforms to normal traffic patterns (e.g., following traffic laws). For example, making a U-turn, performing an illegal operation (e.g., driving straight onto private property), and the like can be considered unrealistic since there can be a relatively low probability a user makes that decision. Based upon user history, a Markov model can be used to determine how likely the user is to make each decision. For instance, x % can be associated with turning right and 100%-x % can be associated with turning left.
These likelihoods can be used in conjunction with different functionality. For example, if an outcome has a likelihood over a specific threshold, then a check can be performed if there are hazards that should become known to the user (e.g., road closure, traffic jam, and the like). User action can be monitored such that a determination can be made on what outcome a user selects. The selected outcome can be aggregated upon user history as well as used to modify the Markov model.
While much discussion is dedicated to travel history of a person, it is to be appreciated that other forms of travel history can be used. In one instance, a public transit company can use a bus for a specific route—however, different drivers control the bus on different days. Therefore, as opposed to using driver history, vehicle travel history can be used since the vehicle is likely more indicative of travel then a driver. In addition, history of a user classification can be used—if a user does not have a history of travel along a particular path, then history of similarly situated users can be used to determine likelihood of outcomes.
The following is to be used as an explanation of a potential Markov model that can be used in conjunction with aspects disclosed herein. It is to be appreciated that there can be deviation from the following model information. Prediction of a vehicle's near term future route can be based on its near term past route. A model of the sequence of traversed road segments can be as X(i), with i representing a discrete time variable and X(−) representing a road segment (e.g. an integer unique among all the road segments). Whenever a prediction is made, the vehicle's road segments can be denoted as { . . . , X (−2), X (−1), X (O), X (1), X(2), . . . ), where X (0) is the current road segment, X(−1), X(−2), . . . are the immediately preceding road segments, and X(1), X(2), . . . are the unknown future road segments that are predicted. The road segments are not necessarily encountered at even time intervals. The discrete time variable i serves as an index over the segments in the order they are encountered. When the vehicle moves to a new road segment, that segment becomes the new X(0). At any time, the current road segment X(0) is known and the past road segments { . . . , X(−3) X(−2),X(−1)} back to the beginning of the trip. The unknowns are the future road segments that are predicted are, {X(1), X(2), X(3), . . . }.
At any point along a trip, the driver can choose which road segment to drive on next. In light of this choice, our predictions are probabilistic. For instance, P[X(1)] represents a discrete probability distribution over all the road segments giving which road segment will be encountered after the current one, X(0). P[X(2)] is the distribution for which road segment will be encountered after X(1), and so on. The Markov model gives a probabilistic prediction over future road segments based on past road segments. The standard, first order Markov model says that the probability distribution P[X(1)] for the next road segment is independent of all but X(O), the current road segment:

P[X(1)|X(0),X(−1),X(−2), . . . ]=P[X(1)|X(0)]

For a given driver, a P[X(1)|X(O)] can be easily built. For each road segment X(O), a histogram can be built of which road segments were encountered immediately after, and then normalized to get a discrete probability distribution. There can be a separate probability distribution for each road segment that a driver has ever driven on. A second order Markov model is sensitive to the two most recent road segments, e.g., P[X(1)|X(−1), X(O)]. This model can be built in a similar way, except there can be creation of a histogram over all two-element, ordered sequences {X(−1),X(O)}. There can be a check to see if using higher order models helps prediction accuracy. In particular, looking at the two most recent road segments gives a sense of the direction of travel along a road. For a first order model, the direction of travel is not encoded by observing only the current road segment. The Markov model can be used to predict beyond just the next road segment. There can be building of a P[X(2)|X(O)], which is the distribution over the road segments after the next one, given the current one. Higher order models can be used to make these farther out predictions, e.g. P[X(2)|X(−I), X(O)]. In general, there can be building of an nth order Markov model (n≧1) to predict the mth next encountered segment (m≧1). The generation nth order model can be denoted as:

Pn[X(m)]=P[X(m)|X(−n+1),X(−n+2), . . . ,X(0)]

There can be a note that the Markov model does not explicitly constrain a vehicle to adhere to the connectedness of the road network. A trained model could conceivably predict that a driver will jump over several road segments. However, since the model is trained from real data, where such jumps do not occur, the Markov model implicitly prevents such nonsense predictions. One advantage of probabilistic predictions is that the algorithm has a measure of its own uncertainty that can be usefully reported to in-vehicle applications. For instance, automatically engaging a turn signal might depend on near 100% prediction certainty, while presenting a point of interest would not require the same level of confidence.
Sometimes, there are fewer past road segments to examine, either because the trip just started or because there isn't a long enough match sequence in the driver's recorded history of road segments. Prediction accuracy can increase as the number of observed segments increases, meaning that a longer sequence of road segments is more indicative of the future. There can be a significant jump in prediction accuracy between one and two observed segments. This is because observing only one segment is not indicative of a driver's direction, meaning that the vehicle could be heading toward either end of the current segment. Observing two or more past segments indicates the driver's direction and reduces the possibilities for future segments.
Now referring to FIG. 2, an example system 200 is disclosed for determining route likelihood through use of a Markov model with a detailed analysis component 102. A user history can be collected and evaluated by the analysis component 102, where the analysis component 102 can function as means for analyzing history concerning at least one travel decision point. A communication component 202 can be used by the analysis component 102 to engage with other devices to transfer information. Operation can take place wirelessly, in a hard-wired manner, employment of security technology (e.g., encryption), etc. Additionally, information transfer can be active (e.g., query/response) or passive (e.g., monitoring of public communication signals). Moreover, the communication component 202 can use various protective features, such as performing a virus scan on collected metadata and blocking metadata that is positive for a virus.
An instigation component 204 can be used to determine when the system 200 should operate. Various different configurations can be used to identify when to operate the system 200. According to one embodiment, a check can be performed to determine if a travel decision point exists within a certain distance of a position—if there is a positive result, then the system 200 operates. In a different instance, the system 200 can be instigated at a user request, when multiple decision points are within a set distance, and the like. However, in another embodiment route prediction can virtually always operate when a vehicle implementing the system 200 is running. The route prediction can occur as soon as possible and as far out in the future as possible to provide enough notice to a user.
The instigation component 204 can determine that the system 200 should operate and an identifier component 206 can function to determine a travel history to obtain. For example, the identifier component 206 can determine if user history or if vehicle history should be used. User history can be retained in a separate location and thus a search component 208 can be employed to locate a travel history source. An obtainment component 210 can be used to collect the travel history from the located source.
Different pieces of information, such as the collected travel history, component operating instructions (e.g., communication component 202), source location, components themselves, etc. can be held on storage 212. Storage 212 can arrange in a number of different configurations, including as random access memory, battery-backed memory, hard disk, magnetic tape, etc. Various features can be implemented upon storage 212, such as compression and automatic back up (e.g., use of a RAID configuration). In addition, storage 212 can operate as memory that can be operatively coupled to a processor (not shown). A calculation component 104 can use a Markov model to compute a route likelihood as a function of a result of the evaluation. The calculation component 104 can function as means for determining likelihood of outcomes of the travel decision point through use of a Markov model and a product of the historical analysis. According to one embodiment, the Markov model can be computed offline and/or remotely based upon user history, such that a vehicle operating the system 200 does not need to be moving to calculate probabilities.
Now referring to FIG. 3, an example system 300 is disclosed for determining route likelihood through use of a Markov model with a detailed calculation component 104. An analysis component 102 can evaluate travel history of an entity. Based upon a result of the evaluation, a calculation component 104 can use a Markov model to compute a route likelihood.
It can be a waste of resources to perform likelihood estimates on virtually all potential intersections that can be encountered by a vehicle. The system 300 can employ a recognition component 302 that identifies a potential travel space of the entity. Identification can occur through special analysis (e.g., intersections within a set radius of a user), through a set number of intersections (e.g., three degrees of separation from a current position), and the like. The recognition component 302 can operate as means for predicting the travel area, the travel area divided is the predicted travel area.
A partition component 304 can divide the potential travel space into segments (e.g., defined by road intersections). The calculation component 104 can compute the route likelihood through computation of how the entity travels upon termination of a segment (e.g., at an intersection, likelihood of a user turning left, right, or continuing straight). According to one embodiment, partitions can be limited to substantial user decisions (e.g., decisions a user is reasonably likely to take). For example, if a user has an option of continuing straight or turning on a highway run-off, the chance of the user taking the run-off can be so small that the division can be ignored. A balance can be made weighing the chance of a user taking a route against estimated resource consumption. The partition component 304 can function as means for dividing a travel area into at least one travel decision point.
An artificial intelligence component 306 operates the Markov model as well as be used in performing various determinations and inferences disclosed herein. The artificial intelligence component 306 can employ one of numerous methodologies for learning from data and then drawing inferences and/or making determinations related to dynamically storing information across multiple storage units (e.g., Hidden Markov Models (HMMs) and related prototypical dependency models, more general probabilistic graphical models, such as Bayesian networks, e.g., created by structure search using a Bayesian model score or approximation, linear classifiers, such as support vector machines (SVMs), non-linear classifiers, such as methods referred to as “neural network” methodologies, fuzzy logic methodologies, and other approaches that perform data fusion, etc.) in accordance with implementing various automated aspects described herein. In addition, the artificial intelligence component 306 can also include methods for capture of logical relationships such as theorem provers or more heuristic rule-based expert systems. The artificial intelligence component 208 can be represented as an externally pluggable component, in some cases designed by a disparate (third) party.
The Markov model can be applied upon the user history where there is prediction likelihood of different outcomes. A designation component 308 can identify a highest probability outcome of at least one travel decision point. Based upon the outcome of the designation component 308, a creation component 310 can produce an estimated route based upon highest probability of at least one travel decision point. Thus, outcomes of different decision points can be strung together such that an estimated route is produced.
According to one embodiment, the creation component 310 produces the estimated route based upon highest probability of at least one travel decision point and at least one contextual circumstance. For example, a user can come to an intersection and the Markov model can determine there is about 95% likelihood that a user turns right and about 5% likelihood that a user turns left. However, if the road available to the user by turning right is closed, then the creation component 310 can override a result of the Markov model to determine there is about 100% likelihood the user turns left. The creation component 310 can function as means for creating a travel route based upon a highest result of the determined likelihood for each travel decision point. According to one embodiment, the travel route is created based upon a highest result of the determined likelihood for each travel decision point and contextual information.
An observation component 312 can monitor user operation at a predicted intersection and compare how the user behaved against the prediction. The observation component 312 can implement as means for monitoring a result of at least one travel decision point. An update component 314 can add the observation to the travel history as well as apply a weight to the observation. The update component 314 can operate as means for retaining the result in conjunction with the history. For instance, more recent actions can be considered more relevant that more distant events. Additionally, the calculation component 104 can modify operation through use of a modification component 316 (e.g., modify operation of the Markov model).
Now referring to FIG. 4, an example travel area 400 is disclosed as segmented by a partition component 304 of FIG. 3. A user can stand at a start point and a determination can be made by the instigation component 204 of FIG. 2 that predictions of user decision points should occur. An initial decision point can be reached with an ‘A-B’ decision point, where the user can be about four times more likely to make the ‘B’ decision than the ‘A’ decision. Additionally, it can be determined that there is a likelihood of a user making a ‘C-D’ decision point. It is to be appreciated that the decision is independent of the outcome of the ‘A-B’ decision point. Even if there is a less than half chance the user makes a decision, dependent travel points can be evaluated. In an ‘E-F’ decision point, a determination can be made that a user has equal likelihood of travelling down either path. An equal designation can be used when there is no user history and/or inadequate user history to make a prediction. In addition, a confidence level can be associated with a prediction (e.g., how strong a basis is for a prediction).
Various uses can be made from the determined likelihoods. For example, the creation component 310 of FIG. 3 can produce a likely route of the user such that the user begins at the start position, then travels down the ‘A’ path (e.g., since 80% is higher than 20%) and then down the ‘C’ path. If it is determined that the user is likely to come the ‘E-F’ decision point, then the creation component 310 can use artificial intelligence techniques to select a route (e.g., since the routes have about equal numerical values). Additionally, information disclosed through FIG. 4 can be used to inform a user of contextual information. For instance, a user can be made aware of heavy traffic on paths with a likelihood of 50% or greater, on a highest path of a decision point, paths that pass a lower threshold, and the like.
Now referring to FIG. 5, an example methodology 500 is disclosed for determining likelihood of a user making a decision regarding a travel decision point. Information for a journey area can be collected and analyzed at event 502, a result of the analysis can be used to identify a journey resolution position. Different potential paths of the journey area can be identified and intersections of those paths can be recognized.
Travel history that relates to a user can be collected at action 504. For example, polling can occur to determine locations that include travel information and the information can be extracted and analyzed. At act 506, there can be identifying a journey resolution position, the journey resolution position includes at least two results. According to one embodiment, a remote identity can communicate journey resolution points of an area (e.g., such as a hosting device). However, analysis of a map can occur (e.g., optical scanning) and inferences can be made on what is an journey resolution point.
At action 508, there can be determining likelihood of at least one of the results of the journey resolution position occurring through use of a Markov model. A Markov model can be applied upon user history and percentages can be determined on how likely a user is to make a decision. At check 510, a determination can be made on if a user should be warned about a situation. If there is a situation determined by the check 510, then the user can be warned at act 512. For example, if a percentage identified reaches a certain threshold (e.g., above about 20%), then check 510 can determine that a user should be warned of hazards published by a government organization (e.g., department of transportation, municipal police force, etc.). Example warnings can include Anticipatory driver warnings (e.g., hazardous road conditions, unusually slow traffic, change in speed limit, curve speed warning, change in traffic patterns—such as due to construction, lane keeping assistance, lane change prediction and warning, etc.), driver information (e.g., points of interest, advertising, etc.), automatic vehicle behaviors (e.g., automatic turn signals, headlight pointing, wireless base station handoff, gradual windshield darkening for expected glare, engine load anticipation—such as cylinder deactivation, emergency preparation—such as pre-braking, seat belt tension, head rests . . . , etc.), and the like.
Regardless of the outcome of the check 510, action 514 can occur that include creating a route based upon the highest sequential determined likelihoods. According to one embodiment, the route is sequential, such that route choices are strung together. For instance, a user can have an ‘A-B’ decision point, where ‘A’ feeds into ‘C-D’ decision point and ‘B’ feeds into ‘E-F’ decision point. If ‘A’ has an about 60% chance and ‘B’ has an about 40% chance, then ‘A’ is selected as the route. To continue the route, ‘E’ and ‘F’ route decisions can be excluded since they are not decisions upon the ‘A’ route. This can take place even if ‘E’ or ‘F’ has a highest percentage, since there is a desire to make the route sequential.
Data pertaining to the decision point can be disclosed (e.g., to a user) at action 516. This can include identified journey resolution positions, associated percentages, warnings, a route, etc. At act 518, there can be observing how an entity responds to the journey resolution position. Based upon the observation, there can be updating a history for the entity based upon the observation at action 520.
Now referring to FIG. 6, an example methodology 600 is disclosed for engaging with a user concerning determining likelihood of an entity making a travel decision. A user location can be identified at action 602, such as through use of a global positioning system. Travel metadata related to a user (e.g., time of day, information on a user's personal calendar, etc.) can be collected and analyzed, where a result of the analysis is used in determining likelihood of outcomes of a journey resolution point.
A map area upon which a user has potential to travel can be collected at action 606. Based upon the collected map area, routes likely to be traveled upon by a user can be identified at act 608. For example, routes a user has physically past can be considered not likely since there can be a relatively small percentage that the user will travel in a reverse direction. The routes can be divided into intersections at event 610, which can represent identifying a journey resolution position, the journey resolution position includes at least two results. At event 612, there can be determining likelihood of at least one of the results of the journey resolution position occurring through use of a Markov model. A check 614 can be performed to determine if a likelihood is above a threshold (e.g., automatically determined, set by a user, etc.). If the likelihood is above a threshold, then information can be disclosed to a user or an entity (e.g., user personal electronic device, host computer, etc.) at act 612. If a likelihood is not above the threshold, then the methodology 600 can return to action 602 to identify a user location.
Now referring to FIG. 7, an example methodology 700 is disclosed for using multiple user histories to determine likelihood of a user making a travel point decision. A user location can be identified at act 702, such as through asking a user to designate her position. Potential decision points can be recognized at action 704, which can include identifying a journey resolution position, the journey resolution position includes at least two results.
It is possible that there are multiple decision points and thus, an individual point can be selected at event 706. A check 708 can be performed to determine if there is a user history at the selected point. If there is user history, then the history can be accessed at action 710. A second check 712 can be performed independent of a result of the check 708 to determine if history of other users is available. The check can be global (e.g., any history available), specific (e.g., similar situated users—gender, age, vehicle content, and the like), etc. If content of other users is available, then the content can be accessed at act 714. Thus, history of more than one user can be taken into account when determining likelihood of an outcome for a travel decision point. While not explicitly shown, there can be an error message generated if there is no history that can be accessed, used, etc.
At action 716, there can be determining likelihood of at least one of the results of the journey resolution position occurring through use of a Markov model. A check 718 can determine if there is another individual point that should be selected and evaluated. If there is another point, then the methodology 700 can return to event 706 to select another point. If there is not another point for analysis, then results can be disclosed at act 720.
Now referring to FIG. 8, an example methodology 800 is disclosed for training the Markov model. At action 802, a decision point can be recognized through identifying a journey resolution position, the journey resolution position includes at least two results (e.g., turning right and turning left). At act 804, there can be determining likelihood of at least one of the results of the journey resolution position occurring through use of a Markov model.
The determined likelihood can be presented to a user at event 806 (e.g., through a graphical user interface) and a user can provide feedback to the probabilities at action 808 (e.g., confirm likelihood, state likelihood is poor representation, and the like). Feedback can be gained explicitly (e.g., though asking the user), implicitly (e.g., observing user behavior), and the like. A check 810 can take place to determine if the user agreed with the likelihood. If the user agrees with the likelihood, then the model can be retained at act 812. In addition, the model can be considered more accurate, and thus it can become more difficult to modify the model. However, if the user does not agree with the model, then a comparison can be made between the estimate and how the user responded at event 814. Based upon an outcome of the comparison, the model can modified at action 816. According to one embodiment, a determination can be made based on the comparison if the difference is enough to warrant a modification of the model.
For purposes of simplicity of explanation, methodologies that can be implemented in accordance with the disclosed subject matter were shown and described as a series of blocks. However, it is to be understood and appreciated that the claimed subject matter is not limited by the order of the blocks, as some blocks can occur in different orders and/or concurrently with other blocks from what is depicted and described herein. Moreover, not all illustrated blocks can be required to implement the methodologies described hereinafter. Additionally, it should be further appreciated that the methodologies disclosed throughout this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methodologies to computers. The term article of manufacture, as used, is intended to encompass a computer program accessible from any computer-readable device, carrier, or media.
As used herein, the terms to “infer” or “inference” refer generally to the process of reasoning about or deducing states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.
Furthermore, the claimed subject matter can be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ). Additionally it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art will recognize many modifications can be made to this configuration without departing from the scope or spirit of the claimed subject matter.
Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word exemplary is intended to disclose concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
In order to provide a context for the various aspects of the disclosed subject matter, FIGS. 9 and 10 as well as the following discussion are intended to provide a brief, general description of a suitable environment in which the various aspects of the disclosed subject matter can be implemented. While the subject matter has been described above in the general context of computer-executable instructions of a program that runs on one or more computers, those skilled in the art will recognize that the subject matter described herein also can be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and/or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the inventive methods can be practiced with other computer system configurations, including single-processor, multiprocessor or multi-core processor computer systems, mini-computing devices, mainframe computers, as well as personal computers, hand-held computing devices (e.g., personal digital assistant (PDA), phone, watch . . . ), microprocessor-based or programmable consumer or industrial electronics, and the like. The illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. However, some, if not all aspects of the claimed subject matter can be practiced on stand-alone computers. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
Referring now to FIG. 9, there is illustrated a schematic block diagram of a computing environment 900 in accordance with the subject specification. The system 900 includes one or more client(s) 902. The client(s) 902 can be hardware and/or software (e.g., threads, processes, computing devices). The client(s) 902 can house cookie(s) and/or associated contextual information by employing the specification, for example.
The system 900 also includes one or more server(s) 904. The server(s) 904 can also be hardware and/or software (e.g., threads, processes, computing devices). The servers 904 can house threads to perform transformations by employing the specification, for example. One possible communication between a client 902 and a server 904 can be in the form of a data packet adapted to be transmitted between two or more computer processes. The data packet can include a cookie and/or associated contextual information, for example. The system 900 includes a communication framework 906 (e.g., a global communication network such as the Internet) that can be employed to facilitate communications between the client(s) 902 and the server(s) 904.
Communications can be facilitated via a wired (including optical fiber) and/or wireless technology. The client(s) 902 are operatively connected to one or more client data store(s) 908 that can be employed to store information local to the client(s) 902 (e.g., cookie(s) and/or associated contextual information). Similarly, the server(s) 904 are operatively connected to one or more server data store(s) 910 that can be employed to store information local to the servers 904.
Referring now to FIG. 10, there is illustrated a block diagram of a computer operable to execute the disclosed architecture. In order to provide additional context for various aspects of the subject specification, FIG. 10 and the following discussion are intended to provide a brief, general description of a suitable computing environment 1000 in which the various aspects of the specification can be implemented. While the specification has been described above in the general context of computer-executable instructions that can run on one or more computers, those skilled in the art will recognize that the specification also can be implemented in combination with other program modules and/or as a combination of hardware and software.
Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the inventive methods can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can be operatively coupled to one or more associated devices.
The illustrated aspects of the specification can also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
A computer typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media can comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.
Communication media typically embody computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
With reference again to FIG. 10, the example environment 1000 for implementing various aspects of the specification includes a computer 1002, the computer 1002 including a processing unit 1004, a system memory 1006 and a system bus 1008. The system bus 1008 couples system components including, but not limited to, the system memory 1006 to the processing unit 1004. The processing unit 1004 can be any of various commercially available processors or proprietary specific configured processors. Dual microprocessors and other multi-processor architectures can also be employed as the processing unit 1004.
The system bus 1008 can be any of several types of bus structure that can further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory 1006 includes read-only memory (ROM) 1010 and random access memory (RAM) 1012. A basic input/output system (BIOS) is stored in a non-volatile memory 1010 such as ROM, EPROM, EEPROM, which BIOS contains the basic routines that help to transfer information between elements within the computer 1002, such as during start-up. The RAM 1012 can also include a high-speed RAM such as static RAM for caching data.
The computer 1002 further includes an internal hard disk drive (HDD) 1014 (e.g., EIDE, SATA), which internal hard disk drive 1014 can also be configured for external use in a suitable chassis (not shown), a magnetic floppy disk drive (FDD) 1016, (e.g., to read from or write to a removable diskette 1018) and an optical disk drive 1020, (e.g., reading a CD-ROM disk 1022 or, to read from or write to other high capacity optical media such as the DVD). The hard disk drive 1014, magnetic disk drive 1016 and optical disk drive 1020 can be connected to the system bus 1008 by a hard disk drive interface 1024, a magnetic disk drive interface 1026 and an optical drive interface 1028, respectively. The interface 1024 for external drive implementations includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies. Other external drive connection technologies are within contemplation of the subject specification.
The drives and their associated computer-readable media provide nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For the computer 1002, the drives and media accommodate the storage of any data in a suitable digital format. Although the description of computer-readable media above refers to a HDD, a removable magnetic diskette, and a removable optical media such as a CD or DVD, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as zip drives, magnetic cassettes, flash memory cards, cartridges, and the like, can also be used in the example operating environment, and further, that any such media can contain computer-executable instructions for performing the methods of the specification.
A number of program modules can be stored in the drives and RAM 1012, including an operating system 1030, one or more application programs 1032, other program modules 1034 and program data 1036. All or portions of the operating system, applications, modules, and/or data can also be cached in the RAM 1012. It is appreciated that the specification can be implemented with various proprietary or commercially available operating systems or combinations of operating systems.
A user can enter commands and information into the computer 1002 through one or more wired/wireless input devices, e.g., a keyboard 1038 and a pointing device, such as a mouse 1040. Other input devices (not shown) can include a microphone, an IR remote control, a joystick, a game pad, a stylus pen, touch screen, or the like. These and other input devices are often connected to the processing unit 1004 through an input device interface 1042 that is coupled to the system bus 1008, but can be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.
A monitor 1044 or other type of display device is also connected to the system bus 1008 via an interface, such as a video adapter 1046. In addition to the monitor 1044, a computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.
The computer 1002 can operate in a networked environment using logical connections via wired and/or wireless communications to one or more remote computers, such as a remote computer(s) 1048. The remote computer(s) 1048 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer 1002, although, for purposes of brevity, only a memory/storage device 1050 is illustrated. The logical connections depicted include wired/wireless connectivity to a local area network (LAN) 1052 and/or larger networks, e.g., a wide area network (WAN) 1054. Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as intranets, all of which can connect to a global communications network, e.g., the Internet.
When used in a LAN networking environment, the computer 1002 is connected to the local network 1052 through a wired and/or wireless communication network interface or adapter 1056. The adapter 1056 can facilitate wired or wireless communication to the LAN 1052, which can also include a wireless access point disposed thereon for communicating with the wireless adapter 1056.
When used in a WAN networking environment, the computer 1002 can include a modem 1058, or is connected to a communications server on the WAN 1054, or has other means for establishing communications over the WAN 1054, such as by way of the Internet. The modem 1058, which can be internal or external and a wired or wireless device, is connected to the system bus 1008 via the input device interface 1042. In a networked environment, program modules depicted relative to the computer 1002, or portions thereof, can be stored in the remote memory/storage device 1050. It will be appreciated that the network connections shown are example and other means of establishing a communications link between the computers can be used.
The computer 1002 is operable to communicate with any wireless devices or entities operatively disposed in wireless communication, e.g., a printer, scanner, desktop and/or portable computer, portable data assistant, communications satellite, any piece of equipment or location associated with a wirelessly detectable tag (e.g., a kiosk, news stand, restroom), and telephone. This includes at least Wi-Fi and BluetoothTM wireless technologies. Thus, the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices.
Wi-Fi, or Wireless Fidelity, allows connection to the Internet from a couch at home, a bed in a hotel room, or a conference room at work, without wires. Wi-Fi is a wireless technology similar to that used in a cell phone that enables such devices, e.g., computers, to send and receive data indoors and out; anywhere within the range of a base station. Wi-Fi networks use radio technologies called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wired networks (which use IEEE 802.3 or Ethernet). Wi-Fi networks operate in the unlicensed 2.4 and 5 GHz radio bands, at an 11 Mbps (802.11a) or 54 Mbps (802.11b) data rate, for example, or with products that contain both bands (dual band), so the networks can provide real-world performance similar to the basic 10BaseT wired Ethernet networks used in many offices.
The aforementioned systems have been described with respect to interaction among several components. It should be appreciated that such systems and components can include those components or sub-components specified therein, some of the specified components or sub-components, and/or additional components. Sub-components can also be implemented as components communicatively coupled to other components rather than included within parent components. Additionally, it should be noted that one or more components could be combined into a single component providing aggregate functionality. The components could also interact with one or more other components not specifically described herein but known by those of skill in the art.
What has been described above includes examples of the subject specification. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the subject specification, but one of ordinary skill in the art can recognize that many further combinations and permutations of the subject specification are possible. Accordingly, the subject specification is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.

## Claims

1. A system, comprising:
one or more processors; and
memory storing one or more components that are executable by the one or more processors, the one or more components comprising:
a communication component to obtain global positioning data of an entity;
an observation component to track a journey of the entity;
a recognition component to identify a potential travel space of the entity such that the potential travel space is identified by determining a set radius from a location of the entity or a number of intersections around a location of the entity, the potential travel space including potential travel paths;
a partition component to divide the potential travel paths into a set of future segments defined by at least one travel decision point within the potential travel space;
an analysis component to evaluate travel history of the entity, wherein the travel history of the entity is determined at least partially based on the global positioning data obtained by the communication component; and
a calculation component to:
define a particular number of most recently traveled segments used to compute a route likelihood over the set of future segments, wherein an individual segment is defined by two travel decision points and wherein the most recently traveled segments are obtained through at least one of the communication component or the observation component;
determine, based at least in part on the travel history of the entity, a direction of travel of the entity based at least in part on observing the particular number of most recently traveled segments traveled by the entity during a current journey using the observation component; and
compute the route likelihood of the entity over the set of future segments based at least in part on the direction of travel by computing a probability that the entity will select different outcomes of the at least one travel decision point.

2. The system of claim 1, wherein the entity is a user, a user classification, a vehicle, or a combination thereof.

3. The system of claim 1, further comprising a designation component to identify a highest probability outcome of the at least one travel decision point.

4. The system of claim 3, further comprising a creation component to produce an estimated route based upon the highest probability outcome of the at least one travel decision point.

5. The system of claim 4, wherein the creation component is further configured to produce the estimated route based upon the highest probability outcome of the at least one travel decision point and at least one contextual circumstance.

6. The system of claim 1, wherein the potential travel space includes at least two travel decision points that do not define a same segment, and wherein a first probability the entity selects different outcomes of a first travel decision point of the at least two travel decision points is independent of a second probability the entity selects different outcomes of a second travel decision point of the at least two travel decision points.

7. The system of claim 1, wherein the calculation component is further configured to use a Markov model to compute the route likelihood of the entity over the set of future segments.

8. A method, comprising:
obtaining global positioning data of an entity;
tracking a journey of the entity;
identifying a potential travel space of the entity such that the potential travel space is identified by determining a set radius from a location of the entity or a number of intersections around a location of the entity, wherein the potential travel space includes potential travel paths;
dividing the potential travel paths into a set of future segments defined by at least one travel decision point within the potential travel space;
determining a particular number of most recently traveled segments most recently traveled by the entity based on at least one of the obtained global positioning data or the tracked journey of the entity, the determined particular number of most recently traveled segments being used to compute a route likelihood over the set of future segments, wherein an individual segment is defined by two travel decision points;
evaluating, using one or more processors, travel history of the entity based on at least in part on the tracked journey;
determining, using at least one of the one or more processors and based at least in part on the travel history of the entity, a direction of travel of the entity based at least in part on observing the particular number of most recently traveled segments traveled by the entity during a current journey using at least in part the tracked journey of the entity; and
computing, using at least one of the one or more processors, the route likelihood of the entity over the set of future segments based at least in part on the direction of travel by computing a probability that the entity will select different outcomes of the at least one travel decision point.

9. The method of claim 8, further comprising using a Markov model to compute the route likelihood of the entity over the set of future segments.

10. The method of claim 8, wherein the potential travel space includes at least two travel decision points that do not define a same segment, and wherein a first probability the entity takes different outcomes of a first travel decision point of the at least two travel decision points is independent of a second probability the entity takes different outcomes of a second travel decision point of the at least two travel decision points.

11. A method, comprising:
obtaining global positioning data of an entity;
tracking a journey of the entity;
identifying a potential travel space of the entity such that the potential travel space is identified by determining a set radius from a location of the entity or a number of intersections around a location of the entity, wherein the potential travel space includes potential travel paths;
dividing the potential travel paths into a set of future segments defined by at least one travel decision point within the potential travel space;
determining a particular number of most recently traveled segments by the entity based on the global positioning data, the determined particular number of most recently traveled segments being used to compute a route likelihood, wherein an individual segment is defined by two travel decision points;
evaluating, using one or more processors, travel history of the entity based on at least partially on the tracked journey;
determining, using at least one of the one or more processors and based at least in part on the travel history of the entity, a direction of travel of the entity based at least in part on observing the particular number of most recently traveled segments traveled by the entity during a current journey;
computing, using at least one of the one or more processors, the route likelihood of the entity as a probability the entity will travel different segments among the set of future segments from at least one travel decision point, wherein the set of future segments is determined based at least in part on the direction of travel; and
identifying a highest probability outcome of the at least one travel decision point.

12. The method of claim 11, further comprising producing an estimated route based upon the highest probability outcome of the at least one travel decision point.

13. The method of claim 11, further comprising:
determining that a probability of the highest probability outcome meets or exceeds a threshold probability; and
at least partly in response to the determining, causing anticipatory information associated with the highest probability outcome to be output, the anticipatory information warning the entity of a road situation.

14. The method of claim 11, further comprising:
determining that a probability of the highest probability outcome meets or exceeds a threshold probability; and
at least partly in response to the determining, automatically adapting a vehicle to an expected operating condition without user intervention.

15. The method of claim 8, further comprising:
producing an estimated route based upon the computed route likelihood of the entity over the set of future segments;
determining that a probability of the entity traveling the estimated route meets or exceeds a threshold probability; and
at least partly in response to the determining, automatically adapting a vehicle to an expected operating condition without user intervention.

16. The method of claim 15, wherein automatically adapting the vehicle comprises at least one of:
engaging a turn signal for the vehicle;
pointing headlights of the vehicle;
darkening a windshield of the vehicle;
deactivating a cylinder of an engine of the vehicle; or
pre-braking the vehicle.