Научная статья на тему 'СИНТЕЗ БИНАРНЫХ ПРОГРАММ С ПРЕОБЛАДАНИЕМ КОМАНД ПЕРЕАДРЕСУЮЩЕГО ТИПА'

СИНТЕЗ БИНАРНЫХ ПРОГРАММ С ПРЕОБЛАДАНИЕМ КОМАНД ПЕРЕАДРЕСУЮЩЕГО ТИПА Текст научной статьи по специальности «Математика»

CC BY
24
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БИНАРНЫЕ ПРОГРАММЫ / ФУНКЦИЯ ШЕННОНА / АСИМПТОТИЧЕСКИЕ ОЦЕНКИ

Аннотация научной статьи по математике, автор научной работы — Жуков Владимир Владимирович

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

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

SYNTHESIS OF BINARY PROGRAMS WITH PREDOMINANCE OF BRANCHING COMMANDS

In this article, a model of binary programs that implement the logic algebra functions (Boolean functions) is considered. These programs consist of one or several modules, which include the following three types of commands: computational, branching, and procedure call commands. The model under study also allows recursive procedure calls. It means that the procedures can call themselves, either directly or through other procedures, during the program execution. The concept of an arbitrary basis for branching commands is introduced as a generalization of the known models. The methods for calculating the lower and upper bounds of the Shannon function for the complexity of Boolean functions implementation in the class of binary programs are presented. The complexity of a binary program is understood as the integral weight of all commands of its subprograms. The methods allow establishing the Shannon function asymptotic bounds in the case when the specific weight of branching commands is less than the specific weight of computational commands. The obtained results contribute substantially to further development of the theory of synthesis and complexity of discrete control systems.

Текст научной работы на тему «СИНТЕЗ БИНАРНЫХ ПРОГРАММ С ПРЕОБЛАДАНИЕМ КОМАНД ПЕРЕАДРЕСУЮЩЕГО ТИПА»

УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО УНИВЕРСИТЕТА. СЕРИЯ ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

ISSN 2541-7746 (Print) ISSN 2500-2198 (Online)

2021, Т. 163, кн. 3-4 С. 276-290

ОРИГИНАЛЬНАЯ СТАТЬЯ

УДК 519.714.1 (М: 10.26907/2541-7746.2021.3-4.276-290

СИНТЕЗ БИНАРНЫХ ПРОГРАММ С ПРЕОБЛАДАНИЕМ КОМАНД ПЕРЕАДРЕСУЮЩЕГО ТИПА

В.В. Жуков

Московский государственный университет имени М.В. Ломоносова, г. Москва, 119991, Россия

Аннотация

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

Ключевые слова: бинарные программы, функция Шеннона, асимптотические оценки

Введение

Задача синтеза, которая впервые была рассмотрена К. Шенноном [1], состоит в поиске наиболее оптимальных методов построения дискретных управляющих систем для произвольной булевой функции или систем таких функций. Для оценки оптимальности метода синтеза вводится функция Шеннона, которая при заданном значении п равна сложности самой сложной функции, зависящей от п переменных. При этом сложностью функции называют наименьшую сложность управляющей системы, реализующей данную функцию. Под сложностью управляющей системы чаще всего понимают количество элементов в ней или их суммарный вес. Точно таким же образом рассматривают методы синтеза, направленные на оптимизацию схем по задержке.

Рассмотрим модель бинарных программ, расширяющую модели, введенные в работах [2, 3]. Подробный обзор существующих результатов в области синтеза в классах программ и некоторых их подклассах можно найти в работе [3].

Возьмем счетное множество булевых переменных (БП) X = [хх,... ,хп, ...}, которые будут являться аргументами рассматриваемых далее булевых функций. Каждая булева переменная принимает значения из множества В = {0,1}. Булевым кубом размерности п, п е N, где N - множество натуральных чисел, называется п-я декартова степень множества В, которая обозначается Вп, а функцией алгебры логики (ФАЛ) или булевой функцией /(хх,... ,хп) - отображение булева

куба Вп на множество В. Отображение /(х\,..., хп) множества Вп на множество Вт для некоторых натуральных п и т будем называть (п,т) -вектор-функцией. Множество всех булевых функций, зависящих от п переменных, обозначим через Р2 (п), а множество (п, т) -вектор-функций - через Р2^{п). Обозначим также множество всех булевых функций как

Р2 = У Р2(п,

пе N

а множество всех булевых п, т -вектор-функций - как

Р2т = и Р2Л п.

пе N

Введем конечные базисы Б = ..., ф^} и Б = {ф\,..., ф^}, состоящие из Ь булевых функций ф\, ... , ф^ и Ь булевых функций ф\,. .. соответственно, в которых каждая из функций ф^, г = 1, 2,... ,Ь, существенно зависит от к, к ^ 0, переменных, а каждая из функций ф^ , ] = 1, 2,... ,Ь, - от к^ , к^ ^ 0, булевых переменных. Припишем также каждой функции ф^, г = 1, 2,... ,Ь, и ф^ , ] = 1, 2,... ,Ь, некоторые положительные вещественные веса Ь^ и соответственно.

