О длине вычислений арифметических программ
|
Арифметические функции |
Представляющие формулы обобщенной логики |
y = x + 2 |
y0
x0 Ù
y1
`x1
Ù
Çi=2,w
yi
xi +
Çj=1,
i-1 xj |
y = x + 3 |
y0
`x0
Ù
y1
x0 +`x1
Ù
Çi=2,w
yi
xi +(x1 + x0`x1) Çj=2,
i-1 xj |
Не всякая двоичная
арифметическая функция представима обобщенной формулой. В частности, не
представимо умножение.
Базисные операторы
программ представимы обобщенными формулами. Поэтому возникает вопрос о
представлении функции, вычисляемой программой p, обобщенной логической формулой.
Исходя из этого, построим по параметрическому выражению Rp¢ обобщенную формулу, определив
вначале соответствующую формулу для его каждого дизъюнктивного члена, а затем
дизъюнктивно объединив их. Поэтому наши построения будут касаться каждого
параметрического выражения R¢i, i = 1, 2, …, m.
Во-первых, несколько
преобразуем каждое выражение R¢i, сделав его более удобным для
последующего построения. Если в выражении R¢i оператор s(y) встречается подряд l раз, где у
– рабочая переменная, то заменим его на оператор sl(y). Аналогично, если в выражении R¢i оператор 0(y) встречается подряд l раз, где у
– рабочая переменная, то заменим эту последовательность одним оператором 0(y).
Дальнейшее построение
логической формулы заключается в замене арифметических и логических операторов,
из которых состоят автоматные буквы регулярного выражения, на представляющие их
обобщенные формулы. В качестве переменных используемых при этом логических
формул будем использовать так называемые метапеременные.
С этой целью вначале заменим все рабочие переменные y1, y2,
…,
ym в параметрическом выражении на
метапеременные соответственно a1, a2, …, am. Считаем, что эти метапеременные
порождены рабочими переменными и поэтому назовем их рабочими. Входные переменные мы не заменяем, для единообразия
считая их также метапеременными, которые назовем входными. Если необходимо подчеркнуть, что метапеременная есть
входная переменная, это будет оговорено специально.
Отметим следующее.
Регулярное выражение Rp включает в качестве компонентов
арифметические и логические операторы, содержащие переменные, областью определения
которых являются не отрицательные целые числа.
В точности так же, как мы
представляем двоичные переменные счетными последовательностями булевских
переменных, считаем, что каждая метапеременная a представима в виде
последовательности a1a2 … ai … логических метапеременных.
Дальнейшее преобразование
параметрического выражения приводит к появлению логических формул, которые
имеют в качестве аргументов метапеременные.
Введем следующие
соглашения.
1. Пусть a есть метапеременная и ее булевское
представление выглядит так: a0a1a2 … am … . Тогда 0(a)обозначим
обобщенную формулу Çi=0,w`ai. Очевидно, что формула Çi=0,w`ai представляет арифметический оператор
0(a). В последующем, если это необходимо,
будем оговаривать особо, когда 0(a)
понимается как арифметический оператор, а когда как обобщенная формула.
2. Если a = a0a1a2 …
ai … ., b = b0b1b2 …
bi … . - это метапеременные, то обозначим E(a, b) бесконечную конъюнкцию Çi=0, w ai bi, а (a, b) - дизъюнкцию Èi=0, w (ai bi).
Просматриваем каждое
параметрическое выражение R¢i, i = 1, 2, …, m слева направо. При первом просмотре
мы игнорируем параметры, которыми был заменен оператор *. В
зависимости от вида очередного подвыражения осуществляем следующие действия.
Пусть таким выражением
является автоматная буква Ps, v1, …, vl. В этом случае анализируем по
очереди вид логического и арифметических операторов и ставим им в соответствие
определенные логические формулы.
1.
Предикат Ps(a, b) заменяем формулой Еs(a, b).
2. Оператор sl(a) заменяем формулой Sl(a, b), где b - это новая рабочая метапеременная,
которая не использовалась ранее. Затем везде в этом выражении правее оператора sl(a) заменяем все вхождения
метапеременной a на b. Назовем a – входной метапеременной формулы Sl(a, b), а b – выходной.
При этом b назовем последователем a, а a - предшественником b.
3. Всякий установочный
оператор 0(a)
заменяем формулой 0(a).
Если 0(a) не установочный арифметический
оператор, то заменяем его на формулу 0(b), где b - это новая рабочая метапеременная,
которая не использовалась ранее. Затем везде правее этого оператора заменяем
все вхождения метапеременной a на b.
Замечание. Арифметический оператор 0(y) в программе
устанавливает нулевое значение рабочей переменной y не
зависимо от ее предыдущего значения. Прежнее значение этой переменной как бы
забывается и его восстановление невозможно. Поэтому не установочный оператор 0(a) заменяем на формулу 0(b), где b - новая рабочая метапеременная.
Последняя также считается порожденной той же рабочей переменной, которая
порождала метапеременную a. При
этом b назовем последователем a,
которую в свою очередь назовем предшественником
b.
Полагаем, что оба
отношения «быть последователем» и «быть предшественником», определенные в двух
последних пунктах, – транзитивные.
Из определения отношения
«быть последователем» вытекает, что если метапеременная b есть последователь a, то в выражении Rp¢ они порождены одной рабочей
переменной. То же относится к отношению «быть предшественником».
Введем следующее
определение. Пусть в результирующем выражении R¢, полученном из исходного,
метапеременная b
есть последователь метапеременной a.
Назовем b - тупиковым последователем метапеременной a в R¢, если b не имеет в нем последователя. Аналогично,
a назовем тупиковым предшественником
метапеременной b в R¢, если a не имеет предшественника в R¢. Напомним, что R¢ есть подобие регулярного выражения,
в котором арифметические и логические операторы заменены представляющими их
обобщенными формулами.
В результате описанных
преобразований параметрическое выражение Rp¢ преобразуется в конструкцию Rp², которая вместо арифметических и
логических операторов содержит представляющие их логические формулы, а вместо
входных и рабочих переменных – соответственно рабочие и входные метапеременные.
Каждая формула Sl обладает входными и выходными
метапеременными, между которыми установлены отношения последовательности и
предшествования. При этом входная метапеременная формулы Sl не встречается правее нее. Несколько
раз могут встретиться лишь входные переменные программы и метапеременные, которые
встречаются в формулах, представляющих логические операторы программы.
Пусть Ps, v1, …, vl – это автоматная буква
рассматриваемого параметрического выражения, которая задает размеченный путь t. Этот путь, в свою очередь,
определяет совокупность fti ,
i = 1, 2,
…, m частичных
функций, каждая из которых определяет значение одной рабочей переменной в
зависимости от значений переменных перед выполнением логического оператора Р. Пусть рабочие переменные у1,
у2,
…, уm этой автоматной буквы порождают
некоторое множество метапеременных, из которого выделим тупиковые предшественники
a1, a2, …, am и соответственно тупиковые
последователи b1, b2, …, bm относительно буквы Ps, v1, …, vl.
В соответствии с первым
этапом нашего построения в результирующем выражении Rp²
отдельным компонентам буквы Ps, v1, …, vl соответствуют представляющие их формулы
Es(a, b),
W1, …, Wl. Поставим в соответствие автоматной
букве Ps, v1, …, vl формулу
F = Es(a,b)
Ù W1 Ù …Ù Wl.
Справедливо утверждение.
Лемма 10.
Формула F представляет все функции, определяемые автоматной буквой Ps, v1, …, vl с точностью до переименования рабочих
переменных порожденными ими метапеременными.
Доказательство. Напомним, что если логическая
функция F(x, y) представляет вычисляемую функцию y =
f(x), функция G(z, w) - функцию w =
G(z), то суперпозиция функций y = f(G(x)) представляется конъюнкций F(w, y) Ù G(х, w).
Если при выполнении программы p предикат Ps принимает значение истина, то значения рабочих переменных
определяются этим путем следующим образом. Если рабочая переменная y встречается в операторах v1, …, vl
и не обнуляется, то ее новое значение есть сумма ее входного значения и
некоторой константы, определяемой присутствующими в этом пути операторами
прибавления единицы. Если же эта рабочая переменная y обнуляется, то ее значение равно
некоторой константе, которая совпадает с числом единиц, прибавляемых к этой
переменной после последнего ее обнуления в рассматриваемом пути. Но в точности
так же вычисляется значение соответствующей тупиковой метапеременной b
функцией, представимой конъюнкцией
Es(a, b) W1 … Wl.
Лемма доказана.
Таким образом, для
автоматной буквы Ps, v1, …, vl , которая входит в исследуемое параметрическое
выражение, верны следующие утверждения:
буква Ps, v1, …, vl определяет совокупность fti,
i = 1, 2, …,
m,
частичных
функций, задающих значения рабочих
переменных;
все эти функции представляются формулой F при введенном соответствии рабочих переменных и
метапеременных.
Для подслова a1a2…aq
рассматриваемого параметрического выражения, которое состоит из нескольких
автоматных букв, имеет место
Лемма 11.
Пусть Fa1, Fa2, …, Faq – формулы, поставленные в соответствие автоматным буквам соответственно
a1, a2, …, aq. Тогда
формула F = Fa1 Ù Fa2 Ù
…Ù Faq представляет все частичные функции,
которые определяются регулярным выражением a1a2…aq.
Доказательство вытекает из того, что тупиковые
выходные метапеременные каждого выражения, определяемого буквой ai, i = 1, 2, …, q -1, совпадает
с соответствующими тупиковыми входными метапеременными выражения, определяемого
буквой ai+1. Тем самым, если буква ai определяет совокупность из m частичных функций (по числу рабочих
переменных), то слово a1, a2, …, aq определяет частичные функции,
полученные определенной суперпозицией из указанных, а формула F представляет все эти функции.
Лемма доказана.
Дальнейшее преобразование
параметрического выражения в логическую формулу носит индуктивный характер. Из
описанных ранее свойств параметрического выражения Rp¢
вытекает, что каждое его подвыражение вида Вh можно представить следующим образом:
(РsА)h, где Р есть логический оператор программы и A – оставшаяся часть выражения B. В
простейшем случае выражение А
является последовательностью арифметических операторов.
Базис индукции. Пусть выражение В
не имеет вложенных параметрических выражений, построенных по регулярным
выражениям вида Q*. Поэтому оно определяет
единственный размеченный путь t,
начинающийся в логической вершине Р и
включающий ее s–последователя. Будем полагать, что выражение РsА уже представляет
формула F.
Пусть a и b– это последовательности
соответственно тупиковых входных и выходных метапеременных выражения В. Поэтому формулу F обозначим следующим образом: Еs(a) Ù F(a, b).
Последовательность a
входных метапеременных может состоять из входных переменных программы и
метапеременных, которые порождены рабочими переменными. Следовательно, длина
последовательности a не
превосходит n + m. Представим a в виде объединения двух последовательностей
aw и aI. Здесь aw есть метапеременные, полученные по рабочим переменным,
а aI - входные переменные.
Последовательность b выходных метапеременных может
состоять только из метапеременных, которыми были заменены рабочие переменные, и
ее размерность не превосходит m. Для простоты
полагаем, что последовательность a имеет
n + m метапеременных,
включает входные переменные и метапеременные, полученные по рабочим переменным,
а последовательность b
состоит только из m метапеременных, полученных по
рабочим переменным. Тогда отношения
последовательности и предшествования для этих последовательностях устанавливаются
просто. Полагаем, что aw = a1, a2, …, am и b = b1, b2, …, bm.
Образуем h различных множеств метапеременных: b1, b2, …, bh, каждое мощности m и между каждой парой множеств b, b1, …, bh определено изоморфное соответствие j. Назовем
соответствующими следующие
метапеременные: в множествах a и b – это метапеременные
между которыми установлено отношение
быть последователем, а между каждой парой множеств из b, b1, …, bh соответствие определяется
отображением j. Таким образом, для каждой входной метапеременной из
множества a в каждом множестве из b, b1, …, bh можно выделить единственную
метапеременную, которую также назовем выходной.
И таких метапеременных в каждом из множеств b, b1, …, bh в точности m. Поэтому bi = b i1, b i2, …, b im.
Итак, для каждой входной
метапеременной из a,
полученной по рабочей переменной, в любом множестве bi всегда имеется в точности одна соответствующая выходная
метапеременная. Обозначим a1, a2, …, ah множества
метапеременных, которые получены добавлением к входным переменным множеств
соответственно b1, b2, …, bh. Полагаем, что множества a и a1, a2, …, ah упорядочены так, что сохраняется одинаковый порядок на
соответствующих метапеременных.
Введем такое соглашение.
Пусть выражение aw = b обозначает m конъюнкций Çi=1, m E(aiw, bi), где E(aiw, bi) – обобщенная формула,
представляющая равенство aiw = bi метапеременных. Аналогично bj = b обозначает конъюнкцию Çi=1, m E(bi j, bi), где E(bi j, bi) обобщенная формула, представляющая
равенство bi j = bi , i = 1, 2, …, m.
Теперь выражению Вh ставим в соответствие логическую формулу
Fh = Е1-s (a)(aw = b) Ú Еs(a)
F(a, b1) Е1-s(a1) (b1 = b) Ú
Еs(a)
F(a, b1) Еs(a1) F(a1, b2) Е1-s(a2) (b2 = b) Ú
. . .
Еs(a)F(a, b1) Еs(a1) F(a1, b2) …Еs(ah-1) F(ah-1,
bh)
Е1-s(ah)(bh = b).
В этой формуле Еs(ai) есть формула,
представляющая предикат Рs(ai), в которой вместо метапеременных из
a подставлены соответствующие метапеременные
из ai, i = 1, 2, …,
h.
Покажем, что верна
Лемма 12. Формула Fh представляет все функции, определяемые параметрическим подвыражением Вh.
Доказательство. Во-первых, покажем, что каждый
дизъюнктивный член этой формулы представляет определенное множество функций,
объединение которых совпадает с семейством функций, определяемых выражением Вh.
1.
Конъюнкция Е1-s(a)
Ù (a = b) истинна тогда и только тогда, когда
формула Е1-s(a) истинна и выходные переменные
набора b совпадают с соответствующими
входными набора a. Среди функций, определяемых выражением
Вh, имеются функции, которые порождены нулевым прохождением
пути t, что происходит, когда значения
аргументов предиката Рs
превращают его в ложь. В этом случае
рабочие переменные после перехода в (1-s)-последователя вершины Р не меняются. Следовательно такой
переход по дуге из вершины Р в 1 - s последователя
соответствует тождественной функции. Но именно такую функцию представляет
рассматриваемая конъюнкция.
2.
Рассмотрим теперь i-кратное
прохождение (0 < i £ h) размеченного
пути t, завершающееся прохождением дуги d,
ведущей в (1-s)-последователя вершины Р. Такой путь порождает частичные функции, которые суть суперпозиции
глубины i функций, порождаемых самим путем t. При этом последний переход по дуге,
ведущее в (1-s)-последователя вершины Р не меняет значений рабочих переменных, которые были получены
после последнего прохождения вершины Р.
Отсюда видно, что
конъюнкция
Еs(a)
Ù F(a, b1) Ù Еs(a1) Ù F(a1, b2) Ù … Ù Еs(ai -1) Ù F(ai -1,
bi) Ù Е1-s(ai)
(bi = b)
представляет все функции,
определяемые i-кратным
прохождением размеченного пути t, завершающееся
прохождением дуги d, ведущей в (1-s)-последователя
вершины Р. Действительно, всякая
формула
Еs(a)
Ù F(a, b1) Ù Еs(a1) Ù F(a1, b2) Ù … Ù Еs(aj)
Ù F(aj, bj+1)
представляет все функции,
определяемые j-кратным прохождением пути t, в результате заданным способом
совмещения входных и выходных метапеременных. После j-кратного прохождения пути t выход из цикла происходит лишь в том
случае, когда предикат Р1-s истинен. Этот предикат
представляется формулой Е1-s(ai). Поэтому выходные метапеременные из
b принимают те значения, которые
принимают соответствующие метапеременные набора bi.
Вся построенная
дизъюнкция представляет объединение функций, которые представляются каждым из
ее членов. Отсюда вытекает искомое утверждение.
Индуктивные рассуждения. Если параметрическое выражение А = А1А2,
и для выражений А1 и А2 построены логические
функции соответственно F1 и F2, представляющие все функции порождаемые выражениями А1 и А2, то конъюнкция F1 Ù F2 представляет все функции,
порождаемые выражением А. Это вытекает
из того, что конструируемая формула имеет в заключительных частях своих
конъюнкций метапеременные, совпадающие с тупиковыми выходными метапеременными
выражений, по которым они строятся. Для выражения B = A1 A2 … An рассуждения аналогичны.
Если выражение В имеет вложенные выражения, полученных
из регулярных выражений вида Q*, то В определяет конечное семейство {t} размеченных путей, начинающихся в
логической вершине Р и включающих ее s–последователя.
Но тогда выражение Вh определяет все функции, которые
определяются размеченными путями, полученными из {t} не более, чем h-кратными конкатенациями. В этом
случае в силу конечности числа путей, участвующих в конкатенациях, наличие
представляющей логической формулы для функций, порождаемых выражением Вh, следует из предыдущего абзаца индуктивных рассуждений.
Лемма доказана.
Из этих рассуждений
вытекает, что при любом означивании метапеременных a формулы Fh
истинным является в точности один из дизъюнктивных членов, в точности при одном
означивании оставшихся метапеременных. Таким образом, все значения метапеременной
a формулы Fh
разбиваются на h + 1 классов
эквивалентности.
3. О некоторых свойствах формул, порожденных программами.
Пусть формула G представляет параметрическое
выражение R¢p и
программа p обладает ограничением p(|x|) на длину вычисления в зависимости
от входных значений. Величину p(|x|) назовем длиной формулы G. Нашей задачей будет описание зависимости минимальной
длины вычислений программы и, следовательно, длины формулы G от вида функции, которую вычисляет программа.
Рассмотрим свойства
означиваний переменных логической формулы G. Для
простоты считаем, что программа обладает единственной входной переменной, т.е.
вычисляет функцию от одного аргумента. При этом полагаем, что означен начальный
отрезок входных переменных, а метапеременные, порожденные рабочими переменными,
означиваются следующим образом.
1. Если в формуле G встречается формула 0(a), где a = a0, …, am … , то a0 = … = am = … = 0. Очевидно, это единственное
означивание логических метапеременных, при котором формула 0(a) истинная.
2. Если в формуле G встречается формула Sl(a, b), a = a0, …, am , …, b = b0, …, bm , … , и логические метапеременные a0, …, am , … уже означены, то означивание
логических метапеременных b0, …, bm , … получается из двоичного
представления числа |a| + l. Здесь |a| - это двоичное число, полученное из
бесконечной последовательности значений метапеременных a0, …, am , … отбрасыванием правой бесконечной
нулевой части, расположенной правее последнего единичного компонента. Очевидно,
что при таком означивании метапеременных a, b формула Sl
истинная. При любом другом означивании логических метапеременных b0,
…, bm , … она ложна.
Из описанных в п.п. 1, 2
означиваний метапеременных следует, что все Рабочие метапеременные означиваются
единственным образом, если мы накладываем условие, что все формулы,
представляющие арифметические операторы, должны быть истинными. Назовем такое
означивание метапеременных, порожденных рабочими переменными программы, правильным.
3. Отметим, что если в
формуле (a, b) обе метапеременные a и b рабочие, то при правильном
означивании она превращается в константу (0 или 1). Это следует из того, что
все рабочие метапеременные означены конкретными значениями.
Из этого следует, что при
правильном означивании формула (a, b) отлична от константы лишь в случае,
когда один из ее аргументов является входной метапеременной.
Лемма 13. Всякая формула F, которая соответствует
регулярному подвыражению и не содержит входных метапеременных, при правильном
означивании принимает значение истина. При не правильном она
ложна.
Проведем исследование
отношения эквивалентности, которое порождается формулой E при различных начальных означиваниях ее аргументов.
Пусть E(a, b) = Çi=0, wai bi, и - начальные
означивания метапеременных соответственно a и b. Для определенности полагаем, что || ||, т.е. и || = ||.
Рассмотрим возможные случаи.
1. = .
После означивания наборами и метапеременных формула
E(a, b) эквивалентно преобразуется в
формулу, у которой начальный отрезок метапеременных b означен значениями набора . Обозначим ее через E(a,).
2. .
После означивания наборами и метапеременных формула
E(a, b)
преобразуется в тождественно ложную формулу.
Таким образом, при
начальных означиваниях и аргументов a и b выполняется следующее:
если набор является префиксом
набора , то формула E(a, b) превращается в новую формулу, не
являющуюся тождественной константой. При этом результирующая формула
определяется длиной вектора и видом вектора ;
если набор не является префиксом
набора , то формула E(a, b) превращается в тождественную ложь.
Для отрицания (a, b) = Èi=0, w(ai bi) и для начальных означиваний и таких, что || ||, т.е. и || = ||,
аналогично доказывается следующее.
Если набор является префиксом
набора , то формула (a, b) превращается в новую формулу, не
являющуюся тождественной константой. Ее вид определяется длиной вектора и видом вектора ;
Если набор не является префиксом
набора , то формула (a, b) превращается в тождественную
истину.
Рассмотрим функцию
Fh = Е1-s (a)
(aw = b) Ú Еs(a)
F(a, b1) Е1-s(a1) (b1 = b) Ú
Еs(a)
F(a, b1) Еs(a1) F(a1, b2) Е1-s(a2) (b2 = b) Ú
. . .
Еs(a)
F(a, b1) Еs(a1) F(a1, b2) …Еs(ah-1) F(ah-1,
bh) Е1-s(ah)
(bh = b).
Исследуем свойства
означиваний ее метапеременных. Особенность этой формулы состоит в том, что ее
подформула F может
быть конъюнкцией логических формул, представляющих лишь арифметические
операторы, так и дизъюнкцией наподобие самой формулы Fh. В первом случае формула F получается по регулярному выражению, не содержащему
оператора *, во втором – с оператором *. Поэтому
рассуждения в данном случае носят индуктивный характер.
Базис индукции. Вначале полагаем, что подформула F построена по регулярному выражению, не содержащему
оператора *.
Представим формулу Fh в виде . Справедливо утверждение.
Теорема 14.
При начальном означивании входных
метапеременных формулы Fh и некотором единственном i 0:
либо в точности одна формула Hi превращается в логическую единицу, а
все остальные H0, H1, …,Hi-1, Hi+1, …, Hh – в логические нули;
либо все формулы H0, H1, …,Hi превращаются в тождественные нули, а
остальные Hi+1, Hi+2, …, Hh - в формулы, отличные от константы.
Доказательство. Полагаем, что при начальном
означивании метапеременных a в
формулах Sl(a, b)
метапеременные b
означиваются единственным максимальным набором, при котором сама формула Sl(a, b)
превращается в тождественную 1. Это происходит по следующей причине.
Формула Sl(a, b) появляется вместо арифметического
оператора sl(a), где b - это новая метапеременная. Поэтому слева от формулы Sl(a, b) метапеременная b не
встречается (но может встречаться правее). Следовательно, означивание всех
метапеременных слева от этой формулы не означивает метапеременной b.
Метапеременная a представляется бесконечной
последовательностью a0, …, am , …
булевских метапеременных. Следовательно, означивание логических
метапеременных a0, …, am , … представляет собой некоторое
начальное не нулевое означивание, за которым следует бесконечная
последовательность нулей. Было показано, что при таком означивании метапеременной
a имеется лишь
единственное означивание метапеременной b, при котором формула Sl(a, b) истинная. При всех остальных
значениях метапеременной b формула Sl(a, b)
ложна. И полученное для формулы Sl(a, b)
означивание b
является означиванием и всех остальных ее вхождений, которые расположены
правее.
Все метапеременные
формулы 0(a) означиваются нулями.
Возможные означивания
аргументов формул Еs
приводят, как к тождественной константе, так и к некоторой формуле, не
являющейся тождественной константой. Как было показано, это определяется тем, содержит
ли эта формула аргументом – входную переменную программы.
Пусть есть начальное
означивание входных метапеременных рассматриваемой формулы. Возможны следующие
случаи.
1. Формула Е1-s (a)
при этом означивании есть тождественная
1. Тогда выходные метапеременные b
принимают значения, которые определяются означиваниями метапеременных aw. В итоге метапеременные b
также приобретают конкретное значение. Все остальные подформулы H1, H2, …,Hi, …, Hh становятся тождественно ложными, как
легко увидеть из их конструкции.
2. Формула Е1-s (a)
при этом означивании есть
тождественный 0. В остальных формулах H1, H2, …,Hi, …, Hh присутствуют подформулы Еs(a), которые при означивании становятся
тождественно истинными. Логический оператор Еs(a) не порождает означивания новых
метапеременных, как это делают арифметические операторы, и поэтому мы переходим
к рассмотрению функции G вида
Е1-s(a1) (b1 = b) Ú Еs(a1) F(a1, b2) Е1-s(a2) (b2 = b) Ú
. . .
Еs(a1) F(a1, b2) … Еs(ah-1)
F(ah-1, bh) Е1-s(ah)
(bh = b),
для которой задано начальное
означивание ее входных
метапеременных. Далее применимы индуктивные рассуждения.
3.
При этом означивании функция Е1-s(a)
преобразуется в функцию, отличную от
константы. В этом случае все формулы H1, H2, …,Hi, …, Hh превращаются в новые формулы,
отличные от констант.
Рассуждая по индукции,
заметим, что переход от исходной формулы к формуле G
осуществляется только при условии, что функция Е1-s (a)
при этом означивании превращается в
тождественный 0. Поэтому, если некоторая подформула Hi
превращается в функцию не константу, то это означает, что все предыдущие
функции H1, H2, …,Hi-1 тождественно
ложны.
С другой стороны, если
какая-либо формула Hi превращается в истину, то все остальные Hi+1, …, Hh
превращаются в тождественную ложь.
Это следует из того, что все функции H0, H1, …,Hi, …, Hh
в определенном смысле попарно ортогональны. А именно, для каждой формулы
вида Еs
из Hi во всех остальных формулах H0, H1, …,Hi-1, Hi+1, …, Hh найдутся подформулы с конъюнктивным
членом Е1-s и
с теми же аргументами. Отметим, что только в последнем случае выходные
метапеременные b
приобретают конкретные значения, которые определяются видом формулы Hi.
Теорема доказана.
Таким образом, логические
формулы Еs
определяют в исходной формуле Fh различные классы эквивалентности в
зависимости от длины означивающих векторов. Увеличение длины означивающих
векторов происходит в результате применения арифметических операторов. Поэтому,
чтобы из нулевого вектора получить вектор, содержащий единичное значение в l-м компоненте, необходимо совершить 2l операций
прибавления 1. Т.е. увеличение длины происходит в результате длинной
последовательности арифметических операций программы, т.е. относительно редко.
Индукционный переход предполагает, что рассматриваемая формула Fh построена по регулярному выражению,
содержащему оператор *. Отметим, что в базисном случае, т.е. когда
формула Fh
соответствует линейному регулярному выражению, значения выходных метапеременных
b определены лишь в единственном
случае, когда в точности одна подформула Hi при заданном означивании истинная. И
таких формул, превращающихся в тождественную единицу при означивании – не более одной. Эта
ситуация соответствует траектории вычисления программы, когда мы проходим цикл
необходимое число раз после чего получаем определенное выходное значение.
Ситуация, когда исходная
формула Fh превращается в логическую формулу,
отличную от константы, соответствует тому, что мы проходим несколько (k 0) раз цикл и потом логическое
условие не имеет конкретного логического значения. Так как логическое значение
не определено, то вычисление не продолжается. Поэтому при рассмотрении индукционного
перехода мы рассматриваем две возможности: первая – когда означивание переменных
формулы Fh приводит к тому, что эта формула
становится истинной при соответствующем означивании выходным метапеременных, и
вторая - когда эта формула превращается в логическую функцию, отличную от
константы. В первом случае формула Fh становится константой. Во втором
случае формула Fh превращается в логическую не константную функцию.
Следовательно, при
начальном означивании входной переменной вид формулы Fh определяется лишь видом подформул E, в которых один аргумент - входная переменная.
Очевидно, что число вхождений в программу логических вершин ограниченно
некоторой константой. Всякое вхождение логической вершины с входным аргументом
влечет появление в формуле Fh неопределенности, т.е. логической
формулы, отличной от константы. И таких вхождений может быть несколько, пусть .
Так как эти формулы не
являются логическими константами, то выполняются следующие условия: x-набор является префиксом
каждого значения метапеременной , i = 1, 2, …, h, и выполняются неравенства . Так как все значения обладают одинаковым
префиксом, то между ними расположены формулы Sl,
сумма верхних индексов которых не менее . Поэтому можно считать, что h = 1 и в
каждой формуле F встречается в точности одна подформула
E, в которой один аргумент – входная
метапеременная, а второй – метапеременная, полученная по одной и той же рабочей
переменной.
3.
О длине вычислений программ. В этом
разделе покажем, что длина вычисления программы вычисляющей некоторую функцию,
определяется ее энтропией.
Пусть задано множество Mx всех начальных означиваний длины n входной переменной x программы
, вычисляющей функцию (x), и эти означивания характеризуются
энтропией . Если обобщенная формула F(x, y) представляет функцию y = (x), то для того же множества
означиваний аргумента x имеем = . Допустим, что формула F(x, y),
представляющая функцию y = (x),
построена по программе , как описано выше. Каждый класс эквивалентности, на которые
разбивается множество Mx означиваний, получается в результате
означивания аргументов подформул из F(x, y), у которых в точности один аргумент
является входной переменной.
Пусть есть некоторое
начальное означивание из Mx, у которого самая правая единица
располагается в l-м разряде. При правильном
означивании второй аргумент всякой подформулы из F(x, y), которая определяет отнесение набора
к соответствующему
классу эквивалентности, должен также иметь единицу в l-м разряде правее которого следует еще некоторая
последовательность ненулевых компонентов. Этим аргументом является рабочая
метапеременная. Назовем такие последовательности дополнительными. С помощью этих дополнительных последовательностей
осуществляется кодирование классов эквивалентности в следующем смысле: как
показано, отнесение функции к тому или иному классу происходит на основании тех
разрядов, которыми характеризуются дополнительные последовательности. Поэтому
каждый класс обладает фиксированным набором дополнительных
последовательностей.
Из этих рассуждений
следует
Теорема 15. Пусть (x) - арифметическая программа, вычисляющая
функцию (x)
и F(x, y) – обобщенная функция, построенная по(x).
Тогда, если Hx – есть энтропии, определяемая некоторым множеством всех начальных означиваний
аргумента x одинаковой длины, то F(x, y)
имеет длину не менее 2dHx для некоторой положительной константы d.
Доказательство. Если формула F(x, y) для заданного множества означиваний
аргумента x
обладает энтропией Hx, число классов k эквивалентности не менее, чем 2Hx. Кодирование классов эквивалентности,
которое получается при правильном означивании, позволяет получить такое их
число лишь при условии, что означивания некоторых рабочих метапеременных,
обладают единичным компонентом в k-м разряде. Но чтобы получить такой
вектор требуется не менее 2k операций прибавления единицы.
Поэтому длина формулы F(x, y) должна быть не менее 2Hx.
Теорема доказана.
Следствие. Если
все начальные наборы входной переменной обладают длиной n и всюду определенная
функция(x)
при таком означивании обладает энтропией H, то существуют вычисления программы(x)
длины не менее 2dH для некоторой положительной константы d.
Литература.
1. Янов Ю.И. Сб. Проблемы
кибернетики, вып.