Я знаком с "теорией сложности" как с одним из разделов теории алгоритмов, изучающим различные вычислимые функции с точки зрения количества ресурсов (в основном таких, как время и объём памяти), которые машины тратят на их вычисление. В принципе, понятно, что оптимизация компьютерных программ по минимизации объёма памяти и быстродействию во многом зависит от искусства программистов, эти программы пишуших. Однако нельзя не признать, что зачастую в самих функциях заложена некоторая "внутренняя сложность", не позволяющая вычислять их посредством малого количества элементарных операций при большой длине входных данных.
К примеру, рассмотрим компьютер (с потенциально бесконечной памятью, в теоретических исследованиях обычно фигурирует машина Тьюринга), которому надо вычислять функции
и
. Аргументы функций --- натуральные числа (в десятичной или в двоичной записи), значения тоже, естественно, принадлежат
. Для функции
существует очень быстрая программа, которая просто копирует входные данные на устройство вывода, не производя никаких дополнительных преобразований. Время её работы на всех достаточно больших аргументах
измеряется величиной порядка
шагов. Между тем
любая программа, вычисляющая функцию
, при достаточно больших
будет работать значительно дольше, ибо длина результата вычислений уже имеет порядок
и, чтобы вывести этот результат (напечатать на принтере или занести на ленту машины Тьюринга), требуется время того же порядка. В этой ситуации говорят, что вычислительная сложность функции
больше, чем вычислительная сложность функции
. И такая вот сложность является основным предметом рассмотрения теории, о которой спрашивает автор темы.
Должен признаться, что хоть я сам и занимаюсь теорией вычислимости, но всегда больше интересовался абстрактной её частью (иерархии, степени вычислимости различных типов, вычислимые модели). А с теорией сложности, имеющей более прикладной характер (хотя там есть довольно впечатляющие своей красотой чисто теоретические факты, вроде теоремы Блюм об ускорении) знаком весьма поверхностно. В частности, сказать точно, что понимается под "степенью сложности", я сейчас не возьмусь (да и, скорее всего, их там известно много разновидностей). Отмечу лишь, что в последние 30-40 лет теория сложности весьма популярна и востребована. Достаточно упомянуть тот факт, что одна из семи проблем тысячелетия, а именно, проблема "
?", относится именно к ней.
Некоторые милые сердцу специалиста по абстрактной вычислимости факты, которые можно отнести к теории сложности, есть
здесь, стр. 111 -- 130 (это то, что я сам читаю первокурсникам в НГУ). Не сомневаюсь, что в сети можно найти значительно более полные и подробные учебные материалы, относящиеся к сложности вычислений. Оставляю возможность дать соответствующие ссылки специалистам, лучше меня знакомым с обсуждаемым предметом. Таких специалистов здесь на форуме немало и они, без сомнения, сделают это лучше, чем я.