DFA에서 모든 주에서 알파벳의 모든 기호에 대한 전환이 있습니까?


12

그렇지 않은 경우 일부 상태 및 일부 기호 , 가 존재하지 않을 때의 의미는 무엇 입니까?a δ ( q , a )qaδ(q,a)


동일한 상태에서 입력 전환이 결정되지 않은 비결정론 적 오토 마톤을 호출합니다. DFA 정의에 맞지 않습니다.
reinierpost 2016 년

1
테이프의 기호가 a 일 때 DFA의 규칙이 상태 q에 있을 수 없도록 배열 된 경우 실제로 δ (q, a) 를 정의해야 합니까?
피터 쇼어

4
정답은 "결정적 유한 오토 마톤"을 어떻게 정의 하느냐에 달려 있다는 것입니다. 따라서 보편적으로 인정되는 정답이 없기 때문에이 질문이 전적으로 건설적이라고 확신하지 못합니다. 즉,이 질문은 의견과 토론을 요구합니다.
Patrick87

1
경우 있어야하는데 기능을 , 모든 쌍에 대해 정의되어야한다 . δq,a
vonbrand

DFA에 대한 제 생각에는 "중단"조건이거나 "거부"상태로의 암시 적 점프를 선호하는 경우입니다.
이브 다우 스트

답변:


22

논쟁의 여지가있는 문제를 발견 한 것 같습니다. 분명히 컴퓨터 과학자들은 논쟁을 좋아합니다. 나는 확실히 논쟁하고 싶다. 그래서 여기에 간다!

내 대답은 명백하다. 아니다. 결정 론적 유한 오토마타는 모든 심볼에서 모든 상태로부터 전환 될 필요는 없다. 가 존재하지 않을 때의 의미 는 DFA가 입력 문자열을 받아들이지 않는다는 것입니다.δ(q,a)

가 필요한 DFA의 정의를 만들 수는 있지만 전환이 누락 되어 많은 주석 작성자와 같이 결과 구조 (어떤 것이든지 호출)가 결정적 이지 않은 경우는 아닙니다. 주장하고 있습니다. 오토마타 이론에 대한 강의를하고 있다면, 다음 주제는 문맥이없는 언어와 푸시 다운 오토마타가 될 것입니다. 여기서 비결정론 적 오토마타와 비결정론 적 오토마타의 구별이 중요하며 비결정론의 올바른 정의를 사용해야합니다.δ(q,a)

비결정론은 하나 이상의 법적 전환 을 갖는 것과 관련이 있습니다.

나는 우리 모두가 다음 Wikipedia 정의에 동의한다고 생각합니다 (단지 잠시 후에 보여줄 것은 약간 모호합니다).

결정 론적 유한 오토 마톤 은 5 개의 튜플 ( , , , , )로 구성됩니다.MQΣδq0F

  1. 유한 상태 세트 ( )Q
  2. 알파벳 ( ) 이라고하는 유한 입력 기호 세트Σ
  3. 전이 함수 ( )δ:Q×ΣQ
  4. 시작 상태 (q0Q)
  5. 수락 상태 집합 ( ).FQ

하자 알파벳을 통해 문자열 . 다음과 같은 조건을 가진 상태 시퀀스 이 존재 하면 오토 마톤 은 문자열 받아들입니다 .w=a1a2anΣMwr0,r1,,rnQ

  1. r0=q0
  2. ri+1=δ(ri,ai+1) ,i=0,,n1
  3. rnF .

모호성과 논쟁은 전환 기능 ( 첫 번째 글 머리 기호 목록 의 숫자 "3")의 정의에 관한 것 입니다. 우리는 모두 DFA와 NFA를 구별하는 것이 가 아닌 함수라는 것에 동의합니다 관계 . 그러나 는 부분 함수 또는 전체 함수 입니까?δδ δδδ

가 부분 함수 인 경우 DFA의 정의가 제대로 작동 합니다. 입력 문자열이 주어지면 다음 상태가없는 입력 기호 로 상태 도달 하면 오토마타는 단순히 받아들이지 않습니다.δqiaj

