Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lectures / Лекція 13. Повні системи функцій.doc
Скачиваний:
122
Добавлен:
12.05.2015
Размер:
155.65 Кб
Скачать

13.3. Функціонально замкнуті класи булевих функцій

Означення 13.8. Клас функцій називається функціонально замкненим, якщо суперпозиція цих функцій належить даному класу.

Теорема 13.2. Суперпозиція лінійних функцій є лінійною функцією.

Доведення. Якщо у лінійному поліномі Жегалкіна на місті довільної змінної підставити лінійну функцію, то знову отриманий поліном буде також лінійним. Візьмемо поліном (1x1)  (2x2)  …  (nxn)  . Підставимо замість x1 лінійним поліном (1y1)(2y2)  …  (mym)  . Отримаємо лінійний поліном:

(11y1)  (12y2)  …  (1mym)  (1)  (2x2)  …  (nxn)  .

Відповідно, клас лінійних функцій функціонально замкнений. ►

Теорема 13.3. Суперпозиція монотонних функцій є функція монотонна. Відповідно, клас монотонних функцій є функціонально замкненим.

Доведення. Нехай функції f(x1,…,xn), g1(y1,…,yk),…, gn(y1,…,yk) монотонні. Побудуємо суперпозицію функцій  = f(g1,…,gn). Нехай  та  - два набори значень змінних y1,…,yk, до того ж . Через те, що функції g1,…,gn монотонні, маємо:

g1()g1() ,…, gn()gn(),

тому набори значень функцій впорядковані:

(g1(),…,gn())  (g1(),…,gn()),

а через монотонність функції f маємо:

f(g1(),…,gn())  f (g1(),…,gn()).

Звідси отримуємо ()  (). ►

Теорема 13.4. Клас функцій, які зберігають нуль, є функціонально замкненим.

Доведення. Нехай функції f(x1,…,xn), g1(y1,…,yk),…, gn(y1,…,yk) зберігають нуль. Побудуємо суперпозицію функцій  = f(g1,…,gn). Тоді

(0,...,0) = f(g1(0,...,0),…,gn(0,...,0)) = f(0,…,0) = 0. ►

Теорема 13.5. Клас функцій, які зберігають одиницю, є функціонально замкненим.

Доведення аналогічно теоремі 13.4.

Нагадаємо, що за теоремою 11.1 клас самодвоїстих функцій є також функціонально замкненим.

Позначимо: T0 – клас функцій, які зберігають 0; T1 – клас функцій, які зберігають 1; S – клас само двоїстих функцій; M – клас монотонних функцій; L – клас лінійних функцій.

13.4. Набори повних систем

Означення 13.9. Система функцій (f1,…,fs) з P (fiP) називається функціонально повною, якщо будь-яка булева функція може бути записана у вигляді формули через функції цієї системи.

Наприклад, система Р – множина всіх булевих функцій. Кількість функцій . Так, усі 16 функцій двох змінних утворюють повну систему. Система функцій {,,} є також повною. Але система {0, 1} не є повною. Звідси маємо таку теорему.

Теорема 13.6. Нехай задано дві системи функцій A = {f1,…,fn} та B = {g1,…,gm}, відносно яких відомо, що система А повна і кожна її функція виражається у вигляді формули через функції системи В. Тоді система В також є повною.

Доведення. Нехай h – довільна функція, hP. З урахуванням повноти системи А h можна виразити як

h = C(f1,…,fn),

де С – деяка формула. За умовою:

f1 = C1(g1,…,gm),…, fn = Cn(g1,…,gm).

Тому у формулі h = C(f1,…,fn) можна замінити fi відповідно до цих рівностей і отримати наступне:

h = C(f1,…,fn) = С( C1(g1,…,gm),..., Cn(g1,…,gm)).

Цей вираз визначає формулу В з будовою С’:

С( C1(g1,…,gm),..., Cn(g1,…,gm)) = С’(g1,…,gm).

Таким чином, В належить до повних систем. ►

Спираючись на цю теорему, можна встановити повноту ще кількох систем і таким чином розширити список повних систем.

Так система функцій {,} є повною. Це доводиться за допомогою теореми 13.6, де система А = {,,}, а функція диз’юнкцції виражається через  та  наступним чином:

.

Так само можна довести, що система {,} є повною.

Системи функцій, що складаються лише з функції Шеффера або лише з функції стрілки Пірса є також повними.

Функціонально повна система утворює базис у логічному просторі.

Означення 13.10. Система функцій називається мінімально повним базисом, якщо вилучення з неї будь-якої функції перетворює цю систему на неповну.

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

Доведення. Необхідність умови теореми випливає з функціональної замкненості та неповноти класів монотонних, лінійних, самодвоїстих функцій та функцій, які зберігають 0 та 1. Доведено (теореми 11.1, 13.2-13.5), що функція, яка не належить даному функціональному замкненому класові, не може бути побудована шляхом суперпозиції функцій цього класу.

Для доведення достатності покажемо, що за допомогою функцій, які не належать деяким з класів T0, T1, S, M, L, можна побудувати деяку повну систему функцій. Такою повною систему є, наприклад, заперечення та кон’юнкція. Дійсно, довільна булева функція може бути представлена у вигляді ДДНФ, тобто як суперпозиція , , . Відповідно, система {,,} є функціонально повною. Можна виключити з неї , так що вона може бути представлена як суперпозиція  та : .

Спочатку побудуємо константи. Почнемо з константи 1. Нехай (x)=f0(x,…,x), де f0 – функція, що не зберігає нуль. Тоді (0) = f0(0,…,0)  0, тобто (0) = 1. Можливі два випадки:

  1. (1) = 1. В цьому випадку формула  реалізує 1.

  2. (1) = 0. Тоді формула  реалізує заперечення. Тоді розглянемо несамодвоїсту функцію f*. Маємо:

.

Відповідно: . Нехай тепер . Тоді:

Таким чином, (0) = (1), звідки =1 або =0. Якщо =1, то ми побудували константу 1. В іншому випадку  реалізує 0, а тому, ((x)) = 1.

Константа 0 будується аналогічно, тільки замість f0 треба брати f1 – функцію, що не зберігає 1.

За допомогою немонотонної функції підстановкою в неї констант можна побудувати заперечення. Дійсно, нехай fM – немонотонна функція. Тоді існують набори  та , такі, що  передує , тобто , а fM() = 1, fM() = 0. Оскільки , то у  є декілька, наприклад, k елементів, які рівні 0, в той час як у  ті ж самі елементи рівні 1. Візьмемо набір  та замінимо в ньому перший такий нульовий елемент на 1, отримаємо набір 1: 1, який відрізняється від  тільки одним елементом (такі набори мають назву сусідніх). Повторюючи цю операцію k разів, отримаємо послідовність наборів   1  ...  k-1  , в якій кожні два сусідніх набори відрізняються один від одного тільки одним елементом. В цьому ланцюжку знайдуться два таких набори i, i+1, що fM(i) = 1 та fM(i+1) = 0. Нехай ці набори відрізняються j-м елементом (значенням змінної xj), а решта елементів однакові. Підставимо у fM ці значення. Тоді отримаємо функцію , яка залежить тільки від xj. Тоді g(0) = g(ij) = f(i) = 1, g(1) = g(i+1j) = f(i+1) = 0. Звідси маємо, що .

Побудуємо кон’юнкцію за допомогою підстановки у нелінійну функцію констант та використання заперечення. Дійсно, нехай fL – нелінійна функція. Тоді в її поліномі Жегалкіна існує нелінійний доданок, який містить кон’юнкцію принаймні двох змінних. Нехай, для визначеності, це x1 та x2. Тоді:

до того ж . Відповідно, . Нехай , , та

Тоді нехай

.

Тоді

(Функція x   можна виразити, так як x  1 = , x  0 = x). ►

Наприклад, перевіримо повноту системи {,}. Для цього укладемо таблицю Поста (табл. 13.1). Якщо функція входить у функціонально замкнений клас, то в таблиці Поста у відповідній комірці ставиться знак “+”, інакше – знак “–“.

T0

T1

S

M

L

+

+

+

Табл. 13.1. Таблиця Поста для системи {,}.

Функція не зберігає 0 та 1, так як на нульовому наборі вона приймає значення 1, а на одиничному – значення 0. Очевидно, що дана функція немонотонна. Функція є само двоїстою, так як на протилежних наборах вона приймає протилежні значення. Функція лінійна – її поліном Жегалкіна: .

Функція xy не зберігає 0 та зберігає 1. Ця функція немонотонна, так як набір (0,0) передує наборові (1,0), але 00 = 1, а 10 = 0. На протилежних наборах (0,0) та (1,1) функція приймає значення 1, відповідно, вона несамодвоїста. Для перевірки лінійності xy побудуємо її канонічний поліном Жегалкіна:

Функція нелінійна, так як містить елемент xy.

Система функцій {,} повна, так як в кожному стовпці таблиці Поста 13.1 є хоча б один знак “–“.