Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математическая логика и теория алгоритмов (120

..pdf
Скачиваний:
11
Добавлен:
15.11.2022
Размер:
300.86 Кб
Скачать

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Московский государственный технический университет имени Н.Э. Баумана

Т.Е. Бояринцева, Н.В. Золотова, Р.С. Исмагилов

МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ

Методические указания к выполнению типового расчета

Москва Издательство МГТУ им. Н.Э. Баумана

2011

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

УДК 517.11 ББК 22.12 Б86

Рецензент А.И. Белоусов

Бояринцева Т.Е.

Б86 Математическая логика и теория алгоритмов : метод. указания к выполнению типового расчета / Т.Е. Бояринцева, Н.В. Золотова, Р.С. Исмагилов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2011. – 43, [5] с. : ил.

Приведены основные понятия и факты, относящиеся к языку высказываний, языку предикатов, теории алгоритмов, теории нечетких множеств и нечеткой логике. Наряду с традиционными разделами математической логики изложен метод резолюций, полезный для приложений. Рассмотрены типовые задачи.

Для студентов, изучающих математическую логику, а также для преподавателей.

Рекомендовано Учебно-методической комиссией НУК ФН МГТУ им. Н.Э. Баумана.

УДК 517.11 ББК 22.12

c МГТУ им. Н.Э. Баумана, 2011

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

ВВЕДЕНИЕ

Формальные языки (в дальнейшем опускаем эпитет «формальный») используются как инструмент для описания и исследования понятий, методов (алгоритмов и пр.), связанных с той или иной областью математики либо ее приложений. Мы будем иметь дело с двумя примерами — языком высказываний и языком предикатов. Прежде чем обратиться к ним, рассмотрим некоторые общие понятия, связанные с языками.

Язык складывается из cинтаксиса и семантики. С синтаксисом связаны следующие понятия.

1)алфавит — конечная совокупность символов, называемых

буквами;

2)слово — любая конечная цепочка букв алфавита;

3)формулы — «правильно составленные» слова, выделяемые из

множества слов с помощью некоторого набора правил. В некоторых случаях предварительно вводят (также с помощью некоторого набора правил) набор слов, называемых термами. Это материал, из которого строятся формулы.

Синтаксис построен. Переходим к семантике.

Семантика заключается в указании интерпретации (термов, формул). Это понятие трудно описать, не прибегая к конкретным примерам языков. Можно лишь сказать, что интерпретация ставит в соответствие буквам, термам, формулам либо математические объекты (числа, элементы множеств, знаки неравенств, равенств и пр.), либо предметы и понятия, связанные с окружающим миром. Далее приводятся правила, выделяющие из совокупности формул те, которые считаются истинными в данной интерпретации.

Обычно указывается целый класс интерпретаций. Формула, истинная в каждой из них, называется тождественно истинной; ее также называют тавтологией или законом языка.

3

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Важный элемент языка — исчисление. Так называется набор правил, позволяющих выводить законы языка, не прибегая к конкретным интерпретациям, а используя лишь формальные манипуляции, предписанные правилами.

Опишем построение языка более подробно. Построим синтаксис:

а) алфавит состоит из символов: | (палочка), (штрих), (треугольник), ( , ) (скобки) (разумеется, расставленные в этом предложении запятые не входят в алфавит).

б) введем термы по следующим правилам. Во-первых, | есть терм (по определению). Далее, если слова α, β — термы, то слова (α)(β) и (α) — тоже термы. Термы описаны. Для сокращения записи будем опускать некоторые скобки и писать ||| вместо ((|)(|))(|), а также α вместо ((α) ) и т. п.

в) назовем формулой любое слово вида α β, где α, β — термы. Синтаксис готов.

Перейдем к семантике. Зафиксируем целое число m > 0 и зададим следующую интерпретацию. Во-первых, интерпретируем

термы. Для этого поставим в соответствие каждому терму α число Im(α) по следующим правилам: Im(|) = m,Im(α ) = Im(α) +

