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.

Метод использован в воплощениях вымысла такие что backtracking программы можно написать в общего назначения компьютерном языке (например, C++ или java) без требовать, что структура управления программы отразила структуру дерева решений. Положение данных и положение управления восстановлены во время backtracking. Для восстанавливать положение данных, воплощения вымысла keep track of сделанные изменения к перемеююым и пункт в исполнении на котором изменения сделаны. Когда backtracking происходит, положение данных может быть восстановлено путем расстегивать изменения к заданному пункту в исполнении. Для восстанавливать положение управления, метод вымысла обеспечивает положение исключения "отказа" которое invoked на отказе в программе (например, отказе найти разрешение в программе поиска). Исключение отказа "уловлено" пунктами задвижки установленными в стоге исполнения. Исключение отказа о вверх по стогу исполнения до тех пор пока пункт не достигнуть до отказа на исполнение должно быт6$ет-начато. В виду того что структура управления программы поиска иметь такую же форму как дерева решений, часть положения управления для заданного пункта решения может no longer не существовать на стоге исполнения, поэтому пункт задвижки не может сразу быть связан с заданным пунктом но просто предшествовать его. Остальная часть положения управления восстановлена путем re-executing программа в специальном режиме ре-ispolneni4 до тех пор пока заданное положение не достигнуть и другая алтернатива может быть выбрана.

 
Web www.patentalert.com

< (none)

< Returning flying polygon

> Controller and control method for satellite orbit-keeping maneuvers

> (none)

~ 00043