- •Теория алгоритмов
- •Содержание
- •Приложение…………………………………..……………………………..…107 Предисловие
- •§1. Понятие алгоритма. Примеры. Способы задания. Общие свойства. Необходимость математического уточнения понятия алгоритма
- •1.1.Понятие алгоритма
- •Примеры нечисловых алгоритмов
- •1.2. Общие свойства алгоритмов
- •1.3. Способы задания алгоритмов
- •1.4. Необходимость уточнения понятия «алгоритм»
- •Графическое представление алгоритмов
- •Образец решения задачи.
- •Контрольная работа №1
- •§2 Нормальный алгоритм Маркова
- •2.1.Понятие ассоциативного исчисления
- •Нетрудно понять, что
- •2.2. Нормальные алгоритмы Маркова
- •2.3. Вычисление арифметических функций с помощью нормальных алгоритмов
- •Образец решения задачи.
- •Контрольная работа №2
- •13. Задайте нормальный алгоритм Маркова для вычисления функции
- •§3. Машины Тьюринга
- •3.1. Описание машины Тьюринга
- •3.2. Вычисление числовых функций на машинах Тьюринга
- •3.3. Композиция машин Тьюринга
- •Вопросы для самоконтроля.
- •§4. Сведение любого алгоритма к вычислению числовой функции. Геделевская нумерация объектов
- •4.1. Перевод из одного алфавита в другой (кодирование)
- •Отделяя разные буквы пустым сигналом (т. Е. Пустым промежутком), получаем возможность перевода слов с русского алфавита на язык радиосигналов.
- •Возможны и переводы слов вначале на язык цифр, а далее - цифры на язык радиосигналов.
- •4.2. Нумерация пар и n-ок натуральных чисел
- •4.3. Сведение любого алгоритма к числовой функции. Метод Гёделя
- •Вопросы для самоконтроля
- •§5. Примитивно рекурсивные функции
- •Вопросы для самоконтроля
- •§6. Универсальная функция для . Существование вычислимых, но не примитивно рекурсивных функций
- •Вопросы для самоконтроля
- •§7. Частично рекурсивные функции. Тезис Чёрча
- •Вопросы для самоконтроля
- •Образцы решения задач.
- •Контрольная работа №3
- •§8 Рекурсивные и рекурсивно перечислимые множества
- •8.1. Рекурсивные множества
- •8.2. Рекурсивно перечислимые множества
- •§9. Примеры неразрешимых и нерешенных проблем
- •9.1. Неразрешимые проблемы
- •9.2. Нерешенные проблемы
- •Литература.
- •Приложение Формирование понятия «обратная функция» у студентов
- •Литература
1.2. Общие свойства алгоритмов
Для любого алгоритма характерны следующие свойства:
1) Детерминированность1) алгоритма. Описываемый метод должен быть общедоступен и настолько точно описан, что не остается место произволу. Его можно сообщить другому лицу в виде конечного списка указаний о том, как надлежит поступить в любой возникшей ситуации. При этом система величин, получаемых в данный момент времени, однозначно определяется величинами, полученными в предшествующие моменты, и эта однозначность не зависит от произвола действующего лица, а также от того, кто его выполняет.
2) Массовость алгоритма. Алгоритм служит для решения целой серии
(в принципе бесконечной) однотипных задач.
3) Дискретность алгоритма. Алгоритмический процесс происходит дискретно во времени, начало которого задается конечной системой величин, полученных в предыдущих шагах.
4) Направленность (результативность) алгоритма. Алгоритмический процесс, будучи применен к любой задаче заданного типа, должен завершиться через конечное число шагов и выдать результат.
5) Элементарность шагов (доступность) алгоритма. Система указаний должна состоять из команд настолько простых и элементарных, что процесс вычислений можно было бы поручить и машине.
Уровень «простоты» указаний естественно зависит от «интеллекта» исполнителя. В этом легко убедится, сравнив команды в программах, предназначенных для ЭВМ первого и пятого поколений.
1.3. Способы задания алгоритмов
Наиболее распространенный способ задания алгоритма в математике (и не только) – это словесный. Алгоритм задается в виде конечного перечня простейших указаний, не оставляющих возможности произвола исполнителя. Именно так описаны алгоритмы в примерах 1, 2, 7, 9, 10. Рассмотрим ещё один школьный пример – правило умножения обыкновенных дробей: «чтобы умножить дробь на дробь, умножают числитель на числитель и знаменатель на знаменатель. Первый результат есть числитель произведения, второй – его знаменатель. Если среди сомножителей имеются смешанные числа, то их предварительно обращают в неправильную дробь. Ещё до перемножения можно сокращать любой множитель числителя с любым множителем знаменателя».
Зададим это правило в виде последовательности простейших указаний:
а) Рассмотрим две дроби p 0 и q 0;
б) Если p или q
– смешанные числа, то запишем их в виде
неправильной дроби p
=
, q =
,
(a, b, c, d N).
Причем
HOD (a, b) = 1 и HOD (c, d) = 1;
в) Найдем HOД (a, d) = k и HOД (b, c) = r;
г) Сократим a и d на общий множитель k и получим соответственно числа a1 и d1;
d) Сократив b и с на общий множитель r и получим соответственно числа b1 и c1;
e) Умножим а1 и c1 и получим числитель произведения s=a1c1;
ж) Умножим b1 и d1 и получим знаменатель произведения t=b1d1;
з) Число
искомое;
и) Если дробь неправильная (т.е. s > t), то превратим его в смешанную дробь;
k) Конец
Задание алгоритма в виде конкретной программы для ЭВМ – так же является описательной формой, но только на искусственном языке (Бейсик, Фортран, Паскаль, Пролог…). Очень часто такому заданию предшествует графическая форма задания алгоритма (в виде блок схемы). Это форма имеет ряд преимуществ благодаря наглядности, обеспечивающая в частности, высокую «читаемость » алгоритма и явное отображение управления в нём.
