2019 Математические основы надёжности вычислительных и управляющих систем №43
УДК 519.718.7
СИНТЕЗ ЛЕГКОТЕСТИРУЕМЫХ СХЕМ ПРИ ПРОИЗВОЛЬНЫХ КОНСТАНТНЫХ НЕИСПРАВНОСТЯХ НА ВХОДАХ И ВЫХОДАХ ЭЛЕМЕНТОВ1
К. А. Попков
Институт прикладной математики им. М. В. Келдыша РАН, г. Москва, Россия
Доказаны следующие утверждения: для любого натурального к существует базис из булевых функций от не более чем 2к + 2 переменных (от не более чем 4к + 2 переменных), в котором любую булеву функцию, кроме константы 1, можно реализовать схемой из функциональных элементов, неизбыточной и допускающей проверяющий тест длины не более 3 (соответственно, диагностический тест длины не более 4) относительно не более к произвольных константных неисправностей на входах и выходах элементов. Показано, что при рассмотрении только произвольных константных неисправностей на входах элементов указанные оценки длин тестов можно понизить до 2.
Ключевые слова: схема из функциональных элементов, произвольная константная неисправность, проверяющий тест, диагностический тест.
БСТ 10.17223/20710410/43/6
SYNTHESIS OF EASILY TESTABLE LOGIC NETWORKS UNDER ARBITRARY STUCK-AT FAULTS AT INPUTS AND OUTPUTS OF GATES
K. A. Popkov
Keldysh Institute of Applied Mathematics, Moscow, Russia E-mail: kirill-formulist@mail.ru
Two binary vectors are called k-adjacent if they differ in at most k components, where k e N. For a e {0,1} and s e N, let as be the Boolean vector (a,..., a) with s coordinates a. For each natural k, consider the bases B(k) = = Mxi,... ,x2fc+2),xi ...£fc+i V Xi . ..Xfc+i ,x, 0} and B'(k) = {^(xi,..., £2fc+2), {(x^ ..., x3k+2),n(xi,...,x4k+2),x,0}, where ^(xi,...,x2k+2) is an arbitrary non-self-dual Boolean function taking the value a on the vector a2k+2 and the value a on all other vectors k-adjacent to this vector; {(xi,..., x3k+2) is an arbitrary Boolean function taking the value a on the vector a3k+2, the value a on all other vectors k-adjacent to this vector, and the value a on all vectors k-adjacent to the vector (ak+i, a2k+i); n(xi,... , x4k+2) is an arbitrary Boolean function taking the value 1 on the vector a4k+2, the value 0 on all other vectors k-adjacent to this vector, and the value a on all vectors k-adjacent to the vector (a2k+i, a2k+i). Let Dk (^(/) (Dk (io)(/), D'k (i)(/), Dk (io)(/)) be the least length of a fault detection test (fault detection test, diagnostic test, diagnostic test, respectively) for irredundant logic networks consisting of logic gates in the basis B(k) (basis B(k), basis B'(k), basis B'(k), respectively), implementing given Boolean function /(xi,... ,xn), and having at most k arbitrary
1 Работа выполнена при поддержке РФФИ, проект № 18-01-00337.
stuck-at faults on inputs of gates (on inputs and/or outputs of gates, on inputs of gates, on inputs and/or outputs of gates, respectively). Let a Boolean function f (xi,..., xn) be called palindromic if it takes the same value on any two opposite binary n-tuples. The following facts are obtained. The quantity Dk ^)(f) equals 0 iff f is an identical function (i.e., f = Xj for some i e {1,..., n}) and equals 2 otherwise. The quantity Dk (io) (f) equals 0 iff f is an identical function, equals 1 iff f = 0, equals 2 iff f is not an identical or palindromic function, equals 3 iff f is a palindromic function and f ^ 0,1, and is undefined iff f = 1. The quantity D'k (I)(f) equals 0 iff f is an identical function and equals 2 otherwise. The quantity Di (IO) (f) equals 0 iff f is an identical function, equals 1 iff f = 0, equals 2 iff f = Xj for some i e {1,... ,n}, equals 3 iff f is not a self-dual function and f ^ 0,1, equals 4 iff f is a self-dual function and f e {x1,..., xn,x1,... ,xn}, and is undefined iff f = 1. For each k e N, the equality Dk (IO) (f) = 4 holds true under n ^ 3, and in the case k ^ 2, the proportion of those Boolean functions f in n variables, for which D'k (IO)(f) = 4, tends to 1 under n ^
Keywords: logic network, arbitrary .stuck-at fault, fault detection test, diagnostic test.
Введение
В работе рассматривается задача синтеза легкотестируемых схем, реализующих заданные булевы функции. Логический подход к тестированию электрических схем предложен С. В. Яблонским и И. А. Чегис в [1]; этот подход применим также к тестированию схем из функциональных элементов [2 - 4]. Пусть имеется схема из функциональных элементов S с одним выходом, реализующая булеву функцию f (xn), где xn = (xi,... , xn). Под воздействием некоторого источника неисправностей один или несколько элементов схемы S могут перейти в неисправное состояние. В результате схема S вместо исходной функции f (Xn) будет реализовывать некоторую булеву функцию g(Xn), вообще говоря, отличную от f. Все такие функции g(Xn), получающиеся при всевозможных допустимых для рассматриваемой задачи неисправностях элементов схемы S, называются функциями неисправности данной схемы.
Введём следующие определения [2-4]. Проверяющим тестом для схемы S называется такое множество T наборов значений переменных x1,... , xn, что для любой отличной от f (xn) функции неисправности g(xn) схемы S в T найдётся набор а, на котором f (а) = д(а). Диагностическим тестом для схемы S называется такое множество T наборов значений переменных x1,... , xn, что T является проверяющим тестом и, кроме того, для любых двух различных функций неисправности g1(xn) и g2(xn) схемы S в T найдётся набор а, на котором д1(а) = g2(cr). Число наборов в T называется длиной теста. В качестве тривиального диагностического (и проверяющего) теста длины 2n для схемы S всегда можно взять множество, состоящее из всех двоичных наборов длины n. Тест называется полным, если в схеме могут быть неисправны сколько угодно элементов, и единичным, если в схеме может быть неисправен только один элемент. Единичные тесты обычно рассматривают для неизбыточных схем [4, с. 110-111], т.е. для таких схем, в которых любая допустимая неисправность любого одного элемента приводит к функции неисправности, отличной от исходной функции, реализуемой данной схемой (такие функции неисправности называют нетривиальными).
Назовём проверяющий (диагностический) тест k-проверяющим (k-диагностическим ), если в схеме могут быть неисправны не более k элементов, где k Е N. Будем рассматривать такие тесты только для k-неизбыточных схем [5, с. 68], в которых любая
допустимая неисправность не менее одного и не более k элементов приводит к нетривиальной функции неисправности. Очевидно, что понятия 1-проверяющего теста, 1-диагностического теста и 1-неизбыточной схемы совпадают с понятиями единичного проверяющего теста, единичного диагностического теста и неизбыточной схемы соответственно.
Любое множество булевых функций будем называть базисом.
Пусть зафиксирован вид неисправностей элементов, B — произвольный функционально полный базис и T — единичный проверяющий тест для некоторой схемы из функциональных элементов S в базисе B. Введём следующие обозначения: пусть DBn(T) —длина теста T; DBn(S) = min DBn(T), где минимум берётся по всем единичным проверяющим тестам T для схемы S; Djfnf) = min Djfn(S), где минимум берётся по всем неизбыточным схемам S в базисе B, реализующим функцию f; DBn(n) = max D^f), где максимум берётся по всем булевым функциям f от n переменных, для которых определено значение D^nf). Функция DBn(n) называется функцией Шеннона длины единичного проверяющего теста. По аналогии с функциями Djfn можно ввести функции Djn, D£п, D^, D^ и D^-д для соответственно полного проверяющего, k-проверяющего, единичного, полного диагностического и k-диагностического тестов, зависящие от T, S, f и n (в определениях функций Djn(f) и D^(f) не предполагается неизбыточность схем, а в определениях функций Djn(f) и D^(f) предполагается k-неизбыточность схем). Так, например, Djд(п) —функция Шеннона длины k-диагностического теста.
Перечислим основные результаты, касающиеся тестирования схем из функциональных элементов. Класс допустимых неисправностей функциональных элементов ограничим константными неисправностями на входах и выходах элементов, а также только на входах элементов, при которых значение на неисправном входе (выходе) любого элемента становится равно некоторой булевой константе. Неисправности на входах и выходах элементов называются однотипными константными типа p, если эта константа одна и та же для каждого неисправного элемента и равна p, и произвольными константными, если эта константа может быть равна как 0, так и 1 для каждого неисправного элемента независимо от неисправностей других элементов. Для удобства над буквой D после символов, обозначающих базис, через точку с запятой будем ставить символы «0,1» или «p» в случаях, когда в схемах допускаются соответственно произвольные константные неисправности или однотипные константные неисправности типа p, p Е {0,1}, на входах/выходах элементов, а под буквой D после символов, обозначающих вид функции, — символы «(IO)» или «(I)» в случаях, когда в схемах допускаются неисправности соответственно на входах и выходах элементов или только на входах элементов. Вполне разумно предполагать, что если в базисе содержится булева константа а, то у элемента, её реализующего, нет входов и не может быть неисправности типа а на его выходе.
В [4, с. 116] для базиса Жегалкина B1 = {&, ф, 1, 0} показано, что D^'O'O)(n) ^ ^ n + 3; при этом используется метод построения схем из работы [6]. К. К. Салуджа
*B -Ol Llog22kJ
и С. М. Редди в [7] получили оценку D^_n1-IO-)(n) ^ 4 + Y1 СП; наличие звёздоч-
г=1
ки над буквой D обусловлено тем, что в указанной работе рассматривались схемы, содержащие, помимо входных переменных x1,... , xn, дополнительную входную переменную h0, вместо которой при реализации функций подавалась булева константа, но которая принимала значения как 0, так и 1 на наборах из теста. Д. С. Романовым и Е.Ю.Романовой в [8] для базисов B1 = {&, ф, 1}, B'/ = {&, ф, ~} установлены
неравенства О^щю)(п) ^ 16 и ОВП'(°о)(п) ^ 16; в частности, при п £ 14 улучшен упомянутый результат из [4] (любая схема в базисе Б[ является также схемой в базисе В). Н. П. Редькин в [9-11] для базиса В2 = {&, V, —} получил оценки
ОВЙР„(п) < 4 (21п 1 + 2ГП1-), ^(п) < 4 (21п 1 + 2ГПI-1) и ^(п) <
соответственно, где р = 0 или 1. В работе [12] для любого натурального к и для любой булевой константы р доказано существование базиса (к,р), состоящего из булевой функции от тах(к + 1; 3) переменных и функции X, для которого, в частности, О^щю)Р(п) = 2 при п £ 1 и О^щг)'1'Р(п) = 1 при п £ 0, а также существование базиса В4(к,р), состоящего из булевой функции от не более чем 2,5к + 2 переменных и отрицания этой функции, для которого, в частности, ОвДцГО)Р(п) = 2 и О^д^'р(п) = 1 при п £ 0 (следствия 1-4 и двойственные им результаты).
В данной работе рассматриваются к-проверяющие и к-диагностические тесты при к Е N а в качестве неисправностей функциональных элементов — произвольные константные неисправности на входах и выходах элементов, а также только на входах элементов. Определены базисы В5(к) и В6(к), состоящие из булевых функций от не более чем 2к + 2 и 4к + 2 переменных соответственно, для которых доказаны равенства 0Д(п) = 0Д(п) = 2 при п £ 0, О^1 (п) = 3 при п £ 2 и ^¡^(п) = 4
при п £ 3 (следствия 1-4 и теорема 5).
В дальнейшем для краткости верхние индексы 0,1 у величин вида ОвЕ?б(к)'0'1 и ОВб(к);°д, зависящих от / или п, будем опускать.
Введём обозначения 0г = 0,..., О, 1г = 1,..., 1, где г Е N и {0}.
г г
Два двоичных набора называются противоположными, если они различаются во всех компонентах. Будем называть два двоичных набора к-соседними, если они различаются не более чем в к компонентах.
1. Проверяющие тесты
Рассмотрим базис В5(к) = {^(х2к+2), —(хк+1), X, 0}, где —(хк+1) = х1... хк+1 V V х1.. . Хк+ь а ^(х2к+2) —произвольная несамодвойственная булева функция (определение самодвойственной булевой функции можно найти, например, в [13, с. 16]), для которой выполнены следующие условия:
(I) ^(а2к+2) = а для а = 0,1;
(II) ^(1) = а, где а = 0,1, а 1 — любой двоичный набор длины 2к + 2, к-соседний с набором (а2к+2), кроме него самого.
Отметим, что условия (1), (11) однозначно определяют значения функции ^(х2к+2) на всех наборах, кроме наборов ровно с к + 1 нулевой и к + 1 единичной компонентами. Для выполнения условия несамодвойственности необходимо и достаточно, чтобы на каких-то двух противоположных наборах ровно с к + 1 нулевой и к + 1 единичной компонентами функция ^ принимала одинаковые значения.
Легко видеть, что функция — обладает следующими свойствами:
(III) -(х, у, ...,у) = X ф у ф 1;
к
(1у) -(о7) = 0, где 1' — любой двоичный набор длины к +1, отличный от наборов (0к+1) и (Р+1).
Любой функциональный элемент, реализующий функцию вида ^(Х2к+2) (вида ф(Хк+1), Х, 0), будем называть ^-элементом (соответственно, ф-элементом, инвертором, элементом «константа 0»).
Назовём булеву функцию f (Хп), где п ^ 1, тождественной, если f = Хг для некоторого г Е {1,..., п}.
Лемма 1. Любую тождественную булеву функцию f(Хп) можно реализовать к-неизбыточной схемой в базисе В5(к), допускающей к-проверяющий тест длины 0 относительно неисправностей на входах и выходах элементов.
Доказательство. Функцию f, очевидно, можно реализовать схемой, не содержащей функциональных элементов. У такой схемы нет ни одной функции неисправности, поэтому пустое множество является для неё к-проверяющим тестом. ■
Лемма 2. В случае f = 0 справедливы равенства ) = 0, ^-щю)^) = 1.
Доказательство. Функцию f можно реализовать схемой 5, состоящей из одного элемента «константа 0» (обозначим этот элемент через Е). Он не имеет входов, поэтому пустое множество является для данной схемы к-проверяющим тестом относительно неисправностей на входах элементов, откуда следует равенство ) = 0. При рассмотрении неисправностей на входах и выходах элементов единственной возможной неисправностью схемы Б является неисправность типа 1 на выходе элемента Е, при которой схема станет реализовывать константу 1 . Указанная неисправность обнаруживается на любом двоичном наборе длины п, поэтому ) ^ 1. С другой стороны, выход любой схемы в базисе В5(к), реализующей константу 0, очевидно, не может совпадать ни с одним из её входов, поэтому он является выходом некоторого функционального элемента. Тогда при неисправности типа 1 выхода этого элемента получающаяся схема станет реализовывать константу 1 , которую надо отличить от функции f хотя бы на одном наборе, откуда следует, что ^-щю)^) ^ 1. и
Лемма 3. Для любой к-неизбыточной схемы в базисе В5(к), реализующей не тождественную и отличную от константы 0 булеву функцию f (Хп), любой к-проверяющий тест относительно неисправностей на входах элементов содержит хотя бы два набора.
Доказательство. Выход любой к-неизбыточной схемы 5, реализующей функцию f, не может совпадать ни с одним из её входов, поэтому он является выходом некоторого функционального элемента Е, отличного от элемента «константа 0» и, как следствие, имеющего хотя бы один вход. Тогда при неисправности типа а, а Е {0,1}, любого фиксированного входа этого элемента получающаяся схема будет реализовы-вать нетривиальную функцию неисправности, которая может отличаться от функции f (Хп) только на тех наборах, на которых в случае отсутствия неисправностей в схеме Б на указанном входе элемента Е возникает значение а. Данные два множества наборов при а = 0 и а =1 не пересекаются, а в любой к-проверяющий тест для схемы Б относительно неисправностей на входах элементов должно входить хотя бы по одному набору из каждого из этих множеств. ■
Назовём булеву функцию f (Хп) палиндромной, если на любой паре противоположных наборов длины п она принимает одинаковые значения.
Будем говорить, что функциональный элемент Е' расположен в схеме Б ниже функционального элемента Е, если в этой схеме существует ориентированный путь от Е к Е'.
Введём обозначение ав = а фв Ф 1, где а, в Е {0,1}. Очевидно, что а1 = а, а0 = а,
1е = в и 0е = в.
Лемма 4. Любую не палиндромную булеву функцию f (Хп) можно реализовать к-неизбыточной схемой в базисе В5(к), состоящей только из ^-элементов и инверторов и допускающей к-проверяющий тест {¿0,5^} относительно неисправностей на входах и выходах элементов, где а0 и —произвольные два противоположных двоичных набора длины п, такие, что f (а0) = 0 и f (01) = 1.
Замечание 1. Существование таких наборов а0 и следует из того, что функция f не является палиндромной.
Доказательство леммы 4- Пусть А = [{^(х2к+2)}] —замыкание множества {^(х2к+2)}, тогда А С Т01 в силу условия (1) (определения замыкания и замкнутого класса Т01 можно найти, например, в [13] на с. 14 и 34 соответственно). Докажем, что А = Т01. Как было отмечено выше, функция ^ принимает одинаковые значения на каких-то двух противоположных наборах длины 2к + 2, содержащих к + 1 нулевую и к + 1 единичную компоненты. Без ограничения общности это наборы (0к+1, 1к+1) и (1к+1,0к+1). Если ^(0к+1, 1к+1) = ^(1к+1, 0к+1) = 0, то из определения функции ^ нетрудно получить, что <^(х,... , х, у,... , у) = ху, <^(х,... , х, у,... , у, ху, ху) = х V у и
к+1 к+1 к к
<^(х,..., х, х V у,..., х V у, х V уг, х V уг) = х V уг; (1)
если же
^(0к+1,1к+1) = ^(1к+1, 0к+1) = 1, то из определения функции ^ получим, что <^(х,... , х, у,..., у) = х V у, <^(х,... , х, у,... , у, х V у, х V у) = ху и выполнено соотно-
к+1 к+1 к к шение (1). Таким образом, {х V уг, ху} С А, следовательно, Т01 = [{х V уг, ху}] С А (равенство Т01 = [{хVуг, ху}] установлено, например, в [13, с. 41]). Отсюда и из соотношения А С Т01 получаем, что А = Т01, т. е. любую булеву функцию Л,(хга) из класса Т01 можно выразить формулой ф^, над множеством {^(х2к+2)}. Тогда существует схема в базисе В5(к), моделирующая формулу ф^ и состоящая только из входных переменных х1,... , хп и ^-элементов, выход каждого из которых, кроме выходного, соединён ровно с одним входом ровно одного элемента.
На наборе (ага) на всех 2к + 2 входах и на выходе каждого элемента схемы в силу условия (1) возникнет значение а, где а = 0,1. Предположим, что среди всех входов и выходов элементов схемы есть не менее одного и не более к неисправных. Из всех элементов схемы, у которых хотя бы один вход и/или выход неисправны, выберем произвольный «нижний» элемент Е, ниже которого в схеме не существует элемента с указанным свойством (это можно сделать, так как схема 5 конечна и не содержит ориентированных циклов). Пусть значение на выходе элемента Е, если он неисправен, либо значение на произвольном неисправном входе элемента Е, если выход этого элемента исправен, равно 5, 5 Е {0,1}.
Докажем, что значение на выходе этого элемента на наборе ($га) в схеме равно 5. Если неисправен выход элемента Е, то утверждение очевидно. Если этот выход исправен, то хотя бы один из входов элемента Е неисправен и значение на нём равно 5. Тогда на наборе ($га) значения не менее чем на одном и не более чем на к входах этого элемента в схеме отличны от «правильных», т. е. от 5, поскольку всего в этой схеме неисправны не более к входов/выходов элементов, а выходы элементов в ней не ветвятся. Тогда в силу условия (11) значение на выходе элемента Е на наборе (5П) в схеме 5 равно 5, что и требовалось доказать.
Далее изменение значения на выходе элемента Е на наборе (°га) в схеме с «правильного» значения 8 на 8 пройдёт по цепочке до выхода схемы (здесь снова используются тот факт, что всего в этой схеме неисправны не более к входов/выходов элементов, а выходы элементов в ней не ветвятся, и условие (И)). Таким образом, неисправность схемы будет обнаружена на наборе (8П). Отсюда следует, что данная схема к-неизбыточна и множество {(0га, 1га)} является для неё к-проверяющим тестом.
Пусть <01 = (<ь ... , <„) и /(Хп) = f (х^1 ,... , х£п). Тогда 0о = (<1, ... , <„),
/'(0п) = f (0СТ1,... , ) = f (<1, ...,<„) = f (<0о) = 0, /'(1п) = f (1СТ1,..., ) = f (<1, ...,<„) = f (<1) = 1,
поэтому f'(Хп) Е Т01. Значит, существует к-неизбыточная схема 5/< в базисе В5(к), реализующая функцию f' и допускающая к-проверяющий тест из наборов (0га) и (1П). Для каждого г Е {1, . . . , п} в случае < г = 1 подадим на вход данной схемы, отвечающий переменной хг, саму эту переменную, а в случае = 0 соединим каждый вход каждого элемента схемы 5//, на который подавалась переменная хг, с выходом (своего) инвертора, на вход которого подадим переменную Хг. Полученную схему (с тем же выходным элементом, что и у схемы 5/<) обозначим через 5; легко видеть, что на её выходе реализуется функция f '(х^1 ,... , х^п) = f (Хп).
Заметим, что неисправность на входе и/или выходе каждого «добавленного» инвертора схемы 5 равносильна некоторой неисправности на входе элемента, соединённого с выходом этого инвертора. Поэтому можно считать, что неисправными в схеме 5 могут быть только входы/выходы элементов из её подсхемы 5/<. На наборе <01 на все входы подсхемы 5// по построению поступят единицы, а на наборе <0о — нули. Множество {(0П), (1™)} позволяет обнаружить любую неисправность не более к входов/выходов элементов в этой подсхеме. Отсюда следует, что схема 5 является к-неизбыточной и допускает к-проверяющий тест из наборов <00 и <01. ■
Лемма 5. Любую палиндромную булеву функцию f (Хп), отличную от константы 0, можно реализовать схемой в базисе В5(к), к-неизбыточной и допускающей к-про-веряющий тест длины 2 относительно неисправностей на входах и выходах элементов, кроме неисправности типа 1 на выходе выходного элемента схемы.
Доказательство. Существуют такие два противоположных набора длины п, на каждом из которых функция f принимает значение 1, поскольку f = 0. Обозначим тот из них, первая компонента которого равна единице, через <01, а другой — через <00. Пусть <1 = (<1,... , <п) и f (Хп) = f (Хп) ф Х1 ф 1. Тогда <1 = 1, <00 = (<1,... , <п),
/ (00) = f (<0) Ф <1 Ф 1 = 1 Ф 0 Ф 1 = 0, / (01) = f (01) Ф <1 Ф 1 = 1 Ф 1 Ф 1 = 1,
поэтому f (Хп) —не палиндромная функция. Тогда в силу леммы 4 существует к-неиз-быточная схема 5' в базисе В5(к), реализующая функцию f и допускающая к-прове-ряющий тест из наборов 00 и <01 относительно неисправностей на входах и выходах элементов. Соединим выход данной схемы со входом ф-элемента Е, отвечающим переменной Х1, а на все остальные входы этого элемента подадим переменную Х1 . Выход элемента Е объявим выходом полученной схемы, которую обозначим через 5. В силу свойства (111) она реализует функцию
Ф(/ (Хп), Х1,..., Х1) = ; (Хп) Ф Х1 Ф 1 = f (Хп) Ф Х1 Ф 1 Ф Х1 Ф 1 = f (Хп). к
При отсутствии неисправностей в схеме 5 в силу равенств f (01) = 1, = 1 и f (а0) = 0 на все входы элемента Е на наборе а1 поступят единицы, а на наборе а0 — нули. Если выход элемента Е исправен, а хотя бы один из его входов или из входов/выходов элементов подсхемы 5' неисправен, то хотя бы на одном из этих наборов не менее чем на одном и не более чем на к входах элемента Е возникнут «неправильные» значения, а тогда в силу свойства (1у) значение на выходе элемента Е, т. е. на выходе схемы 5, изменится, поэтому неисправность будет обнаружена на одном из наборов 0О, 01. Наконец, неисправность типа 0 на выходе элемента Е обнаруживается на любом из этих двух наборов, так как f (а0) = f (а1) = 1. Поэтому схема 5 является к-неизбыточной относительно неисправностей на входах и выходах элементов, кроме неисправности типа 1 на выходе её выходного элемента, и допускает к-проверяющий тест из наборов а0 и а1 относительно неисправностей указанного вида. ■
Теорема 1. Для любой булевой функции f (хп) справедливо равенство пВв(к) ) 0, если f — тождественная функция или f = 0,
Дк-П(1)(/) = 1 о
2 в остальных случаях.
Доказательство. Вместо Д^-Пф^) для краткости будем писать ). Равенство ) = 0 в случаях, когда f — тождественная функция и f = 0, следует из лемм 1 и 2 соответственно. Если функция f не тождественная и отлична от константы 0, то неравенство ) £ 2 вытекает из леммы 3, а неравенство ) ^ 2 — из лемм 4 и 5. ■
Следствие 1. Для любого п £ 0 справедливо равенство Д^-щ^п) = 2.
Лемма 6. Не существует схем в базисе В5(к), реализующих константу 1 и к-неиз-быточных относительно неисправностей на входах и выходах элементов.
Доказательство. Выход любой схемы в базисе В5(к), реализующей константу 1, очевидно, не может совпадать ни с одним из её входов, поэтому он является выходом некоторого функционального элемента. Тогда при неисправности типа 1 на выходе этого элемента получающаяся схема по-прежнему будет реализовывать константу 1 , т. е. исходная схема к-избыточна. ■
Очевидно, что никакая тождественная функция не является палиндромной, а константа 0 является палиндромной функцией.
Теорема 2. Для любой булевой функции f (хп), отличной от константы 1, справедливо равенство
пБб(к) ( г)
Дк-П (Ю) и )
'0, если f — тождественная функция,
1, если f = 0,
2, если f — не тождественная и не палиндромная функция,
3, если f — палиндромная функция и f = 0.
В (к)
Если f = 1, то значение ^.-П (¡^^) не определено.
Доказательство. Вместо Д^-щю^) для краткости будем писать ). В случае f = 1 значение ) не определено в силу леммы 6. Равенства ) = 0, если функция f тождественная, и ) = 1, если f = 0, следуют из лемм 1 и 2 соответственно. В случае, когда функция f не тождественная и не палиндромная, неравенство ) £ 2 следует из леммы 3, а ) ^ 2 — из леммы 4.
Пусть f — палиндромная функция и f ф 0, 1. В силу леммы 5 функцию f можно реализовать схемой 5 в базисе В5(к), к-неизбыточной и допускающей к-проверяющий тест длины 2 относительно неисправностей на входах и выходах элементов, кроме неисправности типа 1 на выходе выходного элемента схемы. Добавим в этот тест любой двоичный набор длины п, на котором функция f принимает значение 0. На нём обнаруживается неисправность типа 1 на выходе выходного элемента схемы 5 (возможно, при наличии в ней других неисправных входов/выходов элементов). Поэтому данная схема к-неизбыточна относительно неисправностей на входах и выходах элементов и допускает к-проверяющий тест длины не более 3 относительно неисправностей указанного вида. Отсюда следует, что ) ^ 3.
Докажем неравенство ) ^ 3. Предположим, что это не так, т. е. ) ^ 2. В силу леммы 3 имеем ) ^ 2, поэтому ) = 2. Значит, существует к-неизбыточная схема 5' в базисе В5(к), реализующая функцию f и допускающая к-проверяющий тест из каких-то двух наборов П1 и П2. Пусть х^1 ,... , х^ —все существенные переменные функции f. Предположим, что ^-е (слева) компоненты наборов П1 и П2 совпадают для некоторого ] Е {1,...,з} и равны а. Переменная х^. обязана подаваться хотя бы на один вход хотя бы одного элемента схемы 5', поскольку х^. Е {х^1 ,... }. Тогда неисправность типа а этого входа нельзя обнаружить ни на одном из наборов П^П2; противоречие. Следовательно, наборы П1 и П2 различаются в каждой из ¿1-й, ... , ¿5-й компонент.
Далее, пусть П' —набор, противоположный набору П1. Тогда f (П1) = f (П') в силу палиндромности функции f. Наборы П' и П2 совпадают в ¿1-й, ..., ¿5-й компонентах, а функция f(Хп) существенно зависит только от переменных х^1 ,... , поэтому f (П') = f (П2). Таким образом, f (П1) = f (П2). Отсюда следует, что неисправность типа f (П1) на выходе выходного элемента схемы 5' нельзя обнаружить ни на одном из наборов П1,П2, т.е. множество {П1 ,П2} не является к-проверяющим тестом для этой схемы. Полученное противоречие означает, что ) ^ 3. ■
Следствие 2. Для любого п ^ 2 справедливо равенство ^^-щю^п) = 3.
Замечание 2. Среди всех схем, построенных при доказательстве верхних оценок величин ) и ^^щю)/) в теоремах 1 и 2 соответственно, элемент «констан-
та 0» использовался только в построении схем, реализующих тождественный нуль, а ф-элемент — только в построении схем, реализующих отличные от нуля палиндромные функции (причём в единственном числе).
2. Диагностические тесты
Пусть £(Х3к+2), п(Х4к+2) — булевы функции, удовлетворяющие следующим условиям при а = 0,1:
(у) £(а3к+2) = а;
(у1) на всех наборах, к-соседних с набором (а3к+2), кроме него самого, функция £ принимает значение а;
(уп) на всех наборах, к-соседних с набором ра = ^ак+1, (°2к+^ , функция £ принимает
значение а; (у111) п(а4к+2) = 1;
(1х) на всех наборах, к-соседних с набором (а4к+2), кроме него самого, функция п принимает значение 0;
(х) на всех наборах, к-соседних с набором = ^а2к+1, (°2к+^, функция п принимает значение а.
На всех остальных двоичных наборах длины 3к + 2 (длины 4к + 2) функция £ (соответственно п) может принимать произвольные значения.
Покажем, что каждая из функций £(х3к+2), п(х4к+2) определена корректно, т.е. множества наборов, на которых она принимает значения 0 и 1, не пересекаются. Заметим, что для любого а Е {0,1} набор (а3к+2) отличается от каждого из наборов
(а3к+2), ра по крайней мере в (2к + 1) компонентах, поэтому любой набор, к-сосед-
ний с набором (а3к+2), отличается от каждого из наборов ^<а3к+^, ра по крайней мере в (к +1) компонентах, т. е. не может быть к-соседним ни с одним из этих наборов. Набор (а3к+2) отличается от набора ра в (к + 1) компонентах, поэтому не является к-соседним с этим набором. Кроме того, наборы р0 и р1 различаются в (3к + 2) компонентах, поэтому никакой набор, к-соседний с набором р0, не может быть к-соседним с набором р1. Из приведённых рассуждений и условий (у)-(уп) следует, что множества наборов, на которых функция £(х3к+2) принимает значения 0 и 1, не пересекаются, значит, она определена корректно.
Далее, для любого а Е {0,1} набор (а4к+2) отличается от набора 01 в (2к + 1) компонентах, поэтому никакой набор, к-соседний с набором (а4к+2), не может быть к-соседним с набором Наборы 00 и 01 различаются в (4к + 2) компонентах, поэтому никакой набор, к-соседний с набором 00, не может быть к-соседним с набором Кроме того, любые два из наборов (04к+2), (14к+2) и 00 различаются по крайней мере в (2к + 1) компонентах, поэтому не являются к-соседними. Из приведённых рассуждений и условий (уш)-(х) следует, что множества наборов, на которых функция п(х4к+2) принимает значения 0 и 1, не пересекаются, значит, она определена корректно.
Рассмотрим базис В6(к) = {^(х2к+2),£(х3к+2), п(х4к+2), х, 0}, где ^(х2к+2) — булева функция из базиса В5(к). Любой функциональный элемент, реализующий функцию вида £(х3к+2) (п(х4к+2)), будем называть £-элементом (соответственно п-элементом).
По аналогии с леммами соответственно 1, 2, 3 и 6 доказываются следующие утверждения.
Лемма 7. Любую тождественную булеву функцию f (хп) можно реализовать к-неизбыточной схемой в базисе В6(к), допускающей к-диагностический тест длины 0 относительно неисправностей на входах и выходах элементов.
Лемма 8. В случае f = 0 справедливы равенства Д^-Д^^) = 0, Д^-Дк^^) = 1.
Лемма 9. Для любой к-неизбыточной схемы в базисе В6(к), реализующей не тождественную и отличную от константы 0 булеву функцию f (хп), любой к-диагности-ческий тест относительно неисправностей на входах элементов содержит хотя бы два набора.
Лемма 10. Не существует схем в базисе В6(к), реализующих константу 1 и к-неизбыточных относительно неисправностей на входах и выходах элементов.
Через /а-(хп) будем обозначать булеву функцию, принимающую значение 1 на наборе 0 и 0 на всех остальных наборах длины п.
Лемма 11. Любую не палиндромную булеву функцию f (хп), принимающую значения 0 и 1 на каких-то противоположных наборах о0 и 01 соответственно, можно реализовать схемой в базисе В6(к), к-неизбыточной и допускающей к-диагностический тест {00,0'1} относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента схемы исправен, причём все её функции неисправности принадлежат множеству ^ ф /а0, f ф /5-1, f ф /а0 ф /5-1}.
Доказательство. Пусть /' = / ф 1*0 ф /5-1 ф 1. Тогда справедливы соотношения
/'(сто) = /(сто) ф 1*оЫ ф 1.1 (сто) ф 1 = 0 ф 1 ф 0 ф 1 = 0, (2)
/'(5ч) = /(5-1) ф 1*о 0*1) ф 1*1 (С1) ф 1 = 1 ф 0 ф 1 ф 1 = 1, (3)
из которых следует, что функция /'(Хп) не является палиндромной.
Построим схему 5 в базисе В6(к), реализующую функцию /(Хп) (рис. 1). Схема 5 состоит из (3к + 2) подсхем 51,... , 53к+2 и выходного £-элемента Е, входы которого соединяются с выходами этих подсхем (1-й вход — с выходом подсхемы 51, ..., (3к + 2)-й вход — с выходом подсхемы 53к+2). Каждая из подсхем 51,... , 5к+1 реализует функцию /(Хп), а каждая из подсхем 5к+2,..., 53к+2 — функцию /'(Хп), причём каждая из подсхем 51,... , 53к+2 является к-неизбыточной схемой, состоящей только из ^-элементов и инверторов и допускающей к-проверяющий тест {а0 ,(51} относительно неисправностей на входах и выходах элементов; существование таких схем следует из леммы 4. При этом используется тот факт, что функции / и /' не являются палин-дромными, а также соотношения /(5о) = 0, /(а1) = 1, (2) и (3).
(*!,..., Х„)
Рис. 1. Схема 5
Докажем, что построенная схема 5 в случае отсутствия в ней неисправностей реализует функцию /(Хп). Всюду ниже в доказательстве леммы 11 предполагаем, что а — произвольное число из множества {0,1}. На любом двоичном наборе 5а (5а = 5а), на котором функция / принимает значение а, на выходе каждой из подсхем 51,... , 5к+1 возникнет значение а, а на выходе каждой из подсхем 5к+2,... , 53к+2 —значение /'(5а) = /(5а) ф 1*0(5а) ф 1*1 (5а) ф 1 = а ф 0 ф 0 ф 1 = а, поскольку 5а Е {5о,51} (действительно, 5а = сга по определению и 5а = аа в силу того, что /(5а) = а = /(сга)). Тогда на входы элемента Е будет подан в точности набор ра, а на его выходе, т. е. на выходе схемы 5, возникнет значение £(ра) = а = /(5а) в силу условия (уп). Далее, на наборе аа на выходе каждой из подсхем 51,... , 5к+1 возникнет значение /(5а) = а, а на выходе каждой из подсхем 5к+2,... , 53к+2 — значение
/'(5а) = /(<Га) ф 1*а (<5а) ф 1*а(^а) ф 1 = а ф 1 ф 0 ф 1 = а.
Тогда на входы элемента Е будет подан в точности набор (<53к+2), а на его выходе, т.е. на выходе схемы 5, возникнет значение £(<53к+2) = а = /(аа) в силу условия (у). Таким образом, на выходе схемы 5 реализуется функция /(Хп).
Найдём все возможные функции неисправности схемы 5 относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента Е схемы исправен. Неисправность на г-м входе элемента Е равносильна неисправности такого
же типа на выходе выходного элемента подсхемы 5, где г — произвольный индекс от 1 до 3к + 2. Поэтому можно считать, что неисправными в схеме 5 могут быть только входы/выходы элементов из её подсхем 51,... , 53к+2. При произвольной неисправности не менее одного и не более к входов/выходов таких элементов на любом входном наборе схемы 5 могут измениться значения не более чем на к входах элемента Е. Поэтому на любом наборе та (0а = ¿а), на котором функция f принимает значение а, на входы элемента Е поступит набор, к-соседний с набором ра, а на его выходе, т.е. на выходе схемы 5, возникнет значение а = f (0а) в силу условия (уп).
На наборах ¿0 и ¿1 на входы элемента Е поступят наборы П0 и П1 длины 3к + 2, к-соседние с наборами (03к+2) и (13к+2) соответственно. При этом выполнено хотя бы одно из соотношений П0 = (03к+2), П1 = (13к+2), поскольку множество {00, 01} является к-проверяющим тестом для каждой из к-неизбыточных схем 51,... , 53к+2 (значение на выходе любой из этих схем, содержащей хотя бы один неисправный элемент, изменится хотя бы на одном из наборов ¿0, а1). Следовательно, значение на выходе элемента Е, т.е. на выходе схемы 5, изменится хотя бы на одном из наборов ¿0, ¿1 в силу условий (у), (у1). Таким образом, на выходе схемы 5 возникнет функция неисправности, отличающаяся от функции f по крайней мере на одном из этих двух наборов и совпадающая с функцией f на всех наборах длины п, отличных от указанных двух.
Тем самым показано, что все возможные функции неисправности схемы 5 принадлежат множеству ^ ф /¿¡-0, f ф /а1, f ф /¿¡-0 ф /а1}. Каждую из них можно отличить от любой другой и от функции f хотя бы на одном из наборов ¿0, ¿1, поэтому схема 5 является к-неизбыточной и допускает к-диагностический тест {а0,а1} относительно неисправностей на входах и выходах элементов, при которых выход её выходного элемента исправен. ■
Лемма 12. Любую булеву функцию f (хп), для которой существуют такие два противоположных двоичных набора ¿0 и ¿1 длины п, что f (¿0) = f (¿1) = 1, можно реализовать схемой в базисе В6(к), к-неизбыточной и допускающей к-диагностический тест {а0,а1} относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента схемы исправен, причём все её функции неисправности принадлежат множеству ^ ф /¿0, f ф /¿^, f ф /¿0 ф /а1}, а в случае к =1 —множеству
Доказательство. Пусть f' = f ф /¿0, f'' = f ф /5-1 ф 1. Тогда справедливы соотношения
из которых следует, что функции f'(хп) и /''(хп) не являются палиндромными.
Построим схему 5 в базисе В6(к), реализующую функцию f (хп) (рис. 2). Схема 5 состоит из 4к + 2 подсхем 51,... , 54к+2 и выходного п-элемента Е, входы которого соединяются с выходами этих подсхем (1-й вход — с выходом подсхемы 51, ..., (4к + 2)-й вход — с выходом подсхемы 54к+2). Каждая из подсхем 51,... , 52к+1 реализует функцию f '(хп), а каждая из подсхем 52к+2,... , 54к+2 — функцию f ''(хп), причём каждая из подсхем 51,... , 54к+2 является к-неизбыточной схемой, состоящей только из ^-элементов и инверторов и допускающей к-проверяющий тест {¿0, 01} относительно неисправ-
{f ф /¿0^ ф /¿1}.
f '(¿0) = f (¿0) ф /¿0 Ы = 1 ф 1 = 0, f '(¿1) = f (¿1) ф /¿0 (¿0 = 1 ф 0=1,
f''(00) = f (¿0) ф /¿1 (¿0) ф 1 = 1 ф 0 ф 1 = 0,
/'(¿1) = f (¿1) ф /¿1 (¿1) ф 1 = 1 ф 1 ф 1 = 1,
(4)
(5)
(6) (7)
ностей на входах и выходах элементов; существование таких схем следует из леммы 4, из того, что функции f' и f'' не являются палиндромными, и из соотношений (4)-(7).
Рис. 2. Схема 5
Докажем, что построенная схема 5 в случае отсутствия в ней неисправностей реализует функцию f (Хп). Всюду ниже в доказательстве леммы предполагаем, что а — произвольное число из множества {0,1}. На любом двоичном наборе 5а длины п, на котором функция f принимает значение а, отличном от наборов ао и 51, на выходе каждой из подсхем 51,... , 52к+1 возникнет значение
f'(5а) = f (5а) ф 1*0(5а) = а ф 0 = а,
а на выходе каждой из подсхем 52к+2,... , 54к+2 — значение
f''(5а) = f (5а) ф 1*1 (5а) ф 1 = а ф 0 ф 1 = а.
Тогда на входы элемента Е будет подан в точности набор 5а, а на его выходе, т.е. на выходе схемы 5, возникнет значение п(5а) = а = f (5а) в силу условия (х). Далее, на наборе 5а на выходе каждой из подсхем 51,... , 54к+2 возникнет значение а в силу (4), (6) при а = 0 и (5), (7) при а =1. Тогда на входы элемента Е будет подан в точности набор (а4к+2), а на его выходе, т.е. на выходе схемы 5, возникнет значение п(а4к+2) = 1 = f (5а) в силу условия (уШ). Таким образом, на выходе схемы 5 реализуется в точности функция f (Хп).
Найдём все возможные функции неисправности схемы 5 относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента Е схемы исправен. Неисправность на г-м входе элемента Е равносильна неисправности такого же типа на выходе выходного элемента подсхемы , где г — произвольный индекс от 1 до 4к + 2. Поэтому можно считать, что неисправными в схеме 5 могут быть только входы/выходы элементов из её подсхем 51,... ,54к+2. При произвольной неисправности не менее одного и не более к входов/выходов таких элементов на любом входном наборе схемы 5 могут измениться значения не более чем на к входах элемента Е. Поэтому на любом наборе 5а, на котором функция f принимает значение а, отличном от наборов 5о и 51, на входы элемента Е поступит набор, к-соседний с набором 5а, а на его выходе, т. е. на выходе схемы 5, возникнет значение а = f (5а) в силу условия (х).
На наборах 5о и 51 на входы элемента Е поступят наборы -5о и П1 длины 4к+2, к-соседние с наборами (04к+2) и (14к+2) соответственно. При этом выполнено хотя бы одно из соотношений по = (54к+2) = (14к+2) , поскольку множество {5о, 51} является к-проверяющим тестом для каждой из к-неизбыточных схем 51,... , 54к+2. Следовательно, значение на выходе элемента Е, т. е. на выходе схемы 5, изменится хотя бы на
одном из наборов ¿0, ¿1 в силу условий (уШ), (1х). Таким образом, на выходе схемы 5 возникнет функция неисправности, отличающаяся от функции f по крайней мере на одном из этих двух наборов и совпадающая с функцией f на всех наборах длины п, отличных от указанных двух.
Тем самым показано, что все возможные функции неисправности схемы 5 принадлежат множеству ^ ф /¿0, f ф /¿1, f ф /¿0 ф /¿1}. Каждую из них можно отличить от любой другой и от функции f хотя бы на одном из наборов ¿0, ¿1, поэтому схема 5 является к-неизбыточной и допускает к-диагностический тест Т = {¿0, ¿1} относительно неисправностей на входах и выходах элементов, при которых выход её выходного элемента исправен.
Пусть к = 1. Если при отсутствии неисправностей в схеме 5 на некотором входе/ выходе некоторого элемента этой схемы, кроме выхода элемента Е, на двух наборах из множества Т возникает одно и то же значение в, то неисправность типа в указанного входа/выхода нельзя обнаружить на наборах из данного множества, однако это противоречит последнему предложению предыдущего абзаца. Поэтому на любом входе/выходе любого элемента схемы 5, за исключением выхода элемента Е, на двух наборах из множества Т возникают различные значения. Тогда неисправность типа 7, 7 Е {0,1}, любого входа/выхода любого элемента этой схемы, кроме выхода элемента Е, обнаруживается только на том наборе ¿' из множества Т, на котором значение на указанном входе/выходе в отсутствие неисправностей равно 7, и не обнаруживается на другом наборе ¿'' из данного множества. Значит, при рассматриваемой неисправности на наборе ¿' схема 5 выдаст значение f (¿'), а на наборе ¿'' — «правильное» значение f (¿'').
Приведённые рассуждения показывают, что любая функция неисправности схемы 5 отличается от функции f (хп) ровно на одном наборе из множества Т и совпадает с ней на всех остальных наборах, т. е. принадлежит множеству ^ ф /¿0, f ф /¿1}. ■
Теорема 3. Для любой булевой функции f (хп) справедливо равенство £6(к) / £\ \ 0, если f — тождественная функция или f = 0,
^-Ддо )= 2' " "
2 в остальных случаях.
Доказательство. Вместо ^ВД^/) для краткости будем писать ). Равенство ) = 0 в случаях, когда f — тождественная функция и f = 0, следует из лемм 7 и 8 соответственно. Если же функция f не тождественна и отлична от константы 0, то неравенство ) £ 2 вытекает из леммы 9, а ) ^ 2 — из лемм 11 и 12. Стоит отметить, что если f — не палиндромная функция, то существуют такие два противоположных набора ¿0 и ¿1 длины п, для которых f (¿0) = 0 и f (¿1) = 1, а в случае, когда f — палиндромная функция и f = 0, существуют такие два противоположных набора ¿0 и ¿1 длины п, что f (00) = f (¿1) = 1. ■
Следствие 3. Для любого п £ 0 справедливо равенство Д^-Д^п) = 2.
Лемма 13. Любую не палиндромную булеву функцию f (хп) можно реализовать схемой в базисе В6(к), к-неизбыточной и допускающей к-диагностический тест длины не более 4 относительно неисправностей на входах и выходах элементов.
Доказательство. Существуют такие противоположные наборы ¿0 и ¿1 длины п, что f (¿0) = 0 и f (¿1) = 1. По лемме 11 функцию f можно реализовать схемой 5
в базисе В6(к), к-неизбыточной и допускающей к-диагностический тест {до, 51} относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента схемы исправен, причём все её функции неисправности принадлежат множеству {f ф 1*0, f ф 1*1, f ф 1*0 ф 1*1}. Если указанный выход неисправен и выдаёт 0 (выдаёт 1), то на выходе схемы 5 возникнет функция неисправности, тождественно равная нулю (соответственно единице) и тем самым отличная от функции f, поскольку константы 0 и 1 являются палиндромными функциями. Таким образом, данная схема к-неизбыточна относительно неисправностей на входах и выходах элементов. Составим таблицу значений функции f и всех возможных функций неисправности схемы 5 на наборах до и д1 (табл. 1).
Таблица 1
Наборы / / ф 1&0 / ф 1-аг / ф ^Сто ф ^ёг 0 1
0 1 0 1 0 1
1 1 0 0 0 1
Видно, что указанные два набора не позволяют отличить только функцию f ф 1*0 от константы 1, если f ф 1*0 ф 1, а также функцию f ф 1*1 от константы 0, если f ф 1*1 ф 0. В случае f ф 1*0 ф 1 добавим в множество {<то,51} произвольный набор длины п, на котором функция f ф 1*0 принимает значение 0, а в случае f ф 1*1 ф 0 — произвольный набор длины п, на котором функция f ф 1*1 принимает значение 1. Итоговое множество будет являться к-диагностическим тестом длины не более 4 для схемы 5 относительно неисправностей на входах и выходах элементов. ■
Лемма 14. Пусть х^1 ,...,х^3, где в ^ 2, — все существенные переменные булевой функции f (Хп), а двоичные наборы 7Т1, П2, П3 длины п и элементы а,7 € {0,1}, ] € {1,... , в}, таковы, что ¿^-я (слева) компонента каждого из наборов П1, П2 равна 7, f (П1) = f (П2) = а, а f (П3) = а. Пусть схема 5 в базисе В6(к) является к-неизбыточной, реализует функцию f (Хп) и множество {П1, П2, П3} является для неё к-диагностическим тестом относительно неисправностей на входах и выходах элементов. Тогда на любом наборе длины п, ¿^-я компонента которого равна 7, функция f принимает значение а.
Доказательство. Переменная х^. обязана подаваться хотя бы на один вход V хотя бы одного элемента схемы 5, поскольку х^. € {х^1 ,... }. Тогда неисправность типа 7 этого входа нельзя обнаружить ни на одном из наборов П1, П2, значит, она должна обнаруживаться на наборе П3. Отсюда вытекает, что для получающейся функции неисправности д схемы 5 справедливы равенства д(П1) = f (П1) = а, д(П2) = f (П2) = а и д(Пз) = f(П3) = а, т.е. функцию д нельзя отличить ни на одном из наборов П1, П2, П3 от константы а, возникающей на выходе данной схемы при неисправности типа а на выходе её выходного элемента. С учётом того, что множество {П1, П2, П3} является к-диагностическим тестом для схемы 5, это может быть только в том случае, когда д ф а.
При подаче на входы схемы 5 произвольного двоичного набора длины п, ¿^ -я компонента которого равна 7, на вход V поступает значение 7, поэтому функция д, возникающая на выходе схемы при неисправности типа 7 этого входа, на любом таком наборе принимает такое же значение, как и функция f. С учётом тождества д ф а получаем, что на любом наборе длины п, ¿^-я компонента которого равна 7, функция f принимает значение а. ■
деД(Ю)(/)
В следующей теореме рассмотрен случай неисправностей на входах и выходах элементов при к = 1, т. е. когда неисправным может быть только один вход/выход только одного элемента.
Теорема 4. Для любой булевой функции f (хп), отличной от константы 1, справедливо равенство
0, если f — тождественная функция,
1, если f = 0,
2, если f = хг для некоторого г Е {1,... , п},
3, если f — несамодвойственная функция и f = 0,
4, если f — самодвойственная функция и f Е {х(,... ,хга,хь... ,х„}.
Если f = 1, то значение двд^о)/) не определено.
Доказательство. Вместо ^ЕД1-^)/) для краткости будем писать ). В случае f = 1 значение ) не определено в силу леммы 10. Равенства ) = 0, если функция f тождественная, и ) = 1, если f = 0, следуют из лемм 7 и 8 соответственно. Пусть f = хг для некоторого г Е {1,..., п}. Тогда функцию f можно реализовать схемой в базисе В6(1), состоящей из одного инвертора, на вход которого подаётся переменная хг. Очевидно, что у данной схемы есть только две функции неисправности — константы 0 и 1, которые можно отличить друг от друга и от функции f на множестве, состоящем из любых двух двоичных наборов длины п, г-я (слева) компонента одного из которых равна единице, а другого — нулю. Отсюда следует неравенство ) ^ 2. С другой стороны, ) £ 2 в силу леммы 9, поэтому ) = 2.
Пусть f(хп) —произвольная булева функция, не принадлежащая множеству {0,1,х(,... , хп, х(,... ,хп}. Докажем неравенство ) £ 3. Предположим, что это не так, т.е. ) ^ 2. В силу леммы 9 имеем ) £ 2, поэтому ) = 2. Значит, существует неизбыточная схема 5 в базисе В6(1), реализующая функцию f и допускающая единичный диагностический тест из каких-то двух наборов 7Т( и П2 длины п. Заметим, что
f (П() = f (П2), (8)
поскольку в противном случае неисправность типа f (П() на выходе выходного элемента схемы 5 нельзя было бы обнаружить ни на одном из этих двух наборов. Пусть хг — произвольная существенная переменная функции f. Переменная хг обязана подаваться хотя бы на один вход V хотя бы одного элемента схемы 5. Если г-е (слева) компоненты наборов и П2 совпадают и равны в, то неисправность типа в данного входа нельзя обнаружить на наборах и П2; противоречие. Значит, г-е компоненты наборов и П2 равны соответственно 7 и 7 для некоторого 7 Е {0,1}. Тогда неисправность типа 7 входа V обнаруживается на наборе П2 и не обнаруживается на наборе , т. е. при рассматриваемой неисправности на наборе схема 5 выдаст значение f (П(), а на наборе П2 —значение f (П2), которое равно f (П() в силу (8). Таким образом, полученную функцию неисправности схемы 5 нельзя отличить ни на одном из наборов П(, П2 от константы f (П(), возникающей на выходе данной схемы при неисправности типа f(П() на выходе её выходного элемента. С учётом того, что {П(,П2} —единичный диагностический тест для схемы 5, это может быть только в том случае, когда
$1 = f (П(). Аналогично при неисправности типа 7 входа V на выходе схемы 5 возникнет функция неисправности $2, принимающая на наборах и П2 значения f (П() и f (П2) = f (П() соответственно. Её нельзя отличить ни на одном из этих наборов от константы f (П(), возникающей на выходе данной схемы при неисправности типа f (П() на выходе её выходного элемента, поэтому $2 = f (П().
Далее заметим, что при подаче на входы схемы 5 произвольного двоичного набора длины п, г-я компонента которого равна 7, на вход V поступает значение 7, поэтому функция $(, возникающая на выходе схемы при неисправности типа 7 этого входа, на любом таком наборе принимает такое же значение, как и функция f. С учётом тождества = f (П() получаем, что на любом наборе длины п, г-я компонента которого равна 7, функция f принимает значение f (П(). Аналогично на любом наборе длины п, г-я компонента которого равна 7, функция $2 принимает такое же значение, как и функция f. С учётом тождества $2 = f (П() получаем, что на любом таком наборе функция f принимает значение f (П(). Но тогда легко проверить, что на любом наборе длины п функция f принимает такое же значение, как и функция хг ф 7 ф f (П(), т. е. f = хг ф 7 ф f (П). Это означает, что либо f = хг, либо f = хг, но в таком случае f Е {0,1,х(,... ,хп,х(,... ,хп}; противоречие. Неравенство ) £ 3 доказано.
Пусть f — несамодвойственная функция и f = 0,1. Докажем, что ) ^ 3; тогда с учётом неравенства ) £ 3 будет установлено равенство ) = 3. Функция f принимает одно и то же значение на каких-то двух противоположных наборах а0 и длины п. Рассмотрим два случая.
1. Пусть f (а0) = f (а() = 1. Тогда по лемме 12 (при к = 1) функцию f можно реализовать схемой 5' в базисе В6(1), неизбыточной и допускающей единичный диагностический тест {а0, а(} относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента схемы исправен, причём все её функции неисправности принадлежат множеству ^ ф /д-0, f ф /¿-1}. В случае, если указанный выход неисправен и выдаёт 0 (выдаёт 1), то на выходе схемы 5' возникнет функция неисправности, тождественно равная нулю (соответственно единице). Таким образом, данная схема неизбыточна относительно неисправностей на входах и выходах элементов. Составим таблицу значений функции f и всех возможных функций неисправности схемы 5' на наборах а0 и (табл. 2).
Таблица 2
Наборы / / ф 1&0 / ф 1-ъ 0 1
<^0 1 0 1 0 1
<^1 1 1 0 0 1
Видно, что указанные два набора не позволяют отличить только функцию f от константы 1. Добавим к этим наборам ещё один произвольный набор длины п, на котором функция f принимает значение 0. Полученное множество будет являться единичным диагностическим тестом длины 3 для схемы 5', откуда следует ) ^ 3. Случай 1 разобран.
2. Пусть f (а0) = f (а() = 0. Функция f принимает значение 1 на каких-то противоположных наборах а0 и а(, поэтому по лемме 12 (при к = 1) её можно реализовать схемой 5" в базисе В6(1), неизбыточной и допускающей единичный диагностический тест {а0,а(} относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента Е схемы исправен, причём все функции неисправности схемы 5" принадлежат множеству ^ ф /¿-0 ^ ф /<5-1}. Соединим выход этой схемы со
входом инвертора 1, выход которого объявим выходом полученной схемы; обозначим её через 5'. Тогда при неисправности любого входа/выхода любого элемента подсхемы 5', кроме выхода элемента Е, на выходе схемы 5' возникнет одна из функций неисправности
f ф 1<Г0 = f ф 1 ф 1<Г0 ф 1 = f ф 1СТ0 ,
7 ф 1*1 = f Ф 1 Ф 1*1 Ф 1 = f Ф 1*1,
а при произвольной неисправности входа или выхода элемента 1 либо выхода выходного элемента подсхемы 5' — одна из булевых констант 0 или 1. Таким образом, схема 5' неизбыточна относительно неисправностей на входах и выходах элементов. Составим таблицу значений функции f и всех возможных функций неисправности данной схемы на наборах сго и ¿т1 (табл. 3).
Таблица 3
Наборы / / ф 1&0 / ф 1-ъ 0 1
<70 0 1 0 0 1
<^1 0 0 1 0 1
Видно, что указанные два набора не позволяют отличить только функцию f от константы 0. Добавим к этим наборам ещё один произвольный набор длины п, на котором функция f принимает значение 1. Полученное множество будет являться единичным диагностическим тестом длины 3 для схемы 5', откуда следует Д(7) ^ 3. Случай 2 разобран. Равенство Д(7) = 3 доказано.
Пусть теперь f (Хп) — самодвойственная функция и f € {х1 ,... , хп, Х1,... , Хп}. Неравенство Д(7) ^ 4 следует из леммы 13 (при к = 1) и того, что функция f, очевидно, не является палиндромной. Докажем неравенство Д(7) ^ 4. Предположим, что это не так, т.е. Д(7) ^ 3. Выше установлено, что Д(7) ^ 3, поэтому Д(7) = 3. Значит, существует неизбыточная схема 5'' в базисе В6(1), реализующая функцию f и допускающая единичный диагностический тест из каких-то трёх наборов длины п. Данная функция не может принимать одинаковое значение в на всех этих наборах, поскольку в противном случае её нельзя было бы отличить на них от константы в, возникающей при неисправности типа в на выходе выходного элемента схемы 5''. Поэтому на каких-то двух наборах П1 и П2 из теста функция f принимает значение а, а на третьем наборе П3 из теста — значение а, где а € {0,1}.
Пусть Хг1,... , Хгв —все существенные переменные функции f. Предположим, что наборы П1 и П2 различаются в каждой из ¿1-й, ..., ¿8-й (слева) компонент. Пусть П' — набор, противоположный набору П1. Тогда f (П1) = f (П') в силу самодвойственности функции f. Наборы П' и П2 совпадают в ¿1 -й, ..., ¿8-й компонентах, а функция f (Хп) существенно зависит только от переменных х^1 ,... , поэтому f(П') = f(П2). Таким образом, f (5) = f (П2), однако это противоречит тому, что f (П') = f (П2) = а. Следовательно, наборы П' и П2 совпадают хотя бы в одной из ¿'-й, ... , ¿5-й компонент; обозначим номер этой компоненты через ¿^, а её значение в каждом из указанных наборов— через 7. Тогда выполнены все условия леммы 14 (при 5 = 5''), из которой следует, что на любом наборе длины п, ¿^-я компонента которого равна 7, функция f принимает значение а. В таком случае на любом наборе длины п, ¿^-я компонента которого равна 7, данная функция в силу её самодвойственности принимает значение а. Но тогда легко проверить, что на любом наборе длины п функция f принимает такое
же значение, как и функция х, ф 7 ф а, т. е. f = х, ф 7 ф а. Это означает, что либо f = х,, либо f = х,, поэтому f Е {х(,... ,хп,х(,... ,хп}; противоречие. Неравенство б/) £ 4 доказано.
В итоге получаем, что б/) = 4. ■
Следствие 4. Для любого п £ 3 справедливо равенство Б^/Д^^п) = 4.
Для доказательства следствия 4 достаточно заметить, что функция х( ф х2 ф х3 является самодвойственной.
Теорема 5. Для любого к Е N справедливо равенство Б-Д^^п) = 4 при п £ 3, причём в случае к £ 2 доля тех булевых функций f от п переменных, для которых ^/с-Д^ю)/) = 4, стремится к 1 при п ^ го.
Доказательство. Вместо Б/Д^^п), Б-Д^)/) для краткости будем писать соответственно Б(п), б/). Неравенство Б(п) £ 4 при п £ 3 вытекает из следствия 4 (любой к-диагностический тест для любой к-неизбыточной схемы является единичным диагностическим тестом для той же схемы, которая при этом неизбыточна). Докажем неравенство Б(п) ^ 4. Для этого достаточно доказать неравенство б/) ^ 4 для любой булевой функции f (хп), для которой определено значение б/). При f = 1 оно не определено в силу леммы 1; при f = 0 указанное неравенство следует из леммы 8, а в случае, когда функция f не палиндромная, — из леммы 13.
Пусть f — палиндромная функция и f = 0, 1. Тогда существуют такие два противоположных двоичных набора а0 и длины п, что f (а0) = f (а() = 1. По лемме 12 функцию f можно реализовать к-неизбыточной схемой 5 в базисе В6(к), допускающей к-диагностический тест {о0,а(} относительно неисправностей на входах и выходах элементов, при которых выход выходного элемента схемы исправен, причём все её функции неисправности принадлежат множеству ^ ф /¿г0, f ф !о-1, f ф 1<5-0 ф !о-1}. Если указанный выход неисправен и выдаёт 0 (выдаёт 1), то на выходе схемы 5 возникнет функция неисправности, тождественно равная нулю (соответственно единице). Таким образом, данная схема к-неизбыточна. Составим таблицу значений функции f и всех возможных функций неисправности схемы 5 на наборах а0 и (табл. 4).
Таблица 4
Наборы / / ф 1&0 / ф 1-аг / ф 1а0 ф ^ёг 0 1
<0 1 0 1 0 0 1
<1 1 1 0 0 0 1
Видно, что указанные два набора не позволяют отличить только функцию f ф /сг0 ф от константы 0, если f ф ф = 0, а также функцию f от константы 1. Добавим в множество {00,01} произвольный набор длины п, на котором функция f принимает значение 0, а в случае f ф /д-0 ф = 0 добавим в полученное множество произвольный набор длины п, на котором функция f ф /,5-0 ф /<5-1 принимает значение 1. Итоговое множество будет являться к-диагностическим тестом длины не более 4 для схемы 5, откуда следует, что б/) ^ 4. Неравенство Б(п) ^ 4, а вместе с ним равенство Б(п) = 4 при п £ 3 доказаны.
Докажем второе утверждение теоремы. Пусть к £ 2, п £ 2 и f — произвольная булева функция от п переменных, не принадлежащая множеству и = {0,1, х 1,..., х^, х 1,..., х^ }, для которой б/) ^ 3. Докажем, что f Е , где — множество булевых функций от п переменных, каждая из которых при подстановке вместо
каких-то двух её переменных каких-то булевых констант становится равна некоторой булевой константе. Из теоремы 4 следует, что Д(7) ^ 3, поэтому Д(7) = 3. Значит, существует неизбыточная схема 5' в базисе В6(к), реализующая функцию f и допускающая к-диагностический тест из каких-то трёх наборов длины п. Данная функция не может принимать одинаковое значение в на всех этих наборах, поскольку в противном случае её нельзя было бы отличить на них от константы в, возникающей при неисправности типа в на выходе выходного элемента схемы 5'. Поэтому на каких-то двух наборах П' и П2 из теста функция f принимает значение а, а на третьем наборе П из теста — значение а, где а € {0,1}.
Пусть Хг1,..., Хгв —все существенные переменные функции f. Ясно, что в ^ 2. Если ¿^-е компоненты наборов П' и П2 совпадают для некоторого ] € {1,...,в}, то выполнены все условия леммы 14 (при 5 = 5', П3 = П). Из неё следует, что на любом наборе длины п, ¿^-я компонента которого равна 7, функция f принимает значение а. Но тогда при подстановке вместо переменной х^. константы 7, а вместо любой другой переменной из множества X',... , хп произвольной булевой константы данная функция становится равна константе а, откуда вытекает, что f € , что и требовалось доказать.
Пусть теперь наборы П' и П2 различаются в каждой из ¿'-й, ... , ¿5-й компонент. Наборы П и П' различаются хотя бы в одной из этих компонент, поскольку f (П) = f (П'). Пусть они различаются в ¿д-й компоненте, д € {1,...,в}, причём ¿д-е компоненты наборов П и П' равны пд и соответственно. Тогда ¿д-я компонента набора П2 равна пд. Аналогично наборы П и П2 различаются в какой-то ¿¿-й компоненте, £ € {1,... , в}, и их ¿¿-е компоненты равны п и П соответственно, где п € {0,1}, а ¿¿-я компонента набора П' равна При этом £ = д, так как в противном случае ¿д-я компонента набора П2 была бы равна одновременно пд и Пд. Составим для наглядности таблицу значений ¿д-й и ¿¿-й компонент наборов П', П2 и П (табл. 5).
Таблица 5
Наборы гч ¿4
П1 Пч Пь
П2 Пч П
П П9 Пь
Каждая из переменных х^ , х^ обязана подаваться хотя бы на один вход хотя бы одного элемента схемы 5', поскольку х^ , х^ € {х^1 ,... , х^ }; обозначим эти входы через vq и v¿ соответственно. Тогда неисправность типа пд входа vq нельзя обнаружить ни на одном из наборов П2, П, так как их ¿д-е компоненты равны пд. Значит, данная неисправность должна обнаруживаться на наборе П'. Отсюда вытекает, что для получающейся функции неисправности дд схемы 5' справедливы равенства д9(П') = f (П') = а. Если, помимо неисправности типа пд входа vq, в схеме 5' также имеет место неисправность типа п входа v¿, то для получающейся функции неисправности д^ данной схемы справедливы равенства д^(П') = дд(П') = а, поскольку на наборе П на вход v¿ в случае исправности этого входа и неисправности типа пд входа vq подаётся ¿¿-я компонента набора П', которая равна п и, следовательно, неисправность типа п¿ входа v¿ никак не отразится на значении, выдаваемом схемой 5' на этом наборе.
Далее, неисправность типа п входа v¿ нельзя обнаружить ни на одном из наборов П', П, так как их ¿¿-е компоненты равны Значит, данная неисправность должна обнаруживаться на наборе П2. Отсюда вытекает, что для получающейся функции
неисправности д4 схемы 5' справедливы равенства $£(П2) = f (П2) = а. Если, помимо неисправности типа п входа г4, в схеме 5' также имеет место неисправность типа пд входа гд, то для получающейся функции неисправности дд4 данной схемы справедливы равенства дд£(П2) = д£(П2) = а, поскольку на наборе П2 на вход гд в случае исправности этого входа и неисправности типа п входа V подаётся гд-я компонента набора П2, которая равна пд и, следовательно, неисправность типа пд входа гд никак не отразится на значении, выдаваемом схемой 5' на этом наборе.
В случае отсутствия неисправностей в схеме 5' на наборе П на входы гд и поступают значения пд и п соответственно, поскольку гд-я (¿¿-я) компонента набора П равна пд (соответственно п^). Поэтому одновременная неисправность входа гд типа пд и входа г^ типа п никак не отразится на значении, выдаваемом схемой 5' на указанном наборе. Отсюда следуют равенства д^(П) = f (П) = а.
В итоге получаем, что функция неисправности дд4 схемы 5' принимает значение а на каждом из наборов П(, П2 и П, поэтому её нельзя отличить ни на одном из этих наборов от константы а, возникающей на выходе данной схемы при неисправности типа а на выходе её выходного элемента. С учётом того, что множество {П(,П2,П} является к-диагностическим тестом для схемы 5', это может быть только в том случае, когда д^ = а.
Заметим, что при подаче на входы схемы 5' произвольного двоичного набора длины п, гд-я компонента которого равна пд, а ¿¿-я компонента равна п^, на вход гд поступает значение пд, а на вход г^ — значение п , поэтому функция дд4, возникающая на выходе схемы при одновременной неисправности входа гд типа пд и входа г^ типа п^, на любом таком наборе принимает такое же значение, как и функция f. С учётом тождества дд4 = а получаем, что на любом наборе длины п, гд-я компонента которого равна пд, а ¿¿-я компонента равна п^, функция f принимает значение а. Следовательно, при подстановке вместо переменной х^ константы пд, а вместо переменной х^ константы п данная функция становится равна константе а, т.е. f Е что и требовалось доказать.
Тем самым установлено, что в случае п £ 2 произвольная булева функция f от п переменных, не принадлежащая множеству и, для которой ) ^ 3, принадлежит множеству Среди функций из множества и могут быть функции f от п переменных, для которых ) ^ 3 (и даже точно есть — см. леммы 7 и 8), но все они принадлежат поскольку и С в силу определений этих множеств. Значит, все булевы функции f от п переменных, где п £ 2, для которых ) ^ 3, принадлежат множеству
Оценим величину |1п|. Пусть Б^*^7 — подмножество множества состоящее из всех булевых функций, каждая из которых при подстановке вместо переменной х, константы а, а вместо переменной х^ константы в, где 1 ^ г < ] ^ п, становится равна константе 7. Любая функция из множества ^О^7 принимает значение 7 на любом из 2п-2 двоичных наборов длины п, ¿-я (слева) компонента которых равна а и ]-я равна в, а на остальных 2п — 2п-2 наборах может принимать произвольные значения, поэтому 1 = 22П-2П-2. Любая функция из множества принадлежит множе-
ству ^а^7 для некоторых г, , а, в и 7, откуда следуют соотношения
1 С II Ра'в'7 1 п С и 1 ,
а,в,7е{0,1}
|Fn| ^ Е Fnff I = Е 22n-2n-2 = СП ■ 23 ■ 22"-2"-2 = 4n(n - 1)22n-2n-2,
1<i<j<n, 1<i<j<n,
|Fnl 4n(n - 1)22"-2"-2 4n(n - 1)
^ -22n-= --► 0 (n ^ то)
т. е. отношение числа булевых функций из множества Fn к общему числу булевых функций от n переменных стремится к 0 при n ^ то. В силу доказанного выше это означает, что доля тех булевых функций f от n переменных, для которых D(f) ^ 3, стремится к 0 при n ^ то. Следовательно, доля тех булевых функций f от n переменных, для которых D(f) ^ 4, стремится к 1 при n ^ то. Осталось заметить, что при f ф 1 из неравенства D(f) ^ 4 вытекает равенство D(f) = 4 в силу доказанного соотношения D(f) ^ 4 для любой булевой функции f от n переменных, кроме константы 1, а 1 G Fn. ■
Замечание 3. Среди всех схем, построенных при доказательстве верхних оценок величин ), Df^kio^f) и D^^^n) в теоремах 3, 4 и 5 соответственно, элемент
«константа 0» использовался только в построении схем, реализующих тождественный нуль, ^-элемент— только в построении схем, реализующих не палиндромные функции (теоремы 3 и 5) либо самодвойственные функции (теорема 4), причём не более чем в единственном числе, а п-элемент— только в построении схем, реализующих палиндромные функции (теоремы 3 и 5) либо несамодвойственные функции (теорема 4), причём не более чем в единственном числе.
ЛИТЕРАТУРА
1. ЧегисИ.А., Яблонский С. В. Логические способы контроля работы электрических схем // Труды МИАН. 1958. Т. 51. С. 270-360.
2. Яблонский С. В. Надежность и контроль управляющих систем // Материалы Всес. семинара по дискретной математике и её приложениям (Москва, 31 января-2 февраля 1984г.). М.: Изд-во МГУ, 1986. С. 7-12.
3. Яблонский С. В. Некоторые вопросы надежности и контроля управляющих систем // Математические вопросы кибернетики. Вып. 1. М.: Наука, 1988. С. 5-25.
4. Редькин Н. П. Надежность и диагностика схем. М.: Изд-во МГУ, 1992. 192 с.
5. Коляда С. С. Верхние оценки длины проверяющих тестов для схем из функциональных элементов: дис. ... канд. физ.-мат. наук. М., 2013. 77с.
6. Reddy S. M. Easily testable realizations for logic functions // IEEE Trans. Comput. 1972. V. C-21. No. 11. P. 1183-1188.
7. Saluja K. K. and Reddy S. M. Fault detecting test sets for Reed-Muller canonic networks // IEEE Trans. Comput. 1975. V. C-24. No. 10. P. 995-998.
8. Романов Д. С., Романова Е. Ю. Метод синтеза неизбыточных схем, допускающих единичные проверяющие тесты константной длины // Дискретная математика. 2017. Т. 29. Вып. 4. С. 87-105.
9. Редькин Н. П. О проверяющих тестах для схем при однотипных константных неисправностях на входах элементов // Изв. вузов. Математика. 1988. №7. С. 57-64.
10. Редькин Н. П. О схемах, допускающих короткие единичные диагностические тесты // Дискретная математика. 1989. Т. 1. Вып.3. С. 71-76.
11. Редькин Н. П. О проверяющих тестах для схем при константных неисправностях на входах элементов // Вестник Московского университета. Сер. 1. Математика. Механика. 1997. №1. С. 12-18.
12. Попков К. А. Синтез легкотестируемых схем при однотипных константных неисправностях на входах и выходах элементов // Препринты ИПМ им. М. В. Келдыша. 2018. №87. 18с.
13. Угольников А. Б. Классы Поста: учеб. пособие. М.: Изд-во ЦПИ при механико-математическом факультете МГУ, 2008. 64 с.
REFERENCES
1. Chegis I. A. and Yablonskiy S. V. Logicheskie sposoby kontrolya raboty elektricheskikh skhem [Logical methods of control of work of electric circuits]. Trudy Mat. Inst. Steklov, 1958, vol. 51, pp. 270-360. (in Russian)
2. Yablonskiy S. V. Nadezhnost' i kontrol' upravlyayushchikh sistem [Reliability and verification of control systems]. Materialy Vsesoyuznogo seminara po diskretnoy matematike i ee prilozheniyam (Moscow, 31 Jan.-2 Feb. 1984). Moscow, MSU Publ., 1986, pp. 7-12. (in Russian)
3. Yablonskiy S. V. Nekotorye voprosy nadezhnosti i kontrolya upravlyayushchikh sistem [Some questions of reliability and verification of control systems]. Matematicheskie Voprosy Kibernetiki, iss. 1, Moscow, Nauka Publ., 1988, pp. 5-25. (in Russian)
4. Red'kin N. P. Nadezhnost' i diagnostika skhem [Circuits Reliability and Diagnostics]. Moscow, MSU Publ., 1992. 192 p. (in Russian)
5. Kolyada S. S. Verkhnie otsenki dlin proveryayushchikh testov dlya skhem iz funktsional'nykh elementov [Upper bounds on the lengths of fault detection tests for logic networks]. Cand. Sci. Dissertation, MSU, Мoscow, 2013. 77p. (in Russian)
6. Reddy S. M. Easily testable realizations for logic functions. IEEE Trans. Comput., 1972, vol. C-21, no. 11, pp. 1183-1188.
7. Saluja K. K. and Reddy S. M. Fault detecting test sets for Reed-Muller canonic networks. IEEE Trans. Comput., 1975. vol. C-24, no. 10, pp. 995-998.
8. Romanov D. S. and Romanova E. Yu. Metod sinteza neizbytochnykh skhem, dopuskayushchikh edinichnye proveryayushchie testy konstantnoy dliny [Method of synthesis of irredundant circuits allowing single fault detection tests of constant length]. Diskretnaya Matematika, 2017, vol.29, iss.4, pp.87-105. (in Russian)
9. Red'kin N. P. O proveryayushchikh testakh dlya skhem pri odnotipnykh konstantnykh neispravnostyakh na vkhodakh elementov [On fault detection tests for logic networks under one-type stuck-at faults at inputs of gates]. Izvestiya Vuzov, Matematika, 1988, no. 7, pp. 57-64. (in Russian)
10. Red'kin N. P. O skhemah, dopuskayushchikh korotkie edinichnye diagnosticheskie testy [On circuits allowing short single diagnostic tests]. Diskretnaya Matematika, 1989, vol.1, iss.3, pp. 71-76. (in Russian)
11. Red'kin N. P. O proveryayushchikh testakh dlya skhem pri konstantnykh neispravnostyakh na vkhodakh elementov [On fault detection tests for logic networks under stuck-at faults at inputs of gates]. Vestnik MSU, Ser. 1, 1997, no. 1, pp. 12-18. (in Russian)
12. Popkov K. A. Sintez legkotestiruemykh skhem pri odnotipnykh konstantnykh neispravnostyakh na vkhodakh i vykhodakh elementov [Synthesis of Easily Testable Logic Networks under One-Type Stuck-at Faults at Inputs and Outputs of Gates]. Preprinty IPM im. M.V. Keldysha, 2018, no. 87. 18 p. (in Russian)
13. Ugol'nikov A. B. Klassy Posta: uchebnoe posobie [Post Classes: Tutorial]. Moscow, MSU, TsPI Publ., 2008. 64p. (in Russian)