최소 정규 표현식을 찾는 것이 NP-complete 문제입니까?


41

다음과 같은 문제를 생각하고 있습니다. 특정 문자열 집합 (예 : 유효한 전자 메일 주소)과 일치하고 다른 문자열과 일치하지 않는 (잘못된 전자 메일 주소) 정규식을 찾고 싶습니다.

정규식으로 정의 된 유한 상태 기계를 의미한다고 가정하면, 정확한 용어에 익숙하지 않지만 허용되는 표현 클래스에 동의합시다.

수동으로 표현식을 작성하는 대신 긍정적이고 부정적인 예를 제시하고자합니다.

그런 다음 +와 일치하고-를 거부하고 잘 정의 된 의미 (오토마타의 상태 수)가 최소 인 표현식이 나타납니다.

내 질문은 :

  • 이 문제가 고려되었는데, 좀 더 구체적인 방법으로 어떻게 정의하고 효율적으로 해결할 수 있습니까? 다항식 시간으로 해결할 수 있습니까? NP가 완료 되었습니까? 어떻게 든 근사 할 수 있습니까? 어떤 식의 클래스로 작동합니까? 이 주제를 다루는 교과서, 기사 또는 기타 자료에 대한 조언을 부탁드립니다.
  • 이것은 Kolmogorov의 복잡성과 어떤 관련이 있습니까?
  • 이것은 학습과 어떤 관련이 있습니까? 정규 표현이 나의 예와 일치한다면, 그 예가 최소이기 때문에 우리는 일반화의 힘에 대해 아직 보이지 않는 예에 대해 말할 수 있습니까? 최소에 대한 어떤 기준이 이것에 더 적합합니까? 어느 쪽이 더 효율적일까요? 이것이 기계 학습과 관련이 있습니까? 다시 말하지만 모든 포인터가 도움이 될 것입니다 ...

지저분한 질문에 대해 죄송합니다 ... 이것을 알아 내기 위해 올바른 방향으로 나를 가리켜주십시오. 감사 !


2
다음 페이지는 문제의 학습 측면과 매우 관련이있는 것 같습니다. people.dsv.su.se/~henke/ML/MERLIN.html
Tsuyoshi Ito

1
… 아니면 아닐 수도 있습니다. 어쨌든 DFA 학습에 대한 많은 작품이있는 것 같습니다.
Tsuyoshi Ito

답변:


38

예, NP-Hard입니다. 피트와 Warmuth가 보였다 주어진 샘플 작은 DFA 일관성 발견하는 것은 내부에 근사 할 수 없다는 어떤 정수에 대해 않는다면, . k P = N POPTkkP=NP

학습 질문과 관련하여 : Kearns and Valiant RSA를 DFA로 인코딩 할 수 있음증명 했습니다. 따라서 레이블이 지정된 예가 균일 분포에서 나온 경우에도 미래의 예로 일반화 할 수 있으면 (균일 분포에서도 발생) RSA가 중단됩니다. 따라서 최악의 경우 레이블이 지정된 예제가 DAC 학습에 도움이되지 않는다고 생각합니다 (PAC 모델에서). 이것은 학습을위한 고전적인 암호화 경도 결과 중 하나입니다.

이 두 문제는 우리가 Occam의 Razor Theorem 이라고 부르는 것으로 인해 서로 얽혀 있습니다. 기본적으로 동일한 클래스의 가설로 레이블이 지정된 샘플과 일치하는 주어진 클래스에서 가장 작은 가설을 찾는 절차가 있다면 PAC가 해당 클래스를 배울 수 있다고 말합니다. 따라서 RSA 경도 결과를 고려할 때 가장 작은 일관된 DFA를 찾는 것이 일반적으로 어려울 것으로 예상됩니다!

긍정적 인 학습 결과를 추가하기 위해 Angluin 자신의 사례를 구성 할 경우 DFA를 배울 수 있지만 "현재의 가설이 맞습니까?" 이것은 또한 학습에있어 중요한 논문이었습니다.

다른 질문에 대답하기 위해 , 목표 DFA의 표준 표현이 낮은 압축성을 가질 때 학습 문제 가 더 쉬워지기 때문에 이것은 실제로 Kolmogorov의 복잡성과 관련 있습니다.