또한 당신의 정의를 만들려면이 정의를 확장 할 때 푸시 다운 오토마타 당신이하는 경우가 될 것입니다 해야한다 부분적인 기능입니다 전환 기능을 푸시 다운 오토마타이 같은 결정, 결정적되지 분류되는 차이를 확인하십시오.

부분 함수가 당신을 귀찮게한다면 여기에 를 총 함수로 만드는 사소한 변환이 있습니다. (이 변환은 되지 는 상태의 원 전화 번호에 선형 대부분 O (1)의 상태에서, 추가 및 PDA와 함께 작동하도록 확장 될 수 있으며, 서브 세트 구축 알고리즘 등을 포함한다. 이러한 사실 없음 서브셋 구조 알고리즘에 해당하지 .)δ

  1. 상태를 추가하십시오qerror
  2. 가 정의되지 않은 모든 쌍 에 대해 .(qi,sj)δδ(qi,sj)=qerror

이 오토마타에는 총 함수 인 가 있으며 원래 오토마타가 수락하고 거부 한 것과 정확히 동일한 상태 세트를 수락하고 거부합니다.δ

2019 년 1 월 수정

Commenter @Alex Smart는 저에게 언급하지도 않고 왜 우리가 관심을 가져야하는지 설명하지 않았다고 비판합니다. 그래서 여기에 간다 :

우리 가 결정론과 비결정론의 정확한 정의에 관심을 갖는 이유는 비결정론 적 오토마타의 일부 클래스가 결정 론적 사촌보다 강력하고, 일부 비결정론 적 오토마타는 결정 론적 사촌보다 강력 하지 않기 때문이다. 유한 오토마타 및 튜링 기계의 경우 결정 론적 및 비결정론 적 변형은 동등한 성능을 갖습니다. 푸시 다운 오토마타에는 구별이 중요한 언어가 있습니다. 언어를 받아들이는 NPDA가 있으며 DPDA가 언어를 받아들이지 않습니다. 선형 경계 오토마타의 경우 질문은 (또는 마지막으로 확인한 시간) 열려 있습니다. DPDA에 비해 NPDA의 전력 증가는 다중 전이 기능을 전체 기능에서 부분 기능으로 전환하는 것이 아니라 전이.

컴파일러 커뮤니티의 서적 :

Aho와 Ullman, 컴파일러 디자인의 원칙 , 1977 : 먼저 NFA (88 페이지)를 전환 관계로 정의한 다음 (p. 90-91)

우리는 유한 오토 마톤이 1이라면 결정 론적 이라고 말합니다 . 그것은 입력 에서 전환이 없습니다 . 각 상태의 2 입력 심볼 , 기껏 하나의 에지는 표지가 이탈 .ϵsaas

Aho, Sethi 및 Ullman, 컴파일러, 원칙, 기법 및 도구 (1988 년)는 비슷하지만 우선 NFA를 전환 관계로 정의한 다음 (p. 115-116) :

결정적 유한 오토마타 (짧게 DFA는)하는 ... 표시된 최대 하나의 가장자리가 비 결정적 finitie 자동 장치의 특별한 경우이다 떠나 .as

(@Alex Smart의 의견에서 "드래곤은 구체적으로 기능이 총체적이라고 언급합니다."라고 말합니다. 필자는 현재 접근 할 수없는 공동 저자 인 Lam과의 이후 버전에 대해 이야기하고 있다고 가정합니다. )

Appel, Java에서 현대 컴파일러 구현 , 1988 (p. 22) :

(A)에 결정 성 유한 오토 마톤 (DFA)와 동일한 상태에서 떠나는 두 개의 에지는 동일한 기호로 분류되지 않는다.

그런 다음 Appel은 DFA를 사용하여 가장 긴 일치 항목을 인식 할 때 누락 된 전환을 명시 적으로 사용하여 중지시기를 결정한다고 설명합니다 (23 페이지).

죽은 상태 (출력 금지 전환과 nonfinal 상태)에 도달 할 때, [우리가 지금까지 본 것 중 가장 긴 일치하는 기록] 일치 된 토큰 무엇을 이야기하고, 종료 변수.

전환 이론 커뮤니티의 서적 :

