УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
Том 151, кн. 2
Физико-математические пауки
2009
УДК 519.718
О ПОЛНЫХ ПРОВЕРЯЮЩИХ ТЕСТАХ ОТНОСИТЕЛЬНО ЛОКАЛЬНЫХ СЛИПАНИЙ ПЕРЕМЕННЫХ В БУЛЕВЫХ ФУНКЦИЯХ
II.А. Кузнецов, Д.С. Романов
Аннотация
Под локальным &-кратным слипанием переменных в булевой функции /(ж") понимается функция, полученная в результате подстановки вместо каждой из каких-то к последовательных переменных функции / произвольной булевой функции от этих переменных (2 < к < те). В работе изучаются полные проверяющие тесты относительно локальных к-кратных слипаний переменных в булевых функциях /(ж"). При этом устанавливается, что при п ^ ж, (те — к) ^ ж, к ^ ж асимптотика функции Шеннона длины такого теста имеет вид 2к-1(п — к + 2). Кроме того, доказывается, что при п ^ ^ ж, (п — к) ^ ж, 7(п, к) ^ ж, 7(п, к) = o(log2 (п — к)) существует множество наборов мощности, не превосходящей |~log4/3(n — к + 1)+ 7(п,к)"|, являющееся полным проверя-
к
булевых функций f (ж"). В работе также получено, что при п ^ ж, 2 < к < п, (п — к) ^ ^ ж для почти всех булевых функций /(ж") длина минимального полного проверяющего
к
Ключевые слова: булева функция, тест для входов схем, локальное слипание переменных.
Введение
Пусть и, к - натуральные числа(1 < к < и), /(ж") - булева функция и Ф(ук) = = {<£>г(ук) | % = 1, •• •, 22 } - система всевозможных попарно неравных булевых функций к переменных. Обозначим через Ф = Ф",к,/,ф(ж") систему функций, в которую входит функция / (ж") и всевозможные функции ^¿,г(ж") гада ^¿,г(ж") =
/ (х1 ? • • • ? х0 — 1 ? ^г (х0 , хЗ + 1, • • • , х^+к — 1 ), • • • , ^г (х^ ? х,7 + 1, • • • , х^+к — 1 ) ? х^ + к , • • • , х" ) ?
где 1 < о < и - к + 1, % е {1, • • •, 22*}. Ясно, что |Ф| = 22*(и - к + 1) + 1. Множество Т наборов значений переменных xl,•••,xn называется полным прок
булевой функции /(ж") тогда и только тогда, когда любая не равная /(ж") функция из Ф отличается от / та множестве Т. Число наборов в тесте Т называется его длиной и обозначается 1(Т). Тест минимальной длины называется минимальным. Длину минимального полного проверяющего теста относительно локальных к-кратных слипаний переменных булевой функции /(ж") будем обозначать через Ьк(/(ж")). Введем функцию Шеннона длины полного проверяющего теста относительно локальных к-кратных слипании переменных булевой функции: Ьк (и) = = тах Ьк(/(ж"))
/ (хп)
Ранее рядом авторов изучались некоторые близкие к рассматриваемым в дани
менных (так называемые тесты для входов схем). Следует отметить цикл работ
В.Н. Носкова [1 4]. статью H.H. Нурмеева [5] и препринт Г.Р. Погосяна [6]. Были установлены точные значения функций Шеннона длин тестов следующих типов: полного проверяющего теста при константных неисправностях на входах схем [2] и единичного диагностического теста при константных неисправностях на входах схем [3]. полного проверяющего теста при дизъюнктивных слипаниях переменных и проверяющего теста при дизъюнктивных слипаниях переменных кратности не более k [6], единичного проверяющего теста при инверсиях на входах схем [6]. С точностью до аддитивной константы 1 найдена функция Шеннона длины полного проверяющего теста при инверсиях на входах схем [6]. В [1] установлены асимптотика логарифма функции Шеннона длины диагностического теста относительно константных неисправностей кратности не более k та входах схем (при n ^ ж, k = = o(n)) и порядок логарифма функции Шеннона длины полного диагностического теста относительно константных неисправностей. В [3] доказана логарифмичность n
n
ных. В [2] для почти всех булевых функций при константных неисправностях на входах схем доказаны линейность длины минимального полного проверяющего теста и равенство трем длины минимального единичного проверяющего теста. В [4. 5] рассмотрены классы произвольных неисправностей, преобразующих информацию k
nk n
nk почти всегда образует диагностический тест [5].
1. Поведение функции Шеннона Lk(n) Верно следующее утверждение о поведении функции Шеннона Lk(n). Теорема 1. Пусть n, k G N 2 < k < n. Тогда справедливы неравенства:
2k-1(n - k + 2) < Lk(n) < (2k-1 + 1) • (n - k + 1) + 2k
Доказательство. Таблицу размерами 2k x 22k, состоящую из столбцов значений всех функций из Ф(ук), обозначим через M(Ф(ук)), а отрицание (поэлементное) этой таблицы - через M(Ф(ук)). Зафиксируем число j (1 < j < n — -k+1
булевой функции f (ßn) на всех (следующих в лексикографическом порядке) наборах подкуба B(k'j) = (а?-1, 2k, ßn-j-k+1 )5 Где двойка обозначает произвольное значение переменной, а а?-1 и ßn-j-k+1 — булевы векторы. Вектор значений функции f'(ßn) та подкубе B^ ? обозначим через f'[BJ^?)]. Заметим, что если f (а?-1,ßk,ßn-j-k+1) = f (а?-1, ik,ßn-j-k+1) = T0 для любой функции ф? , i(ßn) векто р ф? , ¿[B (ßk ?)] равен (ß2 ) = (а,..., а). При этом если существует такой булев набор ßk, что f (aj-1,ßk, ßn-j-k+1) = то этот набор проверяет все функции неисправностей ф? , 1(ßn),..., ф? 22k (ßn). В этом случае тройку
наборов (а?-1,ßk,ßn-j-k+1), (5j-1,JTk, ßn-j-k+1), (а?-1 ,ßk,ßn-j-k+1) такую, что f (а?-1,ßk,ßn-j-k+1) = f (а?-1,ßk,ßn-j-k+1) = /(а?-1 ,ßk,ßn-j-k+1) назовем замечательной тройкой для ж?, а набор (а?-1,ßk, ßn-j-k+1) - особым набором для ж?. Если f(а?-1,ßk,ßn-j-k+1) = О, f(а?-1,ßk,ßn-j-k+1) = 1, то фрагмент таблицы неисправностей, связанный с проверкой переменных ж?,..., x?+k-1>
n — k + 1
k
на подкубе В"к' в) имеет ВИД М(Ф(ук)). Если же /(а^' 1,0к,ж" к+1) = 1, /(а^-1,1к, ж"-'-^1) = 0, то фрагмент таблицы неисправностей, связанный с проверкой переменных ж^, • • •, х^-+к-1, та подку бе В"к' ¿) имеет в ид М (Ф(ук))-Ясно, что в последних двух случаях для проверки всех функций неисправностей ф^-, 1(ж"), • • •, ф22к (ж") достаточно взять все наборы подкуба В^¿) и еще один некоторый набор.
Доказательство верхней оценки. Пусть /(ж") - произвольная булева функция. Под проверкой переменной х^- будем понимать процесс построения множества наборов, обнаруживающих всевозможные слипания переменных ж^, • • •, х^-+к-1 • Организуем процесс построения теста для /(ж") следующим образом. Будем последовательно строить множества наборов, проверяющих сначала переменную ж"_к+1, затем переменную ж"-к, затем ж"-к-1 и т. д., наконец переменную ж1. Проверку каждой переменной будем называть шагом.
Одной из типичных ситуаций будет использование для проверки переменной ж.,- всех 2к наборов некоторого подкуба В"к' ¿) и еще одного набора. При этом под наследованием будет пониматься ситуация, когда для проверки ж.-1 используется половина наборов выбранного на предыдущем шаге подкуба В"к' . (входящая в
некоторый подку б В "к '¿-^ ).
Договоримся о некоторых терминах, связанных с классификацией векторов /[В (к' в)] = )• Если все компоненты вектора одинаковы, назовем век-
тор константным. Если вектор порождает замечательную тройку по ж., назовем
его замечательным. Если в векторе найдутся две не равные друг другу компо-
2к-1
/
ли при этом в векторе первая и последняя компоненты не равны друг другу, то вектор назовем перспективным. Остальные векторы /[В ^¿)], в которых первая и последняя компоненты не равны друг другу, назовем бесперспективным,и (ясно, что первая половина бесперспективного вектора равна второй его половине).
Два подкуба В ^ '.) и В "к ¿в (а также соответствующие им вектора / [В "к '¿)] и
/[В ^ ¿в]) назовем соседними, если наборы а' и а'' отличаются лишь последними компонентами.
Опишем очередной шаг построения теста, связанный с проверкой ж^ , рассматривая различные случаи.
1. Если для данной переменной существует замечательная тройка, то ее особый набор проверяет данную переменную: включим его в тест, перейдем к следующему шагу.
2. Если замечательных троек нет, но есть перспективная пара наборов, то рассмотрим к подкубов размерности к, содержащих эту пару наборов: В "к' ¿),
0й(2)' в(2) Е,й<к>' в(к) 1С, е.
В(к ¿-1) , • • • > В (к ¿_к+1) (половина наборов каждого следующего подкуба содержится в предыдущем). Каждый из этих подкубов имеет неконстантный вектор. к
к
наследование, и общее число включенных в тест наборов не превзойдет величины 2к-1 (к + 1) + к.
3. Если все подкубы В ^¿) имеют константные векторы значений, то любой набор не позволит обнаружить никакое слипание переменных ж^, • • •, ж^к- • В тест добавить нечего, шаг завершен.
4. Рассмотрим, наконец, ситуацию, когда среди векторов / [В ^ встречаются лишь константные и бесперспективные векторы, но не одни только константные.
4.1. Пусть среди всех векторов / [В ^ ^ ] найдутся два соседних различных бесперспективных вектора либо соседние бесперспективный и константный векторы. Тогда на данном шаге включим в тест все входные наборы для бесперспективного вектора и еще один набор, а на следующем шаге один из векторов значений, который «покрывается» данными двумя соседними, будет либо замечательным (тогда за 2 шага в тест будет включено 2к + 2 наборов), либо перспективным, причем в данном случае будет иметь место наследование, и по аналогии с п. 2 можно провести еще к шагов с наследованием; общее число включенных в тест на всех этих (к + 1) шагах наборов составит не более чем 2к-1(к + 2) + к +1.
4.2. Пусть теперь среди всех векторов /[В"^)] есть два соседних различных константных вектора и встречаются одинаковые соседние бесперспективные векторы. Тогда на данном шаге включим в тест все входные наборы для некоторого бесперспективного вектора и еще один набор, а на следующем шаге любой из векторов, «покрываемых» двумя различными соседними константными векторами,
к
(к + 1)
составит не более чем 2к-1(к + 3) + к + 1.
4.3. Пусть среди всех векторов /[В ^есть только либо соседние равные бесперспективные векторы (хотя бы одна пара), либо соседние равные константные векторы. В этом случае организуем наследование с использованием бесперспективных векторов соседних кубов. Заметим, что при «склейке» соседних одинаковых бесперспективных векторов на следующем шаге возникают либо константные, либо бесперспективные векторы.
4.3.1. Если все векторы /[В ^одинаковы и бесперспективны, то через некоторое число т шагов с наследованием либо будет проверена переменная х1 и в тест будет включено наборов не более чем 2к-1(т + 1) + т (при этом построение теста завершится), либо появится непроверяемая переменная, и в тест будет включено наборов не более чем 2к-1т + т.
4.3.2. Если же но выполнено и условно предыдущего подпункта, то возможны следующие случаи:
A) можно организовать процесс включения наборов в тест так, что через неко-
т
мечательный вектор, и за эти т шагов в тест войдет не более чем 2к-1т + т наборов:
Б) можно организовать процесс включения наборов в тест так, что через ноко-т
тивный вектор, тогда можно проделать еще к шагов, как в п. 2, и за т + к шагов в тест войдет не более чем 2к-1(к + т +1) + к + т наборов;
B) ситуации случаев А и Б не встречаются, и всякое наследование с использованием бесперспективных векторов приводит рано или поздно к константным век-
т
переменная . Если у всех подкубов константные векторы, то эта переменная
не проверяема, и в тест за т шагов войдет не бол ее чем 2к-1т + т — 1 наборов. Иначе на некотором шаге £ (£ < т) найдутся два соседних подкуба с неравными векторами (сами эти векторы могут быть константными, тогда для проверки соответствующей переменной придется использовать «посторонний» подкуб), что приведет на шаге £ + 1 к появлению перспективной пары наборов, далее по аналогии
с п. 2 можно проделать еще к шагов, и за к + £ + 1 шагов в тест войдет не более чем 2к-1(к + £ + 3) + к + £ +1 наборов.
к
2к-1(к + 2) + к
оценка.
Доказательство нижней оценки. Рассмотрим в качестве булевой функции /(ж") конъюнкцию п переменных. Ясно, что в проверяющий тест должен войти ( ж1 " )
отстоят не более чем на (к-1) место. Если не включить набор (1 ¿-1, жк, 1"-''-к+1), то нельзя отличить от / такую функцию ф^, ® (ж"), для которой ^¿(ж^, • • •, ж^+к-1) обращается в 1 только на наборах цк и (1к). Ясно также, что выбранных наборов достаточно для проверки /(ж"). Общее количество выбранных наборов, очевидно, к-2
равно 1 + п + (п —« — 1)2® = 2к-1 (п — к + 2), откуда и получается нижняя оценка
(=0
функции Шеннона. □
Следствие 1. Пусть п, к € N 2 < к<п, п ^ то, (п — к) то, к ^ то. Тогда Ьк(п) - 2к-1(п — к + 2)
2. Тесты для почти всех булевых функций
Теорема 2. Пусть п, к € N 2 < к<п, п то, (п — к) то, 7 (п, к) ^ то, 7(п, к) == о(^2(п — к)). Тогда существует множество наборов Т" мощности |Т"| < log4/3(n — к + 1) + 7(п, к) , являющееся полным проверяющим тестом
к
левых функции /(ж").
Доказательство. Положим д = ^4/3(п — к + 1) + 7(п, к) и выберем множество Т", состоящее из д булевых п-разрядных наборов таких, что в каждом из к
дого ] (1 < ] < п — к + 1) при всевозможпых к-кратных локальных константных слипаниях переменных с ^'-й по + к — 1)-ю го них получается множество Т", , состоящее из 2д попарно неравных наборов. Такой выбор множества Т", очевидно, возможен. Оценим сверху число П„ ,тп булевых функций п переменных, для которых множество Т" не образует проверяющего теста рассматриваемого типа: П" ,тп < (п — к + 1)6922 . Здесь множитель (п — к + 1) означает число способов выбора переменной ж^, то которой в множествах Т" и 2"" , нет замечательных троек, множитель 69 есть число способов выбора значений функции / на наборах из Т" и 2" , так, что те возникает замечательных троек по ж^, множитель 22 - это число способов доопределения значений функции / на остальных наборах. Имеем: Пп<Тп < (п - к + 1) (3/4)9 22" < (3/4)7("'к) 22" = о (22"), что и требовалось доказать. □
к
п значение функции Ьк(/(ж")) ограничено сверху величиной 3 для почти всех булевых функций /(ж").
Положим г
п — к +1
1
г + к - 2 к
Обозначим через Ц" множество всех таких наборов а = (а1? • • •, а„) из Е", у которых а1 = а2 = ак+1 = ак+2 = • • • = а®к+1 = а®к+2 = • • • = а(;-1)к+1 = = <5к(!-1)к+2 = а1к+1 и, если г > 1к — к + 2 (то есть г + к — 1 > 1к + 1), то а1 = а1к+2 .
Легко видеть, что каждый набор из и„ те содержит к одинаковых подряд идущих значений среди значений переменных ж1,..., жг+к-1, и что
Г2"-2г-1, если г > 1к — к + 2,
|и„| = ' (1)
[2"-2г, если г = 1к — к + 2.
Пусть а £ ип. Обозначим через к множество всех таких наборов ', каждый из которых получается из а заменой каких-то к подряд идущих значений (в пози-
г+к—1 Б'Ц к = к и а. Заметим, что
г + 2 <|5'к1< 2г +1. (2)
Положим V" = и к •
Обозначим через Мп множество наборов из Ц" такое, что для любых различных а', а'' из Мп выполнено соотношение
<к П <к = 0. (3)
Введем функцию ^к (п) — максимальную мощность такого множества Мп. Лемма 1. Справедливы, оценки
2п-21-к-1о82 г-1 < Мк(п) < 2п-21-к+3,
1 = г + к - 2 п — к +1
к , г = 3
Доказательство. Верхняя оценка следует из условия (3) в определении (п) и из неравенств (2):
ик(п) < -Щг- < . 2п-21-(к-2) < г-21-к+3
™ 1^1 -Г + 1
а £ип '
Нижняя оценка. Будем строить множество Мп такое, что |МП| = (п), последовательно включая в пего наборы. Заметим, что если набор а включен в Мп, то по определению Мп в это множество уже нельзя включить ни один из наборов а''', для котор ых к П к = 0. Число так их а''' для фиксирован пого а не превосходит величины г2к (включая а). Следовательно, выбрав £ наборов в множество Мп, «запрещенными» становятся не более чем £г2к наборов. И если £г2к < |и„|, то в ип еще есть набор, который можно включить в М„, что противоречит максимальности мощности М„. Значит, |ип| < (п)г2к , то есть с учетом (1) ¿4к(?г) > 2п_2г_к_1°ё2 г-!. что н доказывает лемму. □
Теорема 3. Пусть п, к £ N п то, 2 < к < п, (п — к) ^ то. Тогда для почти всех булевых функции /(ж") справедлива оцемко Ьк(/('")) < 3.
Доказательство. Покажем, что для почти всех булевых функций /(ж") найдется набор 3 £ Е", та котором для любого ^ £ {1,..., г} обнаруживаются все локальные к-кратные слипания переменных ж^-, ..., ж^+к-1 (из этого с очевидностью будет следовать утверждение теоремы).
Заметим, что для искомого набора / достаточно, чтобы он лежал в ип и обладал следующим свойством:
Свойство А. Для любого / € к выполнено равенство /(/) = /(/).
Случай 1. Пусть 3 < к < п.
Зафиксируем некоторое множество Мп (М„ С ип) такое, что |Мп| = ^к(п), и оценим сверху долю Рп , к тех булевьж фун кций / (х 1,..., ж„), для которых не существует набора / из Мп, обладающего свойством А:
Pn,k = ( П (2l§a'fcl- ^ • 22"-Е
ia £M„
где суммирование производится по a G Mn. Далее, используя (2) и лемму 1, полу-
чим:
a £M„
П 1-^7 U 1-^fT si-
Mfc(n) / ! - 2"-2i-fc-l°g2
2|S^jfc| У - V 22r+V - V 22(n-k+2)/3
а последнее выражение стремится к нулю при п то, 3 < к < п, (п — к) ^ то. Значит, при указанных условиях набор П/ существует в выбранном множестве Мп
п
доказательства теоремы в данном случае.
п — 1
3
Доказательство аналогично случаю 1. Достаточно лишь заметить, что для любого а € ип верно неравенство:
Случай 2). Пусть теперь k = 2, n > 11 (тогда r =
> 4).
г + 2 < ^к| < г + 3.
Выберем для каждого фиксированного набора (а1; аг+2, аг+3,..., а„^з по одному набору а = (а1?..., ап) из ип в множество М„, тогда, очевидно, все сформулированные ранее требования на Мп выполнены и на |МП| = 2П-Г. При
йем^ 2 / \
а последнее выражение стремится к пулю при п ^ то. Значит, при указанных условиях набор / существует в выбранном множестве Мп для почти всех булевых функций п переменных, что и требовалось доказать. □
Работа выполнена при поддержке РФФИ (проекты Л*1' 09-01- 00817 и 07-0100444).
Summary
I.A. Kuznetsuv, D.S. Romanov. On Full Checking Tests under Local Glueings of Variables in Boolean Functions.
A local fc-fold glueing of variables in Boolean function f (a;n) is a function obtained as a result of substitution instead of some fc successive variables an arbitrary Boolean function depending on these variables (2 < fc < n). Full checking tests under local fc-fold glueings
of variables in Boolean functions f (in) are studied in this paper. It is established that if n ^ то, (n — k) ^ то, k ^ то, then an asymptotics of Shannon function of the test length is 2k-1(n — k + 2). Furthermore, let n ^ то, (n — k) ^ то, j(n,k) ^ то, y(n, k) = = o(log2(n — k)), therefore, a set of n-tuples exists which is full checking test under local k-fold glueings of variables in almost all Boolean functions f (ж") and whose power is not greater than |"log4/3(n — k + 1) + Y(n, k)j . At last, under conditions n ^ то, 2 < k < n, (n — k) ^ то, a length of minimal full checking test under local k-fold glueings of variables is not greater than 3 for almost all Boolean functions f (a;n).
Key words: Boolean function, test for inputs of circuits, local glueing of variables.
Литература
1. Носков В.Н. Диагностические тесты для входов логических устройств // Дискретный анализ. Новосибирск: ИМ СО АН СССР, 1974. Л» 26. С. 72 83.
2. Ноское В.Н. О сложности тестов, контролирующих работу входов логических схем // Дискретный анализ. Новосибирск: ИМ СО АН СССР, 1975. 27. С. 23 51.
3. Носков В.Н, О длинах минимальных единичных диагностических тестов, контролирующих работу входов логических схем // Методы дискретного анализа в синтезе управляющих систем. Новосибирск: ИМ СО АН СССР, 1978. 32. С. 40 51.
4. Носков В.Н, Об универсальных тестах для диагностики одного класса неисправностей комбинационных схем // Методы дискретного анализа в решении экстремаль-пых задач. Новосибирск: ИМ СО АН СССР, 1979. Л» 33. С. 41 52.
5. Нурмссв Н.Н. Об универсальных диагностических тестах для одного класса неисправностей комбинационных схем // Вероятностные методы и кибернетика. Казань: Изд-во Казан, ун-та, 1982. Вып. 18. С. 73 76.
6. Погосяи Г.Р. О проверяющих тестах для логических схем. М.: ВЦ АН СССР, 1982. 57 с.
Поступила в редакцию 02.03.09
Кузнецов Иван Алексеевич студент факультета вычислительной математики и кибернетики Московского государственного университета им. М. В. Ломоносова.
E-mail: mkQcs.msu.ru
Романов Дмитрий Сергеевич кандидат физико-математических паук, доцепт факультета вычислительной математики и кибернетики Московского государственного университета им. М. В. Ломоносова.
E-mail: romanovQcs.msu.ru