괄호 매칭을위한 2 상태 튜링 머신


9

대학에서 우리는 일반적인 계산 이론과 튜링 머신에 대해 더 구체적으로 배우고 있습니다. 큰 이론적 결과 중 하나는 잠재적으로 큰 알파벳 (기호)을 희생시키면서 상태 수를 2로 줄일 수 있다는 것입니다.

다른 Turing Machines의 예를 찾고 있었고 일반적인 예는 괄호 매처 / 체커입니다. 기본적으로 괄호 문자열 (()()()))()()()이 균형을 이루는 지 확인합니다 ( 예 : 균형이 맞지 않으면 이전 예제에서는 0을 반환 함).

이 상태를 3 가지 상태 머신으로 만 만들 수 있습니다. 누구든지 이것을 이론상의 최소값 2로 줄일 수 있는지, 그들의 접근 방식 / 상태 / 기호가 무엇인지 알고 싶습니다!

명확히하기 위해, 괄호는 빈 테이프 사이에 "샌드위치"되어 있으므로 위의 예 - - - - - - - (()()()))()()() - - - - - - -에서는 테이프의 입력이됩니다. 알파벳이 포함된다 (, ), 1, 0, -,와 *halt*상태는 상태로 계산하지 않습니다.

참고로 세 가지 상태 접근 방식은 다음과 같습니다. 상태 설명 :

 State s1: Looks for Closing parenthesis

 State s2: Looks for Open parenthesis

 State s3: Checks the tape to ensure everything is matched

 Symbols: ),(,X

전환은 다음과 같이 나열됩니다.

Action: State Symbol NewState WriteSymbol Motion
// Termination behavior
Action: s2 - *halt* 0  -
Action: s1 -  s3    -  r

//Transitions of TM
Action: s1 (  s1  (   l
Action: s1 )  s2  X  r
Action: s1 X  s1  X  l
Action: s2 ( s1 X  l
Action: s2 X  s2 X r
Action: s3 (  *halt* 0 -
Action: s3 X  s3     X r
Action: s3 -  *halt* 1 -

이 모든 것을 비공식적으로 작성하는 방법을 용서하십시오. 나는 여전히 이것 뒤에 이론적 인 구성을 배우고 있습니다.


더 큰 알파벳을 사용할 수 있습니까?
Raphael

@Raphael 이론적 인 결과에 따르면, 상태를 알파벳으로 또는 그 반대로 바꿀 수 있습니다. 따라서 상태를 2로 줄이면 더 큰 알파벳을 사용해야 할 것입니다. 그렇습니다. 짧은 대답은 알파벳이 원하는만큼 클 수 있다는 것입니다.
Four_FUN

나는 두 개의 테이프 TM에서 추가 기호없이 수행 할 수 있다고 생각합니다.
Karolis Juodelė

@Four_FUN MIT 출신입니까?

답변:


8

라파엘의 답변 그냥 "소스 코드"제요 : 사용하는 것과 동일한 (주 Q1)에 트릭과 테이프 알파벳을 가지고이 작업 버전 :
_ ( ) [ { / \ (여기서 초기 빈 기호입니다)_

q0:  _ -> accept  // accept on empty string and on balanced parenthesis
     ( -> {,R,q1  // mark the first open "(" with "{" and goto q1
     ) -> reject  // reject if found unbalanced ")"
     \ -> /,L,q0  // go left
     / -> \,R,q0  // go right

q1:  ( -> [,R,q1  // replace "(" with "[" and continue ...
     ) -> /,L,q1  // ... until first ")", replace it with "/" and goto left
     [ -> \,R,q1  // found matching "(" bracket, goto right and search for another ")"
     _ -> reject  // no ")" found for the first "{", reject
     { -> \,R,q0  // this must be the last match, goto q0 and check if it is true
     \ -> /,L,q1  // go left
     / -> \,R,q1  // go right

튜링 머신 온라인 시뮬레이터를 사용하여 직장에서 볼 수 있습니다 . 소스 코드는 다음과 같습니다.

0 _ Y r halt
0 ( { r 1
0 ) N r halt
0 \ / l 0
0 / \ r 0
1 ( [ r 1
1 ) / l 1
1 [ \ r 1
1 _ N r halt
1 { \ r 0
1 \ / l 1
1 / \ r 1

마지막 참고 사항 :이 기술이 한계에 도달하는 방법을보고 싶다면 Y에 의해 2 개의 상태와 18 개의 기호가있는 유니버설 튜링 기계의 구성을 읽고 이해하십시오 . 기계 "


소스 코드만을 제시하는 답변이 컴퓨터 과학 에는 좋지 않다고 결정하지 않았습니까 ? ;)
Raphael

1
@Raphael : 나는 당신에게 동의하지만, 나의 것들은 당신의 부록처럼 보일 수 있습니다 (세부 사항을 확인하지 않아도 괜찮아 보입니다). 이에 대한 메모를 추가하겠습니다.
Vor

1
@Raphael : 테이프 기호를 최소화하려고 재미있게 코딩했으며 작동하는 것으로 간주되어 게시하기로 결정했습니다.
Vor

@Vor. 이 문제에 대한 추가 의견을 보내 주셔서 감사합니다. 이 모든 것은 내가이 일에 더 많은 연습이 필요하다는 것입니다. 이론이 내가 추구 한 것이었지만 소스 코드를 무의미하게 게시 해 주셔서 감사합니다.
Four_FUN

1
@Four_FUN : Rogozhin Universal TM (2,18)은 임의의 2- 태그 시스템 (유니버설 모델)을 시뮬레이션하는 표준 튜링 머신입니다 (즉, 초기 테이프에는 공백 기호 만 포함 된 입력). 2 상태 3 심볼 하나는 약하게 튜링 기계 (초기 테이프는 무한한 패턴 시퀀스로 채워 져야 함)이며, 셀룰러 오토마타 규칙 110 (시뮬레이션 완료로 입증 됨)을 시뮬레이트하는 보편성에 도달합니다. ). 표준 TM (2,3)이 튜링을 완료 할 수 없다는 증거가 있습니다.
Vor

7

벙어리 답변 : 결과는 두 가지 상태 의 범용 Turing 머신 이 있음을 약속합니다 . 구축 임의 의 반다이 크의 언어에 대한 TM을 인덱스를 계산하고 보편적 인 기계로 하드 코드.

그러나 그것은 물론 매우 만족스럽지 않습니다. 괄호 쌍을 알파벳 확장과 일치시키면서 왼쪽으로 이동하는 것과 오른쪽으로 이동하는 것의 차이를 "트릭"하는 경우 실제로 접근 방식이 작동합니다. 우리는 필요{#,(,),엑스} 표시된 버전 ^ 모든 상징의 .

  • 초기 상태 0 다음과 같이 작동합니다.

    표시가없는 기호를 찾을 때 첫 번째까지 오른쪽으로 이동 )발견되었습니다. 그렇게하는 동안 모든 기호를 덮어 씁니다^. 찾은 내용 덮어 쓰기)엑스^.
    없는 경우)즉, 우리는 갭 기호를 누르십시오 #, 덮어 쓰기 엑스^ 로 전환 1.

    표시된 기호를 찾을 때 첫 번째까지 왼쪽으로 이동 (^통과 한 (표시된) 기호를 표시되지 않은 변형으로 덮어 씁니다. 찾은 내용 덮어 쓰기(^엑스.
    우리가 발견하면)^ 또는 # 먼저 루프 / 거부 ¹입니다.

  • 1모든 것이 일치하는지 확인합니다. 여전히 양식의 접두사가있을 수 있습니다(^+테이프에. 즉, 우리가 찾은 한 왼쪽으로 이동엑스^. 우리가 따라서 발견하면#, 동의하기; 다른 기호를 찾으면 엑스^ 먼저 루프 / 거부합니다.


  1. 기계가 내부와 일치하기 때문에 이것은 정확합니다. 합법적 인 의견에는 오직엑스 현재 일치하는 괄호 쌍 사이.

질문하지 않아도 내 솔루션 이 두 가지 상태 의 범용 TM을 정확히 어떻게 약속 합니까? (매우 스마트 한 솔루션은 귀하의 의견을 반영합니다)
Four_FUN

1
@Four_FUN : 당신이 당신의 질문에 말하기 때문에 : "... 위대한 이론적 결과 중 하나는 잠재적으로 큰 알파벳 (기호)을 희생시키면서 , 주 수를 2로 줄일 수 있다는 것입니다 ..." . .. 따라서 임의의 범용 튜링 기계를 선택하고 상태 수를 2 개로 줄일 수도 있습니다. 또한 일부 실험을 수행 하면 임의의 TM을 동등한 것으로 변환하는 자동 절차수행 하는 것이 어렵지 않다는 것을 알게 될 것입니다 2 상태 TM (알파벳 기호 수의 최소화에 신경 쓰지 않는 경우).
Vor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.