Kohavi, 스위칭 및 유한 오토마타 이론, 2 / e , 1978, p. 611의 말 :

상태 다이어그램은 결정 론적 기계를 설명 하므로 다음 상태 전이는 현재 상태와 현재 스캔 된 입력 기호에 의해 고유하게 결정되어야합니다 .

나는 일반적으로 해석하지 않을 것이다 유일하게 "더 이상보다"하지 "정확히 하나"를 의미하는. (즉, Kohavi는 결정론이 전체 기능을 필요로한다고 말하고있는 것 같습니다)

계산 이론 커뮤니티의 서적 :

여기서는 NFA보다 먼저 DFA를 정의하고 DFA가 전체 전환 기능을 갖도록 요구하지만 DPDA 전에 NPDA를 정의하고 "결정론"을 과도기를 갖지 않는 전환 관계의 제한으로 정의하는 것이 더 일반적인 것 같습니다 각 상태 / 기호 쌍에 대해 하나의 항목.

1979 년 Hopcroft와 Ullman, 1981 년 Lewis와 Papadimitriou, 특히 Sipser (2006)는 DFA를 교육적으로 정의하여 정확한 공식적 정의를 도입하고 그 중요성을 설명하고 그 중요성을 명확하게 설명하고있다 (p.36).

전이 함수 δ 는 상태와 입력 심볼의 가능한 각 조합에 대해 정확히 하나의 다음 상태를 지정합니다.

이것은 역사적 발전을 따르는 것 같습니다. 결정 론적 유한 오토마타는 40 년대와 50 년대에 도입되었습니다. 결정적이지 않은 유한 오토마타는 논문에서 Rabin과 Scott에 의해 소개되었습니다. "Finite automata와 그 결정 문제, IBM J. Rsrch and Dvpt , 3 (2) : 114-125, 1959. Rabin과 Scott은 결정론을 정의했습니다. 유한 오토마타 ( 일반 오토마타라고 함)는 " 모든 상태와 기호 쌍의 데카르트 곱 s×Σ 에 정의 된"전이 함수 를 갖습니다.

흥미롭게도 Rabin과 Scott은 비 결정적 유한 오토마타를 총 함수의 관점에서 정의합니다! 페이지 120, 정의 9 :

결정적 (유한)는 오토 마톤 ... 시스템 인 M 함수!]의 S×Σ 모든 서브 세트들의 세트의 값 S .

즉, 총계 인 전이 함수는 시스템을 결정적이지 않습니다!

Sipser 2006은 Rabin과 Scott을 따르며 비 결정적 유한 오토마타, 비 결정적 PDA 및 비 결정적 튜링 머신에 대한 그의 정의를 위해 상태 / 기호에서 상태의 전력 세트로의 전체 전환 기능을 사용하지만 결정 론적 주제는 생략합니다. PDA.

Hopcroft와 Ullman (1979)과 Lewis와 Papadimitriou (1981)는 결정 론적 PDA의 정의에서 부분 기능을 사용합니다. 먼저 전환 관계로 NPDA를 정의한 다음 PDA에 도달하면 Lewis와 Papadimitriou는 말합니다 (p. 135).

각 구성에 적용 가능한 전환이 최대 하나 인 경우 푸시 다운 오토 마톤은 결정 적이고 직관적입니다.

Hopcroft와 Ullman의 말 (112 페이지) :

PDA는 ... 어떤 ID에서든 최대 한 번만 이동할 수 있다는 의미에서 결정적입니다.


상태 을 추가하면 자동 결정 기능을 사용하게됩니다 . 항상 NFA를 DFA로 변환 할 수 있습니다. 부분 함수 또는 전체 함수 중 하나에 대해 맞습니까? 대부분의 수학자들은 기능을 말할 때 총 기능을 의미합니다. 전체 기능을 의미하지 않는 경우 부분 기능을 말합니다. 그렇기 때문에 질문에 공식적인 정의를 포함시켜야한다고 생각합니다. qerror
scaaahu 2016 년

2
부분 기능 버전은 Hopcroft와 Ullman에서 제공되는 버전입니다. 따라서 부분 함수가 본질적으로 비 결정적이라는 아이디어는 결코 표준이 아닙니다.
jmite

