
Математическая логика, теория алгоритмов, теоретические основы информатики
Алгебра высказываний как модель алгебры Буля, ее аксиоматическое задание. Принцип двойственности и теорема двойственности.
Проблема разрешимости (разрешения) для класса однотипных задач. Проблема разрешимости в алгебре высказываний и способы их разрешения.
Высказывательные формы (предикаты). Способы их задания. Логические операции над предикатами.
Неформальное понятие алгоритма. Общие свойства алгоритмов. Графические средства для описания алгоритмов.
Формальное определение понятия алгоритма в виде машин Тьюринга. Вычисления на машинах Тьюринга. Тезис Тьюринга - Черча. Проблема самоприменимости.
Рекурсивные функции, рекурсивные множества. Тезис Черча. Итерация одноместных функций и доказательная база к ней.
Система счисления с произвольным основанием. Перевод из одной системы счисления в другую. Операции над числами в системах счисления с произвольным основанием.
Основные понятия теории кодирования. Оптимальный код Шеннона-Фано.
Алгебра высказываний как модель алгебры Буля, ее аксиоматическое задание. Принцип двойственности и теорема двойственности.
Алгеброй Буля называется непустое множество, содержащее, по крайней мере, два элемента и замкнутое относительно 2-ух бинарных операций: /\ и \/, удовлетворяющих законам: коммутативности, ассоциативности, дистрибутивности конъюнкции относительно дизъюнкции и дизъюнкции относительно конъюнкции, идемпотентности, сокращения, поглощения, противоречия для конъюнкции и исключения третьего для дизъюнкции, законам де Моргана, и одной унарной операции - ¬, удовлетворяющей закону двойного отрицания.
<M; /\, \/, ¬ > - пример алгебры Буля.
Алгебра высказываний <V; /\, \/, ¬> также является примером алгебры Буля.
Определение 1
Алгебра - структура, где берется непустое множество, на котором заданы какие-то конкретные операции, притом множество замкнуто относительно этих операций.
Примеры:
<N; +, *> - арифметика натуральных чисел;
<Z; +, *> - кольцо целых чисел;
<V; /\, \/, ¬ > - алгебра высказываний.
Алгебра высказываний - фундамент математической логики, предметом ее исследования являются высказывания.
Определение 2
Высказыванием называется законченное повествовательное предложение, для которого можно сказать истинно оно или ложно.
Высказывание не может быть одновременно и истинным, и ложным.
Высказывания | |
атомарные (неделимые) или элементарные, исходные |
сложные (составные) |
Конкретные атомарные высказывания обозначают начальными заглавными буквами латинского алфавита или теми же буквами с индексами внизу: A, B, C, D, ..., Ai, Bi, Ci, ..., где i Є N.
Из элементарных высказываний с помощью операций над высказываниями или логических связок строят сложные высказывания.
Операции над высказываниями:
1. Операция конъюнкции ( /\ ).
Конъюнкцией двух высказываний, А и В, называется новое высказывание, обозначаемое (A /\ B), которое истинно тогда и только тогда, когда высказывания A и B истинны одновременно, и ложно во всех остальных случаях. Конъюнкции соответствует логическая связка "и". Запись (A /\ B) читается: A и B; A конъюнкция B.
2. Операция дизъюнкции ( \/ ).
Дизъюнкцией двух высказываний, А и В, называется новое высказывание, обозначаемое (A \/ B), которое истинно только тогда, когда истинно, по крайней мере, одно из высказываний, A или B, и ложно в единственном случае, когда оба высказывания, А и В, ложны. Дизъюнкции соответствует связка "или". Запись (A \/ B) читается: A или B; A дизъюнкция B.
3. Операция следования или импликации ( → )
Импликацией (следованием) двух высказываний, А и В, называется новое высказывание, обозначаемое (A → B), которое ложно тогда и только тогда, когда A - истинно, а B - ложно, во всех остальных случаях высказывание (A→B) истинно.
В высказывании (A → B) A - называется посылкой или антецедентом, B - следствием или консеквентом.
Из определения импликации следует, что если посылка A - ложна, то значение (A → B) истинно при любом значении следствия B, то есть изо лжи может следовать что угодно.
Импликация (A → B) в разговорной речи имеет несколько разночтений:
если A, то B;
из A следует B;
A влечет B;
B следует из A;
A достаточно для B;
B необходимо для A.
4. Операция эквивалентности ( ↔ )
Эквивалентностью двух высказываний, A и B, называется новое высказывание, обозначаемое (A ↔ B), которое имеет значение ложь тогда и только тогда, когда A - истинно, а B - ложно или A - ложно, а B - истинно. А значение истина тогда и только тогда, когда одновременно оба высказывания, A и B, либо истинны, либо ложны.
Эквивалентность (A ↔ B) в разговорной речи имеет несколько разночтений:
A необходимо и достаточно для B
A тогда и только тогда, когда B;
A эквивалентно B;
A равносильно B;
из A следует B , а из B следует A.
5. Операция отрицания ( ¬ )
Отрицанием высказывания A называется новое высказывание, обозначаемое ¬A, которое истинно тогда и только тогда, когда ложно A, и ложно тогда и только тогда, когда A истинно.
Отрицанию соответствует логическая связка "не". Запись ¬A читается: не А; неверно, что А.
Итак, логические значения результатов операций над высказываниями связаны с логическими значениями элементарных высказываний, включенных в эти операции так, как указано в следующей таблице, которая называется таблицей истинности основных операций.
Двойственность
Принцип двойственности впервые был высказан французом по фамилии Понселе. Наблюдается в проективной плоскости (прямая - точка), в пространстве (точка - плоскость).
Будем говорить, что операция конъюнкции ( /\ ) двойственна операции дизъюнкции ( \/ ) и наоборот: операция дизъюнкции двойственна операции конъюнкции; константа "Л" двойственна константе "И" и наоборот: константа "И" двойственна константе "Л".
Определение 1
Формулы α и α* называются двойственными, если одна из них получается из другой заменой констант "И" и "Л" на двойственные им константы "Л" и "И" соответственно, и каждой операции /\ на двойственную ей операцию \/ , а \/ - на операцию /\.
Примеры:
двойственные формулы | |
α |
α* |
(X \/ ¬Y) /\ Z |
(X /\ Y) \/ Z |
[(A \/ B) /\ C] \/ (A /\ B /\ C) |
[(A /\ B) \/ C] /\ (A \/ B \/ C) |
(A /\ B) \/ (A /\ B) |
(A \/ B) /\ (A \/ B) |
Очевидно, что для каждой формулы α существует двойственная ей формула α*. Также ясно, что (α*)* ≡ α, т.е. двойственной формулой по отношению к двойственной формуле α есть сама формула α.
Теорема 1.
Если α(X1, X2, ..., Xn) и α*(X1, X2, ..., Xn) двойственные формулы, то отрицание формулы α(X1, X2, ..., Xn) равносильно формуле, полученной из α*( X1, X2, ..., Xn) с помощью замены всех переменных на их отрицание, т.е. ¬α(X1, X2, ..., Xn) ≡ α*(¬X1, ¬X2, ..., ¬Xn).
Доказательство очевидно.
Пример:
Пусть α (X, Y, Z) ≡ (X \/ ¬Y) /\ Z, тогда α*(X, Y, Z) ≡ X /\ ¬Y \/ Z,
¬α(X, Y, Z) ≡ ¬((X \/ ¬Y) /\ Z) ≡ ¬(X \/ ¬Y) \/ ¬Z ≡ ¬X /\ ¬(¬Y) \/ ¬Z ≡
≡ ¬X /\ Y \/ ¬Z,
α*(¬X, ¬Y, ¬Z) ≡ ¬X /\ ¬(¬Y) \/ ¬Z ≡ ¬X /\ Y \/ ¬Z.
Следовательно, ¬α(X, Y, Z) ≡ α*(¬X, ¬Y, ¬Z).
Теорема двойственности (закон двойственности)
Если формулы β(X1, X2, ..., Xn).и α(X1, X2, ..., Xn) равносильны, то двойственные им формулы β*( X1, X2, ..., Xn).и α*( X1, X2, ..., Xn) тоже равносильны.
β(X1, X2, ..., Xn). ≡ α(X1, X2, ..., Xn)
β*(X1, X2, ..., Xn). ≡ α*( X1, X2, ..., Xn)
Доказательство.
По условию доказываемой теоремы:
β(X1, X2, ..., Xn). ≡ α(X1, X2, ..., Xn) (1).
По условию теоремы 2: β*(¬X1, ¬X2, ..., ¬Xn) ≡ ¬β(X1, X2, ..., Xn), откуда
β*(¬(¬X1), ¬(¬X2), ..., ¬(¬Xn)) ≡ ¬β(¬X1, ¬X2, ..., ¬Xn), следовательно
β*(X1, X2, ..., Xn) ≡ ¬β(¬X1, ¬X2, ..., ¬Xn) (2).
Аналогично, α*(X1, X2, ..., Xn) ≡ ¬α(¬X1, ¬X2, ..., ¬Xn) (3).
Из (1) следует, что ¬β(X1, X2, ..., Xn). ≡ ¬α(X1, X2, ..., Xn), откуда
¬β(¬X1, ¬X2, ..., ¬Xn). ≡ ¬α(¬X1, ¬X2, ..., ¬Xn) (4). По свойству равносильности [β*(X1, X2, ..., Xn) и α*(X1, X2, ..., Xn) равносильны соответственно выражениям ¬β(¬X1, ¬X2, ..., ¬Xn).и ¬α(¬X1, ¬X2, ..., ¬Xn), которые являются равносильными] β*(x1, x2, ..., xn). ≡ α*(x1, x2, ..., xn), что и требовалось доказать.
Закон двойственности "наполовину уменьшает работу математикам": если уже доказана некоторая равносильность, то справедливость другой, полученной из первой двойственными преобразованиями, уже не нужно доказывать, она будет выполняться.
Примеры:
Известно, что A \/ (A /\ B) ≡ A. Тогда двойственную ей формулу: A /\ (A \/ B) ≡ A уже не нужно доказывать.
Т.к. (A \/ B) /\ (¬A \/ ¬B) ≡ (A /\ ¬B) \/ (B /\ ¬A), то двойственная ей формула: A /\ B \/ ¬A /\ ¬B ≡ (A \/ ¬B) /\ (B \/
\/ ¬A) не требует доказательства.
Проблема разрешимости (разрешения) для класса однотипных задач. Проблема разрешимости в алгебре высказываний и способы их разрешения.
Проблема разрешения
Рассмотрим множество каких-нибудь однотипных задач, например задачи на решение системы m линейных уравнений с n неизвестными, где m, n - произвольные натуральные числа. Для этой серии задач можно поставить следующий вопрос: Существует ли метод, по которому решаются все задачи данной серии? Причем этот метод должен быть одинаковым для любой задачи серии. Поставленная задача носит название проблемы разрешения.
Например, для системы m уравнений с n неизвестными существует несколько способов решения: метод Гаусса, метод Крамера. Значит, для системы m линейных уравнений с n неизвестными проблема разрешения разрешима.
Если для серии М однотипных задач единый метод решения (алгоритм) существует, то говорят, что для этой серии М проблема разрешения решена и разрешима.
Если же доказано, что единого метода решения задач из серии М не существует, то говорят, что для данной серии задач проблема разрешения решена и неразрешима.
Если для серии М однотипных задач единый метод решения не найден, и не доказано, что такого метода не существует, то говорят, что для данной серии М задач проблема разрешения не решена (открыта).
Если проблема разрешения для некоторой серии задач неразрешима, то каждую задачу данной серии приходится решать отдельно или, в лучшем случае, разбивать класс задач на несколько подклассов.
Точное определение проблемы разрешения можно будет дать только после строгого математического определения понятия алгоритм. Такое определение существует, оно появилось в 30-ых годах XX-ого века.
Наличие строгого определения алгоритма сделало возможным доказательство неразрешимости задач, т.к. стало понятно, отсутствие чего нужно доказывать. До этого в математике существовал только один путь разрешения любой задачи - нахождение способа ее решения, и если способ не был найден, то считалось, что знаний недостаточно для решения такой трудной задачи. Никто не задумывался над тем, что решения вовсе может и не быть и, следовательно, его никогда, никем найти не удастся.
Появление новой отрасли в математике - математической логики и теории алгоритмов сделало возможным решать такие задачи, т. е. доказывать, что они не разрешимы в рамках данной аксиоматической теории.
Проблема разрешения для алгебры высказываний.
Проблема разрешения состоит в том, чтобы дать способ, позволяющий для каждой формулы алгебры высказываний конечным числом действий выяснить, является ли она тождественно истинной или нет. Имея такой способ, мы можем определить, является ли формула φ выполнимой или нет.
В самом деле, если ¬φ тождественно истинная формула, то φ тождественно ложная, т. е. невыполнима.
Если же ¬φ не тождественно истинная формула, то φ - выполнима.
Известно, что проблема разрешения для алгебры высказываний разрешима. Существуют два способа ее разрешения:
Поскольку формулы алгебры высказываний конечнозначны, то их можно проверить по таблице, составленной для каждой формулы отдельно. Правда это может быть очень долгим занятием, ведь если формула содержит n элементарных высказываний, то нужно определить значения функции для 2n наборов.
Приводим формулу алгебры высказываний к конъюнктивному нормальному виду. Если каждая элементарная дизъюнкция К.Н.Ф. содержит пару, состоящую из какого-нибудь высказывания и его отрицания, то эта формула тождественно истинна. Если нет - то не тождественно истинна.
Алгоритм проблемы выполнимости:
Берем формулу ¬φ.
Приводим ¬φ к К.Н.Ф. и узнаем, является ли ¬φ тождественно истинной или нет.
Если формула ¬φ тождественно истинна, то φ невыполнима, если же ¬φ не тождественно истинна, то φ выполнима.
Высказывательные формы (предикаты). Способы их задания. Логические операции над предикатами.
Часто мы сталкиваемся с такими выражениями, которые имеют форму высказываний, но содержат предметные переменные некоторых множеств. Например, “x-простое число”. Такие выражения легко получить из любого высказывания, заменив в нём обозначения предметов, предметными переменными множеств. Если в таком выражении предметные переменные заменить каким-либо элементом (конкретным) множества, то снова получится высказывание.
Предикат – это повествовательное законченное предложение, содержащее в себе один или несколько символов переменных величин, истинностное значение которого зависит от этих переменных величин : при конкретных значениях переменных он превращается в высказывание, которое может оказаться или истинным или ложным.
Переменные величины, от которых зависит предикат, принимают значения из некоторого фиксированного множества М, которое принято называть предметной областью.
Пример:
Наполеон – француз. Пусть М - множество
всех земных людей. xM.
Слово Наполеон заменим предметной
переменной x
из М и получим “x-француз”.
Это высказывание при одних элементах
из М будет истинным, а при других –
ложным. “Сократ – француз” – ложно.
“Де Бальзак - француз” – истинно.
Другой
пример:
2 – простое число. М – множество
натуральных чисел. xM.
“x
– простое число”. В обоих этих случаях
мы получим функции, определённые на
некотором множестве М и со значениями
И. или Л. Такие функции называются
функциями-высказываниями или предикатами.
Определение 1
n- местным предикатом, определённым на некотором множестве М называется выражение, которое всякому упорядоченному набору элементов <x1,…, xn > из М ставит в соответствие И или Л.
Обозначается: P (x1,…, xn),
А (x1,…, xn).
Если зафиксировать все переменные: x1=a1,…, xn=an, то предикат обращается в высказывание: P (а1,…, аn), А (а1,…, аn).
Пример:
1). Высказывание 3 < 2. Заменим 3 переменной х, получим x < 2, которое в области действительных чисел истинно тогда и только тогда, когда число меньше двух. Получим одноместный предикат x < 2. Заменим 2 переменной y:
x < y – двуместный предикат.
2). x2 + y2 = 2*x*y – истинно только при x = y
Множество M назовём полем, и его элементы будем обозначать последними буквами латинского алфавита: x, y, z, … ,x1, y1 … . Эти символы неопределенных элементов и называются предметными переменными.
Начальные буквы латинского алфавита a, b, c, … , a1, b1… будут обозначать конкретные элементы из М и называется индивидуальными предметами.
A, B, C, … , U, V – обозначают элементарные высказывания. Выражения F(x), F(x, y), A(x, y , u), P (x1,…, xn) будут обозначать предикаты. Но F(a), F(a, b), A(a, a , b), P (a1,…, an) уже будут элементарными высказываниями. Они же иногда называются значением соответствующего предиката.
Определение 2
Два n- местных предиката P1 (x1,…, xn), P2 (x1,…, xn) называются равносильными, если их значения на данном поле М совпадают.
Пример: x > 2 и предикат x – 2 > 0 равносильны.
Определение 3
Предикат P1 (x1,…, xn) называется:
а) тождественно истинным, если его значение для любого набора из М истина;
б) тождественно ложным, если при любых наборах (x1,…, xn) из М она принимает значение ложь.
Пример: x2 + 2 < 0.
в) выполнимым, если существует по меньшей мере один набор (x10,…, xn0) из М, то Р(x10,…, xn0) = И.
Имеют место очевидные теоремы:
Теорема 1
Любые два n- местные тождественно истинные предикаты, определённые на одном и том же множестве, и любые два n- местные тождественно ложные предикаты, определённые на одном и том же множестве равносильны между собой.
Обратная теорема
Любой предикат равносильный тождественно истинному предикату будет тождественно истинным. Любой предикат равносильный тождественно ложному предикату - тождественно ложным.
Определение 4
Множеством истинности предиката P(x1,…, xn), определённого на некотором множестве М, называется совокупность <x1,…, xn> из М, для которых значение Р есть истина и обозначается:
Ep ={(x1,…, xn) | P (x1,…, xn)}.
Например, пусть N – натуральные числа, тогда
{x | x < 10} = {1, 2, …, 9}
{<x, y> | x + y = 3} = {(0,3), (1,2),(2,1),(3,0)}.
Теорема 2
Множества
истинности предикатов Р1(n)
и Р2(n),
определённых на множестве М, совпадают
тогда и только тогда, когда Р1(n)
Р2(n).
Р1(n)
Р2(n)
= Ep1
= Ep2
Рассмотрим все предикаты, определённые на множестве М. Область истинности каждого предиката является некоторое подмножество из М, причем, равносильным предикатам соответствует одно и то же подмножество. Верно и обратное утверждение: каждое подмножество множества М можно рассматривать как область истинности некоторого предиката. Т. е. между множеством одноместных предикатов, определённых на множестве М и совокупностью его подмножеств устанавливается взаимооднозначное соответствие.