Стандартным базисом для переадресующих команд Бо назовем базис, состоящий из единственной тождественной функции ф х = х и имеющей вес, равный 2А, Л > 0. Стандартным базисом для вычислительных команд принято считать базис Бо = }, состоящий из конъюнкции, дизъюнкции и отрицания.

Бинарной программой £ назовем набор подпрограмм {£1,..., , для каждой из которых задан набор из ш( г), г = 1,2,..., в, входных аргументов, ои^г), г = 1, 2,..., в, выходных аргументов, упорядоченный набор команд Г = = {Г^д,..., Г^}, а также конечный размер области памяти М^ ^ ш(г) + ои^г), используемой данной подпрограммой. Каждая ячейка памяти подпрограмм может содержать значения из множества В . Без ограничения общности считаем, что значения входных аргументов при вызове подпрограммы сохраняются в первые ш(г) ячеек памяти, следующие ои^г) ячеек памяти предназначены для записи выходных значений подпрограммы, а все остальные ячейки могут быть использованы для хранения результатов промежуточных вычислений.

Команды подпрограмм, входящие в наборы Г, г = 1, 2,..., в, могут быть трех типов.

1. Вычислительные команды {ф^; т-1,..., т^.; тои^ описываются символом булевой функции Х1,... ,х^) из заданного базиса Б, номерами входных ячеек памяти т1, .. . ,тг и номером выходной ячейки памяти тои > ш( г). Функционирует вычислительная команда следующим образом: считываются значения из ячеек памяти с номерами т1,..., т, вычисляется функция ф^ с данными значениями аргументов, записывается результат в ячейку памяти с номером т0^. Вес вычислительной команды равен весу , соответствующему булевой функции ф^ .

2. Переадресующие команды {ф^; т1,...,т^.; сызе, с^ие} описываются символом булевой функции х1,...,х^) из базиса Б, номерами ячеек памяти т1,... ,т-£. и номерами команд текущей подпрограммы сызе и с^гие. Переадресующая команда позволяет совершать условный переход на команды с номерами с£а!зе и с^гие. Если значение функции ф^ на наборе, записанном в ячейки памяти т1,... , равно 0, то после выполнения переадресующей команды выполнение подпрограммы продолжается с команды с номером сызе. Если же значение равно 1, то выполнение продолжается с команды с номером с^гие. Значения сызе

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

3. Команды вызова подпрограмм {р; т\,..., т-1пр; т'1,..., т'ои1р} описываются номером вызываемой подпрограммы р, номерами ячеек памяти текущей подпрограммы Ш1,..., т;п(р , значения которых будут использованы как входные аргументы вызываемой подпрограммы, а также номерами ячеек памяти текущей подпрограммы т^,..., т/ццр , куда будут записаны результаты выполнения подпрограммы Хр. Следуя [2], будем считать, что вес команды вызова подпрограммы равен ц ш(р), где ¡л и V - некоторые неотрицательные вещественные константы. В настоящей работе будем рассматривать случай, когда ¡л = 0 и V > 0, то есть вес команды вызова подпрограммы всегда положительный и не зависит от количества аргументов вызываемой подпрограммы.

Вычисление бинарной программы Х происходит следующим образом. Выполнение начинается с первой подпрограммы Х1 с некоторыми заданными значениями входных аргументов х1,...хп, п ^ ш( 1). При выполнении команды вызова как первой подпрограммы, так и других подпрограмм для них выделяется область памяти требуемого размера, копируются значения входных аргументов в первые ячейки памяти, все остальные ячейки памяти, кроме выходных, инициализируются нулями. Выполнение подпрограммы начинается с самой первой команды соответствующей подпрограммы, то есть с команды с номером 1 , и заканчивается при достижении конца подпрограммы. Результатом работы бинарной программы Х является набор значений, записанных в 1) выходных ячеек памяти самой первой вызванной подпрограммы.