3
더 최근의 더 강한 결과로 나를 이겼습니다! 나중에 더 나은 답변을 게시해야합니다 !! 1 !!
Tsuyoshi Ito

앗 미안 해요! 나는이 :)에서 뛰어해야한다고 DFA 학습에 충분한 시간을 할애
레프 Reyzin

1
만약에 대비해서, 나는 이전의 의견에서 농담을했다. 물론 더 나은 답변을 보게되어 기쁩니다!
Tsuyoshi Ito

1
다시 말해,이 문제와 DFA의 정기적 인 최소화 사이의 주요 차이점은 부정적인 예가 있다는 것입니다.
Suresh Venkat

1
이해가 안 돼요 부정적인 예 않고, 작은 일관된 DFA는 1 상태를 가지고 - 수락 상태를 그 자체에 포인트 ...
레프 Reyzin

13

나는 질문의 학습 관련 측면에 대답합니다.

이 문제는 문헌에서 "DFA 학습"이라고합니다.

Gold [Gol78]은 k ∈ℕ과 2 개의 유한 세트 PN 의 스트링을 고려할 때 , 모든 스트링을 수용하는 최대 k 개의 상태를 갖는 결정적 유한 상태 오토 마톤 (DFA)이 있는지 여부 를 결정하는 것이 NP- 완전 함을 보여 주었다 P 이며 N 의 문자열은 없습니다 . 논문 [PH01]은이 동기와 관련된 문제에 대해 논의하는 것 같습니다 (더 많은 것이있을 수 있습니다. 이것은 Google에서 관련 논문을 찾으려고했을 때 발생했습니다).

참고 문헌

[Gol78] E 마크 골드. 주어진 데이터에서 오토 마톤 식별의 복잡성. 정보 및 제어 , 37 (3) : 302–320, 1978 년 6 월. http://dx.doi.org/10.1016/S0019-9958(78)90562-4

[PH01] Rajesh Parekh 및 Vasant Honavar. 간단한 예에서 DFA 학습 기계 학습 , 44 (1–2) : 2001 년 7 월 9 ~ 35 일. http://www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/~honavar/Papers/parekh- dfa.pdf


답변 주셔서 감사합니다, 나는 참조를보고있다. 이 사이트에서 하나 이상의 답변에 투표 할 수 있습니까? :) 다시 한 번, 기계 학습을 몇 년 동안 공부했지만 "DFA 학습"하위 필드 전체를 놓친 것이 당황 스럽습니다.
László Kozma

@ steve : 답변 하나만 허용 하지만 원하는만큼 답변을 투표 할 수 있습니다 .
Jukka Suomela

1
[Gold78]은 또한 DFA가 다항식 시간 (한도에서 식별의 학습 가능성 프레임 워크 내에서)으로 학습 될 수 있다고 명시하고 있습니다. 개요에 대한 최근의 문법 추론 ( pagesperso.lina.univ-nantes.fr/~cdlh/book_webpage.html )을 참조하십시오 .
mgalle

@mgalle : 추가 정보를 주셔서 감사합니다.
이토 쓰요시

7

이 논의에서, 최소한의 정규 표현을 찾는 것은 언어를 인식하는 최소한의 FSM을 찾는 것과 관련이 있다고 가정했지만, 이것들은 서로 다른 두 가지입니다. 올바르게 기억한다면 DFA는 다항식 시간으로 최소화 될 수 있지만 주어진 정규 언어를 나타내는 최소 정규 표현식을 찾는 것은 PSPACE-hard입니다. 후자는 오토마타 이론의 민속학에 속하지만 그 어느 곳에서도 그 증거를 찾을 수없는 결과 중 하나입니다. 나는 그것이 파파 디 미트로의 책에서 연습으로 언급되어 있다고 생각합니다.


정규 표현식의 길이와 DFA의 상태 수는 서로 다른 목적 함수 인 것이 맞습니다. DFA 최소화에는 더 좋은 속성이 있기 때문에 (예를 들어, 최소 상태 수를 가진 고유 한 DFA가 있음) DFA 최소화에 대해 대답했으며 질문이 언급 된 방식에서 정확한 목적 함수가 유연하다는 인상을 받았습니다.
Tsuyoshi Ito

무작위 의견 : 크기 f (n)의 정규 표현식을 크기 O (f (n))의 NFA로 시뮬레이션 할 수 있다는 사실을 감안할 때 정규 표현식을 최소화하는 것은 NFA를 최소화하는 것과 비슷합니다.
Hsien-Chih Chang 張顯 之

