알고리즘보다 상호 작용이 더 강력합니까?


17

나는 모토 들었습니다 상호 작용 알고리즘보다 더 강력한 에서 피터 웨 그너 . 이 아이디어의 기본은 (고전적인) 튜링 머신이 외부 세계 / 환경과의 통신 (입력 / 출력)과의 상호 작용을 처리 할 수 ​​없다는 것입니다.

어떻게 그렇게 할 수 있습니까? 튜링 머신보다 어떤 것이 더 강력 할 수 있습니까? 이 이야기의 본질은 무엇입니까? 왜 더 잘 알려지지 않았습니까?


1
질문에 포함시킬 참조가 있습니까? 나는 튜링 머신의 공식적인 정의를 알고 있지만 "상호 작용"의 의미를 정확히 모른다 .
Janoma

또한 "환경과의 상호 작용을 처리 할 수 ​​없음"은 "진정한 임의성을 처리 할 수 ​​없음"과 비슷하지만, 센서와 의사 난수로 근사 할 수 있습니다. 그러나 그것은 상호 작용의 정의를 모른 채 정보가없는 주석입니다.
Janoma

2
튜링 머신에는 센서가 없습니다.
Dave Clarke

1
나는 그것을 알고 있습니다. 그러나 컴퓨터 입력을 Turing Machine에 전달하는 특별한 방법 인 센서를 사용합니다. 따라서 TM 외부 신호 / 환경과 상호 작용합니다.
Janoma

2
문제는 컴퓨터에 관한 것이 아닙니다. TM과의 유일한 상호 작용은 환경이 시작시 하나의 입력을 제공하고 끝에서 최대 하나의 출력을 수신한다는 것입니다. 이것은 거의 일반적인 상호 작용이 아닙니다.
Dave Clarke

답변:


11

튜링 머신은 오라클 테이프를 사용하여 인터랙션을 잘 처리 할 수 ​​있습니다. 작동 방식은 다음과 같습니다. 상호 작용을 처리하는 컴퓨터의 관점에서 작업자의 입력은 단순히 컴퓨터로 전송되는 또 다른 비트 시퀀스입니다. 우리는 모두 게으른 sysadmin이 요청이있을 때 프로그램에 입력을 보내기위한 스크립트를 작성하여 sysadmin이 더 일찍 중단 될 수 있음을 알고 있습니다. 인터랙션 머신은 실제로 콘솔에 실제 운영자가 있는지 또는 입력이 다른 프로그램에서 파이프되는지 여부를 알 수있는 방법이 없습니다.

모든 상호 작용 입력을 미리 준비하는 것은 이론적으로 볼 때 Oracle Turing 머신에서 사용하는 별도의 테이프에 모든 입력을 갖는 것과 동일합니다. 컴퓨터가 일반적으로 조작자에게 상호 작용을 요청할 때마다 기계는 대신 입력 테이프에서 읽습니다. 테이프에서 읽은 내용이 어떤 식 으로든 유효하지 않은 것으로 판단되면 Turing 머신은 해당 입력을 수신 할 때 인터랙션 머신이 수행하는 작업을 정확하게 수행합니다.

Wagner는 오라클 테이프를 사용하여 입력을 코딩하는 능력을 알고 있으므로 소금 한 알로 주석을 달거나 실제로 무엇을 의미하는지 물어봐야합니다. 나는 상호 작용에 대해 생각하는 사람들은 일반적으로 두 가지에 대해 걱정한다고 믿습니다.

  • "실제"컴퓨터에는 상호 작용이 있지만 Turing에서 정의한 알고리즘에는 없습니다. 오라클 테이프의 입력을 코딩하여이 문제를 해결할 수 있지만 실제 컴퓨터의 작동 방식과 여전히 일치하지는 않습니다. 실제 컴퓨터와 더 밀접하게 일치하는 계산 모델을 연구하는 것이 좋습니다.

  • 일반 컴퓨터에는 데이터를 제공하는 마법의 "오라클"이 제공되지 않기 때문에 Oracle 기반 알고리즘은 일상적인 컴퓨팅에서 종종 고려되지 않습니다. 그러나 실제로 사람을 오라클로 사용할 수도 있습니다. 요청 된 데이터를 이해하는 사람은 알고리즘을 함께 도와 성능을 향상시킬 수도 있습니다. 다시 말해서, 인간은 단순한 임의의 테이프가 아닌 유용한 오라클 테이프를 제공 할 수 있으며, 원칙적으로 이것은 비 오라클 기반의 것에 비해 더 빠르고 강력한 컴퓨팅 방법으로 이어질 수 있습니다. 결국 컴퓨터에 추가 입력으로 임의의 비트가 제공되는 무작위 컴퓨팅에서도 비슷한 일이 발생합니다.


