____________УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО УНИВЕРСИТЕТА
Том 156, кн. 3 Физико-математические науки
2014
УДК 519.718
О СИНТЕЗЕ КОНТАКТНЫХ СХЕМ, ДОПУСКАЮЩИХ КОРОТКИЕ ПРОВЕРЯЮЩИЕ ТЕСТЫ
Д.С. Романов
Аннотация
В статье установлено, что для произвольной отличной от константы булевой функции f (xi,... ,xn) существуют допускающие единичный проверяющий тест линейной по n длины тестопригодные
а) трехполюсная контактная схема (с одним входным и двумя выходными полюсами), реализующая систему функций (f, f),
б) двухполюсная контактная схема, реализующая функцию f (xi,... ,xn) ® xn+l.
Доказано также, что почти все булевы функции f (xi,... ,xn) реализуемы двухполюсными контактными схемами, обладающими коротким проверяющим тестом (тестом длины O(n)) относительно однотипных неисправностей контактов.
Ключевые слова: булева функция, контактная схема, проверяющий тест.
Пусть F(xn) = (fi(xn),..., f t(xn)) - произвольная система булевых функций, отличных от констант и зависящих от переменных xi,x2,...,xn (F G Щ(п)), а S - (1,t) -контактная схема (то есть контактная схема с одним входным полюсом и t выходными полюсами), реализующая систему F (все не введенные в работе определения можно найти в книгах [1, 2]). Пусть на схему S действует источник неисправностей U, способный вызывать размыкания и замыкания контактов. Схема S называется тестопригодной (относительно обнаружения неисправностей для источника неисправностей U) тогда и только тогда, когда при любой неисправности схемы S, вызванной действием на нее источника U, полученная вследствие этой неисправности схема S' реализует систему функций F'(xn) = = (f[ (Xn),...,ft(Xn)), не равную F (F = F', то есть (fi(Xn),..., ft(Xn)) = = (f'(xn),..., f'(xn))). Обозначим через W множество всех попарно неравных систем функций, каждая из которых может быть реализована в результате действия на схему S источника неисправностей U (в частности, F G W). Множество T наборов значений переменных xi,Х2,... ,xn называется проверяющим тестом для схемы S относительно источника неисправностей U тогда и только тогда, когда для любой системы функций F' G W такой, что F' = F, найдется набор а из T, для которого F'(а) = F(а). Количество различных наборов в тесте T называется его длиной и обозначается через l(T) или \Т|. Тест минимальной длины называется минимальным. Тест называется полным, если источник неисправностей может повреждать произвольное количество контактов в схеме, и единичным, если в схеме может быть поврежден не более чем один контакт. Обозначим через Du (S) длину минимального проверяющего теста относительно источника неисправностей U в схеме S, через Du(F(xn)) - минимум величины Du(S) по всем тестопригодным (относительно обнаружения неисправностей для источника неисправностей U) реализующим F(xn) контактным схемам S. Через DU(n) обозначим
110
О СИНТЕЗЕ КОНТАКТНЫХ СХЕМ, ДОПУСКАЮЩИХ КОРОТКИЕ ТЕСТЫ 111
функцию Шеннона длины проверяющего теста относительно источника неисправностей U, то есть функцию Du(п) = max Du (F(xn)).
F (xn)EP£(n)
Первые оценки функций Шеннона появились уже в работе С.В. Яблонского и И.А. Чегис [3]. Фактически, было доказано, что функция Шеннона длины единичного диагностического (а значит, и проверяющего) теста для двухполюсных контактных схем есть O(2n/n). Х.А. Мадатяном в работе [4], в частности, установлено, что точное значение функции Шеннона длины полного диагностического теста для контактных схем равно 2n. Н.П. Редькиным доказано, что полный проверяющий тест для контактных схем не обязан содержать все наборы и что соответствующая функция Шеннона не превосходит (15/16) • 2n [5]. Им же в [6] было установлено, что функция Шеннона длины полного диагностического теста размыкания есть O(2n/2), а также была получена нетривиальная верхняя оценка O(22nlog2n/(i+2i°g2n)) функции Шеннона длины полного диагностического теста замыкания. Как видно, приведенные оценки функций Шеннона являются быстрорастущими с ростом n. Отметим, что введение дополнительных переменных и дополнительных выходных полюсов (контрольных точек), а также использование надфункций (то есть функций, для которых данная функция является подфункцией) - это классические способы понижения трудоемкости тестирования. В настоящей работе предлагаются методы построения легкотестируемых контактных схем, допускающих проверяющие тесты некоторых типов, имеющие линейную по числу переменных длину.
Имеет место
Теорема 1. Пусть f (xn) - произвольная булева функция, отличная от константы. Тогда
1) систему функций (f, f) можно реализовать тестопригодной контактной схемой, допускающей единичный проверяющий тест длины 2п + 4;
2) функцию f(Xn+i) = f (xn) ® xn+i можно реализовать тестопригодной контактной схемой, допускающей единичный проверяющий тест длины 4п + 8.
Доказательство. Докажем утверждение п. 1). Идея доказательства базируется на разложении булевой функции f (xn) в полином Жегалкина и на построении на этой основе схемы, обобщающей минимальную построенную по методу каскадов двухполюсную контактную схему счетчика четности (см., например, [2, с. 207, рис. 3.6 ]). Указанное обобщение строится следующим образом. Пусть в полиноме Жегалкина для функции f имеется s отличных от констант слагаемых Ki, K2,... , Ks. Для каждого слагаемого Ki полинома Жегалкина функции f строится (наподобие блока для переменной в упомянутой схеме счетчика четности) свой собственный блок Bi (i = 1, 2,. .., s) с двумя входными («левым верхним» и «левым нижним») и двумя выходными («правым верхним» и «правым нижним») полюсами. Конъюнкция, представляющая собой рассматриваемое слагаемое Ki, реализуется цепочкой контактов входящих в Ki переменных, и две копии такой цепочки соединяют левый верхний полюс блока Bi с правым нижним, а левый нижний - с правым верхним. Отрицание слагаемого Ki реализуется как параллельное соединение (пучок) контактов, которым приписаны отрицания входящих в Ki переменных, и две копии такого пучка соединяют левый верхний полюс блока с правым верхним, а левый нижний - с правым нижним. Блок Bs+i представляет собой аналогичный блок, построенный для конъюнкции Ks+i = xo, где xo - новая переменная, отличная от переменных xi, x2,... , xn (фактически, это стандартный блок минимальной построенной по методу каскадов двухполюсной контактной схемы счетчика четности). Правый верхний полюс этого блока обозначается как bi, а правый нижний - как bo. Кроме того, строится блок Bo, в котором его левый
112
Д.С. РОМАНОВ
Рис. 1
(и единственный входной) полюс а соединяется контактом хо с правым нижним полюсом блока Во, а контактом хо - с правым верхним полюсом блока Во. Других контактов в Во нет. Блоки соединяются так: правый верхний (правый нижний) полюс блока Bi отождествляется с левым верхним (левым нижним) полюсом блока Bj+i (i = 0,1,..., s). Вершина а объявляется входным полюсом построенной схемы Sf j, а вершины Ьо, bi - ее выходными полюсами. Пример схемы Sf j для функции f (xi, Х2, хз) = xix2 ® Х1Х3 ® Х2 приведен на рис. 1.
При отсутствии неисправностей в схеме Sf j на каждом входном наборе в каждом блоке схемы для любого входного полюса этого блока имеется проводимость ровно до одного выходного полюса этого блока.
Легко видеть, что при отсутствии неисправностей в схеме Sf j функция проводимости между полюсами а и Ьа равна f (xn) ® (f (0п))а, a G {0, 1}, то есть схема Bf j реализует систему функций (f (хп), f (хп)), причем переменная хо является фиктивной. Заметим, что на каждом наборе значений переменных (хо,х1,... ,хп) имеется проводимость между полюсом а и одним из выходных полюсов схемы.
Схему Sf j можно представить на плоскости так, что каждый из блоков Bi,... , Bs+i будет переходить в себя (с сохранением названий контактов) при симметрии относительно некоторой прямой l (при этом левый верхний полюс каждого из этих блоков перейдет в левый нижний, а правый верхний полюс - в правый нижний).
Тогда имеет место свойство A: для каждой проводящей цепи Z контактов в блоках Bi,... , Bs+i имеется симметричная ей относительно прямой l проводящая цепь Z1, не имеющая с Z ни общих контактов, ни общих вершин.
Рассмотрим два набора значений переменных хо,х1,х2, ...,хп: <х(о) = = (0, 1, 1, ..., 1) и <x(i) = (1, 1, 1, ..., 1). Эти наборы порождают в блоках Bi,... ,Bs ровно две простые «параллельные» проводящие цепи, состоящие только из замыкающих контактов переменных х1, ... ,хп. Легко видеть, что на этих наборах обнаруживаются размыкания всех таких контактов, размыкания обоих контактов блока Bо, а также размыкания двух контактов блока Bs+i, инцидентных некоторому выходному полюсу Ьи схемы, v G {0, 1}. Заметим, что если замкнутым оказался какой-то контакт, по которому не проходит ни одна из двух цепей, проводящих на указанных наборах между входным полюсом схемы и одним из ее выходных полюсов, то в блоке с указанной неисправностью (а второго неисправного контакта в схеме быть уже не может) появляются проводимости между каждым входным полюсом блока и каждым выходным полюсом блока, так что по свойству A возникнут проводимости между полюсом а и каждым из выходных полюсов схемы. Значит, на указанных двух наборах будут обнаруживаться замыкания всех размыкающих контактов переменных х1,...,хп, а также замыкания двух контактов блока Bs+i, инцидентных выходному полюсу Ьр схемы. Кроме того, на этих наборах обнаруживаются замыкания обоих контактов блока Bо.
Рассмотрим теперь для каждого i из множества {1, 2, ..., п} еще по два на-
О СИНТЕЗЕ КОНТАКТНЫХ СХЕМ, ДОПУСКАЮЩИХ КОРОТКИЕ ТЕСТЫ 113
бора значений переменных xo,xi,... ,xi-i,xi ,xi+i,...,xn: a(2i') = (0, 1, ..., 1, 0, 1, . . . , 1) и cn(2i+1) = (1, 1,..., 1, 0, 1,..., 1) . Эти наборы порождают в блоках Bi,... ,Bs ровно две простые «параллельные» проводящие цепи, состоящие только из замыкающих контактов переменных xi,..., xi-i, xi+i,... ,xn и из размыкающих контактов переменной xi. Легко видеть, что на этих наборах обнаруживаются размыкания всех размыкающих контактов переменной xi. Заметим, что если замкнутым оказался какой-то замыкающий контакт переменной xi , то в блоке с указанной неисправностью появляются проводимости между каждым входным полюсом блока и каждым выходным полюсом блока (поскольку остальные контакты содержащей неисправный контакт цепочки замыкающих контактов, соединяющей входной полюс блока с выходным, и так были замкнуты на каждом из рассматриваемых наборов), так что по свойству A возникнут проводимости между полюсом а и каждым из выходных полюсов схемы. Значит, на указанных двух наборах будут обнаруживаться замыкания всех замыкающих контактов переменной
xi .
Возможна ситуация, при которой значения функции f (xn) на всех наборах (1, 1, ..., 1), (0, 1, ..., 1), (1, 0, 1, ..., 1), ... , (1, ..., 1, 0) одинаковы и равны y, Y е {0, 1}. Тогда на наборах а(0), а(1), ... , cn(2n+1) не будут обнаружены замыкания двух контактов блока Bs+i, инцидентных выходному полюсу bv, а также размыкания двух контактов блока Bs+i, инцидентных выходному полюсу bp. Для исправления указанного недочета достаточно добавить к построенному множеству из 2п + 2 наборов еще два набора значений переменных xo,xi,... ,xn: a(2n+2) = (0, 3) и a(2n+3') = (1, (3), где f (/) = Д (так как функция f отлична от константы, такой набор 3 существует).
Построенное множество из 2п + 4 наборов обнаруживает все одиночные размыкания и замыкания контактов в схеме Sf j и, значит, образует единичный проверяющий тест для нее.
Для доказательства п. 2) утверждения теоремы достаточно
а) преобразовать схему Sf j к двухполюсной реализующей функцию /(3n+1) схеме Sj, соединив вершины bo и bi с новым выходным полюсом контактами xn+i и xn+i так, чтобы реализовывалась функция f (xn) ® xn+i,
б) каждый набор (j = 0,1,..., 2п + 3) из п. 1) заменить на два набора значений переменных xo,xi,... ,xn,xn+i: (a(j), 0) и (a(j), 1).
Тот факт, что полученное множество наборов будет образовывать единичный проверяющий тест для схемы Sj, очевиден ввиду отсутствия контактов переменной xn+i в схеме Sf j. □
Поскольку единичный проверяющий тест замыкания (размыкания) является и полным проверяющим тестом замыкания (размыкания), справедливо и следующее утверждение.
Теорема 2. Пусть f (xn) - произвольная булева функция, отличная от константы. Тогда:
1) систему функций ( f, f) можно реализовать тестопригодной контактной схемой, допускающей полный проверяющий тест длины 2п+4 относительно размыканий и полный проверяющий тест длины 2п + 4 относительно замыканий;
2) функцию f(xn+1) = f (xn) ® xn+i можно реализовать тестопригодной контактной схемой, допускающей полный проверяющий тест длины 4п + 8 относительно размыканий и полный проверяющий тест длины 4п + 8 относительно замыканий.
Проверяющие тесты относительно однотипных неисправностей в двухполюсных контактных схемах рассматриваются и в теореме 3.
114
Д.С. РОМАНОВ
Теорема 3. Пусть источник неисправностей U способен вызывать а) только размыкания контактов, б) только замыкания контактов. Тогда доля тех булевых функций f (xn) (от числа всех булевых функций от этих же n переменных), для которых Du(f (xn)) < 2n +2, стремится к единице при неограниченном росте n.
Доказательство. Рассмотрим некоторую отличную от константы булеву функцию f (xn). Модифицируем схему Xf j из доказательства теоремы 1, удалив выходной полюс, на котором реализуется f, и оба инцидентных ему контакта. Получим двухполюсную контактную схему X f , реализующую функцию f. Непосредственно из доказательства теоремы 1 следует, что
а) если значения функции f(Xn) на всех наборах (1, 1, 1), (0, 1, 1),
(1, 0, 1, ..., 1), ... , (1, ..., 1, 0) одинаковы и равны 1, то наборы а(0), а(1), ... , <X(2n+i) образуют полный проверяющий тест относительно размыканий в схеме X f ;
б) если значения функции f(xn) на всех наборах (1, 1, ..., 1), (0, 1, ..., 1), (1, 0, 1, ..., 1), ... , (1, ..., 1, 0) одинаковы и равны 0, то наборы а(0), а(1), ... , ap-n+i) образуют полный проверяющий тест относительно замыканий в схеме Xf .
Пусть теперь функция f (Xn) принимает значения, равные 1, на некотором наборе X = (61,62,... ,6n) и на всех соседних с ним наборах (то есть f принимает значения 1 на наборах из шара радиуса 1 с центром в точке S). Определим функцию g(xi,x2,... ,xn) равной функции f (xl1, x-2 ,...,xsrp), построим схему Xg и инвертируем в этой схеме все контакты каждой переменной xi, для которой 6i = 0, i = 1, 2,... ,n. Полученная в результате этих преобразований схема X ^ будет, очевидно, реализовать функцию f (Xn) и обладать проверяющим тестом длины 2n + 2 относительно размыканий контактов (ибо аналогичным тестом такой же длины обладала схема Xg).
Аналогично, если функция f (Xn) принимает значения, равные 0, на наборе 6 и на всех соседних с ним наборах, то схема Xf будет обладать проверяющим тестом длины 2n + 2 относительно замыканий контактов.
Остается лишь заметить, что доля тех булевых функций f (Xn) (от числа всех булевых функций от этих же n переменных), которые принимают значение п (п G {0, 1}) на некотором шаре радиуса 1, стремится к единице при неограниченном росте n. Доказательство этого факта почти дословно повторяет рассуждения А.А. Икрамова [7, с. 311-312, доказательство теоремы 1] (о доле функций, которые в центре некоторого шара радиуса 1 принимают значение, отличное от значений на остальных наборах шара), поэтому здесь это доказательство воспроизводиться не будет. Теорема доказана. □
Автор выражает глубокую благодарность профессору Сергею Андреевичу Ложкину за обсуждение работы и ценные замечания.
Работа выполнена при поддержке РФФИ (проекты № 12-01-00964-а и № 13-01-00958-а).
Summary
D.S. Romanov. On the Design of Switching Circuits Admitting Small Detection Test Sets. It is established that for an arbitrary nonconstant Boolean function f (xi,... ,xn) there exists a testable switching circuit, a) which is a circuit realizing the system (f, f) and admitting the single fault detection test set of power O(n), b) which is a circuit realizing the function
О СИНТЕЗЕ КОНТАКТНЫХ СХЕМ, ДОПУСКАЮЩИХ КОРОТКИЕ ТЕСТЫ 115
f (xi,... , xn) ® xn+i and admitting the single fault detection test set of power O(n). It is also proved that almost all Boolean functions f (xit.. . ,xn) can be realized by switching circuits which admit small detection test sets (test sets of power O(n)) under homogeneous faults (closures or breakings).
Keywords: Boolean function, switching circuit, detection test set.
Литература
1. Редькин Н.П. Надежность и диагностика схем. - М.: Изд-во Моск. ун-та, 1992. -192 с.
2. Ложкин С.А. Лекции по основам кибернетики. - М.: МАКС Пресс, 2004. - 256 с.
3. Чегис И.А., Яблонский С.В. Логические способы контроля работы электрических схем // Труды МИАН СССР. - 1958. - Т. LI. - C. 270-360.
4. Мадатян Х.А. Полный тест для бесповторных контактных схем // Проблемы кибернетики. - Вып. 23. - М.: Наука, 1970. - С. 103-118.
5. Редькин Н.П. О полных проверяющих тестах для контактных схем // Методы дискретного анализа в исследовании экстремальных структур. - Новосибирск: Изд-во ИМ СО АН СССР, 1983. - Вып. 39. - С. 80-87.
6. Редькин Н.П. О проверяющих тестах замыкания и размыкания // Методы дискретного анализа в оптимизации управляющих систем. - Новосибирск: Изд-во ИМ СО АН СССР, 1983. - Вып. 40. - С. 87-99.
7. Икрамов А.А. О сложности тестирования логических устройств на некоторые типы неисправностей // Интеллектуальные системы. - 2013. - Т. 17, № 1-4. - С. 311-313.
Поступила в редакцию
18.08.14
Романов Дмитрий Сергеевич - кандидат физико-математических наук, доцент кафедры математической кибернетики, Московский государственный университет имени М.В. Ломоносова, г. Москва, Россия.
E-mail: [email protected]