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

2019 Математические основы надёжности вычислительных и управляющих систем №43

МАТЕМАТИЧЕСКИЕ ОСНОВЫ НАДЁЖНОСТИ ВЫЧИСЛИТЕЛЬНЫХ И УПРАВЛЯЮЩИХ СИСТЕМ

УДК 519.718

О СКОЛЬ УГОДНО НАДЁЖНОЙ РЕАЛИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ НЕВЕТВЯЩИМИСЯ ПРОГРАММАМИ С ОПЕРАТОРОМ УСЛОВНОЙ ОСТАНОВКИ В БАЗИСАХ С ОБОБЩЁННОЙ КОНЪЮНКЦИЕЙ1

С. М. Грабовская*, М. А. Алехина**

* Пензенский государственный университет, г. Пенза, Россия **Пензенский государственный технологический университет, г. Пенза, Россия

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

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

DOI 10.17223/20710410/43/5

ON THE ARBITRARILY RELIABLE IMPLEMENTATION OF BOOLEAN FUNCTIONS BY NON-BRANCHING PROGRAMS WITH A CONDITIONAL STOP OPERATOR IN BASES WITH GENERALIZED CONJUNCTION

S.M. Grabovskaya*, M. A. Alekhina**

* Penza State University, Penza, Russia ** Penza State Technological University, Penza, Russia

E-mail: swetazin@mail.ru

The implementation of Boolean functions by non-branching programs with a conditional stop operator is considered in a complete finite basis containing a generalized conjunction, i.e. a function of the form xf1 fox^2 (ai, a2 E {0,1}). The computational operators are assumed to go into faulty states of an arbitrary type independently of each other with a probability not exceeding the value N(B), i.e. unreliability of the most unreliable ("bad") of the basic elements. In addition, conditional stop operators are also unreliable and independently of each other are prone to two types of faults: the first and second kind. The fault of the first kind is characterized by the fact

1 Работа поддержана грантом РФФИ № 17-01-00451-а

that on admission to the stop-operator input unit this operator does not work with a probability 5 £ (0,1/2) and, therefore, the program work continues. The fault of the second kind is that on admission to the stop-operator input zero this operator works with probability n £ (0,1/2), and, hence, the program work stops. Denote ц = max{5, n}. To increase the reliability of source programs, we use the function g(xi,x2,x3,x4) of the form (x^1 x%2 V x33x\4)35 £ {0,1},i £ {1,2,3,4, 5}) and the method of multiple duplication of circuits and programs. We prove that if the complete finite basis B contains a function of the form x^1 &xi?2 (a1,a2 £ {0,1}), then any Boolean function f can be implemented by a non-branching program with unreliability no more than [0,84]*  5,17  N(B) for any natural t with N(B) £ (0,1/960] and ц £ (0,1/10]. So, it is proved that an arbitrary Boolean function can be implemented with an arbitrarily reliable non-branching program.

Keywords: Boolean function, non-branching program, conditional stop operator, synthesis, reliability.

Введение

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

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

Неветвящиеся программы, реализующие булевы функции, относятся к числу основных модельных объектов математической теории синтеза, сложности и надёжности управляющих систем. Неветвящиеся программы с оператором условной остановки [1] отличаются от неветвящихся программ наличием управляющей команды — команды условной остановки, дающей возможность досрочного прекращения работы программы при выполнении определённого условия, а именно при поступлении единицы на вход оператора условной остановки (который ещё называют стоп-оператором).

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

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

Рассматривается реализация булевых функций неветвящимися программами с оператором условной остановки в полном конечном базисе, содержащем обобщённую двухместную конъюнкцию x"1 &Х22 (a1,a2 £ {0,1}). Все операторы (и вычислительные, и остановки) предполагаются ненадёжными, причём неисправности вычислитель-

ных операторов произвольные [8]. Таким образом, решаемая задача имеет самую общую формулировку (по сравнению с ранее опубликованными работами, например [9]) с одним лишь ограничением — полный базис не является произвольным, он содержит обобщённую двухместную конъюнкцию.

