Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
fkit_kki_ddm_ksm_scs_LEK_2014.doc
Скачиваний:
155
Добавлен:
09.02.2016
Размер:
4.42 Mб
Скачать
  1. Правило рівносильних перетворень

Нехай для формул A й B справедливе твердження A B. Нехай CA – формула, що містить A у якості своєї підформули. Нехай CB виходить із CA заміною A на B. Тоді CA CB.

Приклад 4.5.

Нехай A = xy, B = xVy.

Рівносильність 12 дозволяє стверджувати, що AB.

Нехай CA = (x y) & z, тобто A є підформула CA. Тоді CB = (xVy) & z і CA CB, тобто (x y) & z (xVy) & z.

4.1.4. Двоїстість. Принцип двоїстості.

Символи &, V називаються двоїстими.

Формула А* називається двоїстій формулі A, якщо вона отримана з A одночасною заміною всіх символів &, V на двоїсті.

Наприклад,

A = xV(y&z);

A* = x & (yVz).

Теорема 4.1. (Принцип двоїстості).

Якщо A B, то A* B

Доведення принципу двоїстості можна знайти, наприклад, в [3].

Принцип двоїстості можна використати для знаходження нових правил. Наприклад, для 1-го закону поглинання (рівносильність 6а) маємо:

A&(AVB)  A.

Дотримуючись принципу двоїстості, одержимо нову рівносильність:

AVA&B A (2- ий закон поглинання).

4.1.5. Булева алгебра (алгебра логіки). Повні системи булевих функцій

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

Булевою алгеброю або алгеброю логіки називається двохелементну множину B = {0, 1} разом з операціями кон’юнкції, диз'юнкції й заперечення.

Система булевих функцій {f1, f2, … , fn} називається повної, якщо будь-яка булева функція може бути виражена у вигляді суперпозиції цих функцій. З правил 12 – 16 (розділ 4.3) потрібно, що всі логічні операції можуть бути виражені через операції кон’юнкції, диз'юнкції й заперечення. Тому система функцій {, &, V} є повною. Також повними є наступні системи функцій:

а){, V}; б) {, &}; в) {, }.

Повнота систем {, V} и {, &}потрібно з повноти системи {, &, V}, а також законів де Моргана й подвійного заперечення, наслідком яких є можливість виразити кон’юнкцію через диз'юнкцію й навпаки: A&B(AVB); AVB (A&B). Тому система {, &, V} може бути скорочена на одну функцію:

Повнота системи {, } потрібно з повноти системи {, V} і Рівносильністи 12 (розділ 4.3), що дозволяє виразити імплікацію через заперечення й диз'юнкцію:

AB AVB.

Література

  1. Капітонова Ю.В., Кривий С.Л., Летичевський О.А., Луцькиц Г.М., Печорін М.К. Основи дискретної математики. – К.: Наукова думка, 2002. – С.6-15.

  2. Кужель О.В. Елементи теорії множин і математичної логіки. – К.: Рад. школа, 1977. – С. 4-24.

  3. Новиков Ф.А. Дискретная математика для програмистов. – СПб.: Питер, 2002. – С.19-32.

  4. Федосеева Л.И. Дискретная математика: Учеб.-практич. пособие. – Пенза: Изд-во Пенз. технол. ин-та, 1998. – С. 3-30.

Тема 4.2. Нормальні форми

      1. Приведення формул булевих функцій до диз’юнктивної досконалої нормальної форми

Визначення 4.2.1. Елементарної кон’юнкцією називається кон’юнкція (можливо одночленна), складена зі змінних або заперечень змінних.

Приклад 4.2.1.

x, y, x&y, x1&x2&(x3) – елементарні кон’юнкції.

xVy, x1&x2 Vx1&x2 – не елементарні кон’юнкції.

Визначення 4.2.2. Диз'юнктивною нормальною формою (ДНФ) називається формула, що має вид диз'юнкції елементарних кон’юнкцій (у вырожденном випадку це може бути одна кон’юнкція).

Приклад 4.2.2.

x, x&y, x V x&(y), x1&x2&(x3) V x1&(x2)&x3 V x1&x2&(x3) – ДНФ.

(xVy)&x – не ДНФ.

Визначення 4.2.3. Досконалою диз'юнктивною нормальною формою (ДДНФ) називається така диз'юнктивна нормальна форма, кожен кон’юнктивний член якої містить всі змінні, або їхнього заперечення.

Приклад 4.8.

x&y, x&y V x&y – ДДНФ функції двох змінних.

