Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Булева_алгебра.doc
Скачиваний:
9
Добавлен:
01.03.2025
Размер:
2.54 Mб
Скачать

6.2. Построение тестов методом булевой производной

Предположим, что схема рис. 19 описывается функцией

f(x) = f(x1, x2,…, xj,…, xn) .

Рисунок 19 – Условное обозначение схемы

для пояснения понятия «булевой производной»

Пусть на входе xj возникла неисправность “константа 0” ( 0).

Чтобы обнаружить ее, необходимо сделать xj существенной переменной, т.е. чтобы при изменении xj менялось значение выхода f(x). Это условие можно записать так

f(x1,x2,…, ,…,xn) f(x1,x2,…, ,…,xn) = 1 .

(Обратите внимание на и .)

Или коротко

f( ) f( ) = 1 .

Это выражение равно 1 тогда и только тогда, когда только одно из значений f( ) или f( ) равно 1. Если же оба значения одинаковы, т.е. f(x) не управляется , то сумма по модулю два равна 0.

Сумма f( ) f( ) носит название булевой производной или булевой разности и обозначается

f( ) f( ) .

Решение уравнения

1

определяет набор переменных (не ), который позволяет обнаружить неисправность на входе . Значения же определяются из условий:

  • для обнаружения неисправности 0 надо подать на вход 1,

  • для обнаружения неисправности 1 надо подать на вход 0.

Таким образом, для определения набора входных переменных, обнаруживающего неисправность 0, надо решить уравнение

1, (1)

а для неисправности 1 соответственно уравнение

1. (2)

Производные удобнее определять по выражению

f(x1, x2,…, 1,…, xn) f(x1, x2,…, 0,…, xn)

или проще

f(1) f(0),

где заменена на 1, а на 0.

В логическом базисе И, ИЛИ, НЕ булева производная запишется так

. (3)

В общем случае переменная не обязательно входная – это может быть внутренняя (промежуточная) или даже выходная переменная.

6.2.1. Свойства булевой производной

При решении уравнений (1) и (2) широко используются свойства булевой производной:

  1. – не зависит от .

  2. Решение уравнения g(x) = 1 определяет набор , при котором становится существенной переменной.

  3. Решение уравнения g(x) = 0 определяет набор , при котором не влияет на выходную функцию f(x).

  4. Если , то всегда является существенной.

  5. Если , то f не зависит от .

Свойства 6 и 7 следуют из симметричности формулы (3) относительно и f.

Следствие: если f1 не зависит от xj , то

Следствие: если f1 не зависит от xj , то

10.

Следствие: если f1 не зависит от xj, то

где k – промежуточная точка схемы такая, что пути от j к выходу идут через k.

  1. Булевы производные функций, реализуемых типовыми элементами:

  1. Для f = x1x2xjxn и f =

  1. Для f = и f =

  1. Для f = x и f =

  1. Для

, j = .

Пример 1:

Найти наборы для обнаружения неисправностей на входе a схемы рис. 20.

Рисунок 20 – Схема к примеру 1

Для определения тестового набора неисправности а 0 надо решить уравнение

(4)

Решаем, используя свойства булевой производной:

,

(свойство 11),

Или сразу (следствие свойства 8).

Или сразу (по выражению 12,b).

Следовательно,

(5)

Для уравнения (4) получаем

или

В обоих произведениях отсутствует по одной переменной, поэтому для каждого из них будет по два решения – по два набора.

Следовательно, наборы для обнаружения неисправности а 0 будут такими

1)

a

b

c

d

2)

a

b

c

d

1

0

1

1

1

0

1

1

1

0

1

0

1

0

0

1

Объединяя 1) и 2), получаем

a

b

c

d

1

0

1

0

1

0

1

1

1

0

0

1

Любой из этих наборов обнаруживает неисправность а 0.

Для неисправности а 1 надо решить уравнение

.

Производную мы уже знаем (5), она равна , поэтому получаем

.

Следовательно, имеем два решения

В обоих произведениях отсутствует по одной переменной, поэтому для каждого из них будет по два решения – по два набора.

Или

1)

a

b

c

d

2)

a

b

c

d

0

0

1

1

0

0

1

1

0

0

1

0

0

0

0

1

Объединяя, получаем

a

b

c

d

0

0

1

0

0

0

1

1

0

0

0

1

Любой из этих наборов обнаруживает неисправность а 1.

Пример 2:

Найти наборы для обнаружения неисправностей на входах и выходах сумматора (рис. 21).

Рисунок 21 – Схема к примеру 2

Сумматор выполняет функции

Сначала определим наборы для проверки первой функции.

Находим

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

Для проверки надо подать , а для проверки надо подать .

Минимальными тестами здесь являются пары инверсных наборов

000 – 111, 001 – 110, 011 – 100, 101 – 010,

которые проверяют не только входы, но и выходы сумматора, так как на одном из наборов пары каждый выход равен 1, а на другом 0. Поэтому строить тест для проверки выхода p нет необходимости.

Замечание: Для контроля работоспособности сумматора получен тест минимально возможной длины (два набора). Тест такой же длины получается и для элементов ИСКЛЮЧАЮЩЕЕ ИЛИ и РАВЕНСТВО с нечетным числом входов.