- •6.050102 “ Комп’ютерна інженерія” та 6.050101 “Комп’ютерні науки”
- •1. Графи. Основні поняття та визначення
- •1.1. Визначення графа
- •1.2. Типи скінченних графів
- •1.3. Суміжність та інцидентність
- •1.4. Способи задання графів
- •1.5. Маршрути і підграфи
- •На орграфі рис. 1.4, а маршрут (е1, е2, е5) – простий шлях, що є контуром, а маршрут (е1, е2, е3) – простий неконтурний шлях.
- •1.6. Зв'язність і роздільність
- •1.7. Характеристики графів
- •1.8. Дерева і ліс
- •1.9. Приклади задач, які використовують зважені графи
- •2.1. Логіка висловів. Загальні поняття
- •2.2. Формули алгебри висловів
- •2.3. Розв'язання «логічних» задач
- •2.4. Застосування алгебри логіки в теорії автоматів. Схеми перемикачів
- •2.5. Логіка першого порядку (логіка предикатів). Загальні поняття
- •2.6. Інтерпретація формул логіки предикатів
- •2.7. Передуюча нормальна форма
- •2.8. Логіка реляційна
- •2.9. Нечітка логіка. Загальні поняття
- •2.10. Нечітка алгебра
- •2.11. Нечітке числення
- •3. Булеві функції. Основні закони алгебри логіки
- •3.1. Цифрові автомати в схемотехніці та програмуванні
- •3.2. Висловлювання, предикати, булеві функції
- •3.3. Схемні реалізації булевих функцій
- •3.4. Найбільш поширені булеві функції
- •3.5. Основні закони алгебри логіки
- •4. Аналітичне подання булевих функцій. Функціонально повні системи булевих функцій
- •4.1. Досконала диз’юнктивна нормальна форма
- •4.2. Досконала кон’юнктивна нормальна форма
- •4.3. Досконала Шефферівська нормальна форма
- •4.4. Досконала Пірсівська нормальна форма
- •4.5. Функціонально повні системи булевих функцій
- •5. Мінімізація булевих функцій
- •5.1. Карти Карно
- •5.2. Мінімальна диз’юнктивна нормальна форма
- •5.3. Мінімальна кон’юнктивна нормальна форма
- •5.4. Мінімальна Шефферівська нормальна форма
- •5.5. Мінімальна Пірсівська нормальна форма
- •6. Абстрактні цифрові автомати
- •6.1. Основні поняття, пов’язані з абстрактними автоматами
- •6.2. Способи задання абстрактних автоматів
- •6.3. Приклади синтезу абстрактних автоматів
- •7. Синтез структурного автомата
- •7.1. Етапи канонічного методу структурного синтезу автоматів
- •7.2. Кодування станів
- •7.3. Побудова канонічної таблиці структурного автомата
- •7.4. Вибір елементів пам’яті автомата
- •7.5. Побудова таблиці збудження тригера
- •7.6. Побудова рівнянь функцій збудження і виходів автомата
- •7.7. Побудова функціональної схеми автомата
- •8. Проектування комбінаційних схем на дешифраторах і мультиплексорах
- •8.1. Синтез схем на дешифраторах
- •8.2. Синтез схем на мультиплексорах
- •9. Синтез мікропрограмного автомата за схемою алгоритму
- •9.1. Послідовність дій, необхідних для побудови управляючого пристрою
- •9.2. Синтез автомата Мілі
- •9.3. Синтез автомата Мура
- •10. Формальні мови і граматики
- •10.1. Визначення формальних мов і граматик
- •10.2. Приклади, що ілюструють первинні поняття
- •10.3. Порожня мова
- •10.4. Типи формальних мов і граматик
- •10.5. Виведення у кв-граматиках і правила побудови дерева виведення
- •10.6. Неоднозначні та еквівалентні граматики
- •10.7. Способи задання схем граматик
- •11. Контекстно-вільні граматики і автомати
- •11.1. Приведені граматики
- •11.2. Виключення ліворекурсивних правил
- •11.3. Виключення ланцюгових правил
- •11.4. Магазинні автомати
- •12. Спадні розпізнавачі
- •12.1. Розділені граматики
- •12.2. Побудова детермінованого спадного розпізнавача
- •12.3. Слаборозділені граматики
- •12.5. Побудова магазинного автомата
- •12.6. Приклади побудови спадного розпізнавача
- •4. Аналітичне подання булевих функцій.
- •8. Проектування комбінаційних схем на
- •9. Синтез мікропрограмного автомата за схемою
- •Теорія цифрових автоматів та формальних мов. Вступний курс
- •6.050101 “Комп’ютерні науки”
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 |
+ |
+ |
|
|
+ |
Контрольні запитання
У чому полягає операція суперпозиції?
Наведіть визначення для конституенти одиниці і конституенти нуля.
Які особливості подання булевої функції у вигляді:
досконалої диз’юнктивної нормальної форми (ДДНФ);
досконалої кон’юнктивної нормальної форми (ДКНФ);
досконалої Шефферівської нормальної форми (ДШНФ);
досконалої Пірсівської нормальної форми (ДПНФ).
Побудуйте ДДНФ для такої функції f (x1, x2, x3) = (0, 1, 2, 3, 7)1.
Побудуйте ДКНФ для такої функції f (x1, x2, x3, x4,) = (0, 1, 2, 3, 12,13,14,15)0.
Побудуйте ДШНФ для такої функції f (x1, x2, x3, x4,) = (0, 1, 2, 3, 7,15)1.
Побудуйте ДПНФ для такої функції f (x1, x2, x3) = (0, 1, 2, 3, 7)1.
Дайте визначення для системи булевих функцій, яка є функціонально повною.
Перелічіть системи булевих функцій, які є функціонально повними.
Перелічіть передповні класи булевих функцій і дайте визначення для кожного з них.
У чому полягає теорема Поста?
Прокоментуйте зміст табл. 4.3.
