Часть вторая - Камышинский технологический институт

advertisement
В. В. Сургутанов, О. О. Привалов
МАТЕМАТИЧЕСКАЯ
ЛОГИКА И
ТЕОРИЯ АЛГОРИТМОВ
ЧАСТЬ II
0101010101010101010101010101010101010101010101011010101010
1
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
КАМЫШИНСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ)
ГОУ ВПО «ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
В. В. Сургутанов, О. О. Привалов
Математическая логика и теория алгоритмов
Часть II
Учебное пособие
Волгоград
2010
1
УДК 510.6(075.8)
С 90
Рецензенты: доктор технических наук, доцент, профессор кафедры
«Системотехника» Саратовского государственного технического университета Н. П. Митяшин; коллектив кафедры «Программное обеспечение
вычислительной техники и автоматизированных систем» СГТУ
Сургутанов, В. В. МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ:
учеб. пособие. Часть II / В. В. Сургутанов, О. О. Привалов; ВолгГТУ,
Волгоград, 2010. – 80 с.
ISBN 978-5-9948-0385-1
Содержит лекционный материал, материал для практических занятий, методические указания по решению типовых задач, а также варианты заданий для семестровых работ.
Предназначено студентам технических вузов (направление обучения
«Информатика и вычислительная техника»).
Ил. 18.
Табл. 1.
Библиогр.: 7 назв.
Печатается по решению редакционно-издательского совета
Волгоградского государственного технического университета
Владимир Владимирович Сургутанов, Олег Олегович Привалов
МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ. Часть II
Учебное пособие
Редактор Пчелинцева М. А.
Компьютерная верстка Сарафановой Н. М.
Темплан 2010 г., поз. № 39К.
Подписано в печать 28. 12. 2009 г. Формат 60×84 1/16.
Бумага листовая. Печать офсетная.
Усл. печ. л. 5,0. Усл. авт. л. 4,88. Тираж 100 экз. Заказ № 2
Волгоградский государственный технический университет
400131, г. Волгоград, просп. им. В. И. Ленина, 28, корп. 1.
Отпечатано в КТИ
403874, г. Камышин, ул. Ленина, 5, каб. 4.5.

ISBN 978-5-9948-0385-1
2
Волгоградский
государственный
технический
университет, 2010
СОДЕРЖАНИЕ
1. ЛОГИКА ПРЕДИКАТОВ .......................................................................... 4
1.1. Язык логики предикатов ...................................................................... 4
1.2. Синтаксис языка ЛП ............................................................................ 9
1.3. Методика решения типовых задач.................................................... 10
1.4. Задачи для самостоятельного решения ............................................ 15
1.5. Проблема исчисления предикатов .................................................... 16
1.6. Автоматическое доказательство теорем в ЛП ................................. 20
1.7. Методика решения типовых задач.................................................... 25
1.8. Задачи для самостоятельного решения ............................................ 29
2. АЛЬТЕРНАТИВНЫЕ ЛОГИКИ .............................................................. 30
2.1. Алфавит и синтаксис языка нечеткой логики .................................. 30
2.2. Исчисление нечеткой логики ........................................................... 35
2.3. Альтернативные логики..................................................................... 38
2.4. Методика решения типовых задач.................................................... 39
2.5. Задачи для самостоятельного решения ............................................ 41
3. АЛГОРИТМИЧЕСКИЕ МОДЕЛИ .......................................................... 43
3.1. Формализация понятия алгоритма.................................................... 43
3.2. Машины Тьюринга ............................................................................ 44
3.3. Неразрешимые алгоритмические проблемы МТ ............................. 50
3.4. Примитивно рекурсивные функции ................................................. 53
3.5. Неразрешимые алгоритмические проблемы РФ ............................. 57
3.6. Задачи для самостоятельного решения ............................................ 60
4. ТЕОРИЯ СЛОЖНОСТИ .......................................................................... 62
4.1. Понятие о сложности решения задач ............................................... 62
4.2. NP-Полные (универсальные) задачи ................................................ 66
4.3. Задачи для самостоятельного решения ............................................ 67
5. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ ........................... 68
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ .................................................................... 77
СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ ........................................ 79
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ..................................... 80
3
1.
ЛОГИКА ПРЕДИКАТОВ
1.1. Язык логики предикатов
1.1.1. Ограниченность применения ЛВ. Рассмотрим классический
пример высказывания: «Все люди смертны. Конфуций человек. Следовательно, Конфуций смертен».
Формализуем его на языке ЛВ:
X – «Все люди смертны»,
y – «Конфуций человек»,
z – «Конфуций смертен».
Каждое из трех высказываний выражает обладание объектов какимилибо свойствами. Обладание объекта свойством можно интерпретировать
как принадлежность объекта множеству, все элементы которого обладают этим свойством.
На языке ЛВ высказывание из приведенного примера формализуется
так: F  X  y  z . Согласно смыслу операций, F  0 1  1 дает истину.
Но тогда высказывание: «Не все люди смертны. Конфуций человек. Следовательно, Конфуций смертен» является истиной. На самом же деле, нетрудно заметить, что это высказывание может быть как истиной, так и
ложью. Получено неоднозначное прочтение формулы.
Такое противоречие происходит из-за того, что высказывания относительно принадлежности множеству не всегда являются элементарными. Так, высказывания y и z – элементарные, неделимые, в то время как X
– сложное высказывание, выражающее принадлежность множеству
смертных, не конкретного объекта, а абстрактного «человека». Итак, X не
элементарное высказывание. Вообще, высказывания об обладании объектов свойствами принято называть предикатами.
Работу со сложными высказываниями о множествах объектов и предикатах осуществляет логика предикатов (ЛП). Определимся с основными символами, которые встречаются в высказываниях ЛП.
1.1.2. Предметные константы и переменные. В языке ЛП присутствуют символы, обозначающие имена объектов, каждый из которых
принадлежит какому-либо множеству объектов. Это так называемые
предметные константы. Например, «Конфуций», «Сидоров» – это элементы множества имен (псевдонимов, фамилий) людей. Предметные
константы в языке ЛП обозначают так: a, b и т. д.
Наряду с константами используются обобщенные имена объектов –
предметные переменные. Они применяются для обозначения произвольного элемента множества. Например «человек», «имя». Обозначаются
так: x, y, z и т. д.
1.1.3. Предикатные символы. В рассмотренном ранее примере была
4
попытка сделать заключение о вхождении «Конфуция» из множества
«людей» в множество «смертных», или о свойстве объекта «Конфуция»
быть смертным.
Обозначим P (a ) логическое утверждение «a обладает свойством P»
или «a принадлежит множеству объектов, которые обладают свойством
P». Например: «Конфуций принадлежит множеству смертных». Такое
высказывание элементарно. Такими высказываниями будут y и z. Но часто, делая обобщения, высказывания касаются не конкретного объекта a,
а совокупности объектов. Таким является высказывание: «Человек обладает свойством P» или P (x) , где x может быть любой константой из множества людей. P и есть предикат на множестве значений переменной x.
В ЛП предикат есть логическая функция, применяемая к предметной переменной. Подставив те или иные константы вместо переменной,
аргумента предиката, получим элементарное высказывание. Предикат расчленяет исходное множество объектов (например, людей) на два подмножества. Одно – где все объекты обращают предикат в единицу (обладают
свойством смертности), а другое, где все объекты обращают его в ноль.
1.1.4. Способы задания предикатов. Для предиката можно построить таблицу истинности, в которой слева перечисляются все элементы
исходного множества (предметные константы), а справа – значение предиката на этих элементах. Например, в предикате смертности на множестве людей слева в таблице находится «Конфуций», а справа от него – 1.
Есть альтернативный способ задания предиката – графический. В
этом случае на множестве предметных констант обозначают области истинности и лжи предиката. На рис. 1 приведен пример графического задания предиката.
Рис. 1. Графическое задание предиката
Предикаты позволяют производить исчисление, то есть делать заключение об обладании каким-либо определенным свойством. Именно
такое суждение и необходимо сделать в задаче из примера.
1.1.5. Понятие n-местного предиката. Предикат P (x) одноместный,
имеет один аргумент и проверяет свойство одного объекта. Если же ар5
гументов n, то предикат P(x1, … xn) называют n-местным и тогда он распознает свойство, которое объединяет систему из n объектов. Например,
пара объектов из того же множества людей, может обладать свойством
«быть отцом и сыном». Тогда P(x, y) можно понимать как логическое
утверждение о том, что x является отцом y. В таблице истинности слева
придется перебрать все возможные пары предметных констант (интерпретации предметных переменных) и справа явно указать для каждой из
пар, обладает ли данная пара свойством. Тогда, подставляя в аргументы
конкретные константы, предикат выдаст суждение об обладании парой
этим свойством или не обладании им.
Таким образом, в столбцах слева имеем декартово произведение
двух множеств. Переменная x принимает все значения из одного множества, а y из другого (хотя может и из того же самого). А предикат можно
рассматривать как отношение на декартовом произведении множеств (его
аргументов). Это отношение есть подмножество – набор интерпретаций
аргументов, при которых предикат обращается в единицу.
Смысл терминов «отношение» и «декартово произведение» виден из
примера:
xX{«Конфуций», «Гитлер», «студент Иванов»} – переменная x из
множества людей X.
yY{«Фашист», «Философ», «Двоечник»} – переменная y из множества стилей жизни Y.
zZ{«Русский», «Немец», «Китаец»} – переменная z из множества
национальностей.
Таблица 1
Табличный способ задания предиката
x
«Конфуций»
«Конфуций»
«Конфуций»
«Конфуций»
«Конфуций»
«студент Иванов»
«студент Иванов»
«Гитлер»
«Гитлер»
«Гитлер»
y
«Философ»
«Философ»
«Философ»
«Фашист»
«Двоечник»
…
«Двоечник»
…
«Фашист»
…
z
«Русский»
«Немец»
«Китаец»
…
…
…
«Русский»
…
«Немец»
…
P
0
0
1
0
0
0
1
0
1
0
Выбрав в качестве предметной области историю, определим предикат P(x, y, z) как свойство набора аргументов «быть исторической личностью». Таблица истинности предиката P примет вид декартова произведения из 27 всевозможных троек значений аргументов.
Таким образом, предикат P будет истинен в трех случаях, а в остальных 24-х ложен. Если оставить в таблице лишь строки, дающие единицу,
6
то получится подмножество из трех элементов – отношение на декартовом произведении, выборка точек в декартовом пространстве.
В языке ЛП в качестве предикатных символов используют заглавные
буквы P, A, B, …
1.1.6. Функциональные символы. Фактически любой предикат есть
отображение аргументов на логическое множество 1 и 0. В языке ЛП
вводится также понятие функции. Функция f(x1, … xn) = xn+1 производит
отображение набора переменных предметной области x1, … xn в значение
на предметной области xn+1. Таким образом, функция не есть логическое
высказывание. Но конструкции речи, выражающие функции, могут быть
переведены на язык предикатов.
1.1.7. Связь предиката и функции. Например, пусть f(x, y) функция,
которая возвращает национальность человека, имя которого задается аргументом x, а «стиль жизни» – переменной y. При этом внутреннее содержание (тело) функции можно описать так, чтобы она вычисляла свое
значение по таблице истинности некоторого предиката, например, введенного ранее P(x, y, z). Для этого свой результат она должна получать из
третьего столбца строки, значение в первых двух которой соответствует
значениям ее аргументов.
Таким образом, существует некоторая связь между (n-1)-местной
функцией и n-местным предикатом. Можно сопоставить и обратную связь.
Рассмотрим функцию z  f ( x, y)  x  y , аргументами которой являются натуральные числа 1, 2, 3, … k. Такая функция может служить
основой предиката P(x, y, z), правый столбец которого будет равен 1,
только в тех интерпретациях xyz, которые обладают свойством x  y  z .
Таким образом, перебрав все k3 возможных вариантов троек натуральных
чисел, можно составить предикат, который вырежет точки трехмерного
пространства, на которых z  x  y .
Из вышесказанного следует, что n-местную функцию можно задать
(n + 1)-местным предикатом и наоборот.
1.1.8. Необходимость кванторов. Подведем итоги. Предикаты позволяют преобразовывать суждения о свойствах и функции на множествах
в логические функции, логические же функции подлежат исчислению логики, построенной на принципах алгебры логики, то есть с использованием таблицы истинности и операций БА для вычисления истинностного
значения сложного высказывания с предикатами.
Но исчисление сталкивается с двумя сложностями:
1. Декартово произведение может быть бесконечно. Множества могут быть бесконечными, что делает невозможным построение таблицы
истинности предиката, ввиду бесконечного числа интерпретаций переменных в ней.
7
2. Использование БА затруднено тем, что к сложным высказываниям P(x) она не применима, а применима лишь к простым – P(a).
Обе проблемы иногда удается решить, используя кванторы, – символы, уточняющие структуру таблиц истинности. Применяя кванторы,
иногда удается производить исчисление.
В примере уточнением структуры предиката «смертен» служит слово «Все». Это уточнение решает обе проблемы. Во-первых, оно позволяет
не конкретизировать строки таблицы истинности, считая правый столбец
при всех интерпретациях равным единице. Во-вторых, оно позволяет
рассматривать предикат «смертен» как элементарное высказывание алгебры логики (как атом), так как P(x) в данном случае равен единице для
любого x, то есть целостный.
Существуют и другие уточнения: «хотя бы один элемент множества», «не более пяти элементов множества» и т. п. Такие уточнения слабо конкретизируют таблицу истинности, но тем не менее они важны, и
конструкции, эквивалентные им, часто присутствуют в высказываниях.
1.1.9. Кванторы в одноместных предикатах. Определим понятие
квантора всеобщности для одноместного предиката. Итак,  – квантор
всеобщности в применении к предикату P(x) в виде записи x[P(x)] в
естественном языке эквивалентен заданию структуры предиката как:
«Всякий объект x множества X обладает свойством P». Предикат с такой
структурой становится элементарным высказыванием и имеет логическую интерпретацию: x[P(x)] – «истина», если таблица истинности предиката на множестве x состоит из одних единиц, и «ложь», если в таблице истинности не все единицы. Запись x[P(x)] эквивалентна конъюнкции элементарных высказываний:
P(a1 ) ... P(ai ) ... P(an ),
где ai – предметные константы, n – мощность множества X.
Таким образом, одноместный предикат, зафиксированный квантором
всеобщности, вырождается в нульместный. Он становится элементарным
высказыванием и рассматривается как атом алгебры логики, теряя зависимость от понятия множеств.
В ЛП вводится также понятие квантора существования – . В применении к предикату P(x) в виде записи x[P(x)] он задает структуру предиката P как: «Существует хотя бы один объект x из множества X, обладающий свойством P». Это сложное высказывание тоже может быть
представлено в виде элементарных: x[P(x)] – «истина», если в таблице
истинности P есть хотя бы одна единица, и «ложь», если в таблице истинности все значения функции равны нулю. То есть
xP( x)  P(a1 )  ...  P(ai )  ...  P(an ) .
8
1.1.10. Разделители и логические связки. В языке ЛП понятие логических связок и разделителей полностью соответствует определению
этих понятий в ЛВ.
1.1.11. Алфавит языка логики предикатов. Определившись с символами языка ЛП, назовем алфавит языка ЛП: кванторы, предикатные символы, функциональные символы, предметные константы и переменные,
логические связки и разделители. Других символов в ЛП нет. Имея все
возможные конструкции, можно описать связь между конструкциями
языка высказываний и формального языка ЛП.
1.2. Синтаксис языка ЛП
1.2.1. Терм ЛП. Все вхождения в формулу ЛП объектов описываются тремя возможными формами, называемыми термами:
1. Всякая предметная константа a – терм.
2. Всякая предметная переменная x – терм.
3. Функция, примененная к термам – терм. То есть f ( x, a, y, b...) является термом.
1.2.2. Атом ЛП. Атомом в ЛП называется n-местный предикатный
символ, примененный к своим аргументам, термам. P(t1, … tn) – атом, t1,
… tn – термы.
Таким образом, исчисление ЛП возможно проводить методами ЛВ,
считая предикаты атомами, но для этого необходимо устранить в формуле ЛП влияние термов – объектов, превращающих предикаты из простых
высказываний в сложные логические функции.
1.2.3. ППФ ЛП. Подобно ЛВ определяется понятие ППФ ЛП:
1. Все атомы есть ППФ.
2. Если M1 и M2 ППФ, то M 1  M 2 , M 1  M 2 , M 1  M 2 , M 1  M 2 ,
M 1  M 2 , M 1 – ППФ.
3. Если x – предметная переменная, а M – ППФ, то x(M ) , x(M )
– ППФ.
4. Нет других способов построения ППФ.
Теперь имеется возможность формализации в формулы ЛП высказываний относительно свойств объектов.
Высказывание о Конфуции формализуется в ЛП так:
xP( x)  P(a) ,
где x – переменная на множестве людей X, а – константа «Конфуций», а  X. P – предикат на множестве X, истинный для подмножества
объектов, обладающих свойством быть смертными.
1.2.4. Схемы высказываний. Итак, ППФ может содержать кванторы,
9
с помощью которых можно формализовать целые классы высказываний.
Кроме класса высказываний вида: «Все объекты обладают свойством
P» ( xP(x) ) и «Хотя бы один объект обладает свойством P» ( xP(x) ),
существуют и другие схемы высказываний. Многие из них легко выражаются через известные кванторы  и . Это так называемые численные
кванторы.
Например, «Не более чем один объект обладает свойством P»:
xyP( x)  P( y)  E ( x, y) ,
где Е – вспомогательный предикат равенства двух объектов.
Еще пример, «Ровно один объект обладает свойством P»:
xP( x) xyP( x)  P( y)  E ( x, y) .
Читателю рекомендуется получить схему: «Ровно два объекта обладают свойством P».
1.2.5. Свободные и связанные переменные. Если к формуле применен квантор, x или x , то переменная x в данной формуле называется
связанной, иначе свободной. Если в формуле все переменные связаны, то
такая формула называется замкнутой, иначе незамкнутой.
Каждая связанная переменная понижает размерность исходного
предиката на единицу. Так P( x1 , x2 , ... xn ) – n-местный предикат.
x1x2 P( x1 , x2 , ... xn ) – (n–2)-местный предикат. Если удается рассматривать формулу как замкнутую, то в ней все предикатные символы – элементарные высказывания алгебры логики, нульместные предикаты.
Тогда каждый предикат в формуле рассматривается как элементарное высказывание алгебры логики и появляется возможность исчислять
предикаты. Таким образом, важный вывод: исчисление ЛП методами ЛВ
возможно только для замкнутых формул. Формула о Конфуции замкнута,
а значит, высказывание о Конфуции подлежит исчислению его истинности или лживости.
1.3. Методика решения типовых задач
1.3.1. Формализация высказываний на языке логики предикатов.
Высказывания логики предикатов отличает наличие предметных констант, переменных, предикатных и функциональных символов, а также
кванторов всеобщности и существования.
Рассмотрим пример. «Пусть, функция y  f (x) определена на отрезке a, b и имеет в точке с(a, b) производную f (c)  0 . Тогда, если
f (c)  0 , то функция f (x) возрастает в точке x  c , если же f (c)  0 ,
то функция f (x) убывает в точке x  c ».
1. На первом этапе необходимо выделить в высказывании предметные константы и переменные. Символы, обозначающие имена объектов,
10
каждый из которых принадлежит какому-либо множеству объектов, –
это так называемые предметные константы. Предметные константы в
языке логики предикатов будем обозначать так: a, b, …
Наряду с константами используются обобщенные имена объектов –
предметные переменные. Они применяются для обозначения произвольного элемента множества. Обозначаются x, y, z, …
Множества объектов обозначают: X, Y, Z…
Сначала определим множества.
F – множество функций числового аргумента с результатом типа
«точка, число, координата».
X – множество переменных типа «точка, число, координата».
C – множество констант типа «точка, число, координата».
Предметные переменные: y, x, a, b, c  X , f , f   F .
Предметные константы: 0  С.
2. На втором этапе выделяют предикаты. Обозначим P(a) – логическое высказывание «a обладает свойством P» или «a принадлежит множеству объектов, которые обладают свойством P». Например: «Число
пять принадлежит множеству объектов (чисел), которые обладают свойством быть нечетными». Такое высказывание элементарно. Но часто, делая обобщения, высказывания касаются не предметных констант, а предметных переменных, совокупности объектов. Таким является высказывание: «Числа обладают свойством быть нечетными» или P(x). P и есть
предикат на множестве значений переменной x.
В ЛП предикат есть логическая функция, применяемая к предметной
переменной. Подставив те или иные константы вместо переменной, аргумента предиката, получим элементарное высказывание.
Предикат P(x) одноместный, имеет один аргумент и проверяет свойство одного объекта. Если же аргументов n, то предикат P(x1, … xn) называют n-местным и тогда он распознает свойство, которое объединяет систему из n объектов. Например, пара объектов из того же множества чисел может обладать свойством «являться одинаковыми по модулю и разными по знаку». Тогда P(x, y) можно понимать как логическое утверждение
о том, что x   y . Аргументом такого предиката является декартово
произведение множеств x и y. В языке ЛП в качестве предикатных символов используют символы P, A, B, …
Определившись с предметными константами и переменными, попробуем определить предикаты высказывания из примера. Выделим
утверждения о свойствах:
« y  f (x) » – «x, y и f обладают общим свойством: y является значением функции f для заданного аргумента x, или в обозначениях:
P1 ( f  F , x  X , y  X );
11
«отрезок [a, b] » – «o обладает свойством являться отрезком с левой
границей a и правой границей b», или в обозначениях:
P2 (o  O, a  X , b  X ) .
На данном этапе был обнаружен новый математический объект – отрезок o  O, где O – множество отрезков на числовой оси.
«Функция y  f (x) определена на отрезке [a, b] » – «o обладает
свойством являться отрезком, входящим в область определения функции
f, или в обозначениях:
P3 (o  O, f  F ) .
«с  (a, b)» – «c > a и b > c». Для формализации данных утверждений
необходим предикат «объект x обладает свойством быть больше объекта y»:
P4 ( x, y ) .
Аргументы могут быть любых типов, предполагающих качественную
оценку объектов. Это могут быть числа, координаты точек, размер и т. д.
Вообще, в рассматриваемых примерах формализация субъективна.
Например, в последнем случае можно было ввести предикат «число
находится внутри интервала». При создании исчислений для выбранной
предметной области необходимо иметь базовый набор объектов и, исходя
из них, формулировать предикаты, по возможности описывая новые
свойства путем комбинации уже введенных свойств.
Следующая часть высказывания из примера: «функция f  обладает
свойством являться производной функции f».
P5 ( f   F , f  F ) .
«Функция f(x) возрастает в точке x = c» или, подробнее: «функция f
обладает свойством возрастать при значении своего аргумента, равном
c», или в обозначениях:
P6 ( f  F , c  X ) .
«Функция f (x) убывает в точке x  c » – «функция f обладает
свойством убывать при значении своего аргумента, равном c», или в обозначениях:
P7 ( f  F , c  X ).
Окончательно имеем семь предикатов:
P1 ( f  F , x  X , y  X ) : «x и y – аргумент и значение функции f»,
P2 (o  O, a  X , b  X ) : «o – отрезок с левой границей a и правой
границей b»,
P3 (o  O, f  F ) : «o – отрезок, входящий в область определения
функции f»,
P4 ( x, y ) : «x > y»,
12
P5 ( f   F , f  F ) : « f  – производная функции f».
P6 ( f  F , c  X ) : «f (x) при x = c – возрастает».
P7 ( f  F , c  X ) : «f (x) при x = c – убывает».
3. Для формализации утверждений необходимо ввести понятие
функционального символа. Итак, функция f ( x1 , ... xn )  xn1 производит
отображение набора переменных предметной области x1 , ... xn в значение
переменной xn+1. Таким образом, функция не есть логическое высказывание. Но конструкции речи, выражающие функции, могут быть переведены на язык предикатов.
Из вышесказанного следует, что n-местную функцию можно задать
(n+1)-местным предикатом и наоборот.
В приведенном примере присутствует конструкция « f (c)  0 ». f (c)
есть значение типа «число». Для формализации данного утверждения
необходимо определить функциональный символ  ( f   F , c  X )  X , задающий отображение вида:  ( f , c)  f (c). Учитывая, что P4 ( x, y ) – предикат «x > y», утверждение « f (c)  0 » запишется так: P4 ( ( f , c), 0).
Выше было сказано, что существует связь между функцией и предикатом. Значит, двуместный функциональный символ  ( f , c), можно заменить трехместным предикатом:
P(  X , f   F , c  X ),
возвращающим истину, если тройка его аргументов удовлетворяет свойству   f (c) .
В данном конкретном примере можно не вводить ни нового функционального, ни нового предикатного символа. Для этого попытаемся воспользоваться уже имеющимися предикатами. Выражение « f (c)  0 » эквивалентно выражению « P1 ( f , x,  ) и, если x  c, то P4 ( , 0) ». Итак, в
данном примере удалось избежать введения функциональных символов.
4. В высказываниях часто происходит уточнение структуры предикатов. Производится такое уточнение за счет использования кванторов. 
– квантор всеобщности в применении к предикату P(x) в виде записи
x[P(x)] в естественном языке эквивалентен заданию структуры предиката как: «Всякий объект x множества X обладает свойством P».  – квантор существования. В применении к предикату P(x) в виде записи
x[P(x)] он задает структуру предиката P как: «Существует хотя бы один
объект x из множества X, обладающий свойством P».
Напомним высказывание из примера: «Пусть функция y  f (x)
определена на отрезке [a, b] и имеет в точке c  (a, b) производную
13
f (c)  0 . Тогда, если f (c)  0 , то функция f (x) возрастает в точке
x  c ; если же f (c)  0 , то функция f (x) убывает в точке x  c ».
В приведенном примере найдено 7 предикатов. Фраза в явном виде
не содержит уточнений типа «всякий» или «существует». Но их наличие
все-таки подразумевает.
Так, например, изменения смысла не произойдет, если перефразировать: «Для всякой функции y  f (x) (f, x, y – любые), если f определена
на отрезке o: [a, b] (o, a, b – любые) и имеет в точке с(a, b) (с – любое)
производную f (c)  0 ( f  – любая; какая она будет, зависит от предиката P5). Тогда, если f (c)  0 , то функция f (x) возрастает в точке
x  c ; если же f (c)  0 , то функция f (x) убывает в точке x  c ».
Если же перефразировать по другому: «Существует такая функция
y  f (x) …», то фраза изменит смысл и приведенная в примере фундаментальная теорема математического анализа будет описывать не все
множество функций.
Или далее по тексту: «…существует такой отрезок o, что если f
определена на отрезке o …». И в этом случае фраза не будет эквивалентна исходной, т. к. в исходной теореме предполагают ее действие на любом отрезке из области определения функции. А измененная фраза предполагает наличие хотя бы одного такого отрезка.
5. На заключительном этапе предикаты, связанные кванторами,
принимают за атомы (элементарные высказывания) и формализуют высказывание, учитывая логические связки, присутствующие в нем.
Формализуем:
1. «Для всякой функции y  f (x) (f, x, y – любые)»:
fxyP1 ( f ( x, y)) .
2. «f определена на отрезке o: [a, b] (o, a, b – любые)»:
oab[ P2 (o, a, b)  P3 (o, f )].
3. «Имеет в точке c  (a, b) производную f (c)  0 » или, детализируя: «Для любого c, такого, что c > a и c < b, существует производная
f  функции f и f (c)  0 ». Формализацию данного участка произведем
по шагам:
 «Для любого c, такого, что c > a и c < b, существует производная
f  функции f»: c f f P4 (c, a)  P4 (b, c)  P5 ( f , f ) ,
 выражение « f (c)  0 » эквивалентно выражению «При условии
P1 ( f , x, y) и, если x   c , верно P4 ( y , 0) или P4 (0, y ) »:


xy P1 ( f , x, y)  P4 ( x, c)  P4 (c, x)  P4 ( y,0)  P4 (0, y) .
14
В итоге:

cf P4 (c, a)  P4 (b, c)  P5 ( f , f )

 xy P1 ( f , x, y)  P4 ( x, c)  P4 (c, x)  P4 ( y,0)  P4 (0, y) .


4. « f (c)  0 »:  x y P1 ( f , x, y)  P4 ( x, c)  P4 (c, x)  P4 ( y,0) .
5. «Функция f (x) возрастает в точке x  c »: P6 ( f , c) .
6. « f (c)  0 »:  x   y   p1  f , x, y   P4 x, c   P4 c, x  P4 0, y .
7. «Функция f (x) убывает в точке x  c »: P7 ( f , c) .
Окончательно:
 xy
fxyoabcf 
 P1  f , x, y   P2 o, a, b   P3 o, f   P4 c, a   P4 b, c   P5  f , f   P1  f , x , y   P4 x , c 


 P4 c, x   P4  y ,0  P4 0, y   P4  y ,0  P6  f , c   P4 0, y   P7  f , c 
 .
Задачи для самостоятельного решения
1. Пользуясь лекционным материалом, дать определения терминов:
1) предикат,
10) связанная переменная,
2) логика предикатов,
11) n-местный предикат,
3) предметные константы,
12) декартово произведение мно4) предметные переменные,
жеств,
5) одноместный предикат,
13) отношение,
6) квантор всеобщности,
14) квантор,
7) квантор существования,
15) свободная переменная,
8) терм,
16) замкнутая формула.
9) численные кванторы,
2. Построить таблицу истинности предиката:
1) P(x), где x принадлежит множеству студентов вашей группы, а P
– свойство студента учиться на четверки и пятерки;
2) P(x, y), где x и y принадлежат множеству девушек вашей группы
обучения, а P – свойство двух девушек являться подругами.
3. Изобразить графически предикат:
1) P( x, y )  x  y,
2) S ( x, y )  x  y; Q( x, y )  ( x  y  2),
3) W ( x, y )  Q( x, y )  S ( x, y ).
4. Формализовать численное высказывание:
1) «Ровно два объекта обладают свойством P»,
2) «Хотя бы три объекта обладают свойством P»,
3) «Не более двух объектов не удовлетворяют свойству P».
5. Формализовать высказывание логики предикатов:
15
1) «Если функции y и z дифференцируемы и если y( x0 )  z( x1 ) , то
x1  x0 , а y ( x1 )  z ( x0 ) »;
2) «Если все студенты данной аудитории умеют решать задачи, то
существует студент, который умеет решать задачу о нахождении корней
квадратного уравнения»;
3) «Функция является не убывающей, если при x1  x2 выполняется
f ( x1 )  f ( x 2 ) .
6. Ответить на следующие вопросы:
1) есть ли отличия между свойством объекта и фактом принадлежности объекта множеству?
2) для чего нужны кванторы?
3) для чего в исчислении предикатов требуется замкнутость формулы?
4) что происходит с предикатом, при связывании очередного его
аргумента квантором?
1.4. Проблема исчисления предикатов
1.4.1. Термины исчисления ЛВ в ЛП. В исчислении ЛП отталкиваются от соответствующих методов ЛВ. Интерпретацией в ЛП называется набор значений переменных, придающих формуле ЛП логический
смысл. Для получения интерпретации необходимо зафиксировать аргументы всех предикатов, то есть вычислить значения всех термов. Для этого все переменные фиксируют и вычисляют все предикатные функции.
После фиксации аргументов, получив интерпретацию, можно вычислить предикаты на ней, и тем самым превратить формулу ЛП в формулу алгебры логики.
Например,
F  P( x)  P( y)  E ( x, y)  P(5)  P(6)  E (5, 6)  0 1  1 .
Затем, используя смысл логических связок и разделителей, можно
вычислить истинностное значение высказывания.
1. Формула ЛП называется выполнимой, если она истинна хотя бы в
одной интерпретации.
2. Формула ЛП называется общезначимой, если она истинна во
всех интерпретациях своих переменных.
3. Формула ЛП называется противоречивой, если она ложна во
всех интерпретациях предметных переменных.
4. Формула ЛП называется опровержимой, если она ложна хотя бы
в одной интерпретации.
Видно, что определения идентичны соответствующим определениям ЛВ с той лишь разницей, что там каждая предметная переменная имела только два значения 1 или 0, а здесь таких значений может быть бес16
конечно много.
1.4.2. Понятие логического следования в ЛП. Это понятие полностью аналогично ЛВ. Формула B есть логическое следствие формул A1,
A2, … An тогда и только тогда, когда для всякой интерпретации I, в которой истинна формула A1  A2 ... An , формула B также истинна.
Теорема 1.1. Формула B есть логическое следствие формул A1, A2, ... An
тогда и только тогда, когда общезначима формула:
(1.1)
A1  A2 ... An  B.
Теорема 1.2. Формула B есть логическое следствие формул A1, A2, … An,
тогда и только тогда, когда противоречива формула:
(1.2)
A1  A2 ... An  B .
Логическое следование применяется в формулировках теорем.
1.4.3. Сквозной пример: формализация высказывания ЛП. Ниже
приведен пример формализации теоремы в терминах логического следования: «Всякий, кто знает пароль, может работать с базой данных d. Тот,
кто не знает пароль, не допускается к работе с экспертной системой е, содержащей базу данных d. Ни один из сотрудников лаборатории не может
работать ни с одной базой данных. Следовательно, никто из сотрудников
лаборатории не допускается к работе с системой e».
Теорема содержит следующие посылки:
A1  xM ( x)  U ( x, d ) ,
где x – переменная из множества X («кто»), M – свойство объектов
«знать пароль», d – предметная константа из множества баз данных D,
U – свойство возможности объекта из X работать с базой данных из D.
A2  x M ( x)  V ( x, e) ,
где e – предметная константа из множества экспертных систем E,
причем D  E, V – свойство возможности работать объекту из X с экспертной системой из E.
A3  xy P( x)  U ( x, y ) ,
где P – свойство объекта из X быть сотрудником лаборатории, y –
переменная из множества баз данных D.
И заключение:
B  x P( x)  V ( x, e) .
Тогда доказать теорему – значит, доказать противоречивость формулы:
F  A1  A2  A3  B .






1.4.4. Ограниченность применения СИВ. Для доказательства теорем
можно воспользоваться содержательным или формальным исчислением.
Но применение СИВ проблематично, так как метод таблиц истинности не
17
работает для бесконечных множеств. Более того, ниже будет показано,
что мультипликативные методы часто также не справляются с задачей
исчисления предикатов. Остается лишь надеяться на формальные методы
– метод резолюций. В любом случае для исчисления ЛП, как и ЛВ, необходима стандартизация формул, то есть нормальные формы.
1.4.5. Нормальные формы ЛП. Рассмотрим так называемую предваренную нормальную форму (ПНФ). ПНФ для формулы F ЛП называется
представление формулы в виде Q1 ... Qi ... Qn M  , где Qi есть кванторы
xi либо xi , а М – формула в виде КНФ, в которой атомами являются
предикаты. Q1 … Qi … Qn называется префиксом, а М – матрицей формулы F. Ниже представлены соотношения, позволяющие любую формулу ЛП приводить к ПНФ.
Для перевода в ПНФ необходимо:
1) перенести все кванторы в начало формулы,
2) представить M в виде КНФ.
1.4.6. Эквивалентные преобразования ЛП. Для переноса кванторов потребуются соотношения, которые рекомендуется доказать самостоятельно.
(1.3)
QxF ( x)* G  QxF ( x) * G .
Это соотношение позволяет расширять зону действия квантора Q,
связывающего переменную x. При условии, что формула G, попадающая
в зону влияния квантора Q, не содержит переменной x, квантор «проносят» через операцию *, где * – конъюнкция или дизъюнкция.
Если же G содержит x, то применима формула:
(1.4)
Q1 xF ( x)* Q2 xG( x)  Q1 xQ2 zF ( x) * G( z) .
То есть, при «проносе» квантора вводим новую переменную z, чтобы
каждый квантор в итоге не относился к переменной другого квантора.
Если Q2 нет, то просто переименовываем x из G.
Но есть два частных случая этой формулы:
(1.5)
xF ( x) xG( x)  xF ( x)  G( x) ,
(1.6)
xF ( x)  xG( x)  xF ( x)  G( x) .
Полученных четырех соотношений хватает для того, чтобы «проносить» кванторы через операции конъюнкции и дизъюнкции. Еще два закона де Моргана для кванторов позволяют избавляться от отрицаний над
кванторами, «спуская» отрицание к атомам.
xF ( x)  x F ( x) ,
(1.7)
 
 xF ( x)  xF ( x) .
(1.8)
Если считать F атомом, а кванторы – функциями, видно, что кванторы  и  есть двойственные функции.
18
1.4.7. Алгоритм приведения к ПНФ. Соотношения (1.3)–(1.8) позволяют приводить любую формулу ЛП к стандартному виду ПНФ.
При этом поступают следующим образом:
1. Устраняются связки импликации и эквивалентности с использованием соотношений ЛВ.
2. Отрицания «спускаются» до атомов при помощи соотношения де
Моргана ЛВ.
3. Кванторы уводятся в префикс с помощью (1.3)–(1.8).
4. Матрица приводится к КНФ по свойствам булевых операций.
1.4.8. Сквозной пример: приведение к ПНФ. Ниже следуют шаги,
приводящие формулу F  A1  A2  A3  B к ПНФ.


 xyP( x)  U ( x, y )  xP( x)  V ( x, e).
F  xM ( x)  U ( x, d ) x M ( x)  V ( x, e) 
1. Устранение импликации:



 
F  x M ( x)  U ( x, d )  x  М ( x)  V ( x, e) 


 xy P ( x)  U ( x, y )  x P ( x)  V ( x, e) .
2. Устранение отрицания квантора в последнем дизъюнкте:
F  x M ( x)  U ( x, d )  x  M ( x)  V ( x, e) 





 xyP ( x)  U ( x, y) xP ( x)  V ( x, e)  .
3. Формирование префикса:
F  xy M ( x)  U ( x, d )  М ( x)  V ( x, e)  P ( x)  U ( x, y)  










 x P ( x)  V ( x, e) .
«Пронос» квантора существования:
F  xyz
M ( x )  U ( x , d )  M ( x )  V ( x , e)  P ( x )  U ( x , y )  P ( z )  V ( z , e) .
4. Приведение матрицы к КНФ.
F  xyz
M ( x )  U ( x , d )  M ( x )  V ( x , e )  P ( x )  U ( x , y )  P ( z )  V ( z , e) .










