Controlled Constraint Sharing in Parallel Boolean Satisfiability Solvers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Parallel problem solvers face high runtime variance due to sensitivity to parameters and inefficiencies in constraint sharing, which can lead to increased overhead and reduced performance in solving complex NP-difficult problems.

Innovation Solution

Implementing controlled constraint sharing through a mechanism that compares the total number of shared constraints to a target, regulating the size of constraints exchanged using an additive increase/multiplicative decrease algorithm, and determining utility to control the sharing process, specifically in a Boolean satisfiability problem solver context.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel problem solvers exchange constraints freely to improve performance, then knowledge sharing improves problem solving efficiency, but communication overhead increases and slows down resolution

Engineering Contradiction:
Improveproblem solving efficiencyVSAvoidcommunication overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent dynamically changes the parameter of constraint sharing by adjusting the probability threshold for sharing constraints. The system monitors performance metrics and adapts the sharing parameter in real-time, transitioning between aggressive sharing and selective sharing modes to optimize the balance between knowledge sharing benefits and communication overhead costs.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements a feedback mechanism where the performance impact of constraint sharing is continuously monitored. The system measures whether constraint sharing actually improves problem solving efficiency and uses this feedback to adjust future sharing decisions, enabling adaptive control of the sharing process to minimize overhead while maintaining productivity benefits.

Inventive Principle:
Principle #23Feedback

2Reliability

If multiple parallel problem solvers are run with different parameters to reduce runtime variance, then solution reliability improves, but total computation time increases

Engineering Contradiction:
Improvesolution reliabilityVSAvoidtotal computation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges the efforts of multiple parallel problem solvers by enabling them to share constraints and learned information. Instead of running independent solvers that waste redundant computation, the system combines their knowledge bases so that constraints learned by one solver are immediately available to others, reducing total computation time while maintaining the reliability benefits of parallel execution.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies preliminary action by having problem solvers share constraints and learned information as soon as they are discovered, rather than waiting for completion. This allows other parallel solvers to benefit from the knowledge in advance, pruning their search spaces earlier and reducing the total time required to achieve reliable solutions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8346704B2Controlled constraint sharing in parallel problem solvers
Publication Date: 2013.01.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8346704B2 patent drawing
  • US8346704B2 patent drawing
  • US8346704B2 patent drawing

AI summary

Controlled constraint sharing in parallel problem solvers is described. In embodiments, constraint sharing in a problem solver is controlled by comparing a total number of shared constraints obtained in a time interval to a target, and regulating the subsequent number of shared constraints obtained from other problem solvers accordingly. Embodiments describe how the regulation of the subsequent number of shared constraints can be achieved by controlling the size of constraints shared by other problem solvers. Embodiments describe how an additive increase/multiplicative decrease algorithm can be used to determine the size of constraints to be exchanged. Embodiments also describe how the utility of the shared constraints can be determined, and used to control the size of constraints shared by other problem solvers. In embodiments, the problem solver is a Boolean satisfiability problem solver.