- •Часть I
- •Рецензенты:
- •Оглавление
- •Глава I. История вычислительной техники и архитектуры компьютеров
- •§ 1. Доэлектронная эра истории компьютеров (до XVIII в.)
- •§ 2. Доэлектронная эра истории компьютеров (XVIII и XIX вв.)
- •§ 3. Аналоговые компьютеры
- •§4. Почти первое поколение компьютеров
- •§ 5. История создания компьютеров в России (до 1948 г.)
- •§ 6. История создания компьютеров в России (1948–1954 гг.)
- •Глава II. История развития теории алгоритмов Введение
- •§ 7. Вычислительная модель Поста
- •§ 8. Вычислительная модель Тьюринга. Машина фон Неймана
- •§ 9. Вычислительные модели Маркова и Клини
- •§ 10. Проблемы разрешимости и перечислимости
- •§ 12. Элементы теории сложности. Мр-проблема
- •Глава III. История систем искусственного интеллекта
- •§ 13. Представление знаний в интеллектуальных системах
- •§14. Экспертные системы
- •167982. Сыктывкар, ул. Коммунистическая, 25
Глава 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 в. стало очевидно, что это невозможно сделать без точного определения понятия алгоритм.
Сыграл в этом свою роль и прогресс вычислительных устройств, обозначивший проблему определения границ класса задач, которые в будущем могли бы решаться с помощью вычислительной техники.
Прежде чем давать точное определение алгоритма, выделим пять свойств алгоритмов, как говорят «в интуитивном смысле», важных в дальнейшем.
Дискретность предписаний, что означает, что каждый алгоритм должен содержать конечное число последовательно выполняемых указаний, выбранных к тому же из конечного (общего для всех алгоритмов в интуитивном смысле) набора типов предписаний.
Конструктивность данных предполагает, что входные и выходные данные алгоритма представляют собой конечные наборы состояний, взятых из счётного множества состояний.
Детерминированность алгоритма позволяет говорить об однозначной определённости результата каждого предписания предыдущим состоянием параметров алгоритма.
Массовость алгоритма означает возможность использования в качестве входных данных широкого набора строк над выбранным алфавитом.
5. Замкнутость алгоритма предполагает, что выполнение вычислений производится в точном соответствии с предписания- 69
ми и не требует привлечения никаких внешних устройств или дополнительных данных.
Заметим, что в теории алгоритмов особую роль играет так называемый тезис формализации: любой алгоритм (в интуитивном смысле) может быть смоделирован в рамках данной вычислительной модели. Разумеется, это утверждение не является ма-тематическим утверждением .
Отметим, что в 30-40-х гг. было построено несколько вычислительных моделей:
машина Поста;
машина Тьюринга;
частично-рекурсивные функции (вычислительная модель Клини);
нормальные алгоритмы Маркова.
Были ещё и другие вычислительные модели, но мы остановимся на этих четырёх.