Главная страница  Алгоритмы 

[ 0 ] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57]

Алгоритмы

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

1. По мере воерастания таких библиотек растет их привязанность к кодам (системам команд) .конюретных машин, все более трудоемким становится любой перевод библиотек на язык (код) других машин; это, ib свою очередь, триводит к возрастанию консервативности систем команд и самих машин, препятствует их -совершенствованию.

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

Использование универсальных алгоритмических языков, получивших в настоящее время широкое распространение, таких как АЛГОЛ-60 [7, 8, 14, 19, 20, 21, 22] и ФОРТРАН [65, 66, 67], для описания алгоритмов открыло возможность устранения вышеуказанных затруднений. Удобным Органом международного обсуждения и совершенствования алгоритмов становится в настоящее время журнал «Communications of the АСМ» [1], регулярно публикующий (начиная с 1960 г.) разнообразные алгоритмы на алгоритмических языках, а также лодтвержде-



«ия и замечания к ним с указанием обнаруженных ошибок и с. предложениями по усовершенствованию.

Однако широкое использование в Советском Союзе алгоритмов непосредственно из журнала «Communicati-ons of -the АСМ» затруднено по следующим причинам.

1. Лишь очень «емйогие организации в СССР вы-пи-сывали В 60-х годах этот журиал, еще .меньше число организаций, имеющих полный комплект алгоритмов.

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

3. Многие из опубликованных алгоритмов содержат ошибки. Исправления ошибок даются в замечаниях и подтверждениях, публикуемых в более поздних номерах журнала. Не говоря уже о неудобствах, возникающих из-за разбросанности этих материалов, нередко в алгоритмах остаются невыявленные ошибки.

4. Многие алгоритмы составлены далеко не лучшим образом. Они допускают более или менее значительное сокращение и оптимизацию.

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

Начиная с 1964 г. авторами данного вьшуска велась работа по обору и переработке алгоритмов, имеющая целью сделать их удобными для практического применения в .первую очередь в пределах Советского Союза. Результаты этой работы были опубликованы отдельными выпусками С24, 25, 26, 27, 28]. Однако со дня издания вьшуска «Алгоритмы (1-50)» [24] прошло уже семь лет. За эти годы количество АЛГОЛ-программистов возросло во много раз, и выпуски превратились в остродифи-цитные настольные книги (см. отзывы читателей в приложении 1). Уже и этого было бы достаточно для их переиздания. Но, кроме того, за истекшие годы накопилось много замечаний и подтверждений, содержащих поправки и улучшения, которые ради удобства пользования необходимо внести в ранее опубликованные алгоритмы, вновь проверить их на машинах и дать к ним новые свидетельства. Повысились также и требования к качеству и надежности алгоритмов; это в ряде случаев приводит к необходимости их пересмотра и доотладки. Такая работа и была проведена при подготовке к изданию данного выпуска.



Следует заметить, что, кромевыпусков алгоритмов предыдущей серии [24--28], алгоритмы иа языке АЛГОЛ-60 [7] публиковались за последние годы и в других русских изданиях. Авторам известны, в частности, издания [43, 44, 51-54, 6)1]. Но библиотека алгоритмов журнала «comniunications of the АСМ» [1], служившего первоисточником для компоновки данного выпуска, существенно отличается от всех других издапий алгоритмов (и не только на русском языке) своей значительно большей полнотой (на сегодня Опубликовано свыше 400 алгоритмов) и разнообразием тематики, а также богатством накопленного в ,ней критического материала, иаиболее полно и объективно раскрывающего сравнительные характеристики и качества публикуемых алгоритмов. В этих отношениях вышеуказанная библиотека стоит вне конкуренции, и регулярная публикация ее алгоритмов в удобном для широкого круга советских читателей и пользователей виде представляется совершенно необходимой.

Поэтому издание «Библиотеки алгорит.мов» предполагается продолжить. Некоторые выпуски будут сопровождаться тематическим указателем алгоритмов, появившихся в советской и зарубежной печати к моменту составления выпуска. Алгоритмы в таких тематических указателях группируются в соответствии с классификацией, принятой в журналах «Communications of the АСМ». Названия алгоритмов в выпусках сопровождаются индексами, соответствующими этой классификации. Например, в заголовке «Алгоритм 276. Распределение Н]» индекс [Н] указывает, что алгоритм 276 относится к классу Н («Исследование операций. Структуры графов»). Расшифровка индексов дается в приложении 2.

В выпусках серии «Библиотека алгоритмов» номера алгоритмов будут снабжаться буквой «б» (например, «Алгоритм 16») для отличия их как от исходных, так и от алгоритмов, издававшихся в выпусках предыдущей серии [24-28] и снабжавшихся буквой «а». К каждому алгоритму будут прилагаться переводы соответствующих подтверждений и замечаний, а также свидетельства, составленные авторами выпусков..

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




[ 0 ] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57]

0.0155