1
@jmite 부분 함수가 비결 정성을 의미하는 것은 아닙니다. 총 함수는 총 함수를 더 나은 선택으로 만드는 결정 성을 의미합니다. 물론, 그것은 당신이 사용하는 정의의 다소 임의적 인 문제입니다.
Patrick87 2016 년

3
δ 가 부분 함수 인 경우 불완전한 결정적 유한 오토 마톤 이라고 합니다. δ
scaaahu

1
보시다시피, 부분 기능 버전은 전체 기능 버전으로 쉽게 변환되며, 내가 볼 수있는 한, 번역 기능을 부분적으로 허용함으로써 교육적 또는 다른 방법으로는 아무것도 얻지 못합니다. 용은 구체적으로 그 기능이 총체라고 언급합니다. 왜 세상에서 우리는 표준이 아닌 정의를 선택하여 얻을 수있는 것이 전혀 없을 때 대부분의 사람들이 따르는 표준 교과서에 명확하게 정의 된 것에 대해 논쟁을하는 이유는 무엇입니까?
Alex Smart

8

δ(q,a)qQaΣQΣ

ε

계산 성 측면에서 NFA는 DFA와 동일합니다. NFA에서 DFA로 변환하는 알고리즘이 있으며 DFA는 비결정론을 사용하지 않는 NFA 일 뿐이므로 일반 언어 세트를 정의합니다.


2
이것은 정의에 따라 다릅니다. 힘과 동등한 몇 가지가 있습니다.
Raphael

3
+1 IMHO는이 정의를 고수하는 것이 가장 좋습니다. 모든 사람 (상태, 기호) 쌍에 대해 정확히 하나의 전이를 정의하는 FA가 유효한 DFA를 구성한다는 데 동의합니다.
Patrick87 2016 년

1
그리고 문맥 자유 언어가 결정적인지 비 결정적인지 결정하도록 확장하려고 할 때이 정의는 잘못 설명되어 있습니다. 전환이없는 푸시 다운 오토마타는 항상 상태 / 입력 심볼 / 스택 심볼 당 정확히 하나의 전환으로 푸시 다운 오토마타로 변환 할 수 있습니다. 상태 / 입력 심볼 / 스택 심볼 당 여러 가능한 전환이있는 비 결정적 푸시 다운 오토마타를 결정적 푸시 다운 오토마타 로 변환 할 필요 는 없습니다 . (예 : 인식 된 언어에 비 결정적 컨텍스트가없는 경우)
방황 논리

2
@jmite DFA와 독립적으로 트림 오토마타를 정의하십시오. Myhill-Nerode 정리에 따르면 최소한의 DFA가 올바른 수의 상태를 갖는 것이 훨씬 더 중요하다고 생각합니다.
Patrick87

4
ϵϵϵ

6

DFA에 대한 정의는

A|δ(q,a)|1qaδ(q,ε)δ(q,a)=aΣA

이 경우 모든 전환이 필요하지 않습니다. 오토 마톤에 다음 입력 심볼에 맞는 전이가 없으면 거부합니다.

두 언어의 정의가 어느 언어를 받아 들일 수 있는지에 대해 동등하다는 것을 보여주는 것은 좋은 연습입니다.


DFA의 공식적인 정의를 포함하도록 OP의 질문을 수정해야한다고 생각합니다.
scaaahu 2016 년

0

DFA의 정의에서 모든 주에는 £의 모든 알파벳이 있어야합니다. 예를 들어, £ = {a, b, c} 및 Q = {q0, q1, q2} 인 경우이 모든 상태에는 다른 상태 또는 동일한 상태로 전환되는 모든 a, b, c 기호가 있어야합니다.


1
새로운 답변을 게시 할 수 있도록 기존 답변과 다른 점은 무엇입니까?
xskxzr

0

이에 대한 가장 간단한 대답 은 left symbol에 대해 죽은 상태를 추가하는 것 입니다. NFA에서 DFA로 변환 할 때 일부 심볼에 대해 Φ 트랜지션을 얻습니다.이 심볼은 Dead 상태를 나타냅니다.

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