Будем говорить, что бинарная программа Х вычисляет булеву функцию /(х1,..., хп) е Рг(п), если вычисление Х для всех 2п наборов входных аргументов х1,... ,хп завершается и результатом является значение функции /(х1,...,хп). Аналогично можно определить вычислимость вектор-функции /(х1,...,хп) е е Р™(п) с помощью заданной бинарной программы Х, отличие лишь в том, что подпрограмма Х 1 должна иметь т выходных ячеек памяти, в которые записывается результат вычисления вектор-функции.

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

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

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

метрами ц = 0, v и ограниченной глубиной рекурсии r как1 . Сложностью

булевой функции f(xi,..., xn) е n) в классе бинарных программ с ограниченной глубиной рекурсии r назовем минимальную сложность программы, реализующей функцию f (xi, .. ., xn):

f = min L(£),

Ее U п r>, E реал. f

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

£п(r(n) = max r>(П.

1. Постановка задачи

Введем следующие величины:

Li Li .Li -, п® = min --, 0ъ = min —

" г=1,2,...,Ъ к^ + 1 " г=1,2,...,Ь, к^ + 1 Б г=1,2,...,Ь, к^

к>0 к>0

В работе [2] было получено следующее утверждение для класса одномодульных бинарных программ, то есть состоящих из одной подпрограммы £1 и не содержащих команд вызова подпрограмм.

Теорема 1. Для функции Шеннона в классе одномодульных бинарных программ справедливо асимптотическое равенство2

Б, Бо, V

(п) ~ шш(пг;,Л) —.

Б, Бо, V К Б ' п

В работе [3] устанавливается следующее асимптотическое равенство для функции Шеннона ^ (п).

Б, Бо, V

Теорема 2. В случае г ^ 2 и п^ ^ А справедливо

yn/r

"в, B0,vx'"' ' ' v si-в

cl{в (n) ~ vr-1Vr(r - 1)-r-1Vrz/nB

В статье [4] представлен следующий результат, который обобщается и обосновывается в настоящей работе.

Теорема 3. В случае г ^ 2 и 2А ^ пб справедливо асимптотическое равенство

_ оп/г

сПГ п ~ г^г-1Уг(г -1)-Г-1УГГ2А.

Б, Бо, V Гп

Нашей задачей является получение асимптотики функции Шеннона для сложности реализации булевых функций в классе одномодульных бинарных программ и п«( п) при пб < пб ив классе многомодульных бинарных программ ип г (п), г ^ 2, в случае &б < пб . Основным результатом работы является следующее утверждение.

1 Нижние индексы Б, Б, v будем, как правило, полностью или частично опускать.

2 Асимптотическое неравенство a(n) < b(n), где n = 1, 2,... , означает, что a(n) < b(n) (1 + + о( 1)), а асимптотическое равенство a(n) ~ b(n) равносильно неравенствам a(n) < b(n) и b(n) < a(n).

Теорема 4. Для функции Шеннона Спг (п) при г =1 и < п^ верно асимптотическое равенство

п

СП1 (п) ~ ПБ -,

а при г ^ 2 и Об < пб верно

,— 2п/г

СПГ (п) ~ г - 1)-(г-1)/г г 0Б—.

V Б Г п

2. Нижняя оценка функции Шеннона для одномодульных программ

Для получения нижних оценок функции Шеннона мощностным методом в заданном классе схем и сначала оценивается сверху число \\Ы(С,п) У попарно неэквивалентных одновыходных схем из данного класса, имеющих п входных переменных и сложность не более С . Затем к данной верхней оценке применяется стандартное мощностное преобразование [5], результатом которого является искомая нижняя оценка.

Сначала получим оценку числа попарно неэквивалентных одномодульных бинарных программ, имеющих п входных аргументов, единственный выходной аргумент и сложность не более С . Оценим число вариантов присвоения типов команд и символов булевых функций из базисов Б, Б. Так как количество функций в базисах Б и Б равно Ь и Ь соответственно, для каждой команды есть Ь + Ь вариантов присвоения. Число команд в одномодульной программе равно 0(С), поэтому общее число вариантов присвоения типов команд и функций из базисов не превосходит

С1£, (1)

где С*1 - некоторая константа3.

Обозначим сложность всех вычислительных команд программы как С , а всех переадресующих команд - С. Также обозначим через N количество переадресующих команд, а через К - общее количество их аргументов, соответствующих ячейкам памяти. Число ячеек памяти М, требующихся для выполнения программы, не превосходит О^С + п + 1, так как команды используют либо ячейки памяти, соответствующие входным и выходным аргументам, либо ячейки памяти, в которые производят запись вычислительные команды.

Оценим сверху количество аргументов вычислительных команд К, соответствующих входным и выходным ячейкам памяти. Пусть для каждой булевой функции фг Е Б, г е 1, 2,... ,Ь, суммарная сложность команд, использующих данную функцию, равна Сг, тогда

ъ х $1 + 1) , + х Сч + 1) ^ , + ^ + 1 С

