2016-09-02 4 views
2

저는 인간 언어 (예 : 영어)가 튜링 기계를 시뮬레이트하기에 충분히 강력하다는 것을 확신합니다. 그러나 자연 언어가 프로그래밍 언어보다 표현력이 적거나 적다는 것을 의미합니다.자연 언어 튜링이 완성 되었습니까?

자연 언어 튜링이 완료 되었습니까?

+1

튜링의 완성도는 일반적으로 언어의 양상이나 속성보다 계산력 *과 관련이 있습니다. 따라서이 용어는 다른 공식 언어와 마찬가지로 자연 언어 (특히 구어체)에도 실제로 적용 할 수 없습니다. –

+0

자연 언어는 프로그래밍 언어와 동일한 의미로 계산 모델을 표현하지 않는다는 것을 직관적으로 알게되었습니다. 그러나 다른 한편으로는, 나는 프로그래밍 언어를 사용하여 컴퓨터의 기호를 조작하고 인간 언어를 사용하여 뇌의 기호를 조작하는 것의 정확한 기술적 차이를 이해할 수 없습니다. –

답변

7

우선 "언어 X 튜링이 완료 되었습니까?"는 언어 X에 대해 잘 정의 된 의미가 주어지면 잘 정의 된 질문 일뿐입니다. 자연어의 복잡한 성격과 의존성으로 인해 자연어를 정의하는 것은 거의 불가능합니다. 상황과 직관에 대부분의 (모든?) 자연 언어는 잘 정의 된 구문조차 가지고 있지 않습니다.

그렇습니다. 주된 혼란은 컴퓨터 모델이 튜링 머신보다 강력하게 더 강력하다는 가정에 기반합니다. 즉, 튜링 머신을 시뮬레이션 할 수있을뿐만 아니라 튜링 기계는 할 수 없다. 이것은 사실이 아닙니다. 예를 들어, oracles로 Turing 머신을 확장 할 수 있으며 일반 Turing 머신보다 훨씬 강력한 연산 모델을 얻을 수 있습니다.

같은 맥락에서 일반적인 프로그래밍 언어로 할 수있는 모든 것을 할 수있는 프로그래밍 언어 MagicLang을 정의 할 수 있으며 정지 문제를 해결할 수 있습니다. 그런 언어에 대한 의미를 정의하는 것은 쉽습니다 : 우리가 기초로 사용한 언어의 의미를 취하고 의미를 가진 bool halts(string src, string input) 함수를 추가하면 "소스 코드 src에 의해 설명 된 프로그램이 유한 한 시간 후에 성공적으로 종료되면 true를 반환합니다 주어진 때 입력 input ". 그렇게 쉽습니다. 이 언어를 구현하는 것이 어렵거나 불가능합니다.

이제 자연 언어는 정지 문제를 설명 할 수 있으며 우리의 두뇌는 자연 언어를 "실행할"수 있다고 주장 할 수 있습니다. 즉, "이 프로그램이 중단됩니까?"라는 질문에 대답 할 수 있습니다. 따라서 우리가 할 수있는 모든 것을 할 수있는 컴퓨터를 만들 수 있다면 그렇게 할 수 있어야합니다. 그러나 우리의 두뇌가 100 % 정확도로 정지 문제를 해결할 수는 없습니다. 우리의 두뇌는 심지어 100 % 정확도로 정규 프로그램을 실행할 수 없습니다. 얼마나 자주 당신이 당신의 머리 속에있는 프로그램을 밟았는지 기억하고 현실과 다른 결과를 얻었습니다. 우리의 두뇌는 배우는 데 능숙하며, 직관적 인 연결을하고 경험적 방법을 적용하지만, 항상 잘못된 결과를 낼 위험이 있습니다.

그래서 컴퓨터가 똑같은 일을 할 수 있습니까? 예, 우리는 휴리스틱과 기계 학습을 사용하여 해결할 수없는 문제에 접근 할 수 있으며 정상적인 프로그래밍 언어는 자연어 (심지어 결정 불가능한 언어)로 설명 될 수있는 모든 문제를 해결할 수 있습니다. 그러나 두뇌처럼, 그 프로그램은 때때로 잘못된 결과를 줄 것입니다. 실제로 우리의 기계 학습 알고리즘 및 경험적 발견 방법은 인간의 두뇌만큼이나 진보적이지 않기 때문에 잘못된 결과를 훨씬 더 자주 제공 할 것입니다.

1

소프트웨어 언어가 (예 : 임의의 새 기능 정의와 같이) 자체에 대한 임의의 확장을 정의하는 데 사용될 수있을 정도로 복잡하면 명확하게 Turing-complete입니다.

자연 언어를 사용하면 이전에는 할 수 없었던 임의의 주제에 대해 자신의 이해와 능력을 확장 할 수있는 충분한 시간을두고 다른 인간의 용어와 개념을 가르 칠 수 있습니다. 예를 들어 저작권법이나 천체 물리학을 가르 칠 수 있습니다. (그들이 이미 그것을 안다면). 따라서 정확한 정체성보다 유추 할 수는 있지만 자연어에 대한 튜링 완전성과 같은 속성이있는 것 같습니다. 임의의 확장을 정의하고 전송하는 데 사용할 수 있습니다. (물론, 모든 인간이 천체 물리학을 배우기 위해 실제로 절단 된 것은 아니지만 - 이상적이지 않은 터닝 머신은 한정된 양의 메모리 만 가지고 있으므로, 실행이 불가능한 프로그램을 정의 할 수 있습니다. 충분한 메모리가 있어야합니다.)

관련 문제