
- •Введение
- •1. Основные сведения из формальной логики
- •1.1. Введение в формальную логику
- •1.2. Формы познания человеком окружающего мира
- •1.3. Формы абстрактного мышления
- •«Все s есть p»,
- •«Если s есть p, то s есть p1».
- •1.4. Содержательное описание основных законов классической формальной логики и границы их применимости
- •1.5. Способы правильных умозаключений, обусловленных основными законами формальной логики.
- •1.6. Правильные способы рассуждений, основанные на теории силлогизмов
- •Вопросы для самоконтроля
- •2. Элементы теории множеств
- •2.1. Понятие множества. Способы задания множеств
- •Упражнения
- •2.2. Части множеств
- •2.2.1. Понятие подмножества
- •2.2.2. Множество-степень
- •2.2.3. Понятие о верхней и нижней гранях множеств
- •2.3. Операции над множествами.
- •2.4. Основные свойства операций над множествами
- •2.5. Отношения на множествах
- •2.5.1. Операции над отношениями
- •2.5.2. Основные свойства отношений
- •2.6. Функции как отношения на множествах
- •2.7. Отношения эквивалентности
- •2.8. Отношения порядка
- •Упражнения
- •Парадоксы теории множеств
- •Вопросы для самоконтроля
- •1. Алгебра логики
- •Понятие о простом и сложном высказывании
- •Упражнения
- •Логические операции над высказываниями
- •Упражнения
- •Упражнения
- •1.4. Аксиомы и законы алгебры логики
- •1.4.1. Правила склеивания для элементарных конъюнкций и дизъюнкций
- •Дизъюнкций
- •1.4.3. Правило развёртывания
- •Все ке для двух высказываний
- •Развёртывание элементарной дизъюнкции
- •Упражнения
- •1.5. Функции алгебры логики. Нормальные формы логических функций
- •Общая запись любой логической функции в сндф имеет вид
- •Пример. По заданной таблице истинности составить сндф функций
- •Снкф для выше приведенной таблицы истинности будут иметь вид
- •Упражнения
- •1.6.Минимизация логических функций
- •1.6.1. Расчетный метод минимизации
- •1.6.2. Табличный метод минимизации
- •1.6.3. Расчетно-табличный метод минимизации (метод Квайна)
- •Упражнения
- •1.7. Некоторые применения алгебры логики
- •Упражнения
- •Вопросы для самоконтроля
- •2. Исчисление высказываний
- •2.1. Понятие формулы исчисления высказываний
- •Упражнения
- •2.2. Аксиомы и простейшие правила вывода
- •Система аксиом исчисления высказываний
- •Тогда правило подстановка схематически запишется так
- •2.3. Определение доказуемой формулы
- •Рассмотрим примеры получения доказуемых формул.
- •2.4. Производные правила вывода
- •Упражнения
- •2.5. Определение формулы, выводимой из совокупности формул н
- •2.6. Понятие вывода
- •2.7. Основные правила выводимости
- •2.8. Доказательство некоторых законов логики
- •2.9. Проблемы аксиоматического исчисления высказываний
- •Вопросы для самоконтроля
- •3. Логика предикатов
- •3.1. Понятие предиката
- •3.2. Логические операции над предикатами
- •Упражнения
- •Кванторные операции
- •Упражнения
- •Определение формулы логики предикатов
- •3.5. Равносильные формулы логики предикатов
- •Упражнения
- •3.6. Предварённая нормальная форма
- •Выполнимость и общезначимость формул
- •Упражнения
- •Применение языка логики предикатов в математике и технике
- •Вопросы для самоконтроля
- •4. Основные положения теории алгоритмов
- •4.1. Интуитивное понятие алгоритма
- •4.2. Уточнение понятия алгоритма
- •4.3. Частично-рекурсивные и общерекурсивные функции
- •Упражнения
- •4.4. Машины Тьюринга
- •Упражнения
- •4.5. Понятие о нормальных алгоритмах Маркова
- •4.6. Алгоритмически неразрешимые проблемы
- •4.7. Сложность алгоритмов
- •Вопросы для самоконтроля
- •Ответы и решения
- •Раздел 1
- •Подраздел 1.3
- •Раздел 2
- •Раздел 3.
- •Раздел 4
- •Библиографический список
- •Список сокращений
- •Содержание
4.2. Уточнение понятия алгоритма
В истории математики
известны случаи длительных и безуспешных
попыток поиска алгоритмов решения
тех или иных задач. Одним из таких
примеров является Великая теорема
Ферма (сформулированная французским
математиком П. Ферма примерно в 1630 г.):
для любого натурального числа
уравнение
не имеет решений
в целых положительных числах
.
До настоящего
времени не известен алгоритм, позволяющий
для произвольного
определить, имеет данное уравнение
целочисленное решение или нет, хотя
частные случаи решения этой задачи
известны. Так, теорема доказана для
. В частном случае для
доказана противоположная теорема
(т.е. что решение существует) и известны
даже два ее эквивалентных решения:
где
– это первое
решение;
− это второе решение.
В алгоритмических проблемах речь обычно идет о существовании алгоритма для вычисления целочисленных значений функции, зависящей от целочисленного значения аргументов. Такие функции называют числовыми. Именно такой является функция, рассмотренная выше в теореме Ферма.
Рассмотрение в алгоритмических проблемах именно числовых функций может быть легко обосновано. Действительно, в математике большинство рассматриваемых функций определены на континуальных (от лат. continuum – непрерывное) множествах, например на множестве точек некоторого отрезка. В то же время на практике любая величина может быть измерена с ограниченной точностью, причем это ограничение точности является принципиальным. И определяется оно конечной разрешающей способностью измерительных приборов, вследствие чего множество значений любой физической величины является счетным (конечным).
Все эти значения измеряемой физической величины мы можем перенумеровать целыми числами и свести, таким образом, алгоритм вычисления любой имеющей практическое значение функции к алгоритму вычисления числовой функции.
Числовые функции, значения которых можно вычислить посредством применения некоторого алгоритма, называются эффективно вычислимыми (или просто вычислимыми) функциями. Поскольку понятие алгоритма в этом определении остается интуитивным, то и понятие вычислимой функции оказывается интуитивным.
Функции, определенные
не для всех значений аргументов,
называются частичными
(не всюду
определенными)
функциями. Функция называется
всюду определенной,
если область ее определения, т.е. множество
значений ее аргумента и область
значений функций, каждому из которых
сопоставлено некоторое
значение
аргумента, совпадают. Исследования
показали, что совокупность частично
вычислимых функций для самых разных
пониманий алгоритма оказывается одной
и той же. Все частичные функции, алгоритмы
вычисления которых известны, оказались
частично-рекурсивными (от лат. recursio
– возвращение). Частично-рекурсивные
функции –
это функции, определяемые особым образом
с достаточной математической строгостью.
А именно: если функция может быть получена
за конечное число шагов из некоторых
простейших функций с помощью операций
суперпозиции, примитивной рекурсии и
операции минимизации. Упомянутые
простейшие функции и операции мы
подробнее рассмотрим ниже.
С.К. Клини (американский логик и математик) высказал гипотезу о том, что класс алгоритмически вычислимых частичных функций совпадает с классом всех частично рекурсивных функций. Ранее аналогичную гипотезу относительно всюду определенных вычислимых функций выдвинул А Чёрч (американский логик и математик). Гипотезы Чёрча и Клини обычно объединяют в виде тезиса Чёрча.
Австрийский логик и математик К. Гёдель впервые описал класс всех рекурсивных функций как класс всех числовых функций, определяемых в некоторой формальной системе.
На основании тезиса Чёрча вопрос о вычислимости функции, имеющей нестрогое интуитивное понятие, тем не менее равносилен вопросу о ее рекурсивности. Но понятие рекурсивности – строгое, поэтому в определенных случаях можно доказать, что если решающая задачу функция не является рекурсивной, то и алгоритм ее вычисления не может быть построен.
Точное описание класса частично-рекурсивных функций совместно с тезисом Чёрча дает одно из возможных решений задачи об уточнении понятия алгоритма.
Другое решение было найдено Постом (американский логик и математик) и Тьюрингом (английский математик) независимо друг от друга. Основная мысль их заключается в том, что процессы, описываемые алгоритмами, может выполнять соответствующая машина. Тьюрингом и Постом были описаны в точных математических терминах классы машин, на которых можно осуществить или имитировать практически все алгоритмические процессы, которые когда-либо описывались математиками. Такие машины сейчас называют машинами Тьюринга. Исследования показали, что класс функций, вычислимых на машинах Тьюринга, в точности совпадает с классом всех частично- рекурсивных функций. Тем самым было получено еще одно подтверждение тезиса Чёрча.
Еще одним уточнением понятия алгоритма является понятие нормального алгоритма Маркова. В алгоритме Маркова исходные данные для вычислительного процесса записываются в виде слова – последовательности букв – символов. Вычислительный процесс сводится к преобразованию слов в соответствии с заданной программой. Оказалось, что класс функций, вычислимых с помощью нормальных алгоритмов, совпадает с классом частично-рекурсивных функций. Таким образом, все известные уточнения понятия алгоритма приводят к одному и тому же классу функций – частично-рекурсивным функциям. Это доказывает эквивалентность перечисленных уточнений.