Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕОРІЯ ЦИФРОВИХ АВТОМАТІВ ТА ФОРМАЛЬНИХ МОВ..doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
4.72 Mб
Скачать

4.3. Досконала Шефферівська нормальна форма

Наступна відома форма носить назву досконалої Шефферівської нормальної форми (ДШНФ). Для отримання ДШНФ в таблиці істинності відмічаються ті набори, на яких функція приймає значення 1. Конституенти одиниці записуються у вигляді термів, у яких як операція використовується штрих Шеффера. Між термами використовується також операція штрих Шеффера (4.3).

де і (4.3)

Приклад 3. Для функції f3 (x1, x2, x3) = (2, 3, 4)1 побудуємо ДШНФ:

f3 (x1, x2, x3) = ( /x2/ ) / ( /x2/x3) / (x1/ / ).

4.4. Досконала Пірсівська нормальна форма

ДПНФ – досконала Пірсівська нормальна форма. Для отримання ДПНФ в таблиці істинності відмічаються ті набори, на яких функція приймає значення 0. Конституенти нуля записуються у вигляді термів, у яких як операція використовується стрілка Пірса. Між термами використовується також операція стрілка Пірса (4.4).

де і (4.4)

Приклад 4. Для функції f4 (x1, x2, x3) = (0, 3, 7)0 побудуємо ДПНФ

f4 (x1, x2, x3) = (x1↓x2↓x3)(x1 ) ( ↓x2↓x3).

4.5. Функціонально повні системи булевих функцій

Будь-яка булева функція може бути представлена аналітично однією з розглянутих нормальних форм. Вони використовують обмежену кількість елементарних булевих функцій. Наприклад, для ДДНФ такими функціями являються «кон’юнкція», «диз’юнкція» і «заперечення». Отже, існують системи булевих функцій, за допомогою яких можна аналітично представити будь-яку іншу, скільки завгодно складну булеву функцію. Проектування цифрових автоматів основане на використанні таких систем булевих функцій. Останнє особливо важливе для розробки комплектів інтегральних мікросхем, з яких можна побудувати довільний цифровий автомат. Проблема функціональної повноти є центральною проблемою функціональних побудов в алгебрі логіки.

Визначення. Функціонально повною системою булевих функцій (ФПСБФ) називається сукупність таких булевих функцій {f1, f2, …, fk}, що довільна булева функція f може бути записана у вигляді формули через функції цієї сукупності.

Виходячи з визначення ДДНФ, ДКНФ, ДШНФ і ДПНФ, до функціонально повних систем булевих функцій слід віднести системы: .

Це обумовлює доцільність постановки задачі визначення властивостей, якими повинні володіти функції, що входять до складу ФПСБФ.

Рішення цієї задачі основане на понятті замкнутого відносно операції суперпозиції класу функцій. Класом булевих функцій, функціонально замкнутим відносно операції суперпозиції, є множина функцій, будь-яка суперпозиція яких дає функцію, що також належить цій множині. Серед функціонально замкнутих класів виділяють класи особливого типу, які називають передповними, і які володіють такою властивістю. Нехай передповний клас S не співпадає з множиною P можливих булевих функцій. Але якщо в нього включити будь-яку булеву функцию, що не входить в S, то новий функціонально замкнутий клас буде співпадати з множиною Р. Проведені дослідження показали, що передповних класів п'ять, а для побудови ФПСБФ необхідно і достатньо, щоб її функції не містились повністю ні в одному з п’яти передповних класів.

Перелічимо передповні класи булевих функцій:

1) булеві функції, які зберігають константу 0;

2) булеві функції, які зберігають константу 1;

3) самодвоїсті булеві функції;

4) лінійні булеві функції;

5) монотонні булеві функції.

Визначення. До булевих функцій, які зберігають константу 0, належать такі булеві функції f (х1, ..., хn), для яких справедливе співвідношення f (0, ..., 0) = 0.

Таблиця 4.2 – Таблиця істинності для функцій двох змінних

x1

x2

f0

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

f13

f14

f15

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

Прикладами булевих функцій, які зберігають константу 0, являються функції f0, f1, …, f7 (табл. 4.2). Оскільки таблиця істинності для функцій, які зберігають константу 0, у першому рядку значень функцій містить 0, то є рівно таких функцій.

Визначення. До булевих функцій, які зберігають константу 1, відносять такі булеві функції f (х1, ..., хn), для яких справедливо: f (1, ..., 1) = 1.

Прикладами булевих функцій, які зберігають константу 1, являються функції f1, f3, f5, f7, f9, f11, f13 і f15 (табл. 4.2). Оскільки таблиця істинності для функцій, які зберігають константу 1, в останньому рядку значень функцій містить 1, то є рівно таких функцій. Перед тим, як ввести поняття класу самодвоїстих булевих функцій, дамо таке визначення.

Визначення. Булеві функції f1(х1, ..., хn) і f2 (х1, ..., хn) називаються двоїстими одна відносно одної, якщо виконується співвідношення f1 (х1, ..., хn) = = .

Двоїстими є функції f0 і f15, f1 і f7, f2 і f11 і т. д. (табл. 4.2).

Визначення. До самодвоїстих булевих функцій відносять такі булеві функції, які двоїсті відносно до самих себе, тобто справедливе співвідношення

f (х1, ..., хn) = .

Якщо домовитись називати протилежними наборами набір і набір , то визначення самодвоїстих функцій буде таким.

Визначення. Булева функція називається самодвоїстою, якщо на будь-яких двох протилежних наборах вона приймає протилежні значення.

