СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ
Благодаря готовым учебным материалам для работы в классе и дистанционно
Скидки до 50 % на комплекты
только до
Готовые ключевые этапы урока всегда будут у вас под рукой
Организационный момент
Проверка знаний
Объяснение материала
Закрепление изученного
Итоги урока
Тема: «Алгебра высказываний».
Понятие высказывания. Под высказыванием понимается такое предложение, которое либо истинно, либо ложно. Высказывание что может быть одновременно и истинным, и ложным.
Первоначальная совокупность некоторых простейших высказываний, называемых элементарными или исходными, о каждом из которых точно известно, истинно оно или ложно. Высказывания обозначаются заглавными буквами латинского алфавита А, В, С, D, ... или теми же буквами с индексами внизу.
Пример:
А: «Москва – столица России»
В: «7
Обозначив истинное высказывание символом 1, а ложное - введем функцию λ, заданную на совокупности всех высказывании и принимающую значения в двухэлементном множестве {0, 1 } по следующему правилу:
λ = 1, если высказывание Р истинно,
0, если высказывание Р ложно.
Функция λ называется функцией истинности, а значение λ(Р) - логическим значением или значением истинности высказывания Р. Для приведенных высказываний имеем логические значения λ (А) = 1, λ (В) = 0.
Из элементарных высказываний с помощью операций над высказываниями или логических связок строят сложные высказывания.
2. Основные логические операции.
1) Отрицанием высказывания Р называется новое высказывание, обозначаемое Р (читается: «не Р» или «не верно, что Р»), которое истинно, если высказывание Р ложно, и ложно, если высказывание Р истинно. Таблица истинности операции отрицания:
| λ (Р) | λ (¬Р) |
| 0 | 1 |
| 1 | 0 |
Пример. Применим операцию отрицания к высказыванию А: «Москва – столица России». Данное отрицание можно читать так: «Неверно, что А» т. е. «Москва – столица России».
λ (¬А) = λ¬ (А) = ¬ 1 = 0, т.е. высказывание ¬ А ложно.
2) Конъюнкцией двух высказываний Р и Q называется новое высказывание, обозначаемое Р ˄ Q или Р & Q (читается: «Р и Q»), которое истинно лишь в единственном случае, когда истинны оба исходных высказывания Р и Q и ложно во всех остальных случаях. Таблица истинности операции конъюнкции:
| λ(Р) | λ (Q) | λ (Р ˄Q) |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Пример. Применим операцию конъюнкции к высказываниям А, и В. Получим высказывание А ˄ В: «Москва – столица России, и 7 λ(А˄В) = λ(А)˄λ(В) = 1˄0 = 0.
3) Дизъюнкцией двух высказываний Р и Q называется новое высказывание, обозначаемое Р v Q (читается «Р или Q»), которое истинно в тех случаях, когда хотя бы одно из высказываний Р или Q истинно, и ложно в единственном случае, когда оба высказывания Р и Q ложны. Таблица истинности операции дизъюнкции:
| λ(Р) | λ(Q) | λ(Р˄Q) |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Пример. Применим операцию дизъюнкцию к высказываниям А и В. Получим составное высказывание А v В: «Москва – столица России, или 7λ(А˅В)= λ(А)˅λ(В)=1˅0=1.
4) Импликацией двух высказываний Р и Q называется новое высказывание, обозначаемое Р → Q «читается: «если Р, то Q», или «из Р следует Q», или «Р влечет Q » или «Р достаточно для Q», или «О необходимо для Р»), которое ложно единственном случае, когда высказывание Р истинно, а Q ложно, а во всех остальных случаях — истинно. Таблица истинности операции импликации:
| λ(Р) | λ(Q) | λ (Р→Q) |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
В высказывании Р→Q высказывание Р называется посылкой или антецедентом, а высказывание Q - следствием или консеквентом.
Пример. Высказывание А →В: «Если Москва – столица России, то 7В)=λ(А)→λ(В)=1→0=0
5) Эквивалентностью двух высказываний Р и Q называется новое высказывание обозначаемое Р ↔ Q (читается: «Р эквивалентно Q», или «Р необходимо и достаточно для Q», или «Р тогда и только тогда, когда Q» или «Р, если и только если Q»), которое истинно в том и только в том случае, когда одновременно оба высказывания Р и Q либо истинны, либо ложны, а во всех остальных случаях - ложно. Таблица истинности операции эквивалентности:
| λ(P) | λ(Q) | λ(Р↔ Q) |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| | | |
Пример. Высказывание «Москва – столица России тогда и только тогда, когда 7А и В, ложно, так как
λ(А↔В)=λ(А)↔(В)=1↔0 = 0.
3. Формулы логики. С помощью логических операций из простейших высказываний можно строить высказывания более сложные. Например, можно построить такое высказывание: «Если Саратов находится на берегу Невы и все люди смертны, то
А. С. Пушкин - русский математик». Построенное высказывание символически записывается так: (А ˄В) → С. Конечно, оно звучит несколько странно, поскольку соединяет в себе столь разнородные понятия которые обычно существуют раздельно друг от друга. Но нас интересует не содержание этого высказывания, а его логическое значение. Оно может быть определено, исходя из логических значений исходных высказываний А, В, С и той схемы, по которой из исходных высказываний построено сложное высказывание. Так как λ(А) = 0, λ(В) = 1, λ(С) = 0, то находим:
λ[(А˄В)→С]=λ(А ˄ В)→λ(С)=( λ(А) ˄λ(В))→ λ(С)=(0˄1)→0=0→0=1 Итак, высказывание (А ˄ В) → С истинно.
Для конструирования данного сложного высказывания из простейших высказываний А, В и С нужно применить операцию конъюнкции к первым двум высказываниям, а затем к полученному высказыванию и к третьему исходному высказыванию применить операцию импликации. Это словесное описание схемы конструирования данного сложного высказывания можно заменить описанием символическим: (X ˄ Y) → Z, где X, Y, Z — некоторые символы (переменные), вместо которых можно под любые конкретные высказывания. Такая схема конструирования составного высказывания может быть применена к различным конкретным высказываниям, а не только к высказываниям А, В, С.
В формулу (X ˄ Y) → Z вместо переменных X, Y, Z можно подставлять конкретные высказывания, после чего вся формула будет превращаться в некоторое составное высказывание. Переменные, вместо которых можно подставлять высказывания, т.е. переменные, пробегающие множество высказываний, называют пропозициональными переменными, или высказывательными переменными, или переменными высказываниями. Будем обозначать пропозициональные переменные заглавными буквами латинского алфавита Р, Q, R, S, X, Y, Z или так же буквами с индексами. Теперь дадим точное определение формулы алгебры высказывание:
Каждая отдельно взятая пропозициональная переменная есть формула алгебры высказываний.
Если F1и F2 формулы алгебры высказываний, то выражения
¬F1 , (F1˄F2), (F1 v F2), (F1 → F2), (F1 ↔ F2) также являют формулами алгебры высказываний.
Никаких других формул алгебры высказываний, кроме получающихся согласно п. 1 и 2, нет.
Для каждой формулы должна существовать конечная последовательность всех ее подформула, т.е. такая конечная последовательность, которая начинается с входящей в данную формулу пропозициональных переменных, заканчивается самой этой формулой, и каждый член этой последовательности, не являющийся пропозициональной переменной, есть либо отрицание уже имеющегося члена этой последовательности, либо получается из двух уже имеющихся членов последовательности их соединением с помощью одного из знаков логических операций и заключением полученного выражения в скобки.
Такую последовательность всех подформул данной формулы иногда называют порождающей последовательностью для формулы. Наличие такой последовательности у логического выражения служит критерием того, что выражение является формулой. Это свойство отличает формулы.
Пример. (X ˄ ¬Y) → Z – формула, (X ¬Y) → Z – не является формулой.
4. Таблица истинности и методика её построения. Для каждой формулы F алгебры высказываний найти логические значения всех тех высказываний, в которые формула превращается при подстановке вместо всех ее пропозициональных переменных различных конкретных высказываний. При нахождении логических значений формулы, соответствующих всевозможным наборам значений ее пропозициональных переменных, удобной формой записи является табличная форма.
Пример. Составим таблицу истинности для формулы (Х→ Y) v (Y→ X).
| λ(Х) | λ(Y) | λ(Х→Y) | λ(Y→X) | λ((X→Y)v(Y→ X) |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 1 |
Первые два столбца и последний столбец составленной таблицы задают соответствия между логическими значениями исходных высказываний и логическим значением составного высказывания, получаемого по данной формуле. Эти три столбца и образуют таблицу истинности данной формулы. Остальные два столбца носят вспомогательный, промежуточный характер.
Пример. Составим таблицу истинности для формулы
F(P, Q, R) = (Р ˄ Q) → (Р↔¬R).
| λ(P) | λ(Q) | λ(R) | λ(Р ˄ Q) Q) | λ(¬R) Q | λ(P↔¬R) | λ(F) |
| 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 |
5. Законы логики. Тавтологии представляют собой схемы построения истинных высказываний, независимо от содержания и истинности составляющих высказываний. Так, если для установления того, истинны или нет высказывания «Саратов основан в 1590 году», «Солнце вращается вокруг Земли», необходимо обладать специальными знаниями или заглянуть в специальную литературу, то для выяснения значения истинности высказываний «Треугольник ABC прямоугольный, или треугольник ABC не прямоугольный», «Неверно, что информация о наследственных признаках хранится в генах, и эта информация в генах не хранится» уже не нужно обладать знаниями ни в математике, ни в генетике. Вывод об истинности последних высказываний делаем, исходя не из их содержания, а из их формы, структуры. Структура первого из последних высказываний выражается формулой Xv ¬Х, а второго — формулой ¬(Xv ¬Х). Легко убедиться в том, что обе эти формулы суть тавтологии. Данные формулы дают две схемы построения всегда истинных высказываний. И такова каждая формула, являющаяся тавтологией. Но главное значение тавтологий не в этом.
Основное значение тавтологий состоит в том, что некоторые из них предоставляют правильные способы построения умозаключений, т.е. такие способы, которые от истинных посылок всегда приводят к истинным выводам. Термин «тавтология» имеет греческое происхождение и означает повторение одного и того же определения, суждения иными, близкими по смыслу словами. В тавтологиях, относящихся к математической логике, заключительной логической связкой является эквивалентность ↔ . Например, тавтология (Р ˄ (Q v R))↔ ((Р ˄ Q) v (Р ˄ R)) выражает одинаковость форм (формул) в ее левой и правой частях, т. е. имеется в виду семантическая одинаковость, выражаемая разными словами — формами (формулами).
Основные тавтологии.
1) закон исключенного третьего Р v ¬Р;
2) закон отрицания противоречия ¬(Р ˄¬Р);
3) закон двойного отрицания ¬¬Р ↔ Р;
4) закон тождества Р→Р;
5) закон контрапозиции (Р → Q)↔(¬Q→¬Р);
6) закон силлогизма (правило цепного заключения)
((Р→Q) ˄ (Q→R)) →(Р→R);
7) закон противоположности (Р ↔ Q)↔(¬Р ↔¬Q);
8) правило добавления антецедента («истина из чего угодно») Р→ (Q →Р);
9) правило «из ложного что угодно» ¬Р→(Р→Q);
10) правило «модус поненс» (Р ˄ (Р→Q))→Q;
11) правило «модус толленс» ((Р →Q) ˄¬Q)→¬Р;
12) правило перестановки посылок (Р →(Q→ R))↔(Q→(Р→ R));
13) правило объединения (и разъединения) посылок (Р→( Q → R)) ↔((Р ˄ Q) → R);
14) правило разбора случаев ((Р→R) ˄ (Q → R)) ↔ ((Р v Q) → R);
15) правило приведения к абсурду ((¬Р→Q) ˄ (¬P→¬Q))→Р, (¬P→( Q ˄ ¬ Q)) →Р;
16) законы идемпотентности (Р ˄ Р) ↔Р, (Рv Р)↔Р;
17) законы упрощения (Р ˄ Q)→Р, Р→(Р v Q);
18) законы коммутативности (Р ˄ Q)↔(Q ˄ Р), (Р v Q)↔(Q v Р);
19) законы ассоциативности (Р˄(Q˄R))↔((Р˄Q)˄Р), (Рv(QvR))↔((Р v Q) v R);
20) законы дистрибутивности (Р˄(Q v R))↔((Р˄Q)v(Р˄R)),
(Pv(Q˄R))↔((РvQ)˄ (Рv R));
21) законы поглощения (Р ˄ (Р V Q) ↔ Р, (Р V (Р ˄ Q) ↔Р;
22) законы де Моргана ¬(Р ˄ Q)↔ (¬Р V ¬ Q), ¬(Р v Q)↔(¬Р ˄¬ Q);
23) (Р→(Q →R))→((Р → Q) →(Р→ R));
24) Р→(Q→ (Р ˄ Q));
25) (Р→R) → ((Q→ R)→((Р v Q )→Р));
26) (Р→ Q) →((Р→¬ Q) →¬Р));
27) (¬Q ˄ (Р → Q) → ¬Р;
28) (¬Р ˄ (Р v Q))→ Q
29) (Р →Q) →((Р v R) → (Q v R));
30) (Р →Q) →((Р ˄ R) → (Q ˄ R));
31) (Р→Q)→((Q→R)→(Р→R));
32) (Р → Q) v (Q→Р);
33) (¬Q →¬Р)→((¬ Q→Р) → Q);
34) ((Р →Q)˄(R→Q)↔((Рv R)→ Q);
35) ((Р→ Q) ˄(Р→R))↔(Р→( Q ˄ R));
36) Р ↔ Р;
37) (Р ↔ Q)↔(Q ↔ Р);
38) ((Р ↔ Q) ˄ (Q ↔ R)) → (Р ↔R).
39) (Р → Q)↔(¬Р v Q);
40) (Р→ Q)↔¬(P ˄ ¬Q);
41) (Р ˄ Q) ↔¬(¬Р v¬ Q);
42) (Р ˄ Q) ↔ ¬(P →¬ Q);
43) (Pv Q)↔¬(¬Р ˄ ¬ Q);
44) (Pv Q)↔ (¬Р→Q);
45) (Р↔ Q) ↔ ((Р→ Q) ˄ (Q → Р)).
6. Равносильные преобразования. Определение. Формулы F(X1, X 2, ..., Хп) и Н(X1, X 2, ..., Хп) алгебры высказываний называются равносильными (эквивалентными), если при любых значениях входящих в них пропозициональных переменных логические значения получающихся из формул F и Н высказываний совпадают. Для указания равносильности формул используют обозначениеFН .
Пример. Проверим равносильность формул ¬Х1, и ¬Х2˄(Х2 v ¬Х1). Для этого составим таблицы истинности обеих формул и убедимся, что значения истинности получающихся из них высказываний одинаковы для любых одинаковых наборов значений пропозициональных переменных X1 и Х2:
| λ(Х1) | λ(Х2) | λ(¬Х1) | λ(Х2 v ¬Х1) | λ(¬Х2˄ (Х2 v ¬Х1)) |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 |
| I | 1 | 0 | 1 | 0 |
Теорема (признак равносильности формул). Две формулы Fи Н алгебры высказываний равносильны тогда и только тогда, когда формула F↔Н является тавтологией:
F H=F↔H.
Отметим, что равносильность формул — это не (логическая) операция над формулами, а отношение между формулами логики высказываний. Это означает, что если Fи H — формулы, то выражение F H уже не является формулой алгебры высказываний; оно — утверждение о некотором взаимоотношении между формулами F и Н, лишь сокращенная (символическая) запись утверждения (высказывания) «F равносильна H» об этих формулах. Это утверждение либо истинно, либо ложно, т.е. F и H либо находятся в отношении равносильности, либо нет.
Следствие. Отношение равносильности между формулами алгебры высказываний:
а) рефлексивно: F F;
б) симметрично: если F1 F 2, то F2 F1,
в) транзитивно: если F1 F 2 и F 2 F 3, то F1 F3,
т. е. отношение равносильности является отношением эквивалентности.
Теорема. Справедливы следующие равносильности:
1) ¬¬РР;
2) Р→Q ¬Q→¬Р;
3) Р↔ Q¬Р↔¬ Q;
4) Р→(Q→R)(Р ˄ Q)→ R;
5)(Р → R) ˄ (Q→ R)(Р v Q) → R;
6) Р ˄ Р Р;
7) Р v Р Р;
8) Р ˄ QQ ˄ Р;
9) Р v Q Q v Р;
10) Р ˄ (Q ˄ R) (Р ˄ Q) ˄ R;
11) Р v (Q v R) (Р v Q) v R;
12) Р ˄ (Q v R) (Р ˄ Q) v (Р ˄ R);
13)Pv(Q ˄ R) (Pv Q) ˄ (Р v R);
14) Р ˄ (Р v Q) Р;
15) Р v(Р ˄ Q) Р;
16) ¬(P ˄ Q) ¬Pv¬ Q;
17) ¬(Рv Q) ¬Р ˄¬Q;
18) Р ↔ QQ↔Р;
19) Р→Q¬Р v Q;
20) Р→ Q¬(P ˄¬ Q);
21) Р ˄ Q ¬(Р → ¬ Q);
22) Р v Q ¬Р→ Q;
23) Р↔ Q(Р→ Q) ˄ (Q→Р);
24) Р v ¬P 1, Р ˄ ¬P0;
25) Pv11,P˄1P;
26) Р v0Р, Р˄00
Используя приведенные в теореме равносильности, можно от одной формулы переходить к равносильной ей формуле. Такой переход называется равносильным преобразованием исходной формулы. Равносильные преобразования формул применяются прежде всего для упрощения формул.
Пример. Упростим формулу
¬(Х1→¬X2) ˄¬(Х2→¬Х1)¬(¬X1 v ¬Х2)˄¬(¬X2v¬Х1) ¬(¬X1 v ¬Х2)˄¬(¬X1v¬Х2) ¬(¬X1 v ¬Х2) ¬¬X1 ˄ ¬¬Х2 Х1 ˄ Х2.
7. Нормальные формы для формул алгебры высказываний.
Для каждой формулы алгебры высказываний можно указать равносильную ей формулу, содержащую из логических связок лишь отрицание, конъюнкцию и дизъюнкцию. Например: XvY, (X˄¬Y)vY, (Х˄¬Y)v((Xv¬X) ˄Y).
Среди всевозможных выражений формулы через конъюнкцию, дизъюнкцию и отрицание некоторые играют важную роль как в алгебре высказываний, так и в ее приложениях. Рассмотрение таких выражений, называемых совершенными нормальными формами.
Конъюнктивным одночленом от переменных Х1, Х2, ..., Хп называется конъюнкция этих переменных их отрицаний. Здесь «и» употребляется в неисключающем смысле, т. е. в конъюнктивный одночлен может входить одновременно и переменная, и ее отрицание. Например: Х1˄Х2, Х1˄¬Х2˄Х3.
Дизъюнктивным одночленом от переменных Х1, Х2, ..., Хп называется дизъюнкция этих переменных их отрицаний. Здесь «или» употребляется в неисключающем смысле, т. е. в дизъюнктивный одночлен может входить одновременно и переменная, и ее отрицание. Например: Х1vХ2, Х1v¬Х2vХ3.
Дизъюнктивной нормальной формой называется дизъюнкция конъюнктивных одночленов. Например: (Х1˄Х2)v(Х1˄¬Х2˄Х3).
Конъюнктивной нормальной формой называется конъюнкция дизъюнктивных одночленов. Например: (Х1vХ2) ˄(Х1v¬Х2vХ3).
Всякая формула, обладающая как дизъюнктивной, так и конъюнктивной нормальной формой, используя законы де Моргана, свойство дистрибутивности.
Среди множества дизъюнктивных (равно как и конъюнктивных) нормальных форм, которыми обладает данная формула алгебры высказываний, существует уникальная форма: она единственна для данной формулы. Это так называемая совершенная дизъюнктивная нормальная форма (среди конъюнктивных форм - совершенная конъюнктивная нормальная форма).
Одночлен (конъюнктивный или дизъюнктивный) от переменных Х1, Х2, ..., Хn называется совершенным, если в него от каждой пары Xi, ¬Xi, (i = 1, 2,..., п) входит только один представитель (Xi или ¬Xi). Нормальная форма (дизъюнктивная или конъюнктивная) от переменных Х1, Х2, ..., Хп называется совершенной от этих переменных, если в нее входят лишь совершение одночлены (конъюнктивные или дизъюнктивные соответственно) от Х1, Х2, Хп.
Например: совершенная конъюнктивная нормальная форма от четырех переменных Х1, Х2, Х3, Х4: (X1v X2v X3 v Х4) ˄(¬X1v X2v ¬X3 v Х4);
совершенная дизъюнктивная нормальная форма: (Х˄У)v (¬Х˄У)v(Х˄¬У).
Введем обозначение, которое будет удобно в дальнейшем:
Хα = X, если α = 1,
¬X, если α = 0.
Легко проверить, что 00 = 1, 01 = 0, 1° = 0, 11 = 1, т. е. Хα = 1 тогда и только тогда, когда X = α, и Хα = 0 тогда и только тогда, Х≠α. Введем еще одно обозначение. Вместо дизъюнкции Х1 v Х2 v ... vХn будем писать Vni=1Xi. Например: V(α, β)(Xα ˄ Хβ) = (Х0˄У0) v (Х0 ˄ У1) v (X1 ˄ У0) v (X1 ˄ У1) =
(¬Х˄¬У) v (¬Х˄У) v (X ˄ ¬У) v (X˄ У).
Теорема (о представлении формул алгебры высказываний совершенными дизъюнктивными нормальными формулами). Каждая не тождественно ложная формула алгебры высказываний от п аргументов имеет единственную (с точностью до перестановки дизъюнктивных членов) совершенную дизъюнктивную нормальную форму.
Введем обозначение, которое будет удобно в дальнейшем:
βХ = X, если β = 0,
¬X, если β = 1.
Легко проверить, что 00=0, 10 =1, 01 =1, 11= 0, т. е. βХ = 1 тогда и только тогда, когда Х≠β и βХ= 0 тогда и только тогда, Х=β.
Введем еще одно обозначение. Вместо дизъюнкции Х1 v Х2 v ... vХn будем писать ˄ ni=1Xi.
Например: ˄ (α, β)(αХ v βХ) = (0Хv 0У) ˄ (0 Хv 1У) ˄ (1Хv 0У) ˄ (1Х v 1У) =
(Х v У) ˄ (Х v ¬У) ˄ (¬X v У) ˄ (¬X v ¬У).
Теорема (о представлении формул алгебры высказываний совершенными конъюнктивными нормальными формулами). Каждая формула алгебры высказываний от п переменных, не являющаяся тавтологией, имеет единственную (с точностью до перестановки конъюнктивных членов) совершенную конъюнктивную нормальную форму.
Эти два способа проистекают из двух способов задания формулы алгебры высказываний: с помощью таблицы ее значений или с помощью аналитической формы записи.
Правило (алгоритм) отыскания совершенной дизъюнктивной нормальной формы для данной формулы: нужно выбрать все те наборы значений ее переменных, на которых формула принимает значение 1, для каждого такого набopa выписать совершенный конъюнктивный одночлен, принимающий значение 1 на этом наборе и только на нем, полученные совершенные конъюнктивные одночлены соединить знаками дизъюнкциии.
Правило (алгоритм) отыскания совершенной конъюнктивной нормальной формы для данной формулы: нужно выбрать все те наборы значений ее переменных, на которых формула принимает значение 0, для каждого такого набора выписать совершенный дизъюнктивный одночлен, принимающий значение 0 на этом наборе и только на нем, полученные совершенные дизъюнктивные одночлены соединить знаками конъюнкции.
Пример. Пусть формула F(X, У, Z) задана следующей таблицей своих значений:
| X | У | Z | F(X, Y, Z) |
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
Таким образом, она принимает значения 1 на следующих наборах значений своих переменных (или при следующих конкретизациях): (0, 0, 0), (0, 1,0), (0, 1, 1), (1, 0, 0), (1, 1, 1). Запишем предыдущую формулу разложения в СДН-форму для случая п = 3 и применим ее в нашей ситуации:
F(X,Y,Z)=(Х0˄У0˄Z0) v (Х0˄ У1˄Z0) v (Х0˄У1˄Z1) v (X1˄У0˄Z°) v (Х1˄У1 ˄ Z1) = (¬Х˄¬У˄¬Z)v(¬Х˄У˄¬Z)v (¬Х˄Y˄Z)v(X˄¬У˄¬Z)v(Х˄ У˄ Z).
Пример. Для формулы F(X, У,Z) из предыдущего примера найдем ее СКН-форму. Для этого сначала отметим все те наборы значений переменных, на которых она принимает значение 0: (0, 0, 1), (1, 0, 1), (1, 1, 0). Теперь запишем формулу разложения в СКН-форму для случая п = 3 и применим ее в нашей ситуации:
F(X,Y,Z)=(0Х v 0У v 1Z) ˄ (1Х v 0У v 1Z) ˄ (1Х v 1У v 0Z) =
= (ХvУv¬Z) ˄ (¬Хv Уv ¬Z) ˄ (¬Хv ¬УvZ).
Второй способ приведения формул алгебры высказываний к с вершенной нормальной форме основан на равносильных преобразованиях данной формулы. В этом случае формула должна быть задана в аналитической форме. Для приведения формулы к совершенной нормальной форме нужно сначала привести ее к дизъюнктивной (или конъюнктивной) нормальной форме. Отметим, что одной из сфер применения нормальных форм является та, где требуется получить аналитическое выражение для формулы алгебры высказываний, которая задана своей таблицей значений (таблицей истинности).
Тема: «Булевы функции»
Понятие булевой функции. Булевой функцией от одного аргумента называется функция f, заданная на множестве из двух элементов и принимающая значения в том же двухэлементном множестве.
Элементы двухэлементного множества будем обозначать 0 и 1. Таким образом f: {0,1}→{0,1}. Нетрудно перечислить все булевы функции от одного аргумента:
| х | f0(х) | f1(х) | f2(х) | f3(х) |
| 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 1 |
Составленная таблица означает, что, например, булева функция f2 на аргументах 0 и 1 действует следующим образом: f2(0) =1 и f2(1) = 0. Всего имеется четыре различных булевых функций от одного аргумента:
f0(x) =0 — функция, тождественно равная 0 (тождественный нуль);
f1(x)=х — тождественная функция;
f2(х) = х — функция, называемая отрицанием;
f3(х) = 1 — функция, тождественно равная 1 (тождественная единица).
Булевой функцией от двух аргументов называется функция f, заданная на множестве {0,1} х {0,1} и принимающая значения в двухэлементном множестве {0,1}. Другими словами, булева функция от двух аргументов сопоставляет любой упорядоченной паре, составленой элементов 0 и 1 (а таких упорядоченных пар будет четыре), ниш о, либо 1.
Перечислим все возможные булевы функции от двух аргументов в форме следующей таблицы:
|
|
| 0 | · | →´ | х | ←′ | у | + | V | ↓ | ↔ | у′ | ← | х′ | → | | 1 |
| х | у | f0 | f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 | f11 | f12 | f13 | f14 | fl5 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
Заметим: функции пронумерованы так, что номер функции, записанный в двоичной системе счисления, дает последовательность значений соответствующей функции. Например, двоичная запись числа 13имеет вид: 1101. Соответствующая функция f13(x, у) принимай следующие значения: f3(0, 0)=1, f13(0,1)=1, f3(1, 0)=0, f3(1,1) = 1.
f0(x,у)=0 и f15(x,у)=1 - тождественный ноль и тождественная единица;
f1(x, у) называется конъюнкцией;
f14 (x, у)=х у, называется штрихом Шеффера или отрицание конъюнкции;
f7(x, у) = х v у называется дизъюнкцией;
f8(x, у) = х↓у, называется стрелкой Пирса (функция Вебба) или отрицание дизъюнкции;
f13(x, у)=х→у, называется импликацией;
f11(x, у) =х←у, называется антиимпликацией или обратной импликацией; потому что представляет собой импиликацию с посылкой у и следствием х.
f 9 (х, у) называется эквивалентностью и обозначается х ↔у
f 6(x, у), являющаяся отрицанием функции f 9 (х, у), называется сложением по модулю два, или суммой Жегалкина, и обозначается х+ у.
f l2(x, у) = х' – отрицание х.
f l0(x, у) = у' – отрицание у.
Теорема. Для булевых функций выполняются следующие равенства:
а)
(идемпотентность дизъюнкции и конъюнкции);
б)
(коммутативность дизъюнкции и конъюнкции);
в)
(ассоциативность дизъюнкции и конъюнкции);
г)
;
д)
;
е)
(дистрибутивность дизъюнкции относительно конъюнкции и дистрибутивность конъюнкции относительно дизъюнкции);
ж)
(законы поглощения);
з)
(законы де Моргана);
и)
;
к)
.
Теорема. Для булевых функций справедливы следующие равенства:
а)
;
б)
(коммутативность эквивалентности);
в)
(ассоциативность эквивалентности);
г)
;
д)
;
е)
;
ж)
;
з)
;
и)
;
к)
;
л)
;
м)
;
н)
.
Теорема. Справедливы следующие равенства, выражающие одни булевы функции через другие:
а)
;
б)
;
в) ;
г) ;
д) ;
е) x↔y=(x→y)∙(y→x);
ж) ;
з) ;
и) ;
к) ;
л) ;
м) .
2. Применение булевых функций к теории дискретных преобразователей информации.
Булевы функции широко применяются при описании работы дискретных управляющих систем (контактных схем, схем из функциональных элементов, логических сетей и т.д.), при исследовании некоторых электрических цепей, так называемых релейно-контактных схем.
Под релейно-контактной схемой понимается Устройство из проводников и двухпозиционных контактов. Оно может быть предназначено, например, для соединения (или разъединения) полюсов источника тока с некоторым потребителем. Контакты релейно-контактной схемы могут быть двух типов: замыкающие и размыкающие. Каждый контакт подключен к некоторому реле (переключателю). К одному реле может быть подключено несколько контактов — как замыкающих, так и размыкающих. Технически реле представляет собой катушку с металлическим сердечником (магнитопроводом), вблизи которого находится соответствующий контакт.
Когда через катушку пропускается электрический ток, металлический сердечник намагничивается и замыкает все находящиеся при нем замыкающие контакты. Одновременно все размыкающие контакты, относящиеся к данному реле, размыкаются. Поскольку замыкающие контакты при отсутствии в реле электрического тока разомкнуты, то они называются также нормально разомкнутыми. Аналогично, размыкающие контакты называются также нормально замкнутыми. При обесточивании обмоток реле (т.е. когда реле отключается) все замыкающие контакты снова размыкаются, а все размыкающие, замыкаются.
Каждому реле ставится в соответствие своя булева переменная х1, или х2, …или хn, которая принимает значение 1, когда реле срабатывает, и принимает значение 0 при отключении реле. На чертеже все замыкающие контакты, подключенные к реле х, обозначаются тем же символом х, а все размыкающие контакты, подключенные к этому реле, обозначаются отрицанием х/. Это означает, что при срабатывании реле х все его замыкающие контакты х проводят ток и им сопоставляется значение 1, а все размыкающие контакты х/ не проводят электрический ток и им сопоставляется значение 0. При отключенном реле создается противоположная ситуация: все его замыкающие контакты х разомкнуты, т. е. в этот момент им сопоставляется (переменная принимает) значение 0, а все его размыкающие контакты замкнуты, т. е. в этот момент им сопоставляется (другими словами, переменная х/ принимает) значение 1.
Всей релейно-контактной схеме тогда ставится в соответствие булева переменная у, зависящая от булевых переменных х1, х2, … хn, сопоставленным тем реле, которые участвуют в схеме. Если при данном наборе состояний реле х1, х2, … хn (некоторые из этих реле находятся в рабочем состоянии под током, остальные отключены, т.е. "обесточены") вся релейно-контактная схема проводит электрический ток, то переменной ставится в соответствие (другими словами, переменная принимает) значение 1. Если же при этом наборе состояний реле х1, х2, … хn схема не проводит электрический ток, то считаем, что переменная у принимает значение 0. Поскольку каждый набор состояний реле х1, х2, … хn характеризуется набором, составленным из нулей и единиц и имеющим длину n, то данная релейно-контактная схема определяет некоторое правило, по которому каждому такому набору длины n, составленному из нулей и единиц, сопоставляется либо 0, либо 1. Таким образом, каждая релейно-контактная схема, в которой занято независимых реле (контактов в ней может быть n или больше), определяет некоторую булеву функцию y от n аргументов. Она принимает значение 1 на тех и только тех наборах значений аргументов х1, х2, … хn, которые соответствуют тем состояниям реле , при которых данная схема проводит электрический ток. Такая булева функция y=f(х1, х2, … хn ) называется функцией проводимости данной релейно-контактной схемы.
Таким образом, теория булевых функций предоставляет математические модели реальных физических релейно-контактных схем.
Рассмотрим некоторые релейно-контактные схемы и найдем их функции проводимости. Первая схема состоит из двух последовательно соединенных контактов x и y, т. е. контактов, связанных с двумя независимыми реле x и y, каждое из которых срабатывает независимо от другого:
Ясно, что данная схема проводит электрический ток тогда и только тогда, когда оба контакта x и y замкнуты, т. е. только тогда, когда оба переменных x и y принимают значение 1. Булева функция от двух аргументов x и y, удовлетворяющая такому условию, нам хорошо известна. Это конъюнкция x∙y. Таким образом, функцией проводимости релейно-контактной схемы, состоящей из двух последовательно соединенных контактов x и y, является конъюнкция. Говорят, что последовательное соединение двух контактов реализует конъюнкцию соответствующих этим контактам булевых переменных.
Вторая релейно-контактная схема состоит из двух параллельно соединенных контактов x и y:
Ясно, что эта схема проводит электрический ток в том и только в том случае, когда по меньшей мере один из контактов (х или у) замкнут, т.е. лишь в случае, когда хотя бы одна из булевых переменных ( х или у) принимает значение 1. Булева функция от двух аргументов x и y , удовлетворяющая этому условию, также хорошо нам известна. Это, дизъюнкция. Таким образом, функцией проводимости релейно-контактной схемы, состоящей из двух параллельно соединенных контактов x и y, является дизъюнкция. Говорят, что параллельное соединение двух контактов реализует дизъюнкцию соответствующих этим контактам булевых переменных.
Итак, с помощью релейно-контактных схем можно реализовывать булевы функции: конъюнкцию, дизъюнкцию и отрицание. Поскольку всякая булева функция может быть выражена через конъюнкцию, дизъюнкцию и отрицание, причем отрицание стоит лишь непосредственно около переменных и не стоит ни около каких внутренних скобок, а конъюнкция, дизъюнкция и отрицание, как показано только что, реализуются на релейно-контактных схемах, то и всякая булева функция может быть реализована с помощью релейно-контактной схемы, т. е. может быть построена такая схема, для которой данная булева функция служит функцией проводимости.
Реализуем, например, в виде релейно-контактных схем булевы функции — импликацию и эквивалентность. Для этого выразим их через конъюнкцию, дизъюнкцию и отрицание. Такие выражения известны: , x↔y=(x→y)∙(y→x)=(х/˅у) ∙(у/˅х). Предлагается самостоятельно нарисовать схему, реализующую функцию x→y. Релейно-контактная схема, реализующая функцию x↔y, будет состоять из двух последовательно соединенных ветвей, первая из которых реализует булеву функцию (х/˅у), а вторая — булеву функцию (у/˅х). В свою очередь, первая из ветвей будет состоять из двух параллельных участков, один из которых содержит контакт х/, а второй — контакт у. Аналогично, вторая ветвь также будет состоять из двух параллельных участков, один из которых содержит контакт х, а другой — контакт у/. Изображаем полученную релейно-контактную схему (чтобы упростить рисунки, не будем изображать сами контакты, а ограничимся символом булевой переменной, соответствующей данному контакту):
Составление релейно-контактных схем с заданными условиями работы называется задачей синтеза релейно-контактных схем и является первой важной задачей, состоящей в том, что требуется построить схему, которая проводила бы электрический ток лишь при вполне определенных задаваемых условиях.
Естественно было бы выбирать для каждой булевой функции самую простую или одну из самых простых реализующих ее релейно-контактных схем. Поэтому упрощение релейно-контактных схем называется задачей анализа таких схем и является второй важной задачей теории релейно-контактных схем. Две релейно-контактные схемы, составленные из одних и тех же реле, называются равносильными, если одна из них проводит ток тогда и только тогда, когда другая схема проводит ток. Другими словами, две схемы, составленные из одних и тех же реле, равносильны, если они обладают одинаковыми функциями проводимости, зависящими от одних и тех же переменных. Из двух равносильных схем более простой считается та, которая содержит меньшее число контактов. Задача упрощения релейно-контактной схемы состоит в нахождении более простой равносильной ей схемы. Обычно она решается следующим образом. Для данной релейно-контактной схемы записывается ее функция проводимости. Затем эта функция с помощью тождественных преобразований, использующих известные свойства булевых функций, упрощается, т.е. сводится к функции, имеющей меньшее число вхождений переменных, нежели исходная функция. Наконец строится релейно-контактная схема, отвечающая упрощенной булевой функции.
Тема: «Предикаты»
1. Понятие предиката. Логические операции над предикатами.
В высказывании все четко: это — конкретное утверждение о конкретных объектах — истинное или ложное. Предикат — предложение, похожее на высказывание, но все же им не являющееся: о нем нельзя судить, истинно оно или ложно. Дадим точное определение.
Определенным на множествах М1, М2, ..., Мп п-местным предикатом называется предложение, содержащее п переменных х1, х2, ..., хп, превращающееся в высказывание при подстановке вместо этих переменных любых конкретных элементов из множеств М1, М2, ..., Мп соответственно.
Для п -местного предиката будем использовать обозначение Р(х1, х2, ..., хп). Переменные х1, х2, хп называют предметными, а элементы множеств М1, М2, ..., Мп, которые эти переменные пробегают, — конкретными предметами. Всякий п-местный предикат Р(х1, х2,… хп), определенный на множествах М1, М2, ..., Мп представляет собой функцию п аргументов, заданную на указанных множествах и принимающую значения в множестве всех высказываний. Поэтому предикат называют также функцией-высказыванием.
Например. Предложение «Река х впадает в озеро Байкал» является одноместным предикатом, определенным над множеством всех названий рек. Подставив вместо предметной переменной х название «Баргузин», получим высказывание «Река Баргузин впадает в озеро Байкал». Это высказывание истинно. Поставив вместо предметной переменной х название «Днепр», получим ложное высказывание «Река Днепр впадает в озеро Байкал».
Отметим еще один подход к понятию предиката. Как отмечалось, предикат Р(х1, х2,… хп), определенный на множествах М1, М2, ..., Мп, превращается в конкретное высказывание Р(а1, а2, ..., ап), если вместо предметных переменных х1, х2,… хп подставить в него конкретные предметы (элементы а1, а2, ..., ап) из множеств М1, М2, ..., Мп соответственно. Это высказывание может быть либо истинным, либо ложным, т.е. его логическое значение равно 1 или 0. Следовательно, данный предикат определяет функцию п аргументов, заданную на множествах М1, М2, ..., Мп и принимающую значение в двухэлементном множестве {0, 1}. Иногда эту функцию и называют предикатом.
Предикат Р(х1, х2,… хп), заданный на множествах М1, М2, ..., Мп, называется:
а) тождественно истинным, если при любой подстановке вместо
переменных х1, х2,… хп любых конкретных предметов а1, а2, ..., ап из множеств М1, М2, ..., Мп соответственно он превращается в истинное высказывание Р(а1, а2, ..., ап);
б) тождественно ложным, если при любой подстановке вместо переменных х1, х2,… хп любых конкретных предметов из множеств М1, М2, ..., Мп соответственно он превращается в ложное высказывание;
в) выполнимым (опровержимым), если существует по меньшей мере один набор конкретных предметов а1, а2, ..., ап из множеств М1, М2, ..., Мп соответственно, при подстановке которых вместо соответствующих предметных переменных в предикат Р(х1, х2,… хп) последний превратится в истинное (ложное) высказывание Р(а1, а2, ..., ап).
Например. Одноместный предикат «Город х расположен на берегу реки Волги», определенный на множестве названий городов, является выполнимым, потому что существуют города, названия которых превращают данный предикат в истинное высказывание, или, иначе, удовлетворяют этому предикату (например, Ульяновск, Саратов и т. д.). Но данный предикат не будет тождественно истинным, потому что существуют города, названия которых превращают его в ложное высказывание, или, иначе, не удовлетворяют этому предикату (например, Прага, Якутск и т.д.). Этот же предикат являет собой пример опровержимого, но не тождественно ложного предиката.
Логические операции
1) Отрицанием п-местного предиката Р(х1, х2, ..., хп), определенного на множествах М1, М2,…, Мп, называется новый п-местный предикат, определенный на тех же множествах, обозначаемый ¬Р (х1, х2, ..., хп) (читается: «неверно, что Р(х1, х2, ..., хп)»), который превращается в истинное высказывание при всех тех и только тех значениях предметных переменных, при которых исходное высказывание превращается в ложное высказывание.
Например, нетрудно понять, что отрицанием одноместного предиката
«х ≤3», определенного на множестве R, является одноместный предикат
«х 3», определенный на том же множестве R. Отрицанием предиката «Река х впадает в озеро Байкал» является предикат «Река х не впадает в озеро Байкал» (оба одноместных предиката определены на множестве названий рек).
2) Конъюнкцией п- местного предиката Р(х1, х2, ..., хп), определенного на множествах М1, М2,…, Мп, и т-местного предиката Q(y1, у2, …, ут), определенный на множествах N1, N2, ..., Nm, называется новый (п + т) -местным предикат, определенный на множествах М1, М2,…, Мп, N1, N2, ..., Nm, обозначаемый Р(х1, х2, ..., хп) ^ Q(y1, у2, …, ут) (читается «Р(х1, х2, ..., хп) и Q(y1, у2, …, ут)»), который превращается в истинное высказывание при всех тех и только тех значениях предметных переменных, при которых оба исходных предиката превышаются в истинные высказывания.
Например, конъюнкцией двух одноместных предикатов «х -3» и «х3», определенных на R, будет одноместный предикат «(х -3)^(х х 3», который равносилен предикату «|х|
3) Дизъюнкцией п-местного предиката Р(х1, х2, ..., хп), определенного на множествах М1, М2,…, Мп, и п-местного предиката Q(y1, у2, ..., ут), определенного на множествах N1, N2, ..., Nm, называется новый (п + т)-местный предикат, определенный на множествах М1, М2,…, Мп, N1, N2, ..., Nm, обозначаемый Р(х1, х2, ..., хп) ᴠ Q(y1, у2, …, ут) (читается «Р(х1, х2, ..., хп) или Q(y1, у2, …, ут)»), который превращается в истинное высказывание при всех тех и только тех значениях предметных переменных, при которых в истинное высказывание превращается по меньшей мере один из исходных предикатов.
Например, дизъюнкцией двух одноместных предикатов «х — четное число» и «х — простое число», определенных на N, является одноместный предикат, определенный на N: «х — четное или простое число».
4) Импликация Р(х1, х2,…, хп) → Q(y1, у2, ..., ут) определяется как такой предикат, что для любых предметов а1€М1, а2€М2, ..., ап€ Мп, и b1€N1, b2€N2, ..., bm€Nm высказывание Р(а1, а2,…, ап) → Q(b 1, b 2, ..., b т) является импликацией высказываний Р(а1, а2,…,ап) и Q(b 1, b 2, ..., b т). Аналогично определяется эквивалентность двух предикатов. Нетрудно проверить, что импликация двух предикатов, зависящих от одних и тех же переменных, есть тождественно истинный предикат тогда и только тогда, когда ее заключение является следствием посылки, а эквивалентность тождественно истинна, если и только если исходные предикаты равносильны. Свойства этих операций над предикатами, подобно свойствам операций отрицания, конъюнкции и дизъюнкции над предикатами, получаются из соответствующих тавтологий
2. Кванторы существования и общности.
Известно, что для превращения одноместного предиката в высказывание нужно подставить вместо его переменной какой-нибудь конкретный предмет из области задания предиката. Имеется еще один способ для такого превращения - это применение к предикату операций связывания квантором общности или квантором существования. Каждая из этих операций ставит в соответствие одноместному предикату некоторое высказывание, истинное или ложное в зависимости от исходного предиката.
Операцией связывания квантором общности называется правило, по которому каждому одноместному предикату Р(х), определенному на множестве М, сопоставляется высказывание, обозначаемое ( x)(P(x)) (читается: «для всякого [значения] х Р(х) [истинное высказывание]»), которое истинно в том н только в том случае, когда предикат Р(х) тождественно истинен, и ложно в противном случае.
Высказывание ( x)(P(x)) называется универсальным высказыванием для предиката Р(х). Символ
происходит от первой буквы англ. all — «все». Сам символ (
x) также называют квантором общности по переменной х.
Например, рассмотрим два одноместных предиката на множестве N:«1 x)(l≤х) — «для всякого х число 1 не превосходит х». Второй предикат опровержим, поэтому операция связывания квантором общности, примененная к нему, дает ложное высказывание: ( x)(x|30) — «для любого х число х является делителем числа 30».
Операцией связывания квантором существования называется правило, по которому каждому одноместному предикату Р(х), определенному на множестве М, ставится в соответствие высказывание, обозначаемое ( х)(Р(х)) (читается: «существует[значение] х, такое, что Р(х) [истинное высказывание]»), которое ложно в том и только в том случае, когда Р(х) тождественно ложен, и истинно в противном случае.
При чтении высказывания ( х)(Р(х)) слова в квадратных скобках могут опускаться. Высказывание (
x)(Р(x)) называется экзистенциальным высказыванием для предиката Р(х). Символ
происходит от первой буквы англ. exist — «существовать». Сам символ
х также называют квантором существования по переменной х.
Например, рассмотрим два одноместных предиката, определенных на множестве N: «х = х+ 1» и «х| 30». Первый предикат тождественно ложный, поэтому применение к нему операции связывания квантором существования дает ложное высказывание: ( х)(х = х+ 1) — «существует натуральное число, равное себе плюс 1». Второй предикат выполним, поэтому операция связывания квантором существования, примененная к нему, дает истинное высказывание: (
х)(х|30) — «существует натуральное число, делящее число 30».
Подобно выражению ( x)(Р(x)), в выражении (
х)(Р(х)) переменная х также перестает быть переменной в обычном смысле слова: это — связанная переменная.
В математике часто встречаются выражения вида «по меньшей мере п» («хотя бы п»), «не более чем п», «п и только п» («ровно п», «точно л»), где п — натуральное число. Эти выражения называют численными кванторами. Они имеют чисто логический смысл, потому что их можно выразить без числительных на языке кванторов общности и существования, без логических операций над предикатами и знака = , обозначающего тождество (совпадение) объектов. Рассмотрим ряд случаев.
п = 1. Предложение «По меньшей мере один объект обладает свойством Р» имеет тот же смысл, что и предложение «Существует объект, обладающий свойством Р», т.е. ( х)(Р(х)). Далее, предложение «Не более чем один объект обладает свойством Р» равнозначно по смыслу предложению «Если есть объекты, обладающие свойством Р, то они совпадают», т.е.(
x)(
у)[(Р(x)^Р(у)) →х = у]. Наконец, предложение «Один и только один объект обладает свойством Р» равнозначно конъюнкции высказываний:
( х)(Р(х))^(
x)(
y)[(P(x)^(Р(у))→х = у]. Сопоставление одноместному предикату Р(х) высказывания носит название операции связывания квантором существования и единственности, а само высказывание иногда обозначают так: (
!х)(Р(х)). Символ
!х называют квантором существования и единственности по переменной х.
п = 2. Предложение «По меньшей мере два объекта обладают свойством Р» означает то же, что и предложение «Существуют два различных объекта, обладающих свойством Р», т.е.
( х)(
у)(Р(х)^Р(у)^х≠у). Далее, предложение «Не более чем два объекта обладают свойством Р» равнозначно по смыслу предложению «Каковы бы ни были объекты х, у, z, если все они обладают свойством Р, то по меньшей мере два из них совпадают», которое символически записывается так:
( x)(
у)(
z)[(Р(x)^Р(у)^P(z))→(x = yvx = zvy=z]. Наконец, предложение «Два и только два объекта обладают свойством Р» совпадает по смыслу с конъюнкцией высказываний. Совершенно аналогично выражаются через обычные кванторы и логические операции численные кванторы при п 2.
Нередки в математической практике обороты следующего вида: «Всякий объект, обладающий свойством Р, обладает также и свойством Q» и «Среди объектов, обладающих свойством Р, существует объект, обладающий также и свойством Q». Первое высказывание равнозначно по смыслу высказыванию «Всякий объект, если он обладает свойством Р, то он обладает и свойством Q», которое на языке логики предикатов записывается так: ( х)(Р(х)→ Q (х)).
Сопоставление двум данным одноместным предикатам Р(х) и Q(x) высказывания носит название операции связывания ограниченным квантором общности, а само высказывание иногда обозначают ( P(x))( Q (x)).
Символ Р(х) также называют ограниченным квантором общности.
Например, высказывание «Для всякого х 1 справедливо ln х 0» на языке логики предикатов записывается как ( x)(x 1→ ln х 0), а с использованием ограниченного квантора общности записывается в виде (
x 1)( ln х 0).
Второе из приведенных в начале настоящего пункта высказываний равнозначно по смыслу высказыванию «Существует объект, обладающий свойством Р и обладающий свойством Q», которое на языке логики предикатов записывается так: ( х)(Р(х)^ Q(х))
Сопоставление двум данным одноместным предикатам Р(х) и Q(x) высказывания носит название операции связывания ограниченным квантором существования, а само высказывание иногда обозначается ( P(x))(Q(x)).
Символ Р(х) также называют ограниченным квантором существования.
Например, (ложное) высказывание «Существует действительное число, квадрат которого равен -1» на языке логики предикатов запишется так:
( х)(х€R ^ х2 = -1), или с использованием ограниченного квантора существования запишется в виде (
х€R)(x2 = -1).
3. Формулы и тавтологии логики предикатов.
Это понятие вводится аналогично понятию формулы алгебры высказываний. Сначала задается алфавит символов, из которых будут составляться формулы:
предметные переменные: х, у, z, хi, yi, zi, (i € N);
нульместные предикатные переменные: Р, Q, R, Pi, Qi, Ri (i€N);
n-местные (n 1) предикатные переменные: Р( , ..., ), Q( , ..., ), R( , ..., ), Рi{ , ..., ), Qi( , ..., ), Ri( , ..., ) (i€N) с указанием числа свободных мест в них;
символы логических операций: ¬, ^, v, →, ↔;
кванторы: ,
;
вспомогательные символы: ( , ) — скобки; , — запятая.
Формулы логики предикатов:
1) каждая нуль-местная предикатная переменная есть формула;
если Р( , ..., ) — п-местная предикатная переменная, то Р(х1,… хn) есть формула, в которой все предметные переменные х1,..., хп свободны;
если F — формула, то ¬F — также формула. Свободные (связанные) предметные переменные в формуле ¬F те и только те, которые являются свободными (связанными) в F;
если F1, F2 — формулы и если предметные переменные, входящие одновременно в обе эти формулы, свободны в каждой из них, то выражения (F1 ^F2), (F1 v F2), (F1 → F2), (F1↔ F2) также являются формулами. При этом предметные переменные, свободные (связанные) хотя бы в одной из формул F1, F2, называются свободными (связанными) и в новых формулах;
если F — формула и х — предметная переменная, входящая в F свободно, то выражения ( x)(F) и (
х)(F) также являются формулами, в которых переменная х связанная, а все остальные предметные переменные, входящие в формулу F свободно или связанно, остаются и в новых формулах соответственно такими же;
никаких других формул логики предикатов, кроме получающихся согласно пп. 1- 5, нет.
Формулы, определенные в п. 1 и п. 2, называются элементарными (или атомарными). Формулы, не являющиеся элементарными, называются составными.
Например, Р, Q(x, у, z), R(x1, х2) — элементарные формулы, а
( у)(Р(х, у, z)), (
х)(
у)(Р(х, у, z)), (((
x)(P(x))^Q)→¬(
у) (R(x, у))) — составные формулы.
Классификационные определения для формул логики предикатов.
1). Формула логики предикатов называется выполнимой (опровержимой) на множестве М, если при некоторой подстановке вместо предикатных переменных конкретных предикатов, заданных на этом множестве, она превращается в выполнимый (опровержимый) предикат.
2). Формула логики предикатов называется тождественно истинной (тождественно ложной) на множестве М, если при всякой подстановке вместо предикатных переменных любых конкретных предикатов, заданных на этом множестве, она превращается в тождественно истинный (тождественно ложный) предикат.
3). Формула логики предикатов называется общезначимой, или тавтологией (тождественно ложной или противоречием), если при всякой подстановке вместо предикатных переменных любых конкретных предикатов, заданных на каких угодно множествах, она превращается в тождественно истинный (тождественно ложный) предикат. (Тот факт, что формула F является тавтологией, обозначается, как и в алгебре высказываний, F.)
Теорема 1. Всякая формула, получающаяся из тавтологии алгебры высказываний заменой входящих в нее пропозициональных переменных произвольными предикатными переменными, является тавтологией логики предикатов.
Теорема 2. (законы де Моргана для кванторов). Следующие формулы логики предикатов являются тавтологиями:
а) ¬( х)(Р(х))↔(
x)(¬Р(x));
б) ¬( х)(Р(х))↔(
x)(¬Р(x)).
Следствие (выражение кванторов одного через другой). Следующие формулы логики предикатов являются тавтологиями:
а) ¬( х)(Р(х))↔¬(
x)(¬Р(x));
б) ¬( х)(Р(х))↔¬(
x)(¬Р(x)).
Теорема 3 (законы пронесения кванторов через конъюнкцию и дизъюнкцию). Следующие формулы логики предикатов являются тавтологиями:
а) ( x)(P(x) ^Q(x))↔(
x)(P(x))^(
x)(Q(x));
б) ( х)(Р(х) vQ(x))↔(
x)(jP(x))v(
х)( Q (х));
в) ( x)(Р(x) vQ) ↔(
x)(P(x)) vQ;
г) ( х)(Р(х)^Q)↔(
х)(Р(х))^Q.
Теорема 4. (законы пронесения кванторов через импликацию). Следующие формулы логики предикатов являются тавтологиями:
а) ( x)(P(x)→Q)↔((
х)(Р(х))→ Q);
б) ( х)(Р(х)→ Q)↔ ((
x)(P(x))→ Q;
в) ( x)( Q→Р(х))↔(Q→(
x)(P(x)));
г) ( x)(Q→Р(х))↔(Q → (
х)(Р(х))).
Теорема 5. (законы удаления квантора общности и введения квантора существования). Следующие формулы логики предикатов являются тавтологиями:
а) ( x)(Р(x))→Р(у);
б) Р(у)→( х)(Р(х)).
Теорема 6. (законы коммутативности для кванторов). Следующие формулы логики предикатов являются тавтологиями:
а) ( x)(
y)(P(x,у))
(
y)(
x)(P(x, у));
б) ( х)(
у)(Р(х,у)) ↔ (
у)(
х)(Р(х, у));
в) ( y)(
x)(P(x,у)) →(
x)(
у)(Р(х, у)).
Тема: «Элементы теории алгоритмов»
1. Интуитивное представление об алгоритмах.
Понятие алгоритма стихийно формировалось с древнейших времен. Современный человек понимает под алгоритмом четкую систему инструкций о выполнении в определенном порядке некоторых действий для решения всех задач какого-то данного класса.
Многочисленные и разнообразные алгоритмы окружают нас буквально во всех сферах жизни и деятельности. Многие наши действия доведены до бессознательного автоматизма, мы порой и не осознаем, что они регламентированы определенным алгоритмом — четкой системой инструкций. Например, наши действия при входе в магазин «Универсам» (сдать свою сумку, получить корзину с номером, пройти в торговый зал, заполнить корзину продуктами, оплатить покупку в кассе, предъявить чек контролеру, взять свою сумку, переложить в нее продукты, сдать корзину, покинуть магазин). Второй пример — приготовление манной каши (500 мл молока довести до кипения, при тщательном помешивании засыпать 100 г манной крупы, при помешивании довести до кипения и варить 10 минут). Автоматизм выполнения этих и многих других действий не позволяет нам осознавать их алгоритмическую сущность.
Но есть немало таких действий, выполняя которые, мы тщательно следуем той или иной инструкции. Это главным образом непривычные действия, профессионально не свойственные нам. Например, если вы фотографируете один-два раза в год, то, купив проявитель для пленки, будете весьма тщательно следовать инструкции (алгоритму) по его приготовлению: «Содержимое большого пакета растворить в 350 мл воды при температуре 18— 20 °С. Там же растворить содержимое малого пакета. Объем раствора довести до 500 мл. Раствор профильтровать. Проявлять 3 — 4 роликовых фотопленки». Второй пример: если вы никогда раньше не пекли торт, то, получив рецепт (алгоритм) его приготовления, постараетесь выполнить в указанной последовательности все d o предписания.
Большое количество алгоритмов встречается при изучении математики буквально с первых классов школы. Это прежде всего алгоритмы выполнения четырех арифметических действий над различными числами — натуральными, целыми, дробными, комплексными. Вот пример такого алгоритма: «Чтобы из одной десятичной дроби вычесть другую, надо: 1) уравнять число знаков после запятой в уменьшаемом и вычитаемом; 2) записать вычитаемое под уменьшаемым так, чтобы запятая оказалась под запятой; 3) произвести вычитание так, как вычитают натуральные числа; 4) поставить в полученной разности запятую под запятыми в уменьшаемом и вычитаемом».
Одним словом, алгоритмы широко распространены как в практике, так и в науке и требуют более внимательного к себе отношения и тщательного изучения методами математической науки.
Каждый алгоритм предполагает наличие некоторых начальных, или исходных, данных, а в результате применения приводит к получению определенного искомого результата. Например, в алгоритме с проявителем начальные данные — содержимое большого и малого пакетов, вода. Искомый результат — готовый к употреблению проявитель для пленки. При вычислении ранга матрицы начальными данными служит прямоугольная таблица, составленная из т* п рациональных чисел, результат — натуральное число, являющееся рангом данной матрицы.
Применение каждого алгоритма осуществляется путем выполнения дискретной цепочки (последовательности) неких элементарных действий. Эти действия называют шагами, а процесс их выполнения называют алгоритмическим процессом. Таким образом, отмечается свойство дискретности алгоритма.
Существенной чертой алгоритма является его массовый характер, т.е. возможность применять его к обширному классу начальных данных, возможность достаточно широко эти начальные данные варьировать. Например, задача нахождения наибольшего общего делителя чисел 4 и 6 есть единичная проблема (можно решить ее и без применения алгоритма Евклида), но задача нахождения наибольшего общего делителя произвольных натуральных чисел т и п — уже проблема массовая. Суть алгоритма Евклида состоит в том, что он приводит к желаемому результату вне зависимости от выбора конкретной пары натуральных чисел, в то время как при решении указанной единичной проблемы можно предложить такой способ, который окажется неприменимым для другой пары натуральных чисел.
Непременным условием, которому удовлетворяет алгоритм, является его детерминированность, или определенность. Это означает, что предписания алгоритма с равным успехом могут быть выполнены любым другим человеком и в любое другое время, причем результат получится тот же самый.
Говоря о начальных данных для алгоритма, имеют в виду так называемые допустимые начальные данные, т. е. такие начальные данные, которые сформулированы в терминах данного алгоритма. Так, к числу допустимых начальных данных для алгоритма варки манной каши никак не отнесешь элементы множества натуральных чисел, а к числу начальных данных алгоритма Евклида — молоко и манную крупу (или даже комплексные числа).
Среди допустимых начальных данных для алгоритма могут быть такие, к которым он применим, т.е. отправляясь от которых можно получить искомый результат, а могут быть и такие, к которым данный алгоритм неприменим,
т. е. отправляясь от которых искомого результата получить нельзя. Неприменимость алгоритма к допустимым начальным данным может заключаться либо в том, что алгоритмический процесс никогда не оканчивается (в этом случае говорят, что он бесконечен), либо в том, что его выполнение во время одного из шагов наталкивается на препятствие, заходит в тупик (в этом случае говорят, что он безрезультатно обрывается).
Итак, подводя итоги обсуждению характерных свойств и особенностей алгоритма, можем сформулировать следующее интуитивно описательное определение этого понятия.
Под алгоритмом понимается четкая система инструкций, определяющая дискретный детерминированный процесс, ведущий от варьируемых начальных данных (входов) к искомому результату (выходу), если таковой существует, через конечное число тактов работы алгоритма; если же искомого результата не существует, то вычислительный процесс либо никогда не оканчивается, либо попадает в тупик.
2. Основные определения. Машина Тьюринга.
Машина Тьюринга есть математическая (воображаемая) машина, а не машина физическая. Она есть такой же математический объект, как функция, производная, интеграл, группа и т.д. И так же как и другие математические понятия, понятие машины Тьюринга отражает объективную реальность, моделирует некие реальные процессы. Именно Тьюринг предпринял попытку смоделировать действия математика (или другого человека), осуществляющего некую умственную созидательную деятельность. Такой человек, находясь в определенном «умонастроении» («состоянии»), просматривает некоторый текст. Затем он вносит в этот текст какие-то изменения, проникается новым «умонастроением» и переходит к просмотру последующих записей.
Машина Тьюринга действует примерно так же. Ее удобно представлять в виде автоматически работающего устройства. В каждый дискретный момент времени устройство, находясь в некотором состоянии, обозревает содержимое одной ячейки протягиваемой через устройство ленты и делает шаг, заключающийся в том, что устройство переходит в новое состояние, изменяет (или оставляет без изменения) содержимое обозреваемой ячейки и переходит к обозрению следующей ячейки — справа или слева. Причем шаг осуществляется на основании предписанной команды. Совокупность всех команд представляет собой программу машины Тьюринга.
Опишем теперь машину Тьюринга 0 более тщательно. Машина 0 располагает конечным числом знаков (символов, букв), образующих так называемый внешний алфавит А = {а0, а1, ..., ап}. В каждую ячейку обозреваемой ленты в каждый дискретный момент времени может быть записан только один символ из алфавита А. Ради единообразия удобно считать, что среди букв внешнего алфавита А имеется «пустая буква», и именно она записана в пустую ячейку ленты. Условимся, что «пустой буквой» или символом пустой ячейки является буква а0. Лента предполагается неограниченной в обе стороны, но в каждый момент времени на ней записано конечное число непустых букв.
Далее, в каждый момент времени машина способна находиться в одном состоянии из конечного числа внутренних состояний, совокупность которых Q = {q0, q1, ..., qn,}. Среди состояний выделяются два — начальное q1 и заключительное (или состояние остановки) q0. Находясь в состоянии q1 машина начинает работать. Попав в состояние q0, машина останавливается.
Работа машины определяется программой (функциональной схемой). Программа состоит из команд. Каждая команда T(i,j) (i = 1, 2, ..., m; j = 0, 1, ..., п) представляет собой выражение одного из следующих видов:
qiaj→qkal С; qiaj→qkal П; qiaj→qkal Л, где 0 ≤k≤ т; 0 ≤λ≤п. В выражениях первого вида символ С будем часто опускать.
Как же работает машина Тьюринга? Находясь в какой-либо момент времени в незаключительном состоянии (т. е. в состоянии, отличном от q0), машина совершает шаг, который полностью определяется ее текущим состоянием qi и символом aj, воспринимаемым ею в данный момент на ленте. При этом содержание шага регламентировано соответствующей командой T(i,j): qiaj→qkal X, где X €{С, П, Л}. Шаг заключается в том, что: 1) содержимое о,- обозреваемой на ленте ячейки стирается и на его место записывается символ a1 (который может совпадать с aj); 2) машина переходит в новое состояние qk (оно также может совпадать с предыдущим состоянием qi); 3) машина переходит к обозрению следующей правой ячейки от той, которая обозревалась только что, если Х= П, или к обозрению следующей левой ячейки, если Х= Л, или же продолжает обозревать ту же ячейку ленты, если X = С.
В следующий момент времени (если qk q0) машина делает шаг, регламентированный командой Т(k, l): qkal→qrasX и т.д.
Словом в алфавите А или в алфавите Q, или в алфавите A U Q называется любая последовательность букв соответствующего алфавита. Под к-й конфигурацией будем понимать изображение ленты машины с информацией, сложившейся на ней к началу к-го шага (или слово в алфавите А, записанное на ленту к началу к-го шага), с указанием того, какая ячейка обозревается в этот шаг и в каком состоянии находится машина. Имеют смысл лишь конечные конфигурации, т.е. такие, в которых все ячейки ленты, за исключением, быть может, конечного числа, пусты. Конфигурация называется заключительной, если состояние, в котором при этом находится машина, заключительное.
Непустое слово а в алфавите воспринимается машиной в стандартном положении, если оно записано в последовательных ячейках ленты, все другие ячейки пусты, и машина обозревает крайнюю справа ячейку из тех, в которых записано слово а. Стандартное положение называется начальным (заключительным), если машина, воспринимающая слово в стандартном положении, находится в начальном состоянии q1 (соответственно в состоянии остановки q0). Наконец, будем говорить, что слово а перерабатывается машиной в слово β, если от слова а, воспринимаемого в начальном стандартном положении, машина после выполнения конечного числа команд приходит к слову β, воспринимаемому в положении остановки.
Пример. Дана машина Тьюринга с внешним алфавитом А ={0, 1} (здесь 0 — символ пустой ячейки), алфавитом внутренних состояний Q = {q0, q1, q2} и со следующей функциональной схемой (программой):
q10→q20П; q20→q01; q11→q11П; q21→q21П.
Посмотрим, в какое слово переработает эта машина слово 101, исходя из стандартного начального положения. Будем последовательно выписывать конфигурации машины при переработке ею этого слова. Имеем стандартное начальное положение:
q1
| (1) |
| 1 | 0 | 1 |
|
|
|
|
| На первом шаге действует команда: q11→q11П результате на машине создается следующая конфигурация: | ||||||||
|
|
|
|
|
| q1 |
|
|
|
| (2) |
| 1 | 0 | 1 | 0 |
|
|
|
| На втором шаге действует команда: q10→q20П и на машине создается: конфигурация: |
| |||||||
|
|
|
|
|
|
| q2 |
|
|
| (3) |
| 1 | 0 | 1 | 0 | 0 |
|
|
| Наконец, третий шаг обусловлен командой: q20→q01. В результате него создается конфигурация: | ||||||||
|
|
|
|
|
|
| q0 |
|
|
| (4) |
| 1 | 0 | 1 | 0 | 1 |
|
|
Эта конфигурация является заключительной, потому что машина оказалась в состоянии остановки q0.
Создание (синтез) машин Тьюринга (т. е. написание соответствующих программ) является задачей значительно более сложной, нежели процесс применения данной машины к данным словам.
Функция называется вычислимой по Тьюрингу, если существует машина Тьюринга, вычисляющая ее, т.е. такая машина Тьюринга, которая вычисляет ее значения для тех наборов значений аргументов, для которых функция определена, и работающая вечно, если функция для данного набора значений аргументов не определена.
Сконструировать машину Тьюринга — значит написать (составить) ее программу. В этом процессе два этапа: сначала создается алгоритм вычисления значений функции, а затем он записывается на языке машины Тьюринга (программируется).