+1,Im((α)(β)) = Im(α)+Im(β) (таким образом, штрих интерпретирован как прибавление единицы, а приписывание одного терма к другому — как сложение). Наконец, формулу α β интерпретируем как равенство Im(α) = Im(β) (таким образом, треугольник интерпретирован как равенство). Мы получили семейство интерпретаций Im.

Формулу α β назовем истинной в интерпретации Im, если Im(α) = Im(β). Формула, истинная в каждой из интерпретаций Im, есть закон нашего языка. Вот пример закона: (||) (|)(| ) (проверьте!)

Наконец, обратимся к исчислению. Данный язык весьма прост, а потому легко непосредственно описать все его законы. Однако мы опишем его по образцу, который обычно применяется в более сложных языках. Во-первых, назовем законом формулу | |. Далее, если формулы α β и γ θ — законы, то законами объявляются также формулы (α)(γ) (β)(θ). Наконец, законами объявляют те и только те формулы, которые можно получить применением этих правил.

4

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Упражнение. Интерпретируйте как < и выпишите какойлибо закон полученного языка.

Переходим к языку высказываний. Начнем со вспомогательного инструмента — булевых функций.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

1. ЯЗЫК ВЫСКАЗЫВАНИЙ

1.1. Булевы векторы и булевы функции

Для каждого числа n {1,2,...} обозначим через Dn множество всех векторов вида x = (x1 ...xn),xi {0,1} (в записи векторов опускаем запятые между координатами). Такие векторы называют булевыми. Упорядочим векторы из множества Dn следующим образом: первым стоит вектор (0...0), а последним (1...1); если уже выписан очередной вектор (x1 ...xn) = (1...1), то следующим будет вектор, полученный из x следующим образом: самый правый нуль заменен единицей, а единицы, стоящие правее этой единицы, заменены нулями. Например, множество D2 следует упорядочить так:

00,01,10,11.

Легко показать, что |Dn| = 2n (здесь |Dn| — число векторов из множества Dn).

Функция y = f(x1,...,xn),xi {0,1},y {0,1}, называется булевой. Ее задают таблицей: выписывают все векторы из множе-

ства Dn (в указанном выше порядке) и рядом с каждым вектором (x1 ...xn) пишут справа число f(x1,...,xn). Взяв последний столбец таблицы (он составлен из значений функции) и транспонировав его, получаем векторную запись функции f.

Для нас важны функции, записываемые как ¬, , ,→,↔; они носят названия «отрицание», «конъюнкция», «дизъюнкция», «импликация» и «эквивалентность» и задаются следующими

6

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

таблицами:

 

 

 

 

 

 

 

 

¬x

 

x1 x2 x1 x2 x1 x2 x1 → x2 x1 ↔ x2

x

и

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

 

1

0

0

1

0

0

 

 

 

1

1

1

1

1

1

Отметим, что x1 x2 = x1x2 (обычное умножение); мы обычно будем писать x1x2 вместо x1 x2 и x вместо ¬x. Введем также функцию xε по правилам x0 = x,x1 = x.

Читателю рекомендуется проверить справедливость следующих соотношений:

xx = 0; x x =1; xy xy = x; xy x = x;

 

 

 

=

 

 

 

;

 

=

 

 

(1.1)

 

 

 

 

 

x y

 

 

xy

x

y

xy.

Дизъюнктивная и конъюнктивная нормальные формы.

Функции вида

 

 

 

 

 

 

 

 

 

 

 

 

ε1

εk

 

ε1

 

 

 

εk

< ik,

xi1 ...

xik

, xi1

...

xik , где i1 < ...

