Проблема вирішення в алгебрі висловлювань. Функціональна повнота множини логічних операцій
Проблема вирішення в логіці висловлювань розглядається як відповідь на питання, чи існує алгоритм, який за скінченне число кроків дає змогу визначити тип будь-якої формули алгебри висловлювань. В алгебрі висловлювань ця проблема розв’язується позитивно. Зокрема можна запропонувати способи : 1) Складанням таблиць істинності формул; 2) Застосуванням методу міркувань від супротивного; 3) Зведенням формул до нормальних форм.
Зрозуміло, що таблиця істинності для будь-якої формули від n висловлюваних змінних може бути побудована за скінченне число кроків і визначить тип формули. Але число рядків таблиці (2n) може виявитися завеликим при значній кількості атомів, що становлять формулу. Тому на практиці в такому разі краще застосувати метод 2 або 3.
Аналіз формул із застосуванням методу міркувань від супротивного базується на таких умовиводах:
А. Якщо припустимо, що для деякого набору значень атомів формула α(A1, A2, …, An) набуває значення “ Хибність ”, а після аналізу формули прийдемо до суперечності, то відносно формули α робимо висновок, що вона є тавтологією.
Б. Якщо припустимо, що для деякого набору значень атомів формула α(A1, A2,…, An) набуває значення “Істина” і прийдемо до суперечності, то є суперечною.
В. Якщо не одержимо суперечності ні при припущенні А) , ні при припущенні Б), то робимо висновок, що формула α є нейтральною.
Приклад 1.5.1.Визначити тип формули
α = ((A Þ B) ÞA) ÞA.
Розв’язання. Припустимо, що α не є тотожно істинною формулою. Тоді повинен існувати такий набір значень атомів, на якому вона набуває значення “ Хибність ”. Формула α є імплікацією. Значення “ Хибність ” можливе лише за умови, що (AÞB)ÞA набуває на цьому наборі значення “ Істина ”, а А – “ Хибність ”. Тоді випливає, що AÞB повинне набувати значення “ Хибність ”, що неможливо, оскільки А – “ Хибність ”. Отже, α є тавтологією.
Перед тим як розв’язувати проблему вирішення, інколи корисно спочатку перетворити формулу логіки висловлювань за допомогою рівносильних перетворень до деякої стандартної форми. Такими формами є диз’юнктивна нормальна форма (ДНФ) та кон’юнктивна нормальна форма (КНФ).
Зафіксуємо деяку множину Х логічних змінних.
Означення 1.5.1.Елементарною кон’юнкцією (диз’юнкцією) називається кон’юнкція ( диз’юнкція) скінченного числа попарно різних логічних змінних, узятих із запереченням або без нього.
Наприклад, є елементарними кон’юнкціями, є елементарними диз’юнкціями, а або вже такими не будуть.
Означення 1.5.2.Елементарні кон’юнкції, що містять усі змінні з Х, будемо називати конституентами одиниці над Х, а елементарні диз’юнкції, які задовольняють подібну властивість, – конституентами нуля над Х.
Неважко бачити, що кожна конституента одиниці (відповідно, конституента нуля) лише на одному, єдиному для неї наборів атомів набуває значення “Істина” (відпо-
відно значення “Хибність”).
Означення 1.5.3. Диз’юнктивною (кон’юнк-тивною) нормальною формоюназивається диз’юнкція (кон’юнкція) скінченного числа попарно різних елементарних кон’юнкцій (диз’юнкцій).
Наприклад, є ДНФ, – КНФ. Надалі елементарні кон’юнкції в ДНФ будемо називати доданками, а елементарні диз’юнкції в КНФ – множниками.
Означення 1.5.4.ДНФ (КНФ)називається досконалою, якщо всі її доданки (множники) є конституентами одиниці (нуля) над множиною всіх її атомів.
Досконалі форми будемо відповідно позначати ДДНФ та ДКНФ.
Довільну формулу алгебри висловлювань можна перетворити в одну з нормальних форм. Для цього необхідно виконати ряд кроків:
1. Усунути логічні зв’язки “Імплікація” та “Еквіваленція” за формулами .
2. Використати закон подвійного заперечення та закони де Моргана для перенесення знака заперечення безпосередньо до атомів.
3. Використати відповідні закони дистрибутивності.
Приклад 1.5.2.Шляхом перетворень одержати для формули α = А В рівносильні їй ДНФ та КНФ.
Розв’язання. . - КНФ.
- ДНФ.
Інший шлях перетворення будь якої формули алгебри висловлювань до нормальних форм – це побудова спочатку для даної формули таблиці істинності, а потім за таблицею складаємо ДДНФ або ДКНФ.
Означення 1.5.5.Деяка множина операцій алгебри висловлювань називається функціонально повною, якщо довільна формула алгебри висловлювань рівносильна формулі, в яку входять лише операції із цієї системи.
Теорема 1.5.1. Кожна із множин операцій { , , }, { , }, { , }, { , Þ} є функціонально повною.
Доведення. Оскільки для довільних формул α і β алгебри висловлювань характерні рівносильності:
,
то достатньо довести, що перша з означених множин у теоремі 1.5.1 є функціонально повною – { , , }, а всі інші автоматично стають функціонально повними за рівносильностями.
Формально це вже доведено, оскільки за алгоритмом ми зможемо перетворити будь-яку формулу алгебри висловлювань у ДНФ чи КНФ ( див. приклад 1.5.2), для сполучення атомів у яких застосовуються лише операції з множини { , , }. Застосуємо інше доведення, використовуючи таблиці істинності і тим самим заодно доведемо ще одну теорему.
Теорема 1.5.2.Кожна функція логіки висловлювань є функцією істинності деякої ДНФ (КНФ).
Доведення. Нехай задана функція логіки висловлювань подана таблицею істинності з рядками, де кожен рядок містить деякий розподіл значень істинності для набору змінних. У кожному рядку і = , , … , таблиці істинності атоми і сама може набувати значення X або I. На наборах атомів в і-му рядку, що надають функції значення І, складемо елементарну кон’юнкцію Xi1ÙXi2Ù…ÙXin , де Xij = Aij, якщо Aij є І, , якщо Aij є Х. З’єднаємо всі елементарні кон’юнкції операцією диз’юнкції.
Покажемо, що одержана конструкція є шуканою ДНФ.
За означенням 1.5.2 кожна конституента одиниці лише на одному, єдиному для неї наборі атомів набуває значення І, тобто тільки для наборів і-го рядка, а на всіх інших рядках вона набуває значення Х. Тому кожний кон’юнктивний одночлен у побудованій ДНФ надасть значення І лише в своєму рядку. Отже, побудована таким чином ДНФ є рівносильною до функції поданою таблицею істинності і теорему 1.5.2 доведено, а одночасно доведено і теорему 1.5.1. Для побудови КНФ дії аналогічні.
Приклад 1.5.3. Утворити ДНФ та КНФ для функції логіки висловлювань, що подана таблицею істинності.
А1 | А2 | f |
X | X | I |
X | I | I |
I | X | I |
I | I | X |
Розв’язання. Для рядків таблиці зі значенням І для f записуємо елементарні кон’юнкції А1 Ù А2 , А1 Ù А2 , А1 Ù А2 , які зв’язуємо між собою диз’юнкцією. Одержимо ДНФ:
f = (ØА1ÙА2)Ú(А1ÙØА2) Ú (ØА1ÙØА2).
КНФ для даної функції - f = А1 Ú А2 .