Научная статья на тему 'Об асимптотике сложности машин Тьюринга, вычисляющих некоторые бесконечные семейства функций'

Об асимптотике сложности машин Тьюринга, вычисляющих некоторые бесконечные семейства функций Текст научной статьи по специальности «Математика»

CC BY
594
64
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Джабаров Роман Рафикович, Ефремов Николай Михайлович

Сложность устройства машины Тьюринга, очевидно, связана с мощностью внутреннего алфавита, т. к. чем больше количество внутренних состояний, тем более сложную программу может иметь машина Тьюринга, и может, следовательно, вычислить более сложную функцию. Сложностью машины Тьюринга Т = (Q, A, П) будем называть мощность внутреннего алфавита |Q|. Множество машин Тьюринга сложности k обозначим τ(k). Множество функций, для которых существует машина Тьюринга сложности k, вычисляющая её, обозначим F(k). Минимальную сложность машины Тьюринга, вычисляющей функцию, обозначим, т. е. =. Назовем её сложностью описания функции с помощью машины Тьюринга. Пусть вычислимая функция. Рассмотрим однопараметрическое семейство функций. Обозначим сложность описания функции. В частности, получен следующий результат: Теорема 6. Пусть вычислимая функция и существуют такие, что, причем существует машина Тьюринга, для которой длина активной зоны влево от начального физического адреса равна k и. Тогда, где обозначает некоторое число z такое, что. Библиогр. 1.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Джабаров Роман Рафикович, Ефремов Николай Михайлович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ON ASYMPTOTIC OF COMPLEXITY OF TURING MACHINE WHICH COMPUTES SOME INFINITE SETS OF FUNCTIONS

Complexity of Turing machine description depends on power of internal alphabet, because the more internal states machine has, the more complex program Turing machine can have and therefore it can compute the more complex function. Exactly such way is used in this article. Let's define power of internal alphabet |Q| as complexity of Turing machine Т = (Q, A, П). Let's denote sets of Turing machine k-complexity τ(k). Sets of functions that can be computed by means of Turing machine k-complexity are F(k). is minimal Turing machine complexity which can compute function, so =. Let's denote it as complexity of function description by means of Turing machine. Let's assume computable function so we will view one-parameter collection of functions. is complexity of function description. Specifically, we have got the following result: Theorem 6. Let computable function and there are such as and there is Turing machine for which the length of active zone left of initial physical address equals k and, so, where is number z such as.

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

УДК 517.7

Р. Р. Джабаров, Н. М. Ефремов Астраханский государственный технический университет

ОБ АСИМПТОТИКЕ СЛОЖНОСТИ МАШИН ТЬЮРИНГА, ВЫЧИСЛЯЮЩИХ НЕКОТОРЫЕ БЕСКОНЕЧНЫЕ СЕМЕЙСТВА ФУНКЦИЙ

Введение

Как известно, понятие «алгоритм» является концептуальной основой разнообразных процессов обработки информации. Одной из наиболее распространенных формализаций понятия «алгоритм» является аппарат машин Тьюринга. Если иметь в виду описание алгоритмов именно на этом языке, то возможно рассмотрение понятия «сложность алгоритма» с различных точек зрения. Наиболее часто при описании сложности алгоритма используются временная и пространственная сложность, которые определяются как время, т. е. количество тактов работы машины, и пространство, т. е. количество задействованных ячеек на ленте, используемых для вычисления. Однако интуитивно понятно, что сложность алгоритма должна быть связана со сложностью устройства машины Тьюринга. А сложность устройства машины Тьюринга, очевидно, связана с мощностью внутреннего алфавита, т. к. чем больше количество внутренних состояний, тем более сложную программу может иметь машина Тьюринга и, следовательно, вычислить более сложную функцию. Именно такой подход предлагается в данной работе.

В работе мы придерживаемся обозначений, принятых в [1].

Под машиной Тьюринга Т будем понимать тройку (<2, А, П), где Q = {ч0, чь ■■■, Чп} - внутренний алфавит; ч0 - заключительное состояние; ч1 - начальное состояние;

А = {а0, а1, ..., ат} - внешний алфавит; а0 - пустой символ;

П - программа машины, представляющая собой множество команд таких, что для любой пары ЧО/, где 1 = 1 ... п, / = 0 ... т, имеется точно одна команда вида ча ^ чай, где 1 = 1 ... п; к = 0 ... п;/, I = 0 ... т;

й е {Ь, Я, Е}, где Ь - сдвиг влево; Я - сдвиг вправо; Е - остановка на месте;

