Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diskretnaya_matematika_1.doc
Скачиваний:
197
Добавлен:
10.02.2016
Размер:
11.37 Mб
Скачать

34.1 Булеві рівняння

Визначення. Нехай f(x1, x2, …, xk) і g(x1, x2, …, xk) — дві булеві функції від k змінних, представлені, наприклад, за допомогою двох яких-небудь відповідних булевих форм. Тоді

f(x1, x2, …, xk) = g (x1, x2, …, xk)

є найбільш загальною формою булева рівняння. Розв’язаннями є всі такі вектори наборів вигляду с = (x’1, x’2, …, x’k) Bk, де В = {0, 1}, для яких справедливо f(с) = g(с).

Повинні виконуватися такі відношення

f(с) = g (с) = 0 або f(с) = g (с) = 1

Приклад. Розв’язанням булева рівняння x1 x2 = x1 x2 будуть:

набір c1 = (x1,= 0, x2 = 0), на якому x1 x2 = x1 x2 = 0;

набори c2 = (x1,= 0, x2 = 1) і c3 = (x1,= 1, x2 = 0), на яких x1 x2 = x1 x2 = 1.

Для булевих рівнянь досить розглядати форми f(x1, x2, …, xk) = 0 і відповідно f(x1, x2, …, xk) = 1, оскільки

f(x1, x2, …, xk) = g(x1, x2, …, xk)   f(x1, x2, …, xk)  g(x1, x2, …, xk) = 0

Ці рівняння еквівалентні однє одному в тому розумінні, що вони мають однакові множини розв’язань. Умова f(x1, x2, …, xk)  g (x1, x2, …, xk) = 0 саме й означає рівність значень функцій.

Якщо прийняти g(x1, x2, …, xk) = 1, то звідси треба

f(x1, x2, …, xk) = 1  f(x1, x2, …, xk) = 0,

якщо прийняти g(x1, x2, …, xk) = 0, то треба

f(x1, x2, …, xk) = 0  f(x1, x2, …, xk) = 1

Якщо задано систему n рівнянь

f1(x1, x2, …, xk) = 0

… … …

fn(x1, x2, …, xk) = 0,

тоді вектор с = (x1, x2, …, xk)  Bk є розв’язанням цієї системи, тільки якщо він задовольняє кожному її рівнянню.

Ця система рівнянь може бути замінена еквівалентним їй рівнянням.

Якщо всі ліві частини булевих рівнянь, що входять у систему, об'єднати диз’юнктивно, то вийде рівняння

f1(x1, x2, …, xk)  f2(x1, x2, …, xk)  …  fn(x1, x2, …, xk) = 0,

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

Приклад. Нехай задана система трьох найпростіших рівнянь:

x1 x2 = 0

x1  x2 = 0

x1 x2 = 0

Тоді при диз'юнктивному об'єднанні всіх лівих частин одержимо

(x1 x2)  (x1  x2)  (x1 x2) = 0.

Приведення до булевого базису дасть

(x1 x2)  (x1 x2)  ((x1 x2)  (x1 x2)) = 0.

Після перетворень вийде

(x1 x2)  (x1 x2)  (x1 x2) = x1 x2 = 0.

Як відомо, диз'юнкція дорівнює 0 при нульових аргументах, тобто при x1 = 0 і x2 = 0. Отже, пара (x1 = 0, x2 = 0) і буде розв’язанням системи трьох рівнянь.

Якщо всі ліві частини рівнянь, що входять у систему, об'єднати кон’юнктивно, то вийде рівняння

f1(x1, x2, …, xk)  f2(x1, x2, …, xk)  …  fn(x1, x2, …, xk) = 1,

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

Приклад. Нехай задана система трьох найпростіших рівнянь

x1 x2 = 1

x1 x2 = 1

x1 x2 = 1

Тоді при конюнктивному об'єднанні всіх лівих частин вийде

(x1 x2) (x1 x2) (x1 x2) = 1.

Приведення до булевого базису дасть

(x1 x2) ((x1 x2) (x1 x2)) (x1 x2) = 1.

Після перетворень вийде

x1 x2 (x1 x2) (x1 x2) (x1 x2) = x1 x2 = 1.

Як відомо, конюнкція дорівнює 1 при одиничних аргументах, тобто при x1 = 0 і x2 = 0. Отже, у цьому прикладі, як і у попередньому, пара (x1 = 0, x2 = 0) і буде розв’язанням системи трьох рівнянь.

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