Оценка сложности песен

The Complexity of Songs

Автор: Дональд Е. Кнут
Перевод: Андрей В. Макуха
Источник: Communications of the ACM
Материал предоставил: RSDN Magazine #4-2007
Опубликовано: 12.11.2007
Версия текста: 1.0
Оценка сложности песен
Лемма 1
Доказательство
Лемма 2
Доказательство
Теорема 1
Доказательство
Теорема 2
Доказательство
Библиография
Примечания переводчика

ПРИМЕЧАНИЕ

Исследование, результаты которого здесь излагаются, было отчасти поддержано грантом Национального института богатства в $262144.

Оценка сложности песен

Каждый день приносит новые доказательства тому, что понятия информатики применимы к сферам жизни, имеющим очень отдаленное или не имеющим никакого отношения к компьютерам. Цель данного обозрения – продемонстрировать, как важные свойства популярных песен наилучшим образом понимаемы в терминах современной теории вычислительной сложности.

Известно [3], что почти всем песням длины n требуется текст длины ~ n. Это, однако, накладывает значительные требования к объему вашей памяти, если следует изучить множество песен; поэтому наши древние предки изобрели понятие припева [14]. Когда песня имеет припев, то, как показано в следующей лемме, ее сложность запоминания может быть уменьшена до cn, где c < 1.

Лемма 1

Пусть S – песня, содержащая m куплетов длины V и припев длины R, поющийся в начале, в конце и между соседними куплетами. Тогда сложность запоминания песни S составляет (V / (V + R))n + O(1) для фиксированных V и R при m → ∞.

Доказательство

Длина S при пении составляет

n = R + (V + R)m										(1)

в то время как ее сложность запоминания

c = R + Vm.										(2)

Из Закона дистрибутивности и Закона коммутативности [4], имеем:

c = n – (V + R)m + mV									(3)
  = nVmRm + Vm 
  = nRm.

Лемма доказана.

(Данную лемму можно обобщить для случая куплетов переменной длины V1, V2, …, Vm, если последовательность {Vk} удовлетворяет некоторому условию гладкости. Детали появятся в будущем докладе.)

Значительное улучшение леммы 1 было сделано в средневековых еврейских общинах Европы, где неизвестному автору удалось уменьшить сложность до O(sqrt(n)). Его песня «Эхад ми йодэа» или «Кто знает один?» все еще традиционно поется ближе к концу седер-песаха(1), по сообщениям, чтобы не дать детям уснуть [6]. Она состоит из припева и 13-ти куплетов v1, …, v13, где за vk следуют vk-1v2v1 перед тем, как повторяется припев. Следовательно, m куплетов текста приводят к (1/2)m2 + O(m) куплетов пения. Схожая песня под заглавием «Green Grow the Rushes O» или «The Dilly Song» часто поется в рождественское время в Западной Британии, однако имеет только 12 куплетов (см. [1], где цитируются бретонская, фламандская, немецкая, греческая, средневеково-латинская, моравийская, а также шотландская версии).

Коэффициент sqrt(n) был далее улучшен шотландским фермером С. МакДональдом(2), чья конструкция описывается в лемме 2.

ПРИМЕЧАНИЕ

В действительности, некоторые ученые оспаривают первенство МакДональда; Питер Кеннеди ([8], стр. 676) утверждает, что «I Bought Myself a Cock» и подобные фермерские песни на самом деле значительно старше.

Лемма 2

Для всех целых положительных чисел α и λ, существует песня со сложностью (20 + λ + α)sqrt(n / (30 + 2λ)) + O(1).

Доказательство

Рассмотрим следующую схему [9].

       V0  = "Old MacDonald had a farm, " R1					(4)
       R1  = "Ee-igh, "2 "oh! "
    R2(x)  = V0 "And on this farm he had some " x ", " R1 "With a "
 U1(x, x′) = x ", " x" here and a " x ", " x" there; "
 U2(x, y)  = x "here a " y ", "
 U3(x, x′) = U1(x, x′) U2(ε, x) U2("t", x′) U2("everyw", x ", " x′)
       Vk  = U3(Wk, Wk′) Vk-1 для k ≥ 1

где

W1 = "chick",   W2 = "quack",								(5)
W3 = "gobble",  W4 = "oink",
W5 = "moo",     W6 = "hee",

и

Wk′ = Wk, для всех k ≠ 6; W6 = "haw".								(6)

Песня степени m определяется как

