Patent EP0032403A1 successfully refreshed from Google Patents.
Patent JPS6010816A successfully refreshed from Google Patents.
Patent US6446057B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6446057B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for transparent backtracking

Assignee: Versata Development Group Inc
•
Filing: 2000-12-04
•
Granted: 2002-09-03
•
Expires: 2020-12-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A technique is used in embodiments of the invention such that backtracking programs can be written in a general purpose computer language (e.g., C++ or Java) without requiring the control structure of the program to reflect the structure of the decision tree. A data state and a control state are restored during backtracking. For restoring the data state, embodiments of the invention keep track of the changes made to variables and the point in execution at which the changes are made. When backtracking occurs, the data state can be restored by undoing the changes to the desired point in execution. For restoring the control state, the method of the invention provides a “failure” exception state that is invoked upon failure in the program (e.g., a failure to find a solution in a search program). The failure exception is “caught” by catch points established in the execution stack. The failure exception is passed up the execution stack until a point is reached prior to the failure at which execution should be re-initiated. Since the control structure of the search program need not have the same form as the decision tree, part of the control state for the desired decision point may no longer exist on the execution stack, so the catch point may not be directly associated with the desired point but merely preceed it. The remaining part of the control state is restored by re-executing the program in a special re-execution mode until the desired state is achieved and another alternative may be chosen.

Inventors

  • 👤 Paul William Vaughan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 21:27
