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

35.3. Подвійна булева різниця

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

Визначення. Подвійною булевою різницєю функції F(х1,x2,...,хi,...,хj,...,xn) щодо змінних хi і хj називається вираз виду

d2F(Х)/dхidхj = F(x1, х2,..., хi,...,хj,...,xn) F(x1, x2 ,...,хi,...,хj,...,хn).

Приклад. Нехай дана функція F(X) = x1+x2+x3, звідси треба, що

d2F(x)/dхidхj = (x1+x2+x3) (x1+x2+x3) = =(x1+x2+x3)(x1+x2+x3) + (x1+x2+x3) (x1+x2+x3) = = x1x2x3+ x1x2x3 = x3(x1x2+ x1x2).

При визначенні d(х1, x2, x3)/dх2 методом карт Карно дві карти (табл.. 35.5 і 35.6) складаються по модулі 2 у такий спосіб (табл.. 35.7)

d2F(Х)/dхidхj = F(x1, х2, х3) F(x1, x2, х3).

Таблиця 35.5

F x2,x3 x1

00

01

11

10

0

1

1

1

1

1

1

1

1

Таблиця 35.6

F x2,x3 x1

00

01

11

10

0

1

1

1

1

1

1

1

1

Таблиця 35.7

F x2,x3 x1

00

01

11

10

0

1

1

1

Отже, d2F(x)/dхidхj = x3(x1x2+ x1x2).

Булева різниця другого порядку, задана рівнянням визначення, відмінна від операції d(d(x)/dхj)/dхi, тобто

d2F(Х)/dхij  d(d(x)/dхj)/dхi

Визначення. Булева функція F(х1,x2,...,хi,...,хj,...,xn) не залежить від змінних хi і хj, якщо F(х1,x2,...,хi,...,хj,...,xn) не змінюється при зміні хi і хj на інверсні, тобто, якщо

F(х1,x2,...,хi,...,хj,...,xn) = F(х1,x2,...,хi,...,хj,...,xn)

Теорема. Щоб F(Х) не залежала від змінних хi і хj, необхідно й досить виконання умови d2F(Х)/dхidхj = 0.

Визначення й теорема справедливі тільки для випадку одночасної появи змін у хi і хj, що відмінно від випадку подвійної зміни, тому що останній містить у собі також й одиночні зміни хi або хj.

Таким чином, можна виділити випадки:

  1. Різниця для визначення реакції на дві зміни в хi і хj

d2F(Х)/dхij = d(Х)/d(хiхj) = = F(х1,x2,...,хi,...,хj,...,xn)  F(х1,x2,...,хi,...,хj,...,xn).

  1. Різниця для визначення реакції на зміну або в хi, або в хj

d(Х)/d(хiхj) = = d(Х)/dхi + d(Х)/dхj.

  1. Різниця для визначення реакції на зміну або в хi, або в хj, або в хi і хj одночасно

d(Х)/d(хij) = = d(Х)/d(хiхj) + d(Х)/d(хiхj).

35.4. Булеві похідні й диференціали

Визначення. Частковою булевою похідною df(x)/dxi функції f(x) від змінних х0, х1, .. ., хi, ..., хп по змінній хi є сума додавання по модулю 2 для f(x):

ðf(x)/ ðхi = f(x0, х1,..., хi,...,xn) f(x0, x1 ,..., хi,...,хn)

Тотожним даному визначенню є таке визначення часткової БП:

ðf(x)/ ðхi = f(x0, х1,... , хi-1, l, хi+1,…, xn) f(x0, х1,... , хi-1, 0, хi+1,…, xn)

Визначення. Частковим булевим диференціалом (БД) функції dXi f(x) називається приріст функції f(x) при приросту змінної xi, на dxi:

dXi f(x) = f(x) f(xi dxi )

Існує така залежність між частковим БД і частковою булевою похідною:

dXi f(x) = (ðf(x)/ ðхi)dхi.

Властивості часткової булевой похідній (БП) й операції додавання по модулю 2 відомі. Частковий БД є параметричною формою часткової булевой похідній з параметром dxi і має ті ж властивості.

Найбільш важлива властивість часткової БП полягає в тому, що коли часткова БП дорівнює одиниці, значення функції f(x) відрізняються для прямого й оберненого значення змінної xi. Коли часткова БП дорівнює нулю, функція f(x) має те саме значення для прямого й оберненого значення змінної xi.

Також застосування знайшли повні булеві диференціали.

Визначення. Повним булевим диференціалом функції f(x) називається приріст цієї функції при приросту вхідного вектора X на d:

ðf(x)/ðX = df(x) = f(x) f(X d)

Існує такий вираз для повного БД:

ðf(x) =  l (ðf(x)/ðXl)dXl

Якщо (X0, X1) є розбивкою вхідного вектора X, то вираз ðf(d0 = 1, d1 = 0) = f(X0, X1) f(X0, X1) одержало назву функції чутливості Rf(x)/RX0 від функції f(x) по змінних у точці. За допомогою функції Rf(x)/RX0 повний булев диференціал визначається як диз'юнкція всіх функцій чутливості:

df(x) = l (Rf(x)/RXl) d1 (0<l<=2n-1)

Існують залежності між функціями чутливості й частковими похідними:

Rf(x)/RX0 =  l ðf(x)/ðXl (0<l<=2p-1)

ðf(x)/ðX0 = l Rf(x)/RXl0 (0<l<=2p-1),

де p — число змінних у крапці Х0 .

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

Визначення. Булев диференціал, орієнтований на збільшення df(x), є булевою функцією, що дорівнює 1, тоді й тільки тоді, коли f(x) змінюється при зміні Х з 0 в 1. Булев диференціал, орієнтований на зменшення df(x), є булевою функцією, що дорівнює 1, тоді й тільки тоді, коли f(x) змінюється при зміні X з 1 в 0.

З визначень випливає зв'язок між орієнтованими неорієнтованими БД:

df(x) = f(x)df(x);

df(x) = f(x)df(x).

Можна увести поняття часткового орієнтованими БД (ОБД) і часткових орієнтованих булевых похідних (ОБП) і досліджувати їхнї властивості. З урахуванням виразів зв’язку між орієнтованими і неорієнтованими БД можна записати співвідношення між частковими ОБД і БД:

dxi f(x) = f(x)dxi f(x);

dxi f(x) = f(x)dxi f(x) .

Використовуючи залежності між частковими БП і БД, рівності відношень між частковими ОБД і БД можна представити у вигляді

dxi f(x) = f(x) (ðf(x)/ðхi) dxi;

dxi f(x) = f(x) (ðf(x)/ðхi) dxi.

Визначення. Частковою булевою похідною, орієнтованою на збільшення ðf(x)/ðхi, називається вираження вигляду f(x) (ðf(x)/ðхi). Частковою булевою похідною, орієнтованою на зменшення ðf(x)/ðхi, називається вираження вигляду f(x) (ðf(x)/ðхi).

З урахуванням визначень для співвідношень між частковими ОБД і БД часткові ОБД можна представити у вигляді

dxi f(x) = (ðf(x)/ðхi) dxi;

dxi f(x) = (ðf(x)/ðхi) dxi.

Підставивши в ОБД початкове вираження часткової БП, можна одержати такі вирази:

ðf(x)/ðхi = f(xi)f(xj);

ðf(x)/ðхi = f(xi) f(xj) .

Розв’язання ціх рівнянь, що дорівнює 1, визначає набори вхідних змінних, у яких зміна значення xj на протилежне приводить до зміни значення функції відповідно з 0 в 1 або з 1 в 0. При цьому змінна xi може мінятися як з 0 в 1 , так і з 1 в 0, тобто є неорієнтованою. Орієнтація диференціала змінної хi приводить до таких співвідношень для часток ОВД:

dxi f(x) = f(xi=1)f(xi=0) dxi  f(xi=1) f(xi=0) dxi;

dxi f(x) = f(xi=1)f(xi=0) dxi  f(xi=1) f(xi=0) dxi.

Визначення. Прямою орієнтованою булевою похідною [ðf(x)/ðхi]п називається вираження вигляду f(xi=1)f(xi=0), що визначає умови, при яких диференціали dxi й dxi f(x) мають однакову орієнтацію. Оберненою орієнтованою булевою похідною [ðf(x)/ðхi]0 назвемо вираження вигляду f(xi=1)f(xi=0), що визначає умови, при яких диференціали dxi й dxi f(x) мають різну орієнтацію.

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

[ðf(x)/ðхi]п = f(xi = 1)f(xi=0) = 1;

[ðf(x)/ðхi]0 = f(xi = 1) f(xi=0) = 1.

Якщо представити функцію f(x) у вигляді f(x) = xi f(xi = 1)xi f(xi = 0), то можна одержати наступні залежності ОБП від прямої й оберненої ОБП:

ðf(x)/ðхi = хi [ðf(x)/ðхi]п  хi [ðf(x)/ðхi]про;

ðf(x)/ðхi = хi [ðf(x)/ðхi]про  хi [ðf(x)/ðхi]про.

Орієнтовані булеві похідні мають нову якість і порівняно зі звичайними БП мають відмінні від них властивості. У зв'язку з цим нижче наводяться основні властивості ОБП.

  1. ðf(x)/ðхi = ðf(x)/ðхi; ðf(x)/ðхi = ðf(x)/ðхi.

  2. ðf(x)/ðхi = ðf(x)/ðхi; ðf(x)/ðхi = ðf(x)/ðхi.

  3. ð(f(x)g(x))/ðхi = g(x) ðf(x)/ðхi f(x) ðg(x)/ðхi.

  4. ð(f(x)g(x))/ðхi = g(x) ðf(x)/ðхi f(x) ðg(x)/ðхi.

  5. ð(f(x) g(x))/ðхi = g(x) ðf(x)/ðхi f(x) ðg(x)/ðхi.

  6. ð(f(x) g(x))/ðхi = g(x) ðf(x)/ðхi f(x) ðg(x)/ðхi.

  7. ð(f(x) g(x))/ðхi = g(x)g(x)ðf(x)/ðхi g(x) g(x) ðf(x)/ðхi f(x)f(x)ðg(x)/ðхi f(x) f(x) ðg(x)/ðхi.

  8. ð(f(x) g(x))/ðхi = g(x)g(x)ðf(x)/ðхi g(x) g(x)ðf(x)/ðхi f(x)f(x)ðg(x)/ðхi f(x) f(x)ðg(x)/ðхi.

Властивості прямої й оберненої ОБП можна вивести з цих відношень.

  1. [ðf(x)/ðхi]п = [ðf(x)/ðхi]про [ðf(x)/ðхi]про = [ðf(x)/ðхi]п

  2. [ðf(x)/ðхi]п = [ðf(x)/ðхi]про [ðf(x)/ðхi]про = [ðf(x)/ðхi]п

  3. [ð(f(x)g(x))/ðхi]п = g(x=1)(ðf(x)/ðхi]n f(x=1)(ðg(x)/ðхi]n

  4. [ð(f(x) g(x))/ðхi]про =g(x=0)(ðf(x)/ðхi]про f(x=0)(ðg(x)/ðхi]про

  5. [ð(f(x) g(x))/ðхi]п = g(x=0)(ðf(x)/ðхi]n f(x=0)(ðg(x)/ðхi]n.

  6. [ð(f(x) g(x))/ðхi]про = g(x=1)(ðf(x)/ðхi]про f(x=1)(ðg(x)/ðхi]про

  7. [ð(f(x) g(x))/ðхi]п = g(x=1)g(x=0)(ðf(x)/ðхi]n g(x=1)g(x=0)(ðf(x)/ðхi]про f(x=1)f(x=0)(ðg(x)/ðхi]n f(x=1)f(x=0)(ðg(x)/ðхi]про

  8. [ð(f(x) g(x))/ðхi]o = g(x=1)g(x=0)(ðf(x)/ðхi]o g(x=1)g(x=0)(ðf(x)/ðхi]n f(x=1)f(x=0)(ðg(x)/ðхi]o f(x=1)f(x=0)(ðg(x)/ðхi]n

Приклад. Можна обчислити частки ОБД й ОБП за змінною х2 функції f(x) = х1х2 х2х3.

Булева похідна, орієнтована на зменшення, за змінною х2 дорівнює ðf(х) /ðх2 = (xtx2 х2x3) (x1x2 х2х3) = х1х2х3, х1х2х3. Звідси набори х1 = 1, х2 = 1, хэ = 0 і х1 = 0, х2 = 0, х3 = 1 визначають умови чутливості функції до змінного х2. При цьому зміна значення х2 на протилежне (з 1 в 0 у наборі 110 або з 0 в 1 у наборі 001) приводить до зміни функції з 1 в 0.

Булева похідна, орієнтована на збільшення, по змінній х2 дорівнює ðf(х) /ðх2 = (xtx2 х2x3) (x1x2 х2х3) = х1х2х3, х1х2х3. Звідси зміна змінної х2 з 1 в 0 у наборі 011 або зміна х2 з 0 в 1 у наборі 100 приводить до зміни значення функції з 0 в 1.

Пряма й обернена ОБП для змінної х2 мають вигляд [ðf(х) /ðх2]n = х1х2; [ðf(х) /ðх2]o = х1х2.

Часткові ОБД визначаються так dx2 f(x) = (ðf(х) /ðх2)dx2 = (x1x2x3 x1x2x3)dx2 = x1x3 dx2 x1x3 dx2; dx2 f(x) = =(ðf(х) /ðх2)dx2 = (x1x2x3 x1x2x3)dx2 = x1x3 dx2 x1x3 dx2. З ОБД, орієнтованого на зменшення, треба, що зміна функції з 1 в 0 досягається зміною х2 з 1 в 0 за умови х1 = 1, х3 = 0 або зміною х2 з 0 в 1 за умови х1 = 0, х3 = 1. ОБД, орієнтований на збільшення, дорівнює 1 при зміні х2 з 1 в 0 при x1 = 0, х3 = 1 або при зміні х2 з 0 в 1 при х1 = 1, х3 = 0.

Контрольні питання

  1. Що є булевою різницею?

  2. Які властивості має булева різниця?

  3. Чім відрізняються карти Карно і Хсиао Скотта для булевої різниці?

  4. Що є подвійною булевою різницею?

  5. Що розуміється під частковими булевими похідною і диференціалом?

  6. Чим відрізняються повні булеві диференціали від часткових?

  7. Яка залежність між функціями чутливості й частковими похідними?

  8. Що називається орієнтованими булевими диференціалами й похідними?

  9. У чому різниця повних і часткових орієнтованих булевих похідних і диференціалів?

Список літератури

Основна

  1. Селлерс Ф. Методы обнаружения ошибок в работе ЭВМ. – М.: Мир, 1974. - С.32-41.

Додаткова

  1. Бохман Д., Постхоф Х. Двоичные динамические системы. М.: Энергоатомиздат, 1986. - С.66-167.

Для практичних занять

  1. Методичні вказівки і завдання до контрольних робіт з дисципліни «Основи дискретної математики» для студентів очної та заочної форм навчання фахів 6.0804, 6.0915 / О.М. Мартинюк. – Одеса: ОНПУ, 2001. – С.45-50.

Лекція 36. Логіка предикатів

Вступ

Лекція має за мету навести базові поняття логікі предикатів. Розглянути висловлення предикатів, аргументи-терми, квантори, зміни арності предикатів, а також правила використання кванторів. Звернено увагу до наведених форм, формул, та використання предикатів.

У лекції присутні три підрозділи:

  1. Висловлення предикатів

  2. Логіка предикатів

  3. Правила застосування кванторів

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