The present exemplary embodiments relate to systems and methods for target-value searching that can be used in a variety of settings, such as online diagnosis for production planning systems and systems for providing consumers with targeted search results. However, it is to be appreciated that the present exemplary embodiments are also amenable to other like applications.
Automated production planning systems may require selection of plant resources to produce a given product while intelligently employing certain production resources to obtain diagnostic information indicating the probability of particular resources being faulty. In this situation, the diagnostic goals of the planner may not be facilitated by simply selecting the shortest or fastest set of resources to build the product, but instead by selecting a plan defining a sequence of resources that build the product while testing fault probabilities that are non-zero.
In another example, consumers may desire a planner to identify vacation plans to a certain destination (or multiple prospective destinations) that have a certain duration (or range of durations, such as 5-7 days with start and end dates in a specified month) and that have a given target cost or cost range. Mapping systems may be required in a further application that can receive starting and ending locations, as well as a target distance and/or time values for planning a drive for viewing autumn leaves where the consumer wants a trip plan that lasts for 3-5 hours during daylight through parks in the month of October.
In the past, search problems were solved using minimization algorithms to find the shortest path or paths between a starting state and a goal state. However, the goal in certain applications is not necessarily to find paths with minimum length or cost, but instead the desired path that has a non-zero or non-minimal cost or duration. Using shortest-path searching techniques in these situations involves identifying the shortest paths, and eliminating or exonerating those identified paths that do not fall within a target value range. The process would then be repeated until paths are identified that are within the desired range. This approach is impractical in most real-life applications, whereby a need exists for efficient target value path searching techniques and systems for use in identifying one or more paths having a value closest to a given target value.
The present application contemplates new and improved systems and/or methods which may be employed to mitigate the above-referenced problems and others.
In accordance with one aspect of the present application, a computer implemented method for determining at least one target path from a start vertex to a goal vertex within a directed acyclic graph is illustrated. The directed acyclic graph includes a plurality of prefixes defining a search space. The prefixes individually include at least one range, a path value and a target value to go. Beginning with the start vertex as a current prefix and progressing through selected prefixes, the method includes determining a selected prefix from successor prefixes of the current prefix according to a selection rule. The selection rule of the method is either selecting the successor prefix having a highest path value or selecting the successor prefix having a lowest path value. The method further includes setting the current prefix to the selected prefix until a frontier of a blind spot is encountered, where the blind spot frontier is defined by an evaluation function. The method further includes completing at least one of the prefixes to determine the at least one target path.
In accordance with another aspect of the present application, a model based control system for controlling a production system is illustrated. The system includes a directed acyclic graph extending between a start vertex and a goal vertex. The directed acyclic graph includes a plurality of prefixes defining a search space and individually including at least one range, a path value and a target value to go. The system also includes a planner operative to provide the production system with at least one plan with a failure probability most closely approximating a target value. The planner generates the plan using a target value search of the directed acyclic graph that begins with the start vertex as a current prefix and progresses through selected prefixes, and includes determining a selected prefix from successor prefixes of the current prefix according to a selection rule. The selection rule is one of selecting the successor prefix having a highest path value and selecting the successor prefix having a lowest path value. The target value search further includes setting the current prefix to the selected prefix until a frontier of a blind spot is encountered, where the frontier is defined by an evaluation function. The target value search further includes completing at least one of the plurality of prefixes to determine the at least one plan. The model based control system further includes a system model operative to model the behavior of the plant and a diagnosis engine operative to estimate failure probabilities for plans and provide diagnostic guidance to the planner.
In accordance with another aspect of the present application, a system is provided for generating target paths in response to requests from one or more users. Each of the requests is associated with one of the one or more users and a directed acyclic graph extending between a start vertex and a goal vertex, where the graph includes a plurality of prefixes defining a search space, and the prefixes individually include at least one range, a path value and a target value to go. The system includes an interface operative to communicate with the one or more users, where the interface receives the requests from the user(s). The system further includes a module operative to generate at least one target path for each of the requests. The module generates the at least one target path for the each of the requests using a target value search of the directed acyclic graph associated with the each of the requests. The target value search includes beginning with the start vertex as a current prefix and progressing through selected prefixes. The target value search further includes determining a selected prefix from successor prefixes of the current prefix according to a selection rule. The selection rule is one of selecting the successor prefix having a highest path value and selecting the successor prefix having a lowest path value. The target value search further includes setting the current prefix to the selected prefix until a frontier of a blind spot is encountered. The frontier of the blind spot is defined by an evaluation function. The target value search further includes completing at least one of the plurality of prefixes to determine the at least one target path. The system further includes a controller operative to selectively relay the requests between the interface and the module.
In a target value path problem, one is interested in finding a path between two vertices in a graph, whose sum of edge weights, or values, is as close as possible to some target value. Such problems arise in a variety of domains, such as online diagnosis for production planning systems and systems for providing consumers with targeted search results.
To define a target value path problem, a finite directed acyclic graph (DAG) is defined as G=(VG, EG) with a set of vertices VG and a set of positive valued edges EG, and p=v0, . . . , vn is a path where vi ε VG and neighboring vertices are connected by edges (vi, vi+1) ε EG. Further, a path value g(p) is the sum of the edge values in p. If pv
The foregoing definition of a target value path problem merely requires a directed acyclic graph G. However, for the sake of simplicity, the following discussion is limited to connection graphs. A connection graph Cv
Target value search is challenging because it does not exhibit optimal substructure. A problem is said to have optimal substructure if an optimal solution can be constructed efficiently from optimal solutions of its sub-problems. This property is employed to determine the usefulness of dynamic programming and greedy algorithms, which is key to solving those problems efficiently. A shortest path problem, for example, has optimal substructure, wherein any sub-path of a shortest path is by itself a shortest path with respect to its first and last vertices. However, with respect to a target value search, a sub-path of a target value path with respect to some target value T isn't necessarily a target value path between its first and last vertices with respect to the same T.
One approach to determining the target path is to search every path between v0 and vg for the path most closely approximating some target value T. This can be performed by decomposing the argmin over complete paths from v0 to vg into a recursive set of argmin calculations over sub-paths from v′ to vg, wherein v′ is an immediate successor to v0. After traveling from v0 to v′, some value has been added to the prefix, whereby the target value can be adjusted by this amount to get the remaining target value for the suffix of the path (i.e., referred to herein as the target value to go T′). A prefix is a path extending from v0 to some vertex v in C, and a suffix is a path extending from some vertex v to vg in C. The target value path can be defined as follows.
However, because the number of paths from v0 to vg in C can be exponential in the number of vertices in C, the computation can lead to an exponential blow-up.
Another approach to solving a target-value path problem is to search the prefix space using an admissible (non-overestimate) evaluation function f (pre) for the target-value deviation. Under such an approach, lower bounds and upper bounds are used to limit the search space with A*. For each vertex v in C, h−(v) is an non-overestimate lower bound heuristic and h+(v) is a non-underestimate upper bound heuristic on the path value from v to the goal vertex. Given a vertex v with its corresponding lower and upper bound heuristics, a range r(v) can be defined that bounds the path value of all possible suffixes from v to the goal vertex. The lower bound of the range is denoted as r(v).l and the upper bound is denoted as r(v).u, where:
r(v)=[h−(v),h+(v)].
Ranges for each vertex of a connection graph C extending from v0 to vg may be set forth in a pattern database pd, which can be generated using a dynamic programming sweep, wherein each vertex in the connection graph C of v0 and vg is annotated with a set of ranges encompassing the values of the paths from this vertex to vg. The ranges of a vertex v represent progressive approximations of the lengths of paths from the vertex v to vg (i.e., all path lengths are guaranteed to be within the ranges).
One approach to generating a pattern database pd begins by initializing pd(vg)=[0,0] and setting up a queue comprised of just vg. In each step, a vertex is removed from the queue. Then for each in-edge e, the range is shifted by value(e) and propagated over e to the respective predecessor. Upon receiving the range, the predecessor combines its range with the received range. If the predecessor's range changes, it is added to the queue. The process is repeated until a steady state is reached (i.e., when the queue is empty).
Another approach to generating a pattern database pd begins by initializing pd(vg)=[0,0] and setting up a queue comprising of just vg. Additionally, initialization encompasses setting successor counters for each vertex. Successor counters correspond to the number of successors a vertex has. In each step, a vertex is removed from the queue. Then for each out-edge e, the range of the corresponding successor is shifted by value(e) and propagated over e to the vertex. Upon receiving the shifted range from each successor, the vertex combines the shifted ranges. Further, the successor counters of each predecessor of the vertex are decremented. If a successor counter of a predecessor is zero, the predecessor is added to the queue. The process is repeated until a steady state is reached (i.e., when the queue is empty).
Further details pertaining to the foregoing approaches to generating a pattern database are set forth in U.S. patent application Ser. No. 12/497,326 for “Depth-First Search for Target Value Problems” and U.S. patent application Ser. No. 12/409,235 for “Methods and Systems for Target Value Path Identification,” the disclosures of which are incorporated herein by reference. However, other pattern database generation approaches are equally amenable to the exemplary method of the present invention. A pattern database fundamentally maintains one or more ranges of suffix lengths from each vertex in a connection graph to a goal vertex.
Assuming a pattern database pd, the path family of some prefix pre, denoted fampre is the set of all paths from v0 to vg sharing the common prefix pre. Given some path family fampre, a path value interval is defined as:
i(pre)=[g(pre)+r(pre.lastV).l,g(pre)+r(pre.lastV).u],
where the path value interval i(pre) bounds the path value for all paths in fampre. The lower bound of the interval is denoted as i(pre).l and the upper bound as i(pre).u. Using the interval i(pre), an admissible (non-overestimate) evaluation function f(pre) for the target-value deviation is as follows.
If the target value falls in the path value interval of some prefix pre, there is potentially a path in fampre that exactly achieves the target value. In this case f(pre) returns zero, as it must be a true non-overestimate of the target-value deviation. For prefixes where the target value does not fall within the interval, since it is assumed the lower bound i(pre).l and upper bound i(pre).u are true bounds, there exists no path in fampre outside those bounds. If the target value is below the lower bound of the interval, the smallest possible deviation will be i(pre).l−T. If the target value is above the upper bound, the smallest deviation will be T−i(pre).u. The evaluation function f(pre) is therefore an admissible lower bound on the target value deviation.
The path value intervals can also be used to calculate a non-underestimate upper bound of target value deviation.
pruneBound(pre)=max (|T−i(pre).l|,|T−i(pre).u|)
This upper bound function can be used to maintain a global best upper bound on target value deviation pruneBound(best). This global best upper bound can be used to prune prefixes pre where f(pre)>pruneBound(best).
In view of the foregoing, the evaluation function f(pre), together with pruneBound(pre), can be used to search using A*. The search basically results in a shortest path search when T is below the interval and longest path search when T is above the interval. The challenge occurs when the target value falls within the interval. This case occurs often near the beginning of the search, when there are many possible path completions for each prefix, making the interval associated with the last vertex of the prefix very wide. Many vertices will therefore be assigned the same heuristic (evaluation function) value, namely zero. While admissible, this effectively forces a blind search. The blind search is not explicit, but results from the behavior of the A* algorithm. The prefixes that evaluate to zero will move to the front of A*'s priority queue and will be expanded first. A prefix that evaluates to zero (f(pre)=0) is referred to as a zero-prefix and the space of all zero-prefixes is referred to as the blind-spot.
Search in the blind-spot has two main problems: (1) search is not guided in the blind-spot and therefore will perform as poorly as the exhaustive approach discussed above; and (2) the priority queue might grow exponentially during the blind search, due to a combination of the tree structure of the exhaustive approach and the inability to prune any zero-prefixes. Target value search can therefore still lead to an exponential blow-up in time and space, since the number of prefixes in the blind-spot can be exponential in |V|. However, once the blind-spot is exhaustively searched, the target value starts to fall outside the path value intervals. Informative (non-zero) heuristic bounds will then be assigned, and informed search will again dominate.
One approach to reducing the size of the blind-spot and reducing the growth of the priority queue is to use multiple intervals. Namely, because the size of the blind-spot is directly correlated to the space covered by path value intervals, the less space covered, the smaller the blind spot is. Multi-interval heuristic target value search thus characterizes the path value space associated with a path family with a set of intervals instead of just one, where the set of intervals associated with a path family is denoted as I(pre).
A non-overestimate lower bound evaluation function on the target value deviation f(pre) in much the same fashion as for a single interval. For the multiple interval case, the target value is compared to the closest upper and lower interval bounds among all intervals of a prefix family. This can be efficiently done if the set of intervals associated with a path family is stored in a sorted and indexed data-structure.
The multiple intervals can also be exploited for pruning. A non-underestimate upper bound heuristic on the deviation from the set of intervals associated with some path family can be defined in a similar manner.
Further information regarding the multiple interval approach is set forth in U.S. patent application Ser. No. 12/497,353 for “Multi-Interval Heuristics for Accelerating Target-Value Search,” by Schmidt et al., filed Jul. 2, 2009, incorporated herein by reference.
Another approach to reduce the growth of the priority queue is to do away with the priority queue and utilize a depth-first target value search to search the blind spot. In contrast with the A* approach, which is traditionally more analogous to a breadth first search, the memory requirement of the depth first search approach is bounded by the target-value. If one assumes positive edge values and lets e>0 be the least edge-value in C, then at worst the target value path for some T will consist of
vertices. Consequently, the algorithm's space requirement is O(T). The depth first approach is equally amenable to multiple intervals. Further information concerning the depth-first target value search approach is found in U.S. patent application Ser. No. 12/497,326 for “Depth-First Search for Target Value Problems,” by Schmidt et al., filed Jul. 2, 2009, incorporated herein by reference.
The present disclosure provides another approach to reduce the growth of the priority queue by using a max-value-first search within the blind spot, instead of breadth-first search. While referred to as ‘max-value first’, the search technique can be implemented through selection of ‘max’ prefix path values or alternatively by selection of ‘min’ values, as set forth herein. In the first case, max-value-first search expands the prefix with the greatest path value g(pre) first. That is different from depth-first search, where among the prefixes with the maximum edge number (depth) any one of them may be expanded first. Max-value-first search guides the search directly to the frontier of the blind-spot where a zero-prefix will be expanded with successors which are not zero-prefixes. In the alternative, the search expands the prefix with the smallest path value g(pre) first, and likewise guides the search directly to the frontier of the blind-spot where a zero-prefix will be expanded with successors which are not zero-prefixes. In either implementation, pruning can then be applied to those successors. Both these alternative implementations are termed ‘max-value-first’ searches for ease of discussion, and both are implemented in certain embodiments be selecting a prefix from successor prefixes of a currently evaluated prefix according to a selection rule that is one of selecting the successor prefix having a highest path value and selecting the successor prefix having a lowest path value. Moreover, the max-value-first approaches may be used in connection with single-interval as well as multiple-interval searching techniques.
The max-value-first search techniques of the present disclosure, moreover, provide certain advantages from an anytime algorithm perspective. Using max-value-first search enables strong anytime performance, because the max-value-first search, in average, is the fastest out of the blind-spot (faster than depth-first search). Given a fixed number of expansion, the number of non-zero prefixes found is greater or equal then with depth-first search or breath-first search. Therefore if an anytime algorithm is desired, the most promising non-zero-prefix from A*'s priority queue can be selected and expanded towards the goal.
With reference to
With reference to
With reference to
With reference to
The exemplary method 300 employs a connection graph and pattern database, such as those exemplified in
Referring now to
As best shown in
The frontier 410b of the blind spot 410 is determined in one of at least two ways depending upon the particular approach used. Under a depth-first approach, the frontier 410b is determined by looking at whether the evaluation function (heuristic) value for the current prefix indicates the optimal completion of the current prefix. Under an A* approach, the frontier 410b of the blind spot 410 is determined by looking to whether the evaluation function value for the selected prefix indicates the optimal completion of the selected prefix. The evaluation function indicates the optimal completion of a prefix when it returns the deviation of the path value of the optimal completion of the prefix from the target value. In one embodiment, the evaluation function indicates the optimal completion of a prefix when the evaluation function value of the prefix is non-zero. As should be appreciated, while searching the blind spot 410, under the depth-first approach the current prefix will extend outside the blind spot 410, whereas under the A* approach the current prefix will not extend outside the blind spot 410.
Once the frontier 410b has been encountered, one of two processes takes place depending upon the approach used. Under the depth-first approach, once the frontier 410b of the blind spot 410 is reached, no further searching along the current prefix is necessary. Namely, the optimal completion of the current prefix is known, whereby it would be computationally inefficient to search beyond the current prefix. Accordingly, under the depth-first approach, after the frontier 410b is reached, the predecessor prefix of the current prefix is selected and the current prefix is set to the selected prefix. Thereafter, if there are additional successor prefixes of the current prefix that have not been explored, the progression 420 proceeds as discussed in the preceding paragraph until the frontier 410b is reached again. Otherwise, the predecessor of the current prefix is selected again and the current prefix is set to the selected prefix. This proceeds until the current prefix is the start prefix and all of its successors have been expanded. Under the A* approach, any other successor prefixes of the current prefix are explored. If there are no additional successor prefixes of the current prefix, the predecessor prefix of the current prefix is selected according to the depth-first approach. This process will be further detailed with reference to
Because longest and shortest path problems exhibit optimal substructure, proceeding according to the foregoing approaches ultimately results in the prioritized search of all the prefixes extending from the start vertex 402 to the frontier 410b of the blind spot 410, wherein the prioritized search may be on the basis of longest path value or shortest path value.
While searching the blind spot 410, the exemplary method 300 tracks the best prefix encountered so. That is to say, once a prefix whose optimal completion is known is found, a determination is made as to whether the optimal completion of the prefix leads to the best solution encountered so far. If the prefix is the best solution so far, it is saved. This is advantageous in that it allows the construction of an anytime solution. An anytime solution is a quick solution that is not necessarily optimal, but is the best solution encountered so far. As should be appreciated, the max-value-first search of the present disclosure facilitates the generation of an anytime solution by proceeding to the frontier 410b, on average, as fast as possible. Accordingly, while the overall search of the blind spot 410 may take a long time, an anytime solution may be provided quickly before the search of the blind spot 410 has completed at 312. In the case of
After the progressing through the blind spot at 304 in
With reference to
The A* approach 600 begins in
Once the prefixes with the highest priority have been determined at 610, a determination as to whether there are multiple highest priority prefixes is made at 612. This will be prevalent when searching within the blind spot 410 illustrated in
After the selected prefix is removed from the priority queue at 618, a determination is made as to whether the lead vertex of the selected prefix is the goal vertex at 620. The lead vertex of a prefix is the deepest vertex of the prefix (i.e., the vertex of the prefix closest to the goal vertex 404). If the lead vertex of the selected prefix is the goal vertex 404 (YES at 620), an optimal target path between the start vertex 402 and the goal vertex 404 has been found, and the optimal target path is returned and the search terminates at 622. If the A* approach is provided a proper connection graph and pattern database, this condition will always be met, so that the process never goes to 606 in
With reference to
The depth-first approach begins at 702 in
If the lead vertex is not the goal vertex 404 or the target value to go is not zero (NO at 704 or 706), the process 700 continues at 712 with the evaluation function value of the current prefix being examined. As discussed above, the evaluation function value is the minimum deviation of the path value of the optimal completion of the current prefix from the target value. In one embodiment, the evaluation function value of the current prefix is zero, whereby the current prefix is within the blind spot 410 of
Thereafter, a determination is made as to whether the current prefix has a predecessor prefix at 720. The predecessor prefix is the prefix from which the current prefix was derived (i.e., the current prefix is a successor prefix of the predecessor prefix). This takes place regardless of whether the current prefix is the best so far. It is noted that the only time when the current prefix will not have a predecessor prefix is when the current prefix is comprised solely of the start vertex 402. If the current prefix does not have a predecessor prefix (NO at 720), the depth first search terminates at 722, whereby the search has completed. Upon termination, if everything went properly, there should be a saved prefix which implicitly leads to the optimal target path. Namely, using either a shortest path or longest path algorithm, the saved prefix can be expanded in linear time to achieve the target path. If the current prefix has a predecessor prefix (YES at 720), the current prefix is updated to the predecessor prefix at 724.
Assuming the current prefix has a predecessor prefix, the updated current prefix is checked for additional successor prefixes at 726. Additional successor prefixes refer to successor prefixes of the current prefix that have not been expanded. If there are additional successor prefixes (YES at 726), the current prefix is updated with the successor prefix having the longest path value at 728. Alternatively, the current prefix can be updated with the successor prefix having the shortest path value. Thereafter, the process repeats again at 704. If there are no additional successor prefixes (NO at 726), the depth-first search approach 700 tries to proceed to the predecessor of the current prefix as previously discussed at 720.
With reference to
The MFTVS engine 800 includes a pattern database module 802 and a MEWS module 804. The pattern database module 802 receives a connection graph from a source external to the MFTVS engine 800, and generates a pattern database for the connection graph. The pattern database is preferable carried out according to one of the approaches for generating a pattern database discussed above. The MFTVS module 804 receives the pattern database and the connection graph from the pattern database module 802. The MFTVS module 804 further receives a target value from a source external to the MFTVS engine 800, such as the keyboard 810. The MFTVS module 804 uses the received target-value, pattern database and connection graph to find a target path within the connection graph which has a path length most closely approximating the target value. The MFTVS module 804 searches for the target path according to the exemplary method of
In some embodiments, the exemplary methods, discussed above, the MFTVS engines employing the same, and so forth, of the present invention are embodied by a storage medium storing instructions executable (for example, by a digital processor) to implement the target value search. The storage medium may include, for example: a magnetic disk or other magnetic storage medium; an optical disk or other optical storage medium; a random access memory (RAM), read-only memory (ROM), or other electronic memory device or chip or set of operatively interconnected chips; an Internet server from which the stored instructions may be retrieved via the Internet or a local area network; or so forth.
With reference to
The one or more users 902 are individuals, corporations, governmental agencies, other like parties. However, preferably the one or more users 902 are average home users browsing the Internet or interfacing with a portable GPS unit. The interface 906 interfaces with the one or more users 902 and receives requests from the one or more users 902. The interface 906 serves to provide the one or more users 902 with a user friendly interface to the MFTVS module 912, which exemplifies the present invention. The interface 906 may be a web interface such as MapQuest™, a computer interface, such as that of a portable GPS unit like TomTom™, or other like interfaces. The requests may be requests for a path between two points, such as driving directions, wherein the path most closely achieves a given target value. For example, the request may be for driving directions between A and B, where the driving directions most closely approximate a driving distance of 100 miles. The database 916 may be a traditional database such as a database provided by MySQL, MSSQL, Oracle, Microsoft Access, or other like database, or it may simply be a data structure stored within the memory of one of one or more computer systems comprising the system 900. The current position indicator 914 may be a GPS unit and/or any other system for navigation. The pattern database module 908 generates a pattern database between a start vertex and an end vertex and preferably stores the pattern database in the database 916. The MFTVS module 912 is similar to the MFTVS module 804 of
One particular embodiment surrounding the exemplary system 900 is an e-commerce system, such as MapQuest, for providing driving directions. Under such a system, the database 916 includes a graph representing the road system in the particular region where the system 900 is to be used. The vertices of the graph correspond to intersections and the edges correspond to roads, highways, freeways, etc., whereby the edge weights correspond to the lengths of the roads, highways, freeways, etc. Further the one or more users 902 are preferably connected to the target path generating system 904 via the Internet, where the interface 906 provides the one or more users 902 with a web interface from which to interact with the rest of the target path generating system 904.
Under normal operation, the target path generating system 904 receives requests from the one or more users 902 via the interface 906. For example, the one or more users visit a web interface provided by the interface 906 and submit a request to generate driving directions. Thereafter, the controller 910 receives the requests from the interface 906 and determines how to process the requests. Preferably, each request includes a starting address and an ending address. Further, each request includes a target value, where the target value corresponds to the distance the corresponding user wants to drive. Alternatively, the target value corresponds to time or other like metrics applicable to roads, highways, freeways, etc.
Based upon a request, the controller 910 determines whether the database 916 includes a pattern database for the start address and the end address. If the database 916 includes a pattern database, the controller 910 relays the request to the MFTVS module 912, where the MFTVS module 912 generates a path between the start address and the end address most closely approximately the target value. As should be appreciated, this is accomplished using the exemplary method of the present invention, discussed in
Another particular embodiment surrounding the exemplary system 900 is a GPS system, such as TomTom, for providing driving directions. The GPS system may be, for example, a portable GPS, a car GPS, or other like GPS unit. Under such a system, the database 916 is local to the system and includes a graph representing the road system in the particular region where the system 900 is to be used. The vertices of the graph correspond to intersections and the edges correspond to roads, highways, freeways, etc., whereby the edge weights correspond to the lengths of the roads, highways, freeways, etc. Further, the one or more users 902 preferably interface with the target path generating system 904 via a touch screen display, where the interface 906 provides the one or more users 902 with an interactive user interface for interfacing with the rest of the target path generating system 904.
Under normal operation, the target path generating system 904 receives requests from the one or more users 902 via the interface 906. For example, the one or more users 902 selects a driving directions option on a touch screen display of the interface 906. Thereafter, the controller 910 receives the requests from the interface 906 and determines how to process the requests. Preferably, each request includes a starting address and an ending address. Further, each request should include a target value, where the target value corresponds to the distance the corresponding user wants to drive. Alternatively, the target value could correspond to time or other like metric applicable roads, highways, freeways, etc.
Based upon a request, the controller 910 determines whether the database 916 includes a pattern database for the start address and the end address. If the database 916 does include a pattern database, the controller 910 relays the request to the MFTVS module 912, where the MFTVS module 912 generates a path between the start address and the end address most closely approximately the target value. As should be appreciated, this is accomplished using the exemplary method of the present invention, discussed in
The interface 906 may further display the location of the GPS system on a map view of the driving directions by using the current position indicator 914. In this case, the current position indicator 914 provides the controller 910 with the location of the GPS system. Thereafter, the controller 910 provides the location to the interface 906, wherein the interface 906 updates the display to reflect the current position of the GPS system on the map view of the driving directions.
Turning to
As shown in
An objective of pervasive diagnosis is to use the diagnosis engine's beliefs to influence plans to gain additional information about the condition of the plant 1010. A plan is informative if it contributes information to the diagnosis engine's beliefs, and the plan outcome has a reasonable amount of uncertainty. The model-based control system 1020 facilitates pervasive diagnosis with the selective employment of intelligent on-line diagnosis through construction and execution of plans that provide enhanced diagnostic information according to the plant condition 1032 and/or the expected information gain 1036. The model-based control system 1020 may further facilitate pervasive diagnosis with the generation of one or more dedicated diagnostic plans for execution in the plant 1010 based on at least one diagnostic objective and the plant condition 1032. Thus, the model-based control system 1020 seeks to find a plan that achieves production goals and diagnostic goals.
The embodiment of
Referring back to the MFTVS engine 1030, the engine 1030 returns a plan operative to produce an optimal amount of diagnostic information to the planner 1022. In doing this, the MFTVS engine 1030 maps a pervasive diagnosis problem to a target value problem. Thereafter, the MFTVS engine 1030 uses the exemplary max-value-first target value search process 300 shown in
p
opt=argminachievesGoal(p)εP|Pr(ab(p))−T|
As should be apparent, popt corresponds to an optimal plan. Additionally, Pr(ab(p)) is the failure probability of plan p, and T is the optimal uncertainty. P is a set of plans that achieve the goals for the optimal plan popt. A plan with an optimal amount of uncertainty is a plan that produces an optimal amount of information.
To map a pervasive diagnosis problem to a target value problem, a graph and a connection graph, derived from the graph, are constructed. The vertices of the graph correspond to system states and the edges of the graph correspond to actions. A plan corresponds to a plurality of actions. Additionally, the edge weights correspond to the failure probability of the corresponding edge (or action), and the optimal amount of uncertainty corresponds to the target value. Further information pertaining to pervasive diagnosis is set forth in U.S. patent application Ser. No. 12/170,542 for “Methods and Systems For Pervasive Diagnostics,” incorporated herein by reference.
With reference to
The exemplary embodiment has been described with reference to the preferred embodiments. Obviously, modifications and alterations will occur to others upon reading and understanding the preceding detailed description. It is intended that the exemplary embodiment be construed as including all such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.
This application claims priority to and the benefit of U.S. Provisional Application No. 61/240,428, entitled “MAX-VALUE-FIRST SEARCH FOR TARGET VALUE PROBLEMS”, filed Sep. 8, 2009, incorporated herein by reference in its entirety. The disclosures of U.S. patent application Ser. No. 12/497,326 for “Depth-First Search for Target Value Problems,” by Schmidt et al., filed Jul. 2, 2009; U.S. patent application Ser. No. 12/409,235 for “Methods and Systems for Target Value Path Identification,” by Kuhn et al., filed Mar. 23, 2009; U.S. patent application Ser. No. 12/497,353 for “Multi-Interval Heuristics for Accelerating Target-Value Search,” by Schmidt et al., filed Jul. 2, 2009; U.S. patent application Ser. No. 12/170,542 for “Methods and Systems For Pervasive Diagnostics,” by de Kleer et al., filed Jul. 10, 2008; and U.S. patent application Ser. No. 12/170,577 for “Methods and Systems for Constructing Production Plans,” by Kuhn et al., filed Jul. 10, 2008, are each hereby incorporated herein by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
61240428 | Sep 2009 | US |