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

3 Лінійність функції

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

Приклад. Перевірити, чи є лінійною функція: . (так )

4 Критерій Поста

Теорема (критерій Поста про функціональну повноту). Для того, щоб система функцій була функціонально повною (в посиленому розумінні), необхідно й достатньо, щоб вона цілком не містилася в жодному з п’яти класів , , S, M і L.

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

При цьому та сама функція може мати кілька властивостей. Тому мінімальна кількість логічних функцій у функціонально повній системі дорівнює одиниці. Таких функцій від двох аргументів, які не належать жодному функціонально повному класові є дві (у наведеній вище таблиці стоять всі прочерки) — це штрих Шеффера і стрілка Пірса .

Крім того, здавалося б, що нескоротна функціонально повна система має включати щонайбільше п’ять функцій, оскільки функції системи повинні задовольняти п’яти властивостям. Але, якщо функція не зберігає нуля, то вона або не зберігає одиницю, або є несамодвоїстою. Тому із будь-якої повної в системи функцій можна виділити повну (в посиленому розумінні) нескоротну підсистему, яка містить не більше чотирьох функцій.

Якщо в нескоротній повній системі функцій допускається наявність 0 чи 1, то така система є послаблено повною.

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

Задача 4. Дослідити повноту системи , за критерієм Поста

— система повна

Для дослідження повноти і заповнення таблиці (вище) треба побудувати таблиці істинностей для обох функцій

5 Виділення базису повної системи: метод Петрика

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

Задача 5. З повної системи скласти всі можливі базиси:

, , ,

Розв’язання. Таблиця належності класам повноти має вигляд:

логічно, порівнюючи рядки таблиці: і ; , і

Або методом Петрика за таблицею запишемо КНФ, в якій елементарні диз’юнкції відповідають колонкам таблиці, і містять логічними доданками символи тих функцій, які не входять в клас даної колонки (позначені знаком –):

перемножуючи дужки і для спрощення використовуючи рівності виду:

, , , приведемо КНФ до ДНФ

матимемо

за одержаною ДНФ випишемо підмножини функцій, які відповідають окремим елементарним кон’юнкціям , — це є базиси.

Домашнє завдання до теми “Повнота і замкнутість ”

25.11.11

1. Дослідити функцію на монотонність , використовуючи: а) діаграму Хассе; б) подання функції за допомогою операцій кон’юнкції і диз’юнкції.

2. Дослідити, чи є лінійною функція . (ні)

3. Дослідити повноту системи шляхом зведення до повної системи а)  , б) .

4. За критерієм Поста дослідити повноту систем: а) , б) ; в) , , , .

5. З повної системи одержати всі можливі нескоротні базиси.

Практичне заняття № 14

Мінімізація логічних функцій. Побудова скороченої ДНФ

Методи Квайна, Нельсона, Блейка пошуку СДНФ. Геометричний метод побудови СДНФ

I. У методі Блейка скорочена ДНФ будується з будь-якої ДНФ. У довільній ДНФ логічної функції треба здійснити всі можливі узагальнені склеювання , а потім усунути всі елементарні поглинання . У результаті буде одержано скорочену ДНФ.

Задача. Використовуючи метод Блейка, побудувати скорочену ДНФ за заданою ДНФ:

Розв’язання. Відповідно до теореми Блейка спочатку, доки можливо, застосуємо правило узагальненого склеювання (результати узагальненого склеювання подамо в дужках, позначивши нижнім індексом змінну, за якою воно виконувалося):

мій приклад

.

Застосуємо правило поглинання , перегрупувавши спочатку відповідні елементарні кон’юнкції:

.

Ми одержали скорочену ДНФ.

II. Метод Нельсона дає можливість будувати скорочену ДНФ за КНФ. Спочатку на основі закону дистрибутивності в КНФ розкриваються дужки, а потім застосовуються правила , і правило поглинання .

Приклад Побудувати скорочену ДНФ за заданою КНФ:

. мій приклад

Розв’язання. На основі закону дистрибутивності в КНФ розкриємо дужки, а після цього застосуємо правило поглинання:

III. В алгоритмі Квайна скорочена ДНФ будується за ДДНФ. При цьому кожна конституента порівнюється з наступними і, якщо це можливо, застосовується правило склеювання для одержання імплікант. При цьому, щоб легше було порівнювати конституенти, їх доцільно розбити на групи за кількістю змінних без заперечення (від 0 до n); тоді кожну конституенту треба порівняти лише з конституентами наступної групи, знайти ті, які відрізняються лише інверсією однієї змінної, і попарно виконати склеювання. Одержані імпліканти знову порівнюються і знову склеюються. Алгоритм повторюється доти, доки не буде одержано імплікант, які вже не можливо склеїти. Ці імпліканти й імпліканти (або навіть конституенти), які раніше не склеювалися, є простими. Їхня диз’юнкція дає скорочену ДНФ.

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

Приклад (лек). Використовуючи алгоритм Квайна, побудувати скорочені ДНФ для функцій, заданих своїми значеннями: а)  ; б) .

Розв’язання. а) Спочатку побудуємо ДДНФ заданої функції :

.

Щ об легше було порівнювати конституенти, їх доцільно розбити на групи за кількістю змінних без заперечення (від 0 до n). Тоді кожну конституенту треба порівняти лише з конституентами наступної групи, знайти ті, які відрізняються лише інверсією однієї змінної, і попарно виконати склеювання :

Отже, скорочена ДНФ має вигляд

.

IV. Графічний метод — використання булевого куба (діаграм Хассе). Нехай дано кортеж значень функції . На діаграмі Хассе треба позначити ті вершини, в яких функція набуває значення 1, і виписати максимально можливі грані, які містять ці вершини. У відповідність граням ставлять їхні коди — в кодах спільні елементи залишають без змін, а різні позначають прочерками. За одержаними кодами виписують елементарні кон’юнкції (замість 0 записується , замість 1 — , а замість почерку — нічого), які є простими імплікантами і з яких будується скорочена ДНФ.

Приклад. Використовуючи діаграми Хассе, побудувати скорочені ДНФ для функцій, заданих своїми значеннями: а)  , б)  , в)  .

Розв’язання. На діаграмах Хассе позначимо вершини, в яких функції набувають значення 1, і виділимо ребра, які з’єднують ці вершини (!!!! Щось трохи накрутила, є помилки — перевірити):

а) Для функції випишемо максимальні грані (ними будуть ребра) і відповідні їм коди: , , , . За одержаними кодами запишемо елементарні кон’юнкції, які є простими імплікантами: , , , . Отже, скорочена ДНФ має вигляд:

.

б) Функції на діаграмі Хассе відповідають два ребра , і одна ізольована вершина . Отже, простими імплікантами є , і ; скорочена ДНФ має вигляд:

.

в) Функції на діаграмі Хассе відповідають три квадрати , , . За одержаними кодами відповідно побудуємо прості імпліканти z, y, х; скорочена ДНФ має вигляд:

.

Оскільки одержана скорочена ДНФ не містить заперечень, то функція є монотонною.