IP Library Granted Patent US 10,839,297
Granted Patent B1
US 10,839,297 · App. 15/617,602 · Granted Nov 17, 2020

System and method for configuration of an ensemble solver

Inventors: James Ezick (Canonsburg, PA); Jonathan Springer (Carbondale, IL); Nicolas T. Vasilache (New York, NY)
Assignee: Reservoir Labs, Inc.
G06N5/02G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,839,297
App. No.
15/617,602
Granted
Nov 17, 2020
Kind
B1
Abstract

In a system for enabling configuration of an ensemble of several solvers, such that the ensemble can efficiently solve a constraint problem, for each one of several candidate configurations, an array of scores is computed. The array corresponds to a statistical parameter related to a problem solution, and the computation is based on, at least in part, a set of features associated with the problem. One candidate configuration is assigned to a solver, and based on the array of scores associated with that candidate configuration the same or a different candidate configuration is assigned to a another solver. A system for dynamically reconfiguring an ensemble of solvers obtains runtime data from several solvers, and a new configuration is determined by applying a machine learning and/or heuristic analysis procedure to the runtime data. The configuration of a solver may be updated according to the new configuration while that solver is running.

Claims (65)

1. A method for dynamically assigning a configuration to a solver in an ensemble comprising a plurality of solvers collectively solving a specified problem, the method comprising:

receiving from at least a subset of solvers in the ensemble runtime data associated with a first set of solver configurations that are currently assigned to the subset of solvers;

applying by a processor at least one of a machine learning procedure and a heuristic analysis procedure to the runtime data to determine a new first solver configuration to be assigned to an already running first solver in the ensemble, the new first solver configuration being different from a current first solver configuration that is in the first set and that is currently assigned to the first solver, wherein the new first solver configuration adjusts a parameter of the first solver and changes a manner of searching an overall search space of the specified problem; and

assigning the new configuration to the first solver.

2. The method of claim 1 , wherein the parameter of the first solver is adjusted without stopping the first solver.

3. The method of claim 1 , wherein assigning the new first solver configuration comprises:

stopping the first solver;

changing the parameter of the first solver according to the new first solver configuration after stopping the first solver; and

restarting the first solver.

4. The method of claim 1 , further comprising identifying based on, at least in part, the runtime data a second solver in the ensemble performing at least at a preselected threshold.

5. The method of claim 4 , further comprising:

determining a new second solver configuration, wherein determining the new second solver configuration comprises adjusting a parameter of the second solver according to a corresponding parameter of a current second solver configuration from the first set, wherein the current second solver configuration is currently assigned to the second solver.

6. The method of claim 4 , wherein determining the new second solver configuration comprises copying each parameter of the new second solver configuration from a corresponding parameter of the current second solver configuration.

7. The method of claim 1 , wherein the plurality of solvers in the ensemble comprises a plurality of Boolean satisfiability solvers, the method further comprising:

associating a new seed with the first solver to which the new first solver configuration is assigned.

8. The method of claim 1 , further comprising:

identifying based on, at least in part, the runtime data a third solver in the ensemble performing below a preselected threshold; and

designating the third solver as the first solver that is to be assigned the new first solver configuration.

9. The method of claim 1 , wherein the runtime data comprises at least one of a depth of a solver decision stack, a duration for which the decision stack is at a specified depth, an average number of implications per decision, an implication fan out degree for a variable, an average length of an implication sequence, a maximum length of an implication sequence, and an average size of conflict clauses.

10. The method of claim 1 , wherein the new first solver configuration comprises at least one parameter selected from the group consisting of a restart frequency, a decision heuristic, a use of conflict clause minimization, a number of conflict clauses to generate from each conflict, use of database compaction, a decay rate for a decision heuristic score, a frequency of sharing information between the first solver and an other solver of the ensemble, selection indicative of information to be shared between the first solver and the other solver, and size of information to be shared between the first solver and the other solver.