xVx&y, xVy – не ДДНФ.

Визначення 4.2.4. Елементарною диз'юнкцією називається диз'юнкція (можливо одночленна), складена зі змінних або заперечень змінних.

Приклад 4.2.3.

x, y, xVy, x1Vx2V(x3) – елементарні диз'юнкції.

x&y, (x1Vx2) & (x1Vx2) – не елементарні диз'юнкції.

Визначення 4.2.5. Кон’юнктивною нормальною формою (КНФ) називається формула, що має вид кон’юнкції елементарних диз'юнкцій (у вырожденном випадку це може бути одна диз'юнкція).

Приклад 4.2.4

x, x&y, x & x&(y), (x1Vx2)&(x3)&(x1Vx2Vx3) – КНФ.

x&y V x – не КНФ.

Визначення 4.2.6 Досконалою конъюнктивной нормальною формою (ДКНФ) називається така кон’юнктивна нормальна форма, кожен диз'юнктивний член якої містить всі змінні, або їхнього заперечення.

Приклад 4.2.5

xVy, (xVy) &(xVy) – ДКНФ функції двох змінних.

x &(xVy), x&y – не ДКНФ.

Теорема 4.2.1 Для кожної формули булевої функції A є рівносильна їй диз'юнктивна нормальна форма (ДНФ) і кон’юнктивна нормальна форма (КНФ).

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

Алгоритм 4.2.1 (Алгоритм приведення формул булевих функцій до ДНФ (КНФ)).

Крок 1. Всі підформули A виду BC (тобто утримуючу імплікацію) заміняємо на BVC або на (B&C).

Крок 2. Всі підформули A виду B ~ C (тобто утримуючу еквівалентність) заміняємо на ((A&B) V (A&B) або на (AVB)&(AVB) (відповідно до правил 13).

Крок 3. Всі заперечення, що стоять над складними підформулами, опускаємо за законами де Моргана (відповідно до правил 4, 19, 20).

Крок 4. Усуваємо всі подвійні заперечення над формулами (відповідно до правил 8).

Крок 5. Здійснюємо розкриття всіх дужок за законом дистрибутивності кон’юнкції щодо диз'юнкції для ДНФ (відповідно до правил 3а і 17) або за законом дистрибутивності диз'юнкції відносно кон’юнкції для КНФ (відповідно до правил 3б й 18).

Крок 6. для одержання більш простої формули доцільно використати правил 5, 6, 7, 9, 10, 11.

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

Приклад 4.2.6

Приведемо до ДНФ і КНФ розглянутого раніше в прикладі 4.2.5 формулу f(x1, x2, x3) = (x2 x3) ~(x1Vx2).

1. Усунувши імплікацію, одержимо:

(x2 Vx3) ~(x1Vx2).2. Застосувавши закон де Моргана до першої дужки й знявши подвійні заперечення, одержимо:

(x2&x3) ~ (x1Vx2).

3. Усунувши еквівалентність, одержимо:

(x2&x3) & (x1Vx2) V (x2&x3) & (x1Vx2).

4. Застосувавши закон де Моргана до другого члена диз'юнкції, одержимо

(x2&x3) & (x1Vx2) V (x2Vx3) & (x1& x2).

5. Застосувавши закон дистрибутивности 3а, одержимо

(x2&x3&x1 V x2&x3&x2) V (x2&x1&x2 V x3&x1&x2).

6. Застосувавши закони идемпотентности 5а й 5б, і розташовуючи змінні по зростанню індексів, одержимо:

x1&x2&x3 V x2&x3 V x1&x2 V x1&x2&x3.

7. Застосувавши 2-ої закон поглинання (6б), замість x1&x2&x3.V x2&x3 запишемо x2&x3, а замість x1&x2 V x1&x2&x3 запишемо x1&x2 й у результаті одержимо ДНФ нашої формули:

f(x1, x2, x3) x2&x3 V x1&x2

При приведенні до КНФ застосуємо закон дистрибутивности 3б й одержимо:

x2&x3 V x1&x2  x2Vx1) & (x2Vx2) & (x3Vx1) & (x3Vx2).

З огляду на, що. x2Vx2 1 (рівносильність 11) і застосувавши властивість 9а, одержимо остаточно КНФ для f(x1, x2, x3)

f(x1, x2, x3)  x1Vx2) & (x1Vx3) & (x2Vx3).

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

Теорема 4.2.2. Кожна формула A, не рівна тотожно нулю, може бути приведена до ДДНФ, що є єдиною з точністю до перестановки диз'юнктивних членів.