이 중 일부는
@keith

2

이 스택 오버 플로우 포스트 도 참조하십시오 . 당신이 찾고있는 책은 Michael Sipser 의 '이론 이론 소개'인 것 같습니다 .

몇 가지 다른 질문을하고 있으므로 한 번에 하나씩 질문하십시오.

Is finding a minimal Finite State Machine for a language L NP-complete?

아닙니다. 스택 오버플로 게시물에서는 FSM을 최소 크기로 줄이기위한 순진한 n ^ 2 알고리즘에 대해 설명합니다. (정지 상태에서 뒤로 작업하면서 "동일한"상태를 정확한 의미로 결합하십시오.

분명히 (링크를 따르지 않았습니다), 이것을 수행하는 n log n 알고리즘이 있습니다.

I have a training set of strings, how do I find the minimal FSM 
that separates the good examples from the bad?

당신이 그것을 말했을 때, 훈련 세트는 유한 한 언어를 설명합니다 . 유한 한 언어는 간단하게 FSM에 매핑됩니다. 언어가 각 문자열에 대해 정지 상태로 끝나는 선형 상태 집합을 반복없이 만들 수 있습니다. 그런 다음 결과 머신에서 FSM 최소화 알고리즘을 실행하십시오.

Is this a good way to build a classifier?

나는 그렇게 말하지 않을 것입니다. FSM을 최소화한다고해서 차별적 인 힘은 변하지 않습니다. 그것은 일종의 요점입니다. 최소 FSM은 문자열 집합을 동등한 비 최소 FSM으로 정확하게 수용합니다.

일반적으로 정규식은 새로운 데이터를 분류하는 데 적합하지 않습니다. 유한 트레이닝 세트의 경우 새 데이터로 일반화 할 수없는 해당 세트의 긍정적 인 예제와 만 일치하는 RE / FSM을 얻게됩니다. 나는 훈련 코퍼스와 일치하는 무한 정규 언어를 찾으려고 시도하는 접근법을 본 적이 없다.

머신 러닝의 경우 순진한 베이 즈 분류기, 의사 결정 트리, 신경망 또는보다 이국적인 것을 찾고 있습니다. Russell and Norvig의 인공 지능 : 현대적 접근 방식 은 기계 학습 기술에 대한 개요를 찾을 수있는 좋은 장소입니다.


2
이 답변에 동의하지 않습니다. 단순히 모든 긍정적 인 예를 들어 그 예만 허용하고 다른 것은 허용하지 않는 FSM을 구성하면 FSM이 클 수 있습니다. 반면에 모든 긍정적 인 예를 수용하고 부정적인 예를 허용하지 않는 가장 작은 FSM은 훨씬 작을 수 있습니다 .
Jukka Suomela

3
나는 원래의 질문이 "+와 일치하는 표현은-를 거부하고 잘 정의 된 의미에서 최소한의 표현"이라고 꽤 명확하게 생각했다고 생각합니다.
Jukka Suomela

5
@keith 귀하의 답변과 광산의 구별은 미묘합니다. 샘플에서 각 문자열에 대해 새로운 상태를 생성하여 dfa를 빌드 할 때 긍정적 인 예제와 부정적인 예제를 구분하는 최소 dfa로 표시되는 언어와 다른 언어를 사용하게됩니다. 따라서 dfa를 생성하고 최소화하는 알고리즘은 불행히도 그렇게하지 않습니다!
Lev Reyzin

1
이 차이점을 이해하지 못했습니다. 긍정적이고 부정적인 예가 있다면, 이러한 제약 조건을 모두 만족시키는 언어 군이 있습니다. 각각에 대해 최소한의 dfa가 (세트) 있습니다. 최소 크기 인 DFA를 반환하는 한이 언어 중 어떤 언어를 선택하는 것이 중요합니까?
Suresh Venkat

1
학습을 위해 최고의 일반화 기능을 갖춘 가장 작은 DFA를 선택하려고합니다. @kieth의 절차는 이러한 모든 언어 중에서 최소의 DFA를 선택하지 않으며 절차를 사용하는 데 사용되는 언어 중에서 가장 작은 언어만을 선택합니다.
Lev Reyzin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.