- •Теория алгоритмов. Общие положения.
- •Исходные понятия теории алгоритмов.
- •Свойства и параметры алгоритма:
- •Основная гипотеза теории алгоритмов.
- •Формальные модели, уточнение понятия алгоритм.
- •Блок-схемы детерминированных алгоритмов.
- •Алгоритмический язык
- •Алгоритмическая система а.Тьюринга.
- •Разрешимость и неразрешимость языков машиной Тьюринга
- •Проблема остановки машины Тьюринга
- •Алгоритмическая система а.Чёрча
- •Базисные функции
- •Операторы построения производных рекурсивных функций
- •Примитивно-рекурсивные функции.
- •Алгоритмическая система а.А.Маркова.
- •Ассоциативное исчисление
- •Алгоритмически неразрешимые проблемы.
- •Теоремы алгоритмически разрешимых и неразрешимых проблем. Теоремы Геделя.
- •Теорема о неполноте
- •Теорема о полноте
- •Словарь основных терминов.
- •Теорема о неполноте:
- •Теорема о полноте
Блок-схемы детерминированных алгоритмов.
Связи между шагами конструктивного процесса можно задать вершинно-взвешенным орграфом (блок-схемы), вида:
где вершинам соответствуют шаги (блоки), а дугам – переходы между шагами. Его вершины могут быть двух видов – операторы (из этих вершин выходит одно ребро) и предикаты (или логические условия; из этих вершин выходят два ребра). Кроме того, выделяют операторы начала и конца алгоритма.
В подобных схемах шаги могут быть элементарными или могут представлять собой самостоятельные алгоритмы (блоки).
На блок-схеме хорошо видна разница между описанием алгоритма и процессом его реализации.
Описание – это граф; процесс реализации – это путь в графе. Различные пути в одном и том же графе возникают при различных данных, которые создают разные логические условия в точках разветвления.
Отсутствие сходимости алгоритма означает, что в процессе вычисления не появляются условий, ведущих к концу, и процесс идет по бесконечному пути (зацикливается).
Отметим, что блок-схема отражает связи по управлению (что делать в следующий момент, то есть какому блоку передать управление), а не по информации (где этому блоку брать исходные данные).
Очевидно, что блок-схемы являются средством описания детерминизма алгоритма.
Замечания:
На практике блок-схемы часть имеют предикаты (точки разветвления) не только двоичные, но и многозначные, важно лишь, чтобы верным был, ровно один из возможных ответов.
Примечание:
Блок схема вида:
где блок А1 вычисляют функцию f1(x), а исходными данными для А2 являются результаты А1, называется композицией алгоритмов А1 и А2 (то есть эта блок-схема задает алгоритм, вычисляющий f2(f1(x)), то есть композицию f1 и f2)
Алгоритмический язык
Алгоритмический
язык L
= <A,
S1,
S2>
предназначен для записи алгоритмов и
при этом ![]()
Некоторый подалфавит В алфавита А используется для кодирования исходной информации.
Алгоритмический язык называется универсальным, если он содержит алгоритмически полный набор предписаний. Задание универсального алгоритмического языка равносильно заданию алгоритмической системы, т.е. общего способа записи алгоритма.
Языки, с помощью которых строятся алгоритмические системы (абстрактные машины, рекурсивные функции, нормальные алгорифмы), являются универсальными и ориентированы на рассмотрение фундаментальных теоретических вопросов теории алгоритмов.
В этом плане алгоритмические языки являются теоретической основой языков программирования.
Алгоритмическая система а.Тьюринга.
Основная идея уточнения понятия «алгоритм» по Тьюрингу заключается в том, что «алгоритмические процессы – процессы, которые могут имитироваться на подходяще построенной абстрактной машине, описываемой в точных математических терминах».
В свете этой идеи программа машины Тьюринга является конструктивным процессом алгоритмической системы, конструктивные объекты которой – слова в заданном алфавите.
Машина
Тьюринга, как бесконечный автомат <A,
Q,
>
(внешний алфавит А=а0,
а1…
аm;
алфавит внутренних состояний Q=q0,
q1…
qn;
п
рограмма
),
есть формальная система F.S=<L,
D>,
порождающая множество L
своих конфигураций (машинных слов) 1
qj
ai
2
(1,
2А*,
1
и 2
могут быть
пустыми).
{qj
aj
ql
ap
dt};
qj,
ql,
q0
A;
,
преобразующая входные слова
в
выходные
,
т.е. f:
,
в том и только том случае, если слово
применимо к алгоритму Sf
(рассматриваемого
как машину Тьюринга с начальной
конфигурацией
и заключительной конфигурацией
;
- соответственно начальное и заключительное
состояние машины;
)
– пошаговые движения головки –
неподвижно, влево, вправо.
Замечание:
-
Детерминированность МТ означает, что в её программе нет двух команд с одинаковыми левыми частями.
-
МТ, как акцептор языков типа 0. Является одним из математических определений алгоритма.
-
Формально поведение МТ описывается в терминах конфигураций (машинных слов), т.е.
В частности, если слово
допустимо, то говорят о выводе слова
:
. -
Частный случай МТ, т.е когда А = {0, 1}, |Q| = 1, называется машиной поста.
Итак, МТ – алгоритмически полная система побуквенной обработки словарной информации. Эта гипотетическая машина является формой существования и записи алгоритма. Решить задачу по Тьюрингу означает построить МТ, руководствуясь идеей задачи.