К = С1—^--1-----+ С^—^- ^ С +-----+ С^) • шах —^—^ —.

¿1 ЬЪ г=1,2,...,Ь и ПБ

Учитывая верхние оценки для М и К, получаем, что число вариантов выбора номеров ячеек памяти для вычислительных команд не превосходит

(О2С + п +1) 1>ПБ, (2)

3 Буквой С с различными индексами будем обозначать константы, зависящие только от базисов Б, Б.

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

(С2 L + n + i)K. (3)

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

(C3Lm + n + 1) LnB-LMl(n-B( kB+i)), (4)

где к б - максимальное число аргументов у булевых функций из базиса Б.

Так как максимум по См, 0 < См С, функции, задаваемой формулой (4), достигается при См = С4С/ log С, в результате получаем следующую верхнюю оценку числа вариантов выбора номеров ячеек памяти вычислительных команд:

К dc+n+1)f"B

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

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

C6N-1. (6)

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

Ребра дерева достижимости определяют N — 1 из 2N аргументов переадресующих команд с точностью до блоков. Для них требуется доопределить, на какую

(5)

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

(C7( 1 + С/С))N-1. (7)

У каждого из оставшихся N +1 аргументов переадресующих команд число вариантов определения номера команды для перехода равно O(С), то есть общее число вариантов не превосходит

(С8СN+1- (8)

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

Перемножая оценки (1), (3), (5), (6), (7), (8) и оценивая их произведение сверху, получим

CgL (es ^оСс + п + l)) C2С + n + 1)K(Cio£( 1 + С/С))N+1. (9)

Будем считать, что n = o(С). Максимум формулы (9) в случае < п-g достигается при С = СцС/ l°g С. В результате получаем, что число попарно неэквивалентных одномодульных бинарных программ сложности не более L с n входными и одним выходным аргументом не превосходит

(С12С qn'B+1. (10)

Применяя стандартное мощностное преобразование к (10), получим следующее утверждение.

Лемма 1. Для функции Шеннона (п) при пg < пg верно асимптотиче-

ское неравенство

on

£ЩЦ(п)>п~Б 2-.

Б n

3. Нижняя оценка функции Шеннона для многомодульных программ

Перейдем к получению нижних оценок функции Шеннона для класса многомодульных бинарных программ с ограниченной глубиной рекурсии r. Оценим число попарно неэквивалентных бинарных программ S из данного класса, сложность которых не превышает С. По сравнению с одномодульными программами, в программе S для каждой команды количество вариантов присвоения ей типа и функционального символа увеличилось на единицу за счет наличия команд вызова подпрограмм и стало равно b + b + 1. Поэтому верхняя оценка общего числа вариантов присвоения типов команд и функций из базисов Б, Б командам программы S имеет вид

C13L. (11)

Далее оценим сверху число вариантов присвоений адресных аргументов переадресующим командам S . Поскольку каждая из N переадресующих команд имеет два адресных аргумента, принимающих O(С) различных значений, количество таких присвоений можно оценить сверху как

(C14£)2N (12)

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

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

Опишем применение одного шага раскрытия рекурсии к бинарной программе Х. Данной процедуре подвергается только подпрограмма Хх бинарной программы X и при этом происходит следующее.

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

2. Номера входных и выходных ячеек памяти в командах вызываемых подпрограмм заменяются в соответствии с аргументами команд вызова подпрограмм.

3. Происходит коррекция номеров команд в аргументах переадресующих команд с целью сохранения эквивалентности.

Для перехода от многомодульной бинарной программы Х с ограниченной глубиной рекурсии г, г ^ 2, к одномодульной программе X* последовательно выполним г — 1 шагов раскрытия рекурсии, удалим подпрограммы Х2,..., Х8, а также все команды вызова подпрограмм из подпрограммы Хх с коррекцией аргументов переадресующих команд. Легко видеть, что полученная бинарная программа Х* эквивалентна исходной программе Х .

Оценим сложность программы Х , получившейся после применения операции раскрытия рекурсии. Обозначим через С суммарную сложность вычислительных и переадресующих команд исходной бинарной программы Х, а через С - суммарную сложность всех команд вызова подпрограмм. Рассмотрим сначала один шаг раскрытия рекурсии. Максимальная сложность команд вызова подпрограмм в Хх может достигать С, если команды данного типа содержатся только в подпрограмме Хх. Так как вес каждой команды вызова подпрограммы равен V, в результате одного шага раскрытия рекурсии происходит замена до С¡V команд на реализации соответствующих им подпрограмм, каждая из которых содержит вычислительные и переадресующие команды с суммарным весом до С и команды вызова подпрограмм с суммарным весом до С. Сложность программы после данной операции можно оценить сверху величиной

при этом максимальный суммарный вес вычислительных и переадресующих команд получившейся программы равен С + (С/V)С, а команд вызова подпрограмм - (С/V)С. Проводя аналогичные рассуждения, получаем, что после г — 1 шагов применения операции раскрытия рекурсии к программе Х с последующим удалением всех команд вызова подпрограмм справедлива следующая оценка:

С + — (С + С"),

При условии С + С ^ С слагаемое (С/V)г С достигает своего максимума при

С = С и с = (г -1) г,

откуда получаем следующее неравенство:

С^ -Г СX)г + о(СЕ)г-1) ^ ^-^Т (СX + С15)г• (13)

Вернемся к оценке числа попарно неэквивалентных бинарных программ. С учетом того что попарно неэквивалентным многомодульным программам соответствуют попарно неэквивалентные одномодульные программы, получаемые в результате раскрытия рекурсии, достаточно оценить количество вариантов определения номеров ячеек памяти для аргументов вычислительных и переадресующих команд программы X*.

Обозначим суммарную сложность всех вычислительных команд одномодуль-ной программы X* как С* , а всех переадресующих команд как С* . Общее число ячеек памяти М* , используемых в программе X* , не превосходит С^С* + п +1, поэтому число вариантов выбора ячеек памяти для аргументов вычислительных и переадресующих команд не превосходит

(С1б£* + п + 1) ^ >въ • (14)

Будем считать, что п = о(С(X*)). Максимальное значение выражения (14) в случае в— < п— достигается при С* = С17С(Х*)/1пС(X*) и оценивается сверху величиной

\£(Е*)/0Й-о19С(Е*)/1П£(Е*)

С18 ШС^) • (15>

Перемножая (11), (12), (15) и оценивая полученное выражение сверху, получим следующую верхнюю оценку числа попарно неэквивалентных многомодульных бинарных программ, реализующих булевы функции от п переменных со сложностью не более чем С :

(£,п)|| ^ (с2оС°21С(С22С(X*))£(Е*Ув£• (16)

При г ^ 2 сложность равна С = о(С(X*)), и при применении к правой части (16) стандартного мощностного преобразования или решении неравенства ||ип(г)(С,п)|| ^ 22 множитель (С20С)°21С не влияет на нижнюю асимптотическую оценку функции Шеннона. Учитывая дополнительно (13), получаем следующее утверждение.

Лемма 2. Для функции Шеннона Спг (п) при г ^ 2 и в- < п— верно асимптотическое неравенство

,— 2п/г

СПГ (п) > гV(г-1)/г(г - 1)-(г-Г)!г {/в- •

V Б г п

4. Верхняя оценка функции Шеннона

Перед получением верхних оценок функции Шеннона опишем построение вспо-

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

бинарной программы X множество из не менее чем к однотипных последова-

тельностей команд Б, где каждая последовательность Б имеет сложность Ьз,

не содержит команд вызова подпрограмм, имеет свой набор входных и выходных ячеек памяти, а также некоторое множество ячеек для промежуточных вычислений. Кроме того, будем считать, что переадресующие команды последовательности S могут осуществлять переход только на команды в пределах данной последовательности или в ее конец. При г = 1 одномодульная бинарная программа £ содержит непосредственно к последовательностей команд Б и имеет сложность, равную кЬз. При г ^ 2 положим Q = Г^^Ч/г—и построим бинарную программу £ с ограниченной глубиной рекурсии г, состоящую из единственной подпрограммы £1, которая содержит \QjLs] последовательностей команд Б, [(г — 1) ^^ команд вызова подпрограммы £1 и О(г) дополнительных команд. Программа функционирует следующим образом.

1. Если выполнение подпрограммы £1 происходит не на последнем уровне рекурсии, то выполняются [(г — 1) ^^ команд вызова подпрограммы £1. При этом на каждом уровне рекурсии у данной подпрограммы существуют входные и выходные ячейки памяти для всех последовательностей команд Б, реализуемых в данном поддереве вычислений, которые распределяются таким образом, чтобы на последнем уровне рекурсии были вычислены последовательности Б для всех требуемых входов и выходов.

2. На последнем уровне рекурсии г происходит вычисление \QjLs] последовательностей команд Б с заданными входами и выходами.

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

4. Легко видеть, что описанная программа реализует не менее [(г — 1)^^Г-1 х x[Q/Lsl ^ к последовательностей команд Б со сложностью, не превосходящей ^ + O(Ls).

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

С(£)^ г Г Vг-1(г — 1)-(г-1) ^ + О. (17)

Пусть Ф(у1,... ,ур) - булева функция, существенно зависящая от всех своих переменных. Следуя [5], будем говорить, что множество ФАЛ О с: Р2(т) является ф-универсальным множеством (ф-УМ) порядка т, если для любой функции д е т) существуют функции д1,..., др е О такие, что д = ф(д1,..., др).

Построить ф -универсальное множество О порядка т можно следующим образом:

1) выбрать параметры в1,..., эр, такие что в! + • • • + вр = 2т ;

2) разбить булев куб Вт на р попарно непересекающихся компонент

Вт = т^ ...Цгр, ту = 0 при Ц^з, \п\ = э»;

3) с учетом существенной зависимости ФАЛ ф(уь ..., Ур) от всех своих переменных выбрать для каждого г, г =1, 2,... ,р, константы а1^,..., ар^ е В, такие что ф(а1,г,. .. ,а—1,1,у1,аг+1,1, .. . ,ар,г) = у4 ф а^ ;

4) определить О как объединение множеств 01 и • • • и , где О^ - множество из всевозможных 2,н функций, равных а^у на всех компонентах ту # т\, то есть

О^ = {¡(хи ...,хт) : Цр1, ...,рт) = а4у чре ту ,Мз, г}.

