Multi-threaded Constraint Solver with Cloned Planning Entities

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Constraint satisfaction solvers using heuristics and metaheuristics face inefficiencies due to the need for repeated copying of models across multiple threads, leading to high memory usage and processing time, especially when dealing with complex optimization problems, as each thread must independently alter and score solution states without interfering with others.

Innovation Solution

Implementing an object-oriented multi-threaded constraint satisfaction solver with a master thread and solver threads, where each solver thread has cloned planning entity objects, allowing for independent incremental changes and scoring without the need for repeated object copying, enabling parallel processing and incremental scoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If repeated copying of models is performed across multiple threads, then each thread can independently process solution states, but memory usage and processing time increase significantly

Engineering Contradiction:
Improveindependent processing capabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies selective copying by creating shallow copies of only the necessary planning entity objects rather than copying the entire model. This allows solver threads to have independent working copies of planning entities while sharing other model components, thereby reducing memory usage and copying overhead while maintaining independent processing capability.

Inventive Principle:
Principle #26Copying

2Reliability

If repeated copying of models is performed across multiple threads, then each thread can independently process solution states, but memory usage increases significantly

Engineering Contradiction:
Improveindependent processing capabilityVSAvoidmemory resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements selective shallow copying of planning entity objects instead of copying the entire model. This reduces the quantity of data that needs to be copied and stored in memory, while still providing each solver thread with sufficient independence to process solution states without interfering with other threads.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent enables shared read-only access to certain model components across multiple threads, allowing these components to serve multiple purposes simultaneously. This reduces redundant storage of identical data in each thread, thereby reducing overall memory consumption while maintaining thread independence for modifications.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If incremental changes and scoring are performed concurrently in multiple threads, then solution identification time is reduced, but thread interference occurs without proper isolation

Engineering Contradiction:
Improvesolution identification speedVSAvoidthread independence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the model into distinct components: planning entity objects that are copied to each thread for independent modification, and other model components that remain shared and read-only. This segmentation allows concurrent incremental changes to planning entities without interfering with each other or the shared components, enabling parallel processing while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses cloned planning entity objects as intermediaries that allow solver threads to independently explore solution states. These intermediaries provide the necessary isolation so that incremental changes and scoring operations in one thread do not interfere with other threads, while still enabling efficient parallel processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10509654B2Multi-threaded constraint satisfaction solver
Publication Date: 2019.12.17 RED HAT INC
  • US10509654B2 patent drawing
  • US10509654B2 patent drawing
  • US10509654B2 patent drawing

AI summary

An object-oriented method for multi-threading in a constraint satisfaction solver is provided. A master thread establishes a first solution state of a constraint problem. The master thread establishes a plurality of solver threads, each solver thread having an initial solution state that is identical to a first solution state of the master thread, and a plurality of cloned planning entity objects that are clones of a plurality of planning entity objects. The master thread communicates a first plurality of temporary incremental state changes to the plurality of solver threads that alters the initial solution state of each solver thread to a different solution state. The master thread receives, from each respective solver thread of the plurality of solver threads, a first score associated with the different solution state of the respective solver thread.