Oracle 테이프는 상호 작용을 올바르게 모델링하지 않습니다. 컴퓨터 시스템이 개인 정보를 유출하지 않음을 증명하는 것을 고려하십시오. 고정 된 oracle 테이프를 사용하는 TM의 관점에서 공식화 할 수 없습니다. 속성은 환경이 수행 할 수있는 계산의 특성에 따라 달라집니다. 정확히 oracle 테이프로 추상화하는 것입니다.
Neel Krishnaswami

"올바른 모델"의 의미에 따라 다릅니다. 일부 컴퓨터 (예 : 하이퍼 컴퓨팅 커뮤니티)는 상호 작용이 계산 가능한 기능 집합을 확장한다고 제안합니다. 오라클 계산과 동일한 방식으로 수행됩니다. 물론 TM을 사용하여 실제 계산 환경의 속성을 연구 할 수는 없습니다. 컴퓨터의 프로세서가 버그가 있는지 알고 싶다면 완전히 무시하고 튜링 머신을 보는 데 도움이되지 않습니다. 그러나 계산되는 함수 에 관한 질문의 경우 상호 작용과 오라클이 동일합니다.
Carl Mummert

아니요, 그렇지 않습니다. 오라클 테이프가 모델링하지 않은 실현 가능한 상호 작용에는 연속성 제한이 있습니다. 환경이 프로그램 내부를 볼 수없는 경우, 시간 공급하는 입력 은 이전 시간 n 의 출력에만 의존 할 수 있습니다 . (즉, 입력을 출력의 함수로 볼 때, 입력 함수는 Cantor 메트릭과 관련하여 비 확장 적이어야합니다.) 계산 능력이 고전적인 수학자에게 토폴로지처럼 "느낌이있는 것처럼", 상호 작용은 토폴로지가 건설적으로 수학자.
Neel Krishnaswami

이 비유를 실제로 철저히 해결하려면 Peter Hancock, Pierre Hyvernat : 프로그래밍 인터페이스 및 기본 토폴로지를 참조하십시오. citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.107.919
Neel Krishnaswami

1
시간 작업자가 입력하는 입력은 가능한 입력일 수 있으므로 가능한 모든 입력 실행 모음에는 모든 입력 요소 시퀀스가 ​​포함됩니다. 연산자는 아무것도 입력 할 수 없기 때문에 연속성이 없습니다. 타당성 (계산 복잡성을 의미하는 것으로 간주 )은 내가 대답하고있는 질문과 관련이 없습니다 . 기능이 오라클 테이프에 제공되면 모든 기능을 오라클 머신에서 계산할 수 있으며 상호 작용으로 모든 기능을 계산할 수 있습니다 운영자가 요청시 기능의 임의 값을 입력 할 준비가 된 경우 기계.
Carl Mummert

8

터닝 머신은 계산을 모델링하며 상호 작용 개념이 없습니다. 그런 의미에서 외부 시스템과의 상호 작용을 지원하는 기계는 터닝 기계가 할 수없는 일을 할 수 있습니다. 그러나 수행 계산 사이에서 외부 소스로부터의 입력 비트는 분명 항상 아무것도 할 수 없어, 튜링 기계에 의해 그래서 심지어 "IO 기계"를 모델링 할 수 튜링 기계가 할 수없는 것을 외부 입력을.

어떤 의미에서 그러한 기계는 Turing Machines가 결정할 수없는 문제를 "결정"할 수 있지만, 상호 작용하는 시스템이 Super-Turing-Machine의 힘을 가지고 있고 신뢰할 수있는 (어떤 방식 으로든, 확률 적 신뢰성) 충분합니다).

"초기 테이프 입력의 경우 테이프 내용을 인쇄 한 다음 외부 입력에서 기호를 읽습니다. 기호가 1이면 승인하고 그렇지 않으면 거부"와 같은 IO 기계 용 프로그램을 상상해보십시오. 이 프로그램은 문제를 결정할 있습니다. 그러나 외부 시스템과 상호 작용할 수있는 경우 에만 문제를 결정할 수 있습니다. 저에게 IO Machine이 Turing Machines가 결정할 수없는 문제를 결정할 수 있다고 말하는 것은 매우 흥미로운 방법이 아닙니다.

테이프의 입력으로 외부 입력과 함께 일부 이전 구성의 인코딩을 취하는 기계를 상상하고, 구성의 인코딩이 포함 된 테이프로 기계를 정지시키는 기계를 상상하여 항상 대화식 계산을 표현할 수 있다고 생각합니다. 출력. 그런 다음 "프로그램 실행"프로세스는 기계적인 방식으로이 Turing Machine을 반복적으로 실행하지만 "비 기계적"부분 만 외부 입력이 제공됩니다. 그러한 시스템이 다른 Turing Machine에 출력을 제공하여 입력을 얻은 경우이를 증명할 수 있다고 확신합니다.유사한 방식으로 작동하도록 설정되면 결합 된 시스템은 단일 Turing Machine과 동일한 계산 능력을 갖습니다. 계산이 상호 작용 하는 시스템이 Turing Machine보다 강력하지 않으면 대화식 계산이 비 대화식 계산보다 강력하지 않다는 설득력있는 주장이 있습니다.