1.4.9. Проблема квантора существования. Отметим, что если в ПНФ
все переменные связаны кванторами всеобщности, то общезначимость
матрицы приводит к общезначимости всей ПНФ. Этот эффект уже упоминался при описании квантора всеобщности. Так, x[M(x)] = 1, только
если M(x) = 1 во всех интерпретациях x, то есть когда M общезначима.
19
Доказательство общезначимости матрицы можно произвести мультипликативными методами, считая предикаты элементарными высказываниями.
Если же некоторые переменные связаны квантором существования,
то общезначимость ПНФ уже не требует общезначимости матрицы, так
как квантор существования обращает ПНФ в 1 при наличии хотя бы одной интерпретации, дающей истину матрицы. Это означает невозможность применения мультипликативных методов доказательства и СИВ
вообще. Остается последняя попытка воспользоваться для доказательства
теорем формальными подходами.
1.5. Автоматическое доказательство теорем в ЛП
1.5.1. Требование замкнутости формул. Необходимо отметить, что
даже формальный подход в ЛП применим не всегда. Для его использования требуется замкнутость формулы F , образующей ПНФ отрицания
теоремы.
Допустим обратное. Пусть F не замкнута, тогда существует хотя
бы один предикат Pi со свободной переменной x. А это значит, что Pi не
является элементарным высказыванием для алгебры логики. Этот предикат перестает быть логической переменной, превращаясь в логическую
функцию от x. Причем, x никак не конкретизируется. При этом, если x
принадлежит бесконечному множеству предметных констант, то существует бесконечно много различных прочтений формулы F , что неприемлемо для любого исчисления. Таким образом, формальному исчислению подлежат ПНФ с нульместными предикатами.
1.5.2. Формальный вывод в ЛП. Было отмечено, что к матрице неприменимо СИВ, из-за наличия кванторов существования в префиксе
ПНФ. Формальный подход и теорема дедукции позволяют избавиться от
кванторов существования. Для общезначимых формул теорема дедукции
позволяет заменять вывод на импликацию. Это значит, что любая формула, сохраняющая все единицы ПНФ, выводится из ПНФ и будет считаться общезначимой. Процесс устранения кванторов существования, по принципу дедукции называется элиминированием квантора существования.
1.5.3. Элиминирование квантора существования. Допустим, переменная x в матрице ПНФ связана квантором существования. И пусть левее x в префиксе есть кванторы всеобщности переменных y1 , ... y n . Такая ПНФ формализует высказывание: «для каждого y1 , ... y n , найдется
x, …». Общезначимость такого высказывания эквивалентна заданию некоторой функции. Эта функция для каждой интерпретации переменных
y1 , ... y n находит значение, принимаемое x, такое, которое обращает
20
ПНФ в единицу. Но тогда можно утверждать, что:
y1 ... ynxM ( y1 , ... yn , x)  y1 ... yn M ( y1 , ... yn , x  f ( y1 , ... yn ))  . (1.9)
При этом не уточняется вид функции f, это позволяет считать, что
для каждой интерпретации y1 , ... y n , эта функция генерирует именно то
значение x, о существовании которого «предполагал» квантор существования.
Если же квантору существования не предшествуют кванторы всеобщности, то функция нульместная, попросту константа, то есть:
(1.10)
x M ( y1 , ... y n , x)  M ( y1 , ... y n , x  a) .


Формулы (1.9)–(1.10) позволяют элиминировать кванторы существования. При этом, согласно теореме дедукции, если формула до импликации общезначима, то после импликации она «еще более» общезначима. И
если удастся доказать противоречивость формулы справа, то автоматически доказывается противоречивость ПНФ.
При дальнейших рассуждениях нельзя забывать, что для соблюдения
импликации вид функции f не конкретизируется и нужно предвидеть самые неудобные ситуации этой зависимости.
Необходимо формализовать процесс элиминирования квантора существования:
1. Если в префиксе формулы F левее квантора существования для
переменной x нет ни одного квантора всеобщности, то все вхождения переменной x в матрице М заменяют на константу ai, не встречающуюся в
M. Таким образом, константа будет независимой, если же она совпадет с
какой-либо другой, то это будет означать ее конкретизацию (выбор равной другой константе), при этом не соблюдается положение о произвольном выборе, упоминавшемся ранее.
2. Если же в префиксе формулы F , левее квантора существования
для переменной x, есть кванторы всеобщности для переменных y1 , ... y n ,
то все вхождения переменной x в матрице М заменяют на функцию
y1 , ... y n , не встречающуюся в M.
Функции f называют cколемовскими, а ПНФ без кванторов существования с матрицей в виде КНФ называют сколемовской нормальной
формой (СНФ).
1.5.4. Сквозной пример: приведение к СНФ. Формула из примера
содержит квантор cуществования z.
F  xyz
M ( x )  U ( x , d )  M ( x )  V ( x , e )  P ( x )  U ( x , y )  P ( z )  V ( z , e) .





Так как левее z два квантора всеобщности xy, то z  f ( x, y) и
21
НФ имеет вид:
F   xy
M ( x)  U ( x, d ) M ( x)  V ( x, e) P ( x)  U ( x, y) P( f ( x, y)) V ( f ( x, y), e) .
1.5.5. Устранение квантора всеобщности. Элиминирование кванторов существования – первый шаг к тому, чтобы использовать методы ЛВ
для формул ЛП. В замкнутой формуле без кванторов существования все
переменные управляются кванторами всеобщности. Это позволяет отождествлять общезначимость СНФ F с общезначимостью ее матрицы M.
Этот эффект уже обсуждался для содержательного исчисления. Таким
образом, следующий формальный дедуктивный шаг:
(1.11)
xM ( x)  M ( x) .
1.5.6. Сквозной пример: устранение квантора всеобщности. Доказать теорему – означает опровергнуть матрицу СНФ ее отрицания:
F   M ( x)  U ( x, d )  M ( x)  V ( x, e)  P ( x)  U ( x, y ) 
P( f ( x, y)) V ( f ( x, y), e) .




1.5.7. Области контрарности предикатов. Матрица M дает множество дизъюнктов. Теперь необходимо находить контрарные пары в этом
множестве и использовать правило резолюций до получения пустого
дизъюнкта.
В ЛВ контрарные пары обладали тем свойством, что интерпретация
давала в одном атоме истину, а во втором ложь: x и x . В ЛП атомы – это
предикатные символы, а интерпретация – это набор значений аргументов
(термов) предикатного символа. Поэтому во всех интерпретациях, в которых один предикат дает единицу, а другой дает ноль, два предиката являются контрарными атомами. Остается выбрать из множества дизъюнктов пары – претенденты на роль контрарных атомов и определить интерпретации, в которых пара предикатов контрарна, то есть отыскать области их контрарности.
Если в качестве пары претендентов выступают различные предикатные символы P1 и P2, то нет надежды определить, в каких интерпретациях
a они контрарны: то есть P1 (a )  P2 (a ) . Это обусловлено незнанием таблиц истинности предикатов.
С другой стороны, очевидно, что P (a )  P ( a ) , то есть предикат
контрарен своему отрицанию в одной и той же интерпретации. А это значит, что на роль контрарных атомов претендуют пары c одинаковыми
именами предикатов: P(t) и P (q ) . Такую пару необходимо унифицировать (привести аргументы к «общему знаменателю»).
В силу предположения об общезначимости матрицы M, получаем,
что все ее предикаты есть константы 0 или 1. Иначе различные интерпре22
тации переменных приводили бы к различным истинностным значениям
предикатов и как следствие – к различным значениям матрицы M.
Общезначимость предикатов ведет к тому, что атомы P(t ) и P (q )
контрарны в любой интерпретации, так как их значения фактически не
зависят от интерпретаций. Единственным условием является то, что на
этих интерпретациях должны быть определены оба предиката. Приходим
к выводу, что множеством контрарности предикатов P и P является пересечение множеств, на которых определены термы t и q.
Рассмотрим различные варианты термов t и q:
1. Оба терма – переменные. Это значит, что пара предикатов определена на всем множестве и областью контрарности является все множество (любая из переменных).
2. Термы – неодинаковые функциональные символы, f1 и f2. При
элиминировании кванторов существования предполагалось, что тело
функций не определено, а значит, неясна и область значений функций, но
тогда область определения предикатов также неясна. Приходим к выводу, что множество контрарности в этом случае пусто.
3. Термы – одинаковые функциональные символы, например: f1.
Это значит, что предикаты имеют одинаковую область определения, являющуюся областью значений функции f1. Приходим к выводу, что множество контрарности есть множество, образуемое отображением f1.
4. Один терм – переменная x, другой – функциональный символ f1.
Множеством контрарности является отображение f1, так как x определена
везде, а f1 определена на части множества.
5. Вариант термов-констант сводится к варианту термов-функций,
считая константу – нульместной функцией.
1.5.8. Процедура унификации. Процедура приведения двух атомов к
общей области определения называется процедурой унификации. Она базируется на пяти возможных ситуациях взаимного расположения термов
двух атомов. Фактически эта процедура уже описана выше, необходимо
лишь формализовать ее.
Пусть P (t1 , t 2 , ... t n ) и P (q1 , q2 , ... qn ) претендуют на роль
контрарной
пары.
Составим
множество
пар
термов
T t1 / q1 , t 2 / q2 , ... t n / qn . Из этого множества сформируем K – множе-
ство контрарности термов.
В множество K на место исходных пар термов необходимо записать
итоговые термы, на которых будут определены оба предиката.
Возможные ситуации, возникающие при формировании множества
K, уже были описаны:
Ti  x / y  K i  x / y ,
23
Ti  x / a  K i  a / a ,
Ti  x / f (...)  K i  f (...) / f (...) ,
Ti  a / a  K i  a / a ,
Ti  f (...) / f (...)  K i  f (...) / f (...) .
Во всех этих случаях существует область контрарности i-го аргумента. В оставшихся случаях:
Ti  f1 (...) / f 2 (...),
Ti  f (...) / a , Ti  a / b ,
область контрарности i-го аргумента пуста.
На множестве K действует правило резолюций:
P(t1 , t 2 , ... t n )  C1 , P(q1 , q 2 , ... q n )  C 2  C1  C 2 .
(1.12)
Причем, термы в дизъюнктах C1  C 2 могут содержаться в множестве T и потому требуют замены на соответствующие термы из K. Резольвента C1  C 2 будет определена там, где атомы являются контрарными.
Если область контрарности не пуста, то множество Т называют унифицируемым, а T  K представляет из себя унифицирующую подстановку.
1.5.9. Пример унификации. Допустим, в матрице М присутствуют
два дизъюнкта: M ( x)  U ( x, d ) и P ( x)  U ( x, y ) . Тогда U и U претендуют на роль контрарной пары атомов. Унификация T {x / x, d / y} , дает
унифицирующую подстановку K {x / x, d / d } . После унификации дизъюнкты выглядят так: M ( x)  U ( x, d ) и P ( x)  U ( x, d ) .
Пример неунифицируемого множества: M ( x)  U ( x, q( y, z))
и
P ( x)  U ( x, p( s, a)) . Для таких дизъюнктов T {x / x, g ( y, z ) / p( s, a)} , а
K  {x / x,0 } .
1.5.10. Резолютивный вывод и резольвента. Если два дизъюнкта удается унифицировать, к ним применяют правило резолюций и полученную
резольвенту включают во множество дизъюнктов. В дальнейшем она
может участвовать в качестве посылки в правиле вывода. Если после неоднократного применения правила резолюций удается получить пустой
дизъюнкт, то матрица M противоречива, СНФ и ПНФ отрицания теоремы
тождественно ложны, а теорема общезначима.
1.5.11. Сквозной пример: применение правила резолюций.
F   M ( x)  U ( x, d )  M ( x)  V ( x, e)  P ( x)  U ( x, y ) 
P( f ( x, y)) V ( f ( x, y), e) .



24

Множество дизъюнктов: Dd1 , d 2 , d 3 , d 4  .
d 1  M ( x )  U ( x, d ) ,
d 2  M ( x )  V ( x, e) ,
d 3  P ( x )  U ( x, y ) ,
d 4  P( f1 ( x, y)) ,
d 5  V ( f1 ( x, y), e) .
Резолютивный вывод:
d1 , d 2  d 6 , где d 6  U ( x, d )  V ( x, e) , T{x / x} , K{x / x} .
d 6 , d 3  d 7 , где d 7  V ( x, e)  P ( x) , T{x / x, d / y} , K{x / x, d / d} .
d 7 , d 4  d8 , где d 8  V ( f ( x, y ), e) , T{x / f ( x, y)} , K{ f ( x, y) / f ( x, y)} .
d8 , d 5  d 9 , где d 9  0 , T { f ( x, y ) / f ( x, y ), e / e} , K{ f ( x, y ) / f ( x, y ), e / e} .
Выведен пустой дизъюнкт, теорема сквозного примера доказана.
1.6. Методика решения типовых задач
1.6.1. Приведение формулы логики предикатов в предваренную
нормальную форму. Рассмотрим так называемую предваренную нормальную форму. ПНФ для формулы F ЛП называется представление
формулы в виде Q1 ... Qi ... Qn M , где Qi есть кванторы  x либо  x , а М
i
i
– КНФ, в которой атомами являются предикаты. Q1 ... Qi ... Qn называется
префиксом, а М – матрицей формулы F. Ниже представлены соотношения, позволяющие любую формулу ЛП приводить к ПНФ. Для перевода в
ПНФ необходимо:
1. Перенести все кванторы в начало формулы.
2. Представить M в виде КНФ.
Следующий алгоритм позволяет приводить любую формулу ЛП к
стандартному виду ПНФ:
1. Устраняют связки импликации и эквивалентности, используя соотношения ЛВ:
A  B  A  B , A  B  A B  A B , A  B  A  B  A  B .
2. Отрицания «спускают» до атомов, применяя соотношения де
Моргана:
x F ( x)  x F ( x) , x F ( x)   x F ( x) .
3. Кванторы уводят в префикс, используя следующие соотношения:
 Соотношение позволяет расширять зону действия квантора Q,
связывающего переменную x:
Qx F ( x)* G  Qx F ( x) * G .



25

При условии, что формула G, попадающая в зону влияния квантора
Q, не содержит переменной x, квантор «проносят» через операцию *, где
* – конъюнкция или дизъюнкция.
 Если же G содержит x, то применима формула:
Q1x F ( x)* Q2 x [G( x)]  Q1x Q2 z F ( x) * G( z) .
То есть при «проносе» квантора вводим новую переменную z, чтобы
каждый квантор в итоге не относился к переменной другого квантора.
Если Q2 нет, то просто переименовываем x из G.
 Есть два частных случая этой формулы:
 x F ( x)  x G( x)   x F ( x)  G( x),
x F ( x)  x G( x)  x F ( x)  G( x) .
4. Матрица приводится к КНФ с помощью алгоритма логики высказываний.
Рассмотрим пример приведения к ПНФ отрицания формализованной
теоремы логики предикатов:
F  A1  A2  A3  B .
Пусть аксиомы и заключение выглядят так, что
F  xM ( x)  U ( x, d ) xM ( x)  V ( x, e)
 xyP( x)  U ( x, y ) xP( z )  V ( z, e).
1. Устранение импликации:



 
F  x M ( x)  U ( x, d )  x  М ( x)  V ( x, e) 


 xy P ( x)  U ( x, y )   x P ( x)  V ( x, e) .
2. Устранение отрицания квантора в последнем дизъюнкте:


 

 xyP ( x)  U ( x, y ) xP ( x)  V ( x, e) .
F  x M ( x)  U ( x, d )  x M ( x)  V ( x, e) 
3. Формирование префикса:
F  xy M ( x)  U ( x, d )  М ( x)  V ( x, e)  P ( x)  U ( x, y )  










 x P ( x )  V ( x , e ) .
«Пронос» квантора существования:
F  xyz
M ( x )  U ( x , d )  M ( x )  V ( x , e)  P ( x )  U ( x , y )  P ( z )  V ( z , e) .
4. Приведение матрицы к КНФ:
F  xyz
M ( x )  U ( x , d )  M ( x )  V ( x , e )  P ( x )  U ( x , y )  P ( z )  V ( z , e) .










26
ПНФ получена: кванторы слева, матрица в виде КНФ.
1.6.2. Приведение формулы логики предикатов в сколемовскую
нормальную форму. Для доказательства теоремы требуется, чтобы формула не содержала квантора существования. Формализуем процесс элиминирования квантора существования:
1. Если в префиксе формулы F, левее квантора существования для
переменной x, нет ни одного квантора всеобщности, то все вхождения
переменной x в матрице М заменяют на константу (например a ), не
встречающуюся в M.
2. Если же в префиксе формулы F, левее квантора существования
для переменной x, есть кванторы всеобщности для переменных
y1 , ... y n , то все вхождения переменной x в матрице М меняют функцию f ( y1 , ... y n ) , не встречающуюся в M.
Рассмотрим пример. Формула в виде ПНФ из предыдущего примера
содержит квантор существования z.
F  xyz
M ( x )  U ( x , d )  M ( x )  V ( x , e )  P ( x )  U ( x , y )  P ( z )  V ( z , e) .
Так как левее z два квантора всеобщности xy, то z  f ( x, y) и
СНФ имеет вид:
F   xy
M ( x)  U ( x, d )  M ( x)  V ( x, e)  P ( x)  U ( x, y )  P( f ( x, y ))  V ( f ( x, y ), e) .










1.6.3. Доказательство теорем логики предикатов по методу резолюций.
Матрица M дает множество дизъюнктов. Теперь необходимо находить контрарные пары в этом множестве и использовать правило резолюций до получения пустого дизъюнкта.
Процедура унификации базируется на пяти возможных ситуациях
взаимного расположения термов двух атомов.
Пусть P (t1 , t 2 , ... t n ) и P (q1 , q2 , ... qn ) претендуют на роль
контрарной
пары.
Составим
множество
пар
термов
.
Из
этого
множества
сформируем
K
–
множе

T t1 / q1 , t 2 / q 2 , ... t n / q n
ство контрарности термов.
В множество K на место исходных пар термов необходимо записать
итоговые термы, на которых будут определены оба предиката.
Возможные ситуации, возникающие при формировании множества
K, уже были описаны:
1) Ti  x / y  K i  x / y ,
2) Ti  x / a  K i  a / a ,
27
3) Ti x / f (...)  K i  f (...) / f (...) ,
4) Ti  a / a  K i  a / a ,
5) Ti  f (...) / f (...)  K i  f (...) / f (...) .
Во всех этих случаях существует область контрарности i-го аргумента. В оставшихся случаях:
Ti  f1 (...) / f 2 (...),
Ti  f (...) / a , Ti  a / b ,
область контрарности i-го аргумента пуста.
На множестве K, действует правило резолюций:
P(t1 , t 2 , ... t n )  C1 , P(q1 , q2 , ... qn )  C 2  C1  C 2 .
Причем, термы в дизъюнктах C1  C 2 могут содержаться в множестве T и потому требуют замены на соответствующие термы из K. Резольвента C1  C 2 будет определена там, где атомы являются контрарными.
Рассмотрим пример. Допустим, в матрице М присутствуют два
дизъюнкта: M ( x)  U ( x, d ) и P ( x)  U ( x, y ) . Тогда U и U претендуют на
роль контрарной пары атомов. Унификация T {x / x, d / y} дает унифицирующую подстановку K {x / x, d / d } . После унификации дизъюнкты выглядят так: M ( x)  U ( x, d ) и P ( x)  U ( x, d ) .
Пример
неунифицируемого
множества:
M ( x)  U ( x, q( y, z )) и
P ( x)  U ( x, p( s, a)) . Для таких дизъюнктов T {x / x, g ( y, z ) / p( s, a)} , а
K  {x / x, 0 } .
Если два дизъюнкта удается унифицировать, к ним применяют правило резолюций и полученную резольвенту включают во множество
дизъюнктов. В дальнейшем она может участвовать в качестве посылки в
правиле вывода. Если после неоднократного применения правила резолюций удается получить пустой дизъюнкт, то матрица M противоречива,
СНФ и ПНФ отрицания теоремы тождественно ложны, а теорема общезначима.
F   M ( x)  U ( x, d )  M ( x)  V ( x, e)  P ( x)  U ( x, y ) 
P( f ( x, y)) V ( f ( x, y), e) .
Множество дизъюнктов: Dd1 , d 2 , d 3 , d 4  .



d 1  M ( x )  U ( x, d ) ,
d 2  M ( x )  V ( x, e) ,
d 3  P ( x )  U ( x, y ) ,
28