Y0  = ε											(7)
Ym  = R2(Wm″) Vm Ym-1, для m ≥ 1,

где

W1″ = "chicks",   W2″ = "ducks",							(8)
W3″ = "turkeys",  W4″ = "pigs",
W5″ = "cows",     W6″ = "donkeys".

Длина Ym составляет

n  = 30m2 +153m + 4(ml1 + (m-1)l2 + … + lm) + (a1 + … + am)			(9)

В то время как длина соответствующей схемы

c = 20m + 211 + (l1 + … + lm) + (a1 + … + am).					(10)

Здесь lk = |Wk| + |Wk′| и ak = |Wk″|, где под |x| подразумевается длина строки x. Результат непосредственно следует из предположения, что lk = λ и ak = α для всех больших k. □

Обратите внимание, что коэффициент (20 + λ + α) / sqrt(30 + 2λ) достигает своего минимального значения при

λ = max(1, α-10)										(11)

для фиксированного α. Тогда, если животные с фермы МакДональда имеют длинные названия, им следует издавать звуки слегка покороче.

Схожие результаты были получены франкоканадским орнитологом, назвавшим свою песенную схему «Alouette» [2, 15]; и, приблизительно в то же время, тирольским мясником, чья схема [5] популярно называется «Ist das nicht ein Snitzelbank?». Несколько других накопительных песен были собраны Питером Кеннеди [8], включая «The Mallard» с 17-ю куплетами и «The Barley Mow» с 18-ю. Более поздние сочинения, как «There’s a Hole in the Bottom of the Sea» и «I Know an Old Lady Who Swallowed a Fly», к сожалению, имеют сравнительно большие коэффициенты.

Фундаментальное усовершенствование было заявлено в Англии в 1824, когда истинная любовь Д. Джека дала ему в совокупности 12 танцующих леди, 22 а-скачущих лорда, 30 барабанящих барабанщиков, 36 трубящих трубачей, 40 а-доящих девушек, 42 а-плывущих лебедя, 40 золотых колец, 36 черных дроздов, 30 французских курочек, 22 черепаховых голубя и 12 куропаток в грушевых деревьях на протяжении 12 дней Рождества(3) [11]. Все это составило (1/6)m3 + (1/2)m2 + (1/3)m подарков за m дней, так что сложность, казалось, должна была равняться O(n1/3); однако вскоре было указано [10], что такая оценка была основана на n подарках, вместо n единиц напева. В конце концов, была установлена сложность sqrt(n/log n) (см. [7]).

Таким образом, куропатки в грушевых деревьях улучшили оценку только на 1/sqrt(log n); однако значение этого открытия нельзя недооценивать, так как благодаря ему была доказана возможность преодоления барьера в n0,5. Следующий большой прорыв был, фактически, достигнут благодаря необыкновенно простому обобщению куропаточной схемы. Первой обнаружившей класс песен, известных как «m бутылок пива на стене»(4), была Д. В. Блатц из Милуоки, штат Висконсин; ее элегантная конструкция появилась в следующем доказательстве первого из основных результатов теории.

ПРИМЕЧАНИЕ

Снова-таки, Кеннеди ([8], стр. 631) выражает притязания на первенство англичан, в этом случае из-за песни «I’ll drink m if you’ll drink m + 1». Однако англичане начинают в m = 1 и заходят не далее чем m = 9, возможно потому, что они действительно пьют пиво, вместо того, чтобы позволять бутылкам упасть.

Теорема 1

Существует песня сложности O(log n).

Доказательство

Рассмотрим схему:

Vk = T(k) B W ", "									(12)
     T(k) B "; "
     "If one of those bottles should happen to fall, "
     T(k-1) B W "."

где

B = " bottles of beer",									(13)
W = " on the wall",

и где T(k) – перевод целого числа k на английский язык. Требуемый объем записи T(k) для всех k < 10m составляет O(m), так как мы можем определить

T(q∙10m+r) = T(q) " times 10 to the " T(m) " plus " T(r)				(14)

для 1≤ q ≤ 9 и 0 ≤ r < 10m-1.

Следовательно, определенные следующим образом песни Sk

S0 = ε, Sk = VkSk-1 для k ≥ 1								(15)

имеют длину nk log k, в то время как длина определяющей их схемы составляет O(log k); что и требовалось доказать. □

Теорема 1 была лучшим известным результатом до недавнего времени,

ПРИМЕЧАНИЕ