Построенное ф-универсальное множество порядка т состоит из 2Я1 + ••• + + 2,Эр функций. Докажем следующую лемму о его реализации в классе бинарных программ.

Лемма 3. Пусть в1, ... ,вр - положительные четные числа, такие что Э1 + + • • • + вр ^ 2т . Тогда существует ф - УМ О порядка т, такое что

1) |О| ^ 281 +--- + 2яр ;

2) сложность реализации системы функций из О в классе не превосходит

+ Р-, где в = шах {э1,...,э^.

Доказательство. Построим ф-универсальное множество функций О мощности |О| ^ 2Я1 + • • • + 2Яр описанным выше способом, разбивая булев куб Вт на «полосы» т1,... ,тр, состоящие не более чем из в1,..., вр двоичных наборов соответственно, где под «полосой» булева куба подразумевается множество наборов, лексикографически следующих друг за другом.

Возьмем функцию

д е О <) и рассмотрим ее разложение Шеннона по последней

переменной хт:

д(хь ..., х^ = хтдо( Х1,..., хт-1)У хтд^ Х1,..., хт-1). (18)

Так как мощность г-й «полосы» - четное число, то функции до и д1 принадлежат одному и тому же множеству Ог) всевозможных функций д'(х1,..., хт-1) от т — 1 переменных, равных а^у на «полосах» ту при з # г. Реализуем множество функций Ог) в классе

следующим образом.

1. Построим дешифратор Qm-l порядка т — 1 как множество из 2т-1 последовательностей команд, реализующих всевозможные конъюнкции вида хI1,..., хт— . Сложность каждой такой последовательности равна О(т).

2. Для каждой из 2 функций множества О^ согласно ее совершенной ДНФ построим дизъюнкцию не более 2т-1 входов, подключенных к выходам дешифратора Qm-l.

3. Используя равенство (17) для сложности реализации множеств однотипных последовательностей команд, получаем, что сложность реализации множества О^ в классе программ не превышает О (2^/2+т)/г) .

Суммируя сложности реализации множеств Ог) и применяя равенство (17) для множества из |О| мультиплексорных функций ¡1, участвующих в разложении (18), получаем, что сложность реализации ф -УМ О в классе Ыпг не превышает

О + Р- 2 я/2+т)/г), где в = шах {в1,...,в^.

Вернемся к решению задачи синтеза бинарных программ и получению верхних оценок соответствующих функций Шеннона. Воспользуемся асимптотически наилучшим методом синтеза О.Б. Лупанова [6] в изложении [5] и запишем для произвольной функции /(х1,..., хп) е п) разложение Шеннона по последним п — ц переменным

/ (Х1, . . . , хд , хд+1 , ... , хП хд+ 1 ' ' хП х1,...,х^ , (19)

а = (ая + 1,...,ап) еБп-ч

где /а( х1 ,...,хд) = /(хЛ,...,хч ,ад+1,...,ап).

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

Хд+1, • • • ,хп необходимо вычислить только одну такую функцию, поэтому в начало каждой последовательности добавим переадресующую команду, пропускающую вычисление соответствующей функции, если конъюнкция х^+11 • • • хПп равна нулю. Значения всех 2п-1 требуемых конъюнкций можно предварительно вычислить и записать в некоторые ячейки памяти со сложностью не более -1 + п).

