WO2011004377A2 - Interactive route search - Google Patents

Interactive route search Download PDF

Info

Publication number
WO2011004377A2
WO2011004377A2 PCT/IL2010/000552 IL2010000552W WO2011004377A2 WO 2011004377 A2 WO2011004377 A2 WO 2011004377A2 IL 2010000552 W IL2010000552 W IL 2010000552W WO 2011004377 A2 WO2011004377 A2 WO 2011004377A2
Authority
WO
WIPO (PCT)
Prior art keywords
user
geographic
geographic entity
route
entity
Prior art date
Application number
PCT/IL2010/000552
Other languages
French (fr)
Other versions
WO2011004377A3 (en
Inventor
Eliyahu Safra
Yaron Kanza
Yehoshua Sagiv
Roy Levin
Original Assignee
Technion Research And Development Foundation Ltd
Yissum Research And Development Company Of The Hebrew University Of Jerusalem Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technion Research And Development Foundation Ltd, Yissum Research And Development Company Of The Hebrew University Of Jerusalem Ltd filed Critical Technion Research And Development Foundation Ltd
Publication of WO2011004377A2 publication Critical patent/WO2011004377A2/en
Publication of WO2011004377A3 publication Critical patent/WO2011004377A3/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/343Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips

Definitions

  • the present invention relates in general to a system and method for calculating routes and in particular to a system and method for calculating routes that traverse multiple geographic entities.
  • Example 1 Suppose that on her way from the office to a business meeting, Alice needs to fill up her gas tank, draw cash from an ATM, buy a new battery for her laptop, and go by a place where there is an Internet connection, in order to check her email.
  • Alice can conduct simple geographic searches using her cellular phone or car navigation system. She will be able to locate some nearby ATMs, some close gas stations, coffee shops that provide Internet connection, and electronics stores. However, combining the results of these individual geographic searches into a single and efficient route that eventually leads to the location of the meeting can be a hard task.
  • a route search is a task of computing a route that starts at a given location, which is usually the location of the user, ends at a specified target location and goes via geographic entities of different types.
  • the geographic entities are selected according to the user requirements as specified in the different search queries.
  • a probabilistic model can be used to enhance the quality of the proposed route.
  • each object geographic entity
  • the probabilities can be generated from collected statistics or assigned by experts. Such statistics, for instance, may show that most of the people who search for an ATM are satisfied with the result of the search. In this case, ATMs will receive high probabilities.
  • the statistics may show that in only 80 percent of the cases, people who search for a restaurant eventually order food in some restaurant that has been discovered in the search. In such a case, a restaurant entity will receive a probability of 0:8.
  • User profiling can be used for adjusting the probabilities to specific users.
  • the economic status of a user may increase the probability of some restaurants and decrease the probability of others.
  • Information in the user profile or preferences a user indicated can also be taken into account when calculating probabilities. For example, a user that this profile indicated preferences for 5-star hotels may be more likely to be satisfied from an expensive restaurant then a user who has indicated preferences for budget hotels.
  • the user history may also be relevant to the estimated rate of success of the geographic entity suggested. The same geographic entity may be ranked higher towards a user that was mostly in past ranking of similar establishments, compared to a more difficult user that was hard to satisfy in the past.
  • the probabilities can be calculated in two manners.
  • One way is to assign a unique probability for each entity without taking into consideration the user who originated the query.
  • restaurant A may be assigned a 70% probability of satisfying users based on past statistics of all users visiting that restaurant.
  • Another way to assign probabilities is by also taking into consideration the particular user who generated the query. Taking into consideration the user profile, history and preferences can enable the system of the invention to adjust the probability of a particular object (entity) more closely for the actual user. For example, an expensive restaurant may have a "generic" probability of 70%, but if it is proposed to a user who's profile and/or history indicate strong preferences for expensive restaurants, the probability of success of that restaurant for that specific user might be adjust to higher value than 70%.
  • the present invention thus relates to a computerized system for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities.
  • the geographic entities are of different types (categories).
  • the system comprises:
  • a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes;
  • an input unit on the user personal device for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit,;
  • a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity;
  • an interaction manager on the user personal device for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after he visited or intended to visit said geographic entity and if the geographic entity was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type; such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
  • the geo-spatial dataset can be located on a remote server that the user personal device can connect to.
  • the geo-spatial dataset can be stored locally on the user personal device. It is also possible to have part of the geo-spatial dataset on the user device, and part on a remote server. For example, the user's home city can be kept locally for quick access, but if the user query's about geographic information for another city, that information is fetched from a remote server that the user personal device can connect to.
  • the user personal device can be a mobile telephone, a smart phone, a personal digital assistant (PDA), a car navigation system, a laptop computer, a tablet computer, a portable game console or any other portable and communicating device.
  • the query further comprises one or more constraints describing the conditions said geographic entities have to meet in order to be relevant for the user.
  • one or more constraints indicate that some or all of the geographic entities are to be visited according to a predetermined order.
  • the processing unit calculates the next geographic entity to be visited by selecting a geographic entity that is the closet to the user's current location.
  • the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the expected minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point.
  • the processing unit calculates a route from the starting point to the end point going through n geographic entities matching the criteria of the query such that when a geographic entity fails to satisfy the user the processing unit recalculates a route from the current location to the target point going through the remaining geographic entities that have not yet been visited to the user's satisfaction.
  • system of the invention further comprising a probability manager for assigning a probability of success for each geographic entity in the goe-spatial dataset, wherein the probability of success indicates the probability that the geographic entity would meet the requirements of the user.
  • the choice of the geographic entity further takes into account the probability of success assigned to each geographic entity.
  • the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with a minimal value for the distance to the user's current location divided by the probability of success for the same geographic entity.
  • the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point, divided by the probability of success for the same geographic entity.
  • the present invention further relates to a computerized method for interactively calculating a route from a start point to a destination point while traversing multiple geographic entities of different types, said method comprising the steps of:
  • the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
  • the present invention relates to a mobile telephone for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities of different types, said mobile phone comprising:
  • wireless or wired communications means to a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes;
  • an input unit for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit;
  • a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity;
  • an interaction manager for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after the user visited or intended to visit said geographic entity and if the geographic entity was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type;
  • the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
  • the wireless or wired communication means of the mobile telephone comprise common present and future telephony communication capabilities such as: cellular telephony communications, third-generation cellular telephony communications, data communications, high-speed wireless communications, Internet communications, f ⁇ xe-line telephony (PSTN) and any other available or future communication capabaility of a mobile telephone.
  • common present and future telephony communication capabilities such as: cellular telephony communications, third-generation cellular telephony communications, data communications, high-speed wireless communications, Internet communications, f ⁇ xe-line telephony (PSTN) and any other available or future communication capabaility of a mobile telephone.
  • Fig. 1 shows pseudo-code for computing the distance-to-target values in the
  • Fig. 2 shows pseudo-code for the Optimistic algorithm of the invention when C defines a complete order.
  • Fig. 3 shows pseudo-code for the MED algorithm of the invention for route- search queries in which C defines a complete order.
  • Fig. 4 shows pseudo-code for the algorithm ComputeExpLen computing the expected distances for the MED Complete Order algorithm.
  • Fig. 5 shows a fragment of a map of Tel- Aviv used for experiments.
  • Fig. 6 shows a scenario in an experiment where the route computed by the Greedy algorithm of the invention (solid line) is significantly longer than the route computed by the MED algorithm of the invention (dashed line).
  • Fig. 7 shows a scenario in an experiment where the route computed by the Optimistic algorithm of the invention (solid line) is significantly longer than the route computed by the MED algorithm of the invention (dashed line).
  • Fig. 8 is a graph examining the effectiveness of the MED, Optimistic,
  • Fig. 9 is a graph examining the effectiveness of the MED, Optimistic,
  • the x-axis shows lengths and for each length / the y-axis presents the percentage of routes that were created interactively and had a length of at most /.
  • Fig. 10 is a graph examining the effectiveness of the MED, Optimistic,
  • the x-axis shows lengths and for each length / the y-axis presents the percentage of routes that were created interactively and had a length of at most /.
  • Fig. 11 shows the results of comparing the MED, Optimistic, Oriented Greedy and Naive Greedy algorithms of the invention to Perfect. For each algorithm, it shows the average difference between the length of the route computed by the algorithm and the length of the route computed by Perfect.
  • Fig. 12 shows the results of the different algorithms of the invention for a search over three datasets, where the probabilities are normally distributed with mean 0.3.
  • Fig. 13 shows the results of the different algorithms of the invention for a search over three datasets, where the probabilities are normally distributed with mean 0.6.
  • Fig. 14 shows the results of the different algorithms of the invention for a search over three datasets, where the probabilities are normally distributed with mean 0.9.
  • Fig. 15 is a graph comparing the results of MED, rMED, wOpt and rwOpt to the results of Perfect. It is done over datasets in which the probability is normally distributed with means 0.3, 0.6 and 0.9, respectively. Each column is the average over three different start and target locations, and for 100 different interactive runs.
  • the present invention relates to a computerized system for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities of different types.
  • the system comprises:
  • a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes;
  • an input unit on the user personal device for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords and one or more constraints, said keywords describing the geographic entities the user wishes to visit, and said constraints describing the conditions said geographic entities have to meet in order to be relevant for the user;
  • a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords and constraints entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords and constraints related to each geographic entity;
  • an interaction manager on the user personal device for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after he visited said geographic entity and if the geographic entity visited was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type;
  • the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited the geographic entity the user indicates to the interaction manager whether the geographic entity visited was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has visited to his satisfaction n geographic entities matching the query the processing unit calculates the route to the target point.
  • the geo-spatial dataset is typically stored on a remote server that is accessible by the user personal device.
  • the user personal device can be a mobile telephone, a smart phone, a personal digital assistant (PDA), a car navigation system, a laptop computer, a tablet computer, a portable game console or any other portable and communicating device.
  • the user personal device can communicate with the geo-spatial dataset via wireless or wired communications lines.
  • the user personal device communicates with the geo-spatial dataset wireless Internet access such as WiFi or cellular data networks.
  • the geo-spatial dataset is stored on the user personal device itself.
  • most car navigation systems today work with local mapping and point of interest (POI) data, typically present in on a CD inserted to the car navigation system.
  • POI point of interest
  • the geo-spatial dataset can be stored in the user personal device and accessed locally.
  • the main advantage of storing the geo-spatial dataset locally on the user personal device is that access is faster and not dependent on the availability of a communications line to a remote server.
  • storing the geo-spatial dataset on a remote server makes updating the dataset easier as it is only updated in a single location.
  • a server can allocate stronger processing capabilities than those available on a user personal device.
  • the input unit on the personal user device can include, a full keyboard, a keypad (such as on a phone), a touch screen, a mouse, a stylus or other point devices, voice recognition or any combination thereof.
  • the processing unit that calculates the different routes can be the processor of the remote server where the geo-spatial data is stored, or alternatively the processor of the user handheld device if the geo-spatial dataset is stored locally on the user personal device.
  • the geospatial dataset is both stored locally (typically only a portion of the dataset, though it can be stored completely) and also stored on a remote server.
  • either the user personal device processor or the remote server processor can be used for calculating the different routes. It is also possible to use both processors locally and remotely for calculating the different routes.
  • the system of the invention creates the route gradually, in a series of steps while interacting with the user via the input unit and interaction manager.
  • the system provides only the next geographical entity on the route and the routing instructions how to get there.
  • the user goes to the entity and provides to the system via the input unit and the interaction manager feedback on whether the entity has satisfied her. The feedback is used when computing the rest of the route.
  • the system presents to the user a complete planned route, and modifies the suggested route whenever the user provides negative feedback after visiting a geographic entity that was not to her satisfaction, a feedback that changes the planned route and prompts the system to suggest an alternative geographic entity instead of the one that did not answer the user requirements.
  • a server that provides a planned route receives a query and provides a response.
  • Such server is stateless since after responding to the query, the server does not keep any information about the query or its response.
  • an interactive server is not stateless, and it must keep information about the session established with each user.
  • the server needs to know which user it is, what was his original query and proposed route and based on that information calculate the next geographic entity to be proposed to the user. In some cases the user will provide feedback about a geographic entity even without visiting the entity.
  • a user may be stuck in traffic or hear on the radio that there is a traffic jam in the area of the next geographic entity to be visited.
  • the user may indicate that the next geographic entity is not to his satisfaction, so that the system can suggest an alternative.
  • the user may get an update from a social network or a friend, for example, saying that the restaurant where the user is going to is crowded or not good. The user may then decide to look for an alternative and will again indicate to the system that this restaurant does not meet his requirements, even though he has not visited physically the restaurant.
  • the system takes into consideration how a user intends to travel and what are his travel preferences. For example, traveling by foot, bicycle or car will produce different routes: a pedestrian might walk a one-way street that a car cannot get in to, a car may go on the highway was a pedestrian or someone on a bicycle cannot go on the highway.
  • the user might also indicate other travel preferences, for example, to consider or not to consider toll roads, to select the fastest route, the shortest route, the simplest route (a route with the minimal amount of changes) etc.
  • Example 2 Considering the search task of Example 1, suppose that the first entity Alice receives from the system is a nearby Internet cafe. Alice will go to the place and will provide a feedback to the system on whether she has been able to read her email. If the answer is positive, the rest of the route does not need to visit an Internet cafe. If the answer is negative, the computation of the route continues and is required to satisfy the need for going by a place that provides Internet connection. When the user provides negative feedback after visiting a geographic entity, the next geographic entity suggested by the system does not have to be of the type just visited, but can be of a different type when it makes more sense to find a replacement later on the round.
  • computing routes iteratively can produce shorter routes than non-interactive evaluation. For instance, if a route goes via an entity of type T and the entity satisfies the user, there is no need to go by other entities of T. In the non-interactive approach, for comparison, it may be required to plan the route to go via several entities of type T so that if one will fail, another one may succeed. Thus, the iterative approach can shorten the length of the produced route.
  • Order constraints are used for letting the user specify the order by which some types of entities should be visited. For instance, in the scenario of Example 1, Alice may need to visit an ATM and an electronics store before going to an Internet cafe.
  • the order constraints may define a complete order that specifies for each pair of types which one should be visited first. It may also define a partial order that specifies the visit order for some pairs of types, but does not specify it for the others.
  • a geo-spatial dataset consists of a collection O of geo-spatial objects and a graph G of a road network that connects the objects.
  • Each object represents a real- world geographical entity and its location is the same as that of the entity.
  • An object may have additional spatial and non-spatial attributes. Height and shape are examples of spatial attributes. Address and name are examples of non-spatial attributes. We assume that locations are points and are unique, that is, different objects have different locations.
  • object For objects that are represented by a polygonal shape and do not have a specified point location, an arbitrary point inside them is chosen to be the point location.
  • entity For objects that are represented by a polygonal shape and do not have a specified point location, an arbitrary point inside them is chosen to be the point location.
  • shape For objects that are represented by a polygonal shape and do not have a specified point location, an arbitrary point inside them is chosen to be the point location.
  • geometric entity as referred herein are synonyms, although technically an object is a representation of a geographic entity.
  • Each edge in the graph G represents a segment of a real- world road and it has a length.
  • the length of an edge is the length of the road segment it represents. That is, an edge with length £ between two objects O 1 and O 2 represents a real-world road with length £ connecting O 1 and o 2 .
  • a path in G from node O 1 to node O 2 is a sequence of nodes O 1 , o 2 , . . . , o m , such that every two adjacent nodes o; and Oj +1 are connected by an edge of G.
  • the length of the path is the sum of the lengths of its edges, namely, length( ⁇ j, Oj +1 ).
  • the distance between two objects o and o' is the length of the shortest path that connects them.
  • a query is entered via the Input Unit of the user personal device.
  • a search query consists of a set of keywords and optionally a set of constraints. The keywords and the constraints determine which entities are likely to be relevant to the user.
  • the keywords describe the type of geographic entities the user is interested in. For example, a gas station of a particular brand.
  • the user has the option also to enter constraints that would further qualify the types of objects to be selected. For example, the user may specify two constraints for the gas station sought: open at 2:00 AM and accepting a particular credit card.
  • the constraints may also be of the type of order constraints, thus specifying in which sequence relevant objects should be visited, so order constraints describe properties of the path, rather than properties of specific types of relevant objects.
  • Example 3 Consider a query Q JV that comprises the set of keywords ⁇ Restaurant, Japanese, Vegetarian ⁇ and the constraint rank >3. This query searches for Japanese restaurants that serve vegetarian food and have a rank that is not below three.
  • the objects that are relevant to such a query can be determined by taking into account several factors: the number of keywords that appear in the attributes of each object, the "importance" of these keywords and the "importance" of the attributes in which they appear.
  • Ordinary search methods such as TF-JX)F, Okapi BM25 [3, 8] and others [10] can be applied to determine relevancy and are incorporated herein by reference.
  • the constraints can be used to specify exact conditions on specific attributes.
  • a relevant object is likely to satisfy the user's needs, but there is no guarantee.
  • a search engine may easily locate electronics stores, but it is typically impossible to guarantee the availability of a specific item (e.g., a battery for a laptop).
  • a specific item e.g., a battery for a laptop.
  • the data in the geo-spatial dataset is not up to date and the store has changed locations, has closed, or that the working hours have changed and the user arrives when the store is closed. Therefore, probabilities are used to specify the likelihood that relevant objects actually satisfy the user's needs.
  • the result of a search is represented as a probabilistic dataset, namely, each object is assigned a value 0 ⁇ p ⁇ 1, called probability of success (or probability, for short).
  • the probability of an object o specifies what is the likelihood that o represents an entity that actually satisfies the user's needs, rather than just having some relevancy to her query. For example, if the query is Q JV , then an object whose attributes contain the words "Japanese,” “Restaurant” and “Vegetarian” is more likely to satisfy the user's needs than an object that only contains some of these words. We denote the probability of an object o by prob( ⁇ ).
  • probabilities can be based on a statistical analysis of a large collection of queries to which users have provided a feedback on how satisfied they have been with the answers. From such statistics, heuristics and rules that provide an estimation of the probabilities can be derived. Alternatively, success estimates can be provided by experts rating the geographic entity, users rating the geographic entity or any combination thereof.
  • the system of the invention can work with all probabilities methods, and current and future probability estimation methods are considered to be part of the present invention.
  • Route-search queries are generated by combining several search queries that specify different types of entities through which the route should go.
  • search query typically with a sub-script
  • Example 3 - We denote by ⁇ a collection of several search queries that together constitute one component of a route-search query, as we explain later.
  • An order constraint on a route-search query Cl is a pair (d l5 Cl 2 ), where d ⁇ and Cl 1 are distinct search queries of d. Intuitively, this pair specifies that the user must visit an entity of the answer to CL ⁇ that satisfies her needs prior to arriving at an entity of the answer to Cl 1 . Users can add order constraints to a route-search query by specifying a set of such pairs.
  • C be a set of order constraints over Cl.
  • the precedence graph denoted by Gc
  • Gc is a directed graph whose nodes are the search queries of ⁇ and whose directed edges are the pairs of C.
  • C is a valid set of constraints if Gc is acyclic. It is easy to see that when there is a cycle in C, it is impossible to satisfy all the order constraints, because there are two queries such that each one should precede the other.
  • G c defines a complete order over Cl if it contains a Hamiltonian path, that is, a directed path that goes via all the elements of Cl. Otherwise, we say that G c defines a partial order.
  • a route-search query the user specifies a start location s, a target location /, a set Cl of search queries, and a set C of valid order constraints.
  • Example 4 Consider again Example 1.
  • the order constraints (Cl 2 ; Cl 4 ) and (CLT 1 ; Cl 4 ) specify that Alice should visit an ATM and an electronics store before going to the Internet cafe. Note that there is no order constraint that involves & ⁇ which means that a gas station can be located anywhere on the route.
  • the result of Cl 1 comprises the objects of the database that are relevant to CL 1 .
  • a 1 comprises the objects of the database that are relevant to CL 1 .
  • the sets A 1 ,. . . . ,A m are pairwise disjoint.
  • distinct search queries of Cl refer to different types of objects.
  • one search query is about hotels, another is concerning restaurants, etc.
  • a pre-answer to R is sequence s; O 1 , . . . , o k , t that starts at s, ends at t and goes via objects of the results A 1 , . . . ,A m , such that every A, has at least one object in the sequence.
  • the objects are visited in an order that conforms to the constraints of C. That is, for all o u and o l2 , where ⁇ ⁇ ⁇ i 2 , it holds that if O 11 belongs one object in the sequence.
  • the objects are visited in an order that conforms to the constraints of C. That is, for all Oj 1 and o a , where I 1 ⁇ i 2 , it holds that if Oj 1 belongs to A j 1 and Oj 2 belongs to A j2 , then Q j2 does not precede Q j1 (i.e., in Gc there is no path from Q j2 to Q j1 , so Q j2 -A Q j1 ).
  • the length of the route is the sum of the distances between consecutive objects, that is,
  • Answering route-search queries is traditionally done by computing a complete route from s to t that has a high probability-of-success and a short length [5].
  • An interactive search is different from the traditional approach in the following aspect. After visiting an entity, the user provides a feedback on whether the entity actually satisfies the corresponding search query, and only then does the system of the invention determine the next entity to be visited. In other words, instead of computing a complete route in advance, the route is computed incrementally. At each step, the system provides to the user a single object, which is the next one on the route.
  • the user After visiting the geographical entity that corresponds to the object, the user sends to the Interaction Manager information on whether the entity satisfies her needs, and based on that feedback, the next object on the route is computed.
  • the system may give to the user a complete route (that visits relevant objects of the search queries that still have to be satisfied). The system of the invention may change this route when negative feedback warrants doing so.
  • the computation of the route is influenced by the order constraints.
  • the corresponding search query is deemed satisfied.
  • the user can visit an entity only if the corresponding object o is an answer to a search query Q 1 , such that all the queries that precede Qi have already been satisfied.
  • the user goes to the target location t and the search ends.
  • there are m search queries in Q there is a need to visit exactly m entities that satisfy the user. Note that if all the objects of some answer set A 1 have already been visited, and none has satisfied the user, then there is no way to satisfy R. In this case, a failure message should be sent to the user and a new search should be initiated.
  • Each interactive algorithm for route search has two versions: one is for queries whose constraints define a complete order, and the second version is for queries whose constraints define a partial order.
  • All the algorithms operate over the objects in the answer sets A 1 , . . . ,A m of the search queries of Q, and they compute a route by iteratively increasing a partial sequence ⁇ .
  • the algorithms provide to the user the next object o ⁇ to be visited; thus, o ⁇ is added at the end of ⁇ .
  • the user When arriving at O k , the user provides a feedback regarding whether o k actually satisfies the corresponding search query (i.e., the query Q 1 , such that O k € A 1 ).
  • the feedback determines whether the objects of A 1 are still relevant to the search and whether Q 1 is satisfied.
  • q-unsat R ( ⁇ ) (Q 1 1 Q 1 € Q and " 1 B 0 (O G ⁇ ⁇ o € A 1 ⁇ o-sat(o)) ⁇ , where A 1 is the answer set for Q 1 .
  • the sequence ⁇ is extended by providing to the user the next object of the route.
  • the added object is chosen from a set of candidate objects, denoted by candidates R ( ⁇ ), that consists of all objects o, such that o has not yet been visited and its addition to ⁇ complies with the order constraints.
  • candidates R ( ⁇ ) that consists of all objects o, such that o has not yet been visited and its addition to ⁇ complies with the order constraints.
  • the naive greedy heuristic is a simple method that serves as a baseline; namely, more elaborate algorithms can be compared to it. In each iteration, this heuristic chooses the candidate object that is closest to the current location /. Note that / is s in the first iteration, and / is some O k in subsequent iterations.
  • q-unsat R ( ⁇ ) 0, all the queries of Cl have been satisfied, and hence, t is the next location and the computation ends.
  • the naive greedy heuristic chooses a candidate object o' that is nearest to /, namely, o' E candidates R ( ⁇ ) and
  • the naive greedy heuristic is simple and efficient. However, it suffers from the drawback of ignoring the location of the target t. Consequently, it may compute a route that drifts far away from t and is unnecessarily long, due to the distance from the last object to /.
  • One possible solution is to choose the next object o' based on the combined distance of o' from both the current location and t. This approach is likely to compute a route in the general direction toward t. But the route might progress too fast toward t, that is, within a few steps, the route will reach objects near t, even when there are many relevant objects in the vicinity of s and only a few near t.
  • the oriented greedy heuristic is aimed at solving the above problems by choosing the next object o 1 so that it will be near the current location as well as close to the straight line from s to t.
  • the algorithm computes for each candidate object o', the sum of distances dist(/, o') + dist(s, o')+dist(o', t), where / is the current location. Then the algorithm chooses a candidate object that minimizes this sum.
  • the main weakness of the greedy approach is that it picks the next object o' without taking into account how likely it is to complete the route from o' to t by traveling the shortest possible distance.
  • the algorithm can be improved by also considering the distance of the route that starts at o', passes through objects that satisfy the remaining search queries and ends at t.
  • the optimistic approach does that by computing at each iteration a complete route with respect to the search queries that still have to be satisfied.
  • the greedy approach has a local scope. Namely, it picks the next object o' without taking into account the likelihood that this choice would eventually lead to the shortest route that satisfies all the remaining queries.
  • the optimistic approach takes a global view by looking for the shortest route (from the current location to t) that might satisfy all the remaining search queries.
  • the optimistic approach algorithm computes the shortest pre-answer, that is, as short a route as possible from the start location to the end location via one object from each answer set A 1 , . . . ,A m .
  • the user follows this route till an object fails to satisfy the user after the user visited that object.
  • the optimistic approach algorithm computes a new route from the current location to t that goes via one object of each Aj, such that ⁇ j has not yet been satisfied.
  • the first step is to compute the shortest route from s to t that passes through one object of each answer set.
  • This is an NP -hard problem [6]. Therefore, we use the infrequent-first heuristic (IFH) of [6] for this task.
  • the user travels along the route computed by IFH until she encounters the first object ok that does not satisfy its corresponding search query.
  • the optimistic algorithm uses IFH to compute a new route (from the current location o ⁇ to t) that satisfies all the remaining search queries. Observe that the new route passes through exactly one object of each set Aj j D candidates R ( ⁇ ), where 1 ⁇ i ⁇ d and Aj j , . . . ,
  • Aj 0 J are the answer sets corresponding to the search queries of q-unsat R ( ⁇ ).
  • dist-t(o) passes through one object of each A j in the order of increasing j, and finally arrives at t.
  • the algorithm DistanceToTarget iterates through the answer sets in reverse order, that is, from A m to A 1 .
  • the loop of Lines 1-2 computes dist-t(o), which is simply the distance from o to t.
  • Line 3 iterates through the remaining answer sets.
  • the loop of Lines 4-5 computes dist-t(o) for all objects o of A 1 using the values computed for A 1+1 .
  • dist-t(o) is the minimum of the sum dist(o, o') + dist-t( ⁇ ') over all o' € A 1+1 .
  • the algorithm computes a route that satisfies the search queries Cl 1 in the order of increasing i. In each iteration, it suffices to compute only the next object to be visited, rather than a whole route.
  • Line 1 sets the current location to s.
  • the loop of Line 2 iterates through the answer sets A 1 in the order of increasing i. For each A 1 , the loop of Line 4 iterates over objects of A 1 until it finds one that satisfies Cl 1 .
  • the algorithm picks the object o of A 1 that appears on the shortest pre-answer (w.r.t. Cl 1 , . . .
  • Line 6 the user is informed to travel to o and provides her feedback.
  • Line 7 sets the current location to that of o.
  • the test of Line 8 checks whether o satisfies Ct 1 . If the test is positive, then Line 9 sets found to true, which means that the while loop of Line 4 terminates and the algorithm proceeds to the next iteration of Line 2. Otherwise (i.e., o does not satisfy (S 1 ), the object o is removed from A 1 and another iteration of the loop of Line 4 is done. If A 1 becomes empty before finding an object that satisfies Ct 1 , the algorithm terminates in Line 13 after notifying the user that the route cannot be completed. When the loop of Line 2 terminates (without reaching Line 13), the user is informed to travel to the target location.
  • the distance-to-target values are rather straightforward, because the shortest route from the current location to t is unique.
  • the shortest route may vary depending on the types of objects that have already been visited. As an example, suppose that there is no order constraint that involves Cl 1 ; that is, an object of A 1 may appear anywhere on the route. If the current location is an object o £ A J ; where j ⁇ i, then we should consider (at least) two distinct shortest routes from o to t; one of those routes visits an object of A 1 while the other does not. In other words, the distance-to-target value of o depends on whether an object of A, has already been visited or not. Thus, we should compute the distance-to-target value of o for each possible history, namely, each sequence of queries that have already been satisfied.
  • the actual distance-to-target value of o with regards to the sequence G 11 , . . . A f is the minimum over all the possible suffixes. This computation is based on the assumption that all the objects that correspond to the queries of a possible suffix G 1 , . . . A m are available, namely, none of them has already been visited and failed. However, this is not necessarily true, because the partial order implied by the constraints of C may allow objects corresponding to some G] (j ⁇ i) to be visited either before or after o. Therefore, the computed distance-to-target value is only an estimation.
  • EDT estimated-distance table
  • the EDT has a single entry, which maps the set ⁇ G ⁇ ⁇ to the shortest distance among the following two routes: (1) the shortest pre-answer from o 2 to t with respect to the complete order QaJSL ⁇ G ⁇ JSU, and (2) the shortest pre-answer from O 2 to t with respect to the complete order Q 2 ,Q 4 ,Q 3 ,Q 5 -
  • the optimistic approach starts the processing of a route-search query by constructing an EDT for every object.
  • q-sat R ( ⁇ ) Q-q-unsat R ( ⁇ )).
  • d ⁇ (o) be the value of that entry.
  • the next object to be visited is the one that minimizes the sum dist( ⁇ k , o)+d ⁇ (o), among all objects o that have an entry for q- sat R ( ⁇ ) in their EDT.
  • dist p instead of dist . This increases the distance to objects with a low probability of success in a manner that is inversely proportional to the probability.
  • the optimistic approach employs a best-case scenario by assuming that objects unquestionalby satisfy their corresponding search queries. That is, the next object to be visited is the first one on the shortest route that passes through one object of each answer set Ai, such that G ⁇ has not yet been satisfied.
  • a more realistic approach is to use an average-case analysis. The main idea is to choose the next object based on the expected, rather than the shortest, distance that still remains to be traveled. To formalize this notion, let 5 be the current location and consider an object o. The following is a recursive definition of the expected distance to be covered, given that 0 is the next object to be visited.
  • the MED algorithm considers only k candidate objects, namely, the top-k according to the oriented greedy heuristic (with relation to the current location).
  • the parameter k is provided by the user and in our experiments was usually equal to four.
  • the MED algorithm estimates the distances / s and / f using IFH.
  • the overall estimation obtained by Equation (1) is crude, because it only takes into account the probability of o, but not those of the objects visited after o. It can be calculated in this manner for efficiency considerations.
  • the algorithm estimates the expected distance given that objects must be visited in the order dictated by the constraints. It employs a heuristic that enforces a total order on the objects of the dataset D, thereby limiting the number of examined routes.
  • Line 3 uses a subroutine that returns an array E, such that for all objects o, the entry E[o] is an estimation of the expected distance covered by the shortest route that satisfies all the remaining search queries, starting with the one that corresponds to o.
  • the computation of E is described later on.
  • the loop of Line 5 iterates over the answer sets A x in the order of increasing i.
  • Line 7 iterates until it finds an object of A x that satisfies Cl x ; if eventually none is found, then the algorithm terminates in Line 9.
  • Line 10 chooses the next object o to be the one that minimizes the sum of the distance from the current location to o plus the expected length of a route from o to t. If o satisfies its corresponding query, then the algorithm proceeds to the next iteration of Line 5; otherwise, o is deleted from A x and another iteration of Line 7 is done.
  • 0 2 is defined arbitrarily.
  • E[o] denotes our estimation of the expected length of the shortest route from an object o of A x to t, such that the search queries CL 1 , . . . ,Cl 1n are satisfied.
  • E[o] is given by
  • E[o] prob( ⁇ ) ⁇ (dist(o; o s ) + E[o s ]) + (1 - prob(o)) • (dist(o, i f ) + E[o f ]) (2)
  • Compute ⁇ xpLen computes all the entries of E by traversing the objects of D from the largest to the smallest, according to - ⁇ , and using Equation (2).
  • the pseudo-code is presented in Fig. 4.
  • is a suffix of some element of Oc
  • is an i-sequence if ⁇ j is the first search query in ⁇ .
  • each subset corresponds to one E(o, S), where S is the set of search queries that appear before Q in all the F of the subset.
  • E(p, S) is assigned the minimum value in its corresponding subset.
  • a denotes the route traveled thus far
  • q-satR( ⁇ ) is the set of queries that have already been satisfied.
  • the algorithm MED for partial orders is similar to that of Fig. 3. The main difference is that the next object to be visited is the one that minimizes the sum dist(curr, o) + E[o, q-sat R ( ⁇ )] over all objects o, such that E[o, q-sat R ( ⁇ )] is defined, o has not yet been visited and its corresponding search query still has to be satisfied. If there is no such o, then the algorithm has failed to find a route. As usual, if the route ⁇ has satisfied all the search queries, then the user should travel to the target location t.
  • the optimistic approach computes the exact minimal distance (using the algorithm DistanceToTarget of Fig. 1) in the case of a complete order. As noted earlier, in the case of partial orders, the optimistic approach computes only an estimation of the minimal distance. The reason for that is that it takes into account the search queries that have already been satisfied, but not the possibility that some of the visited objects have failed.
  • the values of the minimal distances are computed in a preprocessing step. So, when they are actually used during the construction of a path, it could be that a specific value is based on using an object that has already been visited and failed; hence, this value is only an estimation.
  • a phantom object is used if the choice of the next object is based on a value of the minimal distance that incorporates an object that has already been visited.
  • the phenomenon of phantom objects can also occur in the MED algorithm for partial orders.
  • a simple solution to the effect of phantom objects is to do the following in each step of computing the next object to be visited. If the most-recently visited object has failed, then discard it and recalculate the estimations before determining the next object.
  • the Complexity of Computing a Step The complexity of the different algorithms will now analyzed. For interactive algorithms, the time complexity of computing an entire route is not useful because the algorithms are delayed by the need to wait for feedbacks from the user. So instead, we use the following two complexity measures.
  • the preprocessing complexity is the time complexity of the computation that is required for providing the first object of the route.
  • the step complexity is the time complexity of computing the next object on the route after at least one object has been computed.
  • the Naive Greedy and the Oriented Greedy algorithms require no preprocessing.
  • the computation of the first object on the route has the same time complexity as the computation of any other object on the route.
  • all the objects of the dataset D are examined.
  • these algorithms can be easily implemented to have O(n) preprocessing complexity and O(n) step complexity.
  • the Optimistic algorithm for the case of a complete order has a preprocessing step of computing the distance-to-target values. For each object of D, a value is computed by examining the distance from it to all the objects of the next set. Thus, the preprocessing has 0( ⁇ - ) time complexity. The computation of an object is done by choosing an object from a set of at most n objects. Hence, the step complexity is O(n).
  • the preprocessing has time complexity O ⁇ m ⁇ ).
  • the step complexity requires checking n objects and considering at most 2 m entries in the EDT of each object.
  • the step complexity is O(n2 m ).
  • the algorithm MED for the case of a complete order has a preprocessing step of computing the expected-distance values for the objects.
  • the objects of D ate sorted.
  • the sort has O(n log ⁇ ) time complexity.
  • An expected distance is computed
  • the preprocessing complexity is O(n ⁇ og n + - ⁇ - )_ ⁇ h e s t e p complexity requires choosing an object from an answer set, therefore, the step complexity is (Kn).
  • MED needs to create EDTs and use them in each step.
  • the preprocessing complexity requires considering m! orders, and hence, it is 0(m ⁇ (n log n + *£ ⁇ ).
  • the step complexity is 0(j ⁇ r), as for Optimistic with a partial order.
  • Example 6 In this example, a route search with five queries is considered.
  • the objects to be visited are depicted by plus, star, triangle, circle and square icons.
  • the route provided by the greedy algorithm is depicted with a solid line and some locations where the user provided a feedback are depicted as a number inside a circle.
  • the route that MED computed is depicted with a dashed line, and the locations where the user provided a feedback are shown as a number inside a square.
  • the result of one of the search queries consists of a single object, and it is depicted using a black square at the bottom left corner of the figure. Since there is only one such square, the route must go via this location.
  • MED "plans" the entire travel, and thus, it goes from the start location to the location of the black square. (This is also marked by the number 2 inside a square). Then, MED continues directly to the target location going via the other objects it needs to visit.
  • Example 7 The scenario depicted in Fig. 7 illustrates the superiority of MED over Optimistic.
  • the route-search query consists of three search queries whose results are depicted by plus, star and pentagon icons, respectively.
  • the pentagons represent cinemas.
  • cinemas have a probability of 0.7.
  • Optimistic computes the shortest route and reaches that cinema (shown as the number 1 in square near that cinema).
  • this cinema fails to satisfy the user.
  • the route continues to a cinema that is far from t (there is an icon of the number 2 inside a square near that cinema). So, in this scenario, Optimistic generates a route that frequently goes back and forth.
  • MED on the other hand, consider the case that the cinema near t will fail and hence, it visits cinemas on the way from s to t (these cinemas are marked by 1 and 2 in a circle). If cinema 1 fails, the route continues to 2 with only a small increase in the total length, whereas for the route of Optimistic, when the first cinema fails the increase in the length of the route is large.
  • Fig. 8 shows the results of the algorithms for the case where there are no order constraints. There are 120 complete orders in this case.
  • Fig. 9 shows the results for the case where there is a partial order. There are 20 complete orders in this case. The case of a complete order is presented in Fig. 10.
  • Fig. 11 presents the results of comparing the algorithms to Perfect. For each algorithm, it shows the average difference between the length of the route computed by the algorithm and the length of the route computed by Perfect. The results are shown for the cases where the means of the probabilities of the objects are 0.3, 0.6 and 0.9, respectively. Not surprisingly, for high probabilities the algorithms provide closer results to Perfect than for low probabilities.
  • This experiment also shows that MED is the most effective in all cases. Optimistic is effective when the probabilities are high, but it is not effective when the probabilities are low. This is because it applies an "optimistic" assumption and when the probabilities are low, this assumption is incorrect. The greedy approach wGre is relatively good when the probabilities are low, because in this case, most of the visited objects fail to satisfy the user, so not planning and going to the nearest object is a good strategy for this case.
  • Figs. 12-14 show the results of the different algorithms for a search over three datasets, where the probabilities are normally distributed with mean 0.3, 0.6 and 0.9, respectively.
  • the route-search query comprised three search queries, thus, the objects are partitioned into three categories. This experiment provides an additional affirmation to the effectiveness of MED.

Abstract

A system and method for calculating an interactive route search, where the user enters a query for locating several geographic entities of different types, and the result is a route that starts in a given location, ends in a specified target location, and goes via entities of different types that are relevant to the search. The input to the problem consists of several search queries described by keywords and constraints, where each query defines a type of geographical entities. When visited, the user confirms the entities that satisfied the user's requirements. In an interactive search, the route is computed in steps. In each step, only the next entity of the route is provided to the user. After successfully visiting geographic entities of the all the types provided in the query, the route is calculated to the target location.

Description

INTERACTIVE ROUTE SEARCH
TECHNICAL FIELD
The present invention relates in general to a system and method for calculating routes and in particular to a system and method for calculating routes that traverse multiple geographic entities.
BACKGROUND ART
People have become accustomed to using commercial search engines on the Internet in order to locate information, for example, geographic entities such as a restaurant of a specific type, an ATM, a gas station etc. Frequently, a user actually wants to visit those geographic entities suggested by the search engine. This requires providing the user not only with geographic entities that satisfy the search conditions the user entered, but also providing the user with a route that leads to these entities. The need for a route is intensified when several geographical searches are joined to render a combined search task. Forming a route in this case is a rather difficult task due to the need to decide which object (geographic entity) should be taken from the result of each search, how to order these objects, and whether to take more than one object from each result or category of search. The next example illustrates this.
Example 1 - Suppose that on her way from the office to a business meeting, Alice needs to fill up her gas tank, draw cash from an ATM, buy a new battery for her laptop, and go by a place where there is an Internet connection, in order to check her email. Suppose that Alice can conduct simple geographic searches using her cellular phone or car navigation system. She will be able to locate some nearby ATMs, some close gas stations, coffee shops that provide Internet connection, and electronics stores. However, combining the results of these individual geographic searches into a single and efficient route that eventually leads to the location of the meeting can be a hard task.
A route search, as the one in the example above, is a task of computing a route that starts at a given location, which is usually the location of the user, ends at a specified target location and goes via geographic entities of different types. The geographic entities are selected according to the user requirements as specified in the different search queries.
One of the difficulties when computing a route is dealing with uncertainty, namely, entities that are returned by the search queries, but actually may not satisfy the user needs once the user arrives to the geographic entity suggested. In the example above, Alice may find an electronics store that is located near the place of the meeting. Yet, upon arrival at the store, she may discover that the store does not have the specific battery she needs or that the store is currently closed. She may also find out that on her way, she passed close to some other electronics stores; however, now there is no such store near her and she needs to lengthen her travel or go back to a route segment she has already been through.
For dealing with uncertainty caused by entities that do not satisfy the user needs, a probabilistic model can be used to enhance the quality of the proposed route. In this type of model, each object (geographic entity) has a probability of success which is the probability that the geographic entity will satisfy the user needs. The probabilities can be generated from collected statistics or assigned by experts. Such statistics, for instance, may show that most of the people who search for an ATM are satisfied with the result of the search. In this case, ATMs will receive high probabilities. The statistics may show that in only 80 percent of the cases, people who search for a restaurant eventually order food in some restaurant that has been discovered in the search. In such a case, a restaurant entity will receive a probability of 0:8. User profiling can be used for adjusting the probabilities to specific users. For instance, the economic status of a user may increase the probability of some restaurants and decrease the probability of others. Information in the user profile or preferences a user indicated can also be taken into account when calculating probabilities. For example, a user that this profile indicated preferences for 5-star hotels may be more likely to be satisfied from an expensive restaurant then a user who has indicated preferences for budget hotels. The user history may also be relevant to the estimated rate of success of the geographic entity suggested. The same geographic entity may be ranked higher towards a user that was mostly in past ranking of similar establishments, compared to a more difficult user that was hard to satisfy in the past.
When calculating probabilities for an entity, the probabilities can be calculated in two manners. One way is to assign a unique probability for each entity without taking into consideration the user who originated the query. For example, restaurant A may be assigned a 70% probability of satisfying users based on past statistics of all users visiting that restaurant. Another way to assign probabilities is by also taking into consideration the particular user who generated the query. Taking into consideration the user profile, history and preferences can enable the system of the invention to adjust the probability of a particular object (entity) more closely for the actual user. For example, an expensive restaurant may have a "generic" probability of 70%, but if it is proposed to a user who's profile and/or history indicate strong preferences for expensive restaurants, the probability of success of that restaurant for that specific user might be adjust to higher value than 70%.
When computing a route over probabilistic data, there are two conflicting goals. One goal is that the route will be as short as possible. The other goal is that the route will go via objects (geographic entities) that have the highest possible probabilities of satisfying the user needs. Semantics and algorithms for route search over probabilistic data were investigated in a previous work [5] and are incorporated herein by reference.
Earlier works dealt either with non-probabilistic datasets (e.g., [1, 2, 7, 13, 14]), or with the non-interactive version of the problem (e.g., [9, 6]). Those results cannot be used to solve an interactive route-search problem. Recently, interactive route search over probabilistic data has been introduced and investigated in [4]. However, the work of [4] does not consider order constraints. As mentioned earlier, in the presence of order constraints, the problem requires more intricate algorithms. SUMMARY OF INVENTION
It is an object of the present invention to calculate a route from a starting point to a target point while traversing multiple geographic entities.
It is another object of the present invention to calculate a route from a starting point to a target point while traversing multiple geographic entities wherein each geographical entity is of a different type.
It is a further object of the present invention to calculate an interactive route from a starting point to a target point while traversing multiple types of geographic entities wherein the user has to confirm if the geographical entity visited was to his satisfaction.
It is yet another object of the present invention to calculate an interactive route from a starting point to a target point while traversing multiple types of geographic entities wherein if the user is not satisfied from a geographical entity visited, the system will keep directing him to other geographical entities of the same type, until one geographical entity visited satisfies his requirements.
It is yet a further object of the present invention to compute interactive routes that are as short as possible from a starting point to a target point.
The present invention thus relates to a computerized system for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities. The geographic entities are of different types (categories). The system comprises:
(i) a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes;
(ii) a user personal device connected to the geo-spatial dataset;
(iii) an input unit on the user personal device for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit,; (iv) a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity; and
(v) an interaction manager on the user personal device for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after he visited or intended to visit said geographic entity and if the geographic entity was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type; such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
The geo-spatial dataset can be located on a remote server that the user personal device can connect to. Alternatively, the geo-spatial dataset can be stored locally on the user personal device. It is also possible to have part of the geo-spatial dataset on the user device, and part on a remote server. For example, the user's home city can be kept locally for quick access, but if the user query's about geographic information for another city, that information is fetched from a remote server that the user personal device can connect to.
The user personal device can be a mobile telephone, a smart phone, a personal digital assistant (PDA), a car navigation system, a laptop computer, a tablet computer, a portable game console or any other portable and communicating device. In some embodiments of the present invention, the query further comprises one or more constraints describing the conditions said geographic entities have to meet in order to be relevant for the user.
In some embodiments of the present invention, one or more constraints indicate that some or all of the geographic entities are to be visited according to a predetermined order.
In some embodiments of the present invention, the processing unit calculates the next geographic entity to be visited by selecting a geographic entity that is the closet to the user's current location.
In some embodiments of the present invention, the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the expected minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point.
In some embodiments of the present invention, the processing unit calculates a route from the starting point to the end point going through n geographic entities matching the criteria of the query such that when a geographic entity fails to satisfy the user the processing unit recalculates a route from the current location to the target point going through the remaining geographic entities that have not yet been visited to the user's satisfaction.
In some embodiments of the present invention, the system of the invention further comprising a probability manager for assigning a probability of success for each geographic entity in the goe-spatial dataset, wherein the probability of success indicates the probability that the geographic entity would meet the requirements of the user.
In some embodiments of the present invention, the choice of the geographic entity further takes into account the probability of success assigned to each geographic entity.
In some embodiments of the present invention, the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with a minimal value for the distance to the user's current location divided by the probability of success for the same geographic entity.
In some embodiments of the present invention, the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point, divided by the probability of success for the same geographic entity.
The present invention further relates to a computerized method for interactively calculating a route from a start point to a destination point while traversing multiple geographic entities of different types, said method comprising the steps of:
(i) inputting from on a user personal device a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit,;
(ii) calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity; and
(iii) asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after he visited or intended to visit said geographic entity and if the geographic entity was not to the user's satisfaction the interaction manager instructs a processing unit to continue searching for geographic entities of the same type;
such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
In another aspect, the present invention relates to a mobile telephone for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities of different types, said mobile phone comprising:
(i) wireless or wired communications means to a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes;
(ii) an input unit for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit;
(iii) a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity; and
(iv) an interaction manager for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after the user visited or intended to visit said geographic entity and if the geographic entity was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type;
such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
The wireless or wired communication means of the mobile telephone comprise common present and future telephony communication capabilities such as: cellular telephony communications, third-generation cellular telephony communications, data communications, high-speed wireless communications, Internet communications, fϊxe-line telephony (PSTN) and any other available or future communication capabaility of a mobile telephone.
BRIEF DESCRIPTION OF DRAWINGS
Fig. 1 shows pseudo-code for computing the distance-to-target values in the
Optimistic algorithm of the invention.
Fig. 2 shows pseudo-code for the Optimistic algorithm of the invention when C defines a complete order.
Fig. 3 shows pseudo-code for the MED algorithm of the invention for route- search queries in which C defines a complete order.
Fig. 4 shows pseudo-code for the algorithm ComputeExpLen computing the expected distances for the MED Complete Order algorithm.
Fig. 5 shows a fragment of a map of Tel- Aviv used for experiments.
Fig. 6 shows a scenario in an experiment where the route computed by the Greedy algorithm of the invention (solid line) is significantly longer than the route computed by the MED algorithm of the invention (dashed line).
Fig. 7 shows a scenario in an experiment where the route computed by the Optimistic algorithm of the invention (solid line) is significantly longer than the route computed by the MED algorithm of the invention (dashed line).
Fig. 8 is a graph examining the effectiveness of the MED, Optimistic,
Oriented Greedy and Naive Greedy algorithms of the invention for the case where there are no order constraints. The x-axis shows lengths and for each length / the y- axis presents the percentage of routes that were created interactively and had a length of at most /. Fig. 9 is a graph examining the effectiveness of the MED, Optimistic,
Oriented Greedy and Naive Greedy algorithms of the invention for the case where there is a partial order. The x-axis shows lengths and for each length / the y-axis presents the percentage of routes that were created interactively and had a length of at most /.
Fig. 10 is a graph examining the effectiveness of the MED, Optimistic,
Oriented Greedy and Naive Greedy algorithms of the invention for the case where there is a complete order. The x-axis shows lengths and for each length / the y-axis presents the percentage of routes that were created interactively and had a length of at most /.
Fig. 11 shows the results of comparing the MED, Optimistic, Oriented Greedy and Naive Greedy algorithms of the invention to Perfect. For each algorithm, it shows the average difference between the length of the route computed by the algorithm and the length of the route computed by Perfect.
Fig. 12 shows the results of the different algorithms of the invention for a search over three datasets, where the probabilities are normally distributed with mean 0.3.
Fig. 13 shows the results of the different algorithms of the invention for a search over three datasets, where the probabilities are normally distributed with mean 0.6.
Fig. 14 shows the results of the different algorithms of the invention for a search over three datasets, where the probabilities are normally distributed with mean 0.9.
Fig. 15 is a graph comparing the results of MED, rMED, wOpt and rwOpt to the results of Perfect. It is done over datasets in which the probability is normally distributed with means 0.3, 0.6 and 0.9, respectively. Each column is the average over three different start and target locations, and for 100 different interactive runs.
MODES FORCARRYINGOUT THEINVENTION
In the following detailed description of various embodiments, reference is made to the accompanying drawings that form a part thereof, and in which are shown by way of illustration specific embodiments in which the invention may be practiced. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
In one aspect the present invention relates to a computerized system for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities of different types. The system comprises:
(i) a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes;
(ii) a user personal device connected to the geo-spatial dataset;
(iii) an input unit on the user personal device for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords and one or more constraints, said keywords describing the geographic entities the user wishes to visit, and said constraints describing the conditions said geographic entities have to meet in order to be relevant for the user;
(iv) a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords and constraints entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords and constraints related to each geographic entity; and
(v) an interaction manager on the user personal device for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after he visited said geographic entity and if the geographic entity visited was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type;
such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited the geographic entity the user indicates to the interaction manager whether the geographic entity visited was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has visited to his satisfaction n geographic entities matching the query the processing unit calculates the route to the target point.
The geo-spatial dataset is typically stored on a remote server that is accessible by the user personal device. The user personal device can be a mobile telephone, a smart phone, a personal digital assistant (PDA), a car navigation system, a laptop computer, a tablet computer, a portable game console or any other portable and communicating device. The user personal device can communicate with the geo-spatial dataset via wireless or wired communications lines. Typically, the user personal device communicates with the geo-spatial dataset wireless Internet access such as WiFi or cellular data networks.
In some embodiments of the present invention, the geo-spatial dataset is stored on the user personal device itself. For example, most car navigation systems today work with local mapping and point of interest (POI) data, typically present in on a CD inserted to the car navigation system. In a similar fashion, the geo-spatial dataset can be stored in the user personal device and accessed locally.
The main advantage of storing the geo-spatial dataset locally on the user personal device is that access is faster and not dependent on the availability of a communications line to a remote server. On the other hand, storing the geo-spatial dataset on a remote server makes updating the dataset easier as it is only updated in a single location. A server can allocate stronger processing capabilities than those available on a user personal device. Both storage options of the geo-spatial dataset, that is locally on the user personal device and on a remote server, are considered to be encompassed by the present invention.
The input unit on the personal user device can include, a full keyboard, a keypad (such as on a phone), a touch screen, a mouse, a stylus or other point devices, voice recognition or any combination thereof.
The processing unit that calculates the different routes can be the processor of the remote server where the geo-spatial data is stored, or alternatively the processor of the user handheld device if the geo-spatial dataset is stored locally on the user personal device. In some embodiments of the present invention, the geospatial dataset is both stored locally (typically only a portion of the dataset, though it can be stored completely) and also stored on a remote server. In this scenario, either the user personal device processor or the remote server processor can be used for calculating the different routes. It is also possible to use both processors locally and remotely for calculating the different routes.
In an interactive route search, initially the user poses a route-search query; however, instead of providing to the user just one complete and unchanging route, the system of the invention creates the route gradually, in a series of steps while interacting with the user via the input unit and interaction manager. In each step, the system provides only the next geographical entity on the route and the routing instructions how to get there. The user goes to the entity and provides to the system via the input unit and the interaction manager feedback on whether the entity has satisfied her. The feedback is used when computing the rest of the route. In some embodiments of the present invention, the system presents to the user a complete planned route, and modifies the suggested route whenever the user provides negative feedback after visiting a geographic entity that was not to her satisfaction, a feedback that changes the planned route and prompts the system to suggest an alternative geographic entity instead of the one that did not answer the user requirements.
There is an inherit design difference between a server that provides a planned route and a server that provides an interactive route. A server that provides a planned route, receives a query and provides a response. Such server is stateless since after responding to the query, the server does not keep any information about the query or its response. On the other hand, an interactive server is not stateless, and it must keep information about the session established with each user. When a user indicates that a geographic entity did not meet his requirements, the server needs to know which user it is, what was his original query and proposed route and based on that information calculate the next geographic entity to be proposed to the user. In some cases the user will provide feedback about a geographic entity even without visiting the entity. For example, a user may be stuck in traffic or hear on the radio that there is a traffic jam in the area of the next geographic entity to be visited. In these cases, the user may indicate that the next geographic entity is not to his satisfaction, so that the system can suggest an alternative. In another scenario, the user may get an update from a social network or a friend, for example, saying that the restaurant where the user is going to is crowded or not good. The user may then decide to look for an alternative and will again indicate to the system that this restaurant does not meet his requirements, even though he has not visited physically the restaurant. For simplifying the description, whenever it is written that a user gives feedback about a geographic entity after visiting it, the term "after visiting the geographic entity" should be interpreted to include also the scenarios where a user gives feedback about a geographic entity he intended to visit, but has not visited in reality.
In some embodiments of the present invention, the system takes into consideration how a user intends to travel and what are his travel preferences. For example, traveling by foot, bicycle or car will produce different routes: a pedestrian might walk a one-way street that a car cannot get in to, a car may go on the highway was a pedestrian or someone on a bicycle cannot go on the highway. The user might also indicate other travel preferences, for example, to consider or not to consider toll roads, to select the fastest route, the shortest route, the simplest route (a route with the minimal amount of changes) etc.
Example 2 - Considering the search task of Example 1, suppose that the first entity Alice receives from the system is a nearby Internet Cafe. Alice will go to the place and will provide a feedback to the system on whether she has been able to read her email. If the answer is positive, the rest of the route does not need to visit an Internet Cafe. If the answer is negative, the computation of the route continues and is required to satisfy the need for going by a place that provides Internet connection. When the user provides negative feedback after visiting a geographic entity, the next geographic entity suggested by the system does not have to be of the type just visited, but can be of a different type when it makes more sense to find a replacement later on the round.
For probabilistic datasets, computing routes iteratively can produce shorter routes than non-interactive evaluation. For instance, if a route goes via an entity of type T and the entity satisfies the user, there is no need to go by other entities of T. In the non-interactive approach, for comparison, it may be required to plan the route to go via several entities of type T so that if one will fail, another one may succeed. Thus, the iterative approach can shorten the length of the produced route.
Computing a route iteratively over a probabilistic dataset so that the route will be as short as possible is a difficult task. In the non-interactive case, the problem is NP-hard [5]. The interactive case is difficult as well for the following reason. For each geographic entity it is required to consider the consequences of both a success in satisfying the user and a failure to do so. Thus, although a single object (geographic entity) is chosen in each step, the choice can be affected by an exponential number of success scenarios.
Order constraints are used for letting the user specify the order by which some types of entities should be visited. For instance, in the scenario of Example 1, Alice may need to visit an ATM and an electronics store before going to an Internet Cafe. The order constraints may define a complete order that specifies for each pair of types which one should be visited first. It may also define a partial order that specifies the visit order for some pairs of types, but does not specify it for the others.
In the presence of order constraints, the route-search algorithms need to guarantee that the objects are visited in an order that satisfies the constraints. Thus, the constraints are an additional factor that makes it harder to devise algorithms for route search. The case of a partial order is more difficult to handle, because one has to consider all the complete orders that are consistent with the given partial order. In the case of a complete order, there is just one order to consider and that makes the problem conceptually and computationally easier. Geo-spatial Datasets
A geo-spatial dataset consists of a collection O of geo-spatial objects and a graph G of a road network that connects the objects. Each object represents a real- world geographical entity and its location is the same as that of the entity. An object may have additional spatial and non-spatial attributes. Height and shape are examples of spatial attributes. Address and name are examples of non-spatial attributes. We assume that locations are points and are unique, that is, different objects have different locations.
For objects that are represented by a polygonal shape and do not have a specified point location, an arbitrary point inside them is chosen to be the point location. The terms "object", "entity" and "geographic entity" as referred herein are synonyms, although technically an object is a representation of a geographic entity.
Each edge in the graph G represents a segment of a real- world road and it has a length. The length of an edge is the length of the road segment it represents. That is, an edge with length £ between two objects O1 and O2 represents a real-world road with length £ connecting O1 and o2. We use length(ol5 O2) to denote the length of this edge.
A path in G from node O1 to node O2 is a sequence of nodes O1, o2, . . . , om, such that every two adjacent nodes o; and Oj+1 are connected by an edge of G. The length of the path is the sum of the lengths of its edges, namely,
Figure imgf000018_0001
length(θj, Oj+1). The distance between two objects o and o' is the length of the shortest path that connects them.
We denote this distance by dist(o, o'). Efficient methods for computing the distance between objects over a road network were given by Samet et al. [11] and by Shahabi et al. [12].
Search Queries
Users employ search queries to specify the entities that they would like to visit. A query is entered via the Input Unit of the user personal device. A search query consists of a set of keywords and optionally a set of constraints. The keywords and the constraints determine which entities are likely to be relevant to the user.
The keywords describe the type of geographic entities the user is interested in. For example, a gas station of a particular brand. In order to fine-tune the search even more, the user has the option also to enter constraints that would further qualify the types of objects to be selected. For example, the user may specify two constraints for the gas station sought: open at 2:00 AM and accepting a particular credit card. The constraints may also be of the type of order constraints, thus specifying in which sequence relevant objects should be visited, so order constraints describe properties of the path, rather than properties of specific types of relevant objects.
Example 3 - Consider a query QJV that comprises the set of keywords {Restaurant, Japanese, Vegetarian} and the constraint rank >3. This query searches for Japanese restaurants that serve vegetarian food and have a rank that is not below three.
The objects that are relevant to such a query can be determined by taking into account several factors: the number of keywords that appear in the attributes of each object, the "importance" of these keywords and the "importance" of the attributes in which they appear. Ordinary search methods, such as TF-JX)F, Okapi BM25 [3, 8] and others [10], can be applied to determine relevancy and are incorporated herein by reference. The constraints can be used to specify exact conditions on specific attributes.
Relevancy, however, does not mean certainty. That is, a relevant object is likely to satisfy the user's needs, but there is no guarantee. For example, a search engine may easily locate electronics stores, but it is typically impossible to guarantee the availability of a specific item (e.g., a battery for a laptop). It also happens that the data in the geo-spatial dataset is not up to date and the store has changed locations, has closed, or that the working hours have changed and the user arrives when the store is closed. Therefore, probabilities are used to specify the likelihood that relevant objects actually satisfy the user's needs. Formally, the result of a search is represented as a probabilistic dataset, namely, each object is assigned a value 0 <p < 1, called probability of success (or probability, for short). The probability of an object o specifies what is the likelihood that o represents an entity that actually satisfies the user's needs, rather than just having some relevancy to her query. For example, if the query is QJV, then an object whose attributes contain the words "Japanese," "Restaurant" and "Vegetarian" is more likely to satisfy the user's needs than an object that only contains some of these words. We denote the probability of an object o by prob(ø).
There are many different ways to determine the probability of success for objects in the result of a search. Such probabilities can be based on a statistical analysis of a large collection of queries to which users have provided a feedback on how satisfied they have been with the answers. From such statistics, heuristics and rules that provide an estimation of the probabilities can be derived. Alternatively, success estimates can be provided by experts rating the geographic entity, users rating the geographic entity or any combination thereof. The system of the invention can work with all probabilities methods, and current and future probability estimation methods are considered to be part of the present invention.
Route-Search Queries
Route-search queries are generated by combining several search queries that specify different types of entities through which the route should go. We use Cl
(typically with a sub-script) to denote a search query, such as the one given in
Example 3 - We denote by β a collection of several search queries that together constitute one component of a route-search query, as we explain later.
An order constraint on a route-search query Cl is a pair (d l5 Cl 2), where d\ and Cl1 are distinct search queries of d. Intuitively, this pair specifies that the user must visit an entity of the answer to CL\ that satisfies her needs prior to arriving at an entity of the answer to Cl1. Users can add order constraints to a route-search query by specifying a set of such pairs.
Let C be a set of order constraints over Cl. The precedence graph, denoted by Gc, is a directed graph whose nodes are the search queries of β and whose directed edges are the pairs of C. When there is a path in Gc from some query d\ to a query Cl2, we say that (S1 precedes Cl2 and we denote this by d\ -< Cl2. We say that C is a valid set of constraints if Gc is acyclic. It is easy to see that when there is a cycle in C, it is impossible to satisfy all the order constraints, because there are two queries such that each one should precede the other.
We say that Gc defines a complete order over Cl if it contains a Hamiltonian path, that is, a directed path that goes via all the elements of Cl. Otherwise, we say that Gc defines a partial order.
In a route-search query, the user specifies a start location s, a target location /, a set Cl of search queries, and a set C of valid order constraints. Hence, we represent a route-search query as a 4-tuple R = (s, t,fi!,C).
Example 4 - Consider again Example 1. A suitable route-search query for Alice should include (1) the location s of her office, (2) the location t where the meeting should be held, and (3) the following four search queries: &\ = {gas station}, (S2 = {ATM}, Cl3 = {laptop battery}, and Cl4 = {Internet Cafe}. The order constraints (Cl2; Cl4) and (CLT1; Cl4) specify that Alice should visit an ATM and an electronics store before going to the Internet Cafe. Note that there is no order constraint that involves &\ which means that a gas station can be located anywhere on the route.
Consider a route-search query R = (s, t, Cl, C), where Cl is the set {&l, . . . ,
CLm) g of search queries. The result of Cl1, denoted by A1, comprises the objects of the database that are relevant to CL1. We assume that the sets A1,. . . . ,Am are pairwise disjoint. In other words, distinct search queries of Cl refer to different types of objects. For example, one search query is about hotels, another is concerning restaurants, etc. A pre-answer to R is sequence s; O1, . . . , ok, t that starts at s, ends at t and goes via objects of the results A1, . . . ,Am, such that every A, has at least one object in the sequence. The objects are visited in an order that conforms to the constraints of C. That is, for all ou and ol2 , where \\ < i2, it holds that if O11 belongs one object in the sequence. The objects are visited in an order that conforms to the constraints of C. That is, for all Oj1 and oa , where I1 < i2, it holds that if Oj1 belongs to Aj 1 and Oj2 belongs to Aj2 , then Qj2 does not precede Qj1 (i.e., in Gc there is no path from Qj2 to Qj1 , so Qj2 -A Qj1).
The length of the route is the sum of the distances between consecutive objects, that is,
Dist (S, O1) +∑|=1 dist(Oi, oi+1) + dist(ok,t).
Interactive Search
Answering route-search queries is traditionally done by computing a complete route from s to t that has a high probability-of-success and a short length [5]. An interactive search is different from the traditional approach in the following aspect. After visiting an entity, the user provides a feedback on whether the entity actually satisfies the corresponding search query, and only then does the system of the invention determine the next entity to be visited. In other words, instead of computing a complete route in advance, the route is computed incrementally. At each step, the system provides to the user a single object, which is the next one on the route. After visiting the geographical entity that corresponds to the object, the user sends to the Interaction Manager information on whether the entity satisfies her needs, and based on that feedback, the next object on the route is computed. Alternatively, the system may give to the user a complete route (that visits relevant objects of the search queries that still have to be satisfied). The system of the invention may change this route when negative feedback warrants doing so.
The computation of the route is influenced by the order constraints. When the user visits an entity that meets her needs, the corresponding search query is deemed satisfied. In each step, the user can visit an entity only if the corresponding object o is an answer to a search query Q1, such that all the queries that precede Qi have already been satisfied. When all the queries have been satisfied, the user goes to the target location t and the search ends. Recall that when there are m search queries in Q, there is a need to visit exactly m entities that satisfy the user. Note that if all the objects of some answer set A1 have already been visited, and none has satisfied the user, then there is no way to satisfy R. In this case, a failure message should be sent to the user and a new search should be initiated.
When the order defined by C is complete, then in each step the user can visit only objects of one answer set. Hence, answering a route-search query when the constraints define a complete order is simpler than in the case of a partial order.
ALGORITHMS
Each interactive algorithm for route search has two versions: one is for queries whose constraints define a complete order, and the second version is for queries whose constraints define a partial order. All the algorithms operate over the objects in the answer sets A1, . . . ,Am of the search queries of Q, and they compute a route by iteratively increasing a partial sequence σ. Initially, the partial sequence comprises only the start location, namely, σ = s. On each iteration, the algorithms provide to the user the next object o^ to be visited; thus, o^ is added at the end of σ. When arriving at Ok, the user provides a feedback regarding whether ok actually satisfies the corresponding search query (i.e., the query Q1, such that Ok€ A1). The feedback determines whether the objects of A1 are still relevant to the search and whether Q1 is satisfied. For each object o in the sequence σ, we denote by o-sat(o) the feedback received for o. When this feedback is true, it means that the object satisfies the corresponding search query. Otherwise (i.e., in the case of a false feedback), the object does not satisfy the query.
On each iteration, an object is chosen from the answers to the queries that have not yet been satisfied. The formal definition of the set from which the object is chosen is now proposed. Consider a route-search query R = (s, t, Q, C), where Q= Q1, . . . ,Qm- Let σ = 5, O1, . . . , Ok be the partial sequence computed so far. The unsatisfied queries of R are all the queries Q1, such that σ has no object that satisfies Q1. In other words, we use q-unsatR(σ) to denote the set of these queries and define q-unsatR(σ) = (Q1 1 Q1€ Q and "1B0(O G σ Λ o€ A1 Λ o-sat(o))}, where A1 is the answer set for Q1.
In each iteration, the sequence σ is extended by providing to the user the next object of the route. The added object is chosen from a set of candidate objects, denoted by candidatesR(σ), that consists of all objects o, such that o has not yet been visited and its addition to σ complies with the order constraints. In order to compute the set of candidate objects, consider the precedence graph Gc that is generated from the order constraints C. Let Gunsat be the induced subgraph of Gc w.r.t. the unsatisfied queries of q-unsatR(σ). That is, Gunsat is obtained from Gc by removing all the satisfied queries and their incident edges. Let (S0 be the set of nodes of Gunsat with no incoming edges (i.e., queries that have no preceding query in Gunsat). Then, o is a candidate object if o does not appear in σ and is an answer to some query of CIQ. When Cl0 is the empty set, all the queries have been satisfied (i.e., q-unsatR(σ) =
0) and the route must continue to the end location t. If there is no candidate object and CIQ is not empty, then the route-search query R cannot be satisfied. Note that when C defines a complete order on CL, then in each iteration (except for the last one where &Q is empty), (S0 contains exactly one query and thus all the candidate objects are answers to the same query.
Naive Greedy Heuristic
The naive greedy heuristic is a simple method that serves as a baseline; namely, more elaborate algorithms can be compared to it. In each iteration, this heuristic chooses the candidate object that is closest to the current location /. Note that / is s in the first iteration, and / is some Ok in subsequent iterations. Formally, when q-unsatR(σ) = 0, all the queries of Cl have been satisfied, and hence, t is the next location and the computation ends. When q-unsatR(σ)≠0, the naive greedy heuristic chooses a candidate object o' that is nearest to /, namely, o' E candidatesR(σ) and
dist(/, o') = min {dist(I, o) | o€ candidatesR(σ)}. Oriented Greedy Heuristic
The naive greedy heuristic is simple and efficient. However, it suffers from the drawback of ignoring the location of the target t. Consequently, it may compute a route that drifts far away from t and is unnecessarily long, due to the distance from the last object to /. One possible solution is to choose the next object o' based on the combined distance of o' from both the current location and t. This approach is likely to compute a route in the general direction toward t. But the route might progress too fast toward t, that is, within a few steps, the route will reach objects near t, even when there are many relevant objects in the vicinity of s and only a few near t.
The oriented greedy heuristic is aimed at solving the above problems by choosing the next object o1 so that it will be near the current location as well as close to the straight line from s to t. In order to do so, the algorithm computes for each candidate object o', the sum of distances dist(/, o') + dist(s, o')+dist(o', t), where / is the current location. Then the algorithm chooses a candidate object that minimizes this sum.
Optimistic Approach
The main weakness of the greedy approach is that it picks the next object o' without taking into account how likely it is to complete the route from o' to t by traveling the shortest possible distance. In other words, the algorithm can be improved by also considering the distance of the route that starts at o', passes through objects that satisfy the remaining search queries and ends at t. The optimistic approach does that by computing at each iteration a complete route with respect to the search queries that still have to be satisfied. We can say that the greedy approach has a local scope. Namely, it picks the next object o' without taking into account the likelihood that this choice would eventually lead to the shortest route that satisfies all the remaining queries. The optimistic approach takes a global view by looking for the shortest route (from the current location to t) that might satisfy all the remaining search queries.
The optimistic approach algorithm computes the shortest pre-answer, that is, as short a route as possible from the start location to the end location via one object from each answer set A1, . . . ,Am. The user follows this route till an object fails to satisfy the user after the user visited that object. When that happens, the optimistic approach algorithm computes a new route from the current location to t that goes via one object of each Aj, such that βj has not yet been satisfied.
This approach is "optimistic" in the sense that it ignores the probabilities of success of each object and at each step, the route is computed under the assumption that all the relevant objects satisfy their corresponding queries. If this assumption holds, the shortest pre-answer is indeed the optimal solution. Next, are explained below in more detail the two versions of this approach: for queries with constraints that define a complete order, and for queries where the order is partial.
The first step is to compute the shortest route from s to t that passes through one object of each answer set. Unfortunately, this is an NP -hard problem [6]. Therefore, we use the infrequent-first heuristic (IFH) of [6] for this task. The user travels along the route computed by IFH until she encounters the first object ok that does not satisfy its corresponding search query. When that happens, the optimistic algorithm uses IFH to compute a new route (from the current location o^ to t) that satisfies all the remaining search queries. Observe that the new route passes through exactly one object of each set Aj j D candidatesR(σ), where 1 <i <d and Aj j , . . . ,
Aj0J are the answer sets corresponding to the search queries of q-unsatR(σ).
Optimistic Approach for Complete Order
For route-search queries R = (s, t, d, C) whose constraints define a complete order, the shortest pre-answer can be efficiently computed. Without loss of generality, suppose that the constraints define the order ^1, . . . Mm over the queries of (S, (i.e., objects Of ^1 should be visited first, then objects of Gl2, after that objects of β3, and so on.) Consider the answer sets A1, . . . ,Am of R. The algorithm DistanceToTarget of Fig. 1 computes for each o E Aj (1 <i ≤m), the minimal distance of a route that starts at o and fory = H- 1, . . . ,m, passes through one object of each Aj in the order of increasing j, and finally arrives at t. We denote this minimal distance by dist-t(o) and refer to it as the distance-to-target of o. The algorithm DistanceToTarget iterates through the answer sets in reverse order, that is, from Am to A1. For all objects o of Am, the loop of Lines 1-2 computes dist-t(o), which is simply the distance from o to t. Line 3 iterates through the remaining answer sets. The loop of Lines 4-5 computes dist-t(o) for all objects o of A1 using the values computed for A1+1. In particular, dist-t(o) is the minimum of the sum dist(o, o') + dist-t(ø') over all o'€ A1+1.
Fig. 2 gives the optimistic algorithm for route-search queries R = (s, t, Ct, C) where C defines a complete order. The algorithm computes a route that satisfies the search queries Cl1 in the order of increasing i. In each iteration, it suffices to compute only the next object to be visited, rather than a whole route. Line 1 sets the current location to s. The loop of Line 2 iterates through the answer sets A1 in the order of increasing i. For each A1, the loop of Line 4 iterates over objects of A1 until it finds one that satisfies Cl1. In Line 5, the algorithm picks the object o of A1 that appears on the shortest pre-answer (w.r.t. Cl1, . . . ,Cl1n) from the current location to t. In Line 6, the user is informed to travel to o and provides her feedback. Line 7 sets the current location to that of o. The test of Line 8 checks whether o satisfies Ct1. If the test is positive, then Line 9 sets found to true, which means that the while loop of Line 4 terminates and the algorithm proceeds to the next iteration of Line 2. Otherwise (i.e., o does not satisfy (S1), the object o is removed from A1 and another iteration of the loop of Line 4 is done. If A1 becomes empty before finding an object that satisfies Ct1, the algorithm terminates in Line 13 after notifying the user that the route cannot be completed. When the loop of Line 2 terminates (without reaching Line 13), the user is informed to travel to the target location.
Optimistic Approach for Partial Order
In the case of a complete order, computing the distance-to-target values is rather straightforward, because the shortest route from the current location to t is unique. In the case of a partial order, the shortest route may vary depending on the types of objects that have already been visited. As an example, suppose that there is no order constraint that involves Cl1; that is, an object of A1 may appear anywhere on the route. If the current location is an object o £ AJ ; where j≠i, then we should consider (at least) two distinct shortest routes from o to t; one of those routes visits an object of A1 while the other does not. In other words, the distance-to-target value of o depends on whether an object of A, has already been visited or not. Thus, we should compute the distance-to-target value of o for each possible history, namely, each sequence of queries that have already been satisfied.
Formally, we first construct the set Oc of all the complete orders over G that conform to the constraints of C. Next, consider an object o€ A1. We have to compute for o a distance-to-target value for each sequence Cl11 , : : : Af of distinct search queries, such that G11 , . . . ,β,f ,G1 is a prefix of some element of Oc. We do it by considering every suffix <S,g , . . . Am, such that G11 , . . . ,G1, G1, G,g ; : : : ;<2,m is in Oc- We compute the distance-to-target value of o w.r.t. the complete order G11 , . .
. Af ,G1, G,g , . . . Am using the algorithm of Fig. 1. The actual distance-to-target value of o with regards to the sequence G11 , . . . Af is the minimum over all the possible suffixes. This computation is based on the assumption that all the objects that correspond to the queries of a possible suffix G1 , . . . Am are available, namely, none of them has already been visited and failed. However, this is not necessarily true, because the partial order implied by the constraints of C may allow objects corresponding to some G] (j ≠i) to be visited either before or after o. Therefore, the computed distance-to-target value is only an estimation. In summary, we create for each object o an estimated-distance table (EDT) that maps sequences of search queries to distance-to-target values. Finally, observe that if two sequences consist of exactly the same queries, then the same value is computed for both. Hence, the entries of an EDT are subsets of G rather than sequences. The following example illustrates what are the entries of an EDT.
Example 5 - Consider a route-search query where G = ((S1AAAA) and
C = [Gx -< G2, G2 -< β3, G2 < G4, G3 -< G5, G4 ^ G5]. There are two complete orders to consider: (S1A5(S3A5(S5 and (S1AA5(S35(S5. Now, for an object O2 in the result of G2, the EDT has a single entry, which maps the set {G\} to the shortest distance among the following two routes: (1) the shortest pre-answer from o2 to t with respect to the complete order QaJSL^G^JSU,, and (2) the shortest pre-answer from O2 to t with respect to the complete order Q2,Q4,Q3,Q5-
For an object O3 in the result of (S3 there are two entries in the EDT, one is for the set (CIuG2) and the other is for the set (CH,G2tGA).
The optimistic approach starts the processing of a route-search query by constructing an EDT for every object. The route is computed in stages as follows. Let σ = 5, O1, . . . , Ok be the sequence of objects visited thus far (note that initially σ = s). We use q-satR(σ) to denote the set of queries that have been satisfied by a (i.e., q-satR(σ) = Q-q-unsatR(σ)). For an object o that has an entry for q-satR(σ) in its EDT, let dσ(o) be the value of that entry. The next object to be visited is the one that minimizes the sum dist(θk, o)+dσ(o), among all objects o that have an entry for q- satR(σ) in their EDT.
Letting The Probability Affect the Route
When computing a route, the greedy algorithms and the optimistic algorithms consider only the distances between objects, but ignore the probabilities.
One way to add to these algorithms the effect of the probabilities is by changing the distance function as follows. For every two objects O1 and O2, the distance function distp(ob O2) is defined to be dist(ol5 o2)=prob(o2). We can now use distp instead of dist . This increases the distance to objects with a low probability of success in a manner that is inversely proportional to the probability.
Minimizing the Expected Distance (MED)
The optimistic approach employs a best-case scenario by assuming that objects unquestionalby satisfy their corresponding search queries. That is, the next object to be visited is the first one on the shortest route that passes through one object of each answer set Ai, such that G\ has not yet been satisfied. A more realistic approach is to use an average-case analysis. The main idea is to choose the next object based on the expected, rather than the shortest, distance that still remains to be traveled. To formalize this notion, let 5 be the current location and consider an object o. The following is a recursive definition of the expected distance to be covered, given that 0 is the next object to be visited. There are some expected distances is and £f from o to the target location, depending on whether o succeeds (i.e., satisfies its corresponding query keywords and constraints and the user approves the entity after actually visiting it) or fails, respectively. More precisely, the user travels until she either arrives at t or discovers that one of her search queries cannot be satisfied. The expected distance is computed by considering all the routes that the user may travel and the probability of each one. Thus, given that o is the next object, the expected distance from the current to the target location is the following sum.
dist(s, ό) + prob(o) 4 + (1 - prob(o)) £f (1) In the MED approach, the next object o to be visited is one that minimizes the above sum.
Computing the expected distance for an object o is not easy. First, there could be an exponential number of pre-answers that need to be considered. Second, we should avoid pre-answers that visit the same object more than once, which means that when constructing the pre-answers, we should keep the entire history (i.e., the visited objects) of each one— doing so for an exponential number of pre- answers is impractical. Hence, we use heuristics that estimate the expected distance, rather than compute it precisely.
For the sake of efficiency, the MED algorithm considers only k candidate objects, namely, the top-k according to the oriented greedy heuristic (with relation to the current location). The parameter k is provided by the user and in our experiments was usually equal to four. The MED algorithm estimates the distances /s and /f using IFH. Thus, the overall estimation obtained by Equation (1) is crude, because it only takes into account the probability of o, but not those of the objects visited after o. It can be calculated in this manner for efficiency considerations.
MED for Complete Order
Hereinafter is described the version of MED for route-search queries with a complete order. The algorithm estimates the expected distance given that objects must be visited in the order dictated by the constraints. It employs a heuristic that enforces a total order on the objects of the dataset D, thereby limiting the number of examined routes.
The algorithm is presented in Fig. 3. Line 3 uses a subroutine that returns an array E, such that for all objects o, the entry E[o] is an estimation of the expected distance covered by the shortest route that satisfies all the remaining search queries, starting with the one that corresponds to o. The computation of E is described later on. The loop of Line 5 iterates over the answer sets Ax in the order of increasing i.
The loop of Line 7 iterates until it finds an object of Ax that satisfies Clx; if eventually none is found, then the algorithm terminates in Line 9. Line 10 chooses the next object o to be the one that minimizes the sum of the distance from the current location to o plus the expected length of a route from o to t. If o satisfies its corresponding query, then the algorithm proceeds to the next iteration of Line 5; otherwise, o is deleted from Ax and another iteration of Line 7 is done.
Next, is described how to compute the estimation E[o] for all objects o G D. First, we define the order -< over the objects of D as follows. If O1€ Ax, O2€ A1 and
1 <j, then naturally O1 -< o3, because objects of Ax must be visited before objects of A). In order to define -< for objects of the same answer set Ax, we partition the straight line from s to t into m + 1 equal intervals. Let the sequence of points po, Pι,■
•■■> Pm, An+i describe this partition, where po = s and />m+i = t. In other words, the intervals \px, /?1+1] (0 <i≤m) cover the straight line from s to t, they are disjoint and have the same length. Objects of the same answer set Ax are ordered according to their distance from /ή. That is, O1 *< O2 if O1 and O2 are both in Ax and dist(ol5 P1) < dist(o2, px). In case of a tie (i.e., dist(ol5 p,) = dist(o2, px)), the order between O1 and
02 is defined arbitrarily.
The rationale for the above definition is to prefer objects that are closer to the line from s to t and, in particular, objects whose distance from s is linearly proportional to their position on a possible route. In other words, the goal is to choose the next object so that it will be in the direction toward to t, but not too close to t, in order to avoid routes that unnecessarily go back and forth. When estimating the expected length of a route, we should take into account the possibility that some search queries are not satisfied by any object. To do it properly, we define for each answer set Ax a penalty that amounts to the length of a route that goes through all the objects of A1 (which must be done when CL1 cannot be satisfied). That is, penalty^,) =∑7=i ^K0] °l+i ), where the route °1, . . . , °fc passes exactly through all the objects of A1 from the smallest to the largest, according to the order -<.
Recall that E[o] denotes our estimation of the expected length of the shortest route from an object o of Ax to t, such that the search queries CL1, . . . ,Cl1n are satisfied. E[o] is given by
E[o] = prob(ø) (dist(o; os) + E[os]) + (1 - prob(o)) (dist(o, if ) + E[of ]) (2) where os and of are defined as follows. If o succeeds, then an object of Ai+\ should be visited next. Therefore, we choose os from the objects of Ax+\ so that the sum dist(o, os)+E[os] is minimized, except that os is t if / = m (note that by definition, E[t] = 0). If o fails, then another object of A1 should be visited next. To avoid an exponential computation, we choose Of from the objects of A, that are larger than o according to -^. In particular, of is picked out so that the sum dist(o, of ) + E[of ] is minimized; however, if o is the last object of A1 (according to -<), then we replace the sum dist(o, of )+E[øf] with penalty(_4,), because none of the objects of Ax satisfies (S1.
The algorithm ComputeΕxpLen computes all the entries of E by traversing the objects of D from the largest to the smallest, according to -<, and using Equation (2). The pseudo-code is presented in Fig. 4.
MED for Partial Order
The adaptation of MED to partial orders is obtained in a way similar to how it was done in the case of the optimistic approach. An estimation of the expected distance has to be computed for every pair (o, S), such that o is an object in the answer set of some query and S is a subset of CL that represents a possible history, namely, the search queries of Shave already been satisfied before arriving at o. Formally, let S be a subset of (2 and Σ be a sequence #jg , . . . ,βjm of distinct search queries. Recall that Oc is the set of all the complete orders implied by the constraints of C. We say that Σ is consistent with S if the following holds.
1. Σ is a suffix of some element of Oc,
2. No search query appears in both S and Σ; and
3. Every search query of Cl appears in either S or Σ.
We say that Σ is an i-sequence if βj is the first search query in Σ.
Consider an object o€ A[. The array E (of estimations) of expected distances has an entry for every pair (o, S), such that S ^ Q and there is some i-sequence Σ that is consistent with S. The value E(o, S) is computed as follows.
Let Σ be an i-sequence that is consistent with S. We apply the algorithm
ComputeExpLen of Fig. 4 with regards to the complete order Σ (while ignoring objects corresponding to search queries that do not appear in Σ). We do it for every i-sequence that is consistent with S. The minimum value computed for o, over all the i-sequences that are consistent with S, is assigned to E(o, S).
The above description of how to compute E(o, S) is not the most efficient way of doing it. In fact, it suffices to apply the algorithm ComputeExpLen of Fig. 4 once for each complete order of Oo (Recall that Oc is the set of complete orders implied by the constraints of C) If we do it in this way, then we actually compute values of the form E[o, T], where F G Oc. Let F<o> denote the suffix of F that starts at the Q corresponding to o. E{o, S) is the minimum over all E\o,\ F], such that F<o> is consistent with S.
More specifically, for each object o, we need to divide all the E[o, F] into subsets, such that in each one all the F have the same search queries appearing before (Sj. Thus, each subset corresponds to one E(o, S), where S is the set of search queries that appear before Q in all the F of the subset. E(p, S) is assigned the minimum value in its corresponding subset.
As earlier, a denotes the route traveled thus far, and q-satR(σ) is the set of queries that have already been satisfied. The algorithm MED for partial orders is similar to that of Fig. 3. The main difference is that the next object to be visited is the one that minimizes the sum dist(curr, o) + E[o, q-satR(σ)] over all objects o, such that E[o, q-satR(σ)] is defined, o has not yet been visited and its corresponding search query still has to be satisfied. If there is no such o, then the algorithm has failed to find a route. As usual, if the route σ has satisfied all the search queries, then the user should travel to the target location t.
Phantom Objects
The optimistic approach computes the exact minimal distance (using the algorithm DistanceToTarget of Fig. 1) in the case of a complete order. As noted earlier, in the case of partial orders, the optimistic approach computes only an estimation of the minimal distance. The reason for that is that it takes into account the search queries that have already been satisfied, but not the possibility that some of the visited objects have failed. The values of the minimal distances are computed in a preprocessing step. So, when they are actually used during the construction of a path, it could be that a specific value is based on using an object that has already been visited and failed; hence, this value is only an estimation. We say that a phantom object is used if the choice of the next object is based on a value of the minimal distance that incorporates an object that has already been visited. The phenomenon of phantom objects can also occur in the MED algorithm for partial orders.
A simple solution to the effect of phantom objects is to do the following in each step of computing the next object to be visited. If the most-recently visited object has failed, then discard it and recalculate the estimations before determining the next object. We refer to the versions of Optimistic and MED that perform recalculation of the estimations as Re-calculating Optimistic and Recalculating MED, respectively.
This solution is detrimental to the efficiency of these algorithms. Fortunately, our experiments show that phantom objects are rare and recalculating the estimations decreases the length of the produced route only by a very small amount.
The Complexity of Computing a Step The complexity of the different algorithms will now analyzed. For interactive algorithms, the time complexity of computing an entire route is not useful because the algorithms are delayed by the need to wait for feedbacks from the user. So instead, we use the following two complexity measures. The preprocessing complexity is the time complexity of the computation that is required for providing the first object of the route. The step complexity is the time complexity of computing the next object on the route after at least one object has been computed.
We analyze our algorithms according to these two measures. In our analysis, we assume that there are n objects in D and these objects are partitioned into m answer sets.
The Naive Greedy and the Oriented Greedy algorithms require no preprocessing. The computation of the first object on the route has the same time complexity as the computation of any other object on the route. In each step, all the objects of the dataset D are examined. Thus, these algorithms can be easily implemented to have O(n) preprocessing complexity and O(n) step complexity.
The Optimistic algorithm for the case of a complete order has a preprocessing step of computing the distance-to-target values. For each object of D, a value is computed by examining the distance from it to all the objects of the next set. Thus, the preprocessing has 0(^- ) time complexity. The computation of an object is done by choosing an object from a set of at most n objects. Hence, the step complexity is O(n).
In the case of a partial order, there can be m! possible orders, and hence the
2
preprocessing has time complexity O{^m\). The step complexity requires checking n objects and considering at most 2m entries in the EDT of each object. Thus, the step complexity is O(n2m).
The algorithm MED for the case of a complete order has a preprocessing step of computing the expected-distance values for the objects. First, the objects of D ate sorted. The sort has O(n log ή) time complexity. An expected distance is computed
Tl
for each object and this is done by considering about— objects of some answer set. Thus, the preprocessing complexity is O(n \og n + -^- )_ χhe step complexity requires choosing an object from an answer set, therefore, the step complexity is (Kn).
For constraints that define a partial order, MED needs to create EDTs and use them in each step. The preprocessing complexity requires considering m! orders, and hence, it is 0(m\(n log n + *£). The step complexity is 0(jΩr), as for Optimistic with a partial order.
Note that in practical scenarios, the number of queries, m, is relatively small. It is reasonable to assume that in most practical cases, users will pose route-search queries of no more than ten search queries. Thus, even though the preprocessing complexity and the step complexity are exponential in m, in the case of partial orders, in practice our algorithms provide answers in an acceptable time. The experiments in the next section confirm this.
EXPERIMENTS
In order to examine the effectiveness and efficiency of the methods of the invention, the methods were tested over real-world data in a variety of cases. Many experiments were conducted and only the results of typical cases are presented here.
4.1 Setting
The real-world data that was used in our experiments is part of a digital map, of the city Tel- Aviv, Israel that has been generated by the Mapa Ltd. company from
Tel-Aviv, Israel (available on www.mapa.co.il). A fragment of that map is presented in Fig. 5. In our tests, we used the "Point Of Interest" (POI) layer of the map. The objects in this layer represent many different types of geographical entities. We extracted from the map 628 objects of seven different types (20 cinemas, 29 hotels, 31 pedestrian bridges, 54 post offices, 136 pharmacies, 169 parking lots and 189 synagogues). In the experiments, we tested route-search queries R where the number of search queries in 61 is between three to seven.
In order to simulate interactive scenarios, the satisfaction of each visited object was chosen randomly, when the object was visited, according to the probability of the object. Since we wanted to prevent extreme cases, we ran every query 100 times, where in each run, different random choices were made for the objects, and the results were averaged.
4.2 Examples of Specific Routes
Two cases are presented that illustrate some of the differences between the different algorithms of the invention. In these two cases, we used real-world geo- spatial datasets, and we run our algorithms so that the results will reflect the actual behavior of the algorithms. For simplicity of presentation, there are no order constraints in the two examples of this section. The first case compares the greedy algorithm to MED, and it shows why in many cases MED outperforms greedy. It is presented in Fig. 6.
Example 6 - In this example, a route search with five queries is considered. The objects to be visited are depicted by plus, star, triangle, circle and square icons. The route provided by the greedy algorithm is depicted with a solid line and some locations where the user provided a feedback are depicted as a number inside a circle. The route that MED computed is depicted with a dashed line, and the locations where the user provided a feedback are shown as a number inside a square.
The result of one of the search queries consists of a single object, and it is depicted using a black square at the bottom left corner of the figure. Since there is only one such square, the route must go via this location.
MED "plans" the entire travel, and thus, it goes from the start location to the location of the black square. (This is also marked by the number 2 inside a square). Then, MED continues directly to the target location going via the other objects it needs to visit.
The greedy algorithm goes to objects that are near the line that connects s and t. It leads the user to the locations depicted by 1, 2 and 3 in a circle. The greedy approach leads toward t till there is only one query left to satisfy— the query whose answer is the black square. This forces the route to lead back in a direction opposite to t, visit the black square and continue to t. Going back and forth due to lack of planning causes the greedy to be inefficient in such case. Example 7 - The scenario depicted in Fig. 7 illustrates the superiority of MED over Optimistic. In this scenario, the route-search query consists of three search queries whose results are depicted by plus, star and pentagon icons, respectively.
The pentagons represent cinemas. In this scenario, cinemas have a probability of 0.7. There is a cinema near t. Optimistic computes the shortest route and reaches that cinema (shown as the number 1 in square near that cinema). However, in many cases this cinema fails to satisfy the user. In these cases, the route continues to a cinema that is far from t (there is an icon of the number 2 inside a square near that cinema). So, in this scenario, Optimistic generates a route that frequently goes back and forth.
MED, on the other hand, consider the case that the cinema near t will fail and hence, it visits cinemas on the way from s to t (these cinemas are marked by 1 and 2 in a circle). If cinema 1 fails, the route continues to 2 with only a small increase in the total length, whereas for the route of Optimistic, when the first cinema fails the increase in the length of the route is large.
Effectiveness
A series of experiments were conducted to examine the effectiveness of the different algorithms of the invention. We tested the effect of different parameters on each algorithm. In the experiments we compared the MED, Optimistic, Oriented Greedy and Naive Greedy algorithms. For Optimistic and Oriented Greedy algorithms we experimented with the version that is affected by the probabilities, i.e., the version that uses distv instead of dist. hereinbelow, we denote the Optimistic by wOpt, the weighted oriented Greedy by vvGre, and the Naive Greedy by bGre.
Comparing the algorithms one to the other only provides a relative indication of their effectiveness. For a non-relative comparison, we included in our experiments an algorithm we call Perfect. Perfect computes the shortest route while having the satisfaction conditions of all the objects before the first step. Since Perfect has information that no interactive algorithm has, the route computed by Perfect is the best any interactive algorithm could hopefully compute. Obviously, in actual scenarios such an algorithm does not exist; however, in our experiments we had all the information on the objects, and hence, we were able to use it. We compare the results of our algorithms to the results of Perfect to show that our algorithms are effective in general and not just relatively.
The experiments whose results are presented in Figs. 8-10 examine the effect of order constraints on the effectiveness of the algorithms. In each of these graphs, the x-axis shows lengths. For each length /, the y-axis presents the percentage of routes that were created interactively and had a length of at most /. The percentage was achieved by running each route-search query 100 times, while simulating interaction with the user. When comparing two interactive algorithms on such a graph, the better algorithm is the one whose curve is higher because the routes it produces are expected to be shorter.
In the experiments whose results are presented in Figs. 8-10, probabilities where normally distributed (the actual distribution is close to normal since we do not allow objects to receive a probability lower than zero or grater than one) with mean 0.7 and standard deviation 0.1. The route-search queries in this experiment comprise five search queries, i.e., need to go via objects of five types.
Fig. 8 shows the results of the algorithms for the case where there are no order constraints. There are 120 complete orders in this case. Fig. 9 shows the results for the case where there is a partial order. There are 20 complete orders in this case. The case of a complete order is presented in Fig. 10.
The results show that MED outperforms the other algorithms in almost all of the cases. Optimistic (wOpt) is almost as good as MED, and both of them are almost as good as Perfect, which shows that they are indeed effective. The Greedy algorithms bGre and wGre are less effective than MED and wOpt.
Fig. 11 presents the results of comparing the algorithms to Perfect. For each algorithm, it shows the average difference between the length of the route computed by the algorithm and the length of the route computed by Perfect. The results are shown for the cases where the means of the probabilities of the objects are 0.3, 0.6 and 0.9, respectively. Not surprisingly, for high probabilities the algorithms provide closer results to Perfect than for low probabilities. This experiment also shows that MED is the most effective in all cases. Optimistic is effective when the probabilities are high, but it is not effective when the probabilities are low. This is because it applies an "optimistic" assumption and when the probabilities are low, this assumption is incorrect. The greedy approach wGre is relatively good when the probabilities are low, because in this case, most of the visited objects fail to satisfy the user, so not planning and going to the nearest object is a good strategy for this case.
Figs. 12-14 show the results of the different algorithms for a search over three datasets, where the probabilities are normally distributed with mean 0.3, 0.6 and 0.9, respectively. In this experiment, the route-search query comprised three search queries, thus, the objects are partitioned into three categories. This experiment provides an additional affirmation to the effectiveness of MED.
Hereinabove, the problem of phantom objects was presented and it was claimed that a possible solution is to recalculate the estimation of the minimal distance after every negative feedback. We denote by rMED the algorithm Recalculate MED and by rwOpt the algorithm Recalculate Optimistic. We claimed that recalculation has almost no effect on the effectiveness of the algorithms. The results of an experiment that supports this claim are presented in Fig. 15. The test shows this by comparing the results of MED, rMED, wOpt and rwOpt to the results of Perfect. It is done over datasets in which the probability is normally distributed with means 0.3, 0.6 and 0.9, respectively. Each column is the average over three different start and target locations, and for 100 different interactive runs. It can be seen that there is almost no difference between MED and rMED. Similarly, there is almost no difference between wOpt and rwOpt.
Efficiency
All the algorithms of the invention computed the next object on the route within less than a millisecond. (Except for the Recalculating versions of MED and Optimistic.) The difference in the efficiency of the algorithms is in the preprocessing time they require. When users initiate a route search, they may want the first object to be provided instantly, and thus, the efficiency of the preprocessing is important in many cases. Table 1 presents the pre-processing times of the different algorithms. It shows that the greedy algorithms are the most efficient. MED is the least efficient because it requires a relatively long preprocessing step. It can be seen that the preprocessing requires significantly less time for a complete order than for no order. In general, the efficiency of the preprocessing is inversely proportional to the number of possible orders that comply with the order constraints. Table 1: Pre-processing times, in milliseconds, for 5 search queries, over a dataset of 419 objects.
Figure imgf000041_0001
Many alterations and modifications may be made by those having ordinary skill in the art without departing from the spirit and scope of the invention. Therefore, it must be understood that the illustrated embodiment has been set forth only for the purposes of example and that it should not be taken as limiting the invention as defined by the following invention and its various embodiments.
Therefore, it must be understood that the illustrated embodiment has been set forth only for the purposes of example and that it should not be taken as limiting the invention as defined by the following claims. For example, notwithstanding the fact that the elements of a claim are set forth below in a certain combination, it must be expressly understood that the invention includes other combinations of fewer, more or different elements, which are disclosed in above even when not initially claimed in such combinations. A teaching that two elements are combined in a claimed combination is further to be understood as also allowing for a claimed combination in which the two elements are not combined with each other, but may be used alone or combined in other combinations. The excision of any disclosed element of the invention is explicitly contemplated as within the scope of the invention.
The words used in this specification to describe the invention and its various embodiments are to be understood not only in the sense of their commonly defined meanings, but to include by special definition in this specification structure, material or acts beyond the scope of the commonly defined meanings. Thus if an element can be understood in the context of this specification as including more than one meaning, then its use in a claim must be understood as being generic to all possible meanings supported by the specification and by the word itself.
The definitions of the words or elements of the following claims are, therefore, defined in this specification to include not only the combination of elements which are literally set forth, but all equivalent structure, material or acts for performing substantially the same function in substantially the same way to obtain substantially the same result. In this sense it is therefore contemplated that an equivalent substitution of two or more elements may be made for any one of the elements in the claims below or that a single element may be substituted for two or more elements in a claim. Although elements may be described above as acting in certain combinations and even initially claimed as such, it is to be expressly understood that one or more elements from a claimed combination can in some cases be excised from the combination and that the claimed combination may be directed to a sub-combination or variation of a sub-combination.
Insubstantial changes from the claimed subject matter as viewed by a person with ordinary skill in the art, now known or later devised, are expressly contemplated as being equivalently within the scope of the claims. Therefore, obvious substitutions now or later known to one with ordinary skill in the art are defined to be within the scope of the defined elements.
The claims are thus to be understood to include what is specifically illustrated and described above, what is conceptually equivalent, what can be obviously substituted and also what essentially incorporates the essential idea of the invention. REFERENCES
[I] H. Chen, W.-S. Ku, M.-T. Sun, and R. Zimmermann, The multi-rule partial sequenced route query, GIS, 2008, pp. 1-10.
[2] X. Huang and CS. Jensen, In-route skyline querying for location-based services,
W2GIS, 2004, pp. 120-135.
[3] S. Jones, S. Walker, and S. E. Robertson, A probabilistic model of information retrieval: Development and comparative experiments (parts 1 and 2), Information
Processing and Management 36 (2000), no. 6, 779-840.
[4] Y. Kanza, R. Levin, E. Safra, and Y. Sagiv, An interactive approach to route search, GIS, 2009.
[5] Y. Kanza, E. Safra, and Y. Sagiv, Route search over probabilistic geospatial data, SSTD, 2009, pp. 153-170.
[6] Y. Kanza, E. Safra, Y. Sagiv, and Y. Doytsher, Heuristic algorithms for route- search queries over geographical data, GIS, 2008, pp. 1-10.
[7] F. Li, D. Cheng, M. Hadjieleftheriou, G. Kollios, and S.H. Teng, On trip planning queries in spatial databases, SSTD, 2005, pp. 273-290.
[8] S. E. Robertson, S. Walker, S. Jones, M.M. Hancock-Beaulieu, and M. Gatford,
Okapi at trec-3, TREC-3 (Gaithersburg, USA), 1994, pp. 109-126.
[9] E. Safra, Y. Kanza, N. Dolev, Y. Sagiv, and Y. Doytsher, Computing a k-route over uncertain geographical data, SSTD, 2007, pp. 276-293.
[10] G. Salton and M.J. McGiIl, Introduction to modern information retrieval,
McGraw-Hill, 1983.
[I I] H. Samet, J. Sankaranarayanan, and H. Alborzi, Scalable network distance browsing in spatial databases, ACM SIGMOD, 2008, pp. 43-54.
[12] C. Shahabi, M. R. Kolahdouzan, and M. Sharifzadeh, A road network embedding technique for k-nearest neighbor search in moving object databases, Geolnformatica 7 (2003), no. 3, 255-273.
[13] M. Sharifzadeh, M. R. Kolahdouzan, and C. Shahabi, Optimal sequenced route query, VLDBJ 17 (2008), no. 8, 765-787. [14] M. Terrovitis, S. Bakiras, D. Papadias, and K. Mouratidis, Constrained shortest path computation, SSTD, 2005, pp. 181-199.

Claims

1. A computerized system for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities of different types, said system comprising: (i) a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes;
(ii) a user personal device connected to the geo-spatial dataset;
(iii) an input unit on the user personal device for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit;
(iv) a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity; and
(v) an interaction manager on the user personal device for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after he visited or intended to visit said geographic entity and if said geographic entity was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type; such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query, the processing unit provides the user with the route to the target point.
2. The system according to claim 1, wherein the user personal device is a mobile telephone, a smart phone, a personal digital assistant (PDA), a car navigation system, a laptop computer, a tablet computer, a portable game console or any other portable and communicating device.
3. The system according to claim 1, wherein said query further comprises one or more constraints describing the conditions said geographic entities have to meet in order to be relevant for the user.
4. The system according to claim 3, wherein said constraints indicate that some or all of the geographic entities are to be visited according to a predetermined order.
5. The system according to claim 1, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity that is the closet to the user's current location.
6. The system according to claim 1, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the expected minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point.
7. The system according to claim 1, wherein the processing unit calculates a route from the starting point to the end point going through n geographic entities matching the criteria of the query such that when a geographic entity fails to satisfy the user the processing unit recalculates a route from the current location to the target point going through the remaining geographic entities that have not yet been visited to the user's satisfaction.
8. The system according to claim 1, further comprising a probability manager for assigning a probability of success for each geographic entity in the geo-spatial dataset, wherein the probability of success indicates the probability that the geographic entity would meet the requirements of the user.
9. The system according to claim 6, wherein the choice of the geographic entity further takes into account the probability of success assigned to each geographic entity.
10. The system according to claim 1, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with a minimal value for the distance to the user's current location divided by the probability of success for the same geographic entity.
11. The system according to claim 1, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point, divided by the probability of success for the same geographic entity.
12. A computerized method for interactively calculating a route from a start point to a destination point while traversing multiple geographic entities of different types, said method comprising the steps of: (i) inputting on a user personal device a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit;
(ii) calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity; and (iii) asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after he visited or intended to visit said geographic entity and if the geographic entity was not to the user's satisfaction the interaction manager instructs a processing unit to continue searching for geographic entities of the same type; such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
13. The method according to claim 12, wherein the user personal device is a mobile telephone, a smart phone, a personal digital assistant (PDA), a car navigation system, a laptop computer, a tablet computer, a portable game console or any other portable and communicating device.
14. The method according to claim 12, wherein said query further comprises one or more constraints describing the conditions said geographic entities have to meet in order to be relevant for the user.
15. The method according to claim 14, wherein said constraints indicate that some or all of the geographic entities are to be visited according to a predetermined order.
16. The method according to claim 12, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity that is the closet to the user's current location.
17. The method according to claim 12, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the expected minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point.
18. The method according to claim 12, wherein the processing unit calculates a route from the starting point to the end point going through n geographic entities matching the criteria of the query such that when a geographic entity fails to satisfy the user the processing unit recalculates a route from the current location to the target point going through the remaining geographic entities that have not yet been visited to the user's satisfaction.
19. The method according to claim 12, further comprising a probability manager for assigning a probability of success for each geographic entity in the geo-spatial dataset, wherein the probability of success indicates the probability that the geographic entity would meet the requirements of the user.
20. The system according to claim 6, wherein the choice of the geographic entity further takes into account the probability of success assigned to each geographic entity.
21. The method according to claim 12, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with a minimal value for the distance to the user's current location divided by the probability of success for the same geographic entity.
22. The method according to claim 12, wherein the processing unit calculates the next geographic entity to be visited by selecting a geographic entity with the minimal value for the combined distance from the current location to the geographic entity and from the geographic entity to the target point, divided by the probability of success for the same geographic entity.
23. A mobile telephone for calculating an interactive route search from a start point to a destination point while traversing multiple geographic entities of different types, said mobile phone comprising: (i) wireless or wired communications means to a geo-spatial dataset comprising a plurality of geographic entities and a graph of a road network that connects all the geographic entities, each geographic entity having one or more attributes; (ii) an input unit for inputting from a user a starting point, a target point and a query related to n geographic entities the user wishes to go to before reaching the target point, said query comprising one or more keywords describing the geographic entities the user wishes to visit;
(iii) a processing unit for calculating a route to a geographic entity of a type indicated in the query and matching the keywords entered in the query regarding said geographic entity, wherein the choice of the geographic entity takes into account at least the user's current location, and the keywords related to each geographic entity; and
(iv) an interaction manager for asking the user to indicate whether a geographic entity indicated by the system was to his satisfaction after the user visited or intended to visit said geographic entity and if said geographic entity was not to the user's satisfaction the interaction manager instructs the processing unit to continue searching for geographic entities of the same type; such that the processing unit calculates a route from the starting point to a first geographic entity matching the criteria entered in the query, where after the user visited or intended to visit the geographic entity the user indicates to the interaction manager whether the geographic entity was to his satisfaction, the processing unit calculates then the next geographic entity to be visited, wherein only after the user has indicated his satisfaction regarding n geographic entities matching the query the processing unit provides the user with the route to the target point.
PCT/IL2010/000552 2009-07-08 2010-07-08 Interactive route search WO2011004377A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22371509P 2009-07-08 2009-07-08
US61/223,715 2009-07-08

Publications (2)

Publication Number Publication Date
WO2011004377A2 true WO2011004377A2 (en) 2011-01-13
WO2011004377A3 WO2011004377A3 (en) 2011-03-24

Family

ID=43012769

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2010/000552 WO2011004377A2 (en) 2009-07-08 2010-07-08 Interactive route search

Country Status (1)

Country Link
WO (1) WO2011004377A2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080275646A1 (en) * 2007-05-03 2008-11-06 Perng Chang-Shing Method and system for minimal detour routing with multiple stops
US8386479B2 (en) * 2007-07-09 2013-02-26 University Of Toronto Routing methods for multiple geographical entities

Non-Patent Citations (13)

* Cited by examiner, † Cited by third party
Title
C. SHAHABI; M. R. KOLAHDOUZAN; M. SHARIFZADEH: "A road network embedding technique for k-nearest neighbor search in moving object databases", GEOINFORMATICA, vol. 7, no. 3, 2003, pages 255 - 273, XP019206765, DOI: doi:10.1023/A:1025153016110
E. SAFRA; Y. KANZA; N. DOLEV; Y. SAGIV; Y. DOYTSHER: "Computing a k-route over uncertain geographical data", SSTD, 2007, pages 276 - 293
F. LI; D. CHENG; M. HADJIELEFTHERIOU; G. KOLLIOS; S.H. TENG: "On trip planning queries in spatial databases", SSTD, 2005, pages 273 - 290, XP019013723
H. CHEN; W.-S. KU; M.-T. SUN; R. ZIMMERMANN: "The multi-rule partial sequenced route query", GIS, 2008, pages 1 - 10, XP058091823, DOI: doi:10.1145/1463434.1463448
H. SAMET; J. SANKARANARAYANAN; H. ALBORZI: "Scalable network distance browsing in spatial databases", ACM SIGMOD, 2008, pages 43 - 54, XP058184055, DOI: doi:10.1145/1376616.1376623
M. SHARIFZADEH; M. R. KOLAHDOUZAN; C. SHAHABI: "Optimal sequenced route query", VLDBJ, vol. 17, no. 8, 2008, pages 765 - 787, XP058212589, DOI: doi:10.1007/s00778-006-0038-6
M. TERROVITIS; S. BAKIRAS; D. PAPADIAS; K. MOURATIDIS: "Constrained shortest path computation", SSTD, 2005, pages 181 - 199, XP019013718
S. JONES; S. WALKER; S.E. ROBERTSON: "A probabilistic model of information retrieval: Development and comparative experiments (parts 1 and 2)", INFORMATION PROCESSING AND MANAGEMENT, vol. 36, no. 6, 2000, pages 779 - 840
S.E. ROBERTSON; S. WALKER; S. JONES; M.M. HANCOCK-BEAULIEU; M. GATFORD, OKAPI AT TREC-3, TREC-3 (GAITHERSBURG, USA), 1994, pages 109 - 126
X. HUANG; C.S. JENSEN: "In-route skyline querying for location-based services", W2GIS, 2004, pages 120 - 135
Y. KANZA; E. SAFRA; Y. SAGIV: "Route search over probabilistic geospatial data", SSTD, 2009, pages 153 - 170, XP047383085, DOI: doi:10.1007/978-3-642-02982-0_12
Y. KANZA; E. SAFRA; Y. SAGIV; Y. DOYTSHER: "Heuristic algorithms for route-search queries over geographical data", GIS, 2008, pages 1 - 10, XP058091824, DOI: doi:10.1145/1463434.1463449
Y. KANZA; R. LEVIN; E. SAFRA; Y. SAGIV: "An interactive approach to route search", GIS, 2009

Also Published As

Publication number Publication date
WO2011004377A3 (en) 2011-03-24

Similar Documents

Publication Publication Date Title
Kanza et al. Interactive route search in the presence of order constraints
US10571288B2 (en) Searching similar trajectories by locations
Wang et al. Improving personalized trip recommendation by avoiding crowds
US9062985B2 (en) Efficient K-nearest neighbor search in time-dependent spatial networks
US8386479B2 (en) Routing methods for multiple geographical entities
US8688366B2 (en) Method of operating a navigation system to provide geographic location information
Xu et al. DESTPRE: a data-driven approach to destination prediction for taxi rides
US20130132369A1 (en) Batched shortest path computation
KR20080048786A (en) System and method for providing point of interest in destination around
JP5371572B2 (en) Similarity calculation device, recommended POI determination device, POI recommendation system, similarity calculation method, and program
US8600659B1 (en) Method and system for geographic search for public transportation commuters
KR102076407B1 (en) Method and system for recommending point of interest
CN111141301B (en) Navigation end point determining method, device, storage medium and computer equipment
Wen et al. KSTR: Keyword-aware skyline travel route recommendation
Yawalkar et al. Route recommendations on road networks for arbitrary user preference functions
US20100198505A1 (en) Method for Representing Linear Features in a Location Content Management System
Levin et al. TARS: traffic-aware route search
Jossé et al. Probabilistic Resource Route Queries with Reappearance.
KR101523192B1 (en) Social search system and scheme
Kanza et al. Route search over probabilistic geospatial data
Hanafiah et al. Itinerary recommendation generation using enhanced simulated annealing algorithm
KR101550784B1 (en) Method for creation of recommend POI and Sever
WO2011004377A2 (en) Interactive route search
Kanza et al. An interactive approach to route search
Ding et al. A-MCTS: adaptive monte carlo tree search for temporal path discovery

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: 10745436

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10745436

Country of ref document: EP

Kind code of ref document: A2