Method and system for algorithm synthesis in problem solving
First Claim
1. A problem solving method for use in a computer system, wherein the computer system includes an applications module having a problem solver, wherein the problem solver comprises a solving module and a complexity module, the method comprising:
- receiving a problem statement from the applications module;
predicting an expected problem solver behavior associated with configuration parameters for said problem statement;
providing the solving module with said configuration parameters;
selecting a set of configuration parameter vectors;
determining a set of search space points;
perform a partial search with said configuration parameter vectors;
determining actual solver behavior;
reviewing said actual solver behavior incrementally to determine if a problem solution has been found, wherein reviewing comprises comparing said expected solver behavior with said actual solver behavior;
determining whether to perform a solver iteration step or to request the complexity module to perform an adaptation step if a problem solution has not been found, wherein said complexity module includes means for detecting problem complexity, means for estimating rate of improvement bounds, and means for selecting a complexity related action, wherein said complexity related action comprises selecting at least one member from the group consisting of returning an error, accepting the best result possible for fixed computational resources, adding computational resources, and changing the problem statement;
performing a said solver iteration step when said solver iteration step is selected, comprising the steps of determining new actual solver behavior and determining whether to repeat said solver iteration step;
repeating said solver iteration step until said adaptation step is selected;
comparing said actual solver behavior with said expected solver behavior when said adaptation step is selected;
requesting the complexity module to perform said adaptation step;
performing said adaptation step, comprising the steps of modifying said configuration parameters within the complexity module, configuring the solving module with said modified configuration parameters, determining expected solver behavior associated with said modified configuration parameters for said problem statement, selecting an algorithm to calculate a revised problem solution, determining a revised actual solver behavior associated with said modified configuration parameters for said problem statement, reviewing said revised actual solver behavior to determine if a problem solution has been found, determining whether to perform said solver iteration step or to request the complexity module to perform another adaptation step if a problem solution has not been found, and repeating said iteration step until said adaptation step is selected;
repeating said adaptation step until a problem solution is found; and
providing the solution to the applications module.
5 Assignments
0 Petitions
Accused Products
Abstract
A method for problem solving in a computer system includes an applications module for sending a problem statement to a complexity module, which configures a solving module with configuration parameters and also determines expected problem solver behavior. The solving module selects a set of parameter configuration vectors, determines a set of search space points, performs a partial search based on the parameter configuration vectors, and determines actual problem solver behavior. The solving module then determines whether a problem solution has been found, whether to perform a solver iteration step or request a complexity module to perform an adaptation step.
-
Citations
40 Claims
-
1. A problem solving method for use in a computer system, wherein the computer system includes an applications module having a problem solver, wherein the problem solver comprises a solving module and a complexity module, the method comprising:
-
receiving a problem statement from the applications module;
predicting an expected problem solver behavior associated with configuration parameters for said problem statement;
providing the solving module with said configuration parameters;
selecting a set of configuration parameter vectors;
determining a set of search space points;
perform a partial search with said configuration parameter vectors;
determining actual solver behavior;
reviewing said actual solver behavior incrementally to determine if a problem solution has been found, wherein reviewing comprises comparing said expected solver behavior with said actual solver behavior;
determining whether to perform a solver iteration step or to request the complexity module to perform an adaptation step if a problem solution has not been found, wherein said complexity module includes means for detecting problem complexity, means for estimating rate of improvement bounds, and means for selecting a complexity related action, wherein said complexity related action comprises selecting at least one member from the group consisting of returning an error, accepting the best result possible for fixed computational resources, adding computational resources, and changing the problem statement;
performing a said solver iteration step when said solver iteration step is selected, comprising the steps of determining new actual solver behavior and determining whether to repeat said solver iteration step;
repeating said solver iteration step until said adaptation step is selected;
comparing said actual solver behavior with said expected solver behavior when said adaptation step is selected;
requesting the complexity module to perform said adaptation step;
performing said adaptation step, comprising the steps of modifying said configuration parameters within the complexity module, configuring the solving module with said modified configuration parameters, determining expected solver behavior associated with said modified configuration parameters for said problem statement, selecting an algorithm to calculate a revised problem solution, determining a revised actual solver behavior associated with said modified configuration parameters for said problem statement, reviewing said revised actual solver behavior to determine if a problem solution has been found, determining whether to perform said solver iteration step or to request the complexity module to perform another adaptation step if a problem solution has not been found, and repeating said iteration step until said adaptation step is selected;
repeating said adaptation step until a problem solution is found; and
providing the solution to the applications module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system for problem solving, the system having implementation units communicating with the computer system, the system comprising:
-
an input device for providing the problem statement;
a computer coupled to the output of said input device;
a memory portion coupled to the computer comprising;
software for receiving the problem statement from said input device;
software for determining solver configuration parameter vectors;
software for configuring a problem solver, wherein said problem solver includes a solving module and a complexity module, wherein said complexity module includes means for detecting problem complexity, means for estimating rate of improvement bounds, and means for selecting a complexity related action, wherein said complexity related action comprises selecting at least one member from the group consisting of returning an error, accepting the best result possible for fixed computational resources, adding computational resources, and changing the problem statement;
software for predicting expected solver behavior;
software for performing a partial search with said configuration parameter vectors;
software for determining actual solver behavior and incrementally determining whether a solution has been found, wherein determining whether a solution has been found comprises comparing said expected solver behavior and said actual solver behavior;
software for determining whether to perform a solver iteration step or to perform an adaptation step; and
software for performing an adaptation step, comprising modifying said configuration parameters and reconfiguring said problem solver; and
output means for providing a solution statement. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer system for problem solving, the system having implementation units communicating with the computer system, the system comprising:
-
an input device for providing the primary goal for the task to be performed;
a computer coupled to the output of said input device;
a memory portion coupled to said computer comprising;
a complexity module for configuring a problem statement and predicting expected solver behavior, wherein said complexity module includes means for detecting problem complexity, means for estimating rate of improvement bounds, and means for selecting a complexity related action, wherein said complexity related action comprises selecting at least one member from the group consisting of returning an error, accepting the best result possible for fixed computational resources, adding computational resources, and changing the problem statement;
a controllable solving module coupled to said complexity module for determining actual solver behavior;
a synthesis module for determining configuration parameter vectors; and
comparison means for comparing said actual solver behavior with said expected solver behavior and determining whether a problem solution has been found; and
output means for providing a statement of the problem solution. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A problem solver in the form of a program to be run on a computer system, said problem salver comprising:
-
means for receiving a problem statement;
means for detecting problem complexity;
means for estimating rate of improvement bounds;
means for selecting a complexity related action, wherein said complexity related action comprises selecting at least one member from the group consisting of returning an error, accepting the best result possible for fixed computational resources, adding computational resources, and changing the problem statement;
means for predicting expected solver behavior associated with said problem statement;
means for providing configuration parameters for a plurality of problems;
means for determining a set of configuration parameter vectors;
means for performing a partial search with said configuration parameter vectors;
means for calculating actual solver behavior;
means for reviewing said actual solver behavior incrementally to determine if a problem solution has been found, wherein reviewing comprises comparing said expected solver behavior to said actual solver behavior;
means for determining whether to perform a solver iteration step or to request an adaptation step if a problem solution has not been found;
means for performing a solver iteration step, comprising performing another search step, calculating a revised actual solver behavior and determining whether to repeat said solver iteration step;
means for comparing said actual solver behavior with said expected solver behavior;
means for requesting performance of an adaptation step;
means for performing an adaptation step, comprising modifying said configuration parameters, determining a revised expected problem solver behavior, and providing said modified configuration parameters and said revised expected problem solver behavior to said means for performing a solver iteration step; and
means for providing the problem solution to an output device.
-
-
32. A problem solving method in the form of a program to be run on a computer system comprising:
-
receiving a problem statement;
means for detecting problem complexity;
configuring a problem solver with configuration parameters;
determining a set of configuration parameter vectors;
predicting expected solver behavior associated with said configuration parameters for said problem statement;
searching for a solution with said configuration parameter vectors;
determining actual solver behavior;
means for estimating rate of improvement bounds;
determining if a problem solution has been found, comprising comparing said expected solver behavior with said actual solver behavior incrementally;
means for selecting a complexity related action, wherein said complexity related action comprises selecting at least one member from the group consisting of returning an error, accepting the best result possible for fixed computational resources, adding computational resources, and changing the problem statement;
determining whether to perform a solving iteration step or an adaptation step if a problem solution has not been found;
performing said solver iteration step, when said solver iteration step is selected, comprising the steps of determining a new actual solver behavior and determining whether to repeat said iteration step;
repeating said solver iteration step until said adaptation step is selected;
comparing said actual solver behavior with said expected solver behavior when said adaptation step is selected;
performing said adaptation step, comprising the steps of modifying said configuration parameters, determining expected solver behavior associated with said modified configuration parameters, determining a revised actual solver behavior, reviewing said revised actual solver behavior to determine if a problem solution has been found, determining whether to perform said solver iteration step or to perform another adaptation step if a problem solution has not been found, and repeating said iteration step until said adaptation step is selected;
repeating said adaptation step until a problem solution is found; and
transmitting a solution statement. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39)
-
-
40. An article of manufacture comprising a computer usable medium having computer readable program code embodied in said medium which, when said program code is executed by said computer causes said computer to perform method steps for problem solving for use in a computer system, wherein the problem solver includes a solving module and a complexity module, said method comprising:
-
receiving a problem statement from the applications module;
predicting an expected problem solver behavior associated with configuration parameters for said problem statement;
providing the solving module with said configuration parameters;
selecting a set of configuration parameter vectors;
determining a set of search space points;
perform a partial search with said configuration parameter vectors;
determining actual solver behavior;
reviewing said actual solver behavior incrementally to determine if a problem solution has been found, wherein reviewing comprises comparing said expected solver behavior with said actual solver behavior;
determining whether to perform a solver iteration step or to request the complexity module to perform an adaptation step if a problem solution has not been found, wherein said complexity module includes means for detecting problem complexity, means for estimating rate of improvement bounds, and means for selecting a complexity related action, wherein said complexity related action comprises selecting at least one member from the group consisting of returning an error, accepting the best result possible for fixed computational resources, adding computational resources, and changing the problem statement;
performing a said solver iteration step when said solver iteration step is selected, comprising the steps of determining new actual solver behavior and determining whether to repeat said solver iteration step;
repeating said solver iteration step until said adaptation step is selected;
comparing said actual solver behavior with said expected solver behavior when said adaptation step is selected;
requesting the complexity module to perform said adaptation step;
performing said adaptation step, comprising the steps of modifying said configuration parameters within the complexity module, configuring the solving module with said modified configuration parameters, determining expected solver behavior associated with said modified configuration parameters for said problem statement, selecting an algorithm to calculate a revised problem solution, determining a revised actual solver behavior associated with said modified configuration parameters for said problem statement, reviewing said revised actual solver behavior to determine if a problem solution has been found, determining whether to perform said solver iteration step or to request the complexity module to perform another adaptation step if a problem solution has not been found, and repeating said iteration step until said adaptation step is selected;
repeating said adaptation step until a problem solution is found; and
providing the solution to the applications module.
-
Specification