Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie-po_matlogike.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
354.3 Кб
Скачать

Глава 3. Формализация понятие алгоритма

1. Историческая справка

Слово алгоритм содержит в своем составе преобразованное географическое название, а именно слово Хорезм. Хорезм - так назывался город, в котором жил великий ученый средневекового Востока. Имя этого ученого – Мухаммед ибн Муса ал-Хорезми (ал-Хорезми обозначает «Хорезмиец) Он жил приблизительно с 783 по 850 гг. Ал-Хорезми – автор основополагающих трактатов по арифметике и алгебре.

Труды ал-Хорезми были переведены с арабского на латинский в 12 веке, в этих трудах содержалась позиционная система счисления и искусство счета в этой системе (например, алгоритмы сложения столбиком).

В латинских названиях трудов ал-Хорезми его имя писалось как algorismi, арифметический трактат начинался словами «Dixit algorismi», т.е. «сказал ал-Хорезми».

Отсюда и пошло слово «алгоритм» - сначала для обозначения десятичной позиционной арифметики и алгоритмов цифровых вычислений, а затем для обозначения произвольных алгоритмов цифровых вычислений, а затемдля обозначения произвольных алгоритмов.

Позднее город Хорезм ста называться – Хива.

с 1920-1923 гг. – столица Хорезмской Народной Советской Республики,

с 1923-1924 гг.– столица Хорезмской Советской Социалистической Республики

с 1924-1990 гг. – районный центр Хорезмской области Узбекской ССР

Город Ургенч является наследницей древнего Хорезма. Этот город считается колыбелью понятия алгоритма.

2. Общее понятие алгоритма

Понятие алгоритма, подобно понятию множества и натурального числа, принадлежит к числу фундаментальных понятий математики. Оно не может быть выражено через другие, а должно рассматриваться как неопределимое.

Существует не определенное понятие «алгоритм», а только его описание, интуитивный смысл.

Почти во всех сферах жизни мы сталкиваетмся с рецептами решения задач, предписаниями, инструкциями, правилами и т.п. Они однозначно определяют порядок выполнения действий для получения, желаемого результата. Предписание, удовлетворяющее некоторым дополнительным требованиям, называется алгоритмом.

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

Под алгоритмом принято понимать конечную последовательность операций, называемых элементарными, исполнение которой приводит к решению любой задачи из заданного множества задач. В это определение входят такие свойства алгоритма, как конечность (конечная длина выполняемых операций), массовость (алгоритм должен быть пригоден для решения всех задач из заданного класса), результативность (в результате получаем решение задачи). Кроме того, должно выполняться ещё одно необходимое свойство алгоритма – детерминизм, которое определяется как однозначное понимание каждой операции, или то же самое, независимость результата выполнения каждой элементарной операции от того, кто её выполняет.

Под это определение подходит широкий круг алгоритмов. Это может быть алгоритм вычисления математической функции, алгоритм технологического процесса, алгоритм проектирования ЭВМ или цеха завода и т.д. Элементарные операции могут быть достаточно сложными: при вычислении функции это может быть, например, нахождение корней уравнения в проектных или технологических алгоритмах – принятие сложных проектных или технологических решений.

Приведенные свойства определяют, конечно, не строгое понятие алгоритма, которое называется интуитивным.

Рассмотренное определение не является формализованным и строгим по двум причинам. Во-первых, в нём не формализовано понятие элементарной операции, и, во-вторых, не формализовано представление последовательности операций. Важность разработки общего для всех алгоритмов формального описания заключается в том, что оно даёт возможность иметь общие инструментарии для сравнения, оценки, преобразования и других действий над алгоритмами.

Формализация операций алгоритмов связано со следующим. Любой алгоритм связан с некоторым объектом действия, и каждый объект представляется в виде описания, причём под описанием понимается не только в виде текстов на языке, но и рисунки, чертежи и т.п. Значит, можно предположить, что объект описан в виде слова в заданном алфавите.

