ScholarGate
Ассистент

Проблема остановки и неразрешимость

Проблема остановки, заключающаяся в определении того, остановится ли данная программа на данном входе, является каноническим примером алгоритмически неразрешимой проблемы, и сведение к ней доказывает неразрешимость многих других проблем.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Проблема разрешима, если существует машина Тьюринга, которая правильно решает ее для всех входных данных; проблема остановки спрашивает, остановится ли произвольная машина на произвольном входе, и это прототипическая неразрешимая проблема, из которой неразрешимость других проблем доказывается путем сведения.

Scope

Эта тема охватывает точную формулировку проблемы остановки, доказательство ее неразрешимости методом диагонализации, технику сведения «многие к одному» для переноса неразрешимости, теорему Райса о нетривиальных свойствах программ и классические неразрешимые проблемы, такие как проблема разрешения (Entscheidungsproblem) и проблема тождества для групп.

Core questions

  • Почему не существует алгоритма, который определяет, останавливаются ли программы?
  • Как используются сведения для доказательства неразрешимости одной проблемы из другой?
  • Что говорит теорема Райса о разрешимости свойств программ?
  • Какие известные математические проблемы оказались неразрешимыми?

Key theories

Неразрешимость проблемы остановки
Диагональный аргумент показывает, что предположение о существовании решателя проблемы остановки приводит к противоречию, поэтому ни один алгоритм не может решить проблему остановки для всех программ и входных данных.
Сведение и перенос неразрешимости
Если известная неразрешимая проблема сводится к целевой проблеме, то целевая проблема также неразрешима, что делает сведение стандартным инструментом для установления неразрешимости.
Теорема Райса
Любое нетривиальное свойство функции, вычисляемой программой, неразрешимо, поэтому по существу никакое интересное поведенческое свойство программ не может быть алгоритмически разрешено.

Clinical relevance

Результаты неразрешимости устанавливают жесткие ограничения на автоматизированное рассуждение и анализ программ: они показывают, что совершенные универсальные инструменты для проверки завершаемости или свойств программ не могут существовать, и объясняют, почему многие проблемы в логике, алгебре и теории чисел не имеют алгоритмического решения.

History

Тьюринг и Чёрч в 1936 году показали, что проблема разрешения (Entscheidungsproblem), вопрос об алгоритме, определяющем общезначимость формул логики первого порядка, неразрешима, при этом проблема остановки лежит в основе аргумента Тьюринга. Райс обобщил это явление в 1953 году, а неразрешимость впоследствии была установлена для конкретных проблем, таких как проблема тождества для групп Новиковым и десятая проблема Гильберта Матиясевичем.

Key figures

  • Alan Turing
  • Alonzo Church
  • Henry Gordon Rice
  • Pyotr Novikov

Related topics

Seminal works

  • sipser2013
  • turing1936
  • rogers1987

Frequently asked questions

Почему более быстрый компьютер не может решить проблему остановки?
Неразрешимость не зависит от скорости или памяти: диагональный аргумент исключает любой алгоритм вообще, независимо от того, сколько времени ему отведено. Проблема остановки неразрешима в принципе, а не просто непрактична.
Можем ли мы когда-нибудь сказать, остановится ли программа?
Часто да, для конкретных программ, путем анализа или их выполнения. Невозможно создать единый алгоритм, который правильно отвечал бы на этот вопрос для каждой программы и входных данных. Поэтому практические средства проверки завершаемости успешны только для ограниченных классов или могут не давать ответа.

Methods for this concept

Related concepts