А - множество конечных слов внешнего алфавита.

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

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

Конфигурация - машинное слово вида ача2, где ч, - внутреннее состояние; а1 - слово из алфавита А, находящееся в левой части активной зоны от считывающей головки; а2 - слово в правой части ленты от головки.

Стандартная начальная конфигурация - конфигурация вида К0 = ч1а.

Стандартная заключительная конфигурация - конфигурация вида д0а.

Машина реализует процесс изменения конфигураций в следующем смысле. Если К0 = ч1а и а = ага , где а, е А и а е А , то в программе машины имеется только одна команда вида Ча ^ чай. Тогда следующая конфигурация К1 определяется так:

1. К1 = чаа , если й = Е.

2. К1 = а\Чка , если й = Я.

3. К1 = чааа , если й = Ь.

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

Если последовательность смены конфигураций конечна, т. е. обрывается в заключительной конфигурации, то говорят, что машина применима к конфигурации К0, в противном случае -неприменима к К0.

Машина Тьюринга Т правильно вычисляет частичную функцию/, если для любого Р е А* выполнено:

1. Если ДР) определено и _ДР) = S, то машина Т применима к начальной конфигурации ч1Р и заключительной конфигурацией является Кг = ч0&

2. ЕслиА(Р) не определено, то машина Т неприменима к начальной конфигурации ч1Р.

Здесь и далее будем рассматривать только машины, правильно вычисляющие функции.

Щ - суперпозиция машин Т, и Т/, причем первой в работу вступает машина Т, затем Т/.

Будем считать, что алфавит А машины Т содержит элементы 0, 1. Условимся произвольное число п е Ы0 кодировать п + 1 единицей (N0 - множество целых неотрицательных чисел).

Определение 1. Сложностью машины Тьюринга Т = (Q, А, П) будем называть мощность внутреннего алфавита \Q\ = п + 1.

Определение 2. Множество машин Тьюринга сложности к обозначим т(к) (к > 2), а множество всех машин Тьюринга т. Очевидно, что 1 = У 1(к), причем т(к) П т(;) = ф, если к Ф ;.

к=2

Согласно тезису Чёрча, всякая вычислимая функция может быть реализована с помощью машины Тьюринга. Имея это в виду, введем следующие обозначения.

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

Р _ У Р (к).

к _ 2

Предложение 1. Нетрудно видеть, что мощность множества т(к) равна \т(к)\ = = (3(п + 1)(т + 1))п(т+1).

Так как множество т(к) конечно и \Р(к)\ < \т(к)\, то множество Р(к) конечно.

Очевидно, что семейство множеств {Р (к )}к является неубывающим, т. е. Р(к) с Р(к + 1).

Более сильное утверждение содержится в теореме 2.

Теорема 2. Семейство множеств {Р (к )}^_2 является строго возрастающим.

