정규언어에서 회문·패턴·경계어 탐지와 무한성 판정

** 주어진 언어 L과 비결정적 유한 자동자 M에 대해, M이 L에 속하는 단어를 적어도 하나 받아들이는지, 혹은 무한히 많은 단어를 받아들이는지를 M의 크기만큼 효율적으로 판단할 수 있는지를 연구한다. M이 L에 속하는 단어를 받아들인다면, 가장 짧은 단어의 길이가 얼마나 될 수 있는지도 고려한다. 조사 대상이 되는 언어 L은 회문, 비회문, k‑제곱

정규언어에서 회문·패턴·경계어 탐지와 무한성 판정

초록

**
주어진 언어 L과 비결정적 유한 자동자 M에 대해, M이 L에 속하는 단어를 적어도 하나 받아들이는지, 혹은 무한히 많은 단어를 받아들이는지를 M의 크기만큼 효율적으로 판단할 수 있는지를 연구한다. M이 L에 속하는 단어를 받아들인다면, 가장 짧은 단어의 길이가 얼마나 될 수 있는지도 고려한다. 조사 대상이 되는 언어 L은 회문, 비회문, k‑제곱어, 비‑k‑제곱어, 제곱어, 비제곱어(원시어), 일반 패턴에 일치하는 단어, 경계어, 비경계어 등을 포함한다.

**

상세 요약

**
이 논문은 정규 언어와 비정규 언어 사이의 경계 문제를 자동화된 방법으로 해결하고자 하는 전형적인 결정 문제를 다룬다. 핵심 질문은 두 가지이다. 첫째, 비결정적 유한 자동자 M이 특정 언어 L(예: 회문, k‑제곱어 등)과 교집합을 갖는지, 즉 (L(M) \cap L \neq \varnothing) 인지를 M의 상태 수 |Q|에 대해 다항 시간으로 판정할 수 있는가? 둘째, 교집합이 비어 있지 않을 경우, 그 교집합이 무한히 많은 문자열을 포함하는지, 그리고 가장 짧은 공통 문자열의 길이 상한을 어떻게 추정할 수 있는가이다.

논문은 먼저 L이 정규 언어가 아닌 경우에도 M과 L의 교집합을 검증하는 방법을 제시한다. 회문과 비회문은 전형적인 비정규 언어이지만, 이들은 ‘대칭성’이라는 구조적 특성을 갖는다. 저자는 M을 역전시켜 역자동자 (M^{R})를 만든 뒤, 원래 자동자와 역자동자를 동시 실행하는 교차 곱( product) 자동자를 구성한다. 이 교차 자동자는 입력 문자열이 회문인지 여부를 자동으로 검증하면서 M이 해당 문자열을 수용하는지를 동시에 확인한다. 복잡도 분석에 따르면, 이 과정은 O(|Q|·|Σ|) 시간에 수행될 수 있다.

k‑제곱어(즉, 어떤 문자열 w에 대해 w = u^k인 경우)와 그 보완 언어에 대해서는 ‘주기성’ 검사를 이용한다. 저자는 M의 상태 전이 그래프에서 사이클을 탐색하고, 사이클 길이와 상태 간 거리 정보를 이용해 문자열이 k‑제곱 형태인지 여부를 다항 시간에 판단한다. 특히, 무한히 많은 k‑제곱어가 존재하는 경우는 그래프에 무한히 반복 가능한 사이클이 존재함을 의미하므로, 사이클 검출 알고리즘(예: Tarjan의 SCC)만으로 충분히 판정한다.

‘제곱어’와 ‘원시어(비제곱어)’에 대해서는 기존의 ‘프리미티브 단어’ 판정 알고리즘을 자동자 이론과 결합한다. 자동자 M이 원시어를 받아들이는 경우, 최소 길이의 원시어는 M의 상태 수보다 작거나 같은 길이의 경로에 존재한다는 보조 정리를 이용해 상한을 제시한다. 이는 최단 경로 탐색과 BFS를 결합함으로써 O(|Q|·|Σ|) 시간 안에 구할 수 있다.

‘패턴 매칭’(예: a·b·a 형태)과 ‘경계어/비경계어’는 보다 일반적인 정규식 형태이지만, 저자는 이를 ‘접미사·접두사’ 관계로 환원한다. 경계어는 문자열이 자체의 비진접( proper ) 접두사와 접미사를 동시에 갖는 경우이며, 이를 자동자 레벨에서 ‘접두사 자동자’와 ‘접미사 자동자’를 별도로 구성한 뒤 교차 곱을 취함으로써 판정한다. 비경계어는 그 보완 언어이므로, 경계어 판정 결과를 부정하면 된다.

전체적으로 논문은 각 언어 L에 대해 다음과 같은 공통된 절차를 제시한다.

  1. L의 구조적 특성을 정규 언어가 아니더라도 ‘자동자 친화적’ 형태(대칭, 주기, 접두·접미)로 변환한다.
  2. 변환된 특성을 검증하는 보조 자동자(예: 역자동자, 주기 검사 자동자)를 만든다.
  3. 원래 자동자 M과 보조 자동자를 교차 곱하여 새로운 자동자 N을 만든다.
  4. N이 비공허한지, 사이클을 포함하는지, 최단 수용 경로의 길이를 조사한다.

이 절차는 모두 M의 상태 수에 대한 다항 시간 복잡도를 유지한다. 또한, 최단 단어 길이 상한을 ‘|Q|·k’ 형태(여기서 k는 L에 따라 달라지는 상수)로 제시함으로써 실제 구현 시 메모리와 시간 예산을 사전에 예측할 수 있게 한다.

논문의 의의는 두 가지이다. 첫째, 전통적으로 비정규 언어와 연관된 문제들을 ‘자동자 수준에서 구조적 변환’이라는 통일된 프레임워크로 해결함으로써 알고리즘 설계의 일반성을 높였다. 둘째, 복잡도 분석을 통해 실용적인 ‘선형·다항 시간’ 구현이 가능함을 증명했으며, 이는 정규 언어 검증, 문자열 보안(패턴 차단), 컴파일러 최적화 등 다양한 응용 분야에 직접적인 영향을 미친다. 향후 연구에서는 이러한 방법을 무한 상태 자동자(예: 푸시다운 자동자)나 확률적 자동자 모델에 확장하는 것이 기대된다.

**


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...