- •Застосування логіки висловлювань в програмній інженерії методичні вказівки
- •Теоретичні відомості.
- •Нормальні форми логіки висловлювань
- •Карти Карно
- •Кодистійкі до перешкод
- •Логічні побітові операції
- •Завдання до виконання
- •Контрольні запитання.
- •Список літератури
- •Застосування логіки висловлювань в програмній інженерії методичні вказівки
МІНІСТЕРСТВО ОСВІТИ І НАУКИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Застосування логіки висловлювань в програмній інженерії методичні вказівки
до практичних занять
з дисципліни „Комп’ютерна дискретна математика”
для студентів базового напряму
„Програмна інженерія”
|
Затверджено на засіданні кафедри програмного забезпечення Протокол № 14 від 18.04.2013 р. |
Львів – 2013
Застосування логіки висловлювань в програмній інженерії.:Методичні вказівки до практичних занять з дисципліни „Комп’ютерна дискретна математика” для студентів базового напряму „Програмна інженерія” / Укл.: П. В. Сердюк, О.О. Нитребич. – Львів: Видавництво Національного університету „Львівська політехніка”, 2013. – 28 с.
Укладачі
Сердюк. П. В., к. т. н., доц. кафедри програмного забезпеченння національного університету“Львівська політехніка”
Нитребич О. О., асист. кафедри програмного забезпеченння національного університету“Львівська політехніка”
Відповідальний за випуск
Федасюк Д. В., д-р тех. наук, проф., завідувач кафедрою програмного забезпечення, проректор з науково-педагогічної роботи національного університету “Львівська політехніка”
Рецензенти
Гавриш В. І., к.ф.-м.н., доц. кафедри програмного забезпеченння національного університету “Львівська політехніка”
Огородник Н. П., к.ф.-м.н., асис. кафедри теорії оптимальних процесів Львівського національного університету ім. І. Франка
Зміст
Зміст 3
1.Вступ 4
2.Нормальні форми логіки висловлювань 4
3.Карти Карно 11
4.Коди стійкі до перешкод 14
5.Логічні побітові операції 17
6.Завдання до виконання 21
7.Контрольні запитання. 26
ЛОГІКА
Мета роботи:Ознайомлення на практиці із застосуванням логіки висловлювань у програмній інженерії, навчитись будувати досконалі кон’юктивну та доз’юктивну форми, мінімізувати їх за допомогою карт Карно, а також навчитись працювати з кодами, стійкими до перешкод.
Теоретичні відомості.
Вступ
Класична логіка висловлювань є основою сучасної символічної логіки, на базі якої створюються нові формально-логічні системи (логічні числення). Ідею логічного числення вперше сформулював німецький філософ, логік, математик Г. Ляйбніц. Історично першу систему логіки висловлювань, або алгебру логіки, створив англійський логік Дж. Буль, в якій використовували алгебраїчні методи для вирішення певних логічних задач. Подальший розвиток логіки висловлювань здійснювали логіки та математики - О. де Морган, Б. Шредер, Г. Фреге, Б. Рассел й ін.
Багато сучасних досліджень у галузі логіки виникає з потреб розвитку програмування, зокрема, аплікативні обчислювальні системи, теорія обчислень і моделі обчислень, семантичні мережі, булева логіка і алгебра для розробки апаратного забезпечення комп'ютерів, штучний інтелект; експертні системи і т.д.
Нормальні форми логіки висловлювань
Означення 2.1. Літерал – атомарна формула або її заперечення.
Приклад 2.1. – літерали.▲
Означення 2.2. Елементарною диз’юнкцією називається диз’юнкція, що містить будь-яку кількість літералів, де кожна атомарна формула зустрічається лише один раз.
Приклад 2.2 – елементарні диз’юнкції однієї змінної;
– елементарні диз’юнкції двох змінних;
– елементарні диз’юнкції трьох змінних;
– не є елементарними диз’юнкціями. ▲
Означення 2.3. Простими імплікантами називаються елементарні диз’юнкції, що самі входять у задану функціюf, але ніяка їхня частина у функціюfне входить.
Приклад 2.3 Для функціїf(p,q,r) =простими імплікантами будуть кон’юнкціїта, атане є ними, оскільки їхня частинауже входить у задану функцію. ▲
Означення 2.4. Формула f записана у кон’юнктивній нормальній формі (КНФ), якщо вона має вигляд () та всі ()різні. У кон’юнктивній нормальній формі кожна з формул єелементарними диз’юнкціями.
Приклад 2.4. – приклад кон’юктивної нормальної форми, де– атомарні формули.,,– диз’юнкції відповідних літералів. ▲
Означення 2.5. k-кон’юнктивна нормальна форма – це кон’юнктивна нормальна форма, в якій кожна диз’юнкція містить рівно k літералів.
Приклад 2.5. Наступна формула записана в 2-КНФ:
.▲
Для того, щоб перевести формулу у кон’юнктивну нормальну форму необхідно виконати наступні перетворення:
Використати правила усунення імплікації та еквівалентності.
Застосувати закон подвійного заперечення та закони де Моргана, щоб перенести знак заперечення безпосередньо до атомарних формул.
Використати закони дистрибутивності для диз’юнкції відносно кон’юнкції (p(qr)=(pq)(pr)) для побудови кон’юнктивної нормальної форми.
Приклад 2.6. Звести до кон’юнктивної нормальної форми формулу .
Вилучення імплікації:
Застосування закону подвійного заперечення:
Використання закону дистрибутивності:
Отже, отримана є КНФ формули.▲
Досконала кон’юнктивна нормальна форма
Нехай складне висловлювання задане таблицею істинності. Виберемо інтерпретації, у яких значення висловлювання є «хиба» (F). Для кожної такої інтерпретації побудуємо диз’юнкцію атомарних формул або їх заперечень: якщо значення атома – F, то він входить у кон’юнкцію без заперечення, в іншому випадку – з. Побудовану КНФ називають досконалою кон’юнктивною нормальною формою (ДКНФ).
Приклад 2.7. Нехай формула задана таблицею істинності (таблиця 2.1). Побудувати ДКНФ.
Таблиця 2.1
Таблиця істинності для
p |
q |
r |
|
T |
T |
T |
F |
T |
T |
F |
T |
T |
F |
T |
T |
T |
F |
F |
T |
F |
T |
T |
F |
F |
T |
F |
T |
F |
F |
T |
T |
F |
F |
F |
F |
Позначимо всеможливі елментарні диз’юнкції трьох змінних: g1=,g2=,g3=,g4=,g5=,g6=,g7=,g8=та побудуємо таблицю істинності для всіхgi.
Таблиця 2.2
Таблиця істинності для елементарних диз’юнкцій
p |
q |
R |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
g8 |
T |
T |
T |
T |
T |
T |
T |
T |
T |
T |
F |
T |
T |
F |
T |
T |
T |
T |
F |
T |
T |
T |
T |
F |
T |
T |
T |
T |
T |
T |
F |
T |
T |
T |
F |
F |
T |
F |
T |
T |
T |
T |
T |
T |
F |
T |
T |
T |
T |
T |
T |
T |
T |
F |
T |
F |
T |
F |
T |
T |
F |
T |
T |
T |
T |
T |
F |
F |
T |
T |
T |
T |
F |
T |
T |
T |
T |
F |
F |
F |
F |
T |
T |
T |
T |
T |
T |
T |
Для отримання ДКНФ вибираємо інтерпретації, у яких f1 рівна FALSE (1, 5, 8 рядок).
Розглянемо першу з вибраних трьох інтерпретацій. Для заданої інтерпретації значення атомарних формул . З таблиці 2.2 видно, що елементарною диз’юнкцією, значення якої FALSE при відповідних значеннях атомарних формул, є g8=– тобто значення атомарних формул входять у диз’юнкцію із запереченням. Аналогічно елементарною диз’юнкцією для другої вибраної інтерпретації будеg7=, а для третьої –g1=.
Отже, формула є ДКНФ для.▲
Приклад 2.8. Побудувати висловлювання з елементів p, q , r, яке набуває значення F тільки у трьох випадках, коли r – істинне, а p і q – фальшиві, коли r і p – істинне, а q – фальшиве, p, r і q – фальшиві.
Таблиця 2.3
Таблиця істинності для f
p |
q |
r |
F |
F |
F |
F |
F |
F |
F |
T |
F |
F |
T |
F |
T |
F |
T |
T |
T |
T |
F |
F |
T |
T |
F |
T |
F |
T |
T |
F |
T |
T |
T |
T |
T |
Використаємо досконалу кон'юнктивну нормальну форму.
Для отримання ДКНФ вибираємо інтерпретації, у яких f1 рівна FALSE (1, 2, 6 рядок).
Розглянемо першу з вибраних трьох інтерпретацій. Для заданої інтерпретації значення атомарних формул , отже, у відповідну елементрану диз’юнкцію вони входять без заперечень, отже, отримаємо. Аналогічно елементарною диз’юнкцією для другої вибраної інтерпретації буде, а для третьої –.
Отже, наша формула f =.▲
Диз’юнктивна нормальна форма
Означення 2.6. Елементарною кон’юнкцією називається кон’юнкція, що містить будь-яку кількість літералів, де кожна атомарна формула зустрічається лише один раз.
Приклад 2.9 – елементарні кон’юнкції однієї змінної;
– елементарні кон’юнкції двох змінних;
– елементарні кон’юнкції трьох змінних;
– не є елементарними кон’юнкціями.
Означення 2.7. Формула f записана у диз’юнктивній нормальній формі (ДНФ), якщо вона має вигляд () та всі ()різні. У диз’юнктивній нормальній формі кожна з формул єелементарними кон’юнкціями.
Приклад 2.10. – приклад диз’юнктивної нормальної форми, де– атомарні формули.,,– кон’юнкції відповідних літералів.
Означення 2.8. k-диз’юнктивна нормальна форма – це диз’юнктивна нормальна форма, в якій кожна кон’юнкція містить рівно k літералів.
Приклад 2.11. Наступна формула записана в 2-ДНФ:
.▲
Для того, щоб перевести формулу у диз’юнктивну нормальну форму необхідно виконати наступні перетворення:
Використати правила усунення імплікації та еквівалентності.
Застосувати закон подвійного заперечення та закони де Моргана, щоб перенести знак заперечення безпосередньо до атомарних формул.
Використати закони дистрибутивності для кон’юнкції відносно диз’юнкції (p(qr)=(pq)(pr)) для побудови диз’юнктивної нормальної форми.
Приклад 2.12. Звести до диз’юнктивної нормальної форми формулу .
Вилучення імплікації:
Застосування закону де Моргана:
Використання закону подвійного заперечення:
Використання закону дистрибутивності:
Застосування закону асоціативності:
Використання закону ідемпотентності:
Отже, отримана є ДНФ формули.▲
Досконала диз’юнктивна нормальна форма
Нехай складне висловлювання задане таблицею істинності. Виберемо інтерпретації, у яких значення висловлювання є «істина» (Т). Для кожної такої інтерпретації побудуємо кон’юнкцію атомарних формул або їх заперечень: якщо значення атома – F, то він входить у кон’юнкцію із запереченням, в іншому випадку – без. Побудовану ДНФ називають досконалою диз’юнктивною нормальною формою (ДДНФ).
Приклад 2.13. Нехай формула задана таблицею істинності (табл. 2.3). Побудувати ДДНФ.
Таблиця 2.4
Таблиця істинності для
P |
q |
r |
|
T |
T |
T |
F |
T |
T |
F |
F |
T |
F |
T |
T |
T |
F |
F |
F |
F |
T |
T |
F |
F |
T |
F |
T |
F |
F |
T |
T |
F |
F |
F |
F |
Позначимо всеможливі елментарні кон’юнкції трьох змінних: g1=,g2=,g3=,g4=,g5=,g6=,g7=,g8=та побудуємо таблицю істинності для всіхgi.
Таблиця 2.5
Таблиця істинності для елементарних кон’юнкцій
p |
q |
r |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
g8 |
T |
T |
T |
T |
F |
F |
F |
F |
F |
F |
F |
T |
T |
F |
F |
F |
F |
T |
F |
F |
F |
F |
T |
F |
T |
F |
F |
T |
F |
F |
F |
F |
F |
T |
F |
F |
F |
F |
F |
F |
F |
F |
T |
F |
F |
T |
T |
F |
T |
F |
F |
F |
F |
F |
F |
F |
T |
F |
F |
F |
F |
F |
F |
T |
F |
F |
F |
F |
T |
F |
F |
F |
F |
T |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
T |
Для отримання ДДНФ вибираємо інтерпретації, у яких f1 рівна TRUE (3, 6, 7 рядок).
Розглянемо першу з вибраних трьох інтерпретацій. Для заданої інтерпретації значення атомарних формул . З таблиці 2.5 видно, що елементарною кон’юнкцією, значення якої TRUE при відповідних значеннях атомарних формул, є g3=– тобто значення атомарних формулвходять укон’юнкцію без заперечення, а значення атомарної формули входить у кон’юнкцію із запереченням. Аналогічно елементарною кон’юнкцією для другої вибраної інтерпретації будеg6=, а для третьої –g5=.
Отже, формула є ДДНФ для.▲
Приклад 2.14. Побудувати висловлювання з елементівp,q,r, яке набуває значенняTтільки тоді, колиp– істинне, аrіq– фальшиві, або у випадку колиp- фальш, аq,r– істинні.
Таблиця 2.6
Таблиця істинності для f
p |
q |
r |
f |
F |
F |
F |
F |
F |
F |
T |
F |
F |
T |
F |
F |
F |
T |
T |
T |
T |
F |
F |
T |
T |
F |
T |
F |
T |
T |
F |
F |
T |
T |
T |
F |
Використаємо досконалу диз'юнктивну нормальну форму.
Для отримання ДДНФ вибираємо інтерпретації, у яких f1 рівна TRUE (4,5 рядок).
Розглянемо першу з вибраних двох інтерпретацій. Для заданої інтерпретації значення атомарних формул , отже, у відповідну елементрану кон’юнкцію вони входять без заперечень, а атомарна формулавходить в відповідну елементарну кон’юнкцію із запереченням, тому отримаємо . Аналогічно елементарною кон’юнкцією для другої вибраної інтерпретації буде.
Отже, формула є ДДНФ для.▲
!Увага Під час вибору досконалої форми запису логічної функції варто пам’ятати, що ДКНФ є більш доцільною, якщо число наборів, де функція дорівнює TRUE, перевищує число наборів, де функція дорівнює FALSE. У протилежному варто розглядати ДДНФ.