그러나 상호 작용이 컴퓨터의 문제 해결 능력에 추가 될 수 있다는 비 이론적 의미가 있습니다. 컴퓨터가 잘 작동하는 방법을 모른다는 점에서 인간이하는 일이 매우 많습니다. 그러나 우리가 컴퓨터로 할 수 있다는 점에서 인간이 쓰레기로 버리는 많은 것들도 있습니다. 이 두 가지를 결합하면 reCaptcha 와 같은 프로젝트로 이어질 수 있습니다. reCaptcha 는 어려운 경우에 단어를 인간에게 인식하는 문제를 해결함으로써 효과적으로 자동으로 책을 디지털화합니다. 컴퓨터 + 인간 노동의 결과 시스템은 현재 계산 또는 인간 노동으로 달성하기에 비현실적인 결과를 달성합니다.


8

최근 ACM은 유비 쿼티 심포지엄을 개최했습니다 . 피터 웨 그너 (Peter Wegner)는 대화 형 컴퓨팅에 대한 그의 견해를 반영하는 기사를 발표했습니다.

Peter Wegner의 기사에서 발췌 한 두 가지 내용은 다음과 같습니다.

초기 튜링 머신에서 누락 된 새로운 개념 중 하나는 계산 중 환경과의 상호 작용을 수용하는 "대화식 컴퓨팅"입니다.

상호 작용 시스템은 Turing 시스템보다 강력한 컴퓨팅 형태를 수행 할 수 있으며 Turing이 제안한 종류의 사고를 수행 할 수 있습니다.

그러나 같은 심포지엄에 기사를 가지고있는 Fortnow는 Wegner의 견해에 동의하지 않는 것으로 보이며 대화식 컴퓨팅은 Turing Machines에 대한 추가 전력을 제공하지 않는다고 생각합니다.

믹스에 추가하기 위해 여전히 계산에 대해 토론하고 정의하는 것으로 보입니다. Moshe Vardi는 ACM의 통신, Vol. 2012 년 3 월 55 일

Vardi는 두 가지 새로운 알고리즘 정의에 대해보고합니다. 첫 번째는 Gurevich가 제안하고 두 번째는 Moschovakis가 제안합니다.

구레 비치는 모든 알고리즘을 추상 상태 머신으로 정의 할 수 있다고 주장했다.

반면에 모스 키바 키스는 알고리즘이 리 커서 (recursor)로 정의되었다고 주장했다.


6

IO가있는 모델이 Turing 머신보다 "강력한"것은 아니라고 생각합니다.

이론적으로 IO를 (잡음) 오라클로 볼 수 있습니다. 완벽한 오라클을 통해 컴퓨터 튜링 계산 기능을 수행 할 수 있습니다. 하지만 오라클을 어디서 구할 수 있습니까? 인간은 유일하게 "슈퍼 투어링"선택이며, 우리는 매우 신뢰할 수없는 것으로 알려져 있습니다.

이 모델에 맞는 일련의 프로그램은 대화 형 증거 지원자입니다 (예 : Isabelle / HOL , Coq ). 결정 불가능한 증거 공간을 처리하지만 적절한 사용자 입력으로 모든 증거를 찾아서 확인할 수 있습니다.


따라서 Oracle 이 포함 된 Turing Machine은 해당 기능이없는 Turing Machine과 Oracle이 포함 된 Turing Machine이 상호 작용을 모델링 할 수있는 것보다 강력합니다. 따라서 대답은 '예'인 것 같습니다.
Dave Clarke

1
@DaveClarke 완벽한 오라클을 고려한다면 그렇습니다.
라파엘

2
나는 원치 않는 (모든 형태의 오라클 또는 입력) 기계 (또는 프로그램)가 원칙적으로 모든 증거를 찾을 수 있다고 생각합니다. 두 가지 문제가 있습니다 : (1, 이론적) : 진술에 증거가 없다는 것을 결코 확인할 수 없으며, (2, 실용적) : 주어진 진술에 걸려 넘어 질 것이라는 희망으로 맹목적으로 증거를 생성하는 것은 그다지 비효율적이지 않습니다. 시도하고 싶기 때문에 증거 조수는 가이드 검색을 선호하며 증거가 존재하는 경우 "보증 된"성공을 포기합니다.
Marc van Leeuwen

2
벤이 그의 대답에서 지적했듯이, 그것을 보는 올바른 방법은 "오라클이있는 기계를 더 강력하게 다루는 것"이 ​​아닙니다. 기계 자체는 계산 가능한 일을하고 있습니다. 그것을 보는 올바른 방법은 "일부 오라클은 계산할 수 없으며, 그 오라클로부터 오라클 없이는 계산할 수없는 것을 계산할 수 있습니다"라는 것입니다. 계산 강도는 기계가 아닌 오라클에서 비롯됩니다.
Carl Mummert

오라클과 튜링 머신이 가장 강력한 것 같습니다. 왜 새로운 정의를 귀찮게합니까?
saadtaame

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