Тому що багато справді практичних проблем - це проблема зупинки у маскуванні. Рішення для них вирішує проблему зупинки.
Ви хочете компілятор, який знайде найшвидший машинний код для даної програми? Власне проблема зупинки.
У вас JavaScript з деякими змінними на високому рівні безпеки, а деякі - з низьким рівнем безпеки. Ви хочете переконатися, що зловмисник не може отримати інформацію про високу безпеку. Це також лише проблема зупинки.
У вас є аналізатор для вашої мови програмування. Ви змінюєте його, але хочете переконатися, що він все ще розбирає всі програми, якими раніше користувався. Власне проблема зупинки.
У вас є антивірусна програма, і ви хочете перевірити, чи виконує вона коли-небудь шкідливу інструкцію. Насправді лише проблема зупинки.
Що стосується прикладу вікіпедії, так, ви можете моделювати сучасний комп'ютер як машину з кінцевим станом. Але з цим є дві проблеми.
Кожен комп'ютер був би різним автоматом, залежно від точної кількості бітів оперативної пам’яті. Тому це не корисно для вивчення конкретного фрагмента коду, оскільки автомат залежить від машини, на якій він може працювати.
Якщо у вас є n біт оперативної пам’яті, вам знадобиться стану. Отже, для вашого сучасного комп’ютера 8 Гб це 2 32000000000 . Це число настільки велике, що вольфрам альфа навіть не знає, як його інтерпретувати. Коли я роблю 2 10 9, він говорить, що він має 300000000 десяткових цифр. Це, очевидно, багато для зберігання в звичайному комп’ютері.2n2320000000002109300000000
Проблема зупинки дозволяє нам міркувати про відносну складність алгоритмів. Це дає нам знати про те, що існують деякі алгоритми, які не існують. Іноді ми можемо лише здогадатися про проблему, і ніколи не дізнаємось, чи вирішили ми її.
Якби у нас не було проблеми із зупинкою, ми все одно шукатимемо магічний алгоритм Гільберта, який вводить теореми та виводить, правдиві вони чи ні. Тепер ми знаємо, що можемо перестати шукати, і можемо докласти зусиль для пошуку евристики та другого найкращого способу вирішення цих проблем.
ОНОВЛЕННЯ: Просто для вирішення декількох питань, порушених у коментарях.
@Tyler Fleming Cloutier: "Безглузда" проблема виникає у доказі того, що проблема зупинки не може бути вирішена, але те, що є в основі нерозбірливості, насправді має нескінченний простір пошуку. Ви шукаєте об’єкт із заданим властивістю, і якщо такого не існує, немає ніякого способу дізнатися, коли ви закінчите.
Складність проблеми може бути пов'язана з кількістю її кількісних показників. Намагаючись показати, що існує ( ) об’єкт з довільною властивістю, вам потрібно шукати, поки не знайдете його. Якщо такої немає, то в цілому немає способу це знати. Довести, що всі об'єкти ( ∀ ) мають властивість, важко, але ви можете шукати об’єкт без властивості, щоб спростувати його. Чим більше чергувань між forall і існує, тим складніше проблема.∃∀
Докладніше про це дивіться в Арифметичній Ієрархії . Все, що вище можна визначити, хоча рівень 1 напіврозбірливий.Σ00=Π00
Можна також показати, що існують нерозв'язні проблеми без використання безглуздого парадокса, як, наприклад, проблема зупинки або парадоксальності брехунів. Машина Тьюрінга може бути закодована за допомогою рядка бітів, тобто цілого числа. Але проблема може бути закодована як мова, тобто підмножина цілих чисел. Відомо, що між набором цілих чисел і безліччю всіх підмножин цілих чисел не існує біекція. Тому повинні бути деякі проблеми (мови), які не мають пов'язаної машини Тьюрінга (алгоритм).
@Brent: так, це визнає, що це можна вирішити для сучасних комп'ютерів. Але це рішуче для конкретної машини. Якщо ви додасте USB-накопичувач з дисковим простором або можливістю зберігання в мережі чи щось інше, то машина змінилася і результат все ще не втримується.
Слід також сказати, що в алгоритмі буде багато разів, коли алгоритм говорить, що "цей код зупиниться", оскільки в ньому код вийде з ладу і не вистачить пам'яті, а додавання одного додаткового біта пам'яті призведе до коду досягти успіху і дати інший результат.
Річ у тому, що машини Тьюрінга не мають нескінченної кількості пам'яті. Ніколи не буває часу, коли на стрічку записується нескінченна кількість символів. Натомість машина Тьюрінга має "необмежену" пам'ять, це означає, що ви можете постійно отримувати більше джерел пам'яті, коли вам це потрібно. Комп'ютери такі. Ви можете додати оперативну пам’ять, USB-накопичувачі, жорсткі диски або мережевий накопичувач. Так, у вас не вистачає пам’яті, коли у вас залишається атомів у Всесвіті. Але наявність необмеженої пам’яті - набагато корисніша модель.