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

34.2. Булеві нерівності

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

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

є самою загальною формою булевої нерівності. Розв’язаннями є всі такі вектори наборів з = (x1, x2, …, xk) Bk, для яких справедливо f(с) ( g (с).

У цьому випадку повинне виконуватися

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

Приклад. Розв’язанням булевої нерівності x1 x2 x1 x2 буде набір c = (x1,= 1, x2 = 1), на якому x1 x2 =0, 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 = 1, g = 0.

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

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

або

f(x1, x2, …, xk) = 1;

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

f(x1, x2, …, xk) = 0...

Нехай задана система m булевих нерівностей

f1(x1, x2, …, xk)  g1(x1, x2, …, xk);

… … …

fm(x1, x2, …, xk)  gm(x1, x2, …, xk).

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

Ця система булевих нерівностей може бути замінена еквівалентним їй рівнянням за допомогою диз'юнктивного об'єднання

(f1(x1, x2, …, xk) g1(x1, x2, …, xk))   (f2(x1, x2, …, xk) g2(x1, x2, …, xk))  … … …  (fn(x1, x2, …, xk) gn(x1, x2, …, xk)) = 0...

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

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

x1 x2x1 / x2`

x1 x2 x1 x2.

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

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

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

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

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

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

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

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

(f1(x1, x2, …, xk)g1(x1, x2, …, xk))  (f2(x1, x2, …, xk)g2(x1, x2, …, xk))  … … … (fn(x1, x2, …, xk)gn(x1, x2, …, xk)) = 1

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

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

x1 x2x1 / x2

x1 x2 x1 x2

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

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

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

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

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

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

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

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