d 4  P( f1 ( x, y)) ,
d 5  V ( f1 ( x, y), e) .
Резолютивный вывод:
d1 , d 2  d 6 , где d 6  U ( x, d )  V ( x, e) , T{x / x} , K{x / x} .
d 6 , d 3  d 7 , где d 7  V ( x, e)  P ( x) , T {x / x, d / y} , K {x / x, d / d } .
d 7 , d 4  d8 , где d 8  V ( f ( x, y ), e) , T{x / f ( x, y)} , K{ f ( x, y) / f ( x, y)} .
d8 , d 5  d 9 , где d 9  0 , T { f ( x, y ) / f ( x, y ), e / e} , K { f ( x, y ) / f ( x, y ), e / e} .
Выведен пустой дизъюнкт, теорема доказана.
1.7. Задачи для самостоятельного решения
1. Пользуясь лекционным материалом, дать определения терминов:
1) элиминирование квантора су4) сколемовские функции,
ществования,
5) область контрарности предика2) сколемовская нормальная фортов,
ма,
6) процедура унификации,
3) предваренная нормальная фор7) префикс,
ма,
8) матрица.
2. Унифицировать следующие множества:
1) T1  {x, f ( x, a), y, b, f 2 (c),  ( x)} , T2  {a, f (c, a), z, e, f 2 (a), 1 ( x)} ,
2) T1  {a, f ( x, a), b, y, f 2 (e),  (a)} , T2  {a, f ( x, y), z, e, f 2 ( y),  (a)} .
3. Привести в сколемовскую нормальную форму:
1)  x  y  z t P( x, y, f (t ))  Q(a, y )  P( x, z )  W (t ) ,
2)
 y  x t P( x, t , t )  Q( x, y )  P( x, t )  W ( y ) .
4. Получить множество дизъюнктов:
P( x, y)  Q(a, y) P( x, y)  Q( x, y)
1)
 P( x, y )  Q (a, y )  W ( x, y, z )  W ( x, f ( x, y ), z )  P( x, a),
P( x, y)  Q( f ( y, z ), y)  S ( x, c) S ( x, y)  P( f ( y, z ), y)  Q( x, y)
2)
 S ( x, y )  ( P( x, y )  Q( x, y )) .
5. Применить метод резолюций к теоремам из задания 4.
6. Ответить на следующие вопросы:
1) является ли метод резолюций логики предикатов полным?
2) почему сколемовские функции должны иметь различные имена?
3) является ли теорема доказанной, если пустой дизъюнкт получен
на пустом унифицируемом множестве?
4) можно ли судить о контрарности предикатов с различными именами?


29
2. АЛЬТЕРНАТИВНЫЕ ЛОГИКИ
2.1. Алфавит и синтаксис языка нечеткой логики
2.1.1. Функция принадлежности. Рассмотрим высказывание об обладании объекта x свойством P: «Студент среднего возраста». В выражении присутствует обобщенное имя объекта x – «студент» и предикат P –
«средний возраст», вырезающий подмножество «средних» из множества
X студентов, обладающих разными возрастами. Понятие «средний возраст» нечеткое и поэтому каждый объект из X может обладать свойством
P частично. Логика предикатов здесь неприменима, так как в ней предполагается либо отсутствие, либо строгое наличие свойства P у объекта x.
В нечеткой логике P – так называемая нечеткая переменная. А функция P(x) не является логической. Это так называемая функция принадлежности объекта x множеству, определяемому смыслом переменной P.
Функция принадлежности ставит в соответствие каждой интерпретации
предметной переменной x значение в интервале [0, 1]. При этом:
1) P( x)  0 означает: x не обладает свойством P,
2) P( x)  1 – x в полной мере обладает свойством P,
3) 0  P( x)  1 – x частично обладает свойством P.
Рис. 2. Лингвистическая переменная и предикаты на ней
В ЛП возможны лишь два первых варианта.
Понятие лингвистической переменной. Рассмотрим две нечеткие переменные относительно возраста на множестве студентов. P – «средний»
и Q – «старшекурсник». Изобразим графически соответствующие функции принадлежности. При этом по оси абсцисс будем откладывать имена
констант (конкретных студентов) в порядке возрастания курса их обучения (рис. 2).
В речи «средний», «хороший» и подобные им слова, стоящие перед
конкретным свойством, называют модификаторами данного свойства. А
сами свойства – это так называемые лингвистические переменные (ЛИНГ).
30
В нашем примере такой переменной является «возраст». ЛИНГ – это как
бы обобщение целого класса нечетких переменных, предикатов, образуемых с помощью модификаторов.
Например: если «возраст» – ЛИНГ, «старый», «старшекурсник» –
модификаторы, тогда:
P – нечеткая переменная «старый возраст»,
Q – нечеткая переменная «возраст старшекурсника».
2.1.2. Абсолютный показатель обладания свойством. Из рис. 2 видно, что каждому объекту x соответствует некоторая величина е – абсолютный показатель обладания свойством. Для ЛИНГ «возраст» таким
показателем может быть либо курс обучения, либо дата рождения. Такой
абсолютный показатель есть у каждого объекта относительно любого
свойства. Другими словами, e есть функция объекта x и ЛИНГ L: e = e(x, L).
Значение этого показателя в примере влияет на форму нечетких предикатов P и Q. Это влияние имеет важное значение. Для ЛИНГ L, имеющих зависимость между e и любым нечетким предикатом P, образуемым из L с помощью модификатора m, нечеткие переменные P задаются
с помощью функций или алгоритмов (порождающих процедур). То есть
P( x)  f e( x, L), L   f (e, L)  mL (e) .
Этот важный вывод позволяет строить функции принадлежности,
абстрагируясь от объектов, строя предикаты не на всех интерпретациях, а
лишь на всех возможных значениях функции e. Затем, зная значение e
для любого объекта, однозначно определяем для него значение функции
принадлежности.
Построение функций принадлежности необходимо для исчисления
нечетких высказываний.
2.1.3. Задание функции принадлежности. ЛИНГ L, для которых
P( x)  mL (e), называются структурированными. Ниже показан пример
задания функций принадлежности нечетких переменных P для L.
Пусть L – «возраст». m1 = «молодой», m2 = «старый», m3 = «средний»
– модификаторы. Тогда mL  {P1 , P2 , P3 } есть нечеткие переменные
m1 L  «молодой возраст», m2 L  «старый возраст», m3 L  «средний возраст».
Функции принадлежности переменных, согласно их смыслу, могут
быть заданы так:
P1 (e)  1 
e
e
50  e
, P2 (e) 
, P3 (e)  1 
,
100
100
50
где e  e( x, L) – значение абсолютного показателя свойства L объекта x, 0  e  100 .
31
Таким образом, определив для всех объектов значение абсолютного
показателя относительно лингвистической переменной, мы избавляемся
от необходимости задавать значение функции принадлежности каждой
нечеткой переменной для каждого объекта. Эти значения вычисляются
аналитически с помощью абсолютного показателя свойства объекта.
Рис. 3. Функции принадлежности ЛИНГ «возраст»
2.1.4. Нечеткая арифметика. В естественной речи нечеткие переменные могут образовываться применением к ЛИНГ не одного, а целой
комбинации модификаторов. То есть P  mL , где m  f (m1 , ... mn ) .
Например «человек молодого или нестарого возраста». Аналогично ЛВ,
функция f приводит к понятию нечетких операций «+», « & », «». Вычисление значения функций – нечетких операций есть так называемая нечеткая арифметика. Опишем основные нечеткие операции.
Если m  m1  m2 и P  mL , P1  m1 L , P2  m2 L – нечеткие переменные, то:
P(e)  min 1, P1 (e)  P2 (e) .
Если m  m1  m2 , то:
P(e)  max 0, P1 (e)  P2 (e)  1 .
Существуют альтернативы.
Дизъюнкция:
P(e)  max P1 (e), P2 (e) .
Конъюнкция:
P(e)  min P1 (e), P2 (e)
Если m  m1 , то:
P(e)  1  P1 (e) .
Если переменные четкие, то эти операции превращаются в операции
алгебры логики. Но в нечеткой арифметике есть операции, не имеющие
аналога в ЛВ: растяжение и сжатие.
 – растяжение усиливает нечеткость и соответствует связке естественного языка «приблизительно».
32
Рис. 4. Нечеткая дизъюнкция
Если m   m1 , то P (e)  P1 (e) .
^ – сжатие, уменьшает нечеткость и соответствует связке естественного языка «очень».
Если m  ^ m1 , то P(e)  P1 (e) 2 . Читателю предлагается самостоятельно построить функции принадлежности для всех операций.
Таким образом, имея базовый набор модификаторов ЛИНГ L, можно
расширять набор модификаторов для L. При этом не нужно строить для
каждого нового модификатора функцию принадлежности, она будет
определяться автоматически при помощи нечеткой арифметики.
Нечеткая арифметика и абсолютный показатель обладания свойством позволяют бесконечное множество функций принадлежности нечетких переменных данного класса описать набором базовых функций,
что упрощает исчисление в нечеткой логике. Определим же само понятие
исчисления нечеткой логики.
2.1.5. Лингвистическая переменная истинности. Задача исчисления
в любой логике есть нахождение истинностных значений 0 или 1 для различных высказываний. В нечеткой логике истинностное значение есть
лингвистическая переменная I. Значения I – нечеткие переменные:
{Y = «истинно», N = «ложно»}.
Объектами, для которых определяется значение нечетких переменных Y и N, являются высказывания произвольной нечеткой природы.
Например, v1  «Студент Иванов среднего возраста» или v2 
«Студент Петров среднего возраста».
Каждому высказыванию соответствует значение функции принадлежности Y (v1 ) , Y (v2 ) , N (v1 ) , N (v2 ) .
Вычисление значений функции Y и N и есть исчисление нечеткой логики.
2.1.6. Связь ЛВ и нечеткой логики. Результаты исчисления нечеткой
логики могут быть переведены в область четкой логики посредством
33
применения линии уровня  . При этом, если значение функции принадлежности нечеткой переменной истинности выше некоторого  , то имеем истину, иначе ложь.
Рис. 5. Линии уровня
2.1.7. Различие лингвистических и предметных переменных. Формализуя нечеткие высказывания, необходимо представлять различие
между предметной и лингвистической переменными. Часто это бывает
трудно сделать, поэтому необходимо помнить, что предметные переменные составляют исходное множество объектов, а лингвистические переменные – это свойства, присущие объектам. К лингвистическим переменным применимы модификаторы, к предметным переменным нет.
2.1.8. Атом нечеткой логики. В любой логике присутствует понятие
элементарного высказывания. В нечеткой логике такие высказывания
имеют вид: «а есть mL». Фактически такое высказывание есть нечеткое
утверждение Y(P(а)). Если же заключение делается относительно множества объектов, то такое высказывание не является элементарным. То есть
Y(P(x)) не элементарное высказывание. Аналогично ЛП атомом в нечеткой логике являются нечеткие предикаты.
2.1.9. ППФ нечеткой логики. Поступая по аналогии с ЛВ и ЛП,
можно дать определение ППФ нечеткой логики:
1. Атом есть ППФ.
2. Если A и B ППФ, то A  B, A  B , A  B, A  B, A ,  A , ^ A
есть ППФ.
3. Если A – ППФ и x – предметная переменная, то x( A) , x(A)
есть ППФ.
Например, высказывание «Студент среднего возраста и студент
очень маленького роста» на языке нечеткой логики примет вид:
P( x)  Q( x) .
x – предметная переменная из множества X студентов.
L1 – ЛИНГ «возраст», L2 – ЛИНГ «рост».
m1 – модификатор «средний» для ЛИНГ L1 , m 2 – модификатор
«маленький» для ЛИНГ L2 .
34
P – нечеткая переменная «средний возраст»: P( x)  m1 L1 (e1 ( x)) .
Q – нечеткая переменная «очень маленький рост»:
Q( x)  [^ m 2 ]L2 (e2 ( x)) .
e1 , e 2 – абсолютные показатели возраста и роста студентов.
Зная значения e1 , e 2 для всех студентов, а также функции принадлежности модификаторов m1 , m 2 , можно построить функцию принадлежности, на которой каждому студенту будет сопоставлено значение
функции. Это значение и есть Y ( P( x)  Q( x)) .
Описав язык нечеткой логики, можно оценить проблемы содержательного и формального исчисления нечеткой логики.
2.2. Исчисление нечеткой логики
2.2.1. Метод таблиц истинности. ППФ нечеткой логики состоит из
нечетких предикатов, связанных нечеткими логическими связками. Для
проведения исчисления сначала необходимо применить нечеткую арифметику к модификаторам. Тем самым мы вычислим значения атомов –
нечетких предикатов. Затем все переменные в формуле фиксируют, получая интерпретацию предметных переменных. При этом, используя нечеткую арифметику, вычисляют значение формулы. В итоге для каждой
интерпретации получаем значение от 0 до 1. Это и будет значение истинности формулы в данной интерпретации. Интерпретации образуют декартово произведение. А итоговая функция принадлежности формулы
будет функцией нескольких переменных.
Каждую предметную переменную можно интерпретировать как ось
декартова пространства. Тогда имеем функцию принадлежности n-мерного декартова пространства, где n – число предметных переменных в
формуле. Если переменная одна, то на функции принадлежности можно
провести линию уровня и получить истинностное значение «четкой» логики. Если переменных две, то проводим плоскость и т. д.
2.2.2. Принцип соответствия. В нечеткой логике эквивалентность
двух формул есть величина нечеткая. Имеется так называемый принцип
соответствия, согласно которому, степень соответствия двух формул P
и Q есть лингвистическая переменная истинности, значения которой вычисляются так:
Y (Q( x))  P( x) .
Для удобства функцию принадлежности можно записывать в виде
перечисления интерпретаций и значения функции на них. Например:
0.2 / a, 0.3 / b и т. д.
Такая запись для функции принадлежности ЛИНГ степени соответствия будет иметь вид: P( xi ) / Q( xi ) . Например: 0,2 / 0,3, 0,5 / 1,
0 / 0. При этом чем ближе друг к другу пары в дробях, тем больше фор35
мулы соответствуют друг другу.
Рассмотрим два примера.
1. Найдем соответствие между двумя высказываниями:
«x равно 6» – P (x) = {1 / 6}.
«x меньше 3» – Q (x) = {1 / 0 , 1 / 1, 1 / 2, 0 / 3, … 0 / 6}.
Тогда функция принадлежности степени соответствия есть:
Y (Q)  1 / 0 и Q не соответствует P. Это так в силу того, что все более
или менее истинные значения функции P получены при невыполнении Q.
2. Найдем соответствие между двумя высказываниями:
«x равно 6» – P (x) = {1 / 6}.
«x около 5» и пусть модификатор «около» даст такое растяжение
Q(x)  {0,6 / 4 , 1 / 5, 0,6 / 6, 0,2 / 7}.
Тогда функция принадлежности степени соответствия есть:
Y (Q)  1 / 0,6 и Q обладает некоторой степенью соответствия с формулой P. Интерпретируется это соотношение следующей нечёткой формулировкой: истинность утверждения о том, что предикат Q соответствует
предикату P с истинностью 0,6, равна единице. Принцип соответствия
есть аналог эквивалентности двух формул и является основой эквивалентных преобразований нечеткой логики.
2.2.3. Принцип логического следования. По аналогии с четкой логикой имеем принцип логического следования. B (x) является логическим
следованием A(x) , если в любой интерпретации A( x)  B( x) .
Из этого принципа исходит понятие импликации нечеткой логики:
A  B  min{1, 1  ( A  B)}.
Например: A(x)  {0,5 / 3, 0,8 / 4, 0,9 / 5}, а B(x)  {0,7 / 3, 0,8 / 4, 0,4 / 5},
тогда A( x)  B( x) ={1 / 3, 1 / 4, 0,5 / 5}.
Нечеткое логическое следствие – основа приближенного доказательства теорем.
Для такого доказательства посылки A и заключение B объединяют в
теорему A  B. Получаемую функцию принадлежности рассматривают
как истинность теоремы.
2.2.4. Отношения на функциях принадлежности. Если формулы
A(x) и B ( y ) определены на разных множествах предметных констант
x  X , y  Y , то любое отношение этих двух предикатов (любая формула,
составленная из них) дает декартово произведение множеств X и Y.
Именно поэтому содержательное исчисление формулы n переменных дает n-местную функцию принадлежности.
Если X и Y конечные множества, то декартову плоскость можно заменить матрицей, где элементы X соответствуют номерам строк, а эле36
менты Y – номерам столбцов.
Например: X  {c, h, o}, Y  {2, 5, h}.
A(x)  {0,5 / c, 0,8 / h, 0,9 / o}, B( y)  {0,7 / 2, 0,8 / 5, 0,4 / h}.
Тогда С ( x, y)  A( x)  B( y) в матричной форме перепишется так:
1 0,9
1

0,5 0,8 0,9  0,7 0,8 0,4  0,9 1 0,6.
0,8 0,9 0,5
Композиционное правило вывода. В нечеткой логике имеет место
так называемое композиционное правило вывода, являющееся обобщением Modus ponens для приближенных рассуждений:
(2.1)
A( x), P( x, y)  B( y)
Для начала отметим, что, если в теории есть нечеткая переменная
A(x) и имеется отношение P( x, y ) , значит P( x, y ) получено под влиянием некой формулы B ( y ) и P( x, y)  A( x) * B( y) , где * – набор операций,
лежащий внутри алгебры нечеткой арифметики. Ведь любые отношения
(декартовы произведения) нечеткой логики получаются при применении
к нечетким предикатам операций нечеткой логики.
Композиционное правило вывода заключается в утверждении, что
для появления в декартовом произведении интерпретации (a, b) наличие
интерпретации b важно не меньше, чем наличие интерпретации а. То
есть, если пара ( x, y) принимает значение (a, b) , то наличие а имплицирует собой наличие b.
Тогда, интерпретируя:
 значение A(a ) , как истинность наличия интерпретации x  a,
 значение P ( a, b), как истинность наличия интерпретации
( x, y)  (a, b) ,
 значение B(b) , как истинность обнаружения интерпретации
y b,
получим, что B должно удовлетворять соотношению:
P(a, b)  A(a)  B(b).
Заметим, что для соблюдения операции импликации должно быть
арифметически B( y j )  A( xi )  (1  P( xi , y j )) для всех j и i.
Но A( xi )  (1  P( xi , y j ))  A( xi )  P( xi , y j )  1  A( xi )  P( xi , y j ) .
То есть A и P связаны нечеткой операцией конъюнкции.
Выбрав максимальное A( xi )  P( xi , y j ) , мы обеспечим
B( y j )  A( xi )  (1  P( xi , y j )) для всех i.
37
Таким образом,
B( y j )  max( A( xi )  P( xi , y j ))
(2.2)
удовлетворяет условию P( xi , y j )  A( xi )  B( y j ) . В этом случае B является импликацией и в силу композиционного правила вывода имеет место в теории.
Поясним правило композиционного вывода на примере. Пусть
A( x)  0,5 0,8 0,9,
1 0,9
1

P( x, y )  0,9 1 0,6,
0,8 0,9 0,5
тогда
A( x), P( x, y)  B( y) и
B1  max( 0,5 1, 0,8  0,9, 0,9  0,8)  0,7.
B2  0,8 , B3  0,4.
2.3. Альтернативные логики
2.3.1. Модальное исчисление высказываний. В модальном исчислении высказываний (МИВ) формализуются модальности – конструкции
естественного языка: «возможность» и «необходимость». Отличие от
ФИВ лишь в наличии двух логических связок, выражаемых в естественном языке как «возможно» и «необходимо».
Такое исчисление позволяет отделять критичные посылки теоремы
от некритичных. Если посылка возможна, значит она не препятствует истинности теоремы, если же посылка необходима, то без нее теорема недоказуема.
Модальности присутствуют в формулах МИВ в виде двух символов:
 – «возможно» и  – «необходимо».