Самодвоїстими є функції f3, f5, f10, f12 (табл. 4.2). Із визначення самодвоїстої функції випливає, що вона повністю визначається своїми значеннями на першій половині рядків таблиці істинності. Тому число всіх самодвоїстих булевих функцій f (х1, ..., хn) дорівнює .

Визначення. До лінійних булевих функцій відносять такі булеві функції, які можуть бути представлені у вигляді

f (х1, ..., хn) = ,

де , a – операція додавання за модулем два.

Лінійними являються булеві функції f0, f3, f5, f6, f9, f10, f12, f15 (табл. 4.2), оскільки

f0 = 0, f3 = x1, f5 = x2,

f6 = .

Оскільки лінійна функція однозначно залежить від задання коефіцієнтів c0, c1, …, cn, то число лінійних функцій дорівнює 2(n+l).

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

Визначення. Двійковий набір не менше двійкового набору , (тобто ), якщо для кожної пари справедливе співвідношення .

Так, набір 1011 > 1010. Але набори 1011 і 0100 не можна порівнювати в тому розумінні, що для них не виконуються співвідношення ні , ні .

Визначення. Булева функція f (х1, ..., xn) називається монотонною, якщо для будь-яких двох наборів і , таких, що має місце нерівність . Монотонними являються булеві функції f0, f1, f3, f5, f7, f15 (табл. 4.4.). Разом з тим функція f2 із табл. 4.2 не є монотонною, тому що f2 (1,0) > f2 (1, 1), хоча набір <1, 0> менше, ніж набір <1, 1>. Наведемо без доказу два формулювання теореми про функціональну повноту.

Теорема ПОСТА. Для того щоб система S булевих функцій була функціонально повною, необхідно і достатньо, щоб ця система містила хоча б одну булеву функцію, яка не зберігає константу 0, хоча б одну булеву функцію, яка не зберігає константу 1, хоча б одну несамодвоїсту булеву функцію, хоча б одну нелінійну булеву функцію і хоча б одну немонотонну булеву функцію.

Система булевих функцій є функціонально повною тоді і тільки тоді, коли вона цілком не міститься ні в одному з передповних класів.

Розглянемо приклади ФПСБФ. Для зручності елементарні булеві функції двох змінних і деякі булеві функції однієї змінної зведені в табл. 4.3, в якій виконана класифікація кожної з функцій за ознаками приналежності до передповних класів. Із табл. 4.3 видно, що кожна з функцій f8 і f14 являється ФПСБФ. Іншими словами, використовуючи, наприклад, тільки булеву функцію f14 – «штрих Шеффера», можна записати у вигляді формули будь-яку булеву функцію. Табл. 4.3 дозволяє отримати й інші ФПСБФ. Ознакою функціональної повноти являється відсутність знака «+» в кожному стовпчику табл. 4.3 хоча б для однієї із булевих функцій, які складають систему. До таких ФПСБФ, найбільш поширених у практиці побудови цифрових автоматів, слід віднести: { }; { }; { }; { }; { }, де символами позначені булеві функції: «диз’юнкція», «кон’юнкція», «сума за модулем два», «заперечення», і «константа 1» відповідно.

Введене поняття двоїстих булевих функцій дозволяє сформулювати принцип двоїстості, який полягає у такому. Якщо формула реалізує булеву функцію , то формула , отримана із U заміною функцій f1, f2, …, fn на двоїсті функції f1*, f2*, …, fn*, відповідно реалізує функцію , двоїсту функції f. Формулу U називають двоїстою U*. Для формул над множиною принцип двоїстості може бути сформульований так: для отримання формули U*, двоїстої до формули U, достатньо в формулі U всюди замінити 0 на 1, 1 на 0, і операції & на ۷ та ۷ на &.

Приклад. Із співвідношення за рахунок використання принципу двоїстості отримується співвідношення . Принцип двоїстості дозволяє майже вдвічі скоротити зусилля на виведення співвідношень під час розгляду властивостей елементарних булевих функцій.

Таблиця 4.3 – Характеристики функцій двох змінних

Функція

Види функцій

монотонна

лінійна

самодвоїста

та, що зберігає 0

та, що зберігає 1

f0

+

+

+

f1

+

+

+

f2

+

f3

+

+

+

+

+

f4

+

f5

+

+

+

+

+

f6

+

+

f7

+

+

+

f8

f9

+

+

f10

+

+

f11

+

f12

+

+

f13

+

f14

f15

+

+

+

Контрольні запитання

  1. У чому полягає операція суперпозиції?

  2. Наведіть визначення для конституенти одиниці і конституенти нуля.

  3. Які особливості подання булевої функції у вигляді:

  • досконалої диз’юнктивної нормальної форми (ДДНФ);

  • досконалої кон’юнктивної нормальної форми (ДКНФ);

  • досконалої Шефферівської нормальної форми (ДШНФ);

  • досконалої Пірсівської нормальної форми (ДПНФ).

  1. Побудуйте ДДНФ для такої функції f (x1, x2, x3) = (0, 1, 2, 3, 7)1.

  2. Побудуйте ДКНФ для такої функції f (x1, x2, x3, x4,) = (0, 1, 2, 3, 12,13,14,15)0.

  3. Побудуйте ДШНФ для такої функції f (x1, x2, x3, x4,) = (0, 1, 2, 3, 7,15)1.

  4. Побудуйте ДПНФ для такої функції f (x1, x2, x3) = (0, 1, 2, 3, 7)1.

  5. Дайте визначення для системи булевих функцій, яка є функціонально повною.

  6. Перелічіть системи булевих функцій, які є функціонально повними.

  7. Перелічіть передповні класи булевих функцій і дайте визначення для кожного з них.

  8. У чому полягає теорема Поста?

  9. Прокоментуйте зміст табл. 4.3.