실제로 많은 실질적인 문제가 변장에서 멈추는 문제이기 때문입니다. 그들에 대한 해결책은 정지 문제를 해결합니다.
주어진 프로그램에 대해 가능한 가장 빠른 기계 코드를 찾는 컴파일러를 원하십니까? 실제로 정지 문제.
보안 수준이 높은 일부 변수와 보안 수준이 낮은 일부 변수가있는 JavaScript가 있습니다. 공격자가 높은 보안 정보를 얻을 수 없도록해야합니다. 이것은 또한 정지 문제입니다.
프로그래밍 언어에 대한 파서가 있습니다. 변경했지만 여전히 사용했던 모든 프로그램을 구문 분석해야합니다. 실제로 정지 문제.
바이러스 백신 프로그램이 있으며 악성 프로그램이 실행되는지 확인하려고합니다. 실제로 정지 문제 만 있습니다.
Wikipedia 예제의 경우 최신 컴퓨터를 유한 상태 머신으로 모델링 할 수 있습니다. 그러나 이것에는 두 가지 문제가 있습니다.
RAM의 정확한 비트 수에 따라 모든 컴퓨터는 다른 자동 장치입니다. 따라서 자동 코드는 실행할 수있는 시스템에 따라 다르므로 특정 코드를 검사하는 데 유용하지 않습니다.
당신은 필요할 것 당신이 RAM의 N 비트가있는 경우 상태. 현대 8GB 컴퓨터의 경우 2 32000000000 입니다. 이것은 wolfram alpha가 그것을 해석하는 방법조차 모를 정도로 너무 큰 숫자입니다. 내가 2 10 9 할 때 그것은 300000000 십진수 가 있다고 말합니다 . 이것은 보통 컴퓨터에 저장하기에 상당히 큰 것입니다.2엔2320000000002109300000000
Halting 문제는 알고리즘의 상대적 어려움에 대해 추론 할 수있게합니다. 그것은 존재하지 않는 알고리즘이 있다는 것을 알려줍니다. 때로는 우리가 할 수있는 일은 문제를 추측하고 해결했는지 알 수 없습니다.
정지 문제가 없다면, 이론을 입력하고 그것이 사실인지 아닌지를 출력하는 힐버트의 마법 알고리즘을 계속 찾고있을 것입니다. 이제 우리는 우리가 찾는 것을 멈출 수 있다는 것을 알고 있으며, 이러한 문제를 해결하기위한 휴리스틱과 두 번째 최상의 방법을 찾기 위해 노력할 수 있습니다.
업데이트 : 의견에서 제기 된 몇 가지 문제를 해결하기 위해.
@Tyler Fleming Cloutier : "무의미한"문제는 정지 문제가 결정 불가능하다는 증거에서 발생하지만 결정 불가능의 핵심은 실제로 무한한 검색 공간을 갖는 것입니다. 주어진 속성을 가진 객체를 찾고 있는데, 존재하지 않는 경우 언제 완료했는지 알 수있는 방법이 없습니다.
문제의 어려움은 가지고있는 수량 자 수와 관련이있을 수 있습니다. 임의의 속성을 가진 객체 가 존재 함을 나타내려고 ( ) 찾을 때까지 검색해야합니다. 존재하지 않는 경우 (일반적으로)이를 알 수있는 방법이 없습니다. 모든 객체 ( ∀ )에 속성이 있음을 증명하는 것은 어렵지만 속성이없는 객체를 검색하여 반증 할 수 있습니다. forall과 존재 사이에 교대가 많을수록 문제가 더 어려워집니다.∃∀
이에 대한 자세한 내용은 산술 계층을 참조하십시오 . 레벨 1은 반 결정 가능하지만 초과하는 것은 결정할 수 없습니다.Σ00= Π00
Halting 문제 또는 Liars 역설과 같은 무의미한 역설을 사용하지 않고 결정 불가능한 문제가 있음을 보여줄 수도 있습니다. 튜링 머신은 비트 열, 즉 정수를 사용하여 인코딩 할 수 있습니다. 그러나 문제는 언어, 즉 정수의 하위 집합으로 인코딩 될 수 있습니다. 정수 세트와 정수의 모든 서브 세트 세트 사이에 삭감이없는 것으로 알려져 있습니다. 따라서 관련 Turing 머신 (알고리즘)이없는 몇 가지 문제 (언어)가 있어야합니다.
@ 브렌트 : 예, 이것은 현대 컴퓨터에서 결정할 수 있음을 인정합니다. 그러나 특정 머신에 따라 결정될 수 있습니다. 디스크 공간이있는 USB 드라이브 또는 네트워크 또는 기타 다른 곳에 저장할 수있는 USB 드라이브를 추가하면 시스템이 변경되어 결과가 여전히 유지되지 않습니다.
또한이 코드가 실패하고 메모리가 부족하기 때문에 알고리즘이 "이 코드가 중지 될 것"이라고 말하는 횟수가 여러 번있을 것이라고 말해야합니다. 그리고 메모리의 단일 비트를 추가하면 코드가 성공하고 다른 결과를냅니다.
문제는 Turing 머신에 무한한 메모리가 없다는 것입니다. 테이프에 무한한 양의 기호가 기록되는 시간은 없습니다. 대신 튜링 머신에는 "언 바운드"메모리가있어 필요할 때 더 많은 메모리 소스를 계속 확보 할 수 있습니다. 컴퓨터는 이렇습니다. RAM 또는 USB 스틱, 하드 드라이브 또는 네트워크 스토리지를 추가 할 수 있습니다. 그렇습니다. 우주의 원자가 부족하면 메모리가 부족합니다. 그러나 무제한 메모리를 갖는 것이 훨씬 유용한 모델입니다.