11. The method of claim 1 , wherein the new first solver configuration comprises at least one parameter comprising a combination of at least two of a restart frequency, a decision heuristic, a use of conflict clause minimization, a number of conflict clauses to generate from each conflict, use of database compaction, a decay rate for a decision heuristic score, a frequency of sharing information between the first solver and an other solver of the ensemble, selection indicative of information to be shared between the first solver and the other solver, and size of information to be shared between the first solver and the other solver.

12. A system for assigning configurations to one or more solvers in an ensemble comprising a plurality of solvers collectively solving a specified problem, the system comprising:

a memory; and

a processor in electronic communication with the memory, wherein the processor is configured to:

receive from at least a subset of solvers in the ensemble runtime data associated with a first set of solver configurations that are currently assigned to the subset of solvers;

apply at least one of a machine learning procedure and a heuristic analysis procedure to the runtime data to determine a new first solver configuration to be assigned to an already running first solver in the ensemble, the new first solver configuration being different from a current first solver configuration that is in the first set and that is currently assigned to the first solver, wherein the new first solver configuration adjusts a parameter of the first solver and changes a manner of searching an overall search space of the specified problem; and

assign the new configuration to the first solver.

13. The system of claim 12 , wherein the processor is further configured to adjust the parameter of the first solver without stopping the first solver.

14. The system of claim 12 , wherein to assign the new first solver configuration the processor is configured to:

stop the first solver;

change the parameter of the first solver according to the new first solver configuration after stopping the first solver; and

restart the first solver.

15. The system of claim 12 , wherein the processor is further configured to identify based on, at least in part, the runtime data a second solver in the ensemble performing at least at a preselected threshold.

16. The system of claim 15 , wherein the instructions are further programmed to:

determine a new second solver configuration, wherein to determine the new second solver configuration the processor is configured to adjust a parameter of the second solver according to a corresponding parameter of a current second solver configuration from the first set, wherein the current second solver configuration is currently assigned to the second solver.

17. The system of claim 15 , wherein to determine the new second solver configuration the processor is configured to copy each parameter of the new second solver configuration from a corresponding parameter of the current second solver configuration.

18. The system of claim 12 , wherein the plurality of solvers in the ensemble comprises a plurality of Boolean satisfiability solvers, and the processor is further configured to:

associate a new seed with the first solver to which the new first solver configuration is assigned.

19. The system of claim 12 , wherein the processor is further configured to:

identify based on, at least in part, the runtime data a third solver in the ensemble performing below a preselected threshold; and

designate the third solver as the first solver that is to be assigned the new first solver configuration.

20. The system of claim 12 , wherein the runtime data comprises at least one of a depth of a solver decision stack, a duration for which the decision stack is at a specified depth, an average number of implications per decision, an implication fan out degree for a variable, an average length of an implication sequence, a maximum length of an implication sequence, and an average size of conflict clauses.

21. The system of claim 12 , wherein the new first solver configuration comprises at least one parameter selected from the group consisting of a restart frequency, a decision heuristic, a use of conflict clause minimization, a number of conflict clauses to generate from each conflict, use of database compaction, a decay rate for a decision heuristic score, a frequency of sharing information between the first solver and an other solver of the ensemble, selection indicative of information to be shared between the first solver and the other solver, and size of information to be shared between the first solver and the other solver.

22. The system of claim 12 , the new first solver configuration comprises at least one parameter comprising a combination of at least two of a restart frequency, a decision heuristic, a use of conflict clause minimization, a number of conflict clauses to generate from each conflict, use of database compaction, a decay rate for a decision heuristic score, a frequency of sharing information between the first solver and an other solver of the ensemble, selection indicative of information to be shared between the first solver and the other solver, and size of information to be shared between the first solver and the other solver.

23. An article of manufacture, comprising a non-transitory machine-readable medium storing instructions that, when executed by a machine comprising a memory and a processor in electronic communication with the memory, configure the processor to:

receive from at least a subset of solvers in an ensemble of a plurality of solvers collectively solving a specified problem, runtime data associated with a first set of solver configurations that are currently assigned to the subset of solvers;