CPC Classifications
G; G06; G06N; G06N5/00; G06N5/01

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 178 words
A method of backtracking in a program executable in a memory medium of a computer system comprising a computer program written in a general purpose computer programming language comprising: instantiating a choice point in an executable computer program in a memory medium, said choice point identifying a decision point in said program, at least one alternative choice being linked with said choice point; preserving modifications to data in said program as defined at said choice point as a data state portion of part of said program's processing state; specifying a catch point associated with a point of execution prior to said choice point as a control state portion of said program's processing state; examining said choice point to find said at least one alternative choice; traversing said choice point to evaluate the validity of said at least one alternative choice; and restoring said program to said processing state at said catch point associated with said choice point by throwing an exception to said catch point and undoing said modifications when said at least one alternative choice is invalid.
Claim 2
Independent Claim 178 words
A method of backtracking in a program executable in a memory medium of a computer system comprising a computer program written in a general purpose computer programming language comprising: instantiating a choice point in an executable computer program in a memory medium, said choice point identifying a decision point in said program, at least one alternative choice being linked with said choice point; preserving modifications to data in said program as defined at said choice point as a data state portion of part of said program's processing state; specifying a catch point associated with a point of execution prior to said choice point as a control state portion of said program's processing state; examining said choice point to find said at least one alternative choice; traversing said choice point to evaluate the validity of said at least one alternative choice; and restoring said program to said processing state at said catch point associated with said choice point by throwing an exception to said catch point and undoing said modifications when said at least one alternative choice is invalid.
Claim 3
Dependent Claim 19 words
The method of claim 1 further comprising: retaining said modifications to said data state aftere restoring said processing state.
Claim 4
Dependent Claim 21 words
The method of claim 2 further comprising: utilizing said retained modifications for verifying said data state after restoring said processing state.
Claim 5
Dependent Claim 12 words
The method of claim 1 wherein said catch point is explicitly specified.
Claim 6
Dependent Claim 12 words
The method of claim 1 wherein said catch point is implicitly specified.
Claim 7
Independent Claim 178 words
A method of backtracking in a program executable in a memory medium of a computer system comprising a computer program written in a general purpose computer programming language comprising: identifying a target choice point in a decision tree of an executable computer program by traversing a search stack backwards for at least one choice point linked to at least one untried alternative choice; preserving data state of said program as defined at said target choice point by storing modifications to said data values in a modification object; specifying a catch point associated with a point of execution prior to said target choice point in said program; examining said target choice point to find said at least one untried alternative choice; traversing said target choice point to evaluate the validity of said at least one untried alternative choice; throwing an exception to said catch point when said at least one untried alternative choice is invalid; restoring said program data state using said modification object; and re-executing said program when said catch point is prior to said target choice point.
Claim 8
Independent Claim 178 words
A method of backtracking in a program executable in a memory medium of a computer system comprising a computer program written in a general purpose computer programming language comprising: identifying a target choice point in a decision tree of an executable computer program by traversing a search stack backwards for at least one choice point linked to at least one untried alternative choice; preserving data state of said program as defined at said target choice point by storing modifications to said data values in a modification object; specifying a catch point associated with a point of execution prior to said target choice point in said program; examining said target choice point to find said at least one untried alternative choice; traversing said target choice point to evaluate the validity of said at least one untried alternative choice; throwing an exception to said catch point when said at least one untried alternative choice is invalid; restoring said program data state using said modification object; and re-executing said program when said catch point is prior to said target choice point.
Claim 9
Dependent Claim 22 words
The method of claim 6 further comprising repeating from said identifying step on each of said at least one untried alternative choices.
Claim 10
Dependent Claim 21 words
The method of claim 6 further comprising: retaining said modifications to said program data state after restoring said program data state.
Claim 11
Dependent Claim 22 words
The method of claim 8 retaining said modifications to said modifications to said program data state after restoring said program data state.
Claim 12
Dependent Claim 12 words
The method of claim 6 wherein said catch point is explicitly specified.
Claim 13
Dependent Claim 12 words
The method of claim 6 wherein said catch point is implicitly specified.
Claim 14
Dependent Claim 172 words
A transparent backtracking search system executable in a memory medium of a computer system comprising a computer program written in a general purpose computer programming language comprising: a search system comprising: a search stack residing in a memory medium of a computer system, said search stack comprising at least one choice point having a set of alternatives; a model capable of examining said search stack to determine whether said set of alternatives are viable; a means for inputting data; and a means for outputting the search result; an execution stack coupled to said model storing the execution state of said search system and a plurality of catch points in said search system; an engine coupled to said model and said execution stack; a means for validating the viability of choices of said set of alternatives; a means for reverting said search system to one of said plurality of catch points of said execution stack and reverting said search stack to said a least one choice point having at least one untried alternative.
Claim 15
Dependent Claim 172 words
A transparent backtracking search system executable in a memory medium of a computer system comprising a computer program written in a general purpose computer programming language comprising: a search system comprising: a search stack residing in a memory medium of a computer system, said search stack comprising at least one choice point having a set of alternatives; a model capable of examining said search stack to determine whether said set of alternatives are viable; a means for inputting data; and a means for outputting the search result; an execution stack coupled to said model storing the execution state of said search system and a plurality of catch points in said search system; an engine coupled to said model and said execution stack; a means for validating the viability of choices of said set of alternatives; a means for reverting said search system to one of said plurality of catch points of said execution stack and reverting said search stack to said a least one choice point having at least one untried alternative.
Claim 16
Dependent Claim 22 words
The system of claim 12 wherein said search system is capable of determining the viability of alternative configurations of a computer system.
Claim 17
Dependent Claim 22 words
The system of claim 13 wherein said validating means can determine the viability of installing a particular component in said computer system.
Claim 18
Dependent Claim 23 words
The system of claim 13 wherein said validating means can choose a component from a set of components existing in said computer system.
Claim 19
Dependent Claim 12 words
The system of claim 12 wherein said validating means is not recursive.
Claim 20
Dependent Claim 33 words
The system of claim 12 further comprising a means for re-executing processing from said catch point to said at least one choice point when said catch point is prior to said choice point.
Claim 21
Dependent Claim 22 words
The system of claim 12 wherein said engine is capable of causing said model to recreate a portion of said search stack.
Claim 22
Dependent Claim 19 words
The system of claim 12 wherein a set of modifications are associated with said at least one choice point.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-09-02 2006-03-04 2006-09-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-09-02 2010-03-04 2010-09-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-09-02 2014-03-04 2014-09-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag