열거자(컴퓨터 과학)

Enumerator (computer science)

열거기는 프린터가 연결된 튜링 기계입니다.튜링 기계는 그 프린터를 문자열을 인쇄하는 출력 장치로 사용할 수 있다.튜링 머신은 목록에 문자열을 추가할 때마다 프린터로 문자열을 보냅니다.열거자는 튜링 기계의 한 종류이며 튜링 기계와 동등합니다.

형식적 정의

E({ E 언어가 2소켓 튜링 머신(서 k { k으로 정의할 수 있습니다. 처음에 E E 입력되지 않으며 모든 테이프는 공백으로 채워집니다.새로 정의된 기호# # # display display σ {\ display 、 \ \ \ \ # \ S 의 끝을 나타내는 딜리미터입니다.두 번째 테이프는 프린터로 간주되며 문자열은 # 로 구분됩니다E E 의해 열거된 L L 언어는 두 번째 테이프(프린터)의 문자열 세트로 정의됩니다.

열거자와 튜링 기계의 동등성

유한 알파벳 위의 언어는 열거자에 의해 열거될 수 있는 경우에만 튜링 인식 가능합니다.이것은 튜링 인식 가능한 언어도 재귀적으로 열거할 수 있다는 것을 보여준다.

증명

튜링 인식 가능 언어는 열거자에 의해 열거될 수 있습니다.

튜링 M({ M에서 받아들일 수 있는 언어는 L {입니다.입력 알파벳(\}, 즉 Kleen Closure { { { { 、 \ \ }} is is is is is is is is is is,,,,,,,,,,,,,,,,,,,,,,,, the the the the the the,,,,,,,,,1, , i {\}, 그런 다음 L ) { L 열거하는 열거자가 다음 단계를 따릅니다.

i = 1, 2, 3,... 2 입력  1, , i {\ }, 하여 M { M 실행합니다.3단계 허용되는 문자열이 있으면 인쇄합니다.  

Now the question comes whether every string in the language will be printed by the Enumerator we constructed.언어 L의 문자열 w(\M TM(\M)은 이를 받아들이기 위해 제한된 수의 스텝을 실행합니다w의 k k그런 다음 Enumerator wdisplaystyle k 인쇄됩니다.따라서 Enumerator는M {\ M 인식하는 모든 을 인쇄하지만 단일 문자열을 여러 번 인쇄할 수 있습니다.

열거 가능한 언어는 튜링 인식 가능

열거형 을 인식하는 Turing M 스타일 구축하는 것은 매우 간단합니다.테이프 2개를 가질 수 있습니다.한 테이프에서는 입력 문자열을 사용하고 다른 테이프에서는 열거자를 실행하여 언어의 문자열을 차례로 열거합니다.두 번째 테이프에 문자열이 인쇄되면 첫 번째 테이프에 입력된 문자열과 비교합니다.일치하는 경우 입력을 받아들이고 그렇지 않으면 거부합니다.

레퍼런스

Sipser, Michael (2012). Introduction to the Theory of Computation - International Edition. ISBN 978-1-133-18781-3.