Вы находитесь на странице: 1из 7

Тема 5.1. Элементы теории алгоритмов.

Алгоритм - это четкая последовательность действий, направленная на достижение


поставленной цели или решения задачи.
В упрощенном понимании «алгоритм» — это то, что можно запрограммировать на ЭВМ.
Термин «алгоритм» обязан своим происхождением великому ученому средневекового
Востока Маххамад ибн Муса ал-Хорезми.
В зависимости от порядка выполнения команд можно выделить три типа алгоритмов:

 линейные алгоритмы;
 алгоритмы с ветвлением;
 алгоритмы с повторением.

Рис.1 Линейный алгоритм


Рис.2 Алгоритм с ветвлением
Рис.3 Алгоритм с повторением

Свойства алгоритма
Дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения
задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое
действие, предусмотренное алгоритмом, исполняется только после того, как закончилось
исполнение предыдущего.

Определенность — каждое правило алгоритма должно быть четким, однозначным. Благодаря


этому свойству выполнение алгоритма носит механический характер и не требует никаких
дополнительных указаний или сведений о решаемой задаче.

Результативность (конечность) — алгоритм должен приводить к решению задачи за конечное


число шагов.

Массовость — алгоритм решения задачи разрабатывается в общем виде, то есть он должен быть
применим для некоторого класса задач, различающихся только исходными данными. При этом
исходные данные могут выбираться из некоторой области, которая называется областью
применимости алгоритма.
Интуитивное понятие алгоритма – одно из основных понятий математики, не допускающее
определения в терминах более простых понятий.

Черты, характерные для интуитивного понятия алгоритма


1. Дискретность. Это свойство заключается в следующем: в начальный момент
задается исходная система величин, а в каждый следующий момент система
величин получается из предыдущей системы величин по определенному закону
(программе).
2. Детерминированность. Система величин, получаемых в любой, отличный от
начального, момент времени, однозначно определяется системой величин в
предшествующие моменты времени.
3. Элементарность шагов. Закон получения последующей системы величин из
предыдущей должен быть простым и локальным.
4. Эффективность (результативность). Каждый шаг работы алгоритма должен
заканчиваться результатом.
5. Массовость алгоритма. Начальная система величин может выбираться из
некоторого бесконечного счетного множества Х.
6. Конструктивность. Объекты из Х, над которым работает алгоритм, должны
быть конструктивными.
Конструктивный объект – тот, который может быть набран весь целиком и представлен
для рассмотрения.
Примерами конструктивных объектов являются булевы функции, формулы алгебры
логики, натуральные и рациональные числа, матрицы с натуральными или
рациональными элементами, многочлены от  неизвестных с рациональными
коэффициентами.
Неконструктивными объектами являются, например, любые действительные числа,
представления которых в десятичной записи a0 a1…an… ни для какого nиз натуральных
чисел не может быть целиком представлено для рассмотрения. Числа  и  не являются
конструктивными объектами.
Математические модели алгоритмов.
Математическая модель — это система математических соотношений: формул, уравнений,
неравенств и т.п., отражающих существенные свойства объекта или явления.
Наиболее эффективно математическую модель можно реализовать на компьютере в виде
алгоритмической модели — так называемого «вычислительного эксперимента».
Математическая модель описывает зависимость между исходными данными и искомыми
величинами.
В настоящее время среди математических моделей алгоритмов описанного типа наиболее
известными являются уточнения, предложенные А.М.Тьюрингом (модель абстрактной
вычислительной машины), А.А.Марковым (нормальные алгоритмы), А.Черчем (вычислительные
функции).

Машины Тьюринга – это строгое математическое построение, математический аппарат,


созданный для решения определённых задач. Это абстрактное устройство было
предложено в качестве математической модели для описания процедур.
Машина Тьюринга состоит из:
 бесконечной ленты, разделенной на ячейки;
 каретки (читающей и записывающей головки);
 программируемого автомата (программа в виде таблицы).
Автомат каждый раз “видит” только одну ячейку. В зависимости от того, какую
букву он видит, а также в зависимости от своего состояния q автомат может
выполнять следующие действия:
 записать новую букву в обозреваемую ячейку;
 выполнить сдвиг по ленте на одну ячейку вправо/влево или остаться
неподвижным;
 перейти в новое состояние.
1) Внешний алфавит
А = {a0, a1, …, an}
Элемент a0 называется пустой символ или пустая буква (признак того, что
ячейка пуста).
2) Внутренний алфавит
Q = {q0, q1, …, qm}, {П, Л, С}
В любой момент времени машина Тьюринга находится в одном из состояний q0, q1,
…, qm
При этом: q1 - начальное состояние (машина начинает работу)
q0 - заключительное состояние
3) Внешняя память (лента)
Машина имеет ленту, разбитую на ячейки, в каждую из которых может быть

записана только одна буква. Пустая клетка содержит a0.

4) Каретка (управляющая головка)


Каретка машины располагается над некоторой ячейкой ленты. В одном такте работы
каретка сдвигается на одну ячейку (вправо, влево) или остается на месте.

5) Функциональная схема (программа)

Программа машины состоит из команд:

Машина Поста - абстрактная вычислительная машина, предложенная Эмилем Леоном


Постом. Машина Поста работает с двоичным алфавитом и несколько проще в своем
«устройстве». Можно сказать, что машина Поста является частным случаем машины
Тьюринга. Машина Поста состоит из каретки (считывающей и записывающей головки) и
ленты, разбитой на ячейки (лента условно бесконечна).
Каретка может передвигаться шагами: один шаг — смещение на одну клетку вправо или
влево. Каретка является еще и процессором машины. С ее помощью машина может:
• распознать, пустая клетка или помеченная знаком;
• стереть знак в текущей клетке;
• записать знак в пустую текущую клетку.

Система команд машины Поста

Вам также может понравиться