К аксиомам ФИВ добавляются новые аксиомы:
1) дистрибутивности:  (A  B)  ( A   B);
2) знания:  A  A;
3) позитивной интроспекции:  A    A;
4) негативной интроспекции:  A    A
и правило вывода:
A   A.
Существует также и модальное исчисление предикатов.
Кроме ЛВ, ЛП, нечеткой и модальной логики, известны также темпоральная и алгоритмическая логика, в частности алгоритмическая логика Ч. Хоара.
На этом обсуждение математической логики окончено.
38
2.4. Методика решения типовых задач
2.4.1. Построение функции принадлежности высказывания нечеткой
логики. Если предикат может принимать непрерывный спектр значений
от 0 до 1, то говорят о нечетком предикате. Если нечеткие предикаты связаны логическими операциями, то говорят о нечеткой логике. Опишем
основные нечеткие операции.
Если P1 (e) и P2 (e) – нечеткие предикаты, то:
1. Нечеткая дизъюнкция P  P1  P2 вычисляется арифметически
по формуле:
P(e)  min 1, P1 (e)  P2 (e) .
2. Нечеткая конъюнкция P  P1  P2 вычисляется арифметически
по формуле:
P(e)  max 0, P1 (e)  P2 (e)  1 .
3. Нечеткая импликация P  P1  P2 вычисляется арифметически
по формуле:
P(e)  min 1, 1  P2 (e)  P1 (e).
Если P1 (e) – нечеткий предикат, то отрицание P  P1 вычисляется
арифметически так:
P(e)  1  P1 (e) .
Для обычных предикатов эти операции превращаются в операции
алгебры логики. В нечеткой арифметике есть операции, не имеющие аналога в ЛВ: растяжение и сжатие.
 – растяжение усиливает нечеткость, и соответствует связке естественного языка «приблизительно». Если P1 (e) – нечеткий предикат, то
растяжение P   P1 вычисляется арифметически так:
P (e)  P1 (e) .
^ – сжатие, уменьшает нечеткость, связка естественного языка
«очень».
Если P1 (e) – нечеткий предикат, то растяжение P   P1 вычисляется арифметически так:
P(e)  P1 (e) 2 .
Построение нечетких предикатов (функций принадлежности) в координатах {P, x}, если P  f ( P1 , P2 , ... Pn ) , производят графически. Для
этого шаг за шагом применяют нечеткую арифметику, получая промежуточные графики функций. И окончательно приходят к P(x).
Рассмотрим пример. Пусть P   P1  P2  P3 и пусть, задан график
функций принадлежности P1 , P2 и P3 (рис. 6).
39
Выполним операции нечеткой логики, учитывая их приоритет:
P4  P2  P3 (рис. 7), P5   P1 (рис. 8), P  P5  P4 (рис. 9).
1
p 1( x)
p 2( x)
p 3( x)
0
0
x
100
Рис. 6. Исходные предикаты
1
p 2( x)
p 3( x)
p 4( x)
0
x
0
100
Рис. 7. Результат конъюнкции
1
p 1( x)
p 5( x)
0
x
0
Рис. 8. Результат растяжения
40
100
1
p 4( x)
p 5( x)
p( x)
0
x
0
100
Рис. 9. Результат импликации, итоговый
Функция принадлежности построена.
2.4.2. Приближенные рассуждения, композиционное правило вывода. В нечеткой логике имеет место композиционное правило вывода:
A( x), P( x, y)  B( y) .
Если известен вектор значений
Anx1 и матрица декартового произве-
дения Pn m , то B j  max ( Ai  Pij ) , где i  1 ... n, j  1 … m.
i
Рассмотрим пример. Пусть,
A  [0,5 0,6 0,7] ,
0,6 0,4 0,5
P   0,8 1 0,3 .
0,4 0,9 0,1
B1  max( 0,5  0,6, 0,6  0,8, 0,7  0,4)  max( 0,1, 0,4, 0,1)  0,4 .
B2  max( 0,5  0,4, 0,6 1, 0,7  0,9)  max( 0, 0,6, 0,6)  0,6 .
B3  max( 0,5  0,5, 0,6  0,3, 0,7  0,1)  max( 0, 0, 0)  0 .
Окончательно:
B  0,4 0,6 0 .
2.5. Задачи для самостоятельного решения
1. Пользуясь лекционным материалом, дать определения терминов:
1) нечеткая переменная,
6) структурированная лингвисти2) функция принадлежности,
ческая переменная,
3) модификаторы,
7) растяжение,
4) лингвистическая переменная,
8) сжатие,
5) абсолютный показатель обла9) линия уровня,
дания свойством,
10) принцип соответствия,
41
11) нечеткая арифметика,
12) композиционное правило вывода.
2. Формализовать высказывание:
1) «Если человек очень хорошо учится, то институт дает ему аттестат с отличием»,
2) «X чуть меньше Y»,
3) «Все параметры не сильно выходят из норм допуска».
3. Определить абсолютный показатель обладания свойством для
следующих свойств:
1) возраст;
2) красота;
3) богатство;
4) время.
4. Построить график функции принадлежности нечеткого предиката:
1) «Богатый человек»;
2) «Обеденное время»;
3) «Сильный ветер».
5. Выполнить нечеткую логическую операцию над высказываниями
заданными формулами (построить чертеж):
P( x )  x , 0  x  1 ;
 2 x, 0  x  0,5
Q( x)  
.
2  2 x, 0,5  x  1
1) L( x)  P( x)  Q( x) , 2) L( x)  P( x)  Q( x) , 3) L( x)  P( x) ,
4) L( x)  Q( x)  P( x) , 5) L( x)  Q( x)  P( x) , 6) L( x)  Q( x)  P( x) .
6. Пользуясь правилом вывода A( x), P( x, y) |  B( y) получить B ( y ),
если:
0,5 0,8 0,3
0,4
1) P ( x, y )  
 , A(x)  0,6 ;
0
,
6
0
,
1
0
,
4


 
0,3 0,2
0,6
P( x, y )   1 0,6 , A(x)    .
0,4
 0
1 
7. Ответить на следующие вопросы:
1) какому объекту логики предикатов соответствует нечеткая переменная?
2) какие подходы в нечеткой логике позволяют сузить пространство нечетких переменных и облегчить их описание?
3) как ведут себя нечеткие операции в граничных случаях?
4) как перевести результат исчисления, полученный аппаратом нечеткой логики, на язык четкой логики?
2)
42
3. АЛГОРИТМИЧЕСКИЕ МОДЕЛИ
3.1. Формализация понятия алгоритма
3.1.1. Требования, предъявляемые к алгоритму. Алгоритм – это эффективная процедура, приводящая к результату.
Определим основные свойства алгоритма:
1. Он применяется к исходным данным, получает промежуточные
данные и в итоге получает данные, образующие результат.
2. Данные требуют память для размещения.
3. Алгоритм состоит из элементарных действий, шагов.
4. Последовательность шагов строго детерминирована (определена).
5. Алгоритм должен останавливаться после конечного числа шагов,
с указанием того, что считать результатом.
6. Следует различать описание алгоритма и реализацию алгоритма.
Описание – это словесное уточнение алгоритма. Применение алгоритма к
конкретным исходным данным называется процессом реализации, а механизм, обеспечивающий выполнение элементарных шагов, пуск и детерминированность алгоритма, называется механизмом реализации.
Конкретизация требования данных, памяти и элементарности шагов
зависит от выбранного механизма реализации. Если таким механизмом
является компьютер, то эти требования жесткие, если же таким механизмом является человек, то эти требования размыты, впрочем, как и само
понятие алгоритма.
3.1.2. Алгоритмические модели. Теорию алгоритмов разрабатывали
по пути формальных теорий. В них выбирается набор исходных объектов
– аксиом (алгоритмов). Затем указываются правила построения теорем,
менее очевидных алгоритмов, при помощи имеющихся. При этом правила вывода не должны нарушать алгоритмичности получаемых объектов.
Существуют три базовые, формальные теории алгоритмов – так
называемые модели алгоритмов.
Первая модель связывает понятие алгоритма с вычислениями и числовыми функциями. Наиболее изученная модель первого типа – рекурсивные функции. Второй тип моделей говорит об алгоритме, как о некотором детерминированном устройстве, способном в отдельные моменты
времени производить лишь элементарные действия. Основной теоретической моделью этого типа является машина Тьюринга. И, наконец, последний тип – это представление алгоритмов как средства преобразования одних слов данных в другие слова данных посредством подстановки
и замены подслов в словах. Этот наиболее абстрактный тип моделей реализуют канонические системы Поста и нормальные алгоритмы Маркова.
Здесь будут подробно рассмотрены лишь первые два типа алгоритмов.
43
3.2. Машины Тьюринга
3.2.1. Основные определения. Машина Тьюринга (МТ) состоит из:
1. Управляющего устройства, которое может находиться в одном
из состояний, образующих конечное множество – внутренний алфавит
состояний Q  q1 , q2 , ... qn  .
2. Ленты, разбитой на ячейки, в каждой из которых может быть записан один из символов внешнего алфавита данных A  a1 , a2 , ... an  .
Лента может быть сколь угодно длинной.
3. Считывающей и записывающей головки, которая может записать
символ или стереть, после чего может переместиться вправо (R), влево
(L) или остаться на месте (E).
4. Процесс реализации любого алгоритма на МТ разбивается на
элементарные действия qi a j  qk ai d , называемые командами. Такая
команда определяет элементарное действие, совершаемое головкой в активной, обозреваемой ячейке. Команда означает, что если текущее состояние машины q i и символ в ячейке a j , то, необходимо произвести перевод машины в состояние qk , изменить данные a j на a i и сдвинуться
влево, при d  L ; вправо, при d  R ; или остаться на месте, при d  E .
Тем самым, система команд – элементарных шагов – позволяет машине производить процесс реализации алгоритма, приводя исходные
данные в результат.
Проверим, удовлетворяет ли данная модель требованиям, предъявляемым к алгоритмам.
Память МТ – это конечное множество состояний управляющего
устройства (внутренняя память) и ячейки на ленте (внешняя память).
Данные МТ – это слова на ленте. При этом символом  принято
обозначать пустую ячейку памяти, символом * – отделять данные (слова
на ленте) друг от друга. Команды позволяют изменять данные на ленте,
переводя исходное слово в слово-результат.
Элементарные шаги алгоритма – это его система команд.
Каждый алгоритм реализуется своей системой команд. Для обеспечения детерминированности, для любой возможной комбинации qiaj
должна существовать ровно одна команда с такой левой частью. Исключение составляет конечное состояние, обозначаемое qz. В системе команд
не должно быть команд с левой частью, содержащей qz.
Итак, МТ удовлетворяет всем требованиям алгоритма, поэтому считаем, что все, что может быть в ней реализовано, будет являться алгоритмом.
3.2.2. Способы задания детерминизма алгоритма. Система команд
однозначно определяет смысл выполняемых над данными ленты дей44
ствий. В процессе изучения модели МТ потребуется записывать некоторые системы команд. Существует несколько способов их записи.
Можно просто перечислить их построчно, можно записать команды
в виде матрицы М, при этом запись Mij = qkald, обозначает команду:
qiaj  qkald. Тогда следующий шаг МТ, попавшей в состояние qiaj, определяется содержимым элемента матрицы Mij.
Другой способ – диаграмма переходов, способствует пониманию сути конкретного алгоритма. Согласно методу, система команд представляется в виде графа, узлами которого являются состояния, а ребрами – соответствующие команде изменения данных и положения головки.
Из рис. 10 видно, что состояния qi – это, по сути, стадии решения задачи. А команды – это варианты развития событий при тех или иных
данных.
Рис. 10. Диаграмма переходов
3.2.3. Понятие текущей конфигурации. По тому, какой элементарный шаг будет сделан, сложно судить о состоянии процесса реализации
алгоритма. О состоянии процесса реализации алгоритма многое скажут
текущее слово  , записанное на ленте, и текущее состояние МТ qi. Запись  и qi называется конфигурацией: K  1qi 2 , где  1 – часть слова
 , находящаяся слева от головки,  2 – часть слова справа от головки,
начиная с обозреваемого головкой символа. Исходя из понятия конфигурации можно представлять процесс реализации алгоритма как последовательное изменение конфигураций от начальной K 1 , через промежуточные K i , в конечную K z : K1  K 2  ... Ki ...  K z . Детерминированность
алгоритма позволяет исключать из рассмотрения любое количество промежуточных конфигураций. То есть, если в процессе реализации наблюдалось K1  ... Ki  ... K z , то K1  K z .
Понятие конфигурации позволяет формализовать понятие результативности алгоритма.
45
Если процесс реализации, стартуя в K1 , не ведет к выражению
K1  K z , то алгоритм не результативен в конфигурации K1. Полностью
детерминированный алгоритм при этом может порождать бесконечно
много промежуточных шагов, так и не приводя к конечной конфигурации
K z  1q z 2 .
Пример такого алгоритма легко реализуется на МТ со следующей
системой команд: q1  q11R . При этом на старте лента пуста, а в процессе реализации головка смещается вправо, оставляя в ячейках единицы.
Модель МТ вскрывает причины нерезультативности, так, например,
одна из причин – зацикленность конфигураций. Это наблюдается, если в
процессе реализации дважды появляется одна и та же конфигурация,
например, K1  K 2  K5  K 2 ... Пример такого алгоритма – МТ с системой команд q1a1  q2a2, q2a2  q1a1.
3.2.4. Организация данных в МТ. Для получения аксиом формальной теории необходимо научиться конструировать на МТ простейшие алгоритмы. Для начала определимся с правильным синтаксисом аксиомалгоритмов. Начнем с данных.
Данные МТ записываются на ленте в виде слов. При этом существует:
1. Алфавит Ad  a1 , ... an  , с помощью которого организуются объекты – числа, матрицы и т. д.
2. Алфавит Ar  r1 , ... rm , с помощью которого объекты отделяют
друг от друга, в нашем изложении Ar  * .
3.  – символ, обозначающий пустую ячейку.
Любые данные алгоритма располагаются на ленте в виде вектора
данных ...  1 *  2 * ... *  v  ...
3.2.5. Понятие стандартной конфигурации. Алгоритмы МТ начинают работать с начальной конфигурации K 1 . Стандартной начальной
конфигурацией K 1 МТ является конфигурация K1  q1 , то есть конфигурация, в которой МТ в состоянии q1 обозревает крайний левый символ
слова на ленте. Стандартная конечная конфигурация МТ – это конфигурация K1  q z  . Таким образом, в стандартной конечной конфигурации
МТ головка МТ готова к принятию нового алгоритма.
3.2.6. Понятие правильно вычислимой функции по Тьюрингу.
Если f ( )   и существует МТ, перерабатывающая слово  в слово , причем K1  q1 , а К z  qz , то функция называется правильно
вычислимой по Тьюрингу. Таким образом, алгоритм отождествляется с вы46
числимой функцией, то есть с отображением входных данных в выходные.
3.2.7. Примеры МТ. Приведем примеры элементарных вычислимых
функций, реализовав их на МТ. Эти алгоритмы будут базовым набором
аксиом формальной теории.
Данные, являющиеся числами, будем записывать в унарном коде, то
есть, если a  5, то на ленте a записывается так: 11111 (a-раз), и кратко
обозначается 1a.
Тогда функция сложения натуральных чисел будет вычислима на
МТ Т+, описание ее приведено ниже.
Для начала отметим, что a + b = 1a + 1b = 1a+b.
Тогда сложение двух чисел, записанных на ленте через разделитель
*, осуществляется стиранием разделителя и сдвигом второго числа к первому.
Итак, Т+ будет иметь два объекта – числа a и b. МТ должна переводить начальную конфигурацию K1  q11a *1b в конечную K z  q z 1a1b .
Система команд, позволяющая осуществить K1  K z , изображена
на диаграмме переходов (рис. 11).
Рис. 11. Диаграмма переходов машины Т+
Необходимые пояснения:
q1 – движение головки вправо до конца слов, при этом, встречая разделитель, заменяем его на 1;
q2 – головка на последней единице, стираем ее; результат получен,
осталось вернуть головку в стандартную конфигурацию;
q3 – двигаемся влево до начала слова, дойдя до первого пустого символа, сдвигаемся вправо и переходим в конечное состояние;
qz – результат получен, функция сложения двух натуральных чисел
вычислима на машине Т+.
Алфавит состояний Q  q1 , q2 , q3 , q z , алфавит данных A  1, *,  .
Для получения навыка представим МТ Tкоп , реализующую копирование
слова на ленте K1  q1 , K z  q z * .
Поясним диаграмму переходов на рис. 12.
47
Рис. 12. Диаграмма переходов машины
Т коп
K1 = … q11111 …
q1 – записывает 0 вместо 1 в исходное слово и смещается вправо.
K2 = … 0q21111 …
q2 – проходит сквозь слово и впервые ставит, а впоследствии, проходит мимо разделителя.
K3 = … 0111*q3 …
q3 – двигается в конец слова-копии и ставит в конце 1.
K4 = … 0111q4*1 …
q4 – возвращается к последнему 0 исходного слова, и становится
правее него.
K5 = … 0q1111*1 …
Таким образом, один символ скопирован. Далее повторяем:
q1 – q2 – q3 – q4,
пока q1 не встанет на разделитель.
Kz-1 = … 0000q5*11111 …
q5 – слово скопировано, устанавливаем головку в стандартное положение, меняя нули на единицы.
Kz = … qz11111*11111 …
qz – результат получен, функция копирования натурального числа
вычислима на машине Т коп . Алфавит состояний Q  q1 , q2 , q3 , q4 , q5 , q z ,
алфавит данных A  1,*,  .
Подведем итоги. Теперь мы умеем создавать аксиомы – элементарные алгоритмы на МТ. Предметом дальнейших исследований будут правила вывода.
3.2.8. Композиция МТ как правило вывода формальной системы.
Итак, теперь мы умеем реализовывать МТ для вычислимых функций.
48
Этот аспект подобен содержательному исчислению, рассмотрим формальные аспекты исчисления алгоритмов. Сейчас будут получены два
правила вывода, позволяющие формально, не вдаваясь в смысл элементарных алгоритмов, доказывать вычислимость новых алгоритмов.
Композицией двух функций f1 ( x) и f 2 ( y ) называется функция
g ( x)  f 2 ( f1 ( x)) , которая получается применением f 2 ( y ) к результату
вычисления f 1 .
Теорема 3.1. Если f1 ( x) и f 2 ( y ) вычислимы по Тьюрингу, то их
композиция g ( x)  f 2 ( f1 ( x)) также вычислима по Тьюрингу. Для доказательства присоединяем на графе qz МТ, реализующей f1 ( x) , к q1 МТ, реализующей f 2 ( y ) . При этом необходимо переименовать алфавит состояний во избежание наложения алфавитов первой и второй МТ. В результате соединения машин f 2 ( y ) получит начальную конфигурацию K1 со словом на ленте, являющимся результатом первой машины. Интерпретируя
это слово как входные данные, вторая МТ вычислит верный результат.
Итак, имеем правило вывода:
(3.1)
f1 ( x), f 2 ( y)  f 2 ( f1 ( x)) .
Воспользуемся данным правилом для доказательства вычислимости
функции g ( x)  2  x. Выясняется, что T*  T (Tкоп ) .
Действительно, для получения g (x) необходимо скопировать x, что
делает МТ Tкоп , а затем нужно к результату применить МТ сложения T .
Получим x  x  2  x .
3.2.9. Разветвление машин Т как правило вывода формальной системы. Еще одно правило вывода – разветвление.
Пусть функция f ( ) задана описанием: «если P( ) истинно, то
f ( )  g1 ( ) , иначе f ( )  g 2 ( ) ». Тогда функция f ( ) называется
условным переходом или разветвлением.
Логическая функция P (a ) является предикатом. МТ, вычисляющие
предикаты P (a ) , объединяет то, что все они имеют начальную конфигурацию K1  q1 и конечную конфигурацию K z  q z , где I = «И», если
P (a ) истинно, и I = «Л», если P( ) – ложно.
Теорема 3.2. Если P( ) , g1 ( ) , g 2 ( ) вычислимы по Тьюрингу, то
разветвление f ( ) также вычислимо по Тьюрингу.
Для доказательства необходимо описать систему команд МТ разветвления. Такая машина содержит команды МТ, вычисляющей предикат
49
P( ) , к ней в качестве композиции необходимо присоединить одну из
g . Для этого систему команд следует снабдить двумя командами
q p И  q g1 R и q p Л  q g 2 R , где q p – конечное состояние алфавита
МТ, реализующей предикат P. q g 1 и q g 2 – начальные состояния алфавитов МТ, реализующих g1 и g 2 .
Таким образом, получено еще одно правило вывода:
g1 ( ), g 2 ( ), P( )  f ( ).
(3.2)
3.3. Неразрешимые алгоритмические проблемы МТ
3.3.1. Универсальная машина Тьюринга. В дальнейшем нам понадобится МТ, обладающая следующим свойством: если записать на ее ленте
систему команд произвольной МТ T и произвольное слово в алфавите
данных Т, то она переработает это слово так же, как переработала бы Т.
Иначе говоря, нам необходима машина, которая работала бы за любую МТ. Такую МТ естественно назвать универсальной.
Таким образом, если есть МТ Т с системой команд SKT , причем
T     , то универсальная машина Тьюринга (УМТ) должна делать следующее:
Tу SKT   SKT  ,
где «|» – разделитель кода от данных.
Для реализации такой МТ необходимо слева от разделителя вписать
все команды МТ Т. Справа от разделителя необходимо расположить ее
данные, причем в определенной ячейке данных будет стоять символ,
означающий текущее состояние qi МТ Т, а следующая за ним справа
ячейка будет считаться активной ячейкой воображаемой ленты МТ Т. Таким образом, запись справа от разделителя соответствует описанию конфигурации МТ Т: SKT 1qi 2 . Процесс реализации МТ Т на УМТ T y будет заключаться в последовательном изменении конфигураций Т, записанных справа от разделителя.
Приведем словесное описание алгоритма работы УМТ. Для текущей
конфигурации УМТ K p  SKT 1аk uqi a j 2 (u – текущее состояние УМТ)


