튜링 머신이 정확히 하나의 언어를 인식하는 이유는 무엇입니까?


13

인식 할 수없는 언어의 존재를 이해하려고합니다. 이를 위해서는 Turing 머신이 여러 언어가 아닌 하나의 언어 만 인식하는 이유를 알아야합니다. 왜 이런거야?


12
나는 당신이 "언어"가 무엇을 의미하는지에 대한 명확한 아이디어를 가지고 있지 않을 것으로 생각합니다. "언어"가 무엇이라고 믿는지 말할 수 있습니까?
Eric Lippert

왜 그걸 알아야합니까? 어떤면에서 차이가 날 것이라고 생각하십니까?
babou

답변:


29

Turing 기계가 인식하는 언어는 정의에 따라 허용되는 문자열 세트입니다. 기계에 입력이 주어지면 받아 들여집니다. 해당 기계에 대한 특정 입력은 항상 허용되거나 (언어로) 항상 허용되지 않습니다 (언어로). 따라서 단일 Turing 기계가 둘 이상의 랑게지를 수용 할 수있는 메커니즘은 없습니다.


6
"정의로"는 내가 말한 것과 정확히 같습니다.
Dave Clarke

1
@DaveClarke 물론 정의에 의한 것입니다. 그러나 이것은 TM이 두 언어 또는 숫자를 받아 들일 수 있도록 정의를 다르게 만들 수 있다고 말했기 때문에 조금 짧게 보입니다. 저는 TM이 두 가지 언어를 받아 들일 수있는 메커니즘이 없다는 David Richerby의 진술에 실제로 동의하지 않습니다. 언어를 무시하기로 선택했기 때문에 가능합니다. 따라서 우리가 그렇게하는 것이 정당한 이유를 설명하지 않으면이 질문에 대한 답이 완전히 나오지 않습니다.
babou

2
여기서 문제는 "언어"자체를 설명하는 데 사용되는 언어라고 생각합니다. 튜링 머신은 언어 정의에 관계없이 문자열 형태의 모든 것을 수용합니다. TM은 언어를 수용하는 것으로 정의합니다. 이는 언어에 대한 (인간의) 이해와 동일하지 않습니다. 이것이이 답변이 좋고 "... 완전히 답변 된"이유입니다.
David Barker

2
나는 튜링 머신이 한 언어만을 인정하고 그 의미를 이해하려고 노력하는 곳에서 OP를 읽을 가능성이 가장 높은 데이비드에 동의한다. 이것은 아마도 일반적인 소스에서 온 것으로 가정 할 때, 다른 이론이 아닌 전산 이론에 정의 된 "언어"의 일반 정의를 사용한다고 가정 할 수 있습니다. 정의는 임의적 일 수 있지만, 임의의 정의에 대해 잘 이해되고 동의된다.
Cort Ammon

3
두 언어를 허용하는 튜링 머신은 두 언어를 통합 한 언어를 허용하는 튜링 머신입니다.
Simon Richter

9

TM은로드 된 소프트웨어가있는 컴퓨터와 같습니다. 각 소프트웨어는 한 가지 일을합니까? 예를 들어, 컴퓨터를 생각하고 하나의 프로그램 만로드했다고 가정하십시오. 그런 다음 PC + "포토샵"은 포토샵 만 수행하고 PC + "마인 스위퍼"는 광산 만 청소합니다.

그래서 튜링 기계는 아주 간단한 생물은 각 실행에 하나의 입력과 출력하고 중 하나를 얻을 수 있다는 것입니다 또는 아니오 . 어떤 입력에서 예라고 말하고 그렇지 않은 경우에-이것은 입력 및 상태에 따라 TM의 "프로그램"에 의해 설정됩니다. 이것들이 일단 수정되면, "프로그램"이 고정되고, 주어진 입력에 대해 오직 하나의 대답이 있습니다 : 또는 아니오 (수락 / 거부). 이것은 정확히 하나의 언어를 정의합니다-TM에 주어질 때 를 산출하는 모든 입력 .