Рассмотрим два случая, отличающиеся выбором функции ф и, соответственно, их реализациями при помощи последовательности вычислительных и переадресующих команд. В первом случае для многомодульных бинарных программ при вб < пб определим функцию ф', равную конъюнкции Ь', Ь' ^ 1, функций ф' е Б с минимальным удельным весом вБ зависящих от г' булевых переменных

г'

ф' = Д ф'(У1+^-1)г, • • •,Уг+(¿-1)г')• ¿=1

Данная функция ф' существенно зависит от Ь'г' переменных и реализуется при помощи Ь' переадресующих команд с функцией ф. В случае равенства нулю некоторой функции ф переадресующие команды выполняют переход на последовательность команд, записывающих значение 0 в качестве результата вычисления функции /(х1, • • •, хп). Если же значение функции ф равно единице, то выполняется переход либо на следующую из Ь' переадресующих команд, либо на последовательность команд, записывающую константу 1 в итоговую ячейку памяти, если текущая переадресующая команда является последней в реализации ф . Сложность дополнительной части программы, необходимой для записи констант 0 и 1 в финальную ячейку памяти, равна 0(1).

Во втором случае рассмотрим одномодульные бинарные программы, для которых пб < ПБ. Выберем функцию ф" как суперпозицию Ь", Ь" ^ 1, мультиплексор-ных функций (л^ф"(у1, • • •, угн), го, по одной из информационных переменных, где ф" соответствует переадресующей команде с минимальным удельным весом пб и зависит от г" булевых переменных. Полученная функция ф" существенно зависит от Ь"(г" + 1) + 1 переменных и может быть реализована при помощи последовательности, состоящей из Ь" переадресующих команд с функцией ф". Адресные аргументы данных команд равны либо номеру следующей команды этой последовательности, если по соответствующей информационной переменной была выполнена суперпозиция, либо адресу последовательности команд, производящей запись значения некоторой функции ф" -универсального множества О" в выходную ячейку памяти программы, в которой располагается итоговое значение функции / х1 , • • • , хп . Дополнительная часть программы, выполняющая запись результата вычисления синтезируемой функции /, является общей для всех остаточных функций разложения (19), ее сложность равна 0(|0"|).

Учитывая все описанные выше конструкции, получаем, что реализация произвольной функции /(х1, • • •, хп) в классе бинарных программ Ыпг включает в себя следующие части.

1. Вычисление всех функций ф-универсального множества О порядка ц со сложностью 0(Г |О| + р- 2я/2+ч)/г^ по лемме 3. При этом |О| оценивается сверху как р ■ 2я.

2. Множество из 2п-1 однотипных последовательностей команд, реализующих одну из функций ф , ф . Для оценки сложности данного множества используется неравенство (17).

3. Реализация дешифратора порядка п — ц, необходимого для осуществления выбора одной из 2п-1 функций ф со сложностью

-1 + п).

4. Дополнительные последовательности команд, выполняющие запись итогового результата вычисления функции /(х1, • • • ,хп), сложность которых не превышает О -фЩ).

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

