NFA가 다른 NFA의 하위 집합을 허용하는지에 대한 효율적인 테스트가 있습니까?


12

따라서 정규 언어 이 정규 언어 의 하위 집합 인지 테스트하는 것은 결정 가능합니다. 두 언어를 모두 DFA로 변환하고 계산 한 다음이 언어가 비어 있는지 테스트 할 수 있기 때문입니다.S R ˉ SRSRS¯

그러나이를 위해서는 DFA로 변환해야하므로 입력 NFA의 상태 수에 따라 DFA 및 테스트 알고리즘이 기하 급수적으로 증가 할 수 있습니다.

다항식 시간에 이것을 수행하는 알려진 방법이 있습니까? 이 문제는 일반적으로 Co-NP가 ​​완료된 것으로 입증 되었습니까?

의해 받아 들여지지 만 의해 받아 들여지지 않는 단어 는 다항식 인증 자 이므로 문제는 Co-NP에 있습니다 .RSRS

편집 : 이러한 단어가 국가 수에 다항식이라는 보장이 없으므로 올바르지 않습니다.


1
이것은 이론적 인 질문입니까, 아니면 실제로 있습니까? 때로는 실제로 발생하는 입력의 특정 "분배"에 대해 Pspace 완료 문제가 P 시간에 "실행 가능"할 수 있습니다.
vzn

이론적으로는 이상적이지만 필자가 작업하고있는 증거는 컴퓨터 테스트에 의해 크게 좌우되므로 빠른 알고리즘이 반드시 유용 할 것입니다.
jmite

예, 두 기계 각각에 대해 병렬로 전이를 수행하고 std 결정 알고리즘과 다소 유사한 결과 상태 세트를 추적하여 작동하는 매우 간단한 알고리즘이 있습니다. 어딘가에 문학에 있는지, 너무 단순해서 그것을 추정 할 수 있는지 모릅니다. 이미 일부 알고리즘을 사용하고 있습니까? 인용하면 도움이 될 것입니다. 입력 유형에 대한 자세한 내용도 도움이 될 것입니다. 또한 두 NFA의 교차점이 비어 있는지 확인하려는 것 같습니다. 교차로의 언어를 원하십니까? 아니면 비어 있지 않은 경우 Y / N 만 원하십니까?
vzn

인지 여부를 테스트하기 위해 인지 확인하는 아이디어가 비어 있는지 찾고 있습니다. 병렬 전이 알고리즘이 작동합니다. 어려운 부분은 NFA를 칭찬하고 있다고 생각합니다. 먼저 DFA로 변환해야합니다. 내가 지금 사용하고있는 알고리즘은 유한 언어 만 다루기 때문에 무차별입니다. R SRS={}RS
jmite

두 개의 NFA를 DFA로 변환하지 않고 두 개의 NFA를 통과 할 수있는 방법이있을 수 있다고 생각합니다. 그러나 심판에서 그것을 보지 못했습니다.
vzn

답변:


15

NFA에서 언어 포함을 결정하는 문제는 -complete입니다. 이를 증명하기 위해, 그것은 NFA 쌍이의 universaility 문제에서 감소하기 쉽습니다 (테스트 여부 ) 그래서, 방법으로, 당신은 determinize해야하지만, 당신이 즉석에서 그렇게 할 수 있습니다.L ( A ) = Σ PSPACEL(A)=Σ

co-NP에 대한 귀하의 관찰은 잘못되었습니다 (그러나 훌륭합니다). 이러한 감시는 실제로 다항식 시간을 확인할 수있다 감시 하지만, 최단 감시 자체 입력의 길이에 지수 일 수있다. 이후 후 비 억제를 결정하는 것은도 - 완전한.P S P A C EPSPACE=coPSPACEPSPACE

상태 일에 더 신중 여부를 결정 있다 의 크기 (만 이후 요구 사항을 보완 할), 및 의 크기 .P S P A C E B B N L O G S P A C E AL(A)L(B)PSPACEBBNLOGSPACEA


당신 말이 맞아요 내가 말한 내용이 포함 된 특정 NFA 클래스를 다루었지만 일반 무한 NFA에는 해당되지 않을 수 있습니다. 감사!
jmite

당신은 그것이 PSPACE-complete임을 증명하는 종이나 교과서에 대한 언급이 없을 것입니까?
jmite

1
그것은 매우 상세한 증거는 아니지만, 그렇게 할 것이라고 생각합니다 : wisdom.weizmann.ac.il/~vardi/av/notes/lec4.ps
Shaull

4

Jean-François Raskin의 Finite Automata에 대한 Antichain Algorims 논문을 살펴보십시오 .

우리의 실험에서, 안티 체인 기반의 포함 테스트는 "전통적으로"접근하는 것보다 1-2 배 더 나은 성능을 보여주었습니다.

올바르게 기억하면이 알고리즘은 libAMoRE ++ 라이브러리 에서 구현됩니다 .


3

온라인으로 제공되는 가장 철저하고 최첨단의 최적화 된 무료 FSM 라이브러리 중 하나는 AT & T FSM 라이브러리 입니다. 설명 된대로 정확하게 "fsmdifference"를 구현 하므로 차이를 수행하려면 결정된 엡실론 프리 FSM이 필요합니다. 한 가지 아이디어는 차이를 수행하기 전에 FSM 중 하나 또는 둘 다를 최소화하여 일부 경우에 도움이 될 수 있습니다. (즉, 결정하는 것은 최소화하는 것과 동일하지 않습니다.)이 패키지에는 전체 최소화보다 빠르도록 설계된 "대략적인"또는 "욕심 많은"최소화가 있습니다.

그러나 비슷한 문제를 연구하면서, 결정 단계를 피함으로써이 문제에 도움을 줄 수있는 FSM의 일부 일반화 또는 구성이 있다고 판단된다. 아이디어는 NFA 에지를 "병렬로"이동하고 표준 결정 알고리즘과 마찬가지로 현재 "superstate"(상태 세트)의 일부인 노드 세트를 추적하는 것입니다. 그런 다음 NFA 보완은 현재 수퍼 스테이트 노드 세트가 "모든 수락 불가능"인 경우에만 승인합니다 ( "모든 수락"을 허용하는 결정 구조와 대조).

그러나 이전에 작성된 내용을 보지 못했으며 빠른 온라인 검색을 통해 볼 수 없습니다. NFA를 보완하는 유일한 방법은 NFA를 결정하는 것임을 암시하거나 암시하는 많은 참고 문헌이 있습니다.

다음은 일부 아이디어에 유용 할 수있는 두 개의 "가까운"참조입니다. 나는 "가까운"어떤 / 다른 사람들의 이야기에 관심이 있습니다. 당신은 당신이 문제에 대해 더 직접적인 연구를하는 분야 일 수있는 프로그램 검증 작업을하고 있다고 언급했다.

[1] Z 표기법 Nazir Ahmad Zafar, Nabeel Sabir 및 Amir Ali를 사용한 비 결정적 유한 오토마타 교차로의 구성

[2] 무한 단어 Orna Kupferman 및 Moshe Vardi의 비 결정적 오토마타 보완 구성

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.