한편, 집합모든 TMS는 가능한 모든 프로그램과 컴퓨터 + "소프트웨어"의 설정에 해당합니다. 이제 더 많은 언어를 결정할 수 있지만 각 특정 TM은 하나의 언어 만 결정 (또는 인식)합니다.


사소한 점 : TM은 "예 또는 아니오"를 출력한다고 말하지 않을 것입니다. 이는 종결되지 않기 때문입니다. 이 단순화는 나중에 추가 문제를 일으킬 수 있습니다.
chi

4

튜링 머신은 우리가 정의하도록 선택했기 때문에 작동합니다. 우리는 더 정교하게 정의 할 수 있지만 문제는 그것이 목적에 도움이되는지, 더 많은 일을 할 수 있는지에 관한 것입니다. 그리고 우리가 아는 한 대답은 '아니오'입니다.

두 가지 언어를 인식하는 튜링 머신 모델을 만드는 것은 매우 쉽습니다. 을 감안할 때 언어 L 2는 하나 : 우리는 받아 주 2 종류와 TM을 정의 할 수 있습니다 L 1 과 하나의 L 2 . TM은 어느 시점에서 대응하는 수용 상태에 들어가면 L i 를 수용한다고 한다. 그러나 다른 종류의 수락 상태로 들어갈 수 있는지 확인하기 위해 계산을 다시 시작합니다. 그리고 나중에 중단하거나 중단하지 않도록 요구할 수 있습니다. 그런 다음 해당 머신에서 전체 이론을 작성할 수 있습니다. 그것은 우리가 일반적으로하는 것보다 작동하고 훨씬 더 복잡합니다.L1L2L1L2Li

데이비드 리처 비 (David Richerby) 는 " 단일 튜링 머신이 하나 이상의 언어를 수용 할 수있는 메커니즘이 없다 "고 대답하기 위해 , 그러한 메커니즘을 고려하지 않기 때문입니다. TM을 매우 표준 모델로 제한하더라도 TM이 홀수 단계로 허용 상태에서 정지 하면 입력이 언어 로 인식되고 TM이 허용하면 L 2에 있다고 말할 수 있습니다. 짝수 단계로. 비결정론 덕분에 TM이 두 개의 교차 언어를 모두 인식하지 못합니다.L1L2

요점은 모든 종류의 변형이 이론을 수행하는 데 사용될 수 있다는 것입니다. 또한 람다 미적분, 계산 논리, 재귀 함수 이론 등과 같은 계산을 모델링하기 위해 매우 다른 접근법이 시도되었습니다.

TM은 하나의 언어 만 인식하는 간단한 모델로는 수행 할 수없는 작업을 수행하지 않습니다. 그것이 할 수있는 모든 일을한다고 추측되는 정도까지. 이것을 교회 튜링 논문 이라고합니다 . 우리가 아는 한, 인식 가능한 언어를 결정하는 것은 계산 이론의 초석입니다.

복잡한 모델은 실질적인 이점없이 인생을 더 어렵게 만들므로 간단한 모델을 사용할 수도 있습니다.

물론 다른 모델을 사용하면 문제를 더 잘 이해할 수 있기 때문에 때로는 다른 모델을 사용하기도합니다.


첫 번째 단락은 약간 오해의 소지가 있다고 생각합니다. 나는 OP가 우리가 왜 이런 식으로 물건을 정의하고 있는지 묻지 않고 있지만 그것이 사실인지조차 알지 못했다고 확신합니다. "우리는 좀 더 정교한 정의를 가질 수 있지만 문제는 그것이 목적을 달성 할 수 있는지의 여부입니다." 배우는 방법.
흥미롭게도

