
- •Полином Жегалкина
- •Полнота булевых функций
- •Классификация предикатов:
- •Формулы логики предикатов.
- •Понятие равносильной формулы.
- •Приведенная форма для формулы предикатов.
- •Предваренная нормальная форма для формул логики предикатов.
- •Элементы теории алгоритмов.
- •Метрические характеристики графа.
- •Нахождение кратчайшего пути.
- •– Разрез
- •2), , Согласно 2б - противоречие, для всех вершин.
Элементы теории алгоритмов.
Машина Тьюринга – это воображаемая машина:
-
Бесконечная лента, которая поделена на ячейки, в которых находятся символы
-
Внешний алфавит: совокупность знаков, с помощью которых записываются слова
,
- пустой символ
-
Устройство управления, может останавливаться на месте или двигаться влево, вправо
-
Внутренний алфавит – совокупность состояний машины
,
– особое «стоп» состояние,
– начальное
При работе над словом возможны 2 ситуации:
-
После конечного числа шагов машина останавливается (переход в состояние
) и на ленте оказывается изображенным некоторое слово, в этом случае говорят, что машина применима к начальному слову и преобразовывает его в другое слово;
-
Машина никогда не останавливается (есть
, но она к нему не переходит), в этом случае говорят, что машина не применима к данному слову.
Пусть
на некотором шаге машина в состоянии
устройство управления находится над
;
мы должны заменить его на
,
устройство управления должны оставить
на месте или сместить:
Совокупность таких команд называется программой машины Тьюринга.
Тьюринговая функциональная система
|
|
|
|
|
|
|
|
|
|
|
|
Вычисление по Тьюрингу функций.
Рассмотрим
расширенный натуральный ряд:
,
рассмотрим функции от
переменных
,
где
Такие
функции называются частичными функциями
счётнозначной логики. Множество функций
.
Если
область определения функции совпадает
со всем
,
то тогда
называется всюду определенной.
Пусть
,
;
закодируем числа натурального ряда:
,
тогда слово
будем записывать на ленте
Определение:
говорят, что функция
вычислима по Тьюрингу, если существует
машина Тьюринга, работающая в алфавите
и обладающая следующими свойствами:
-
Если набор
- область определения и
, то машина Тьюринга применима к слову в начальной конфигурации
-
Если
, то машина не применима к слову в начальной конфигурации, то есть начиная работу над словом она начинает циклить.
Рекурсивные функции:
-
0 – функция:
-
Функция следования
-
Оператор проектирования
Введем следующие операции:
-
Операция суперпозиции:
…
-
Примитивная рекурсия
-
Процедура взятия
оператора
Ищем следующим образом:
Определение:
функция называется частично рекурсивной,
если она может быть получена из
простейших функций: 0 – функции, функции
следования, функции выбора переменной,
с помощью конечного числа применений
суперпозиций примитивной рекурсии и
взятия
оператора. Если функция всюду определена
и частична рекурсивна, она называется
общерекурсивной функцией.
Теорема: всякая частично рекурсивная функция вычислима по Тьюрингу и наоборот: всякая вычислимая по Тьюрингу функция является частично рекурсивной.
Определение: множество называется общерекурсивным, если оно совпадает с множеством значений некоторой общерекурсивной функции (например множество чётных чисел).
Определение:
рассмотрим некоторое множество
,
которое является подмножеством
некоторого множества, тогда
характеристической функцией данного
множества
Определение:
множество
называется рекурсивным, если его
характеристическая функция частично
рекурсивная.
Теорема: всякое рекурсивное множество является общерекурсивным. Нормальные алгоритмы Маркова.
Рассмотрим
некоторую совокупность символов –
алфавит
,
- слово,
– пустое слово.
Определение: Марковской
подстановкой называется операция,
которая записывается
,
которая ищет первое вхождение слова
в некоторое слово
и заменяет слово
на слово
.
– если дальше продолжаем работу
– окончание работы
после
Работа
алгоритма происходит следующим образом:
рассматривается слово
и ищется первое
,
если ни одно из
не является подсловом
,
то в этом случае алгоритм не начинает
свою работу, иначе
и получаем новое слово
.
Если эта подстановка была заключительной,
то останавливаемся и результат
,
иначе начинаем работу сначала, но уже
с
.
Определение:
функция, заданная на некотором множестве
слов алфавита
называется нормально вычислимой, если
существует такое расширение данного
алфавита
и такой нормальный алгоритм Маркова,
работающий над словами алфавита
,
который каждое слово
из области определения функции
преобразует слово в
,
такое, что
.
Принципы нормализации алгоритма Маркова:
Для нахождения значений функции в некотором алфавите тогда и только тогда существует алгоритм, когда функция нормально вычислима.
Теорема: следующие классы функций (заданы на расширенном натуральном ряде и принимают значения с расширенного натурального ряда) совпадают:
-
Класс функций, вычислимых по Тьюрингу
-
Класс частично рекурсивных функций
-
Класс нормально вычислимых функций
Неразрешимые алгоритмические проблемы:
-
Проблема распознавания выводимости в математической логике: для любых двух формул
и
в логическом исчислении узнать, существует ли дедуктивная цепочка, ведущая от формулы
к формуле
Теорема Чёрча: проблема распознавания выводимости алгоритмически не разрешима.
-
Проблема распознавания самоприменимости.
– код символа.
- код команды. Тогда наша программа – совокупность команд
На вход машины Тьюринга Т отправляем
1) если машина Тьюринга применима к своему коду – самопримаенимая 2) если начиная работу над своим кодом машина Тьюринга циклит – несамоприменимая Таким образом все машины Тьюринга, работающие в алфавите
делятся на 2 класса: самоприменимые и несамоприменимые. Проблема самоприменимости состоит в следующем: построить такой алгоритм, который по коду машины Тьюринга Т давал бы однозначный ответ самоприменима машина Т или нет (без запуска). Для решения проблемы необходимо построить машину
в алфавите
, которая, работая над кодом машины Тьюринга Т, останавливалась и выдавала 1, самоприменима, или 0. Теорема: проблема самоприменимости алгоритмически не разрешена. Доказательство: предположим противное: пусть существует машина
, решающая проблему самоприменимости. Опираясь на неё, построим машину Тьюринга
, которая: 1) применима к кодам несамоприменимых машин Тьюринга, 2) не применима к кодам самоприменимых машин Тьюринга. Для этого: 1) все команды машины
объявляем командами машины
; 2) заключительное состояние
машины
объявляем не заключительным для машины
; 3) добавляем заключительное состояние
для
и команды:
Машина
работает над кодами всех машин, в том числе и на своим. Пусть 1) машина Тьюринга
самоприменима, то есть применима к своему коду, но она не применима к кодам самоприменимых машин, значит является несамоприменимой. Получено противоречие. 2) машина Тьюринга
несамоприменима, но она применима к кодам несамоприменимых машин, значит самоприменима. Получено противоречие.
-
Проблема применимости. Машина Тьюринга работает в алфавите
,
- слово. Требуется по коду машины Тьюринга Т и слову
определить, применима ли машина Тьюринга к слову
или нет. В разработке такого алгоритма и заключается проблема применимости: построить машину Тьюринга
, на вход которой поступает
. В результате 1, если машина применима, иначе 0. Теорема: проблема применимости алгоритмически неразрешима. Доказательство: предположим противное: пусть машину Тьюринга
можно построить, тогда наш код - это машина
. Подадим слово
, тогда машина
решала бы проблему самоприменимости, а она алгоритмически неразрешима.
-
Проблема определения общей рекурсивности алгоримов, т.е. проблема определения того, ко всяким ли допустимым в начале данным применим данный алгоритм.
алгоритм. Нужно построить
, на вход которой бы поступал номер алгоритма
. В результате: 1 – алгоритм всюду определён, 0 – алгоритм
не является общим. Лемма: для любого перечисления любого множества
общерекурсивных функций существует функция, не входящая в это перечисление. Доказательство: рассмотрим все общерекурсивные функции
и функцию
𝐹
общерекурсивная. Будем предполагать, что
, тогда
в нашем перечислении имеет номер
, тогда
совпадает с
, но
. Получено противоречие. Теорема: проблема определения общерекурсивных функций алгоритмически неразрешима. Доказательство: предположим противное: пусть алгоритм
, решающий проблему, существует, тогда он определяет общерекурсивную функцию
. На основании
построим общерекурсивную функцию следующего вида:
Построенная функция
перечисляет все общерекурсивные функции, а так как множество общерекурсивных функций не является счётным, то получили противоречие.
Теория графов.
Основные понятия и определения.
Графом
называется пара
,
,
где
- это множество вершин (в начальном
варианте считается конечным и непустым),
- бинарное отношение, заданное на
,
- множество дуг. Элементы множества
- упорядоченные пары – дуги, где
- начало,
- конец.
Вершины, соединённые дугой, называют инцидентными дуге. Между собой – смежными (соединенными одной дугой).
Дуги, имеющие общую вершину, - смежные.
Граф
называется ориентированным (орграфом),
если
Если
в этом случае граф называют неориентированным
(неоргаф).
- ребро, без
направления.
Если необходимо представить объекты, связанные несколькими связями, используют мультиграф.
Граф, не содержащий кратных дуг и петель называется простым графом.
Если дугам или вершинам необходимо приписать числа, то речь идёт о взвешенном графе.
Для
взвешенного графа
:
- функция распределения меток вершин,
- множество значений;
- функция распределения меток дуг,
- множество значений.
Простой граф, в котором каждая пара вершин является смежной, называется полным графом.
Пусть
,
если
,
то тогда это множество подмножеств
называется покрытием
.
Граф называется двудольным, если существует такое разбиение множества вершин на два подмножества (доли), что концы каждого ребра принадлежат разным подмножествам (долям), если при этом любые две вершины, входящие в разные дуги, являются смежными, то граф называется полным двудольным графом.
Полный двудольный граф, содержащий в одной доле один элемент – звезда.
Рассмотрим
графы
,
.
Графы
называются гомоморфными, если существует
отображение
(гомоморфизмом) со свойством:
Если
,
то
- изоморфизм, а графы
и
изоморфные.
Способы задания графов.
-
Графически
-
Матрица смежности.
,
; матрицей смежности
называется матрица
, в которой элемент
Для мультиграфов:
,
- число дуг, связывающих
и
Для взвешенных графов
Рангом графа называется ранг его матрицы смежности. Собственным значением графа называется собственное значение матрицы смежности. Спектром графа называется спектр его матрицы смежности.
-
Матрица инцидентности
Строим матрицу инцидентности
-
Структура смежности Для дуги
:
– предшественник (предок),
– последователь (потомок). Выписываем вершины и их прямых последователей.
Подграфы. Операции над графами.
Определение:
граф
называется подграфом графа
,
если
Операции над графами:
-
Добавление вершины
-
Добавление дуги
-
Удаление дуги
-
Удаление вершины
-
Отождествление вершин
Если
и
были связаны дугой, то операция отождествления называется операцией стягивания вершины.
-
Объединение графов
и
-
Пересечение графов
и
-
Кольцевая сумма графов
и
Маршруты. Цепи. Циклы.
Последовательность
вершин
и соединяющих их дуг
называется маршрутом из
в
.
Число
дуг
называется длиной маршрута.
Пусть
неориентированный граф (без петель).
Маршрут
называется цепью, если все его ребра
различны.
Простой цепью, если при этом все его вершины (кроме, возможно, первой и последней) различны.
Маршрут
называется циклическим, если
совпадает с
.
Циклическая цепь называется циклом. Циклическая простая цепь – простым циклом.
Замечание: для ориентированного графа вводится понятие ориентированного маршрута. Аналогом цепи в этом случае служит путь. Аналогом цикла – контур.
Утверждения:
-
При
всякий маршрут, соединяющий эти вершины, содержит простую цепь, соединяющую эти вершины.
-
Всякий цикл содержит простой цикл
-
Объединение двух несовпадающих простых цепей, соединяющих
и
, содержит простой цикл.
-
Пусть
и
два несовпадающих простых цикла, имеющих общее ребро
, тогда граф , получаемый путем объединения
и
и удаления дуги
, содержит так же простой цикл.
и
- подцепи,
- цепь, по предыдущему утверждению.
-
Две вершины
и
неориентированного графа
называются связными, если существует маршрут (
цепь) из ребер графа, в котором одна из этих вершин является началом, вторая – концом. Таким образом на множестве вершин графа
можно ввести бинарное отношение
, такое, что пара вершин
и
связны. Данное отношение
является отношением эквивалентности. И позволяет разбить множество
на непересекающиеся классы эквивалентности
,каждый из которых называется множеством связности. В этом случае подграф
, где
- все дуги исходного графа, связывающие вершины
, называется компонентой связного графа.
Граф называется связным, если он содержит ровно одну компоненту связности.