답변:
효율적인 정의 방법에 따라 두 가지 답변이 있습니다.
적은 비용으로 더 많은 것을 말하십시오 : NFA가 더 효율적입니다.
DFA를 NFA로 변환하는 것은 간단하며 표현의 크기를 늘리지 않습니다.
그러나 가장 작은 DFA가 가장 작은 NFA보다 기하 급수적으로 큰 정규 언어가 있습니다. 전형적인 예이다 에 대한 K 고정.
빠른 실행 : DFA가 더 효율적입니다.
오늘날 사용하는 컴퓨터는 본질적으로 결정 론적입니다. 그것은 비결정론을 다루는 데 나쁜 영향을 미친다. NFA를 결정적으로 처리하는 두 가지 일반적인 방법이 있습니다. 한쪽의 역 추적, 다소 비용이 많이 들거나 활성 상태를 추적하는 것입니다. 즉, 각 전환이 최대 배 더 오래 걸립니다 (여기서 N 은 NFA의 크기 임) .
DFA 일치는 입력 문자열 크기에서 선형입니다. NFA 일치에는 역 추적이 포함되므로 NFA가 더 많은 작업을 수행합니다. 따라서 DFA가 더 효율적입니다.
위의 답변에 추가하기 만하면됩니다.
NFA 는 병렬 프로세서에서 시뮬레이션 할 수 있다는 점에서 DFA보다 계산 효율성이 더 뛰어납니다.
BTW : 사람들은 NFA가 실제로 존재할 수 없다고 말하는 것을 봅니다. 나는달라고 간청한다. 프로세서 수가 많은 컴퓨터는 많은 작업을 병렬로 실행할 수 있으며 비 결정적 시스템으로 간주 될 수 있습니다. 계산의 각 분기를 새 프로세서에 할당하고 수락 할 때마다 모두 중지 할 수 있습니다.
우리가 알고있는 Automata, 즉 사람의 힘이나 사람의 직접적인 참여없이 어떤 행동을 수행 할 수있는 기계. 예 : 세탁기. 유한 오토마타는 1 프레스 ON 2 프레스 OFF와 같은 기계로 작업을 수행하는 상태를 알고 있으므로 유한 오토마타라고하는 2 가지 상태 만 있습니다. 이제 결정 론적 유한 오토마타와 같은 DFA로 오십시오. 공식적으로는 모호성이없는 상태를 쉽게 확인할 수 있으며 비공식적으로 1 개의 심볼에 1 개의 전환 만 허용하면됩니다. NFA : 비 결정적 유한 오토마타. 실제 상태를 계산하는 데 더 많은 시간이 필요하며 모호성이 있으며 비공식적으로 1 개의 심볼에 여러 개의 허용되는 전환이 있다고 말합니다. 대상에 도달하는 데 시간이 걸리는 경우 NFA는 DFA보다 시간이 더 걸리지 만 NFA는 DFA보다 더 많은 데이터를로드 할 수 있습니다. * DFA와 NFA는 문자열을 인식하는 능력이 동일합니다. 감사합니다 .. Deepali kaushik