называются элементарной конъюнкцией (ЭК) и элементарной дизъюнкцией (ЭД) соответственно. Употребляются также названия «дизъюнкт» и «конъюнкт». Определим далее дизъюнктивную нормальную функцию (ДНФ) как функцию вида K1 ... Kr, где Ki есть ЭК. Аналогично конъюнктивную нормальную функцию (КНФ) — это функция вида D1 ... Dr, где Di — это ЭД. ДНФ называется совершенной, если каждая из функций Ki содержит все переменные, т. е. имеет вид x1ε1 ...xnεn; аналогично определяется совершенная КНФ (для краткости пишем СДНФ и СКНФ).

Читателю рекомендуется проверить следующие утверждения: 1) ЭК вида x1ε1 ...xnεn принимает значение 1 на единственном векторе (ε1 ... εn), называемом вектором-показателем данной ЭК (на других векторах принимает значение 0); 2) СДНФ вида K1 ... Kr, где Ki есть ЭК, принимает значение 1 только на векторах-показателях элементарных конъюнкций Ki. Из второго утверждения следует важный вывод: любую булеву функцию, отличную от тождественной единицы, можно представить в виде СДНФ. Для этого нужно взять все векторы (ε1 ... εn), такие, что f(ε1,..., εn) = 1, для каждого вектора образовать ЭК вида

7

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

x1ε1 ...xnεn, и тогда эта функция будет дизъюнкцией полученных ЭК.

Пример 1.1. Запишем функцию, заданную вектором (1001), в виде ДНФ. Табличная запись этой функции показывает, что она принимает значение 1 только на векторах (00),(11). Следователь-

но, f(x1,x2) = x01x02 x11x12 = x1x2 x1x2. Аналогично любую булеву функцию, отличную от тождественного нуля, можно предста-

вить в виде СКНФ; для этого следует взять все векторы (ε1 ... εn), такие, что f(ε1,..., εn) = 0, для каждого вектора образовать ЭД

вида x1ε1 ... xnεn, и тогда эта функция будет конъюнкцией полученных ЭД.

Пример 1.2. Пусть функция f задана вектором 1001. Записав ее в виде таблицы, заметим, что она обращается в нуль только на

векторах (01),(10). Отсюда f(x1,x2) = (x1 x2)(x1 x2).

Упрощение дизъюнктивной нормальной формы.

Соотношения (1.1) позволяют упрощать ДНФ. Приведем два примера: а) пусть K1,K2 — такие ЭК, что K1 = xiK,K2 = xiK, где K — некоторая ЭК (таким образом, K1,K2 отличаются лишь множителями xi,xi). Тогда K1 K2 = K (формула склейки); б) пусть K1 есть ЭК, являющаяся частью элементарной конъюнкции K2, т. е. K2 = K1K, тогда K1 K2 = K1 (формула поглощения).

Приведем пример применения этих соотношений:

f(x1,x2,x3) = x1x2x3 x1x2x3 x1x3x4 = x1x3 x1x3x4 = x1x3.

1.2. Язык высказываний

Предварительные понятия. Высказыванием называется повествовательное предложение, о котором можно сказать, истинно оно или ложно. Например: 1) у нас сейчас лекция (высказывание); 2) ура! Вперед! (не высказывание); 3) X делится на два (не высказывание, но становится высказыванием при подстановке конкретного X).

Из высказываний A,B,... можно построить более сложные высказывания, применяя связки ¬, , ,→,↔, заимствованные из теории булевых функций. Если A,B — высказывания, то ¬A,A B,A B, A → B,A ↔ B означают высказывания «не A»;

8

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

«и A, и B»; «A или B» (точнее, или A, или B, или и то и другое), «если A, то B»; «A и B эквивалентны».

Например, пусть A = на улице тепло, B = на улице сыро. Прочитаем высказывания, построенные из этих высказываний с помощью связок: ¬A = на улице холодно; A ¬B = на улице тепло

исухо; A → ¬B = если на улице тепло, то там сухо; A ↔ ¬B =

=на улице тепло в том и только в том случае, если там сухо.

Можно образовать и более сложные высказывания, например, (¬A) → (B → C) и т. д. Они изучаются в языке высказываний (ЯВ), который мы сейчас опишем. Язык высказываний складывается из синтаксиса и семантики.

Синтаксис языка высказываний. Начнем с алфавита. Он состоит из букв A,B,... (а также A1,B1 и т. д.), связок ¬, , ,→,↔ и скобок ( , ). Любые конечные цепочки символов алфавита называются словами (см. «Введение»). Введем теперь формулы (их можно назвать «осмысленными» словами). Любая из букв A,B,...

считается формулой (их называют атомарными фомулами, а также просто атомами). Далее, если слова α и β — формулы, то формулами считаются также слова ¬(α),(α) (β),(α) (β),(α) → (β), (α) ↔ (β). Описание формул закончено.

Условимся опускать некоторые скобки в формулах, но сделаем это так, чтобы при желании можно было безошибочно восстановить опущеные скобки. Для этого условимся, что связки применяются в следующем порядке: ¬, , ,→,↔ . Например, формула ¬A B → C означает (¬A B) → C (а не ¬A (B → C)). Часто вместо ¬α и α β будем писать α и α β. Как и в теории булевых функций, положим αε = α при ε = 1, αε = α при ε = 0, а также введем ЭК, ЭД, ДНФ, КНФ, СДНФ, СКНФ как Aiε11 ...Aiεrr и т. д.

Синтаксис ЯВ построен; переходим к семантике.

Интерпретация формул; функции истинности. Пусть дана некоторая формула α из ЯВ (например, A → B,A → ¬(B → → C) и пр.). Мы хотим интерпретировать ее, т. е. придать ей смысл. Это можно сделать, подставив вместо A,B,... «обыденные» высказывания типа A = идет дождь, B = трава мокрая и т. д. Тогда, например, формула A → B интерпретируется как «если идет дождь, то трава мокрая». Но мы займемся другой, более абстрактной интерпретацией. Она ставит в соответствие каждой формуле

9

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

одну из оценок «истина» и «ложь» (для краткости пишем 1 и 0); опишем, как строится эта интерпретация.

Каждой формуле α (она составлена из букв A,B,... и связок) поставим в соответствие булеву функцию, обозначаемую также через α (а также через α(A,B,...)) и задаваемую той же формулой, в которой, однако, буквы A,B,... означают не высказывания, а переменные, пробегающие множество {0,1}. Она называется функцией истинности формулы α. Чтобы интерпретировать формулу α, сначала интерпретируем (произвольным образом) атомы, т. е. придаем каждой переменной A,B,... одно из значений {1,0} и рассчитываем значение булевой функции на полученном булевом векторе. Полученное значение (либо нуль, либо единица) и есть интерпретация формулы α.

Для примера рассмотрим формулу α = A B. Таблица для булевой функции A B показывает, что α истинна во всех случаях, когда хотя бы одно из высказываний A,B истинно.

Введем еще две формулы T,F (тождественная истина и тождественная ложь); их функции истинности — это 1 и 0 соответственно. Формулу F называют также «пустым» дизъюнктом.

Тавтологии; эквивалентные формулы. Формула α называется тождественно истинной (а также тавтологией), если ее функция истинности тождественно равна единице (другими словами, она истинна при любой интерпретации входящих в нее атомов). Тот факт, что α есть тавтология, записывают в виде |= α.

Формулы α и β называются эквивалентными (а также равносильными), если их функции истинности тождественно совпадают (другими словами, при любой интерпретации атомов, в которой истинна одна из формул, истинна и вторая формула); в этом случае пишут α β.

Читателю следует убедиться в справедливости следующих утверждений:

1)равносильность α β имеет место в том и только в том случае, если формула α ↔ β есть тавтология;

2)если формулы α ↔ β и α являются тавтологиями, то и формула β есть тавтология (это утверждение можно записать так: если |= α → β и |= α, то |= β);

3)α ↔ β (α → β) (β → α);

4)α → β α β;

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]