Основным конкурентом на это звание была песня «This old man, he played m, he played knick-knack ...»(5).

вероятно потому, что она удовлетворяла всем практическим требованиям генерации песен с ограниченной памятью. В сущности, 99 бутылок пива казались более чем достаточными в большинстве случаев.

Однако распространение современных наркотиков привело к потребности в еще меньшей памяти, и в результате недавно было опубликовано предельное усовершенствование теоремы 1:

Теорема 2

Существует сколь угодно длинная песня сложности O(1).

Доказательство

(согласно Casey and the Sunshine Band(6))

Рассмотрим песню Sk определенную выражением (15), при условии что

Vk = "That’s the way, " U "I like it, " U						(16)
U  = "uh huh, " "uh huh"  

для всех k.

Вопрос изучения сложности недетерминированных песен остается открытым.

Признательность Я хотел бы поблагодарить Д. М. Кнут и Д. С. Кнут за то, что подсказали мне тему для данной статьи.

Библиография

[1] Rev. S. Baring-Gould, Rev. H. Fleetwood Sheppard, and F.W. Bussell, Songs of the West (London: Methuen, 1905), 23, 160-161.

[2] Oscar Brand, Singing Holidays (New York: Alfred Knopf, 1957), 68-69.

[3] G.J. Chaitin, «On the length of programs for computing finite binary sequences: Statistical considerations», J. ACM 16 (1969), 145-159.

[4] G. Chrystal, Algebra, an Elementary Textbook (Edinburgh: Adam and Charles Black, 1886), Chapter 1.

[5] A. Dörrer, Tiroler Fasnacht (Wien, 1949), 480 pp.

[6] Encyclopedia Judaica (New York: Macmillan, 1971), v. 6 p. 503; The Jewish Encyclopedia (New York: Funk and Wagnalls, 1903); articles on Ehad Mi Yode'a.

[7] U. Jack, «Logarithmic growth of verses», Acta Perdix 15 (1826), 1-65535.

[8] Peter Kennedy, Folksongs of Britain and Ireland (New York: Schirmer, 1975), 824 pp.

[9] Norman Lloyd. The New Golden Song Book (New York: Golden Press, 1955), 20-21.

[10] N. Picker, «Once señores brincando al mismo tiempo», Acta Perdix 12 (1825), 1009.

[11] ben shahn, a partridge in a pear tree (New York: the museum of modern art, 1949), 28 pp. (unnumbered).

[12] Cecil J. Sharp, ed., One Hundred English Folksongs (Boston: Oliver Ditson, 1916), xlii.

[13] Christopher J. Shaw, «that old favorite, Apiapt/a Christmastime algorithm», with illustrations by Gene Oltan, Datamation 10, 12 (December 1964), 48-49. Reprinted in Jack Moshman, ed., Faith, Hope and Parity (Washington, D.C.: Thompson, 1966), 48-51.

[14] Gustav Thurau, Beiträge zur Geschichte und Charakteristik des Refrains in der französischen Chanson (Weimar: Felber, 1899), 47 pp.

[15] Marcel Vigneras, ed., Chansons de France (Boston: D.C. Heath, 1941), 52 pp.

Примечания переводчика

ПРИМЕЧАНИЕ

(1) Седер-песах – ритуальный ужин; главное событие семидневного еврейского праздника песах.

(2) Инициалы шотландского фермера взяты автором из разобранной далее песни, в которой поется «Old McDonald had a farm…», или «У старого МакДональда была ферма».

(3) Аллюзия на еще одну английскую накопительную рождественскую песню «The Twelve Days of Christmas», в которой в каждом куплете перечисляются подарки, полученные в один из 12 дней Рождества. Буква «а» добавляется к соответствующим глаголам в оригинальном тексте песни для сохранения ритмики. Имени Д. Джек – в тексте песни нет, и оно, скорей всего, происходит от «Дяди Джека» (Uncle Jack).

(4) Имеющаяся ввиду американская песня «99 Bottles of Beer» известна среди программистов благодаря собранию компьютерных программ, генерирующих ее текст.

(5) «This Old Man»британская детская песенка.

(6) Более популярное написание названия группы – KC and the Sunshine Band. В 1975 она дважды возглавляла американский хит-парад со своей песней «That’s the Way (I Like It)», часть лирики которой автор статьи и рассматривает в теореме 2.


Эта статья опубликована в журнале RSDN Magazine #4-2007. Информацию о журнале можно найти здесь