Прежде чем перейти к изложению результатов этой работы, сформулируем необходимые понятия, определения [1, 9] и ранее известные результаты.

1. Основные понятия, определения, ранее известные результаты

Пусть X = {х\,...,хп} — множество независимых булевых переменных, х = = (х\,... , хп) — набор независимых переменных, п Е N. Введём множество переменных У = {у\,... ,У1}, которое назовём множеством внутренних переменных, I Е N. Кроме того, обозначим через г выходную переменную.

Пусть далее а Е У и{г}, Ъ\,... ,Ъа Е X и У и{г} (в Е {1,..., п}), К — булева функция из базиса В, зависящая не более чем от в переменных. Вычислительной командой (или вычислительным оператором) р назовём выражение р : а = К(Ъ\,... , Ъа). Переменную а назовём выходом вычислительного оператора, переменные Ъ\,... ,Ъа — его входами.

Пусть теперь а Е X и У и {г}. Командой остановки (стоп-оператором) р назовём выражение р : з£ор(а). Переменную а назовём входом оператора остановки р.

Последовательность Рг = р\.. .р^ .. .рь, состоящая из вычислительных операторов и операторов условной остановки, называется неветвящейся программой с условной остановкой, если при любом ] Е {1,... ,Ь} каждый вход команды р^ есть либо независимая переменная, либо выход некоторого вычислительного оператора.

Неветвящаяся программа работает в дискретные моменты времени Ь = 0,1, 2,..., не изменяет значения независимых переменных и изменяет значения внутренних переменных у г (г Е {1,...,/}) и значение выходной переменной г.

Результат действия программы Рг на наборе х обозначим через Рг(х). Значение Рг (х) равно значению выходной переменной г в момент остановки программы. Программа Рг вычисляет п-местную булеву функцию f (х), если при отсутствии неисправностей в программе для любого х Е {0,1}п справедливо равенство Рг(х) = f (х).

Пусть Р2 — множество всех булевых функций, т.е. функций вида f(х\,...,хп) : {0,1}п ^ {0,1}, п Е N. Рассмотрим реализацию булевых функций неветвящими-ся программами с оператором условной остановки в полном конечном базисе В = = {в\,... , вд} С Р2 (д Е содержащем функцию вида х^1 &х^2 (а\, а2 Е {0,1}). Обозначим через Ег базисный элемент с функцией ег (г Е {1,... , д}). Пусть в\ = х^1 &х^2, обозначим данную базисную функцию через е&, а соответствующий ей базисный элемент— через Е&.

Будем считать, что неисправности вычислительных операторов программы произвольные [8, с. 480] и статистически независимые, т.е. вычислительные операторы переходят в неисправные состояния независимо друг от друга.

Предполагается, что операторы условной остановки также ненадёжны и независимо друг от друга подвержены неисправностям двух типов: первого и второго рода. Неисправность первого рода характеризуется тем, что при поступлении единицы на вход стоп-оператора он с вероятностью 8 Е (0,1/2) не срабатывает и, следовательно, работа программы продолжается. Неисправность второго рода такова, что при поступлении нуля на вход стоп-оператора он с вероятностью п Е (0,1/2) срабатывает и, следовательно, работа программы прекращается. Обозначим ^ = тах{8, п}.

Говорят, что программа с ненадёжными операторами реализует булеву функцию f (х), если при отсутствии неисправностей во всех её операторах на каждом входном наборе а = (а^ а2,..., ап) значение выходной переменной г равно f (а).

Замечание 1. Схему из функциональных элементов можно считать частным случаем неветвящихся программ, а именно неветвящейся программой, в которой нет стоп-операторов.

Ненадёжностью N (Рг) программы Рг назовем максимальную вероятность ошибки на выходе программы Рг при всевозможных входных наборах. Надёжность программы Рг равна 1 — N (Рг).

Обозначим N (В) = max{N (Е1),...^ (Е)}, т.е. N (В) — ненадёжность самого ненадёжного («плохого») из базисных элементов.

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

Теорема 1 [4]. Пусть В — произвольный полный конечный базис. Тогда любую булеву функцию f можно реализовать схемой Б в базисе В, ненадёжность которой N (Б) ^ 5,17  N (В) при N (В) е (0,1/960].

Для повышения надёжности исходных схем (программ) будем использовать функцию #(Ж1,Ж2,Ж3,Ж4) вида (хд1 хд2 V хдзхд4)(а е {0,1}, г е {1, 2, 3,4, 5}). Справедлива

Теорема 2 [10]. Пусть В — полный конечный базис и существует такое N, что любую булеву функцию f можно реализовать неветвящейся программой Rf с ненадёжностью N(Rf) ^ N. Пусть ^(х^ х2, х3, х4) —функция вида (х^1 х^2 V х^3х^4)°"Б (а е {0,1}, г е {1, 2, 3, 4, 5}), Ргй —программа, реализующая функцию ^(х1, х2, х3, х4), а N(Ргй) —ненадёжность программы Ргй. Тогда любую булеву функцию f в этом базисе можно реализовать такой программой Pгf, что справедливо неравенство

N(Рг/-) ^ тах^1, V0} + 4N  N(Ргй) + 4N2,

