Формы записи булевых функций.

Табличная запись.

Одним из распространенных способов записи булевой функции является ее задание с помощью таблицы соответствия (таблицы истинности), которая сопоставляет всем двоичным наборам аргументов значения функции на этих наборах. Буквы и наборы в таблице могут располагаться в любом порядке, однако практически целесообразно осуществлять запись следующим образом:

1) порядок записи букв в таблице совпадает с порядком аргументов в записи функции;

2) наборы, представляющие собой двоичные числа, располагаются в таблице в порядке их возрастания. Каждому набору приписывается номер соответственно представляемому им числу:

000…00 – нулевой набор;

000 …01 – 1-й набор;

. . . . . . . . . . . . . . . . . . .

111 … 11 - (2n-1)–й набор.

Функция, записанная в табличном виде, имеет индекс, равный двоичному числу, образованному значениями этой функции, записанными слева направо, начиная со значения на нулевом наборе.

Пример. Запись функции f248(АВС) = Формы записи булевых функций. - student2.ru приведена в табл.1.5

Таблица 1.5

 
  Формы записи булевых функций. - student2.ru

A B C B↓C Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru

 
  Формы записи булевых функций. - student2.ru

0 0 0 1 0 1

0 0 1 0 1 1

0 1 0 0 1 1

0 1 1 0 1 1

1 0 0 1 0 1

1 0 1 0 1 0

1 1 0 0 1 0

1 1 1 0 1 0

При задании булевых функций при 3≤n≤10 иногда используют прямоугольные таблицы, т.е. те же таблицы соответствия, но в несколько ином начертании, позволяющем получить более компактную запись. Для функции от n переменных такая таблица имеет Формы записи булевых функций. - student2.ru строк и Формы записи булевых функций. - student2.ru столбцов, где Формы записи булевых функций. - student2.ru - целая часть числа n/2.

Пример. Запись функции f(ABCD)=[(C→D)~B] Формы записи булевых функций. - student2.ru [A |0] дана в табл.1.6

Пример. Запись функции f(ABCD)= Формы записи булевых функций. - student2.ru приведена в табл.1.7

Таблица 1.6 Таблица 1.7

       
  Формы записи булевых функций. - student2.ru   Формы записи булевых функций. - student2.ru
 

CD BC

Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru А

Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru AB 00 01 10 11 00 01 10 11

00 1 1 1 1 0 1 1 1 1

01 1 1 1 1 1 1 0 0 0

10 0 0 1 0

11 1 1 0 1

Аналитическая запись.

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

Пример. Формы записи булевых функций. - student2.ru - элементарные произведения, Формы записи булевых функций. - student2.ru - эти произведения не являются элементарными.

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

Пример. Формы записи булевых функций. - student2.ru - ранг 3.

Минтермом или конституентой единицы n переменных называется элементарное произведение ранга n.

Аналогичные определения существует и для булевых сумм.

Пример. Формы записи булевых функций. - student2.ru - элементарная сумма ранга 2; Формы записи булевых функций. - student2.ru не является элементарной суммой.

Макстермом или конституентой нуля n переменных называется элементарная булева сумма ранга n.

Как булева функция минтерм принимает значение единицы только на одном наборе, аналогично макстерм принимает только на одном наборе значение нуля.

При записи минтерма часто используется буква m с индексом того набора, на котором данный минтерм принимает значение единицы.

Пример. Формы записи булевых функций. - student2.ru =m5.

Двоичный эквивалент индекса для минтерма может быть определен из записи минтерма подстановкой вместо прямых форм переменных цифры 1, а вместо инверсных – цифры 0.

Пример. Формы записи булевых функций. - student2.ru - минтерм ранга 4;

1010 – двоичный эквивалент индекса.

Формы записи булевых функций. - student2.ru = m10.

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

Пример. m5 – ранга 4 имеет запись Формы записи булевых функций. - student2.ru ; m5 – ранга 3 имеет запись Формы записи булевых функций. - student2.ru .

Аналогично при записи макстерма используется буква М с индексом, двоичная запись которого содержит 1, если соответствующая переменная входит в аналитическую запись макстерма в прямой форме, и 0, если в инверсной.

Пример. Формы записи булевых функций. - student2.ru1100= М12.

Между минтермами и макстермами существует следующая связь:

Формы записи булевых функций. - student2.ru i = M2n-i-1; Формы записи булевых функций. - student2.ru i = m2n-i-1.

Булева сумма всех минтермов ранга n равна единице:

2n-1

Формы записи булевых функций. - student2.ru mi =1.

i=0

Это следует из того, что число различных минтермов ранга n равно 2n, т.е. числу различных наборов n переменных, а функция, принимающая на всех наборах значение 1, есть константа 1.

Используя теорему де Моргана, можно показать, что произведение всех макстермов ранга n равно нулю:

2n-1

Λ Mi =0.

i=0

Из этих уравнений следует

mimj =0 при i≠j;

Mi + Mj =1 при i≠j.

Равенства очевидны, если вспомнить, что минтерм – это конституента единицы, а макстерм – конституента нуля.

Основная теорема.

Любая булева функция может быть выражена булевой суммой минтермов или произведением макстермов.

Таблица 1.8 Составим таблицу функций и найдем булево

Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru A B C f(ABC) выражение для данной функции. Из табл.1.8 видно,

Формы записи булевых функций. - student2.ru 0 0 0 0= α0 что функция равна единице, только на наборах,

0 0 1 1= α1 равных 001, 101, 111, что соответствует минтер-

0 1 0 0= α2 мам Формы записи булевых функций. - student2.ru .

0 1 1 0= α3 Это значит, что данная функция может быть

1 0 0 0= α4 дизъюнкцией этих минтермов, т.е.

1 0 1 1= α5 Формы записи булевых функций. - student2.ru = m1 + m5+ m7.

1 1 0 0= α6 Чтобы убедиться в сказанном, запишем дан-

1 1 1 1= α7 ную функцию в виде суммы произведений значений функции на соответствующие минтермы:

f(ABC)= α0 m0 + α1 m1 + α2 m2 + α3 m3 + α4 m4 + α5 m5 + α6 m6 + α7 m7 =

= 0m0 + 1m1 + 0m2 + 0m3 + 0m4 + 1m5 + 0m6 + 1m7 ,

где αi – значение данной функции на i –ом наборе.

Следовательно, справедлива запись:

2n-1

f(x1 x2 … xn)= Формы записи булевых функций. - student2.ru α i mi .

i=0

Применив формулу де Моргана, найдем выражение

2n-1

Формы записи булевых функций. - student2.ru ( x1 x2 … xn)= Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru i mi .

i=0

Формы записи булевых функций. - student2.ru 2n-1 2n-1 2n-1 2n-1

Формы записи булевых функций. - student2.ru f(x1 x2 … xn)= Формы записи булевых функций. - student2.ru (x1 x2 … xn)= Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru i mi = Λ ( Формы записи булевых функций. - student2.ru i mi)= Λ (α i + Формы записи булевых функций. - student2.ru i)= Λ (α i +M2n-i-1).

i=0 i=0 i=0 i=0

Основная теорема:

2n-1 2n-1

f(x1 x2 … xn)= Формы записи булевых функций. - student2.ru α i mi = Λ (α i +M2n-i-1).

i=0 i=0

Для аналитических записей булевых функций существуют следующие определения:

Булева сумма элементарных произведений называется дизъюнктивной нормальной формой (ДНФ).

Формы записи булевых функций. - student2.ru - ДНФ;

Формы записи булевых функций. - student2.ru - не является ДНФ.

Булево произведение элементарных сумм называется конъюнктивной нормальной формой (КНФ).

Формы записи булевых функций. - student2.ru - КНФ;

Формы записи булевых функций. - student2.ru -не является КНФ.

ДНФ функции n переменных, состоящая из элементарных произведений ранга n (т.е. из минтермов), называется совершенной дизъюнктивной нормальной формой функции (СДНФ).

КНФ функции n переменных, состоящая из элементарных сумм ранга n (т.е. из макстермов), называется совершенной конъюнктивной нормальной формой функции (СКНФ).

Основная теорема содержит запись СДНФ и СКНФ функций.

Из теоремы следует, что запись СДНФ (или СКНФ) булевой функции единственна.

Выражение функции в СДНФ и СКНФ с помощью аналитических преобразований.

Для получения СДНФ функции аналитическим способом используется следующий прием:

1) аналитическое выражение функции приводится к бесскобочной записи в форме дизъюнкции каких-либо конъюнкций;

2) каждая конъюнкция, имеющая число сомножителей меньше n, умножается на выражение «1» через все недостающие переменные ( Формы записи булевых функций. - student2.ru );

3) раскрываются скобки и приводятся подобные члены.

Пример. Найти СДНФ функции f(ABCD)= Формы записи булевых функций. - student2.ru .

Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru

Формы записи булевых функций. - student2.ru m15 + m14 + m13 + m12 + m11 + m9 + m8 + m3 +m1.

Для получения СКНФ функции без использования табличной записи следует применять процедуру вида:

1) аналитическое выражение функции приводится с помощью соотношения AB+C=(A+C)(B+C) к конъюнктивной записи со скобками, причем в скобках должны стоять дизъюнкции отдельных переменных в прямой или инверсной форме;

2) к каждой дизъюнкции добавляется выражение 0 через все недостающие переменные ( Формы записи булевых функций. - student2.ru );

3) вновь используется дистрибутивный закон вида и приводятся подобные члены.

Пример. Найти СКНФ функции Формы записи булевых функций. - student2.ru Формы записи булевых функций. - student2.ru

Формы записи булевых функций. - student2.ru

Формы записи булевых функций. - student2.ru

15 М13 М11 М10 М9 М8 М5

Рассмотрим расширение сокращенной записи элементарного произведения до суммы минтермов.

Пусть Формы записи булевых функций. - student2.ru , представим данную запись в виде

A B C D

- - 0 1

Затем, не меняя значений известных цифр в записи индекса минтерма, подставляем все возможные комбинации цифр соответствующих разрядов:

0 0 0 1

0 1 0 1

1 0 0 1

1 1 0 1

Полученные цифры соответствуют индексам минтермов, содержащихся в СДНФ исходной функции, т.е.

f(ABCD)=m1+m5+m9+m13.

Наши рекомендации