Skip to main content
QUICK REVIEW

[논문 리뷰] Sequential Circuits from Regular Expressions Revisited

Dogan Ulus|arXiv (Cornell University)|2018. 01. 26.
Formal Methods in Verification인용 수 5
한 줄 요약

이 논문은 정규표현식에서 직접 순차 회로를 구성하기 위한 새로운 트리거세트 알고리즘을 제안하며, 기존 자동기의 전방 전파 방식과 대비해 이전 상태 정보를 뒤로 당기는 프론트휠드라이브 업데이트 메커니즘을 제공한다. 이 방법은 매우 비결정적인 패턴에서 뛰어난 성능을 발휘하며, 표준 NFA를 능가하고 메모리 제약 조건에서 병리적인 케이스에서는 DFA와 동등하거나 슈퍼어리어를 기록한다.

ABSTRACT

We revisit the long-neglected problem of sequential circuit constructions from regular expressions. The class of languages that are recognized by sequential circuits is equivalent to the class of regular languages. This fact is shown in [5] together with an inductive construction technique from regular expressions. In this note, we present an alternative algorithm, called the trigger-set approach, obtained by reversing well-known the follow-set approach to construct automata. We use our algorithm to obtain a regular expression matcher based on sequential circuits. Finally, we report our performance results in comparison with existing automata-based matchers.

연구 동기 및 목표

  • 패턴 매칭을 위한 정규표현식에서 직접 순차 회로를 구성하는 데 오랫동안 간과된 문제를 해결하기 위해.
  • 병리적인 입력에서 지수 시간 복잡도로 악화될 수 있는 백트래킹 매처의 한계를 극복하기 위해.
  • 특히 비결정적 상황에서 기존 자동기(NFA/DFAs)의 대안으로 순차 회로를 고려하기 위해.
  • re2의 DFA 및 NFA 엔진과 같은 기존 자동기 기반 매처보다 순차 회로가 더 뛰어난 성능과 메모리 효율성을 제공할 수 있는지 평가하기 위해.
  • DFA 생성 시 상태 폭발으로 인해 실패하는 경우, 즉 지수적 증가를 보이는 패턴에서 순차 회로가 효과적으로 작동할 수 있음을 입증하기 위해.

제안 방법

  • 기존 자동기 구축에 쓰이는 전통적인 팔로우세트 방법의 반대 방향으로, 상태 도달 가능성 정보를 뒤로 전파할 수 있도록 트리거세트 접근법을 제안한다.
  • 정규표현식 구문 트리를 순회하기 위해 뷰어 패턴을 사용하며, 각 위치에 대해 표현식 크기, 출력 세트, 트리거세트(현재 상태에 도달할 수 있는 이전 상태들)를 계산한다.
  • 트리거세트와 입력 벡터를 기반으로 상태 업데이트 및 출력 기능을 구현하는 C++ 코드를 생성하여 순차 회로를 구성한다.
  • 프론트휠드라이브 업데이트 메커니즘을 적용: 각 상태가 현재 입력을 기반으로 이전 상태로부터 독립적으로 계산되며, 자동기의 리어휠드라이브 전방 전파 방식과 대비된다.
  • 표준 성능 지표(메가바이트/초 단위 처리량)를 사용해 생성된 회로 코드를 re2의 DFA 및 NFA 구현체와 비교하기 위해 컴파일하고 벤치마크를 실행한다.
  • 고정된 67MB 랜덤 입력 시퀀스를 사용하고, 정확도를 확보하기 위해 10회 실행 중 최소 실행 시간을 측정하며, 최적화 수준 -O2를 적용한다.

실험 결과

연구 질문

  • RQ1트리거세트 알고리즘이 정규표현식에서 순차 회로를 효과적으로 구성할 수 있는가? 이는 자동기 기반 매처의 실질적인 대안이 될 수 있는가?
  • RQ2다양한 정규표현식 패턴에 대해 순차 회로의 성능은 re2의 DFA 및 NFA 실행 구현체와 비교해 어떻게 되는가?
  • RQ3순차 회로의 프론트휠드라이브 업데이트 메커니즘은 비결정적 또는 병리적인 케이스에서 자동기의 리어휠드라이브 전방 전파 방식보다 우월한 이점을 제공하는가?
  • RQ4DFA 생성 시 지수적 증가가 발생하는 패턴에서 순차 회로 접근법은 DFA 및 NFA보다 더 나은 시간 및 메모리 효율성을 유지하는가?
  • RQ5순차 회로는 표준 NFA보다 빠른 성능을 기록할 수 있으며, 동일하거나 낮은 메모리 사용량을 유지할 수 있는가?

주요 결과

  • 모든 테스트 케이스에서 표준 NFA와 유사한 메모리 사용량에도 불구하고, 순차 회로는 모든 경우에서 표준 NFA를 능가하는 성능을 보였다. 특히 표본 2의 매우 비결정적인 패턴에서도 마찬가지였다.
  • 표본 5의 패턴은 DFA 생성 시 지수적 증가를 유도하지만, 순차 회로는 안정적인 성능(20번째 입력에서 12 MB/s)을 유지하였다. 반면 re2의 DFA는 캐시 제약으로 인해 급격히 성능이 떨어지며 NFA로의 패스백을 유도하였다.
  • 26자리 문자열의 경우(표본 2), 순차 회로는 단지 48MB의 메모리만 사용하였으며, re2의 DFA(304MB)보다 훨씬 적고 NFA(161MB)와 유사했지만 더 높은 처리량을 기록하였다.
  • 패스티브 케이스인 (a?)*a^n에 대해 순차 회로는 NFA보다 더 효율적으로 처리하였으며, n=30일 때 메모리 사용량은 115MB였고, NFA는 15MB, DFA는 335MB였다.
  • 트리거세트 방법은 복잡한 자동기 구축 과정을 피하고 정규표현식에서 최적화된 C++ 회로로 직접 코드 생성 파이프라인을 가능하게 하였다.
  • 프론트휠드라이브 업데이트 메커니즘은 비결정적 환경에서 실질적인 이점을 제공하였으며, 뒤로 연결된 상태 의존성 계산을 통해 결정적 자동기에서 발생하는 상태 폭발 문제를 방지하였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.