정규식으로부터 작은 NFA 만들기 실험 연구
초록
본 논문은 정규식에서 ε‑없는 소형 NFA를 자동 생성하는 여러 알고리즘을 FAdo 시스템에 구현하고, 무작위로 생성된 정규식을 대상으로 정규식의 구조적 측정값과 NFA 크기 사이의 관계를 실험적으로 분석한다. 비중복 정규식과 별표 정규형으로 변환된 정규식을 각각 사용해 결과를 비교한다.
상세 분석
논문은 정규식이 언어를 기술하는 가장 직관적인 도구임에도 불구하고, 실제 패턴 매칭이나 문자열 인식에 사용되는 NFA의 상태 수가 성능에 직접적인 영향을 미친다는 점을 강조한다. 이를 해결하기 위해 저자들은 기존의 Thompson 구성법, Glushkov 알고리즘, 그리고 최근 제안된 별표 정규형(SNF) 기반 변환법 등 네 가지 주요 변환 알고리즘을 FAdo 라이브러리에 구현하였다. 구현 과정에서 ε 전이가 없는 ε‑free NFA를 목표로 삼아, 각 알고리즘이 생성하는 상태와 전이 수를 최소화하도록 후처리 단계에서 불필요한 상태 제거와 전이 합병을 적용하였다. 실험 데이터는 균등 분포를 따르는 무작위 정규식 집합으로 구성했으며, 정규식 길이와 연산자 사용 빈도 등을 조절해 다양한 복잡도 수준을 확보하였다. 특히 비중복 정규식(non‑redundant)과 별표 정규형(reduced SNF) 두 종류를 별도로 생성함으로써, 정규식 자체의 구조적 간소화가 NFA 크기에 미치는 영향을 정량적으로 평가할 수 있었다. 실험 결과는 정규식 길이가 증가함에 따라 NFA 상태 수가 선형적으로 성장하는 경향을 보였지만, SNF 변환을 적용한 경우 평균 상태 수가 약 15 % 정도 감소함을 확인했다. 또한 Glushkov 기반 변환이 Thompson 방식보다 전반적으로 적은 상태를 생성했으나, 특정 패턴(예: 중첩된 별표 연산)에서는 SNF‑optimized 알고리즘이 가장 효율적인 것으로 나타났다. 이러한 결과는 정규식 전처리 단계에서 별표 정규형으로 변환하는 것이 실용적인 NFA 축소 전략이 될 수 있음을 시사한다. 논문은 또한 정규식의 연산자 분포(연결, 선택, 별표)와 NFA 크기 사이의 통계적 상관관계를 제시하고, 향후 연구에서는 더 복잡한 정규식 최적화 기법과 병렬 변환 알고리즘을 탐색할 필요성을 강조한다.
댓글 및 학술 토론
Loading comments...
의견 남기기