Dynamic Domain Splitting for Constraint Solving
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Constraint satisfaction problems (CSPs) are NP-hard, leading to exponential worst-case complexity in existing algorithms, and current branching strategies often result in exhaustive searches, especially in bit-level solvers, which is inefficient for large problems like functional verification in electronic design.
Innovation Solution
A dynamic splitting search strategy that assigns a set of values to variables, doubles the domain upon backtracking, and uses a combination of single value assignment and binary search to efficiently reduce the domain until a single consistent value is determined, improving the branching strategy and reducing search time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a predefined branching step setting a single value to a variable is used, then the algorithm follows a standard DPLL-like strategy, but it leads to exhaustive search and exponential worst-case complexity
Solution Approach 1:
The patent applies dynamics by making the domain size adaptive rather than fixed. The algorithm dynamically adjusts the domain size based on the current search state and problem characteristics, transitioning between different domain sizes during the search process to optimize performance for different problem instances and search stages
Solution Approach 2:
The patent changes the parameter of domain size from a fixed value to a variable parameter that can be adjusted during search. By modifying the domain size parameter adaptively, the algorithm can explore larger portions of the search space when appropriate and reduce to smaller domains when needed, avoiding exhaustive search while maintaining completeness
2Measurement precision
If bit-level solving is used, then the solver can handle detailed constraints, but the set-up time scales to the number of bits which is often a bottleneck for large problems
Solution Approach 1:
The patent segments the problem representation by introducing variables that group multiple bits together. Instead of treating each bit as a separate variable, the algorithm creates higher-level variables representing groups of bits, thereby reducing the total number of variables and constraints while preserving the ability to express detailed constraints through appropriate constraint formulations
3Adaptability or versatility
If a larger domain is generated upon backtracking, then more values are available for assignment, but the search space increases which may seem counterintuitive
Solution Approach 1:
The patent implements feedback by using information from failed search attempts to guide future domain size selections. When backtracking occurs, the algorithm learns from the failure and adjusts the domain size accordingly, using feedback from the search process to make informed decisions about domain representation in subsequent search steps
Data Source
AI summary
The present disclosure relates to a computer-implemented method for iteratively solving a constraint satisfaction problem. The method may include assigning a value to each of one or more variables associated with the constraint satisfaction problem, each of the one or more variables having a first domain. The method may also include identifying an invalid solution resulting from a first value assigned to a first variable. The method may further include replacing the first value with a second value assigned to the first variable. The method may also include, upon identifying the invalid solution, generating a second domain larger than the first domain.