найти в системе команд SKT команду с левой частью q i a j . Возможны
три варианта правой части такой команды:
1. Правая часть имеет вид qia j E . Тогда необходимо просто вписать
qia j вместо qi a j . K p1  SKT 1аk uqiaj 2 .
2. Правая часть имеет вид qia j R. Тогда необходимо вписать aj вместо
a j , и воображаемую головку переместить вправо. K p1  SKT 1аk aj uqi 2 .
50
3. Правая часть имеет вид qia j L . Тогда необходимо вписать aj вместо
qi a j и воображаемую головку qi переместить влево, K p1  SKT 1uqiаk aj 2 .
Например, для МТ T УМТ будет иметь начальную конфигурацию:
K1  u1q1*  q11R, q11  q11R, q1*  q11R, q1  q1L,
q21  q31L, q3  qz R q1 *;
а конечную:
K1  u z q1*  q11R, q11  q11R, q1*  q11R, q1  q1L,
q21  q31L, q3  qz R qz;
где через запятую на ленте записаны команды T , после разделителя
«|» следует конфигурация машины T а u1 , ... u z – состояния УМТ.
3.3.2. Применение кодирования. Мы не будем приводить систему
команд УМТ, так как она довольна громоздка. Решим взамен другую
проблему. Проблема заключается в том, что внешний алфавит УМТ должен быть бесконечен из-за того, что система команд произвольной МТ
может включать множество символов, впрочем, как и алфавит данных
машины Т. Эта проблема решается кодированием.
Пусть алфавит данных произвольной машины Т A  a1 , ... a n , а


алфавит состояний – Q  q1 , ... qm . И пусть мощности алфавитов равны соответственно N и M. Тогда каждому символу ai из A можно поставить в соответствие код a1i 0 N i a , а каждому символу q j из алфавита Q –
код q1 j 0M  j q . Таким образом, любая система команд и данных может
быть записана на ленте, используя алфавит, содержащий ограниченное
число символов: a, q, 1, 0,  , L, R, E, |,  .
3.3.3. Понятие неразрешимых алгоритмических проблем. УМТ – это
аналог ЭВМ, созданный задолго до ее появления. УМТ в теории алгоритмов используется для доказательства неразрешимости некоторых алгоритмических проблем.
Алгоритмическими проблемами называются задачи о нахождении
алгоритма, вычисляющего некоторую функцию. Если алгоритма для вычисления некоторой функции не существует, то соответствующая ей алгоритмическая проблема считается неразрешимой.
3.3.4. Проблема самоприменимости. Одной из неразрешимых проблем является проблема распознавания самоприменимости. Будем называть МТ самоприменимой, если она применима к своему собственному
коду. В противном случае МТ называется несамоприменимой, то есть самоприменимая МТ Т заканчивает работу за конечное число шагов, если
51
на ее ленте в качестве данных записана ее система команд: K1  q1SKT .
Теорема 3.3. Не существует алгоритма, позволяющего для любой
МТ узнать, является ли она самоприменимой.
Это утверждение имеет смысл: не существует МТ М0, в качестве исходных данных которой используется любая МТ Т, приходящей к конечной конфигурации K z  u z И , если Т самоприменима, K z  u z Л , если Т
несамоприменима. То есть нет алгоритма, распознающего свойство самоприменимости.
Если бы М0 существовала, то это была бы УМТ с начальной конфигурацией K1  u1SKT | q1SKT , она бы реализовывала команды слева от
разделителя на командах справа, тем самым проверяя самоприменимость
команд МТ Т. И если такая реализация привела бы к конфигурации
K z 1  u z 1SKT | qz , то есть, если T (SKT )   , то УМТ завершала бы работу с конфигурацией K z  u z И , в противном случае K z  u z Л .
Допустим, что такая МТ М0 существует. Тогда существовала бы
УМТ М1, распознающая свойство несамоприменимости, а для самоприменимых машин, работающая вечно. Достаточно в М0 добавить состояние u z 1 и дополнить ее систему команд командой u z Л  u z 1 И .
Таким образом, какова бы не была МТ Т, М1 выдаст истину и будет
применима к Т, только если Т несамоприменима. Но отсюда следует, что,
во-первых, М1 не может быть самоприменимой. Так как на самоприменимых машинах она работает вечно и потому неприменима в случае, если на ленте записан ее собственный код. Во-вторых, она не может быть
несамоприменимой, так как тогда она была бы применима к своему коду
и была бы самоприменимой.
Это значит, что при стартовой конфигурации K1  u1SK M 1 | q1SK M 1
УМТ М1 остановится в случае, если МТ М1 на ее ленте несамоприменима
и не остановится. Такой УМТ существовать не может а значит М0 тоже
не существует. Теорема доказана.
3.3.5. Проблема применимости. Следствием проблемы самоприменимости является проблема распознавания применимости.
Теорема 3.4. Не существует алгоритма, позволяющего для любой
МТ узнать: применима ли она к конкретному слову в ее внешнем алфавите.
Если бы такой алгоритм был, то это была бы УМТ М0 из предыдущего примера с начальной конфигурацией K z 1  u z 1SKT | qz . УМТ завершала бы работу с конфигурацией K z  u z И , если существует конфигурация K z 1  u z 1SKT | qz , в противном случае K z  u z Л . Но, существование такой УМТ решало бы проблему самоприменимости, достаточно лишь принять   SKT , а так как проблема самоприменимости
52
неразрешима, то теорема доказана.
3.3.6. Теорема Райса. Обобщение класса неразрешимых проблем дает теорема Райса о неразрешимости распознавания произвольного нетривиального свойства.
Теорема 3.5. Ни для какого нетривиального свойства МТ не существует алгоритма, позволяющего распознавать данное свойство у любой МТ.
Нетривиальным называется свойство, для которого есть МТ, обладающие им, а есть не обладающие.
Доказательство опускаем, скажем лишь, что в этом, как и во многих
других случаях, выставляют частным случаем данной проблемы проблему самоприменимости и делают заключение о ее неразрешимости.
Из теоремы Райса вытекают несколько следствий, которые мы приведем также без доказательства. Но, читатель интуитивно воспримет их
верными.
Следствие 1. Не существует алгоритма, позволяющего для двух любых МТ сказать, эквиваленты ли они, то есть, одинаково ли они перерабатывают слова.
Следствие 2. Не существует алгоритма, позволяющего однозначно
утверждать, переработает ли МТ исходное слово  в результат  .
Несмотря на существование неразрешимых проблем, они могут решаться индивидуально. Может оказаться, что для конкретных машин
удастся найти решение неразрешимых проблем. Эта работа есть творческая работа тестера программного обеспечения.
3.4. Примитивно-рекурсивные функции
3.4.1. Примитивно-рекурсивные функции. Рассмотрим другую модель алгоритма – рекурсивные функции (РФ). Модель МТ показала, что
есть определенный класс функций, так называемые вычислимые функции, которые можно реализовать на МТ. То есть, с этими функциями сопоставляется некоторая процедура вычисления результата, опираясь на
исходные данные.
Модель РФ основывается на существовании элементарных вычислимых функций, так называемых базовых примитивно-рекурсивных
функций (ПРФ). Эти функции – аксиомы формальной теории РФ. Из них
формальными правилами, так называемыми примитивными рекурсивными операторами (ПРО), получают теоремы – новые ПРФ, которые также
вычислимы и имеют право называться вычислимыми функциями – алгоритмами.
Базовыми ПРФ являются следующие элементарные функции:
1. Константа 0(x), где x – исходные данные, 0 – данные результата.
2. Инкремент x(x) , где x( x)  x  1 .
53
3. Проецирующая функция I ni ( x1 , ... xi , ... xn )  xi , результатом является значение i-го аргумента из n аргументов.
Таким образом, модель РФ как бы содержит три МТ, три системы
команд.
Элементарные правила вывода модели РФ – это два оператора:
1. Оператор подстановки S mn (h, g1 , ... g m ), означающий, что в функцию h( y1 , ... ym ) вместо каждого аргумента yi подставляется функция
g ( x1 , ... xn ), то есть Smn (h, g1, ... gm )  f ( x1, ... xn ) . Это правило соответствует композиции МТ.
2. Оператор примитивной рекурсии Rn ( f , g , h) . Действие оператора
можно описать системой двух уравнений:
 f ( x1 , ... xn , y  1)  h( x1 , ... xn , y, f ( x1 , ... xn , y))

 f ( x1 , ... xn ,0)  g ( x1 , ... xn ).
В первом уравнении происходит так называемый шаг элементарной
рекурсии. Значение функции f в точке y + 1 вычисляется через значение в
точке y. Второе уравнение описывает элементарный случай y  0 и соответствует последнему шагу рекурсии.
3.4.2. Примеры ПРФ. Опишем с помощью предлагаемых аксиом и
правил вывода несколько теорем: вычислимых функций арифметики и
анализа.
Функции арифметики. Опишем функцию сложения: f  ( x, y)  x  y ,
используя оператор примитивной рекурсии:
 f  ( x, y  1)  f  ( x, y)  1
f  ( x, y)  
 f  ( x, 0)  x.
Запишем правые части уравнений системы через базовые ПРФ. Для
первого уравнения применим оператор подстановки:
x( f  ( x, y))  f  ( x, y)  1 .
Правая часть второго уравнения есть проецирующая функция:
I11 ( x)  x .
В итоге ПРФ сложения f  :
 f ( x, y  1)  x( f  ( x, y))
f  ( x, y)   
1
 f  ( x,0)  I 2 ( x, y).
В дальнейшем будем использовать инфиксную запись, например x + y
вместо префиксной f  ( x, y) .
Читатель без труда выразит через базу и другие ПРФ арифметики:
f * ( x, y)  x  y , f ^ ( x, y)  x y .
54
Перейдем к получению функций анализа:
1. Декремент: инфиксная запись x  1 :
0, если x  0
g ( x)  
 x - 1 иначе.
Вывод через базу:
 g ( x  1)  I11 ( x)
g ( x)  
 g (0)  0.
2. Усеченное вычитание: инфиксная запись x ~ y :
 x  y, если x  y
f ~ ( x, y )  
0, иначе.
 f ( x, y  1)  f ~ ( x, y)  1  g ( f ~ ( x, y))
f ~ ( x, y)   ~
1
 f ~ ( x,0)  I 2 ( x, y).
3. x  y  ( x ~ y)  ( y ~ x) .
4. Знак числа sg (x) :
1, если x  0
sg ( x)  
0, при x  0.
Вывод через базу:
sg ( x  1)  1
sg ( x)  
sg (0)  0.
5. Min ( x, y )  x ~ ( x ~ y ) .
Читатель без труда выведет sg (x) и max( x, y) .
6. Остаток от деления x на y: r ( x, y ) .
Вывод через базу:
r ( x, y  1)  x(r ( x, y ))  sg ( x ~ x(r ( x, y )))
r ( x, y )  
r ( x,0)  0.
Читателю предлагается найти ПРФ для q(x, y) – целой части деления
x на y.
3.4.3. Вычисление предикатов с помощью ПРФ. Подобно МТ в аппарате рекурсивных функций существует возможность вычисления предикатов.
Предикат P( x1 , ... xn ) каждой n-ке своих аргументов ставит в соответствие значение «истина» или «ложь». Если интерпретировать эти значения как 1 и 0 соответственно, то будем иметь так называемую характеристическую функцию X P ( x1 , ... xn ) , равную 1 на n-ках, обеспечиваю55
щих истинность предиката, и 0 – в противном случае.
Примитивно-рекурсивным отношением называется отношение (предикат), характеристическая функция которого является ПРФ.
Примеры примитивно-рекурсивных предикатов:
1. Предикат, распознающий свойство равенства объектов (х = у),
имеет характеристическую функцию:
X P ( x, y )  sg ( x ~ y ).
2. Предикат, распознающий свойство неравенства объектов (х > у),
имеет характеристическую функцию:
X P ( x, y)  sg ( x ~ y).
Читателю предлагается получить характеристическую функцию
предиката: «x – четное число».
3.4.4. Примитивно-рекурсивные операторы. Теперь расширим набор
ПРО РФ. Считаем, что оператор является примитивно-рекурсивным, если его применение к ПРФ дает ПРФ. Тогда ПРО образуют все возможные
правила вывода теории РФ.
3.4.5. Оператор условного перехода. Определим ПРО разветвления
(условного перехода).
По аналогии с МТ имеем: B( P, g1 , g 2 )  f ( x1, ... xn ) . Причем, если
X P ( x1 , ... xn )  1 , то f ( x1 , ... x n )  g1 ( x1 , ... xn ) , иначе f ( x1 , ... xn )  g1 ( g1 , ... g 2 ) .
Доказательство примитивной рекурсивности:
f  g1  X P  g 2  sg ( X P ) .
3.4.6. Оператор ограниченного суммирования и перемножения.
m 1
 f ( x , ... x , i)
g ( x1 , ... xn , f , m) 
1
n
i 0
– ПРО ограниченного суммирования.
Доказательство примитивной рекурсивности:
 g ( x1 , ... xn , f , m  1)  f ( x1 , ... xn , m)  g ( x1 , ... xn , f , m)
g ( x1 ,... xn , f , m)  
 g ( x1 , ... xn , f , 0)  0.
h( x1 , ... xn , f , m) 
m 1
 f ( x , ... x , i)
1
n
i 0
– ПРО ограниченного перемножения.
Доказательство примитивной рекурсивности:
h( x , ... xn , f , m  1)  f ( x1 , ... xn , m)  h( x1 , ... xn , f , m)
h( x1 , ... xn , f , m)   1
h( x1 , ... xn , f ,0)  x(0).
3.4.7. Ограниченный оператор минимизации. Ограниченный оператор минимизации: f ( x1 , ... xn )   y ( P, x1 , ... xn , y, c) . Результатом является
56
наименьший y, обращающий предикат P( x1 , ... xn , y) в истину. Если же
нет такого y, меньшего с, то возвращается с.
Этот оператор – ПРО, так как
 c i

1  X P ( x1, ... xn , j, c) .
y  
 i 0 j 0

Начиная с  y  0 и i  0 , с каждым новым значением i к предыду-

