Полиномиальный тезис Чёрча для рефал-5-функций, нормальных алгоритмов и их обобщений

УДК 510.52

Косовский Николай Кириллович, Косовская Татьяна Матвеевна

ПОЛИНОМИАЛЬНЫЙ ТЕЗИС ЧЁРЧА ДЛЯ РЕФАЛ-5-ФУНКЦИЙ, НОРМАЛЬНЫХ АЛГОРИТМОВ И ИХ ОБОБЩЕНИЙ

Аннотация

При разработке многократно используемых программ важно, чтобы их выполнение было достаточно быстрым. В книге Ду Д.З. и Ко К.И. сформулирован обобщенный тезис Чёрча: «Функция, вычислимая за полиномиальное время на разумной вычислительной модели, использующей разумное измерение временной сложности, вычислима на детерминированной машине Тьюринга за полиномиальное время» (то есть принадлежит классу ЕР). Этот расширенный тезис Чёрча более естественно называть полиномиальным тезисом Чёрча для машин Тьюринга. «Разумность» вычислительной модели разными исследователями понимается по-разному, вследствие чего в последнее время всё чаще появляются «доказательства» (содержащие ошибки) знаменитой проблемы: верно ли, что Р = NP? При этом шаг различных моделей алгоритмов трактуется интуитивно.

В настоящей работе доказано, что «разумность» шага вычисления рекурсивной функции может заключаться в использовании таких рефал-5-предложений из класса ЕР, длина записи результата выполнения которых (включая длину записи всего изменяемого стека) увеличивается не более чем на константу, единую для всех исходных данных. В этом смысле обычное определение общерекурсивной функции не является «разумной» вычислительной моделью.

Достаточно сложным является подсчет числа шагов рекурсивного алгоритма. В настоящей статье доказаны необходимые и достаточные условия полиномиальности по времени функции, реализованной на языке программирования рефал-5. Этот язык является практически реализованным обобщением таких математических моделей алгоритма как нормальные алгоритмы, а также вводимые здесь алгоритмы Маркова-Поста и рекурсивные алгоритмы Маркова-Поста. Поэтому в качестве следствий основной теоремы доказаны условия полиномиальности по времени и этих математических моделей, применимых в теоретических исследованиях.

Весьма актуальным является вопрос о возможности доказательства того, что программа, написанная на языке рефал-5, задает полиномиально быструю функцию, то есть функцию, принадлежащую классу ЕР.

В статье вводится понятие дважды полиномиальных рекурсивных вызовов рефал-5-функции, обеспечивающее решение этого вопроса.

Ключевые слова: полиномиальные верхние оценки числа шагов алгоритма, машины Тьюринга, класс ЕР, функции на языке рефал-5, дважды полиномиальный алгоритм.

© Т.М. Косовская, Н.К. Косовский, 2010

ВВЕДЕНИЕ

При разработке многократно используемых программ важно, чтобы их выполнение было достаточно быстрым. В [8] сформулирован обобщенный тезис Чёрча: «Функция, вычислимая за полиномиальное время на разумной вычислительной модели, использующей разумное измерение временной сложности, вычислима на детерминированной машине Тьюринга за полиномиальное время» (то есть принадлежит классу ЕР [1,2]). Этот расширенный тезис Чёрча более естественно называть полиномиальным тезисом Чёрча для машин Тьюринга. «Разумность» вычислительной модели разными исследователями понимается по-разному, вследствие чего в последнее время всё чаще появляются «доказательства» (содержащие ошибки) знаменитой проблемы: верно ли, что Р = ОТ? При этом шаг различных моделей алгоритмов трактуется интуитивно.

Ниже доказано, что «разумность» шага вычисления рекурсивной функции может заключаться в использовании только таких рефал-5-предложений из класса ЕР, длина записи результата выполнения которых (включая длину записи всего изменяемого стека) увеличивается не более чем на константу, единую для всех исходных данных (следствия 1 и 7). В этом смысле обычное определение общерекурсивной функции является «разумной» вычислительной моделью, только если числа записываются в единиричной системе счисления (только палочками). В этом случае принято [2] говорить о псевдополиномиальных вычислениях, причём псевдополиномиальные предикаты зачастую №-полны.