где V1 и V0 —вероятности ошибок программы Ргй на наборах (а1, а2, <г3, а4) и (а1, а2, а3, а4) соответственно.

2. Основные результаты

Для функции вида х^1 &х0?2 (а1,а2 е {0,1}) с точностью до переименования переменных возможны три случая: х1&х2; х1&х2; х1&х2.

Теорема 3. Если полный конечный базис В содержит функцию вида х^1 &ха2 (а1,а2 е {0,1}), то для любой булевой функции f при любом £ е N можно построить такую неветвящуюся программу Pгf с оператором условной остановки, реализующую f, что N (Р^) ^ (0,84)*  5,17  N (В) при N (В) е (0,1/960] и ц е (0,1/10].

Для доказательства теоремы 3 сформулируем и докажем леммы 1-3.

Лемма 1. Если полный конечный базис содержит функцию х1&х2, то в этом базисе функцию ^(х1, х2, х3, х4) = х1х2 V х3х4 можно реализовать такой неветвящейся программой Ргй, что max{v0, V1} = 0 и N (Ргй) ^ N (В) + 2^, где V0, V1 —вероятности ошибок программы Ргй на наборах (1,1,1,1) и (0, 0, 0, 0) соответственно; ^ = тах{$, п}.

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

Stapiy) z = Хз stop(x4) z = x4

Найдём вероятности v0 и v1 ошибок программы Prg на наборах (1,1,1,1) и (0,0, 0, 0) соответственно. Пусть b = (1,1,1,1), тогда g(b) = 1. При возникновении неисправности вычислительного оператора либо стоп-оператора на выходе программы непременно появится значение одной из свободных переменных x1, x3 или x4 равное 1. Поэтому для программы, в которой каждой выходной переменной z приписана свободная переменная, ошибки операторов не влияют на результат работы. Следовательно, v0 = 0. Пусть теперь b = (0,0,0,0), тогда g(b) = 0. Рассуждая аналогично предыдущему случаю, получим v1 = 0. Таким образом, max{v0, v1} = 0.

