Dynamic Domain Splitting for Constraint Solving

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesearch timeVSAvoidalgorithm complexity
Core Design Contradiction:
ProductivityVSDevice 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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveconstraint satisfaction precisionVSAvoidset-up time
Core Design Contradiction:
Measurement precisionVSLoss of time

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

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvedomain adaptabilityVSAvoidsearch space management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9189743B1System, method, and computer program product for constraint solving
Publication Date: 2015.11.17 CADENCE DESIGN SYST INC
  • US9189743B1 patent drawing
  • US9189743B1 patent drawing
  • US9189743B1 patent drawing

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.