범용 튜링 기계는 어떻게 더 큰 기계를 시뮬레이션 할 수 있습니까?


10

Universal Turing machine에 관한 두 가지 질문에 대한 답을 찾으려고합니다.

  1. 시뮬레이션중인 머신의 상태 수가 더 많은 경우 Universal Turing 머신이 Turing 머신을 어떻게 시뮬레이트 할 수 있습니까?
  2. 시뮬레이션중인 기계의 알파벳 수가 더 많은 경우 Universal Turing 기계가 Turing 기계를 어떻게 시뮬레이트 할 수 있습니까?

누구 든지이 질문에 나를 도울 수 있습니까?


1
또 다른 흥미로운 관점은 UTM이 일정한 수의 상태로 구축 될 수 있다는 것입니다. 테이프에 인코딩 된 임의의 상태 또는 기호로 다른 TM을 시뮬레이션합니다.
vzn

관련 질문은 TM이 ATM (대체 TM)을 시뮬레이션하는 방법인데, 이는 테이프에 추가 데이터를 추가하고 클래스로 상태를 줄이는 것과 거의 같은 방법으로 pf를 처리하는 방법입니다.
Nikos M.

답변:


10

두 하위 질문에 대한 대답은 동일합니다. 테이프를 사용하여 필요한 데이터를 저장하는 것입니다. 시뮬레이션 할 머신의 상태 세트와 알파벳이 자연수의 하위 세트 ( "상태 1", "상태 2", "상태 3"등)라고 가정 할 수 있습니다. 공백이 아닌 문자가 두 개 일지라도 범용 기계는 모든 정수를 이진 문자열로 나타낼 수 있습니다.

그러나 유니버설 머신에는 고정 된 수의 상태가 있으므로 전환 기능 계산이 약간 까다로워집니다. 무엇을 우리가하고 싶은 것은 상태가 "양식의 큰 switch 문을 구현하는 몇 가지 지침을 쓰기입니다  과 머리에서 문자가  x는 다음 상태로 이동  S ' , 쓰기 문자  X ' 와 이동 방향 헤드  . " 따라서 이것이 귀하의 질문의 근본 원인이라고 생각합니다. 유니버설 머신에 전이 함수의 입력을 저장할 수있는 상태가 충분하지 않은 경우 전이 함수를 어떻게 계산합니까?sxsxd

한 가지 방법은 전환 기능을 이진 트리로 저장하는 것입니다. 모든 시뮬레이션 기계가 가정  주와 2 개 ℓ의  테이프 기호. 전환 함수를 깊이 q + 의 이진 트리로 저장합니다 . 첫 번째 q  레벨에서 시뮬레이션 된 상태의 다음 비트가 1인지 0인지, 다음  레벨이 같은지에 따라 왼쪽 또는 오른쪽으로 이동합니다. 그러나 시뮬레이트 된 테이프 문자의 연속적인 비트에 대해서는 이제 유니버설 머신은 테이프에서 앞뒤로 이동할 수 있으며 상태 / 캐릭터의 다음 비트를 확인하고 해당 비트를 자체 상태로 기억하고 트리로 돌아가며 올바른 노드에 마커를 배치하는 등의 작업을 수행 할 수 있습니다.2q2q+q

유니버설 머신에 여러 개의 테이프가 있도록하더라도 멀티 테이프 머신이 단일 테이프 머신과 동일하다는 것을 여전히 보여줘야합니다.

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