Составители:
не имеют четкого определения, и их конкретизация производится
последовательно в дальнейшем (и это — принципиальный момент).
Пример. Рассмотрим задачу об отыскании квадратного корня
из числа a > 0. Можно действовать по правилу
x
n+1
=
1
2
x
n
+
a
x
n
, x
0
> 0,
причем условие остановки итерационного процесса имеет вид
|x
n+1
− x
n
| < ε;
здесь a, x
0
, ε — заданные числа.
Является ли это описание описанием алгоритма? На первый
взгляд — да. Его можно реализовать в виде программы вычислений
на компьютере.
Однако, не трудно видеть, что x
0
произвольным положитель-
ным числом выбирать нельзя (например, нельзя брать иррацио-
нальные числа, ибо нет возможности вести вычисления с бесконеч-
ным количеством знаков); при реальных вычислениях фактиче ски
x
0
окажется числом из множества чисел, представимых с помощью
разрядной сетки данной ВС. Далее, как известно, арифметические
действия в системе с плавающей точкой точно реализовать нель-
зя: они реализуются с ошибками округления “машинной арифмети-
кой”. Эти и другие факторы определяются характеристиками ВС,
которые в исходном правиле вычислений не описаны. Для одно-
значности получаемых результатов следует уточнить разрядность
ВС, правила арифметических действий (т.е. правила округления),
правило выбора числа a (оно не должно быть слишком близким
к нулю, ибо в некоторых ситуациях оно может восприняться как
отрицательное), правило выбора начального приближения x
0
(ибо
при практических вычислениях сходимость может оказаться слиш-
ком медле нн ая, и процесс на данной ВС не сможет завершиться за
отведенное время).
Итак, в данном случае указанные действия не имеют четкого
конструктивного опред еле ния и, значит, мы имеем здесь пример
псевдоалгоритма. В случае изучения вопросов распараллеливания
подобная неопределенность значительно возрастает. С этим прихо-
дится мириться, но при гигантской сложности современных задач
9
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »