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

Замятин, задачник по матлогике

.pdf
Скачиваний:
470
Добавлен:
23.02.2015
Размер:
1.97 Mб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«Уральский государственный университет им. А. М. Горького»

ИОНЦ «Информационная безопасность»

Математико-механический факультет

Кафедра алгебры и дискретной математики

УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС

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

_________________________________________________________

Учебное пособие

Автор: доцент кафедры алгебры и дискретной математики А. П. Замятин

Екатеринбург

2008

А. П. Замятин

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

Екатеринбург 2008

1

Федеральное агентство по образованию Уральский государственный университет им. А.М.Горького

Замятин А.П.

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

Учебное пособие

Екатеринбург

2008

2

Замятин А.П. Математическая логика и теория алгоритмов: Учебное пособие. – Екатеринбург, УрГУ, 2008. – 273 с.

Пособие адресовано студентам специальности “Компьютерная безопасность”. Оно может быть использовано студентами и других специальностей, учебные планы которых предполагают довольно глубокое изучение информатики.

Пособие разбито на семь глав. Оно содержит теоретический материал, подборку задач, а также ответы и указания к ряду задач и решение некоторых из них. В отличие от многих учебников по математической логике и теории алгоритмов, пособие содержит изложение метода резолюций, критерия полноты функций k-значной логики, значительный материал по сложности алгоритмов. В пособии значительное внимание уделено анализу выразительных возможностей языка математической логики, приведены основные результаты теории NP-полноты.

©Уральский государственный университет, 2008

©А.П.Замятин, 2008

3

Введение

Термином «логика» называется наука, изучающая формы и законы мышления, способы построения доказательств и опровержений различных утверждений. Логика берет начало от работ древнегреческого философа Аристотеля (4 век до нашей эры). Он первым обратил внимание на то, что при выводе одних утверждений из других исходят не из конкретного содержания рассуждений, а из взаимоотношения между их формами. Другой древнегреческий ученый Евклид систематизировал значительное к тому времени количество геометрических утверждений с позиции логики. Он создал аксиоматический метод и положил начало воприятию геометрии как аксиоматической теории, а всей математики как совокупности математических теорий.

Логика Аристотеля усовершенствовалась на протяжении многих веков. Значительный качественный прогресс в развитии логики наступил с применением в логике математических методов. Начало этому положил немецкий философ и математик Г. Лейбниц (17 – 18 век). Он пытался построить универсальный язык, на котором можно было бы формализовать различные рассуждения и все «споры заменить вычислениями».

Возникновение науки, которая называется математической логикой, связывают с работами аглийского математика и логика Д. Буля. Им была создана алгебра логики – результат применения к логике алгебраических методов.

Значительным толчком к новому периоду развития математической логики стало создание неевклидовых геометрий в трудах в трудах русского математика Н. И. Лобачевского и венгерского математика Я. Бойяи (19 век). Обнаруженные к концу 19 века парадоксы в теории множеств поставили перед математической логикой задачу обоснования математики.

Немецкий математик и логик Г. Фреге (19 – 20 век) решение этой задачи видел в сведении математики к логике. Он применил аппарат математической логики для обоснования арифметики. Ему же и американскому математику Ч. Пирсу мы обязаны введением в логику предикатов и кванторов. Сведение математике к логике продолжили в своем трехтомном труде «Осно-

4

вания математики» американские математики Б. Рассел и А. Уайтхед. Поставленная этими учеными цель в целом достигнута не была, но в результате их деятельности бым создан богатый логический аппарат и математическая логика стала воспринималься как полноценная математическая дисциплина.

Другой немецкий математик Д.Гильберт (20 век) видел путь решения проблем оснований математики в применении аксиоматического метода в более строгой его формулировке. Эта формулировка предполагает не только выделения базовых утвержений математической теории (аксиом), но и правил комбинирования утверждений (правил вывода). Открытие в тридцатых годах 20 века австрийским математиком К. Геделем непополнимости арифметики показало ограниченность этого пути.

В 20 веке на базе математической логики была разработана теория алгоритмов. В разработку этой теории внесли существенный вклад английский математик А. Тьюринг, американский математик Э. Пост и отечественный математик А. А. Марков.

Математическая логика в течение всего периода развития имела применение как в математике, так и вне ее. Из наиболее значительных применений в математике отметим два. Использование методов математической логики для анализа алгебраических структур привело к возникновению теории моделей области математики, лежащей на стыке алгебры и математической логики. Применение логики в математическом анализе привело к появлению новой научной дисциплины нестандарт-

ный анализ.

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

5

Пособие предназначено для студентов специальности “Компьютерная безопасность”. Оно может быть использовано при обучении студентов любых специальностей, связанных с обработкой символьной информации.

Пособие состоит из семи глав.

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

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

Втретьей главе излагается исчисление предикатов. Вводится аксиоматизация гильбертовского типа, доказываются основные теоремы: о дедукции, о непротиворечивости, о полноте исчисления, о компактности. Для исчисления высказываний обсуждается вопрос о независимости схем аксиом. Приведены (для логики высказываний) другие варианты аксиоматизации.

Вчетвертой главе изучается метод резолюций. Вводятся основные понятия метода для логики высказываний. Приводится теорема о полноте (для логики высказываний). Изучаются подстановка и унификация и основные понятия метода для логики первого порядка. Вводится эрбрановский универсум и семантические деревья. Приводятся теорема Эрбрана и теорема о полноте (для логики первого порядка). Обсуждаются стратегии метода, применения метода для доказательства теорем и решения задачи планирования действий, взаимосвязь метода и логического программирования.

Пятая глава посвящена функциям k-значной логики. Вначале изучаются булевы функции: приводятся понятия замкнутости

иполноты класса булевых функций, вводятся основные замкнутые классы функций, приводится теорема Поста и некоторые следствия из нее. Затем рассматривается «общий случай» функций k-значной логики. Доказывается полнота некоторых классов функций, вводится основное для формулировки критерия пол-

6

ноты понятие сохраняемости функцией данного отношения. Излагается в двух вариантах критерий Розенберга, приводятся примеры применения этого критерия.

Вшестой главе вводится формализация понятия «алгоритм»

ввиде машины Тьюринга. Приводится значительное число разнообразных примеров машин Тьюринга. Излагается понятие универсальной машины Тьюринга, приводятся некоторые алгоритмически неразрешимые проблемы. Изучаются понятия рекурсивно перечислимого и рекурсивного множеств. Излагаются другие варианты формализации понятия «алгоритм»: рекурсивные функции, алгоритмы Маркова.

Седьмая глава посвящена сложности алгоритмов. В начале главы приводится формулировка довольно большого числа практически важных комбинаторных задач, которые затем постоянно используются в примерах. Вводятся понятие временной сложности (детерминированной) машины Тьюринга и класс P- time. Изучается понятие полиномиальной сводимости и изглагается значительное число результатов полиномиальной сводимости одной задачи к другой. Вводятся понятия недетерминированной машины Тьюринга, временной сложности такой машины и класс NP-time. Обсуждается проблема P = NP? Далее вводится понятие NP-полноты и доказывается NP-полнота некоторых задач. Глава завершается обсуждением приближенных полиномиальных алгоритмов.

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

7

Глава 1. Логика высказываний

Изучение математической логики мы начнем с наиболее простой ее части – логики высказываний.

§1. Высказывания и операции над ними

Высказывание – это повествовательное предложение, о котором можно сказать истинно оно или ложно. Рассмотрим следующие предложения.

A= “ Число 2 является иррациональным” .

B= “ Неверно, что число 2 является иррациональным” .

C= “ Число 2 +1 является иррациональным” .

D= “ Если число 2 является иррациональным, то число

2 +1 также является иррациональным” .

E= “ Число x является иррациональным” .

F= “ Который час?”

G= “ Идите решать задачу к доске!”

Первые четыре предложения являются высказываниями, последние три – нет. Предложения F и G не являются повествовательными, а значение истинности повествовательного предложения E зависит от того, какие значения получит переменная x ( во второй главе подобные предложения будут названы предикатами) . Высказывания A, C и D истинны, высказывание B – ложно. Более точно, значение истинности высказываний A, C и D есть истина, а значение истинности высказывания B есть ложь. В дальнейшем истину будем обозначать символом 1, а ложь – символом

0.

Проанализируем высказывания A D с точки зрения их “ внутреннего строения” . Высказывания А и C можно назвать простыми, высказывания B и D – составными, полученными из простых высказываний A и C. Этот пример показывает, что в языке ( в данном случае, в русском языке) существуют способы построения одних высказываний из других, которые мы будем называть операциями. В естест-

8

венных языках существует много таких операций. Мы выделим в качестве основных пять операций.

Определение. Пусть X и Y – некоторые высказывания. Тогда высказывание

1)X и Y” называется конъюнкцией высказываний X и Y;

2)X или Y” называется дизъюнкцией высказываний X и

Y;

3)“ не X” называется отрицанием высказывания X;

4)“ если X, то Y” называется импликацией высказываний

X и Y;

5)X тогда и только тогда, когда Y” называется эквиваленцией высказываний X и Y.

Высказывание B из вышеприведенного примера является отрицанием высказывания A, а высказывание D – импликацией высказываний A и C. Введем следующие обозначения для операций: & – конъюнкция, – дизъюнкция, ¬ – отрицание, – импликация, – эквиваленция. Так, B = ¬A, D = AC. Символы &, , ¬, , называются связками.

Зависимость значения истинности новых высказываний от значений истинности исходных высказываний определя-

ется таблицей истинности связок ( см. таблицу 1 . 1) . На-

помним, что единица означает, что высказывание истинно, а ноль – ложно.

Таблица 1 . 1

X

Y

X &Y

X Y

¬X

X Y

X Y

1

1

1

1

0

1

1

1

0

0

1

0

0

0

0

1

0

1

1

1

0

0

0

0

0

1

1

1

Можно сказать, что таблица 1 . 1 содержит пять таблиц истинности, по одной для каждой из связок. Эти пять таблиц для удобства объединены в одну.

Прокомментируем таблицы истинности дизъюнкции и импликации. В русском языке союз “ или” понимается в двух смыслах: разделительном – или то, или другое, но не оба, и соединительном – или то, или другое, или оба. Как видно из таблицы 1 . 1, союз “ или” мы будем понимать в соединительном смысле. Перейдем к импликации. Если дана импликация XY, то высказывание X называется посылкой импликации, а Y заключением. Если посылка X импликации ложна, то вся импликация XY истинна ( см. третью и

9