Моделирование работы реальных алгоритмов на машине Тьюринга (что требуется для доказательства его полиноми-альности по времени) кропотливо, утомительно и, зачастую, излишне. Оценки же числа шагов работы программ над конкретными данными, как правило, сделать не очень сложно, но это не всегда обеспечивает (обычно, в силу быстрого роста

длины записи промежуточных вычислений) реальную полиномиальность по времени алгоритма. В [5] доказаны условия принадлежности классу FP паскалевидных функций, то есть функций, реализованных на модели, весьма близкой к языку программирования паскаль.

Достаточно сложным является подсчет числа шагов рекурсивного алгоритма. В настоящей статье доказаны необходимые и достаточные условия полиномиальнос-ти по времени функции, реализованной на языке программирования рефал-5 [7]. Поскольку этот язык является практически реализованным обобщением таких математических моделей алгоритма как нормальные алгоритмы, а также вводимые здесь алгоритмы Маркова-Поста и рекурсивные алгоритмы Маркова-Поста, то в качестве следствий основной теоремы доказаны условия полиномиальности по времени и этих математических моделей, применимых в теоретических исследованиях.

Язык рефал-5 (REFAL - Recursive Function Algorithmical Language) был разработан и реализован В.Ф. Турчиным в Нью-Йорке [7] (см., также [2]). Он предназначен для обработки исходных данных, записанных в поле зрения и в содержимом стека, по существу являющегося стеком стеков. Понятие рефал-5-функции (то есть функции, запрограммированной на языке рефал-5) может рассматриваться как математическое понятие алгоритма при условии, что не используются встроенные операторы работы над файлами.

Весьма актуальным является вопрос о возможности доказательства того, что программа, написанная на языке рефал-5, задает полиномиально быструю функцию, то есть функцию, принадлежащую классу FP [1, 2, 4].

В статье вводится понятие дважды полиномиальных рекурсивных вызовов ре-фал-5-функции, обеспечивающее решение этого вопроса.

Следует отметить, что в [5] было введено понятие дважды полиномиальной паскалевидной функции (в том числе и над списком базовых подпрограмм, явля-

ющихся паскалевидными функциями), выполнение которого обеспечивает полиномиальную быстроту вычисления паска-левидной функции.

1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ И ТЕОРЕМА

В последовательности условий языка рефал-5 в качестве разделителя, как и в языке пролог, используется запятая.

По сути дела, в языке рефал-5, в отличие от базисного рефала, используется дерево условий, так как выполнение каждого следующего условия зависит от результата проверки предыдущего условия, а условие может содержать сравнение с несколькими образцами, обеспечивающими ветвление.

Определение. Рефал-5-предложением называется образец с переменными для частей аргумента, за которым следует знак равенства и функциональное выражение или следует дерево условий, начинающееся с запятой, на листьях которого после знака равенства находятся функциональные выражения, возможно использующие синтаксические (круглые) скобки, конкатенацию (приписывание друг к другу двух слов или функциональных выражений, или вызовов функций с аргументами в виде функциональных выражений).

Рефал-5-функцией назовем следующее выражение: её имя, после которого находится заключённая в фигурные скобки последовательность рефал-5-предложений, отделённых друг от друга точкой с запятой.

Например,

ИМЯ\_ФУНКЦИИ\{ПРЕДЛОЖЕНИЕ\_1;...;

ПРЕДЛОЖЕНИЕ\_Ы\}

