«Сложность песен» — научная статья компьютерного ученого Дональда Кнута , опубликованная в 1977 году [1] в качестве шутки о теории вычислительной сложности . Статья основывается на том, что, как она утверждает, популярные песни склонны превращаться из длинных и содержательных баллад в сильно повторяющиеся тексты с небольшим или нулевым значимым содержанием. [2] В статье утверждается, что песня длиной в N слов может быть создана, если запомнить, например, только O ( log N ) слов (« пространственная сложность » песни) или даже меньше.
Кнут пишет, что «наши древние предки изобрели концепцию рефрена », чтобы уменьшить пространственную сложность песен, что становится решающим, когда нужно запомнить большое количество песен . Лемма 1 Кнута гласит, что если N — длина песни, то рефрен уменьшает сложность песни до cN , где фактор c < 1. [ 1]
Кнут далее демонстрирует способ создания песен со сложностью O ( √ N ) , подход, «еще более усовершенствованный шотландским фермером по имени О. Макдональд ». [1]
Более изобретательные подходы приводят к созданию сложных песен , класса, известного как « m бутылок пива на стене ».
Наконец, прогресс в течение 20-го века, стимулируемый тем фактом, что «появление современных лекарств привело к потребности в еще меньшем объеме памяти», приводит к конечному улучшению: существуют произвольно длинные песни с пространственной сложностью , например , песня, определяемая рекуррентным соотношением [1]
Профессор Курт Эйземан из Университета штата Сан-Диего в своем письме в Communications of the ACM [3] еще больше улучшает последнюю, казалось бы, непобедимую оценку. Он начинает с замечания, что для практических приложений значение «скрытой константы» c в большой нотации O может иметь решающее значение для установления различия между осуществимостью и неосуществимостью: например, постоянное значение 10 80 превысит возможности любого известного устройства. Далее он замечает, что в средневековой Европе уже была известна техника , с помощью которой текстовое содержание произвольной мелодии можно было записать на основе рекуррентного соотношения , где , что дает значение большой константы O c, равное 2. Однако оказывается, что другая культура достигла абсолютной нижней границы O (0). Как говорит профессор Эйземан:
Когда путешественники с «Мэйфлауэра» впервые высадились на этих берегах, коренные американцы, гордые своими достижениями в теории хранения и извлечения информации, поначалу приветствовали чужестранцев полной тишиной. Это должно было передать их пиковые достижения в сложности песен, а именно демонстрацию того, что предел, столь низкий как c = 0, действительно достижим.
Затем утверждается, что европейцы были не готовы понять эту идею, и вожди , чтобы установить общую основу для передачи своих достижений позже, продолжили демонстрировать подход, описанный рекуррентным соотношением , где , с субоптимальной сложностью, заданной как c = 1. [ 2] [3]
Результат сложности пространства O (1) был также реализован Гаем Л. Стилом-младшим , возможно, оспоренным статьей Кнута. [4] Песня доктора Стила TELNET использовала совершенно другой алгоритм, основанный на экспоненциальной рекурсии, пародию на некоторые реализации TELNET. [5] [6] [7]
Дарра Чейви предположила, что анализ сложности человеческих песен может быть полезным педагогическим приемом для обучения студентов теории сложности. [8]
В статье «О суперполилогарифмических субэкспоненциальных функциях » профессора Алана Шермана [9] говорится, что статья Кнута была основополагающей для анализа специального класса функций.