Pattern Matching Automaton Handling Wildcards
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The Aho-Corasick pattern matching algorithm is limited in handling indeterminate search patterns with wildcard symbols, requiring pre- and post-processing steps that increase resource and time constraints, and cannot effectively manage iterative metacharacters due to its dependence on determinate suffixes.
Innovation Solution
A computer-implemented method and pattern matching machine generator that associate a minimum number of patterns to be matched by a second automaton to satisfy mapping conditions, using a verifier and pattern match counter to handle wildcard symbols and iterative metacharacters, allowing for efficient verification and generation of pattern matching automata that accommodate indeterminate patterns.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the Aho-Corasick algorithm is used for pattern matching, then single-pass matching efficiency is improved, but the algorithm cannot handle indeterminate patterns with wildcard symbols
Solution Approach 1:
The automaton is segmented into multiple components: a primary automaton for deterministic pattern matching, and secondary automata for each wildcard symbol. Each component handles specific aspects of pattern matching, allowing the system to process both deterministic and indeterminate patterns efficiently without compromising single-pass performance.
Solution Approach 2:
Verifier components act as intermediaries between the primary automaton and secondary automata. The verifier checks whether transitions involving wildcard symbols satisfy mapping conditions, enabling the system to handle indeterminate patterns while maintaining the efficiency of the primary automaton's single-pass processing.
2Adaptability or versatility
If pre-processing and post-processing steps are added to handle wildcards, then wildcard pattern matching capability is improved, but resource and time constraints worsen
Solution Approach 1:
The system performs preliminary setup by creating secondary automata and verifiers during automaton construction, but the actual pattern matching occurs in a single pass through the input text. The verifiers check wildcard conditions on-the-fly during processing rather than requiring separate pre-processing or post-processing steps, thus avoiding additional time loss.
3Measurement precision
If the failure function depends on pattern suffixes, then state mapping accuracy is improved, but the algorithm cannot manage iterative metacharacters
Solution Approach 1:
The failure function is made dynamic by associating it with specific wildcard symbol values. When a wildcard is encountered, the system determines the appropriate failure function based on the actual symbol that matched the wildcard, allowing accurate state mapping even with iterative metacharacters like '*' and '+' that have variable lengths.
4Measurement precision
If multiple secondary automata are created for wildcard verification, then verification accuracy is improved, but device complexity increases
Solution Approach 1:
Secondary automata are designed to be universal in structure, each handling a specific wildcard symbol type. They share common design patterns and can be systematically organized, reducing the perceived complexity. The verifiers also serve multiple purposes: checking mapping conditions, determining failure function selection, and coordinating transitions between automata.
Data Source
AI summary
A computer implemented method to determine whether a verification is to be performed of the satisfaction of one or more mapping conditions mapping a first state in a first pattern matching automaton to a second state in the first automaton, the verification being based on patterns matched by a second pattern matching automaton having states corresponding to wildcard symbols in the first automaton, the method comprising: associating, with the first state, a minimum number of patterns required to be matched by the second automaton to satisfy a mapping condition of the state; providing a pattern match counter in association with the second automaton, the counter being arranged to count a number of patterns matched by the second automaton; providing a verifier in association with the first automaton, the verifier being arranged to perform the verification, the verifier being responsive to the counter.


