Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
все.rtf
Скачиваний:
14
Добавлен:
17.09.2019
Размер:
76.51 Mб
Скачать

Глава II. История развития теории алгоритмов Введение

Напомним, что появление алгоритмов восходит к глубокой древности: более 4000 лет тому назад в Египте в период Древнего царства (т.е. 3 тысячелетие до н.э.) из папируса Ахмеса (– 1575 г.) (см. [3, с. 17–19]) следует, что у египтян существовал алгоритм представления любой положительной рациональной дроби в виде суммы простых дробей, т.е. дробей вида 1/n, где n – натуральное число. Найденные археологами глиняные таблички времён Хам-мурапи (XVIII в. до н.э.) с теоремой Пифагора и её применения­ми, а также ещё более древние таблички с вычислением обратных чисел ясно свидетельствуют о реальном появлении алгоритмов у древних шумеров.

В Древнем Китае до (– 213 г.) трактат «Математика в девяти книгах» содержал уже много различных алгоритмов.

В индийских «Ведах», написанных на санскрите до VI в. до н.э., уже есть алгоритмы нахождения арифметических и геомет­рических прогрессий.

Уже в IV в. до н.э. Теэтет из Афин (– 410; – 368) вводит ал­горитм, названный позже алгоритмом Евклида.

Наконец, в IX в. н. э. математик Ал-Хорезми (787–850) пи­шет два трактата, один из которых при переводе на латынь в XII в. и дал название алгоритм (искажение фамилии Ал-Хорезми) (см. [3]).

68

Становление во второй половине XIX в. теории множеств и возникшие в этой связи парадоксы остро поставили вопрос об ал­горитмической разрешимости или неразрешимости многих мате­матических задач.

К 20-м гг. XX в. стало очевидно, что это невозможно сде­лать без точного определения понятия алгоритм.

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

Прежде чем давать точное определение алгоритма, выделим пять свойств алгоритмов, как говорят «в интуитивном смысле», важных в дальнейшем.

  1. Дискретность предписаний, что означает, что каждый алгоритм должен содержать конечное число последовательно выполняемых указаний, выбранных к тому же из конечного (об­щего для всех алгоритмов в интуитивном смысле) набора типов предписаний.

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

  3. Детерминированность алгоритма позволяет говорить об однозначной определённости результата каждого предписания предыдущим состоянием параметров алгоритма.

  4. Массовость алгоритма означает возможность использо­вания в качестве входных данных широкого набора строк над выбранным алфавитом.

5. Замкнутость алгоритма предполагает, что выполнение вычислений производится в точном соответствии с предписания- 69

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

Заметим, что в теории алгоритмов особую роль играет так называемый тезис формализации: любой алгоритм (в интуитив­ном смысле) может быть смоделирован в рамках данной вычис­лительной модели. Разумеется, это утверждение не является ма-тематическим утверждением .

Отметим, что в 30-40-х гг. было построено несколько вы­числительных моделей:

  • машина Поста;

  • машина Тьюринга;

  • частично-рекурсивные функции (вычислительная модель Клини);

  • нормальные алгоритмы Маркова.

Были ещё и другие вычислительные модели, но мы остано­вимся на этих четырёх.