Объект может находиться в различных состояниях, чему соответствуют различные слова. Так, объектом для математических алгоритмов являются математическое описание задачи в форме матриц коэффициентов, графа смежности и т.п.т., для проектных алгоритмов – техническое задание на проектирование или перечень требований и условий к результату.

Операция определяется над описанием объекта и её результатом является новое (изменённое) описание (новое слово). Например, если решается графовая задача, то результатом операции может быть описание графа с промежуточным взвешиванием рёбер и/или вершин. Результатом проектной операции будет более полное, уточнённое описание объекта.

Результатом работы алгоритма в графовой задаче может быть выделенный путь или цепь, частичный подграф или веса вершин или ребер. Результатом работы алгоритма проектирования является описание объекта проектирования, достаточное для его изготовления в заданной технологической базе.

Алгоритмы в интуитивном смысле не являются математическими объектами, к ним не применимы формальные методы исследования и доказательства. Поэтому в XX веке были предприняты усилия в попытке формализовать понятия алгоритм.

Полное описание всякого алгоритма начинается с того, что фиксируются два ансамбля – «ансамбль X-допустимых исходных данных” и «ансамбль Y-допустимых результатов».

X – «ансамбль входов»

Y – «ансамбль выходов»

Произвольный алгоритм называется X-Y алгоритмом. Областью применения, или областью применимости алгоритма, является подмножество ансамбля входов, это подмножество состоит из всех тех входов, для которых алгоритм выдает результат.

Каждый алгоритм задает функцию, определенную на области применимости. Про такую функцию говорят, что она вычисляет рассматриваемый алгоритм. Эквивалентные алгоритмы вычисляют одну и ту же функцию.

Формализация понятия алгоритма необходима по разным причинам. Например. Сравнение двух алгоритмов по эффективности, проверка их эквивалентности, и др. Впервые необходимость формального понятия алгоритма возникла в связи с проблемой алгоритмической неразрешимости некоторых задач.

Задача считается разрешимой, если существует решающий её алгоритм. При отыскании решений некоторых задач долго не удавалось найти соответствующий алгоритм. Примерами таких задач являются следующие:

а) указать способ, согласно которому для любой предикатной формулы за конечное число действий можно выяснить, является ли она тождественно-истинной или нет;

б) разрешимо ли в целых числах любое диофантово уравнение (алгебраическое уравнение с целыми коэффициентами.)

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

В 20-х –30-х годах двадцатого века предпринимались попытки формализовать понятие алгоритма. В результате было предложено несколько моделей формализации понятия алгоритма. Математики С.К. Клини, А.А. Марков, Э. Пост, А. Тьюринг, А. Черч предложили различные математические модели алгоритма.

Курт Гедель определил алгоритм как последовательность правил построения сложных математических функций из более простых, модель рекурсивных функций.

Алонзо Черч использовал -исчисление.

Алан Тьюринг определил алгоритм как программу для вычислительной машины, называемой машиной Тьюринга.

Aндрей Андреевич Марков определил алгоритм как конечный набор правил подстановок цепочек символов.

Удивительным научным фактом является доказательство эквивалентности всех этих формальных определений алгоритма. Эквивалентность двух абстрактных моделей алгоритма состоит в том, что любой класс проблем, которые можно решить с помощью моделей одного типа, можно решить и на моделях другого типа.

Исторически Алонзо Черч первым предложил отождествлять интуитивное понятие алгоритма с одним из эквивалентных между собой точных определений. Алан Тьюринг независимо высказал предположение, что любой алгоритм в интуитивном смысле может быть представлен машиной Тьюринга. Это предположение известно как тезис Черча-Тьюринга.

Тезис Черча. Класс задач, решаемых в любой формальной алгоритмической модели, совпадает с классом задач, которые могут быть решены интуитивно алгоритмическими методами.

Тезис Тьюринга. Любая функция, «вычислимая в естественном» смысле, может быть вычислена универсальной машиной Тьюринга.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]