Таблица 5.2
Зависимость размеров задач от
быстродействия ЭВМ
Функция На На ЭВМ в На ЭВМ в
временной современной 100 раз 1000 раз
сложности ЭВМ более более
быстрых быстрых
n n
1
100n
1
1000n
1
n
2
n
2
10n
2
31.6n
2
n
3
n
3
4.64n
3
10n
3
n
5
n
4
2.5n
4
3.98n
4
2
n
n
5
n
5
+ 6.64 n
5
+ 9.97
3
n
n
6
n
6
+ 4.19 n
6
+ 6.29
Но скорость новой машины в k раз выше, следовательно T
new
(m) =
1
k
T
old
(m). Отсюда
T
old
(n) =
1
k
T
new
(m),
откуда можно получить соотношение m = f(n) для определения нового размера
задачи, решаемой за то же время на новой технике.
Примеры роста размеров задач при увеличении скорости компьютера для некото-
рых полиномиальных и экспоненциальных зависимостей функции временной слож-
ности приведены в таблице 5.2. Эти данные получены для задач, решаемых за один
час машинного времени, если быстродействие ЭВМ возрастает в 100 или 1000 раз по
сравнению с современными компьютерами.
Таким образом, таблицы 5.1, 5.2 наглядно демонстрируют некоторые причины,
по которым полиномиальные алгоритмы считаются более предпочтительными по
сравнению с экспоненциальными.
Сколько вычислений должна потребовать задача, чтобы мы сочли ее труднореша-
емой? Общепринято, что если задачу нельзя решить быстрее, чем за полиномиаль-
ное время, то ее следует рассматривать как труднорешаемую. Тогда при такой схеме
классификации задачи, решаемые алгоритмами полиномиальной сложности, будут
легко решаемыми. Но нужно иметь в виду, что хотя экспоненциальная функция
(например, 2
n
) растет быстрее любой полиномиальной функции от n, для неболь-
ших значений n алгоритм, требующий O(2
n
) времени, может оказаться эффективнее
многих алгоритмов с полиномиально ограниченным временем работы. Например,
функция 2
n
не превосходит n
10
до значения n, равного 59. Тем не менее, скорость ро-
ста экспоненциальной функции столь стремительна, что обычно задача называется
труднорешаемой, если у всех решающих ее алгоритмов сложность по меньшей мере
экспоненциальна.
5.2 Практическая оценка временной сложности
Любая программа состоит из элементов трех типов: последовательно выполняю-
щихся участков, циклов и условных операторов, каждый из которых, в свою очередь,
может иметь сложную структуру и представлять собой такие же элементы. Очевид-
но, что время работы последовательного участка равно сумме времени выполнения
110