Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретна математика.docx
Скачиваний:
42
Добавлен:
08.09.2019
Размер:
5.48 Mб
Скачать

8.3.2. Кон'юнктивні нормальні форми

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

Нехай, як і раніше, зафіксовано множинуХ={х1,х2,..., хп). Елемен­тарною диз'юнкцією називають вираз , уякому всі хijрізні. Числоrназивають рангом диз'юнкції. У разіr=0 диз'юнкцію називають порожньою і вважають рівною 0. Приклади елементарних диз'юнкцій: .

Кон'юнктивною нормальною формою (КНФ) називають кон'юнк­цію d1d2∧…∧ds елементарних диз'юнкцій dj(J=1, 2, …, S), у якій всі dj різні.

Є алгоритм, який дає можливість для будь-якої формули булевої алгебри знайти рівну їй КНФ. Перший етап цього алгоритму такий же, як і для ДНФ. На другому етапі досягають, щоб усі диз'юнкції виконувались раніше кон'юнкцій. Для цього потрібно скористатись дистрибутивним законом або його наслідком (див. приклад 8.6 б). Далі, на основі спів­відношень для констант і закону виключеного третього позбуваються одиниць та за законами ідемпотентності об'єднують рівні члени.

Приклад 8.14.Знайдемо КНФ для формули . Вико­ристовуючи сформульований алгоритм, одержимо

.▲

Елементарну диз'юнкцію рангу п називають конституентою нуля. Іншими словами, конституента нуля - це елементарна диз'юнк­ція, у яку входять всі змінні з множини X.

Кожному двійковому набору взаємно однознач­но відповідає конституента нуля , яка перетворю­ється на ньому в 0. Усі інші констшуенти нуля на цьому наборі пере­творюються в 1. Наприклад, набору 0111 відповідає конституента нуляx1х2x3х4.

Досконалою кон'юнктивною нормальною формою (ДКНФ) нази­вають КНФ, у якої кожна елементарна диз'юнкція dj(j= 1, ..., s) є конституентою нуля.

Покажемо, що кожну булеву функціюf(x1, …, хп) можна зобра­зити досконалою кон'юнкгивною нормальною формою. Для цього запишемо ДДНФ f* (зазначимо, щоf*≠0).

f*(τ1, …, τn)

Візьмемо тотожність для двох формул

Ліва частина дорівнює , а праву перетворюємо далі

Отже,

Звідси випливає, що ДКНФ є кон'юнкцією конституент нуля, що відповідають усім наборам, на яких функція приймає значення 0.

Приклад 8.15.Побудуємо ДКНФ функції, заданої табл. 8.5. Функція приймає значення 0 на наборах 01 та 10. Отже

.▲

Зазначимо, що на основі тотожних перетворень будь-яку КНФ можна перетворити у ДКНФ. Якщо в деяку елементарну диз'юнкціюdне входить змінна х, то потрібно записати рівносильний вираз і скористатись дистрибутивним законом: . Після тривіальних перетворень отримаємо ДКНФ.

Приклад 8.16.Перетворимо КНФу досконалу КНФ. Використовуючи розщеплення диз'юнкцій, можемо записати

.▲

Зазначимо, що досконала КНФ єдина.

8.3.3. Поліном Жегалкіна

Елементарну кон'юнкцію називають монотонною, якщо вона не містить заперечень змінних. Наприклад,x1x2x3, x1,1-монотонні кон'юнкції.

Формулу

деk1k2,..., ks- попарно різні монотонні кон'юнкції змінних із мно­жиниX={x1х2, …, хn}, називають поліномом Жегалкіна. Най­більший із рангів елементарних кон'юнкцій, що входять у поліном, називають степенем полінома. За окремим означенням 0 вважати­мемо поліномом Жегалкіна.

Приклад 8.17. Формули х, 1,xyz xy z 1- поліноми Жегалкіна, ахх, xyz xy z 1не є поліномами Жегалкіна. ▲

Якщо маємо будь-яку формулу алгебри Жегалкіна, то для отри­мання полінома Жегалкіна достатньо розкрити дужки (дистри­бутивний закон), скористатися, якщо можливо, законом ідемпо­тентності для кон'юнкції та звести подібні члени.

Теорема 8.5.Будь-яку булеву функцію можна єдиним способом зобразити у формі полінома Жегалкіна.

