Тезис Кобэма , также известный как тезис Кобэма-Эдмондса (названный в честь Алана Кобэма и Джека Эдмондса ), [1] [2] [3] утверждает, что вычислительные задачи могут быть реально решены на некотором вычислительном устройстве, только если они могут быть вычислены за полиномиальное время. ; то есть, если они принадлежат классу сложности P. [4] Говоря современным языком, он идентифицирует решаемые проблемы с классом сложности P .
Формально сказать , что проблема может быть решена за полиномиальное время, — значит сказать, что существует алгоритм, который, учитывая n -битный экземпляр проблемы в качестве входных данных, может дать решение за время O( nc ), используя большой Обозначение -O , где c является константой, которая зависит от проблемы, но не от конкретного случая проблемы.
Статья Алана Кобэма 1965 года под названием «Внутренняя вычислительная сложность функций» [5] является одним из первых упоминаний концепции класса сложности P , состоящего из задач, решаемых за полиномиальное время. Кобэм предположил, что этот класс сложности является хорошим способом описания набора реально вычислимых задач.
В статье Джека Эдмондса 1965 года «Тропы, деревья и цветы» [6] также приписывают определение P как решаемых проблем. [7]
Хотя диссертация Кобэма является важной вехой в развитии теории вычислительной сложности , она имеет ограничения применительно к практической осуществимости алгоритмов. По сути, в тезисе говорится, что « P » означает «легкий, быстрый и практичный», а «не в P » означает «тяжелый, медленный и непрактичный». Но это не всегда так, потому что этот тезис абстрагирует некоторые важные переменные, которые на практике влияют на время выполнения:
Все три взаимосвязаны и представляют собой общие претензии к анализу алгоритмов , но они особенно применимы к тезису Кобэма, поскольку он явно заявляет о практичности. Согласно тезису Кобэма, задача, для решения которой лучший алгоритм требует n 200 инструкций, считается осуществимой, а задача с алгоритмом, требующим 2 0,00001 n инструкций, невыполнимой, даже если с помощью первого алгоритма никогда не удастся решить задачу размера n = 2. , тогда как экземпляр последней задачи размера n = 10 6 можно было решить без труда. В областях, где практические задачи имеют миллионы переменных (например, исследование операций или автоматизация электронного проектирования ), даже алгоритмы O( n 3 ) часто непрактичны. [9]
Отдельное соображение состоит в том, что во многих случаях часто довольствуются приближенными решениями, если точное решение найти невозможно. Например, многие подозревают, что задача коммивояжера неразрешима точно за полиномиальное время (она NP-трудна ), но хорошие решения можно получить за полиномиальное время с помощью таких методов, как алгоритм Кристофидеса .
Задача считается выполнимой , если ее можно решить за полиномиальное время (как впервые было сказано Эдмондсом [26] [1965, «Пути, деревья и цветы]»).