- •Розділ 7 Основи теорії кодування План викладення матеріалу
- •7.1. Алфавітне й рівномірне кодування
- •7.2. Достатні умови однозначності декодування. Властивості роздільних кодів
- •7.3. Оптимальне кодування
- •7.4. Коди, стійкі до перешкод. Коди Хемінга
- •8.2. Алгебри булевих функцій
- •8.3. Спеціальні форми зображення булевих функцій в алгебрах Буля і Жегалкіна
- •8.3.1. Диз'юнктивні нормальні форми
- •8.3.2. Кон'юнктивні нормальні форми
- •8.3.3. Поліном Жегалкіна
- •8.4. Повнота і замкненість
- •8.4.1. Функціонально повні системи
- •8.4.2. Замкнені класи
- •8.4.4. Послаблена функціональна повнота
- •8.4.5. Передповні класи
- •8.5. Мінімізація булевих функцій
- •8.5.1. Основні результати
- •8.5.2. Методи побудови скороченої днф
- •8.5.3. Побудова тупикових днф
- •8.5.4. Властивості скороченої днф
- •8.5.5.Метод карт Карно побудови мінімальних днф
- •8.6. Реалізація булевих функцій схемами з функціональних елементів
- •Комп'ютерні проекти
- •Література
- •9.2. Формальні породжувальні граматики
- •9.3. Типи граматик (ієрархія Хомські)
- •9.4. Дерева виведення
- •9.5. Форми Бекуса-Наура
- •9.6. Скінченні автомати з виходом
- •9.7. Скінченні автомати без виходу
- •9.8. Подання мов
- •Комп'ютерні проекти
- •Література
- •Розділ 10
- •План викладення матеріалу
- •10.1. Основні вимоги до алгоритмів
- •10.2. Машини Тьюрінга
- •10.3. Обчислення числових функцій на машинах Тьюрінга
8.6. Реалізація булевих функцій схемами з функціональних елементів
Під функціональним елементом розуміють деякий пристрій, який має такі властивості: 1) він має п≥1 впорядкованих відростків зверху - входи і один відросток знизу -вихід;2) на входи цього пристрою можна подавати сигнали, які мають значення 0 та 1; 3) для кожного набору сигналів на входах пристрій на виході у той самий момент, коли надійшли сигнали на входи, видає один з сигналів (0 або 1);4) набір сигналів на входах однозначно визначає сигнал на виході, тобто, якщо у різні моменти на входи надійшли рівні набори сигналів, то в ці моменти на виході буде один і той самий сигнал. Кожному функціональному елементу з п входами ставлять у відповідність булеву функцію від п змінних. f(x1, x2, …, xn) у такий спосіб. Входу з номером і (1≤і≤п) ставлять у відповідність зміннухi, а кожному набору(а1а2,...,ап) значень змінних - числова,f(а1, a2, ...,аn), яке дорівнює 0 або 1 залежно від сигналу, що видається на виході у разі подачі цього набору сигналів на входи функціонального елемента. Щодо функції f(x1, x2, …, xn) кажуть, що даний функціональний елемент їїреалізує.
Рис. 8.9
Далі розглядатимемо лише функціональні елементи, зображені на рис. 8.9, які реалізують, відповідно, булеві функції заперечення, кон'юнкцію та диз'юнкцію.
Визначимо поняття схеми з функціональних елементів та їївходиівихід.
Кожний функціональний елемент є схемою з функціональних елементів з тими ж входами і виходом, що й у цього елемента.
Якщо S1- схема з функціональних елементів і два її входи з'єднані (рис. 8.10), то отримана конструкція Sє схемою з функціональних елементів. Входами схеми Sє всі не з'єднані входи Slі ще один вхід, який відповідає двом з'єднаним входам схемиS1.
Рис. 8.10Рис. 8.11
ЯкщоS1 та S2 - дві схеми з функціональних елементів, то конструкція яку отримують з'єднанням деякого входу схеми S2 з виходом схемиS1, також є схемою з функціональних елементів (рис. 8.11). Входами схеми S є всі входи схеми S1 і всі входи схеми S2, за виключенням того, який з'єднаний з виходом схеми S1. Виходом схеми S є вихід схемиS2.
Якщо в схемі з функціональних елементів S1 її вхід з'єднати з виходом деякого функціонального елемента з S без утворення циклу для будь-якого функціонального елемента (тобто вихід будь-якого функціонального елемента не повинен з'єднуватись з його входом, можливо, через інші елементи з S1), то отримана конструкція є схемою з функціональних елементів (приклад такої конструкції наведено нарис. 8.12).
Означення схеми з функціональних елементів завершене Згідно з ним схема з функціональних елементів - це математичний об'єкт. Зазначимо, що вона має різні технічні застосування.
Очевидно, що схема з функціональних елементів реалізує певну булеву функцію. Оскільки допустимими є з'єднання елементів, які відповідають суперпозиціям відповідних елементарних функцій, а система{ }функціонально повна, то будь-яку булеву функцію можна реалізувати схемою з функціональних елементів, зображених на рис. 8.9.
Під час побудови схем використовують викладені у параграфі 8.5 методи мінімізації булевих функцій.
Приклад 8.33. Побудувати схему з функціональних елементів, яка реалізує булеву функцію .За методом карт Карно знаходимо мінімальну ДНФ (див. приклад 8.29) .Відповідну схему показано на рис. 8.13. ▲
Рис. 8.13
Однак, зазначимо, що мінімізація булевих функцій не вичерпує всіх можливостей мінімізації схем. Наприклад, схема, зображена нарис. 8.12, реалізує булеву функцію . Ця схема має п'ять елементів - це менше, ніж містить символів операцій будь-яка формула булевої алгебри, яка реалізує цю функцію. Методи побудови схем з функціональних елементів розглянуто в [7].
Нехай S - схема із елементів кон'юнкції, диз'юнкції та заперечення, Lf(S)- кількість елементів у схемі яка реалізує булеву функціюf.Далі, нехайL(f)=minLf(S),де мінімум береться за всіма схемами S, які реалізують функцію f. Уведемо функцію L(n)=maxL(f), де максимум береться за всіма булевими функціями від n змінних.
Теорема 8.31(теорема Шеннона-Лупанова). Для функціїL(n)виконується
причому для довільного ε>0 кількість булевих функційf, для яких прямує до 0 з ростом п.▲
Зауваження. ФункціюL(n) називаютьфункцією Шеннона(на честь американського математика К. Шеннона).Символ ~ тут означає асимптотичну рівність: . Зміст другого твердженнятеореми полягає в тому, що з ростом n майже всі булеві функції реалізуються зі складністю, близькою до верхньою межі, тобтоL(n).▲
Теорема 8.31свідчить, що більшість булевих функцій (у разі n→∞) мають складні мінімальні схеми. Це означає, що практичну цінність, з огляду на побудову схем, має достатньо вузький клас булевих функцій. Тому поряд з універсальними методами побудови схем [7] необхідно мати методи, пристосовані для певних класів булевих функцій, які більшою мірою враховують їхні властивості. Далі ознайомимось з одним підходом до реалізації достатньо вузького класу функцій.
Покажемо, як схеми з функціональних елементів можна використати для додавання двох цілих додатних чисел у двійковій системі числення. Спочатку побудуємо схему, яка обчислюєх+у, де х тау- біти. Входи схеми - цех тау; на кожний із них може бути поданий сигнал 0 або 1. Конструкція буде об'єднанням двох схем (матиме два виходи). Вихідsдає суму бітів у даному розряді, а вихідс використовують для біту перенесення у наступний розряд. У табл. 8.10 наведені значення на входах і виходах схеми, яку називаютьпівсуматором. Саму схему наведено на рис. 8.14. Зазначимо, що з табл. 8.10 маємо:
Таблиця 8.10
Вхід |
Вихід |
||
x |
y |
s |
c |
0 0 1 1 |
0 1 0 1 |
0 1 1 0 |
0 0 0 1 |
Для того, щоб врахувати біт перенесення с, використовують схему, яку називають повним суматором. Входи цієї схеми такі: х, у та біт перенесення з попереднього розряду сi Виходів два: сума s у даному розряді і нове перенесення сi+1 (у наступний розряд). Відповідні булеві функції задані у табл. 8.11.
Зобразимо функції s та сi+1 у досконалій диз'юнктивній нормальній формі:
Таблиця 8.11
-
Вхід
Вихід
x
y
ci
s
ci+1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
А ле замість того, щоб будувати повні суматори безпосередньо за вказаними формулами, використовують півсуматори. Схему повного суматора з використанням півсуматорів наведено на рис. 8.15.
Нарешті, нарис. 8.16 показано, як повні суматори і пів- суматор використовують для додавання трирозрядних цілих чисел х3х2х1 таy3y2y1у двійковій системі числення. Результат - двійкове число s4s3s2s1. Зазначимо, щоs4 (старший розряд суми) збігається зс3. Аналогічно будують схему для додаванняп-розрядних двійкових чиселxnxn-1 … x1таynyn-1…y1.
Задачі
1. Побудувати таблиці булевих функцій, які задані формулами а-г:
a)
б) ;
в) ;
г) .
Скільки булевих функцій від п змінних приймають однакові значення на протилежних наборах? Протилежні значення на протилежних наборах?
За функціямиf(x1, …, х2) таg(х3,х4) заданими векторно, побудувати векторне задания функції h:
а) =(1011), =(1001),h(x2, x3, x4)=f(g(x3, x4), x2);
б) =(1011), =(1001), h(x1, x2, x3, x4)=f(x1, x2)∨g(x3, x4).
Знайти фіктивні змінні функції:
а) f( )=(11110000);
б) f( )=(00110011);
в) f( ) = (11000011).
Використовуючи тотожні перетворення, довести рівносиль-ність формулF та G:
а) ;
б) ;
в)
За принципом двоїстості побудувати формулу, яка реалізує функцію, двоїсту доf:
а) ;
б) ;
в) .
Функції а -в задані векторами. Побудувати вектори для двоїстих функцій.
а)f( )=(11110000);б)f( )=(00101100);
в)f( )= (00111100).
Чи є функціяfдвоїстою до функції g?
а) , ;
б) , ;
в) , .
Задано формулу в алгебрі Жегалкіна. Побудувати рівносильну формулу в алгебрі Буля.
а) ; б) ; в) .
Задано формулу в алгебрі Буля. Побудувати рівносильну формулу в алгебрі Жегалкіна.
а) ;б) ; в) .
Зобразити функції а - в досконалою диз'юнктивною нормальною формою (використати таблицю функції):
а)f( )=(01101100); б)f( )=(10001110);
в) .
Перейти від диз'юнктивної нормальної форми а-г до досконалої диз'юнктивної нормальної форми:
а) ; б)
в) ; г)
За допомогою тотожних перетворень побудувати досконалу диз'юнктивну нормальну форму функцій а - в:
а) ; б) ;
в) .
Для функцій задачі 11 побудувати досконалі кон'юнктивні нормальні форми (використати таблицю функції).
Перетворити диз'юнктивні нормальні форми із задачі 12 у кон'юнктивні нормальні форми.
Побудувати досконалі кон'юнктивні нормальні форми для функцій із задачі 15.
Підрахувати кількість функцій , для яких досконала кон'юнктивна нормальна форма є одночасно диз'юнктивною нормальною формою.
Методом невизначених коефіцієнтів побудувати поліном Жегалкіна для функцій а-в:
а) =(11111000);б) =(00110100);
в) =(0011100і).
На основі тотожних перетворень побудувати поліном Жегалкіна для функцій а-в:
а) ; б) ;
в)
З використанням властивості полінома Жегалкіна знайти істотні змінні функцій а - в:
а) ;
б) ;
в) .
Для функцій із задачі 11 перейти від досконалої диз'юнктивної нормальної форми до полінома Жегалкіна.
Довести, що система булевих функцій Qповна, для цього виразити функції деякої повної системи через функції системи Q:
а) Q={ }; б) Q={ , };
в)Q={ , ( ) }.
З'ясувати, яким із множин, T1\T2належать функції а-в:
а) ;
б) ;
в) .
З'ясувати, для яких значень п функція належить множині T1\T2:
а) = х1⨁х2⨁...⨁хn⨁1;
б) .
Підрахувати кількість булевих функцій n змінних у множинаха-г:
а)T0∩T1;б)T0∪T1;г)Т0\Т1
Які з функційа-г самодвоїсті?
а) ;
б) ;
в) (11110000); г) = (00101100).
З несамодвоїстої функціїfпідстановкою та х отримати константу:
а) ;б) .
Які з функційа-г монотонні?
а) ;б) ;
в) ; г) .
З немонотонної функціїfпідстановкою 0, 1 та х отримати функцію :
а) ;б) ;
Які з функційа-г лінійні?
а) ;б) ;
в) ;
г) = (1001011010010110).
Довести, що якщо - лінійна функція, відмінна від константи, то . Чи правильне обернене твердження?
Суперпозицією констант 0 та 1, а також функції і нелінійної функціїfотримати кон'юнкціюху:
а) ; б) (01101110).
З'ясувати, чи можна отримати функціюfсуперпозицією функцій системи Q?
а) ,Q={ };
б) ,Q={ }
в) f=0, Q={ , 1}.
Чи можна з функції за допомогою суперпозиції отримати функцію ?
Серед лінійних функцій самодвоїстими є ті, у яких поліном Жегалкіна має непарну кількість змінних, а самодвоїстими - парну. Довести.
Серед лінійних функцій монотонними є лише константи 0,1 та тотожна функція х. Довести.
Використовуючи критерій повноти системи булевих функцій, з'ясувати, чи є система Q функціонально повною:
а) Q={ , , 1};
б)Q={ , , 0, 1};
в)Q={ , };
г)Q={ , , 1};
д)Q={ , };
е)Q={ 0};
ж)Q={ , 0, 1};
з)Q={ , };
и)Q={ , };
к)Q={0, 1, };
л)Q={(01101001), (10001101), (00011100)};
м)Q=(S\M)∪(L\(T0∪T1));
н)Q=(S∩M) ∪(L\M)∪(T0\S);
п)Q=(M\( T0∩T1))∪(L\S).
Які неповні системи із задачі 37 є слабко функціонально повними?
Для кожної з наведених нижче функцій за методом Куайна побудувати скорочену диз'юнктивну нормальну форму та за
Імплікантною таблицею знайти всі тупикові та мінімальні диз'юнктивні нормальні форми:
а) ;
б) ;
в) ;
г) ;
д)Nf={(000),(001),(011),(100),(111)};
е)Nf={(001),(011), (101), (110)};
ж)Nf={(001), (011), (100), (110)};
и)Nf={(000),(010),(011),(100)}.
Для кожної з функцій із задачі 39 побудувати скорочену диз'юнктивну нормальну форму за методом Мак-Класкі.
Знайти мінімальні диз'юнктивні нормальні форми для функцій із задачі 39 за методом карт Карно.
Для кожної з функцій, наведених нижче, побудувати скорочену диз'юнктивну нормальну форму за методом Мак-Класкі та знайти всі мінімальні диз'юнктивні нормальні форми:
а) ;
б) ;
в) ;
г) .
Знайти мінімальні диз'юнктивні нормальні форми функцій із задачі 42 за методом карт Карно.
Для кожної з функцій, наведених нижче, побудувати скорочену диз'юнктивну нормальну форму за методом Блейка.
а) ;
б) ;
в) .
Для кожної з функцій, наведених нижче, побудувати скорочену диз'юнктивну нормальну форму за методом Нельсона.
а) ;
б) ;
в) .
Побудувати схеми з функціональних елементів кон'юнкції, диз'юнкції та заперечення, які реалізують функції:
а) ; б) ;
в) ;
г) ;
д) ; е) ;
ж) ; и) .
Скориставшись тотожністю
,
побудувати схеми з функціональних елементів кон'юнкції, диз'юнкції та заперечення для наведених нижче функцій:
a) ;б) ;
в) ;г) .
Побудувати схему з функціональних елементів кон'юнкції, диз'юнкції та заперечення, яка має 4 входи. На входи подають комбінації двійкового коду десяткових цифр 0,1,2,...,9. На виході має видаватись 1 в тому й лише в тому випадку, коли комбінації на входах відповідають одноцифровим числам:
а) непарним;
б) таким, що не діляться на 3;
в) таким, що не дорівнюють 4,5,6.
Скористатись методом карт Карно.