Тезис Кобэма , также известный как тезис Кобэма–Эдмондса (названный в честь Алана Кобэма и Джека Эдмондса ), [1] [2] [3] утверждает, что вычислительные задачи могут быть реально решены на некотором вычислительном устройстве только в том случае, если они могут быть вычислены за полиномиальное время ; то есть если они лежат в классе сложности P. [4] Говоря современным языком, он определяет разрешимые задачи с классом сложности P.
Формально, сказать, что задача может быть решена за полиномиальное время, значит сказать, что существует алгоритм, который, имея на входе n -битный экземпляр задачи, может выдать решение за время O( n c ), используя нотацию big-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, Paths, trees, and flowers]).