Поскольку программа Prg содержит один вычислительный оператор (ненадёжность его равна N(E&)) и два стоп-оператора (ненадёжность каждого из них не превосходит её ненадёжность удовлетворяет неравенству N(Prg) ^ N(E&)+2^. Очевидно, что N(E&) ^ N(B). Таким образом, N(Prg) ^ N(B) + 2^.

Лемма 2. Если полный конечный базис содержит функцию x1&x2, то в этом базисе функцию g(x1,x2,x3,x4) = x1x2 V x3x4 можно реализовать такой неветвящей-ся программой Prg, что max{v0,v1} = 0 и N(Prg) ^ N(B) + 2^, где v0,v1 —вероятности ошибок программы Prg на наборах (0,1,1,1) и (1,0, 0, 0) соответственно; ^ = max{#, п}.

Доказательство. Пусть полный конечный базис B содержит функцию e&(x1 ,x2) = x1&x2. Построим в этом базисе неветвящуюся программу Prg, реализующую функцию g(x1,x2,x3,x4) = x1x2 V x3x4:

z = x2 y = x1&x2 stoP(y) z = x3 stop(x4) z = x4

Найдём вероятности v0 и v1 ошибок программы Prg на наборах (0,1,1,1) и (1,0, 0, 0) соответственно. Пусть b = (0,1,1,1), тогда g(b) = 1. При возникновении неисправности вычислительного оператора или стоп-оператора на выходе программы непременно появится значение одной из свободных переменных x2, x3 или x4 равное 1. Следовательно, v0 = 0. Пусть теперь b = (1, 0, 0, 0), тогда g(b) = 0. Рассуждая аналогично, получим v1 = 0. Таким образом, max{v0, v1} = 0.

Поскольку программа Prg содержит один вычислительный оператор (ненадёжность его равна N(E&)) и два стоп-оператора (ненадёжность каждого из них не превосходит её ненадёжность удовлетворяет неравенству N(Prg) ^ N(E&)+2^. Очевидно, что N(E&) ^ N(B). Таким образом, N(Prg) ^ N(B) + 2^.

Лемма 3. Если полный конечный базис содержит функцию x1&x2, то в этом базисе функцию g(x1,x2,x3,x4) = (x1 V x2)(x3 V x4) можно реализовать такой невет-вящейся программой Prg, что max{v0,v1} = 0 и N(Prg) ^ N(B) + 2^, где v0,v1 — вероятности ошибок программы Prg на наборах (1,1,1,1) и (0, 0, 0, 0) соответственно; ^ = max{#, п}.

Доказательство. Пусть полный конечный базис B содержит функцию e&(xi, x2) = Построим в этом базисе неветвящуюся программу Prg, реали-

зующую функцию g(x1,x2, x3,x4) = (x1 V x2)(x3 V x4):

z = x1 y = X1&X2

z = X3 stop(x3) z = x4

Найдём вероятности v0 и v1 ошибок программы Prg на наборах (1,1,1,1) и (0, 0, 0, 0) соответственно. Пусть b = (1,1,1,1), тогда g(b) = 1. При возникновении неисправности вычислительного оператора либо стоп-оператора на выходе программы непременно появится значение одной из свободных переменных x1, x3 или x4 равное 1. Следовательно, v0 = 0. Пусть теперь b = (0, 0, 0, 0), тогда g(b) = 0. Аналогично рассуждая, получим v1 = 0. Таким образом, max{v0, v1} = 0.

Поскольку программа Prg содержит один вычислительный оператор (ненадёжность его равна N (E&)) и два стоп-оператора (ненадёжность каждого из них не превосходит её ненадёжность удовлетворяет неравенству N(Prg) ^ N(E&)+2^. Очевидно, что N(E&) ^ N(B). Таким образом, N(Prg) ^ N(B) + 2^.

Доказательство теоремы 3.

Пусть B — полный конечный базис, содержащий хотя бы одну из функций x1&x2, X1&x2 или Х1&Х2; операторы условной остановки и вычислительные операторы некоторой неветвящейся программы ненадёжны; N(B) £ (0, 1/960] и ^ £ (0, 1/10]; f — любая булева функция. Реализуем её схемой S, ненадёжность которой N(S) ^ 5,17 • N(B) при N(B) £ (0,1/960] (см. теорему 1).

В зависимости от того, какая из функций x1 &x2, X1&x2 или Х1&Х2 содержится в базисе B, по одной из лемм 1-3 можно построить такую программу Prg, что max{v 1,v0} = 0 и N(Prg) ^ N(B) + 2^. Чтобы построить программу Рг(1), реализующую функцию f, воспользуемся теоремой 2, взяв в качестве программы Rf схему S (см. замечание 1) и полагая N = 5,17 • N(B). Тогда ненадёжность программы Pr(1) удовлетворяет неравенству

N(Prf1)) ^ 4N(N(Prg) + N) ^ 4N(2^ + N(B) + 5,17 • N(B)) ^ ^ 4N(0,2 + 6,17/960) ^ 0,826 • N,

т.е. N(Prf^) ^ 0,826 • N. Тогда верно неравенство

N(Prf1)) ^ 0,826 • N ^ 0,826 • 5,17 • N(B).

Выполним ещё один шаг, т. е. построим программу Prf2), реализующую функцию f, но

заменим N на 0,826 • N ив качестве Rf возьмём построенную программу Pr(1). Тогда справедливо неравенство

N(Prf2)) ^ 4 • 0,826 • N(2^ + N(B) + 0,826 • N) ^ ^ 4 • 0,826 • N(0,2 + 1/960 + 0,826 • 5,17/960) ^ (0,826)2N.

Далее методом индукции по числу итераций Ь (Ь ^ 2) нетрудно доказать, что функ-

цию f можно реализовать программой Prf^, ненадёжность которой N (Prf) ^ (0,826)*N. Выполним индуктивный переход. Пусть функцию f можно реализовать программой Prf*-1), ненадёжность которой N(Prf*-1)) ^ (0,826)*-1N. Проделаем ещё