Теорема 4.2.3. Кожна формула A, не рівна тотожно одиниці, може бути приведена до ДКНФ, що є єдиною з точністю до перестановки кон’юнктивних членів.

Доведення цих теорем складається у вказівці алгоритму приведення формули А к ДДНФ і ДКНФ.

Алгоритм 4.2.2. (Алгоритм приведення формули булевої функції до ДДНФ)

Крок 1. Використовуючи алгоритм побудови ДНФ, знаходимо формулу В, що є ДНФ формули А.

Крок 2. Викреслюємо в B всі елементарні кон’юнкції, у яких одночасно входять яка-небудь змінна і її заперечення. Це обґрунтовується рівносильністями:

A&A  0, B&0  0, СV0  С.

Крок 3. Якщо в елементарної кон’юнкції формули B деяка змінна або її заперечення зустрічається кілька разів, то залишаємо тільки одне її входження. Це обґрунтовується законом идемпотентности для кон’юнкції: A&AA.

Крок 4. Якщо в елементарну кон’юнкцію З формули В не входить ні змінна x, ні її заперечення x, те на підставі 1- го закону розщеплення (рівносильність 7а) заміняємо С на (С&x) V (C&x).

Крок 5. У кожної елементарної кон’юнкції формули B переставляємо кон’юнктивні члени так, щоб для кожного i (i = 1, ..., n) на i-ом місці була або змінна xi, або її заперечення xi..

Крок 6. Усуваємо можливі повторення кон’юнктивних членів відповідно до закону ідемпотентності для диз'юнкції: СVС  С.

Приклад 4.2.7.

Знайдемо ДДНФ формули із приклада 4.4:

f(x1, x2, x3) = (x2x3) ~(x1Vx2).

1. Знайдена раніше в прикладі 4.12 ДНФ формули f(x1, x2, x3) має вигляд:

x2&x3 V x1&x2.

2. Кроки 2 й 3 алгоритми не потрібні (вони вже виконані), тому переходимо до кроку 4 і застосовуємо 1-ий закон розщеплення. У результаті замість кожного із двох кон’юнктивних членів одержимо дві елементарних кон’юнкції (усього їх буде чотири):

f(x1, x2, x3) x2&x3&x1 V x2&x3&x1V x1&x2&x3 V x1&x2&x3).

  1. Після застосування кроку 5 одержимо:

f(x1, x2, x3) x1&x2&x3 V x1&x2&x3 V x1&x2&x3 V x1&x2&x3.

4. Крок 6 не потрібно. Знайдене вираження формули f(x1, x2, x3) є ДДНФ цієї формули.

Алгоритм знаходження ДКНФ повністю повторює алгоритм знаходження ДДНФ, якщо зробити двоїсту заміну & на V й V на &.

Приклад 4.2.8.

Знайдемо ДКНФ формули із приклада 4.4:

f(x1, x2, x3) = (x2 x3) ~(x1Vx2).

1. Знайдена в прикладі 4.12 КНФ формули f(x1, x2, x3) має вигляд:

f(x1, x2, x3) x1Vx2) & (x1Vx3) & (x2Vx3).

2. Кроки 2 й 3 алгоритми не потрібні, тому переходимо до кроку 4 і застосовуємо 2-ий закон розщеплення (рівносильність 7б). Відповідно до цього закону:

x1Vx2  x1Vx2Vx3) & (x1Vx2Vx3).

x1Vx3 (x1Vx3Vx2)&(x1Vx3Vx2).

x2 Vx3 (x2Vx3Vx1) & (x2Vx3Vx1).

Тому маємо:

f(x1,x2,x3)x1Vx2Vx3)&(x1Vx2Vx3)&x1Vx3Vx2)&(x1Vx3Vx2)&(x2Vx3Vx1)&(x2 V x3Vx1).

3. Застосувавши крок 5, одержимо:

f(x1,x2,x3)(x1Vx2Vx3)&(x1Vx2Vx3)&(x1Vx2Vx3)&(x1Vx2Vx3)&(x1Vx2Vx3)&(x1 Vx2Vx3).

4. Зауважуємо, що 1-ий й 3-ій, а також 4-ий й 5-ий диз'юнктивні члени отриманого виразу збігаються, застосовуємо крок 6 й одержимо остаточно ДКНФ формули f(x1, x2, x3):

f(x1, x2, x3) (x1Vx2Vx3)&(x1Vx2Vx3)&(x1Vx2Vx3)&(x1Vx2Vx3).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]