Constraint Solver Floating Point Domain Splitting Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Constraint satisfaction problems involving floating point variables with large domains often require numerous domain splits, leading to slow convergence and inefficient solution finding due to the large number of splits needed to assign a single value.

Innovation Solution

The solver optimizes the assignment of floating point variables by first attempting to assign a predetermined value, such as 0 or a domain boundary, before performing domain splitting, thereby reducing the need for dichotomic splits and improving convergence efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If domain splitting is performed for floating point variables with large domains, then a value can be assigned to the variable, but the number of splits required increases significantly, leading to slow convergence

Engineering Contradiction:
Improvevalue assignment precisionVSAvoidconvergence time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The solver performs preliminary actions by first attempting to assign predetermined values (such as 0 or domain boundary values) before initiating domain splitting. This preliminary value assignment attempt can succeed immediately without requiring multiple splits, thereby reducing the total number of splits needed and accelerating convergence for floating point variables with large domains.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If numerous domain splits are performed to assign a single value to a floating point variable, then the variable can be assigned a value, but the solution finding process becomes inefficient

Engineering Contradiction:
Improvevariable value assignmentVSAvoidsolution finding efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The solver attempts preliminary value assignment with predetermined values before performing domain splitting. This preliminary action can successfully assign values to floating point variables without requiring numerous splits, thereby maintaining high manufacturing precision while significantly improving solution finding efficiency by reducing the number of iterative splits needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The solver changes the approach to value assignment by first attempting predetermined values (parameter change from continuous domain to discrete candidate values). This parameter change strategy allows the solver to skip numerous domain splits and directly assign values, thereby improving productivity while maintaining the required precision for floating point variables.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8229870B2Constraint based system with domain splitting
Publication Date: 2012.07.24 ORACLE INT CORP
  • US8229870B2 patent drawing
  • US8229870B2 patent drawing
  • US8229870B2 patent drawing

AI summary

A solver for a constraint satisfaction problem includes a plurality of variables and a plurality of constraints. A floating point variable has a domain and is assigned a value by first determining if a predetermined value can be assigned to the floating point variable if the predetermined value is in the domain. If not, the solver determines if a bound of the domain can be assigned to the floating point variable. If the predetermined value can not be assigned to the floating point variable and the bound of the domain can not be assigned to the floating point variable, the solver assigns a value to the floating point variable using domain splitting.