D

одну итерацию, т.е. построим программу Prf и оценим её ненадёжность с помощью теоремы 2:

N(Prf) ^ 4(0,826)*-1N(2ц + N(B) + (0,826)t-1N) ^ ^ 4(0,826)*-1N(0,2 + 1/960 + (0,826)*-1N) ^ ^ 4(0,826)*-1N(0,2 + 1/960 + 0,826  5,17  N(B)) ^ ^ 4(0,826)*-1N(0,2 + 1/960 + 0,826  5,17/960) ^ (0,826)t-1N  0,826 = (0,826)*N.

Поскольку N = 5,17  N(B), функцию f можно реализовать программой Prf , ненадёжность которой N (Prf) ^ (0,826)*  5,17  N (B).

Следствие 1. Если полный конечный базис B содержит функцию вида x^1 &x(0,2 (a1,a2 G {0,1}), то любую булеву функцию f можно реализовать сколь угодно надёжной неветвящейся программой Prf с оператором условной остановки при N(B) G (0,1/960] и ц G (0,1/10].

Доказательство. Пусть p — произвольное сколь угодно малое положительное число. Покажем, что, проделав достаточное число итераций, функцию f можно реализовать программой, ненадёжность которой не больше p.

По теореме 3 функцию f можно реализовать программой, ненадёжность которой N (Prf) ^ (0,826)*  5,17  N (B) ^ (0,826)*  5,17/960. Решим неравенство (0,826)* 5,17/960 ^ p относительно переменной t и получим (0,826)* ^ 960 p/5,17, откуда t ^ log0,826(960  p/5,17). Выберем наименьшее целое t, удовлетворяющее последнему неравенству (обозначим его t0). Тогда программа Prf) функционирует с ненадёжностью N(Prf*0)) ^ p.

Заключение

Доказано, что если полный конечный базис B содержит функцию вида x^1 &x'0,2 (а1,а2 G {0,1}), то любую булеву функцию можно реализовать сколь угодно надёжной неветвящейся программой, операторы которой ненадёжны, причём неисправности вычислительных операторов произвольные, при N(B) G (0,1/960] и ц G (0,1/10].

ЛИТЕРАТУРА

1. Чашкин А. В. О среднем времени вычисления значений булевых функций // Дискретный анализ и исследование операций. Сер. 1. 1997. Т. 4. № 1. С. 60-78.

2. Alekhina M. A. Synthesis and complexity of asymptotically optimal circuits with unreliable gates // Fundamenta Informaticae. 2010. No. 104 (3). P. 219-225.

3. Алехина М. А., Васин А. В. О базисах с коэффициентом ненадежности 2 // Матем. заметки. 2014. Т. 95. №2. С. 170-201.