apply at least one of a machine learning procedure and a heuristic analysis procedure to the runtime data to determine a new first solver configuration to be assigned to an already running first solver in the ensemble, the new first solver configuration being different from a current first solver configuration that is in the first set and that is currently assigned to the first solver, wherein the new first solver configuration adjusts a parameter of the first solver and changes a manner of searching an overall search space of the specified problem; and

assign the new configuration to the first solver.

24. The article of manufacture of claim 23 , wherein the instructions further configure the processor to adjust the parameter of the first solver without stopping the first solver.

25. The article of manufacture of claim 23 , wherein to assign the new first solver configuration the instructions further configure the processor to:

stop the first solver;

change the parameter of the first solver according to the new first solver configuration after stopping the first solver; and

restart the first solver.

26. The article of manufacture of claim 23 , wherein the instructions further configure the processor to identify based on, at least in part, the runtime data a second solver in the ensemble performing at least at a preselected threshold.

27. The article of manufacture of claim 26 , wherein the instructions further configure the processor to:

determine a new second solver configuration, wherein to determine the new second solver configuration the instructions further configure the processor to adjust a parameter of the second solver according to a corresponding parameter of a current second solver configuration from the first set, wherein the current second solver configuration is currently assigned to the second solver.

28. The article of manufacture of claim 26 , wherein to determine the new second solver configuration the instructions further configure the processor to copy each parameter of the new second solver configuration from a corresponding parameter of the current second solver configuration.

29. The article of manufacture of claim 23 , wherein the plurality of solvers in the ensemble comprises a plurality of Boolean satisfiability solvers, and the instructions further configure the processor to:

associate a new seed with the first solver to which the new first solver configuration is assigned.

30. The article of manufacture of claim 23 , wherein the instructions further configure the processor to:

identify based on, at least in part, the runtime data a third solver in the ensemble performing below a preselected threshold; and

designate the third solver as the first solver that is to be assigned the new first solver configuration.

31. The article of manufacture of claim 23 , wherein the runtime data comprises at least one of a depth of a solver decision stack, a duration for which the decision stack is at a specified depth, an average number of implications per decision, an implication fan out degree for a variable, an average length of an implication sequence, a maximum length of an implication sequence, and an average size of conflict clauses.

32. The article of manufacture of claim 23 , wherein the new first solver configuration comprises at least one parameter selected from the group consisting of a restart frequency, a decision heuristic, a use of conflict clause minimization, a number of conflict clauses to generate from each conflict, use of database compaction, a decay rate for a decision heuristic score, a frequency of sharing information between the first solver and an other solver of the ensemble, selection indicative of information to be shared between the first solver and the other solver, and size of information to be shared between the first solver and the other solver.

33. The article of manufacture of claim 23 , the new first solver configuration comprises at least one parameter comprising a combination of at least two of a restart frequency, a decision heuristic, a use of conflict clause minimization, a number of conflict clauses to generate from each conflict, use of database compaction, a decay rate for a decision heuristic score, a frequency of sharing information between the first solver and an other solver of the ensemble, selection indicative of information to be shared between the first solver and the other solver, and size of information to be shared between the first solver and the other solver.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: QUALCOMM TECHNOLOGIES, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 064686/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: SIGNIFICS AND ELEMENTS, LLC
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 058896/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2021
From: RESERVOIR LABS, INC.
To: SIGNIFICS AND ELEMENTS, LLC
Reel/Frame 057364/0569 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2017
From: EZICK, JAMES; SPRINGER, JONATHAN; VASILACHE, NICOLAS T.
To: RESERVOIR LABS, INC.
Reel/Frame 043462/0259 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2017
From: RESERVOIR LABS, INC.
To: LETHIN, RICHARD
Reel/Frame 043462/0301 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2017
From: LETHIN, RICHARD
To: SIGNIFICS AND ELEMENTS, LLC
Reel/Frame 043462/0307 →
Continuity (2)
Division 13910467 · Jun 5, 2013
Provisional Application 61655965 · Jun 5, 2012