Выбирая значения параметров q = [3 log n|, s = \n — 5 log n| и оценивая сложность построенной программы, получим следующую лемму о верхних оценках функции Шеннона для сложности реализации булевых функций в классе бинарных программ.

Лемма 4. Для функции Шеннона r (n) при r =1 и пв < пв верно асимптотическое неравенство

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

on

Ln(1> {п)<,пъ

а при r ^ 2 и в б < пб верно

£n(r)(n) < rv(г-1)/г(r — 1)-(г-1)/г Пв

■ 2n/r

в rfn

Из данной леммы и лемм 1, 2 о нижних оценках функции Шеннона вытекает

утверждение теоремы 4.

Благодарности. Работа выполнена при финансовой поддержке Минобрнауки

РФ в рамках реализации программы Московского центра фундаментальной и прикладной математики по соглашению № 075-15-2019-1621.

Литература

1. Шеннон К. Работы по теории информации и кибернетике. - М.: Изд-во иностр. лит., 1963. - 830 с.

2. Грибок С.В. О реализации функций алгебры логики в некоторых классах программ: Дис. ... канд. физ.-мат. наук. - М., 2003. - 90 с.

3. Жуков В.В. Методы синтеза бинарных программ, допускающих рекурсивный вызов процедур // Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и кибернетики. - 2021. -№ 3. - С. 3-12.

4. Жуков В.В. Синтез некоторых типов бинарных программ, допускающих рекурсивный вызов процедур ограниченной глубины // Проблемы теоретической кибернетики: Материалы XIX междунар. конф. - Казань: Казан. фед. ун-т, 2021. - С. 53-55.

5. Ложкин С.А. Лекции по основам кибернетики. - М.: Изд. отдел фак. ВМиК МГУ, 2004. - 253 с.

6. Лупанов О.Б. Асимптотические оценки сложности управляющих систем. - М.: Изд-во МГУ, 1984. - 137 с.

Поступила в редакцию 23.08.2021

^Куков Владимир Владимирович, аспирант факультета вычислительной математики и кибернетики

Московский государственный университет имени М.В. Ломоносова

ул. Ленинские Горы, д. 1, г. Москва, 119991, Россия E-mail: zhvv117@gmail.com

ISSN 2541-7746 (Print) ISSN 2500-2198 (Online) UCHENYE ZAPISKI KAZANSKOGO UNIVERSITETA. SERIYA FIZIKO-MATEMATICHESKIE NAUKI (Proceedings of Kazan University. Physics and Mathematics Series)

2021, vol. 163, no. 3-4, pp. 276-290

ORIGINAL ARTICLE

doi: 10.26907/2541-7746.2021.3-4.276-290

Synthesis of Binary Programs with Predominance of Branching Commands

V.V. Zhukov

Moscow State University, Moscow, 119991 Russia E-mail: zhvv117@gmail.com

Received August 23, 2021 Abstract

In this article, a model of binary programs that implement the logic algebra functions (Boolean functions) is considered. These programs consist of one or several modules, which include the following three types of commands: computational, branching, and procedure call commands. The model under study also allows recursive procedure calls. It means that the procedures can call themselves, either directly or through other procedures, during the program execution. The concept of an arbitrary basis for branching commands is introduced as a generalization of the known models. The methods for calculating the lower and upper bounds of the Shannon function for the complexity of Boolean functions implementation in the class of binary programs are presented. The complexity of a binary program is understood as the integral weight of all commands of its subprograms. The methods allow establishing the Shannon function asymptotic bounds in the case when the specific weight of branching commands is less than the specific weight of computational commands. The obtained results contribute substantially to further development of the theory of synthesis and complexity of discrete control systems.

Keywords: binary programs, Shannon function, asymptotic bounds

Acknowledgments. This study was supported by the Ministry of Education and Science of the Russian Federation as part of the program of the Moscow Center for Fundamental and Applied Mathematics under agreement no. 075-15-2019-1621.

References

1. Shannon C. Raboty po teorii informatsii i kibernetike [Papers in Information Theory and Cybernetics]. Moscow, Izd. Inostr. Lit., 1963. 830 p. (In Russian)

2. Gribok S.V. On the implementation of logic algebra functions in some classes of programs. Cand. Phys.-Math. Sci. Diss. Moscow, 2003. 90 p. (In Russian)

3. Zhukov V.V. Ways of synthesizing binary programs admitting recursive call of procedures. Moscow Univ. Comput. Math. Cybern., 2021, vol. 45, no. 3, pp. 87-95. doi: 10.3103/S0278641921030079.

4. Zhukov V.V. Synthesis of some types of binary programs admitting recursive call of procedures with limited depth. Problemy teoreticheskoi kibernetiki: Materially XIX mezhdunar. konf. [Problems of Theoretical Cybernetics: Proc. XIX Int. Conf.]. Kazan, Kazan. Fed. Univ., 2021, pp. 53-55. (In Russian)

5. Lozhkin S.A. Lektsii po osnovam kibernetiki [Lectures on the Principles of Cybernetics]. Moscow, Izd. Itd. Fak. VMiK MGU, 2004. 235 p. (In Russian)

6. Lupanov O.B. Asimptoticheskie otsenki slozhnosti upravlyayushchikh sistem [Asymptotic Complexity Bounds of Control Systems]. Moscow, Izd. MGU, 1984. 137 p. (In Russian)

/ Для цитирования: Жуков В.В. Синтез бинарных программ с преобладанием ко-( манд переадресующего типа // Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. -\ 2021. - Т. 163, кн. 3-4. - С. 276-290. - аок 10.26907/2541-7746.2021.3-4.276-290.

For citation: Zhukov V.V. Synthesis of binary programs with predominance of branching commands. Uchenye Zapiski Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2021, vol. 163, no. 3-4, pp. 276-290. doi: 10.26907/2541-7746.2021.3-4.276-290. (In Russian)

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