4. Алехина М. А., Гусынина Ю. С., Шорникова Т. А. Верхняя оценка ненадежности схем в полном конечном базисе (в P2) при произвольных неисправностях элементов // Изв. вузов. Математика. 2017. №12. С. 70-75.

5. Алехина М. А. О синтезе надежных схем из функциональных элементов x/y при однотипных константных неисправностях на выходах элементов // Вест. Моск. ун-та. Матем. Механ. 1991. №5. С. 80-83.

6. Алехина М. А. О надежности схем в произвольном полном конечном базисе при однотипных константных неисправностях на выходах элементов // Дискретная математика. 2012. Т. 24. №3. С. 17-24.

7. Алехина М. А., Курышева В. В. О надежности схем в базисе «антиконъюнкция» при константных неисправностях на входах элементов // Изв. вузов. Математика. 2016. № 7. С. 3-9.

8. Яблонский С. В. Избранные труды / под ред. В.Б.Алексеева, В.И.Дмитриева. М.: МАКС Пресс, 2004. 584с.

9. Алехина М. А., Грабовская С. М. О надежности неветвящихся программ в произвольном полном конечном базисе // Изв. вузов. Математика. 2012. №2. С. 13-22.

10. Грабовская С. М. О методах повышения надежности неветвящихся программ с оператором условной остановки // Междунар. науч.-технич. конф. «Проблемы автоматизации и управления в технических системах — 2015, посвященная 70-летию Победы в Великой Отечественной войне». Пенза: Изд-во ПГУ, 2015. С. 339-342.

REFERENCES

1. Chashkin A. V. O srednem vremeni vychisleniya znacheniy bulevykh funktsiy [On the average time for the computation of the values of Boolean functions]. Diskretn. Anal. Issled. Oper., Ser. 1, 1997, vol.4, no. 1, pp.60-78.

2. Alekhina M. A. Synthesis and complexity of asymptotically optimal circuits with unreliable gates. Fundamenta Informaticae, 2010, no. 104 (3), pp. 219-225.

3. Alekhina M. A. and Vasin A. V. On bases with unreliability coefficient 2. Math. Notes, 2014, vol.95, no. 1-2, pp. 147-173.

4. Alekhina M. A., Gusynina Yu. S., and Shornikova T. A. Upper estimate of unreliability of schemes in full finite basis (in P2) for arbitrary faults of gates. Russian Mathematics, 2017, vol.61, no. 12, pp. 70-72.

5. Alekhina M. A. O sinteze nadezhnykh skhem iz funktsional'nykh elementov x/y pri odnotipnykh konstantnykh neispravnostyakh na vykhodakh elementov [On the synthesis of reliable circuits of x/y functional elements at the same type constant faults at the element outputs]. Vest. MSU. Matem. Mekhan., 1991, no. 5, pp. 80-83.

6. Alekhina M. A. On reliability of circuits over an arbitrary complete finite basis under singletype constant faults at outputs of elements. Discrete Math. Appl., 2012, vol.22, no.4, pp.383-391.

7. Alekhina M. A. and Kurysheva V. V. On the circuits reliability in anticonjunction basis with constant faults at gate inputs. Russian Mathematics, 2016, vol. 60, no. 7, pp. 1-6.

8. Yablonskiy S. V. Izbrannye trudy [Selected works]. Eds. V. B. Alekseev and V. I. Dmitriev. Moscow, MAKS Press Publ., 2004. 584 p.

9. Alekhina M. A. and Grabovskaya S. M. Reliability of nonbranching programs in an arbitrary complete finite basis. Russian Mathematics., 2012, vol.56, no.2, pp. 10-18.

10. Grabovskaya S. M. O metodakh povysheniya nadezhnosti nevetvyashchikhsya programm s operatorom uslovnoy ostanovki [On methods of raise the reliability of non-branching programs with a conditional stop operator]. Problems of Automation and Control in Technical Systems. Proc. Int. Conf., dedicated to the 70th anniversary of the Victory in the Great Patriotic War, Penza, Russia, May 19-21, 2015). Penza, Penz. State Univ., 2015, pp. 339-342.