OP는 TM이 왜 다른 언어를 이해하기 위해 하나의 언어 만 인식하는지 알고 싶어한다고 말합니다. 나는 우리가 그것들을 그렇게 정의했기 때문에 대답합니다. 나는 다른 정의를 사용할 수 있지만 이론을 바꾸지는 않을 것이라고 덧붙였다. 그것은 그가 무엇을했는지에 따라 정의의 선택이 중요하지 않으며, 정확히 동일한 세트를 포함하도록 인식 성이 정의 될 수 있다는 것을 그에게 말하는 방법입니다. 정의를 선택하는 이유는 편리함과 결실로 인해, 개념이 명명되거나 언급되는 방법뿐만 아니라 시간이 지남에 따라 진화하는 이유입니다.
babou

알겠습니다. 나는 주로 "정교화 된"사용에 반대한다고 생각합니다. 이는 덜 간단한 정의가 바람직하다는 것을 의미합니다.
흥미롭게도

3

Richerby의 답변에서 한 가지 요점을 확장하고 싶습니다.

기계에 입력이 주어지면 받아 들여집니다.

그 이유는 튜링 머신이 결정론 적이기 때문입니다. 동일한 입력 및 시작 상태가 주어질 때마다 동일한 입력 상태 또는 동일한 거부 상태에서 종료되거나 영원히 반복 될 때마다 항상 동일한 작업을 수행합니다. ).

또한 모든 Turing 머신이 정확히 하나의 언어를 인식한다는 것을 쉽게 증명할 수 있습니다.

모순에 의해 튜링 머신 M이 두 개의 다른 언어 L1과 L2를 인식한다고 가정하십시오. L1과 L2는 서로 다르기 때문에 L1에는 있지만 L2에는없는 문자열 S가 있어야합니다 (일반성이 손실되지 않음-다른 방법 일 수도 있지만 L1과 L2가 교환 된 경우와 동일한 방식으로 증명이 진행됩니다) ). 이제 S에서 M을 실행하십시오. 수락하면 S가 L2에 있기 때문에 모순에 도달합니다. 수락하지 않으면 (거부 또는 루프), S가 L1이 아니기 때문에 모순에 도달합니다.


2

튜링 머신은 인식이라는 단어의 정의이므로 하나의 언어를 인식합니다 . 튜링 머신이 인식 하는 언어는 튜링 머신 이 허용하는 모든 문자열 / 입력 세트입니다.


2
컴퓨터 과학에 오신 것을 환영합니다 ! 귀하의 답변은 (IMO) 정확하지만 기존 답변에 추가되지 않는다고 생각합니다. 우리는 없는 많은 질문 을 가지고 있으며 기존의 대답을 반복하는 것보다 그 중 하나에 대답하는 것이 훨씬 더 흥미롭고 생산적입니다.
David Richerby 2016 년

1
감사! 나는 실제로 짧아서 현재 받아 들여진 대답을 처음에는 보지 못했습니다.
흥미롭게도

1

이에 대한 대답은 "튜링 머신"을 의미 할 때 정확히 이해하는 내용에 따라 다릅니다. 모든 계산 모델에는 세 가지 구성 요소가 있습니다 (여기에서 결정자 / 수용자로 제한).

  • 통사론,
  • 의미론,
  • 허용 기준.

튜링 머신의 경우 구문 은 상태 세트, 알파벳, 전환 기능 등의 튜플입니다. 의미는 (a)의 정의 것이다 연산 , 즉, 어떤 단계 후의 테이프 콘텐츠를 유도하기 위하여 전이 함수를 적용하는 방법을 설명한다. 허용 기준은 , 말을 "이 경우, 우리는 중지하고 결과 즉"하는 것입니다.

이제 튜링 머신은 구문과 의미 만 제공합니까, 아니면 수락 기준도 포함합니까? 전자를 수행하는 경우 TM은 다른 승인 기준을 사용하여 여러 언어를 허용 할 수 있습니다. 여러 개의 허용되는 언어를 허용하는 승인 기준을 생각해 볼 수도 있습니다 (예 : 약 두 개의 매개 변수 TM을 생각하십시오). 그러나 후자를 사용하는 경우 흔들기 공간이 없으며 일반적인 수용 기준은 실제로 TM 당 하나의 언어 (이러한 유형)를 허용합니다.

