Prefix Tree Search Skipping Identical Subtrees

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

String matching operations in Electronic Design Automation (EDA) tools, particularly in prefix trees with hierarchical names, are inefficient due to the need to traverse all tree structures, leading to long computation times when searching for design elements that match user-defined regular expressions.

Innovation Solution

The algorithm skips identical subtrees that have already been searched without finding matches by utilizing a prefix equivalence check, reducing the search space and improving efficiency through Depth-First Search and techniques like Brzozowski derivatives or Nondeterministic Finite Automatons.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the algorithm traverses all tree structures to search for matching objects, then completeness of search is ensured, but computation time becomes excessively long

Engineering Contradiction:
Improvesearch completenessVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The algorithm performs preliminary actions by pre-computing and storing canonical forms of module names and their prefix equivalence relationships before the actual search begins. This preliminary preparation allows the search algorithm to quickly identify and skip identical subtrees during execution, significantly reducing computation time while maintaining search completeness through the use of depth-first search with proper backtracking.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the algorithm searches every subtree in the prefix tree, then all potential matches are found, but redundant searches in identical subtrees increase computation cost

Engineering Contradiction:
Improvematch completenessVSAvoidsearch efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The algorithm uses the concept of copying by creating a canonical representation of each module name and storing it in a lookup structure. When encountering a subtree, the algorithm checks if its prefix matches a previously seen prefix with the same canonical form. If so, it skips searching that subtree since it would be redundant. This copying approach maintains match completeness while dramatically improving search efficiency by eliminating duplicate work.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The algorithm changes the parameter of search by introducing a new dimension to the search space: the canonical form of module names. By transforming the search problem from simply traversing tree nodes to traversing nodes while comparing their canonical forms, the algorithm identifies equivalent subtrees and skips redundant searches. This parameter transformation enables efficient search while maintaining completeness.

Inventive Principle:
Principle #35Parameter changes

3Duration of action of moving object

If the algorithm uses depth-first search to traverse the tree, then search depth is controlled, but identical subtrees are searched multiple times increasing time complexity

Engineering Contradiction:
Improvesearch depth controlVSAvoidtime complexity
Core Design Contradiction:
Duration of action of moving objectVSLoss of time

Solution Approach 1:

The algorithm implements feedback by continuously monitoring the canonical forms of module names encountered during depth-first search and using this information to make intelligent decisions about which subtrees to skip. The feedback mechanism stores results of previous searches and uses them to guide future search decisions, allowing the algorithm to maintain controlled search depth while avoiding redundant work in identical subtrees through efficient use of the feedback information.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11106663B1Speeding matching search of hierarchical name structures
Publication Date: 2021.08.31 SYNOPSYS INC
  • US11106663B1 patent drawing
  • US11106663B1 patent drawing
  • US11106663B1 patent drawing

AI summary

A search for a regular expression in a tree hierarchy, includes, in part, searching for a match to the regular expression in a first subtree defined by a first node name, recording information about the first subtree if there is no match, determining whether a second subtree defined by a second node name is identical to the first node, skipping search of the second subtree if the second subtree is determined to be identical and prefix equivalent, with respect to the regular expression, to the first subtree. The second subtree is determined to be prefix equivalent to the first subtree when for any string s, a first prefix defined by a concatenation of the first node name and the string s results in a match if and only if a second prefix defined by a concatenation of the second node name and the string s results in a match.