Доведення. Нехай - довільна булева функція.

Достатньо провести доведення для функцій, відмінних від конс­тант, тому що 1 та 0 є поліномами Жегалкіна. Задамо функціюfдосконалою диз'юнктивною нормальною формою, тобто деякою диз'юнкцією конституент одиниціf=K1К2...∨Ks.Замінемо знак ∨знаком ⊕ і одержимоg= K1К2...⊕Ks. Покажемо, що функціїfта g рівні. На жодному наборі1,...,an) значень змінних дві різні конституенти одиниці не можуть одночасно перетворитись в 1, оскільки i-а конституента одиниці перетворюється в 1 лише на i-му наборі. Отже, під час обчислення значень функційfтаgпотрібно знайти значення диз'юнкції або, відповідно, суми за mod2 членів, із яких лише один може дорівнювати одиниці, решта - обов'язково нулі. Але у такому випадку диз'юнкція та додавання за mod2 призводять до одного й того ж результату (до нуля, якщо всі члени дорівнюють нулю, і до одиниці, якщо один і лише один член дорів­нює одиниці).

Вотриманій формулі замінимо всі заперечення змінних згідно з тотожністю х = 1⨁х. Одержимо формулу алгебри Жегалкіна. Зали­шається лише розкрити дужки, скористатись законом ідемпотент­ності для кон'юнкції та привести подібні члени. Внаслідок цього одержимо зображення булевої функціїfу формі полінома Жегал­кіна.

Доведемо, що тaке зображення єдине. Для цього підрахуємо кіль­кість поліномів Жегалкіна від п змінних х1 х2, ...,хп. Кількість кон'юнкцій вигляду дорівнює кількості підмножин {i1 і2,…, is) множини {1, 2, ..., n}, тобто2n.Кожна з цих кон'юнкцій може входити в поліном із коефіцієнтом 0 або 1. Отже, кількість поліномів Жегалкіна від п змінних дорівнює кількості кортежів довжини 2nелементами яких є 0 або 1, тобто , що дорівнює кількості всіх булевих функційвід змінних x1, x2, …, xn. А оскільки доведено, щобудь-яку булеву функцію можна зобразити поліномом Жегалкіна, то звідси випливає єдиність цього зображення. ▲

Коротко зупинимось на методах побудови полінома Жегалкіна.

Побудова полінома Жегалкіна методом невизначених коефіці­єнтів. Для функції записують найбільш загальний вигляд полінома Жегалкіна з невизначеиими коефіцієнтами(цих коефіцієнтів є 2n). Для кожного двійкового набору (a1, …, an) значень змінних записують рівняння .Одержують систему 2nрівнянь. Розв'язком цієї системи є коефіцієнти полінома .

Приклад 8.18.Побудуємо поліном Жегалкіна для функціїf(x,y)=xy.Загальний вигляд полінома від двох змінних з невизначеними кое­фіцієнтами такий:

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

Звідси визначаємо с0=1,с1=1, с2=1, с3=0. Отже,xy=1⨁xy. ▲

Побудова полінома Жегалкіна на основі тотожних перетворень. Один із способів побудови полінома Жегалкіна полягає у наступ­ному. Спочатку будують рівносильну формулу, в якій є лише операції кон'юнкції та заперечення, а потім замінюють всюди на1⨁х. Після цього поліном одержують тривіальним шляхом.

Приклад 8.19.Побудуємо поліном Жегалкіна для функції :

. ▲

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

Приклад 8.20.Побудуємо зазначеним методом поліном Жегал­кіна для функції . Спочатку перетворимо цю ДНФ у досконалу:

Повторюючи схему доведення теореми 8.5, матимемо

.▲

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

Теорема 8.6.Булевафункція має істотними всі змінні, які входять у її поліном Жегалкіна.

Доведення. Нехай змінна х, входить у поліном Жегалкіна функції f(x1, х2,...,хп). Згрупуємо члени, які містятьх1, і винесемо х1 за дужки:

Функція оскільки у протилежному випадку змінна х1 не входила б у поліном для функціїf(через єдиність полінома Жегал­кіна). Нехай на наборі (а2,...,аn) значення функціїf1 дорівнює одиниці. Тоді , де . Отже, зміна значення х1 у разі, коли значення решти змінних задані набором (а2,...,аn), змінює значення функції . Отже, змінна х1 істотна. ▲