Доказательство. Зафиксируем начальную конфигурацию К0 = чД. Для любого к > 2 в множестве р(к) найдется хотя бы одна функция, машина для которой применима к конфигурации К0. Среди данных машин выберем машину Тт, для которой вычислимая функция принимает максимальное значение в точке 0. Рассмотрим машину Т{пс, правильно вычисляющую функцию g(x) = х + 1, для которой Q = {ч0, ч1}, А = {0, 1} и

П: ч11 —* ч 11Ь

ч10 — ч01Е

Построим машину Т6. = ТтТ^гс, вычисляющую функцию к(х) е Р(к +1). Очевидно, что к(х) е Р(к +1) и к(х) й Р(к). Отсюда следует, что семейство функций {р(к)}¥_2 является строго возрастающим.

Так как множество Р(к) - конечное, то

Теорема 3. Для любого бесконечного множества Ф вычислимых функций и любого к > 2 выполняется Ф ё Р(к).

В частности, отсюда вытекает, что если Ф = {ф1,ф2,...,,...} , то существует последовательность Р(к) (к1 < к2 < к3 <.< к.; <...) такая, что фх е Р(к,,). Для иллюстрации утверждения теоремы 3 полезно иметь в виду следующие примеры:

1. Ф1 = {1}Г_0 - семейство констант.

2. Ф2 = {х +1}°_0 - семейство сдвигов.

3. Ф3 = {/х}°_0 - семейство прямых, проходящих через начало координат.

4. Ф4 = {х + Л,] _0 - семейство линейных функций.

5. Ф5 = {х1 }1_1 - семейство степенных функций.

Определение 4. Минимальную сложность машины Тьюринга, вычисляющую функцию /, обозначим К(/), т. е. К(/) = тіп {к: / є її (к)}, и назовем её сложностью описания функции с помощью машины Тьюринга.

Пусть /(х)є її(к0) - вычислимая функция, рассмотрим однопараметрическое семейство

функций /п (х) = /(х) + п . Обозначим /(п) = К(/п) - сложность описания функции /п (х).

Теорема 4. Если /п(х) = /(х) + п, то /(п +1)-/(п) < 1, "п є N0.

Доказательство. Рассмотрим машину Тіпс, правильно вычисляющую функцию 1(х) = х + 1, для которой Q = {д0, ^}, А = {0, 1} и П: дД — д1Ь

^0 — д01Е

Пусть существует машина Т = (А, Q, П), А = {0, 1} и |Q| = г, правильно вычисляющая /п (х) = / (х) + п , где п є N0. Построим машину Тв = ТТіпс, получим машину с ^| = г + 1, правильно вычисляющую функцию к(х) = /(х) + п +1. Таким образом, получим /(п +1) < /(п) +1.

Рассмотрим машину Тйес, правильно вычисляющую функцию й(х) = х — 1, для которой Q = {<?0, Я\}, А = {0, 1} и П: дД — Чі0Е

Чі0 —— ^00^

Пусть существует машина Т = (А, Q ,П), А = {0, 1} и ^| = г, правильно вычисляющая g (х) = /(х) + п +1, где п є N0. Построим машину Тх = ТТйес, получим машину с ^| = г + 1, правильно вычисляющую функцию /п (х) = /(х) + п . Таким образом, получим /(п) < /(п +1) +1.

Так как /(п +1) < /(п) +1 и /(п) < /(п +1) +1, то /(п +1) — /(п)

<1.

Следствие 5.

/(п + к)— /(п) < к . Доказательство очевидно.

Применяя теорему 4 к семейству Ф1 констант (/(х) = 0) и к семейству Ф2 сдвигов (/(х) = х), получим, что с ростом п сложность описания не может слишком быстро увеличиваться или слишком быстро уменьшаться. Для наглядности рассмотрим график функции ф(п), дающей оценку сверху /(п) числа состояний машины Тьюринга Т, вычисляющей константу п, от величины этой константы (рис.). Причем ф(п) = /(п) при п < 3 , что доказано перебором всех

машин Тьюринга с числом состояний не больше 3, посредством разработанной программы на языке С++, т. к. число таких машин сравнительно невелико - |т(3)| = 104 976, в то время как |т(4)| составляет порядка 108, что при наших вычислительных ресурсах не позволяет выполнить

полный перебор. Однако нетрудно видеть, что ф(п) -1 < /(п) < ф(п) при п < 5 .

к

к

«

о

н

О

О

о

о

ч

о

к

Величина константы

Верхняя оценка числа состояний машины Тьюринга при вычислении констант

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

Рассмотрим асимптотическое поведение функции Д (п) .

Теорема 6. Пусть у(х)е Е(т) - вычислимая функция и существуют г0, е М0 такие, что п = у(г0) + , причем существует машина Тьюринга Т е х(т), для которой длина активной

зоны влево от начального физического адреса равна к и Д(х) е Р(/). Тогда Д(п) < т + / + у-1(п - г1) + к + + 8, где у-1(п - г1) обозначает некоторое число г такое, что

у(г) = п - г1.

Доказательство. Рассмотрим вспомогательные машины Тьюринга.

1. Машина Т^ е х(/) правильно вычисляет функцию Д(х).

2. Машина Т е х(к) делает отступ от правого края входного слова на величину к. Соответствующая программа для машины Т :

Пг: #11 — #11Д #10 — #20Д #20 —— дз0Л

^к-10 — #00Д

3. Машина Т2 ех(г0 + 3) ставит г0 + 1 единиц на пустой ленте, так что начальный

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

П2: #10 — <?21Я #20 — #31Д #30 — #40Д

#к0 — #к+11Е #к+11 — #к+11Е #к+10 — #00Д

4. Машина Т3 е х(т) правильно вычисляет функцию у(х).

5. Машина Т4 е х(+1) дописывает к входному слову - 1 единиц. Программа для машины Т4, ставящей в общем случае к единиц, приведена ниже:

П4: #11 —— #11Д

#10 —— #21Д #20 — #31Д #30 — #40Д

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

#к0 — #к+11Е #к+11 — #к+11^

#к+10 — #1)0Д

6. Машина Т5 е х(9) производит конкатенацию двух слов, разделенных произвольным числом пустых символов, причем считывающая головка машины изначально находится на втором слове. Программа для машины Т5 представлена ниже:

П5: #11 — #20Z

#20 — #20Ь

#21 — #31Д #30 —— #41Д #40 —— #40Я

#41 —— #51Д

#51 — #11Ь

q50 — q60L q6\ — q60L q60 —— qjQL q70 —— qj0L q7\ — qslL q§l — qglL q§0 — qoOR

Таким образом, получим машину T = ТТТ2Т3Т4Т5 , причем, согласно правилу суперпозиции машин, получим T е t(l + k + z0 + z1 + m + 8), которая правильно вычисляет функцию fn (х). Отсюда следует, что верхняя оценка для сложности описания f (n) < m +1 + ^_1(n — z1) + k + z1 + 8.

Для иллюстрации результата теоремы 6 рассмотрим следующий пример. Возьмем функцию y(х) = 2x . Для вычисления данной функции существует машина Т3 е t(9), удовлетворяющая условиям теоремы 6, причем k = 3. Далее приводится программа для машины Т3.

П3: qil — q2lR

qiO —— qilL q2l — qlOR ql0 — q30L q31 —— q3 lL q30 —— q40L q40 — q80R q4l — q5lR

q50 —— q6lR

q6l — q6lR q60 — q7lR q70 —— q3 lL q80 — qcfiR

Зафиксируем n = l7 и рассмотрим функцию fn (x) . Определим z0 и zl в терминах теоремы 6, тогда получим: z0 = 8, zl = l. Для простоты возьмем в качестве f (х) = х. Очевидно, что простейшая машина, вычисляющая данную функцию, принадлежит множеству t(2), т. е. Tf е t(2). Исходя из утверждения теоремы 6, получим окончательно Т е t(31).

Нетрудно видеть, что наиболее простой в описании алгоритм, ставящий влево от начальной конфигурации n единиц, требует машину Тьюринга Т0 е t(n +1).

Определим сложность описания функции в общем случае для любого n. В терминах теоремы 6 получим: z0 = [n/2], zl = n — 2z0. Исходя из утверждения теоремы 6, получим окончательно Т е t(n — [n / 2] + 22). Определим, при каких значениях параметра n утверждение теоремы 6 может быть полезным. Получим n — [n/2] + 22 < n (неравенство l). Отсюда следует, что для n > 44 машина, построенная по принципу, заложенному в теореме 6, имеет меньшее число внутренних состояний, а следовательно, является более компактным описанием функции fn(x). Для наглядности выберем n = 100 , тогда неравенство l примет следующий вид: 72 < 100. Легко видеть, что асимптотически функция f (n) ведет себя как n / 2 .

Заключение

Рассмотрение функций у(х), растущих быстрее, чем g (х) = 2х, позволяет существенно усилить неравенство 1, т. е. даёт более жесткую оценку для асимптотики функции.

СПИСОК ЛИТЕРАТУРЫ 1. Носов В. А. Основы теории алгоритмов и анализа их сложности. - М.: МГУ, 1992. - 140 с.

Статья поступила в редакцию 9.11.2007

ON ASYMPTOTIC OF COMPLEXITY OF TURING MACHINE WHICH COMPUTES SOME INFINITE SETS OF FUNCTIONS

R. R. Jabarov, N. M. Efremov

Complexity of Turing machine description depends on power of internal alphabet, because the more internal states machine has, the more complex program Turing machine can have and therefore it can compute the more complex function. Exactly such way is used in this article. Let’s define power of internal alphabet \Q\ as complexity of Turing machine T = (Q, A, n). Let’s denote sets of Turing machine ^-complexity x(k). Sets of functions that can be computed by means of Turing machine k-complexity are F(k). K(f) is minimal Turing machine complexity which can compute function f , so K(f) = min {k : f e F(k)}. Let’s denote it as complexity of function description by means of Turing machine. Let’s assume f (x)e F(k0) - computable function so we will view one-

parameter collection of functions fn (x)= f (x) + n . f (n) = K(fn) is complexity of function fn (x) description. Specifically, we have got the following result: Theorem 6. Let y(x) e F(m) - computable function and there are z0, zj e N0 such as n = y(z0) + Zj and there is Turing machine T e x(m) for which the length of active zone left of initial physical address equals k and f (x) e F(l), so

f (n) < m +1 + y j(n -zj) + k + zj + 8, where y j(n -zj) is number z such as y(z) = n - zj.

i Надоели баннеры? Вы всегда можете отключить рекламу.