щему значению  y будет добавляться 1. Эта единица получается в произведении, пока X P ( x1 , ... xn , j, c)  0. Как только X P обращается в единицу, произведение обращается в 0 и с данного i, равного наименьшему
y, обращающему предикат в единицу, к X P ( x1 , ... xn , j, c) перестают добавляться единицы.
Если нет ограничения с, имеем неограниченный оператор минимизации.
Оператор минимизации удобен для получения ПРФ, обратных имеющимся. Так, определив предикат P( x, y)  1 , если x  x( y) , используя
оператор минимизации, можно создать функцию от х:
y ( x )   y ( P, x ) .
Результатом будет функция, обратная исходной.
Например, целая часть деления определится через умножение так:
y  z / x   y ( x* ( y  1)  z ) .
Пояснения: нужно найти наименьшее число y, такое, что при умножении y  1 на x, получаем число, большее z. Так как y наименьший, то
y  x будет уже меньше z. Но тогда y и есть целая часть от деления.
3.4.8. Оператор совместной рекурсии. Этот ПРО позволяет нескольким функциям быть вложенными друг в друга посредством рекурсии.
Таким образом, выбранная база аксиом, позволяет алгоритмизировать (сопоставить процедуры вычисления) огромное множество функций
натурального ряда.
3.5. Неразрешимые алгоритмические проблемы РФ
3.5.1. Полнота и непротиворечивость. Займемся метатеорией рекурсивных функций. Поставим три задачи. Выясним:
1. Является ли модель РФ полной формальной теорией? Все ли
множество алгоритмов (вычислимых функций) можно описать, используя ПРФ? Верно ли, что вычислимая функция есть РФ?
2. Существуют ли невычислимые функции, то есть неразрешимые
алгоритмические проблемы?
57
3. Является ли модель РФ непротиворечивой? Относительно алгоритмов данное утверждение принимает вид: все ли функции, получаемые
теорией РФ, являются вычислимыми и верно ли, что РФ есть вычислимая
функция?
Утверждения 1–3 взаимосвязаны. Совместная их истинность делает
истинным равенство РФ = (вычислимая функция).
3.5.2. Функции Аккермана. До сих пор мы отождествляли модель
РФ с моделью ПРФ. Но практика показывает, что модель ПРФ не полна, то
есть утверждение «вычислимая функция есть ПРФ» является ложным.
Доказать это можно, найдя вычислимую функцию, которую нельзя
получить в модели ПРФ. Этому требованию удовлетворяют функции Аккермана. Особенностью таких функций является то, что они возрастают
быстрее, чем любая ПРФ, а значит – не являются ПРФ.
Их стремительный рост обеспечивается тем, что для вычисления
значения функции Аккермана в точке требуется несколько вычислений
значения функции в смежных точках, а уж затем в предыдущей. Поясним
данное свойство в сравнении с примитивной рекурсией.
В общем виде функции Аккермана задаются похожим образом:
B( x  1, y  1)  B( x, B( x  1, y )).
Здесь наблюдается как бы вложенность рекурсии. И чтобы спуститься к предыдущей точке по одной координате х, может понадобиться
огромное число шагов, спускающихся по другой y. Примитивная же рекурсия не имеет такой вложенности.
Используя этот факт, можно доказать, что для любого x найдется n,
такое, что при x  n A( x)  f ( x) , где f (x) – любая ПРФ, а A(x) –
функция Аккермана.
Таким образом, функция Аккермана не является примитивнорекурсивной, но при этом является вычислимой. А это значит, что аппарата ПРФ недостаточно, чтобы описать все множество вычислимых
функций.
3.5.3. Частично рекурсивные функции. При рассмотрении ЛП было
установлено, что любая функция может быть представлена в виде предиката, размерность которого на единицу больше. Но это означает, что
функции Аккермана могут быть вычислены через предикаты. Работу с
предикатами производит неограниченный оператор минимизации, то есть
функции Аккермана могут быть описаны с использованием ПРО неограниченной минимизации.
Функции, построенные из аксиом ПРФ с применением конечного
числа ПРО подстановки, примитивной рекурсии и неограниченного оператора минимизации, называются частично рекурсивными.
Таким образом, функция Аккермана является частично рекурсивной.
58
А модель алгоритма, использующего, кроме ПРФ, частично рекурсивные
функции, является полной и носит название модели РФ. А значит, на
первый вопрос раздела можно дать утвердительный ответ. Каждой РФ
соответствует реальный алгоритм.
3.5.4. Общерекурсивные функции. Итак, мы расширили аппарат РФ.
Такое расширение аппарата приводит к неразрешимым алгоритмическим
проблемам. Эти проблемы связаны с использованием неограниченного
оператора минимизации.
По определению, ограниченный оператор минимизации ищет для
интерпретации x1 , ... xn интерпретацию y, дающую значение предиката,
равное 1. Если же такой интерпретации нет, то он выдает с. Неограниченный оператор минимизации будет в этом случае искать y, пока не
отыщет. Если при этом y может принимать бесконечное число значений,
то получаем неопределенность, так как оператор не может перебрать их
все. В этом случае функция, определяемая оператором минимизации, не
является вычислимой.
Одним словом, в бесконечной таблице истинности нельзя найти 1,
если ее там нет, но и нельзя сказать, что ее нет, не перебрав всех строк.
Такие предикаты приводят к понятию частичных функций, которые
определены не на всех наборах своих аргументов. Ведь если функция не
определена на наборе x1 , ... xn , то для этого набора y  f ( x1 , ... xn ) не существует.
Частично рекурсивные функции, которые определены на всех наборах своих аргументов, называются общерекурсивными (аналог общезначимых формул).
3.5.5. Проблема применимости. Использование неограниченного
оператора минимизации ведет к получению частичных функций, а это в
свою очередь приводит к неразрешимой проблеме применимости. Дело в
том, что если функция не является общерекурсивной, то по ее описанию
в общем случае не удастся выяснить, на каких наборах она будет вычислима, а на каких нет.
Проблема применимости ведет и ко всем остальным неразрешимым
проблемам, которые уже наблюдались на МТ. Это проблемы остановки,
самоприменимости и др.
3.5.6. Тезис Черча-Тьюринга. Непротиворечивость модели рекурсивных функций фиксируется тезисом Черча: любой алгоритм реализуется в виде частично рекурсивной функции.
Этот тезис недоказуем и считается интуитивно верным, так как
опровергнуть его не удается. Какова бы не была функция, ее удается реализовать в модели РФ. Этот тезис есть утвердительный ответ на третий вопрос.
59
С другой стороны, модель МТ приводит к тезису Тьюринга: любой
алгоритм реализуется на МТ.
Тогда из сводимости моделей следует тезис Черча-Тьюринга: любая
МТ есть реализация частично рекурсивной функции. Эти тезисы являются основой суждения о непротиворечивости теории. Итак, удалось получить равенство алгоритма и модели РФ, а значит и модели МТ.
3.6. Задачи для самостоятельного решения
1. Пользуясь лекционным материалом, дать определения терминов:
1) алгоритм,
24) шаг элементарной рекурсии,
2) детерминированность алго25) головка МТ,
ритма,
26) правильно вычислимая
3) описание алгоритма,
функция,
4) реализация алгоритма,
27) унарный код,
5) процесс реализации,
28) универсальная машина
6) механизм реализации,
Тьюринга,
7) модели алгоритмов,
29) кодирование,
8) модель рекурсивных функ30) алгоритмические проблемы,
ций,
31) неразрешимая алгоритмиче9) модель машины Тьюринга,
ская проблема,
10) управляющее устройство,
32) проблема распознавания при11) внутренний алфавит состоя- менимости,
ний,
33) самоприменимость,
12) внешний алфавит данных,
34) проблема распознавания не13) унифицирующая подстанов- тривиального свойства,
ка,
35) нетривиальное свойство,
14) команда МТ,
36) примитивно-рекурсивная
15) память МТ,
функция,
16) данные МТ,
37) примитивно-рекурсивный
17) диаграмма переходов,
оператор,
18) конфигурация,
38) инкремент,
19) вектор данных МТ,
39) проецирующая функция,
20) стандартная начальная кон40) усеченное вычитание,
фигурация,
41) характеристическая функция,
21) стандартная конечная кон42) примитивно-рекурсивное отфигурация,
ношение,
22) оператор подстановки,
43) разветвления ПРО,
23) оператор примитивной ре44) ПРО ограниченного суммикурсии,
рования.
2. Определить функцию, выполняемую машиной Тьюринга, диаграмма переходов которой показана на рис. 13.
60
11R,
00R
q0
  L
1E
qz
  R
q1
01E
q2
11L,
00L
10L
Рис. 13. Диаграмма переходов для идентификации задачи
3. Сконструировать машину Тьюринга, реализующую замену строки
на противоположную.
4. Реализовать в теории рекурсивных функций функцию 3х + 2.
5. Ответить на следующие вопросы:
1) какие алгоритмически неразрешимые проблемы вы знаете?
2) какие алгоритмические модели вы знаете?
3) какие действия может совершать головка чтения/записи?
4) чем является алгоритм в модели Тьюринга и в модели рекурсивных функций?
61
4. ТЕОРИЯ СЛОЖНОСТИ
4.1. Понятие о сложности решения задач
4.1.1. Эффективный алгоритм. Существует огромное количество задач, включая задачи теории графов и сетей, теорию расписаний, оптимизацию программ, базы данных, игры и головоломки, для которых в
настоящее время нет эффективных алгоритмов их решения.
Появление вычислительной техники привело к тому, что все реже
приходится решать индивидуальную задачу, а все чаще приходится решать массовую задачу, получаемую из индивидуальной путем изменения
исходных данных. Таким образом, алгоритм решения массовой задачи –
это вычислимая функция. При фиксации аргумента функции получаем
алгоритм решения индивидуальной задачи.
Большинство дискретных и комбинаторных задач допускает решение с помощью некоторого процесса перебора вариантов, однако число
возможных вариантов растет экспоненциально в зависимости от размерности задачи. Переборные алгоритмы массовых задач называются неэффективными. В отличие от них эффективными называются полиномиальные алгоритмы решения массовой задачи П, то есть такие, которые
решают произвольную индивидуальную задачу I  П за время, ограниченное полиномом от размерности задачи I.
4.1.2. Задачи распознавания свойств. Сущность сказанного поясним
на так называемых задачах распознавания свойств, которые и соответствуют задачам вычисления предиката на МТ. При этом начальная конфигурация К1 есть исходные данные, то есть индивидуальная задача, а
система команд МТ есть описание принципов решения массовой задачи.
Таким образом, предикат МТ делит множество индивидуальных задач на два подмножества: Y  П, в котором процесс реализации I дает результат «И» и N  П – все остальные индивидуальные задачи (на них либо результат «Л», либо работа МТ бесконечна).
Рассматривая только задачи-предикаты, мы не ограничиваем общности исследований проблемы, так как было показано ранее, что решение
любой дискретной задачи (функцию n аргументов) можно рассматривать
как предикат n  1 аргумента.
4.1.3. Кодировка задачи. В определении эффективности алгоритма
фигурирует понятие размерности задачи. Под размерностью задачи будем понимать длину слова начальной конфигурации К1 индивидуальной
задачи I. Чем большего слова на ленте требует описание задачи, тем
больше в задаче исходных данных и тем больше размерность задачи.
Кодировкой задачи П назовем такое отображение е: П  К1, ставящее в соответствие любой задаче I ее код, то есть слово во внешнем ал62
фавите МТ, начальную конфигурацию К1. Иначе говоря, К1 = e(П).
При этом отображение е имеет право называться кодировкой задачи
П, только если:
1) возможно однозначное декодирование e-1;
2) e и e-1 полиномиально вычислимы, то есть существуют эффективные алгоритмы кодировки и декодирования;
3) кодировка не избыточна. Неизбыточная кодировка сопоставляет
код наименьшей длины, например, двоичный код. Унарная кодировка избыточна.
4.1.4. Временная сложность. Обозначим ta() – время переработки
алгоритмом решения массовой задачи П индивидуальной задачи I, с
начальной конфигурацией К1 = q1 в конечную Кz = qzИ При этом
кодирует задачу из подмножества Y, то есть задачу, для которой МТ
останавливается за конечное время с результатом И. Тогда временная
сложность Ta(n) массовой задачи П есть максимальное время решения
любой I  П, размерность которой не превосходит n.
T (n)  max( t ( )),   n.
Таким образом, говоря о временной сложности, мы имеем в виду
максимальное время решения индивидуальной задачи.
4.1.5. Класс полиномиально разрешимых задач. Полиномиальными
задачами (P-задача) называют задачи, для которых существует кодировка
и МТ А, для которой временная сложность не превосходит некоторого
полинома p(n). То есть Тa(n) < p(n).
Таким образом, для Р-задач существует возможность ограничить
время их выполнения и число вычислений некоторым полиномом и решить их эффективно.
Примером полиномиальной задачи является распознавание четности
целого числа. Для задачи распознавания простого числа вопрос о существовании полиномиального алгоритма на сегодняшний день открыт.
Вместе с тем неполиномиальность некоторых задач удалось доказать.
Примером служат алгоритмически неразрешимые проблемы. Временная сложность этих задач сильно увязана с исходными данными конкретной индивидуальной задачи. Так, для некоторых I МТ останавливается быстро, для других работает бесконечно.
Кроме того, существуют задачи, для которых постановка задачи исключает возможность построения полиномиального алгоритма. В частности, это переборные постановки, требующие найти не одно решение, а
все. Такие задачи комбинаторики имеют экспоненциальную временную
сложность.
И, наконец, третий класс задач, полиномиальность которых просто
не удается доказать: это задачи, для которых выбор любого полинома p
гарантирует, что Тa(n) > p(n).
63
4.1.6. Распараллеливание вычислений. Задачи перебора всех вариантов, не являющиеся задачами распознавания свойств, можно разбить на
полиномиальные. Для таких задач теория сложности ставит вопрос о
возможности их полиномиального решения при распараллеливании вычислений.
Задачи распознавания свойств выдают результат, найдя ближайшую
единицу в таблице истинности предиката. Переборные задачи ищут все
единицы. Способом решения такой задачи будет создание независимых
алгоритмов, каждый из которых находит лишь одну единицу в таблице
истинности. Эти алгоритмы можно выполнять параллельно. Такие параллельные алгоритмы могут иметь одинаковую структуру и отличаться
лишь исходными посылками, которые ведут к тому, что алгоритмы находят разные интерпретации, дающие единицу.
4.1.7. Класс недетерминированных полиномиально разрешимых задач. Задачи третьего класса и другие задачи распознавания свойств, распараллеливание вычислений в которых ведет к их полиномиальности, относят к классу недетреминированных полиномиальных задач (NP-задача).
4.1.8. Недетерминированная машина Тьюринга. Принципы распараллеливания вычислений реализуются так называемой недетерминированной машиной Тьюринга (НДМТ). Такая машина М0 состоит из набора
обычных детерминированных машин Тьюринга (ДМТ) Тi. При этом каждая ДМТ Тi, входящая в набор, имеет начальную конфигурацию Кi1,
снабженную подсказкой. Эти подсказки являются гипотезами, дополнительными сведениями и условиями, которые, возможно, приведут к ускоренному решению задачи. НДМТ М0 останавливается, когда останавливается хотя бы одна ДМТ Тi, входящая в набор.
Однозначно говорить о том, что НДМТ остановится, нельзя, так как
догадок и подсказок в общем случае может быть бесконечное число и для
использования всех догадок нужно иметь бесконечный набор ДМТ.
4.1.9. Временная сложность недетерминированных задач. Обозначим t a^ ( ) – время с начала работы до остановки НДМТ, перерабатывающей слово начальной конфигурации К1 = u1в конечную конфигурацию Кz = uzИ По определению НДМТ,
ta^ ( )  min(t ( , s)) ,
где t ( , s) – МТ, перерабатывающая с подсказкой s, имеет начальную конфигурацию Кi1 = q1s. Минимум берется по всем ДМТ из набора.
Временной сложностью НДМТ для задачи П называется максимальное время решения задачи I размерности n этой машиной:
T^ (n)  max( t^ ( )),   n
64
или
T^ (n)  max (min t ( , s)),   n.

s
4.1.10. Класс недетерминированных полиномиально разрешимых задач. Итак, NP-задача – это задача, для которой T^ (n)  p(n) . Имея много
процессоров, можно решать задачу параллельно, при этом каждый процессор будет использовать при решении различную подсказку, что приведет к полиномиальной сложности.
4.1.11. Пример NP-задачи. Объективно сложной задачей является
составление оптимального расписания занятий в институте. Она относится к классу сетевых задач. Решая её, необходимо учесть возможность физической реализации того или иного варианта расписания занятий, кроме
того, преследуется определенная цель, например, минимизация числа
«окон» у преподавателей и студентов. В общем случае таких целей (критериев) может быть очень много.
Формализуем задачу в виде задачи распознавания свойств. Будем
рассматривать в качестве переменных всё множество пар проводимых в
течение семестра. Тогда переменных 6 17  6  20 (6 пар, 17 недель, 6 дней
в неделе, 20 групп, потоков). Каждая переменная может принимать значение наименования того или иного предмета, занятия.
В задаче два условия физической реализуемости:
1. Набор значений переменных (расписание) должен быть таков,
чтобы число занятий по каждому предмету соответствовало числу часов,
предусмотренных учебной нагрузкой.
2. Кроме того, две переменные, отвечающие за занятия, проводимые
в одно и то же время, не должны принимать одинаковые значения (один
преподаватель не ведет два занятия сразу).
Критерий задачи формулируется следующим образом: необходимо
найти такой набор значений аргументов, чтобы «окон» было, например,
меньше 100. Таким образом, задача сформулирована в виде предиката. То
есть каждая интерпретация переменных дает значение «Истина», если
она обеспечивает число «окон», меньшее 100.
МТ, решающая задачу, будет использовать в качестве исходных
данных информацию об ограничениях на физическую реализуемость и
информацию о критерии. Исходя из этого, можно выстраивать расписание день за днем, неделю за неделей, причем с каждой новой парой условия физической реализуемости будут все жестче и жестче влиять на выбор планируемой пары. В конце концов, можно прийти к тупиковому варианту, после которого дальнейшее составление расписания невозможно.
Тогда следует вернуться на несколько пар назад и пересмотреть свою
стратегию. Такой алгоритм реализуется методами поиска на графах. Он
65
неэффективен и неполиномиален. Образно такой алгоритм можно представить как процесс нанизывания колец различного достоинства на
острия, причем кольца можно снимать и нанизывать заново.
Альтернативой такой МТ является НДМТ. Её исходные данные те же, а
в качестве подсказок s каждой ДМТ предоставляется конкретный набор значений переменных. Так как всего переменных N  6 17  6  20  30000 и
каждая переменная может иметь порядка 100 интерпретаций (число предметов), то общее число вариантов M  100 N , много, но конечное число.
Таким образом, понадобится набор из 100 N машин. Каждая машина
просто проверит свой набор значений переменных на удовлетворение
критерию и физическую реализуемость. Такая проверка полиномиальна.
ДМТ реализуют алгоритм решения Р-задачи, а НДМТ выдает в качестве
ответа подсказку, для которой ДМТ остановится.
Кроме того, существует возможность получения решения переборной задачи о всех устраивающих вариантах. НДМТ просто следует дождаться окончания работы всех ДМТ и выбрать s, на которых НДМТ
даст единицу.
4.2. NP-полные (универсальные) задачи
4.2.1. Полиномиальная сводимость. Задач распознавания свойств
большое множество. Поэтому для теории представляет интерес не только
возможность их классификации, но и способы определения класса сложности одних задач на основе известного класса сложности других. Такое
заключение можно сделать, сводя одну задачу к другой. Для описания
такого сведения вводится понятие полиномиальной сводимости.
Будем считать, что задача П1 полиномиально сводится к задаче П2,
если для П1 имеется МТ полиномиальной временной сложности, кодирующая начальную конфигурацию задачи П1 в начальную конфигурацию задачи П2, причем задача П2, стартуя с такой конфигурацией, дает
ответ такой же, как задача П1.
Этот факт обозначают так: П1  П2.
В теории сложности доказывается утверждение о том, что если
П1  П2 и П2  P, то П1  P.
Доказательство.
МТ для задачи П1 есть суперпозиция МТ, обеспечивающей кодировку П1 в терминах П2, и МТ решения П2. Время решения П1:
T1 (n)  T  (n)  T2 (n),
где T  (n)  p  (n) – время работы МТ полиномиального сведения, T2 (n)  p2 (n) – время решения П2. Тогда
T1 (n)  p  (n)  p2 (n)  p1 (n).
66
Утверждение доказано.
Аналогично доказывается утверждение: если П1  П2 и П2  NP, то
П1  NP.
4.2.2. NP-полные задачи. Массовая задача П2 называется NP-полной,
если П2  NP и любая задача П1  NP сводится к П2 полиномиально: П1
 П2. Класс всех NP-полных задач обозначается NPC (NP-сomplete).
