무차별 대입 검색을 사용하지 않고 두 단어를 구분하는 가장 작은 DFA를 찾으십니까?


23

두 개의 문자열 x와 y가 주어지면 x를 수락하고 y를 거부하는 최소 크기 DFA를 만들고 싶습니다. 이를 수행하는 한 가지 방법은 무차별 대입 검색입니다. 가장 작은 것부터 시작하여 DFA를 열거합니다. x를 수락하고 y를 거부하는 DFA를 찾을 때까지 각 DFA를 시도하십시오.

x를 수락하고 y를 거부하는 최소 크기 DFA를 찾거나 구축하는 다른 알려진 방법이 있는지 알고 싶습니다. 다시 말해, 무차별 대입 검색을 이길 수 있습니까?

자세한 세부 사항:

(1) 나는 거의 최소 크기의 DFA가 아닌 최소 크기의 DFA를 찾는 알고리즘을 정말로 원합니다.

(2) 최소 DFA가 얼마나 크거나 작은 지 알고 싶지 않습니다.

(3) 바로 여기에 두 개의 문자열 x와 y가있는 경우에만 집중합니다.


편집 :

관심있는 독자를위한 추가 정보 :

y 가 최대 n 길이의 이진 문자열 이라고 가정 합니다. x 를 받아들이고 최대 √의 y 를 기각 하는 DFA가 있다는 것은 알려진 결과입니다.xynxy 상태. 약n √가 있습니다.n DFA의 진 알파벳과 최대nn 상태. 따라서 무차별 대입 접근 방식에서는n 이상을 열거 할 필요가 없습니다.n DFA 무차별 대입 접근은n보다 훨씬 더 많은 것을 취할 수 없었습니다.nnnn

도움이 된 슬라이드 : https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf


2
@ AndrásSalamon 구별 할 각 세트가 하나의 문자열로만 구성 되어도 여전히 NP-complete입니까? 이것이 합리적으로 다루기 쉬운 것 같아요.
mhum

6
@mhum 두 문자열을 분리하는 많은 다른 정규 언어가 있다는 문제가 있습니다. DFA 최소화는 이러한 언어 중 하나에 가장 적합한 오토 마톤을 찾지 만 다른 분리 언어에 대해서는 오토마타와 비교할 수 없습니다.
David Eppstein

4
경우 Y는 길이의 큰 서로 다른 길이이다 N , 신속와 DFA 쉽게 찾을 수 있습니다 O ( 로그 n은 ) 단지 길이의주기 사용하는 분리형 그들이 상태 P , p는 분할을하지 않습니다 | x | | y | . 찾기 페이지를 시도하여 2 , 3 , 5 , ... 적절한 찾을 때까지 순서대로 페이지를 . 경우 XY는 동일 길이 다음이다 OxynO(logn)pp|x||y|p2,3,5,pxy1996 년 논문에서 Robson의 구성은 크기O(n)을검색하여 찾을 수있는 간단한 기계를 제공합니다. 두 구성 모두 가장 작은 DFA는 아닙니다. O(n)O(n)
Jeffrey Shallit

3
위에 링크 된 Shallit의 메모에는 분리 문제에 대한 최악의 경우가 알파벳이 이진 인 경우에 대한 유용한 관찰이 포함되어 있습니다. 더 큰 알파벳을 여전히 두 개의 입력 단어를 구별하는 두 개의 하위 세트로 분할하고 처리하는 이진 오토 마톤을 검색하는 것이 항상 가능합니다 한 하위 집합의 문자는 0으로, 다른 하위 집합의 문자는 1로 그러나 최소 분리 자동 장치를 찾는 데 도움이되지 않는 것 같습니다. 원래 알파벳의 추가 정보를 사용하여 이진 알파벳에 대한 매핑보다 더 나은 결과를 얻을 수 있기 때문입니다.
David Eppstein

3
in-set 및 out-set 크기가 1. in-words 및 out-words가 주어진 최소 유한 오토마타 와 같은이 최근의 다른 질문의 특별한 경우 . 그 대답은 휴리스틱을 포함한 학습 문학을 나열합니다.
vzn

답변:


9

실제로이 작업을 수행해야하는 경우 SAT 솔버를 사용합니다.

x 를 수락 하고 y 를 거부 하는 상태 의 DFA가 있는지에 대한 질문은 SAT 인스턴스로 쉽게 표현할 수 있습니다. 예를 들어, 한 가지 방법은 2 k 2 부울 변수를 갖는 것입니다. DFA 가 입력 비트 b 상태 s 에서 상태 t로 전환되는 경우 z s , b , t 는 true 입니다. 그런 다음 DFA임을 적용하기 위해 몇 가지 절을 추가하고 x를 수락 하고 y를 거부 하도록 강제하는 일부 변수와 절을 추가하십시오 .kxy2k2zs,b,tstbxy

kk


SAT로서 이것의 다른 인코딩이 가능하다. 예를 들어 추적 인코딩을 사용할 수 있습니다.

  • xmmlgks0,s1,,smxsilgk

  • i,jxi=xjsi1=sj1si=sj

  • yt0,,tnytjlgki,jyi=yjti1=tj1ti=tj

  • i,jxi=yjsi1=tj1si=tj

  • s0=t0s0=t0=0

  • k0si<k0tj<ki,j

  • xysmtn

이러한 모든 요구 사항은 SAT 절로 인코딩 될 수 있습니다.

kk


3
문제에 특정 대칭이 있고 솔버에서 인식되는 경우 실제로는 무차별 대입 검색보다 우수하지만 현재 (인간 또는 기계의) 식별 / 분리가 어려울 수 있습니다. 만족도 모듈로 이론대한 새로운 / 관련된 "기술" 과 응답 세트 프로그래밍도 있으며, 그 중 일부에는 "내장"그래프 술어가 있거나 그 정의를 지원할 수 있습니다.
vzn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.