шагов, чтобы сложить всю колоду по порядку. Формулу сумы, которой мы воспользовались, обычно приписывают Гауссу; поскольку выполняется оценка
Рис. 11.15.
Задача о коммивояжереРис. 11.16.
Задача о подграфеНа уровне эффективной вычислимости мы видим, что поиск решения задачи о коммивояжере сводится к проверке всех возможных порядков городов (ведь ясно, что коммивояжер может посещать города в любом порядке). Этих порядков всего
Мы можем оценить это число по формуле Стирлинга:
Ясно, что задачу нельзя решить (очевидным способом) за полиномиальное число шагов. Поэтому мы говорим, что это задача (потенциально)
Еще одна знаменитая задача экспоненциальной сложности —
11.7.2 Сравнение полиномиальной и экспоненциальной сложности
С точки зрения теоретических компьютерных наук довольно интересно знать, какова сложность задачи — полиномиальная или экспоненциальная, ведь именно эта информация указывает на то, насколько затратным будет решение с точки зрения вычислений. В области компьютерных игр (к примеру) она позволяет сказать: будет ли некоторое действие выполняться с реалистичной скоростью или растянется во времени.
В дальнейшем мы ограничим наше внимание на так называемых «задачах принятия решения». Ответом в таких задачах может быть только «да» или «нет». Примером задачи, которая
11.7.3 Полиномиальная сложность
Говорят, что задача относится к классу P, если существуют многочлен p и (детерминистская) машина Тьюринга (ДТМ), для которых любой набор вводимых данных объема n приводит к остановке с ответом «да» или «нет» не более чем за p шагов (машины Тьюринга мы обсуждали в разд. 7.1). Слово «детерминистская» используется для того, чтобы указать на эффективно вычислимый процесс, в котором не прибегают к угадыванию (в эти идеи мы углубимся ниже в разд. 11.7.5).
Считается, что задачи класса P
легко решаемы. Задачи, которые к нему не относятся, для которых нет полиномиального алгоритма решения, по определению11.7.4 Утверждения, которые можно проверить за полиномиальное время
Для дальнейшего нам важно заметить, что для некоторых самых по себе сложных задач
Скажем, задачу разложить данное n-значное натуральное число N на простые множители принято считать экспоненциально сложной (см. [SCL]). Правда, этот факт достоверно не установлен. Более точно, сложность (согласно наилучшему известному на сегодняшний день алгоритму) составляет примерно