Наличие NPС-задач было доказано. Одной из таких задач является задача
о выяснении выполнимости КНФ.
Понятие NP-полной задачи приводит к нескольким проблемам теории сложности.
1. Если бы удалось найти P задачу, принадлежащую классу NPC, то
стало бы доказано, что P = NP. То есть для любой задачи экспоненциальной сложности нашелся бы полиномиальный алгоритм решения на МТ.
2. Если бы удалось доказать отсутствие полиномиального решения
для какой-либо NPC-задачи, то стало бы доказано, что создание таких алгоритмов для NPC-задач невозможно.
Понятие NP-полноты позволяет доказывать принадлежность задачи
П к классу NP-полных задач, для этого достаточно свести к П хотя бы
одну задачу класса NPC. Но существуют задачи, доказать NP-полноту
которых пока не представляется возможным, такие задачи принято считать трудноразрешимыми и они образуют класс NP-трудных задач. В
отличие от них, задачи, сводимые к P и NPC, считаются легкоразрешимыми, так как для них существует возможность реализовать полиномиальный или экспоненциальный алгоритм решения.
4.3. Задачи для самостоятельного решения
1. Определить тип задачи нахождения максимального элемента.
2. Определить тип задачи сортировки массива.
3. Определить тип задачи поиска заданного элемента в бинарном дереве.
4. Определить вычислительную сложность задачи нахождения максимального элемента.
5. Определить вычислительную сложность задачи сортировки массива.
6. Определить вычислительную сложность задачи поиска заданного
элемента в бинарном дереве.
7. Ответить на следующие вопросы:
1) назовите типы сложности задач;
2) в каких случаях необходимо учитывать временную, а в каких
вычислительную сложность?
67
5.
ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
Задание 1. Формализовать высказывание логики предикатов:
1. Предположим, что последовательности {Xn} и {Yn} сходятся,
при этом при n  : lim(xn) = x, lim(yn) = y. Тогда сходятся и последовательности {Xn + Yn},{Xn - Yn},{Xn * Yn},{Xn / Yn}.
2. Если |xn| < yn при всех n > N0 и если ряд yn сходится, то сходится
и ряд xn..
3. Пусть задан ряд xn. Пусть при n  : a = lim|xn|1/n. Ряд сходится
при a < 1 и расходится при a > 1. При a = 1 ряд может как сходиться, так
и расходиться.
4. Пусть функция f(x) задана на множестве X, имеющем точку a своей предельной точкой. Тогда для того чтобы существовал предел функции
f(x) при x  a, необходимо и достаточно, чтобы для любого e > 0 нашлось s
= s(e) такое, что при любых x, x`  X, удовлетворяющих требованиям
0  |x - a| < s(e), 0 < |x` - a| < s(e), выполнялось неравенство |f(x) - f(x`)| < e.
5. Функция f(x) имеет в точке x = a предел тогда и только тогда, когда
она имеет в этой точке левый и правый пределы и эти пределы совпадают.
6. Если функция f(x) задана в окрестности точки x = x0 и непрерывна в точке x = x0, то существует окрестность |x - x0| < s этой точки, в которой функция f(x) ограничена.
7. Пусть функция f(x) непрерывна в точке x = x0, а функция (t) непрерывна в точке t = t0 = f(x0). Тогда сложная функция y = (f(x)) непрерывна в точке x = x0.
8. Любые две первообразные f1(x) и f2(x) для функции g(x) на интервале (a, b) отличаются друг от друга на постоянную, т. е. f1(x) – f2(x) = const.
9. Первообразные f1(x) и f2(x) для функции g(x) совпадают на интервале (a, b), если они совпадают хотя бы в одной точке x  (a, b).
10. Пусть, функция y = f(x) определена на отрезке [a, b] и имеет в
точке с  (a, b) производную f’(c)  0. Тогда, если f’(c) > 0, то функция
f(x) возрастает в точке x = c; если же f’(c) < 0, то функция f(x) убывает в
точке x = c.
11. Если функция g(x) имеет на [a, b] конечное число точек разрыва
и ограничена на [a, b], то она интегрируема на [a, b]. В частности, интегрируемы кусочно-непрерывные на [a, b] функции f(x).
12. Если функция f(x) не ограничена на множестве X и X замкнуто и
ограничено, то f(x) не является непрерывной на X.
13. Пусть функция F(x, y, z) задана в цилиндрической области и в
каждой точке области (x0, y0) функция h(z) = F(x0, y0, z) – строго монотонная функция переменного z. Тогда уравнение F(x, y, z) = 0 определяет в
области не более чем одну неявную функцию z = u(x, y).
68
14. Если ряд ak сходится абсолютно, то и любой ряд a’k, полученный перестановкой его членов, также сходится абсолютно и имеет ту же
самую сумму.
15. Пусть ряды ak и bk сходятся соответственно к A и B и один из
них сходится абсолютно. Тогда ряд ck, являющийся их произведением,
сходится к С и при этом С = А * B.
16. Если a > b, то найдется такое действительное число с, что a > b + c.
Кроме того, найдется такое действительное число d, что a = b + d и d > c.
17. Функция f(x) дифференцируема в точке x = x0, если она непрерывна в некоторой окрестности точки x0, т. е. в окрестности точки
х0 limy = 0, при х  0.
18. Любые два потенциала f1(x) и f2(x) для g(x) отличаются друг от
друга в связной области X на постоянную, т. е. f1(x) – f2(x) = const.
19. Пусть функции f(x) и g(x) – эквивалентные функции в окрестности точки x = x0. Тогда, если существует предел lim(f(x) * h(x)) =  при
x  x0, то существует и предел lim (g(x) * h(x)) = .
20. Первообразные f1(x) и f2(x) для g(x) совпадают на интервале (, ),
если они совпадают хотя бы в одной точке   (, ).
21. Пусть G – исчисление на основе G1 и D – замкнутая формула в
алфавите G, такая, что ее отрицание не является в G теоремой. Тогда
простое расширение G с помощью D непротиворечиво.
22. Если Р0 – тривиальное ограничение П и Р – простое расширение
Р0 с помощью множества замкнутых формул В (иначе говоря – Р есть
исчисление на основе П, заданное системой аксиом В), то всякая интерпретация множества формул исчисления Р, в которой истинны все формулы из В является моделью для Р.
23. Если две формулы, образованные из элементарных предложений
с помощью операций конъюнкции, дизъюнкции и отрицания, равносильны, то двойственные им формулы также равносильны.
24. Для любых двух эквивалентных формул F1 и F2 существует эквивалентное преобразование F1 в F2 с помощью простейших эквивалентных преобразований.
25. Если в формуле, представляющей функцию, все знаки функций
заменить двойственными функциями, то полученная формула будет описывать функцию, двойственную исходной функции.
26. Формула B есть логическое следствие формул A1, A2 тогда и
только тогда, когда общезначима формула: A1A2  B.
27. Если f1(x) и f2(y) вычислимы по Тьюрингу, то их композиция
g(x) = f2(f1(x)) также вычислима по Тьюрингу.
28. Не существует алгоритма, позволяющего для любой МТ узнать:
применима ли она к конкретному слову в ее внешнем алфавите.
69
29. Ни для какого нетривиального свойства МТ не существует алгоритма, позволяющего распознавать данное свойство у любой МТ.
30. Пусть x  (a, b),  = f(a),  = f(b)  . Пусть число  заключено
между  и  , т. е. ( - )( - ) < 0. Тогда найдется хотя бы одна точка c(a,
b) такая, что f(c) = .
Задание 2. Привести формулу логики предикатов в сколемовскую нормальную форму:
1)  [U ( x, y)  V ( x, y)]    [U ( x, y)  V ( x, y)]    [ P( x)  V ( x, y)]    [ P( x)  V ( x, y) ;
x
x y
x y
x y
2)   [ P( x)  V ( x, y)]   [U ( x, y)  V ( x, y)]    [U ( x, y)  V ( x, y)]    [ P( x)  V ( x, y)] ;
x y
x
x y
x y
3)   [U ( x)  P( x, y )]   [U ( x)  V ( x)]    [U ( x)  P( x, y )]    [V ( x)  P( x, y )] ;
x y
x
x y
x y
4)  [U ( x)  Q( x)]    [U ( x)  P( x, y)]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x
x y
x y
y x
5)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x
x y
x y
y x
6)   [Q( x)  P( x, y)]   [U ( x)  Q( x)]    [U ( x)  P( x, y)]    [U ( x)  P( x, y)] ;
y x
x y
x
x y
7)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x y
x y
y x
x
8)  [U ( x)  Q( x)]   x  y [U ( x)  P( x, y )]   x  y [U ( x)  P( x, y )]   y  x [Q( x)  P( x, y )] ;
x
9)  x  y  z [U ( x, y)  P( x)  Q( y, z)]   x  y  z [U ( x, y)  P( x)  Q( y, z)]   y  z [Q( y, z)] ;
10)    [U ( x, y)  P( x)  Q( y, z)]     [U ( x, y)  P( x)  Q( y, z )]    [Q( y, z )] ;
x
y
z
x
y z
y
z
11) 
x [U ( x, y)  V ( x, y)]   x  y [U ( x, y)  V ( x, y)]   x  y [ P( x)  V ( x, y)]   x  y [ P( x)  V ( x, y)
;
12) 
x  y [ P( x)  V ( x, y)]   x [U ( x, y)  V ( x, y)]   x  y [U ( x, y)  V ( x, y)]   x  y [ P( x)  V ( x, y)]
;
13)   [U ( x)  P( x, y )]   [U ( x)  V ( x)]    [U ( x)  P( x, y )]    [V ( x)  P( x, y )] ;
x y
x
x y
x y
14)  [U ( x)  Q( x)]    [U ( x)  P( x, y)]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x
x y
x y
y x
15)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x
x y
x y
y x
16)   [Q( x)  P( x, y)]   [U ( x)  Q( x)]    [U ( x)  P( x, y)]    [U ( x)  P( x, y)] ;
y x
x y
x y
x
17)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x
x y
x y
y x
18)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x y
x y
y x
x
19)  x  y  z [U ( x, y)  P( x)  Q( y, z)]   x  y  z [U ( x, y)  P( x)  Q( y, z)]   y  z [Q( y, z)] ;
20)    [U ( x, y)  P( x)  Q( y, z)]     [U ( x, y)  P( x)  Q( y, z )]    [Q( y, z )] ;
x y z
x y z
y z
21)  [U ( x, y)  V ( x, y)]    [U ( x, y)  V ( x, y)]    [ P( x)  V ( x, y)]    [ P( x)  V ( x, y) ;
x
x y
x y
70
x y
22)   [ P( x)  V ( x, y)]   [U ( x, y)  V ( x, y)]    [U ( x, y)  V ( x, y)]    [ P( x)  V ( x, y)] ;
x y
x
x y
x y
23)   [U ( x)  P( x, y )]   [U ( x)  V ( x)]    [U ( x)  P( x, y )]    [V ( x)  P( x, y )] ;
x y
x
x y
x y
24)  [U ( x)  Q( x)]    [U ( x)  P( x, y)]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x
x
y
x y
y x
25)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x
x y
x y
y x
26)   [Q( x)  P( x, y)]   [U ( x)  Q( x)]    [U ( x)  P( x, y)]    [U ( x)  P( x, y)] ;
y x
x y
x y
x
27)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x y
x
x y
y x
28)  [U ( x)  Q( x)]    [U ( x)  P( x, y )]    [U ( x)  P( x, y )]    [Q( x)  P( x, y )] ;
x y
x y
y x
x
29)    [U ( x, y)  P( x)  Q( y, z)]     [U ( x, y)  P( x)  Q( y, z)]    [Q( y, z)] ;
x y z
x y z
y z
30)    [U ( x, y)  P( x)  Q( y, z)]     [U ( x, y)  P( x)  Q( y, z )]    [Q( y, z )] .
x
y
z
x
y z
y
z
Задание 3. Используя метод резолюций логики предикатов, произвести доказательство теоремы, сколемовская нормальная форма
которой получена в результате выполнения задания 2.
Задание 4. Построить функцию принадлежности P(x) по графику
функций принадлежности:
1)
2)
3)
4)
5)
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
1
p 1( x)
p 2( x)
p 3( x)
0
x
0
100
Рис. 14. Функции принадлежности для вариантов 1–5
71
6) P = p1  p2  p3;
7) P = p1  p2  p3;
8) P = p1  p2  p3;
9) P = p1  p2  p3;
10) P = p1  p2  p3;
1
p 1( x)
p 2( x)
p 3( x)
0
x
0
100
Рис. 15. Функции принадлежности для вариантов 6–10
11)
12)
13)
14)
15)
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
1
p 1( x)
p 2( x)
p 3( x)
0
x
0
100
Рис. 16. Функции принадлежности для вариантов 11–15
72
16)
17)
18)
19)
20)
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
1
p 1( x)
p 2( x)
p 3( x)
0
x
0
100
Рис. 17. Функции принадлежности для вариантов 16–20
21)
22)
23)
24)
25)
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3;
P = p1  p2  p3.
1
p 1( x)
p 2( x)
p 3( x)
0
x
0
100
Рис. 18. Функции принадлежности для вариантов 21–25
73
Задание 5. Выполнить Modus ponens для приближенных рассуждений
A(x), P(x, y) B(y):
1) A  0,5 0,6 0,7 ;
0,6 0,4 0,5
P  0,8 1 0,3
0,4 0,9 0,1 .
2)
A  1 0,3 0,9;
 0,1 0,2 0,3
P  0,4 0,5 0,6
0,7 0,8 0,9 .
3)
A  0,6 0,2 0,1 ;
0,5 0,7 0,4
P   0,1 0,6 0,3
0,5 0,2 0,8 .
4)
A  0,3 1 0,7 ;
0,6 0,9 0,9
P  0,9 0,8 0,6
0,4 0,2 0,8 .
5)
A  0,2 0,8 0,1 ;
0,6 0,7 0,4
P  0,8 0,3 0,9
0,2 0,8 0,5 .
6)
A  0,9 0,8 0,9 ;
0,7 0,8 0,5
P  0,3 0,3 0,4
0,3 0,3 0,7 .
7)
A  0,1 0,1 1;
0,9 0,8 0,7
P  0,5 0,7 0,4
0,6 0,5 0,4 .
8)
A  0,8 0,3 0,2 ;
0,6 0,7 0,5
P  0,5 0,5 0,6
0,8 0,8 0,7 .
9)
A  0,4 0,6 1 ;
0,2 0,2 0,2
P  0,2 0,6 0,7
0,9 0,8 0,9 .
74
10) A  1
1 0,2 ;
0,3 0,4 0,3
P  0,4 0,3 0,7
0,8 0,6 0,9 .
11) A  0,3
0,5 0,2 ;
0,7 0,6 0,5
P  0,4 0,9 0,8
0,7 0,7 0,6 .
12) A  0,3
0,9 1;
0,8 0,7 0,9
P  0,4 0,8 0,9
0,5 0,6 0,5 .
13) A  0,7
0,8 0,9;
0,2 0,5 0,3
P  0,8 0,6 0,3
0,2 0,9 0,7 .
14) A  0,9
0,8 0,7;
0,6 0,8 0,4
P  0,9 0,4 0,4
0,3 0,6 0,2 .
15) A  0,3
1 1 ;
0,5 0,8 0,3
P  0,9 0,7 0,2
0,5 0,1 0,1 .
16) A  1
0,8 0,1 ;
 0,1 0,6 0,5
P   0,3 0,9 0,5
0,7 0,8 0,8 .
17) A  0,4
0,4 0,8 ;
0,7 0,7 0,6
P  0,5 0,6 0,4
0,5 0,3 0,4 .
18) A  0,9
0,3 0,3 ;
0,5 0,6 0,4 
P   0,3 0,8 0,6 
0,4 0,3 0,27  .
19) A  0,1
0,1 0,3 ;
75
0,4 0,6 0,3
P  0,9 0,8 0,7
0,5 0,4 0,3 .
20) A  0,7
0,7 0,7 ;
0,7 0,6 0,8
P  0,5 0,7 0,4
0,2 0,3 0,1 .
21) A  0,2
0,8 0,6 ;
0,5 0,5 0,8
P  0,6 0,8 0,8
0,7 0,3 0,2 .
22) A  0,4
0,9 0,2 ;
0,7 0,6 0,5
P  0,8 0,4 0,9
0,6 0,5 0,8 .
23) A  0,3
0,1 0,9 ;
0,5 0,5 0,8
P  0,6 0,4 0,3
0,3 0,6 0,8 .
24) A  0,6
0,6 0,6 ;
0,6 0,6 0,5
P  0,6 0,4 0,7
0,3 0,8 0,2 .
25) A  0,5
0,5 0,5 ;
0,4 0,4 0,4
P  0,5 0,7 0,6
0,3 0,2 0,8 .
76
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
абсолютный показатель обладания
свойством – 31
Аккермана функция – 58
алгоритм – 43
алгоритмические проблемы – 51
атом логики предикатов – 9
атом нечеткой логики – 34
вектор данных МТ – 46
внешний алфавит данных – 44
внутренний алфавит состояний – 44
временная сложность – 63
временная сложность НДМТ – 64
выполнимая формула – 16
головка МТ – 44
данные МТ – 44
декартово произведение множеств – 6
детерминированная МТ – 64
детерминированность алгоритма – 43
диаграмма переходов – 45
дискретная задача – 62
дистрибутивности аксиома – 38
задача распознавания свойств – 62
замкнутая формула – 10
знания аксиома – 38
индивидуальная задача – 62
инкремент – 53
интерпретация – 16
квантор – 7
квантор всеобщности – 8
квантор существования – 8
кодирование – 51
кодировка задачи – 62
команда МТ – 44
комбинаторная задача – 62
композиционное правило вывода – 37
конфигурация – 45
легкоразрешимая задача – 67
лингвистическая переменная – 30
логика предикатов – 4
логическое следствие – 17
массовая задача – 62
матрица – 18
машина Тьюринга модель – 43
механизм реализации – 43
модальное исчисление высказываний – 38
модальность – 38
модели алгоритмов – 43
n-местный предикат – 5
неизбыточность кодировки – 63
негативной интроспекции аксиома
– 38
недетерминированная МТ – 64
недетерминированная полиномиальная задача – 64
незамкнутая формула – 10
неразрешимая алгоритмическая
проблема – 51
нетривиальное свойство – 53
нечеткая арифметика – 32
нечеткая логическая операция – 32
нечеткое логическое следствие – 36
неэффективный алгоритм – 62
оператор подстановки – 54
оператор примитивной рекурсии – 54
описание алгоритма – 43
опровержимая формула – 16
отношение – 6
область контрарности – 22
общерекурсивная функция – 59
ограниченного перемножения ПРО
– 56
ограниченного суммирования ПРО
– 56
ограниченный оператор минимизации – 56
одноместный предикат – 5
память МТ – 44
подсказака – 64
полиномиальная задача – 63
77
позитивной интроспекции аксиома
– 38
полиномиальная вычислимость – 63
полиномиальная сводимость – 66
полиномиальный алгоритм – 62
ППФ нечеткой логики – 34
правильно вычислимая функция – 46
предваренная нормальная форма – 18
предикат – 4, 5
предметные константы – 4
предметные переменные – 4
префикс – 18
приближенное доказательство теорем – 36
примитивно-рекурсивная функция
– 53
примитивно-рекурсивный оператор
– 56
принцип соответствия – 35
проецирующая функция – 54
процедура унификации – 23
процесс реализации – 43
разветвления ПРО – 56
размерность задачи – 62
распознавания нетривиального
реализация алгоритма – 43
рекурсивных функций модель – 43
свойства проблема – 53
распознавания применимости проблема – 52
самоприменимость – 51
свободная переменная – 10
связанная переменная – 10
сколемовская нормальная форма – 21
сколемовская функция – 21
стандартная конечная конфигурация – 46
стандартная начальная конфигурация – 46
схемы высказываний – 9
тезис Тьюринга – 60
тезис Черча – 59
терм – 9
трудноразрешимая задача – 67
унарный код – 47
универсальная машина Тьюринга –
50
унифицируемое множество – 24
унифицирующая подстановка – 24
управляющее устройство – 44
усеченное вычитание – 55
функция принадлежности – 30
характеристическая функция – 55
частичная функция – 59
частично рекурсивная функция – 58
численные кванторы – 10
шаг элементарной рекурсии – 54
экспоненциальная временная
сложность – 63
элиминирование квантора существования – 20
эффективный алгоритм – 62
78
СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ
БА – булева алгебра,
ДМТ – детерминированная машина Тьюринга,
КНФ – конъюнктивная нормальная формула,
ЛВ – логика высказываний,
ЛП – логика предикатов,
ЛИНГ – лингвистическая переменная,
МИВ – модальное исчисление высказываний,
МТ – машина Тьюринга,
НДМТ – недетерминированная машина Тьюринга,
ППФ – правильно построенные формулы,
ПНФ – предваренная нормальная форма,
ПРФ – примитивно-рекурсивная функция,
ПРО – примитивно-рекурсивный оператор,
РФ – рекурсивная функция,
СИВ – содержательное исчисление высказываний,
СНФ – сколемовская нормальная форма,
УМТ – универсальная машина Тьюринга,
ФИВ – формальное исчисление высказываний.
79
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.
2.
3.
4.
5.
6.
7.
Колчин, А. Ф. Введение в математическую логику / А. Ф. Колчин, С. А. Зыкова. – М.:
Изд-во МГТУ, 1998. – 48 с.
Новикова, Н. М. Основы оптимизации. Курс лекций / Н. М. Новикова. – М.: Изд-во
МГТУ, 1998. – 65 с.
Гладкий, А. В. Математическая логика / А. В. Гладкий. – М.: Изд-во РГГУ, 1998. – 497 с.
Набебин, А. А. Логика и пролог в дискретной математике / А. А. Набебин. – М.: Издво МЭИ, 1994. – 480 с.
Москвинова, Г. И. Дискретная математика для менеджера в примерах и задачах: учеб.
пособие / Г. И. Москвинова. – М.: Логос, 2004. – 238 с.
Кузнецов, О. П. Дискретная математика для инженера / О. П. Кузнецов, Г. М. Адельсон-Вельский. – М.: Энергоатомиздат, 1988. – 480 с.
Санжапов, Б. Х. Математическое моделирование технических объектов и технологий в
нечетких ситуациях / Б. Х. Санжапов, В. А. Камаев. – Волгоград: РПК «Политехник»,
1989.
80
Download