TCS에서 용어 의 일반적인 정의 및 사용법에는 세 가지 구성 요소가 모두 포함됩니다. 특히 수락 기준을 변경하면 오토 마톤이 나타내는 객체의 클래스가 크게 변경 될 수 있으므로, 우리가 말하는 내용을 알기 위해서는 기준을 수정 해야 합니다.

예를 들어, 유한 오토마타Büchi 오토마타를 비교 합니다. 구문과 의미는 정확히 동일하지만 하나는 유한 단어를 허용하고 다른 하나는 무한 단어를 허용합니다!
Büchi automata의 승인 기준을 TM 정의에 연결하면 어떻게되는지 알아 봅니다.

이제 일반적인 수용 기준이 의미있는 이유는 무엇입니까? 유한 문자열의 언어로 자신을 제한하는 한, 개념적 수준에서 TM 당 여러 언어를 사용하면 크게 변하지 않을 것입니다. 우리는 여전히 동일한 언어 세트를 사용할 수 있습니다. 그래서 우리는 더 간단한 모델을 고수합니다. 그러나 더 관련성이 높은 모델이 애플리케이션 모델링에 유용 할 수는 없지만 TCS의 범위를 벗어납니다 (정의 권한을 가짐).


0

M1L1L2L1L2s1s1L1s1L2M1s1s1L2M1s1sL2sL1

MLsLMssMsL

sLMs

ATM


TM이 하나의 언어 만 인식한다는 것을 증명할 필요는 없습니다. 즉 "인식"의 정의에서 바로 나타납니다. 그러한 정의를 감안할 때, TM이 (두 번째 문장에서와 같이) 두 개 이상의 언어를 받아들이는 것이 어떤 의미인지 또는 그러한 가정으로부터의 추론이 유효한지 여부는 명확하지 않습니다. 모순에 의한 증명은 공제가 철저한 경우에만 작동합니다. 여기서, TM을 인식하는 TM이 기계가 존재한다는 가정이 아니라 어떻게 행동하는지에 대한 가정에 오류가있을 수 있습니다.
David Richerby

-2

언어는 문자열 집합입니다. 두 언어 L1과 L2의 합집합이 일련의 문자열이 아닌가? (L3이라고합시다) 다른 언어가 될까요? 그런 다음 Turing 머신이 두 언어를 모두 인식하면 단일 언어 인 L3을 인식합니다.


2
그러나 튜링 머신 은 실제로 동일한 언어가 아니면 두 언어를 모두 인식 하지 못합니다 . L1을 인식한다는 것은 L1 외부의 어떤 문자열도 받아들이지 않음을 의미합니다. L2를 인식한다는 것은 L2 외부의 어떤 것도 받아들이지 않음을 의미합니다. L1과 L2가 다르면 둘 다 인식 할 수 없습니다.
David Richerby

-3

Turing이 그의 정지 증거에서 처음으로 설명 / 발견 한 Universal Turing Machine (s) 의 존재를 지적하는 다른 답변은 없습니다 . 예, TM은 재귀 적으로 열거 가능한 단일 언어를 허용하지만 입력 문자열과 함께 입력에 인코딩 된 경우 재귀 적으로 열거 가능한 언어를 인식 할 수 있습니다. 그래서 질문은 몇 가지 질적입니다. TM은 단일 언어와 가능한 모든 인코딩 가능한 언어 만 허용합니다.


4
{M,xM accepts x}

& 그것이 쓰여진 것과 어떻게 다릅니 까?
vzn

2
언어의 코딩을 인식하는 것은 언어를 인식하는 것과 다릅니다.
David Richerby

네, 명시된대로 정확하게
vzn

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