- •Математическая логика
- •Парадигмы формальной логики.
- •Предмет, цель, задачи и содержание читаемого курса лекций.
- •Место читаемого курса о законах и формах правильного мышления.
- •Концептуальный базис математической логики.
- •Построение математической логики.
- •Классическая логика высказываний.
- •Язык классической логики предикатов (я.Л.П.).
- •Примеры:
- •Алгебра логики предикатов.
- •Пояснения:
- •Квантификация предикатов.
- •Эквивалентные преобразования кванторных формул.
- •Классические логические исчисления.
- •Цель классических и.В. И и.П.
- •Метасимволика и.В. И и.П.
- •Построение логических исчислений.
- •Интуитивное (наивное) понятие алгоритма как основное первичное понятие математики.
- •Основные требования к алгоритмам.
- •Основная терминология теории алгоритмов.
- •Основные теоремы теории алгоритмов.
- •Параметры алгоритма.
- •Основная гипотеза теории алгоритмов.
- •Алгоритмические (формальные математические) модели.
- •Блок-схемы алгоритмов.
- •Машина Тьюринга. Машина Тьюринга т – название, закрепившееся за вычислительными абстрактными машинами некоторого точно охарактеризованного типа.
- •1) Пусть последовательность k0k2kzимеет видq0a2a1a4q1a1qza4a2(очевидно, что последовательность команд следующая:q0a2q1a4 dп,q1a1qza2dЛ).
- •Формальное определение машины Тьюринга.
- •Основной тезис Тьюринга.
- •Нормальные алгорифмы (алгоритмы).
- •Рекурсивные функции.
- •Примитивно-рекурсивные функции.
- •Оператор минимизации (- орератор).
- •Основной тезис Черча.
- •Алгоритмически неразрешимые проблемы.
Блок-схемы алгоритмов.
Связи между шагами алгоритма можно изобразить в виде графа (блок-схемы) такого, как, например, следующий:
где вершинам соответствуют шаги (блоки), а дугам – переходы между шагами. Его вершины могут быть двух видов – операторы(из этих вершин выходит одно ребро) ипредикаты(или логические условия; из этих вершин выходят два ребра). Кроме того, выделяют операторы начала и конца алгоритма.
В подобных схемах шаги могут быть элементарными или могут представлять собой самостоятельные алгоритмы (блоки).
На блок-схеме хорошо видна разница между описанием алгоритма и процессом его реализации.
Описание – это граф; процесс реализации – это путь в графе. Различные пути в одном и том же графе возникают при различных данных, которые создают разные логические условия в точках разветвления.
Отсутствие сходимости алгоритма означает, что в процессе вычисления не появляются условий, ведущих к концу, и процесс идет по бесконечному пути (зацикливается).
Отметим, что блок-схема отражает связи по управлению (что делать в следующий момент, то есть какому блоку передать управление), а не по информации (где этому блоку брать исходные данные).
Очевидно, что блок-схемы являются средством описания детерминизма алгоритма.
Замечания:
На практике блок-схемы часть имеют предикаты (точки разветвления) не только двоичные, но и многозначные, важно лишь, чтобы верным был ровно один из возможных ответов.
Блок схема вида:
где блок А1 вычисляют функцию f1(x), а исходными данными для А2 являются результаты А1, называется композицией алгоритмов А1 и А2 (то есть эта блок-схема задает алгоритм, вычисляющий f2(f1(x)), то есть композицию f1 и f2)
Машина Тьюринга. Машина Тьюринга т – название, закрепившееся за вычислительными абстрактными машинами некоторого точно охарактеризованного типа.
Содержательное понятие машины.
Машину Тьюринга Т=<A, Q, q0, qz, > удобно представлять в виде автоматически функционирующего устройства, способного находиться в конечном числе внутренних состояний Q=q1…qn-2, qz и снабженного бесконечной внешней памятью – лентой. Среди состояний Q имеются два выделенных – начальное q1 и заключительное qz. Лента разделена на ячейки и потенциально бесконечна в обе стороны. В каждой ячейке ленты может быть записана любая из букв внешнего алфавита А=a0, a1…am (a0 – пустая буква, то есть считается, что в пустой ячейке записана a0). Функционирование машины обуславливает программа =qj ai qk aL dt.
Схема такого устройства как совокупность стуктурно-связанных внутренней и внешней памяти, блока управления и управляемой головки
a0 |
a2 |
a5 |
ai |
a9 |
a3 |
a5 |
a0 |
дает возможность имитировать алгоритмические процессы распознавания и порождения цепочек языка произвольного типа (по Хомскому).
На схеме:
а) Блок управления производит преобразование пары (цепочки из двух символов) qj aiQ*A в тройку qk aL dt Q*A*D. Это означает, что если машина находится в состоянии qj (то есть вычисляет инструкцию qj), а управляемая головка считывает символ ai из обозреваемой ячейки внешней памяти, то блок управления вырабатывает команду qk aL dt, согласно которой:
машина переходит в состояние qk (допускается k=j);
в обозреваемую ячейку ленты вместо символа ai записывается символ aL (допускается i =L);
управляющая головка (лента) перемещается на один шаг или остается на прежнем месте (dЛ – перемещение на один шаг влево, dп – перемещение на один шаг вправо, dн – оставаться на месте; dЛ, dп, dнD).
Итак, если блок управления осуществляет функциональное отображение:
Гf: Q*A Q*A*D,
где qj aiQ*A, qk aL dt Q*A*D, ai, aLА, qj, qkQ, dt D= dЛ, dп, dн, то машину Тьюринга будем называть детерминированной и всюду определенной.
б) Данные (исходные, промежуточные и окончательные) машины есть цепочки символов (слова) в алфавите А, которые записываются на бесконечной ленте внешней памяти (каждый символ слова в отдельной ячейке) (А=Аисх АпромАрез, а0Аисх, а0Арез).
в) Элементарные шаги в рассматриваемой машине следующие:
изменение состояния машины и содержимого ячейки, обозреваемой управляемой головкой;
перемещение управляемой головки на один шаг влево ( вправо);
г)Детерминированность работы машины обуславливается программой ее работы , то есть совокупностью выражений (j, i) (j=0,n; i= 0,n), каждое из которых имеет один из следующих видов:
qj ai qk aL dн
qj ai qk aL dЛ
qj ai qk aL dп,
где 0 k n, 0 L m.
В дальнейшем программу будем записывать в табличном виде:
A \ Q |
q0 |
q1 |
… |
qj |
… |
qz |
a0 |
|
|
|
|
|
|
a1 |
|
|
|
|
|
|
… |
|
|
|
|
|
|
ai |
|
|
|
qk aL dt |
|
|
… |
|
|
|
|
|
|
am |
|
|
|
|
|
|
или диаграммой переходов вида:
д) Начальная атрибуция (конфигурация машины) характеризуется следующим образом:
на ленте записано слово А*;
управляемая головка указывает на ячейку ленты, в которой записан самый левый символ цепочки (слова),
машина находится в начальном состоянии q0 Q;
Пример начальной конфигурации машины:
a0 |
a0 |
a2 |
a4 |
a7 |
a3 |
a9 |
a0 |
a0 |
a0 |
Символически эта конфигурация записывается как машинное слово q0= q0 a2 a4 a7 a3 a9= k0.
e) Текущая (промежуточная) ситуация (конфигурация) kp есть машинное слова вида 1 qj ai 2, где 1 и 2 – цепочки символов алфавита А.
ж) Заключительная ситуация (конфигурация) kz имеет вид qz, где qz – заключительное состояние машины, qzQ, - результат работы машины из исходной ситуации по заданной программе, А*.
Очевидно, что последовательность конфигураций k0 k1 k2… однозначно определяется исходной конфигурацией k0 и полностью описывает работу машины Тьюринга Т= =<A, Q, q0, qz, >, начиная с k0= q0 (А*исх, АисхА). Эта последовательность конечна, если в ней встретится заключительная конфигурация kz= qz, и бесконечна в противном случае.
Пример: