УДК 519.718
Д. С. Романов1
О СИНТЕЗЕ СХЕМ, ДОПУСКАЮЩИХ ПОЛНЫЕ ПРОВЕРЯЮЩИЕ ТЕСТЫ КОНСТАНТНОЙ ДЛИНЫ ОТНОСИТЕЛЬНО ИНВЕРСНЫХ НЕИСПРАВНОСТЕЙ НА ВЫХОДАХ ЭЛЕМЕНТОВ*
В работе предлагается метод синтеза схем из функциональных элементов в специальном базисе, допускающих полные проверяющие тесты длины не более 4 при инверсных неисправностях на выходах функциональных элементов.
Ключевые слова: проверяющий тест, схема из функциональных элементов, инверсная неисправность, функция Шеннона, легкотестируемая схема.
1. Введение и основные определения. Схемы из функциональных элементов (СФЭ) или комбинационные схемы — одна из классических моделей управляющих систем без памяти. Анализ функционирования СФЭ при возникновении в них неисправностей традиционно осуществляется с помощью тестового подхода, предложенного в работах C.B. Яблонского и И. А. Чегис [1, 2] в середине 1950-х годов. В рамках этого подхода предполагается, что на схему действует источник неисправностей, способный преобразовать эту схему к одной из схем некоторого заранее известного списка (конечной длины), содержащего и исходную схему. Действие источника неисправностей однократное, т.е. во время исследования схемы источник неисправностей уже перестал действовать на схему. Исследование схемы заключается в подаче на входы схемы входных наборов и в изучении выходных значений на этих наборах. При этом формулируется цель контроля — некоторое множество пар функционирований схем из упомянутого конечного списка. Под тестом для заданных схемы и цели контроля понимается множество входных наборов, на котором любая пара функционирований (при условии их неравенства) из цели контроля отличима на наборах теста.
Через Вп будем обозначать множество всех двоичных n-разрядных наборов, через No — множество неотрицательных целых чисел. Пусть f(xn) — произвольная булева функция, зависящая (существенно или фиктивно) от переменных х\, жг, • • •, хп, a S — схема из функциональных элементов в некотором базисе В, реализующая функцию / (все определения, не введенные в данной работе, можно найти в монографии [3]). Пусть на схему S действует источник неисправностей U, вызывающий инверсные неисправности на выходах функциональных элементов, т. е. для любого функционального элемента схемы приписанная ему функция из базиса может замениться на отрицание этой функции. Нетривиальной будем называть такую неисправность схемы S, при которой значение на выходе какого-то хотя бы одного функционального элемента Е (схемы S) на некотором хотя бы одном входном наборе аа не равно значению на выходе элемента Е на наборе аа при отсутствии неисправностей в схеме S. Обозначим через W(<S) множество всех попарно неравных функций, каждая из которых может быть реализована схемой, полученной из схемы S в результате действия источника неисправностей U (в частности / G W(<S)). Схема S называется тестопригодной тогда и только тогда, когда для любой нетривиальной неисправности (вызванной действием на схему S источника неисправностей U) для функции д(хп), реализуемой той неисправной схемой, которая получена в результате действия данной неисправности, имеет место неравенство f ф д.
Множество Т наборов значений переменных Ж1,Ж2,... ,хп называется полным проверяющим тестом для схемы S относительно инверсных неисправностей на выходах элементов тогда и только тогда, когда для любой функции g из W(S), такой, что g ф f, найдется набор à из Т, для которого выполнено неравенство f(â) ф g (а). Количество различных наборов в тесте Т называется его длиной и обозначается через 1(Т) или через |Т|. Тест минимальной длины называется минимальным. Обозначим через D(S) длину минимального полного проверяющего теста относительно инверсных неисправностей на выходах элементов в схеме S, через 1)_в(/(жп)) — минимум величины D(S) по всем тестопригодным реализующим f(xn) схемам S в базисе В. При этом будем считать, что если для какой-то функции / не существует тестопригодных схем, ее реализующих, то Дв(/) = 0.
1 Факультет ВМК МГУ, доц., к.ф.-м.н., e-mail: romanovQcs.msu.ru
* Работа выполнена при поддержке грантов РФФИ № 12-01-00964-а, 13-01-00958-а и 15-01-07474-а.
Пусть /'/,' — множество всех булевых функций, существенно зависящих от всех своих переменных Ж1, жг, • • •, хп (в частности Р® = {0,1}). Всюду в дальнейшем будем, если не оговорено иное, считать, что любая не равная тождественно константе функция / существенно зависит от всех своих переменных. Через Дв(п), где п € Но, обозначим функцию Шеннона длины полного проверяющего теста относительно инверсных неисправностей на выходах элементов, т.е.
ДвО) = тах Дв(/)-
/е-Р2п
Отметим, что в отечественной литературе по тестированию схем вместо рассматриваемых здесь тестопригодных схем зачастую рассматриваются неизбыточные схемы (в определениях данной статьи — тестопригодные относительно источника одиночных неисправностей, см., например, [3, с. 110111]). В настоящей статье предлагаются два теоретических результата: 1) существование конечного базиса, в котором для любой булевой функции возможно построение тестопригодной схемы, допускающей полный проверяющий тест длины 4 (теорема 1); 2) существование конечного полного базиса, в котором тестопригодные схемы существуют лишь для малой доли булевых функций (теорема 3), так что требование тестопригодности схем для этого базиса оказывается "слишком жестким".
2. Обзор предшествующих результатов. В работе [4] было доказано, что в базисе Жегалкина {ж&у, ж Фу, 1} функция Шеннона длины единичного проверяющего теста относительно произвольных константных неисправностей на входах и выходах элементов не превосходит п + 4. В статье [5] получены верхние оценки функции Шеннона длины проверяющего теста относительно константных неисправностей на ограниченном числе входов и выходов элементов в базисе Жегалкина {х & у, х Ф у, 1}. В [6] было установлено, что в стандартном базисе В0 = {ж & у, ж V у, х} функция Шеннона длины полного проверяющего теста относительно однотипных константных неисправностей на выходах элементов не превосходит п [7], а функция Шеннона длины полного проверяющего теста относительно произвольных константных неисправностей на выходах элементов при всех натуральных п не превосходит 0(2п/2). В [8] доказано, что в случае В = {х к, у, х Ф у, 1} функция Шеннона длины единичного проверяющего теста относительно инверсных неисправностей на выходах элементов равна 1 (в той же работе для того же класса схем и такого же источника неисправностей установлена верхняя оценка п + 1 для функции Шеннона длины единичного диагностического теста и верхняя оценка 2" для функции Шеннона длины полного диагностического теста). В статье [9] получен такой результат: в произвольном полном базисе функция Шеннона длины единичного проверяющего теста относительно инверсных неисправностей на выходах элементов не превосходит 3. В [10] установлено, что в стандартном базисе Ва функция Шеннона длины полного проверяющего теста относительно однотипных константных неисправностей на выходах элементов равна 2. В статье [11] доказано, что функция Шеннона длины единичного проверяющего теста относительно константных неисправностей типа 1 на выходах элементов в базисе Жегалкина равна 1. В работе [12] найдено точное значение 1 функции Шеннона длины полного проверяющего теста относительно константных неисправностей типа 0 на выходах элементов в базисе Жегалкина. В работах [13-15] доказано, что для любого п € N в произвольном полном базисе функция Шеннона длины единичного проверяющего теста относительно произвольных константных неисправностей на выходах элементов не превосходит п + 3. Автором настоящей статьи найден пример полного базиса В', в котором функция Шеннона длины полного проверяющего теста относительно произвольных константных неисправностей на выходах элементов не превосходит 4 [16], а также доказано, что в произвольном конечном полном базисе функция Шеннона длины единичного проверяющего теста относительно произвольных константных неисправностей на выходах элементов не превосходит 4 [17]. Отметим, что в статье [18] для каждой булевой функции /(хп) установлено существование в произвольном полном базисе схемы Б с тремя дополнительными входами и одним дополнительным выходом, такой, что функция / является подфункцией одной из двух функций, реализуемой схемой Б, а длина теста, проверяющего не более чем т произвольных неисправностей элементов или блоков схемы, ведет себя как 0(п + 2ТО).
3. Основные результаты статьи. В данной работе устанавливается, что функция Шеннона длины полного проверяющего теста относительно инверсных неисправностей на выходах элементов в некотором специальном конечном полном базисе В не превосходит 4. Справедливо следующее утверждение.
Теорема 1. Существует конечный полный схемный базис В, такой, что для него при п € Ко имеет место неравенство ^ 4.
Доказательство. Пусть /(хп) — произвольная булева функция, зависящая (существенно или фиктивно) от переменных х,\, Х2,... ,хп. Построим тестопригодную схему Б в некотором базисе В (он будет определяться по ходу доказательства), реализующую / и допускающую полный проверяющий тест длины 4. Будем считать, что в базисе В имеются функциональные элементы для каждой булевой функции, существенно зависящей от 0, 1 или 2 переменных. Для каждой булевой функции от не более чем двух переменных искомая схема Б состоит из одного функционального элемента. Будем в дальнейшем полагать, что функция / существенно зависит от не менее чем 3 переменных.
Схема Б составлена из блоков Б1, Б2, Б3 и специального девятивходового элемента Е. В блоке 51 реализуется (моделированием полинома Жегалкина в базисе {ж Ф у, ж&у, 1}, например) функция /. Выход этого блока обозначим через к.
Положим Тп = {(0,0,бп-2),(1,0,бп"2),(0,1,бп-2),(1,1,бп-2)}. Построим блок Б2 следующим образом. При п ^ 2 этот блок не содержит элементов. Пусть п ^ 3. Для переменной жз в блоке $2 имеется ярус £3 из трех двухвходовых элементов Е^'1, Е^'2, реализующих соответственно
функции £3, где для каждого набора {у,и;) из В2
{(О, 0, 0), если ад = О,
(О, 0,1), если ад = 1 и при этом у = 0, (1)
(1, 0, 0), если ад = 1 и при этом у = 1.
Для каждой переменной х3, я = 4, п, в блоке имеется ярус из трех пятивходовых элементов Е2'1, Е2'2, Е2'3, реализующих соответственно функции £2, где для каждого набора (у, г, и, V, ад) из В5
{(0, 0, 0), если (г = и = V = 0)&(ад = 0),
(0, 0,1), если ((у = г = и = V = 0)&(ад = 1)) V ((у = г = и = 0)&(г> = 1)), , .
(1, 0, 0), если ((г = и = у = 0)&(у = ад = 1)) V ((« = V = 0)&(у = г = 1)), ' '
(1,1,1) иначе.
Новые элементы Е2'1, Е2'2, Е2'3 присоединяются к схеме следующим образом: на левый вход каждого из этих элементов подается вход схемы х2, на правый вход подается вход схемы х3, я = 3, щ при я > 3 на второй, третий и четвертый вход каждого из новых элементов Е2,г, г = 1,3, подаются выходы элементов /•.';''',. А';''1',. /•.';'соответственно. Выходы элементов Е2'1, Е2'2, /•.';'объявим выходами блока Б2 и обозначим их через с\, с2, сз соответственно. Нетрудно проверить, что блок Б2 в исправном состоянии распознает принадлежность (непринадлежность) набора множеству Тп путем подачи значений (0, 0, 0) (соответственно (0, 0,1) при х2 = 0 и (1, 0, 0) при х2 = 1) на выходы (сх, с2,сз).
Под глубиной элемента схемы понимается наибольшая длина ориентировнной цепи в схеме от входа до данного элемента. Пусть общее число элементов в блоке 51 есть а в блоке Б2 имеется Ь2 элементов; I. 1.\+ !.■>. Обозначим все элементы блоков 51 и Б2 через . /•,'•_....../•,'/.- где вначале перечисляются элементы из Б2, причем элемент большей глубины имеет больший номер, а затем следуют элементы из ¿>1, причем элемент большей глубины имеет больший номер. Тогда /•,'/. — это выходной элемент блока ¿>1. Обозначим через Я:1{х1,х2), ] = 1, Ь, булеву функцию от х,\, х2, реализуемую на выходе элемента Е^ при подаче на входы составленной из блоков Б\, Б2 схемы всех четырех наборов из Т„.
Построим блок Бз следующим образом. Для элемента Е\ в блоке Б3 имеются три трехвходовых элемента Е\'1, Е\'2, Е\'3, реализующих соответственно функции ф\, ф2, ф3, где для каждого набора (ж, у, ад) из В3
{(У, У, У), если ад = (ж, у),
(0,1,1), если ад ф С^>1(х,у) и при этом у = 0, (3)
(0, 0,1), если ад ф С1\{х, у) и при этом у = 1.
--3 1 3 2 3 3
Для каждого элемента Е^, ] 2.1.. н блоке 5з имеются три шестивходовых элемента , , ,
реализующих соответственно функции ф^(ж, у, г, и, V, ад), ф2(ж, у, г, и, V, ад), ф^(х, у, г, и, V, ад) от своих
входов, где для каждого набора (ж, у, г, и, V, ад) из В6
(у, у, у), если г = и = V = у ш w = Qj(x,y), (0,1,1), если у = 0, но при этом неверно, что
((г = и = у = у)к(у} = <2з(х,у))), (4)
(О, 0,1), если у = 1, но при этом неверно, что ((г = и = V = у)&(ад = Я]{х,у))).
Новые элементы Е?'1, . Е|'3 присоединяются к схеме следующим образом: на левые два входа каждого из этих элементов подаются входы схемы х\ и жг (в этом порядке), на самый правый вход подается выход элемента з = 1, Ь; при ] > 1 на третий, четвертый и пятый вход каждого из новых
3 2 __3 1 3 2 3 3
элементов Е•' . / I. 3. подаются выходы элементов соответственно. Выходы эле-
3 1 3 2 3 3
ментов /•;•/;'. /•.') . Еа£а обозначим через (¿1, (¿2, (¿з, соответственно. По аналогии с блоком Б2 каждую тройку элементов из Бз с одинаковыми нижними индексами будем считать ярусом.
Девятивходовый элемент Е реализует функцию т?, где для каждого набора (ж, у, с', с", с'", й'", ад) из В9
( I И Ш I/ т» т/» \
г](х,у,с,с , с ,«,«,« , ад) =
'ад, если ((у, с', с", с'") б {(0, 0, 0,1), (1,1, 0, 0)}) V (((с', с", с'") ф (0, 0, 0))&
&(ад ф ж = дь(ж, у))) V (((с', с", с'") = (0, 0, 0))& . ,
&(у = = й" = (Г')) V (((у, й", й'") £ {(0,0,0,0), (1,1,1,1)})&(ад ф ж = ¡Зь(ж, у))), ад иначе.
На первый и второй вход элемента Е подаются входы схемы х,\ и жг (в этом порядке), на третий, четвертый и пятый вход Е подаются выходы с\, сг и сз соответственно цепей блока на входы элемента Е с шестого по восьмой подаются выходы с по (¿з соответственно блока ¿>з, на девятый вход элемента Е подается выход к блока ¿>1. Выход элемента Е объявляется выходом схемы Б. Схема Б построена полностью. Конечность базиса, в котором может быть построена схема Б для произвольной булевой функции /, очевидна.
Покажем, что схема Б в исправном состоянии реализует функцию /(жп). Пусть на входы Б подан набор а = («1, а2,..., ап) £ Тп. Тогда к = /(а), (а2, сь с2, с3) € {(0, 0, 0,1), (1,1, 0, 0)} (см. (1), (2)), на выходе Б в соответствии с первым условием в (5) появляется значение /(а), что и требовалось. Пусть теперь на входы Б подан набор а = («1, «2,..., ап) £ Т„. Тогда к = /(а), (с\, сг, сз) = (0, 0, 0) (см. (1), (2)), «2 = ^1 = ^2 = ¿з (см. (3), (4)), на выходе Б в соответствии с третьим условием в (5) появляется значение /(а), что и требовалось.
Докажем, что наборы множества Тп образуют полный проверяющий тест для тестопригодной схемы Б. Случай, когда неисправен только выходной элемент Б, тривиален.
Рассмотрим случай, когда в блоке Б2 нет неисправных элементов, но неисправность имеется хотя бы в одном из блоков 51 или Бз- Рассмотрим работу схемы на произвольной паре наборов а = («1,0,0п~2), ¡3 = («1,1,0П~2) из Тп, соседних по жг (заметим, что при этом в соответствии С (1), (2) С1=С2 = Сз = 0).
Покажем, что независимо от наличия и характера неисправностей элементов в 51 и 5з хотя бы на одном наборе из пары «, /3 значение хотя бы одного из выходов (¿1, (¿2, блока Бз будет отличаться от значения переменной жг- Рассмотрим табл. 1. Строкам (строки пронумерованы и их четыре) соответствуют всевозможные пары наборов на выходах трех элементов г-го яруса блока 5з, г € Н, при подаче на входы схемы наборов «, /3 соответственно при условии отсутствия неисправностей в элементах г-го яруса (см. (3), (4)). Столбцам таблицы соответствуют возможные неисправности элементов г-го яруса (указаны номера неисправных элементов яруса). На пересечении строки и столбца приведены значения на выходах трех элементов г-го яруса блока Бз на наборах «, /3 при наличии соответствующей столбцу неисправности, а также номер строки (их в клетке может быть несколько), соответствующей значениям на выходах трех элементов (г + 1)-го яруса блока Бз при подаче на входы схемы наборов «, /3 соответственно при условии исправной работы элементов (г + 1)-го яруса (если номеров строк в клетке несколько, то первый номер соответствует совпадению значений на выходах элемента #¿+1 со значениями на этом выходе при отсутствии неисправностей в схеме на наборах
Таблица 1
№ 0 1 2 3 12 13 23 123
1 (000) (111) (000) (111) 1, 2, 3, 4 (100) (011) 4 (010) (101) 4 (001) (110) 4 (110) (001) 4 (101) (010) 4 (011) (100) 4 (111) (000) 4
2 (000) (001) (000) (001) 2, 4 (100) (101) 4 (010) (011) 4 (001) (000) 4 (110) (111) 3, 4 (101) (100) 4 (011) (010) 4 (111) (110) 4
3 (011) (111) (011) (111) 3, 4 (111) (011) 4 (001) (101) 4 (010) (110) 4 (101) (001) 4 (110) (010) 4 (000) (100) 2, 4 (100) (000) 4
4 (011) (001) (011) (001) 4 (111) (101) 4 (001) (011) 4 (010) (000) 4 (101) (111) 3, 4 (110) (100) 4 (000) (010) 2, 4 (100) (110) 4
а, /3, остальные номера соответствуют всем иным возможным ситуациям). Обозначим через Е' неисправный элемент минимальной глубины в схеме. Так как при любом входном наборе инверсная неисправность на выходе Е' меняет значение на выходе этого элемента (по сравнению со значением на выходе Е' при отсутствии неисправностей), то в блоке 5з найдется ярус с наименьшим номером либо содержащий £", либо такой, что на выходах его элементов, если бы в них не было неисправностей, возникли бы значения (0,1,1) при х2 = 0 и (0,0,1) при х2 = 1 (см. (3), (4)). В обоих случаях на наборах а, ¡3 на выходах элементов этого яруса появится пара наборов, отличная от пары ((0, 0, 0), (1,1,1)) (табл. 1), что соответствует какой-то клетке табл. 1, отличной от клетки на пересечении первой строки и столбца "0" таблицы. Остается заметить, что поскольку число "1" как номер строки в клетках таблицы встречается только один раз (на пересечении первой строки и столбца "0"), то возврат к клетке на пересечении первой строки и столбца "0" таблицы при наличии неисправности невозможен и требуемое показано.
Значит, в Тп найдутся два набора с разными значениями х\, на каждом из которых значение хотя бы одного из выходов (¿1, (¿2, (¿з отличается от значения переменной х2. А это в соответствии с (5) означает, что независимо от правильности работы выходного элемента схемы на одном их этих наборов будет выдано правильное значение функции /, а на другом — отрицание значения функции /, и неисправность будет обнаружена хотя бы на одном наборе из Тп.
Изучим теперь случай, когда в блоке Б2 имеются неисправные элементы. Рассмотрим работу схемы на произвольной паре наборов а = («1, 0, 0П~2), ¡3 = («1,1, 0П~2) из Тп, соседних по х2. На основании (1), (2) легко видеть, что при правильной работе всех элементов одного яруса Б2 на их выходах на наборе а могут появляться наборы ао = (0, 0, 0), а\ = (0, 0,1), а2 = (1,1,1), а на наборе ¡3 — наборы Ъ\ = (0,0,0), Ь2 = (1,0,0), Ьз = (1,1,1). Каждой паре наборов (ай, Ь„) (возникающей при подаче на входы схемы наборов (а, ¡3) соответственно) взаимно однозначно сопоставим номер, равный З^м + и (число от 1 до 9, /х € {0,1,2}, V € {1,2,3}). В табл. 2 строкам соответствуют номера пар наборов (и сами эти пары), появляющихся на выходах элементов 5-го яруса Б2 при отсутствии неисправностей этих элементов, столбцам соответствуют всевозможные множества номеров неисправных элементов 5-го яруса Б2. В клетке на пересечении строки и столбца находится пара наборов, возникающая на выходах элементов 5-го яруса Б2 при указанной неисправности вместо соответствующих строке наборов, а также номер пары наборов, возникающей при правильной работе всех элементов (« + 1)-го яруса Б2 на выходах этих элементов.
Из рассмотрения этой таблицы следует, что при любом характере неисправностей элементов блока Б2 на его выходах на каждой паре (а, /3) из Тп:
1) либо на обоих наборах значения на выходах Б2 будут с\ = с2 = сз = 0 (и доказательство не отличается от предыдущего случая, так как тогда для обоих наборов а, ¡3 блок Б2 выдает информацию о принадлежности их к тесту, как если бы неисправных элементов в Б2 не было, при этом если бы неисправный элемент минимальной глубины содержался бы в блоке Б2, то вследствие его неисправности на хотя бы одном из наборов а, ¡3 хотя бы одно значение среди (¿1, (¿з отличалось бы от значения «2 переменной х2);
Таблица 2
№ 0 1 2 3 12 13 23 123
1 (000) (000) (000) (000) 1 (100) (100) 8 (010) (010) 9 (001) (001) 6 (110) (110) 9 (101) (101) 9 (011) (011) 9 (111) (111) 9
2 (000) (100) (000) (100) 2 (100) (000) 7 (010) (110) 9 (001) (101) 6 (110) (010) 9 (101) (001) 9 (011) (111) 9 (111) (011) 9
3 (000) (111) (000) (111) 3 (100) (011) 9 (010) (101) 9 (001) (110) 6 (110) (001) 9 (101) (010) 9 (011) (100) 8 (111) (000) 7
4 (001) (000) (001) (000) 4 (101) (100) 8 (011) (010) 9 (000) (001) 3 (111) (110) 9 (100) (101) 9 (010) (011) 9 (110) (111) 9
5 (001) (100) (001) (100) 5 (101) (000) 7 (011) (110) 9 (000) (101) 3 (111) (010) 9 (100) (001) 9 (010) (111) 9 (110) (011) 9
6 (001) (111) (001) (111) 6 (101) (011) 9 (011) (101) 9 (000) (110) 3 (111) (001) 9 (100) (010) 9 (010) (100) 8 (110) (000) 7
7 (111) (000) (111) (000) 7 (011) (100) 8 (101) (010) 9 (110) (001) 9 (001) (110) 6 (010) (101) 9 (100) (011) 9 (000) (111) 3
8 (111) (100) (111) (100) 8 (011) (000) 7 (101) (110) 9 (110) (101) 9 (001) (010) 6 (010) (001) 9 (100) (111) 9 (000) (011) 3
9 (111) (111) (111) (111) 9 (011) (011) 9 (101) (101) 9 (110) (110) 9 (001) (001) 6 (010) (010) 9 (100) (100) 8 (000) (000) 1
2) либо хотя бы на одном наборе пары (а, /3) набор значений (а2; с\-, сг, сз) (где «2 — значение переменной жг) отличается от любого "корректного" набора (0, 0, 0, 0), (1, 0, 0, 0), (0, 0, 0,1), (1,1, 0, 0) (т. е. набора, который мог быть набором (а2; с\-, сг, сз) при отсутствии неисправностей в схеме для какого-нибудь входного набора).
Значит, в Тп найдутся два набора с разными значениями х\, на каждом из которых либо набор («2, С1, С2, сз) совпадает с одним из "корректных" наборов (0,0,0,0), (1,0,0,0), но при этом в наборе («2, (¿1, (¿2, (¿з) встречается как 0, так и 1, либо набор («2, С1, сг, сз) отличается от любого "корректного" набора (0,0,0,0), (1,0,0,0), (0,0,0,1), (1,1,0,0). А это в соответствии с (5) означает, что независимо от правильности работы выходного элемента схемы на одном их этих наборов будет выдано правильное значение функции /, а на другом — отрицание значения функции /, и неисправность будет обнаружена хотя бы на одном наборе из Тп. Теорема доказана.
Отметим, что сложность построенной в теореме 1 схемы 5, реализующей произвольную булеву функцию /(жп), есть 0(п2п), однако если при построении блока 51 использовать метод синтеза, асимптотически оптимальный или оптимальный по порядку роста сложности схем, то сложность получаемой схемы окажется равной 0(2п/п), т. е. окажется оптимальной по порядку для функций /(хп), доля которых стремится к 1 с ростом п к бесконечности.
Теорема 2. Для любого полного схемного базиса В при п € Ко имеет место неравенство Ов(п) ^ 2.
Доказательство теоремы следует из того, что на любом одном наборе не обнаруживается либо инверсная неисправность элемента, предшествующего выходному элементу схемы, либо инверсная неисправность двух элементов схемы — выходного элемента схемы и элемента, предшествующего выходному.
Теорема 3. В каждом из полных схемных базисов {ж&у,х} и {х V у,х} при всех натуральных п количество функций от переменных Х\,Х2, ■■■ ,хп, допускающих тестопригодные (относительно проверки кратных инверсных неисправностей на выходах элементов) схемы с одним выходом, равно Зп.
Доказательство. Доказательство проведем для базиса {xSzy,х} (для второго базиса утверждение будет верно в силу принципа двойственности). Пусть S — тестопригодная схема сложности не менее 2 в данном базисе, реализующая функцию /. Ясно, что ее выходной элемент не инвертор, а конъюнктор.
Предположим, что в S имеется инвертор, не инцидентный входу схемы. Выберем такой инвертор Е наибольшей глубины. При отсутствии неисправностей в схеме на выходах Е и предшествующего ему элемента Е' реализуются противоположные функции g и д. Если выход элемента Е' подается только на инверторы, то одновременные инверсные неисправности Е' и всех инверторов, на входы которых подается выход Е', не обнаруживаются. Значит, схема S не тестопригодна, что невозможно. Получается, что выход элемента Е' подается не только на инверторы, но и на конъюнкторы, а следовательно, в силу максимальности глубины инвертора Е при вычислении функции / пере множатся g и д. Значит, / = 0. Таким образом, если функция f ф 0, то все инверторы в S инцидентны входам схемы, т. е. / реализуется элементарной конъюнкцией. С другой стороны, можно показать, что СФЭ, моделирующие формулы Х\Х\ и (... (а£&<22)& • • 1 ^ ¿i < ¿2 < • • • < ¿r ^ и, г = 1, п, тестопригодны относительно проверки инверсных неисправностей на выходах элементов. Действительно, для СФЭ, моделирующей формулу Х\Х\, это легко проверяется. Рассмотрим, не ограничивая общности, СФЭ, моделирующую формулу (... (х^1 &¿X22)&¿ ■ ■ .)&¿x^r. Заметим, что при любых инверсных неисправностях на выходах элементов получающиеся функции будут существенно зависеть от всех переменных Х\,Х2, ■ ■ ■ ,хг. Пусть Е" — ближайший к выходу схемы неисправный элемент. Если Е" — инвертор, подвешенный к переменной Xj, то функция /' такой неисправности существенно зависит от Xj монотонным образом, тогда как исходная функция / существенно зависит от Xj антимонотонным образом, и f ф f. Если же Е" — конъюнктор, на один из входов которого подается 2 ^ j ^ г, то функция /' такой неисправности, в отличие от функции /, обращается в единицу более чем на одном наборе значений переменных х\, х2, ■ ■ •, хг. Отсюда и следует утверждение теоремы.
Автор выражает глубокую благодарность профессору С. А. Ложкину за обсуждение работы и ценные замечания.
СПИСОК ЛИТЕРАТУРЫ
1. Яблонский C.B., Чегис И. А. О тестах для электрических схем // Успехи матем. наук. 1955. 10. Вып. 4 (66). С. 182-184.
2. Чегис И. А., Яблонский C.B. Логические способы контроля электрических схем//Тр. МИ АН СССР. 1958. 51. С. 270-360.
3. Редькин Н. П. Надежность и диагностика схем. М.: Изд-во МГУ, 1992.
4. Reddy S.M. Easily testable realization for logic functions // IEEE Trans. Comput. 1972. 21. N 1. P. 124-141.
5. S aluja К. К., Reddy S. M. Fault detecting test sets for Reed-Muller canonic networks // IEEE Trans. Comput. 1975. 24. N 1. P. 995-998.
6. Редькин Н.П. О полных проверяющих тестах для схем из функциональных элементов // Математические вопросы кибернетики. Вып. 2. М.: Наука, 1989. С. 198-222.
7. Редькин Н.П. О схемах, допускающих короткие тесты // Вестн. Моск. ун-та. Сер. 1. Матем. Мех. 1988. № 2. С. 17-21.
8. Коваценко C.B. Синтез легкотестируемых схем в базисе Жегалкина для инверсных неисправностей / / Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и киберн. 2000. № 2. С. 45-47.
9. Редькин Н.П. Единичные проверяющие тесты для схем при инверсных неисправностях элементов // Математические вопросы кибернетики. Вып. 12. М.: Физматлит, 2003. С. 217-230.
10. Бородина Ю.В. О синтезе легкотестируемых схем в случае однотипных константных неисправностей на выходах элементов // Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и киберн. 2008. № 1. С. 40-44. (В or od i na Yu. V. Synthesis of easily-tested circuits in the case of single-type constant malfunctions at the element outputs // Moscow University Computational Mathematics and Cybernetics. 2008. 32. N 1. P. 42-46.)
11. Бородина Ю.В. О схемах, допускающих единичные тесты длины 1 при константных неисправностях на выходах элементов // Вестн. Моск. ун-та. Сер. 1. Матем. Мех. 2008. № 5. С. 49-52. (Borodina Yu. V. Circuits admitting single-fault tests of length 1 under constant faults at outputs of elements // Moscow University Mathematics Bulletin. 2008. 63. N 5. P. 202-204.)
12. Бородина Ю.В., Бородин П. А. Синтез легкотестируемых схем в базисе Жегалкина при константных неисправностях типа "0" на выходах элементов // Дискретная математика. 2010. 22. № 3. С. 127-133. (В or od i na Yu. V., Borodin P.A. Synthesis of easily testable circuits over the Zhegalkin basis in the case
of constant faults of type 0 at outputs of elements // Discrete Mathematics and Applications. 2010. 20. N 4. P. 441-449.)
13. Ко ляда С. С. О единичных проверяющих тестах для константных неисправностей на выходах функциональных элементов // Вестн. Моск. ун-та. Сер. 1. Матем. Мех. 2011. № 6. С. 47-49. (Koly ada S. S. Unit checking output tests under constant faults for functional elements // Moscow University Mathematics Bulletin. 2011. 66. N 6. P. 267-269.)
14. Коляда С. С. Единичные проверяющие тесты для схем из функциональных элементов в базисах из элементов, имеющих не более двух входов // Дискретный анализ и исследование операций. 2013. 20. № 2. С. 58-74.
15. Коляда С. С. Единичные проверяющие тесты для схем из функциональных элементов // Вестн. Моск. ун-та. Сер. 1. Матем. Мех. 2013. № 4. С. 32-34. (Koly ada S. S. Single fault detection tests for circuits of functional elements // Moscow University Mathematics Bulletin. 2013. 68. N 4. P. 192-193.)
16. Романов Д. С. О синтезе схем, допускающих полные проверяющие тесты константной длины относительно произвольных константных неисправностей на выходах элементов // Дискретная математика. 2013. 25. № 2. С. 104-120. (Romanov D.S. On the synthesis of circuits admitting complete fault detection test sets of constant length under arbitrary constant faults at the outputs of the gates // Discrete Mathematics and Applications. 2013. 23. N 3-4. P. 343-362.)
17. Романов Д. С. Метод синтеза легкотестируемых схем, допускающих единичные проверяющие тесты константной длины // Дискретная математика. 2014. 26. № 2. С. 100-130. (Romanov D.S. Method of synthesis of easily testable circuits admitting single fault detection tests of constant length // Discrete Mathematics and Applications. 2014. 24. N 4. P. 227-251.)
18. Носков B.H. Метод синтеза удобных для контроля комбинационных схем // Дискретная математика. 1993. 5. № 4. С. 3-23.
Поступила в редакцию 02.07.14
ON THE SYNTHESIS OF CIRCUITS ADMITTING UNDER INVERSE FAULTS AT OUTPUTS OF GATES THE COMPLETE DETECTION TEST SETS OF CONSTANT POWER
Romanov D.S.
It is constructively proved that any Boolean function of n variables may be implemented (in some basis) by a testable combinational circuit admitting (under multiple inverse faults at outputs of gates) a fault detection test set whose power does not exceed 4.
Keywords: fault detection test set, combinational circuit, inverse fault, Shannon function, easily-testable circuit.