Под выполненными рекурсивными вызовами рефал-5-функции / для аргумента (2 будем понимать все вызовы этой функции, выполненные в процессе вычисления функции / для аргумента

Рефал-5-функция может содержать вызовы вспомогательных (определённых ранее и встроенных) функций.

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

для рефал-5-функций. Пусть список 5 содержит все вспомогательные функции, достаточные для вычисления рефал-5-фун-кции /.

Определение. Под числом рекурсивных вызовов при вычислении рефал-5-функции / над списком функций 5 от аргумента ( понимаем число выполненных рекурсивных вызовов функции / при вычислении значения /((), измеряемое относительно длины аргумента ( .

Определение. Под длиной записи результата выполнения рефал-5-предложения понимаем длину записи содержимого полученного стека, сложенного с длиной записи функционального выражения, находящегося на «листе» выполненой «ветки» условий (в дереве условий) и в которое вместо всех переменных подставлены их значения, полученные в результате сопоставления с образцом из корня дерева и проверки всех условий, находящихся на выполненной «ветке» условий.

Определение. Под длиной промежуточных записей рефал-5-функции / над списком функций 5 понимаем функцию от длины записи исходных данных, равную максимальной длине записи аргументов и результатов у всех выполненных рефал-5-пред-ложений и вызовов /, каждый раз сложенной с длиной записи всего содержимого стека в соответствующий момент.

Вообще говоря, список 5, являющийся параметром приведенных определений, может быть пустым. В этом случае слова «над списком функций 5» могут быть вычеркнуты как в этих определениях, так и в дальнейших формулировках.

Определение. Под рефал-5-функцией с дважды полиномиальными рекурсивными вызовами над 5 понимаем такую рефал-5-функцию /, у которой как число рекурсивных вызовов при вычислении над Б, так и длина промежуточных записей / над 5 не превосходят полинома от длины записи исходных данных, включающих в себя исходное содержимое всего стека.

Следующая теорема усиливает и обобщает на список 5 теорему из [6], поскольку число шагов рефал-5-функции / над пустым списком не превосходит числа выполненных вызовов при вычислении / над пустым списком, умноженное на число выражений и всех их подвыражений в записи этой рефал-5-функции.

Теорема. Класс всех рефал-5-функций с дважды полиномиальными рекурсивными вызовами над списком Б, все функции которого принадлежат ЕР, совпадает с классом ЕР.

Схема доказательства.

Во-первых, каждую функцию из ЕР можно реализовать дважды полиномиальной рефал-5-функцией, поскольку язык рефал-5 является обобщением нормальных алгоритмов, которые, в свою очередь, можно рассматривать как обобщение машин Тьюринга. При этом число шагов машины Тьюринга на единицу больше числа рекурсивных вызовов рефал-5-функции.

Во-вторых, рефал-5-функцию над списком 5 функций из ЕР можно считать схемой для реализации её машиной Тьюринга с оракулом, позволяющим вычислять каждую функцию из списка Б. При этом длина записи промежуточных записей каждого вызова функции ограничена сверху одним и тем же полиномом от длины записи исходных данных.

Действительно, вычисление каждой из совместно рекурсивных рефал-5-функций может быть осуществлено на машине Тьюринга с оракулом-функцией традиционным образом с помощью отложенных вычислений, хранимых на дополнительной ленте, используемой в качестве стека. При полиномиальном от длины записи исходных данных числе вызовов функций длина этого стека будет ограничена сверху полиномом от длины записи исходных данных. Завершение рекурсии будет осуществлено за полиномиальное число шагов на машине Тьюринга с оракулом-функцией, позволяющим за один шаг вычислять любые (в конечном числе) вспомогательные функции. Всё это можно про-

делать дважды полиномиальным образом, измеряемым от длины записи исходных данных.

Как следует из [6], полученная функция будет принадлежать классу FP. Это завершает доказательство теоремы.

Следствие 1. Класс всех рефал-5-фун-кций с не более чем полиномиальным числом выполненных рекурсивных вызовов, при вычислении которых используются только вызовы таких вспомогательных функций и такие рефал-5-предложения, которые принадлежат FP и могут увеличивать длину записи результата (и длину записи содержимого всего стека) не более чем на константу (не зависящую от исходных данных), совпадает с классом FP.

Действительно, единица, сложенная с числом осуществлённых вызовов f, не меньше числа выполненных рефал-5-пред-ложений функции f. Каждое выполнение рефал-5-предложения (кроме последнего для функции) может увеличивать длину записи результата его применения не более чем на константу, не зависящую от исходных данных. Следовательно, каждая функция, удовлетворяющая условию следствия, является функцией с дважды полиномиальными рекурсивными вызовами. Осталось применить теорему.

Это следствие обосновывает «разумность» шага рефал-5-функции f как рекурсивного вызова f. Оно обеспечивает принадлежность классу FP функций, совершающих полиномиальное число таких шагов.

2. НОРМАЛЬНЫЕ АЛГОРИТМЫ

Определение. Нормальный алгоритм, предложенный A.A. Марковым, - это последовательность подстановок, объединенная фигурной скобкой, вида

A  [] в1

.Ak  [] B .

Здесь запись [ ] означает, что возможно как присутствие записи точки, так и её отсутствие. Подстановка, в которой присутствует точка, называется заключительной. Её выполнение означает, что после её применения алгоритм заканчивает работу.

В этом определении А1, ..., Ак, В1, ..., Вк - слова (цепочки знаков, в том числе, возможно, и пустые цепочки) в некотором алфавите А.

Определение. Интервалом вхождения слова Р в слово ( будем называть рацио-нальнозначный интервал с целочисленными концами, содержащий все номера букв слова (, составляющие слово Р.

Например, имеются два интервала вхождения слова АБРА в слово АБРАКАДАБРА, а именно, интервалы (0, 5) и (7, 12).

Определение применения нормального алгоритма.

Слово Р перерабатывается заданным нормальным алгоритмом следующим образом.

В слове Р ищется первый (слева направо) интервал вхождения слова А1 в Р. Если такой интервал существует, то производится замена в этом интервале вхождения слова А1 на слово Вг Если такого интервала нет, то переходим к аналогичному поиску А2.

Наконец, в слове Р ищется первый (слева направо) интервал вхождения слова Ак в Р. Если такой интервал существует, то производится замена в этом интервале вхождения слова Ак на слово Вк. Если и такого интервала не существует, то алгоритм заканчивает работу.

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

Результатом работы алгоритма является результат последней выполненной

подстановки или исходное слово Р, если ни одна подстановка не выполнялась.

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

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

Приведём пример нормального алгоритма, приписывающего слово УРА! перед любым словом.

{ УРА!

После нахождения интервала вхождения пустого слова в исходные данные (это будет интервал (0, 1)) это вхождение будет заменено словом УРА! и алгоритм закончит работу.

Более сложно записывается следующий нормальный алгоритм приписывания слова УРА! в конец любого исходного слова.

дх  хд для всех х е А < д УРА! .

д

Здесь используется дополнительная буква д, не входящая в алфавит А.

Первое правило последнего нормального алгоритма называют иногда метаправилом. На самом деле это список правил, количество правил в котором равно количеству букв алфавита А и эти правила расположены в записи нормального алгоритма в том же порядке, что и буквы алфавита А.

Пусть исходное слово УРА! и пусть {У,Р,А,!} с А. Тогда в соответствии с выписанным нормальным алгоритмом получаем следующую цепочку слов работы алгоритма по шагам.

УРА! I- дУРА! I- УдРА! I- УРдА! -УРАд! - УРА!д - УРА!УРА!

Над исходным словом из 4-х букв алгоритм делает 6 шагов.

Следующие утверждения являются следствиями теоремы из раздела 1, но могут быть доказаны и как самостоятельные утверждения. Ниже приводятся два доказательства: прямое доказательство, не использующее результат теоремы, и доказательство, основанное на результате теоремы.

Следствие 2. Класс функций, вычислимых нормальными алгоритмами за полиномиальное число шагов от длины записи аргумента, совпадает с классом ЕР.

Прямое доказательство. Во-первых, нормальные алгоритмы являются обобщением машин Тьюринга. Действительно, команда машины Тьюринга (с внешним алфавитом А = |а1, ..., ап}) вида

qjaj  ц ¿а., соответствует подстановке qjaj  Ц^ау ,

ц а .  ц,Яа., соответствует подстановке ц ау  ауЦ^ ,

ца,  ц^Ьа,, соответствует списку

подстановок хц а.  ц^ха. при х е А .

Осталось в конце списка подстановок добавить подстановки

хц1  хц Ъ при х е А, I > 1 , ц х  Ъцх при х е А, / > 1 , Ъ , '

цо ,

хц_1  ц_1х при х е А, ц_1  Ъц1,

ц_2х  хц_2 х при х е А,

ц_2  ц_1Ъ ,  ц_2,

где q1 и - соответственно начальное и заключительное состояния машины Тьюринга, а., а., - буквы алфавита А (в котором работает нормальный алгоритм), qi, ц . , -состояния машины Тьюринга, Ь - бланковый символ из алфавита А, >1, >о.

При этом число шагов нормального алгоритма увеличивается по сравнению с числом шагов машины Тьюринга не более чем линейно.

Таким образом, класс ЕР входит в класс функций, вычислимых нормальными алгоритмами за полиномиальное число шагов.

Во-вторых, каждая подстановка нормального алгоритма может быть выполнена машиной Тьюринга за полиномиальное от длины записи перерабатываемого слова число шагов. Осталось объединить такого рода машины Тьюринга в одну, работа которой соответствует общей структуре работы нормального алгоритма.

На каждом шаге нормального алгоритма длина записи перерабатываемого слова увеличится не более, чем на С = тах |0, 1В11-1А11, ..., \Бк\ - IАк1}. Следовательно, если длина записи аргумента равна п, то после выполнения '-го шага нормального алгоритма (' = 1, ..., р(п), где р(п) - количество шагов нормального алгоритма) длина записи перерабатываемого слова не превосходит п + ССумма полиномиального числа полиномов не превосходит некоторого полинома. Прямое доказательство завершено.

Доказательство следствия 2 теоремы из раздела 1. Используя переменные е1 и е2 для слов в алфавите, А нормальный алгоритм вида

А  [] Б,

[А  [] В

можно записать в виде

е1 А1е2  [] е1В1е2

е1 Аке2  [] е1Вке2 '

При этом по переменной е1 подразумевается цикл (длина е1 увеличивается на единицу начиная с нуля и до длины перерабатываемого слова).

Пусть первое правило содержит точку, а последнее нет. Тогда на языке ре-фал-5 последний алгоритм запишется в виде

МА{е1' А1' е2=е1 'Б1' е2;...; е1' Ак' е2= е1 'Бк'е2< ^ е, 'А1 ,e2>},

где в угловых скобках записано, что алгоритм с именем МА применяется к е1 'Вк 'е2. Здесь если й - пустое слово, то выражение 'й' заменяется пустым словом. При каждом рекурсивном применении длина результата увеличивается не более чем на константу. Следствие доказано.

3. АЛГОРИТМЫ МАРКОВА-ПОСТА

Возможно обобщение нормальных алгоритмов до нормальных алгоритмов с детерминированным использованием одно-посылочных правил Поста (сокращенно -алгоритмов Маркова-Поста). В этом случае подстановка заменяется однопосылоч-ным правилом Поста вида

А е. Але А —А е.  [•] В„е В,е В~ ...В е

Ю 1 . 2 т ] |--|0 г 1 г. 2 п г .

т 12 п

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

1 2 п

правила и т > 0 , п > 0.

Определение. Будем называть правило алгоритма Маркова-Поста правилом размножения переменной, если в его правой части для некоторой переменной имеется Ь различных вхождений, а в левой его части число различных её вхождений меньше Ь.

Определение. Детерминированное применение сформулированного правила Поста к слову й заключается в организации самого внешнего цикла по длине е . (начиная

А

с нуля и кончая длиной слова й), затем внутри этого цикла организации внутренних циклов последовательно по длине е. ,..., длине е. за исключением номе-

2 т

ров, уже встретившихся ранее.

Приведем пример алгоритма Маркова-Поста, осуществляющего удвоение слова.

{е1  • е1е1.

Следствие 3. Класс алгоритмов Маркова-Поста, не содержащих незаключительных правил размножения переменных и вычислимых за полиномиальное число шагов (выполненных правил) от длины записи аргумента, совпадает с классом ЕР.

Прямое доказательство. Поскольку алгоритмы Маркова-Поста представляют собой обобщение нормальных алгоритмов, то очевидно, что совокупность всех их содержит класс ЕР.

Каждое детерминированное применение однопосылочного правила Поста без размножения переменных может быть промоделировано машиной Тьюринга за число шагов, не превосходящее полинома от длины записи левой части правила и, следовательно от длины записи входного слова. Остаётся объединить все такие машины Тьюринга в одну, работа которой соответствует общей структуре работы нормального алгоритма с однопосылочными правилами Поста. Это возможно осуществить так, что она будет работать полиномиальное число шагов от длины записи исходного слова и любой промежуточный результат не будет превосходить по длине полинома от длины исходного слова. Прямое доказательство завершено.

Доказательство следствия 3 теоремы из раздела 1 базируется на тех же соображениях, что и её следствие 2.

Определение. Алгоритм Маркова-Поста назовём дважды полиномиальным, если число его шагов и длина записи результата каждого шага его работы ограничены сверху полиномом от длины записи аргумента алгоритма.

Следствие 4. Класс дважды полиномиальных алгоритмов Маркова-Поста совпадает с классом ЕР.

Это непосредственное следствие теоремы 1.

4. РЕКУРСИВНЫЕ АЛГОРИТМЫ МАРКОВА-ПОСТА

Дальнейшее обобщение алгоритмов Маркова-Поста связано с введением имён алгоритмов как определяемых, так и уже определённых ранее, называемых вспомогательными.

Определение. Под словарным термом будем понимать терм на основе операции

приписывания (конкатенации), которая не имеет обозначения ни префиксного, ни инфиксного, ни постфиксного и аргументы которой не берутся в скобки (они просто приписываются друг к другу). В качестве имен переменных для слов будем по-прежнему использовать букву е с нижними индексами.

Определение. Под функциональным словарным термом будем понимать терм на основе никак не обозначаемой операции приписывания и любых словарных функций в префиксной записи вида

<( и мя функции^ (Пробел^ (функциональный терм^ >.

При этом имя функции не должно содержать пробел. Пробел может опускаться, если функциональный терм представляет собой пустое слово или начинается со знака <.

Пример использования такой записи имеется в конце раздела 2.

Определение. Под правилом рекурсивного алгоритма Маркова-Поста будем понимать словарный терм, к которому приписан справа знак равенства «=», к которому, в свою очередь, приписан справа функциональный словарный терм.

Определение. Правила будем разделять точкой с запятой «;». Список всех правил будем заключать в фигурные скобки «{» , «}», перед которыми будем писать имя определяемого этим списком алгоритма. Список таких определений будем называть рекурсивным алгоритмом Маркова-Поста.

Нетрудно заметить, что класс всех рекурсивных алгоритмов Маркова-Поста является подклассом всех алгоритмов базисного рефала.

Выполнение правила считается одним шагом.

Определение. Пусть в правиле рекурсивного алгоритма Маркова-Поста после равенства количество различных вхождений каждой переменной для слов после знака «=» не более чем количество её вхождений в этом правиле до знака «=». Алго-

ритмы, все правила которых удовлетворяют этому условию, назовём алгоритмами без размножения переменных.

Следствие 5. Класс функций, вычислимых за полиномиальное число рекурсивных вызовов посредством рекурсивных алгоритмов Маркова-Поста без размножения переменных, в том числе и у вспомогательных функций, которые могут увеличивать длину записи результата на каждом шаге не более чем на константу, совпадает с классом ЕР.

Прямое доказательство. Включение класса ЕР в класс рекурсивных алгоритмов Маркова-Поста, совершающих полиномиальное число вызовов, очевидно.

Так как для каждой вспомогательной функции в функциональных словарных термах алгоритма Маркова-Поста длина записи результата всегда ограничена сверху длиной записи аргумента, сложенной с константой, то длина записи любого промежуточного результата ограничена сверху полиномом от длины записи исходного аргумента, если число шагов вычисления каждой из определяемых функций ограничено сверху полиномом от длины записи исходных данных.

При этом если длина записи результата каждого шага алгоритма Маркова-Поста ограничена сверху полиномом от длины записи исходных данных для выполнения этого шага, то полиномиальное число шагов такого алгоритма может быть промоделировано на машине Тьюринга с оракулом-функцией за полиномиальное число шагов (оракул нужен для вычисления вспомогательных функций). Прямое доказательство завершено.

Определение. Рекурсивный алгоритм Маркова-Поста назовем дважды полиномиальным, если число его выполненных рекурсивных вызовов и длина записи результата каждого его шага не превосходят полинома от длины записи исходных данных.

Следствие 6. Класс дважды полиномиальных рекурсивных алгоритмов Маркова-Поста совпадает с классом ЕР.

Теорема из [6] допускает следующую модификацию, обеспечивающую «разумность» шага полиномиальных вычислений на машине Тьюринга с оракулом-функцией, удовлетворяющей ограничению из следствия.

Следствие 7. Класс функций, вычислимых на машинах Тьюринга с оракулом-функцией, совершающих полиномиальное число шагов и оракулы которых принадлежат ЕР, а длины записи результатов работы этих оракулов не превосходят длины записи аргумента, сложенной с константой, совпадает с классом ЕР.

Доказательство. Класс таких машин Тьюринга с оракулом является классом

дважды полиномиальных машин Тьюрига с оракулом, поскольку длины всех промежуточных записей результатов их работы ограничены сверху полиномом от длины записи аргументов. Осталось применить теорему из [6]. Прямое доказательство завершено.

Это следствие 7 может также быть доказано как следствие из следствия 1.

Выполненный вызов оракула, удовлетворяющего условию из следствия 7, вполне может служить примером «разумного» шага вычисления, полиномиальность числа которых обеспечивает принадлежность всего вычисления классу ЕР.

Литература

1. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979.

2. Бабаев И.О., Герасимов М.А., Косовский Н.К., Соловьев И.П. Интеллектуальное программирование. Турбо-Пролог и Рефал-5 на персональных компьютерах. Изд. СПбГУ, 1992. 167 с.

3. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982.

4. Косовская Т.М., Косовский Н.К. Основы доказательств полиномиальной быстроты простейших математических алгоритмов // Компьютерные инструменты в образовании, 2010. № 2. С. 3-13.

5. Косовская Т.М., Косовский Н.К. Принадлежность классу FP дважды полиномиальных паскале-видных функций над подпрограммами из FP // Компьютерные инструменты в образовании, 2010. № 3. С. 3-7.

6. Косовский Н.К. Условия полиномиальности алгоритмов, реализуемых на машинах Тьюринга с оракулами-функциями // XVII Международная школа-семинар «Синтез и сложность управляющих систем» имени академика О.Б. Лупанова (Новосибирск, 27 октября - 1 ноября 2008 г.). Новосибирск: Изд-во Института математики, 2008. C. 70-74.

7. Турчин В.Ф. Рефал-5. Руководство по программированию и справочник // http: //www.refal.net/ rf\ 5frm.htm

8. Du D.Z., Ko K.I. Theory of Computational Complexity. A Wiley-Interscience Publication. John Wiley & Sons, Inc. 2000. 491 p.

Abstract

It is important for multiple-used programs that their run be sufficiently quick. Du D.Z. and Ko K.I. have formulated a extended Church thesis: «A function computable in polynomial time in any reasonable computational model using a reasonable time complexity measure is computable by a deterministic Nuring machine in polynomial time» (i.e. it belongs to the class FP. It is more natural to call this extended Church thesis as a polynomial Church thesis for Turing machine. Different researchers differently understand the term reasonable in consequence of which at the last time many «proofs» (containing mistakes) of the famous problem whether P = FP appear. In such «proofs» a step of different algorithm models treats intuitively.

In the present work it is proved that reasonability of a recursive function step may be consisted in the use of such refal-5-sentenses from FP, for which the length of result notation (including the lenth of all stack) increases not more than by additive constant

unique for all arguments. In such a sence a usual definition of a recursive function is not a reasonable calculation model.

The count of recursive algorithm steps is rather difficult. Nesessary and sufficient conditions of time polynomiality of a function, realized by means of programming language refal-5, are proved in the present paper. This language is a practicaly realized generalization of such mathematical models of algorithm notion as normal algoritm and here introduced Markov-Post algorithm and recursive Markov-Post algorithm. That is why conditions of time polynomiality of these mathematical models (used in theoretical reseaches) are proved as corollaries of the main theorem.

The question whether it is possible to prove that a refal-5 program realizes a polynomiall time function (i.e. function belonging to FP) is very actual.

A notion of a double polynomial recursive refal-5 function call, which provides the solution of this question, is introduced in the paper.

Keywords: polynomial time algorithm, Turing machine, class FP, refal-5 function, double polynomial algorithm.

Косовский Николай Кириллович, доктор физико-математических наук, профессор, заведующий кафедрой информатики математико-механического факультета Санкт-Петербургского государственного университета, kosov@NK1022.spb.edu,

Косовская Татьяна Матвеевна, доктор физико-математических наук, старший научный сотрудник СПИИРАН, kosov@NK1022.spb.edu

© Наши аеторы, 2010. Our authors, 2010.