/
Текст
СЕРИЯ IX-1966
Ф И 3
МАТЕ МАТИ КА
АСТРОНОМИЯ
гпососков
математика
Г. А. ОСОСКОВ,
кандидат физико-математических наук
МАШИННАЯ
МАТЕМАТИКА
(в планировании эксперимента)
Издательство «3 и а н и е»
Москва 1966
Scan: AAW;
DjVu: Dmitry7
6П2.15
075
Содержание
Вычислительные машины в планировании . . 3
Научное планирование 5
Алгоритмы и машины 7
Алгол 14
План должен быть оптимальным 17
Машина — соавтор научных открытий ... 20
Как руководить сооружением экспериментальной
установки ..... 21
Монте-Карло—«бумажный» эксперимент ... 24
Косвенные испытания и метод наименьших
квадратов .......... 28
Диалог с машиной 30
2-2-4
Геннадий Алексеевич Ососков
Редактор И. Б. Файнбойм
Техн. редактор Л. А. Дороднова
Худож. редактор Е. Е. Соколов
Корректор И. И. Поршнева
Обложка Л. П. Ромасенко
Сдано в набор 31/VIII 1966 г.
Подписано к печати 27/IX 1966 г. Изд. № 331«
Формат бум. 60x90l/i6 Бум. л. 1:0. Печ. л. 2:0,
У.-изд. л. 1,85, А17133. Цена 6 коп. Тираж 76.000 экз
Заказ 2723.
Опубликовано тем. план 1966 г. № 205.
Издательство «Знание», Москва, Центр, Новая пл.,
Д. 3/4.
Типография изд-ва «Знание»* Москва, 'Центр,
Новая пл., д. 3/4,
Вычислительные
машины
в планировании
Современная наука неизбежно требует
крупнейших экспериментов. Только они позволяют проверить
верность теоретических предсказаний и дать, в свою очередь,
толчок научной мысли.
Всем известен размах проводимых в нашей стране
космических экспериментов. А проникновение в тайны микромира!
Для изучения вопросов строения вещества создаются
гигантские установки — ускорители заряженных частиц, такие, как
синхрофазотрон Объединенного института ядерных
исследований в городе Дубне или крупнейший в мире протонный
синхротрон, строящийся сейчас в Серпухове. Эти установки
стоят десятки и сотни миллионов рублей.
Каждый научный эксперимент после солидной
теоретической подготовки, когда выясняются его цели, методика и
проводится статистический анализ всех рассматриваемых
параметров, проходит организационно-строительную стадию.
Например, для физика или химика — это время, когда
строится установка для эксперимента, создается аппаратура для
регистрации и обработки его результатов, налаживаются все
агрегаты.
После этой стадии начинается собственно эксперимент —
поиски оптимальных режимов, бессонные ночи у установок,
споры с математиками о том, как лучше обработать данные
опытов, волнение, с которым экспериментатор вглядывается в
колонки цифр, выданных счетной машиной: есть ожидаемый
эффект или нет?
Для экономистов-плановиков, разрабатывающих новые
методы планирования больших разработок, организационная
стадия является основной.
3
В этой брошюре будет рассказано о том, как
используются электронно-вычислительные машины исследователями
на разных стадиях работы, какие проблемы возникают в
вычислительной «машинной математике» при планировании
экспериментов (главным образом физических).
Теоретическая подготовка эксперимента, в основном,
состоит в проведении многочисленных расчетов, касающихся
методики опыта и конструкции опытных установок. Кроме
вычислений, проводимых по известным формулам и методам
применительно к специфике исследования, эти расчеты
должны предвосхитить многие случайности, ожидающие
экспериментаторств. Поэтому большой популярностью пользуется
идея статистического моделирования.
Всем понятны выгоды моделирования вообще. Обдув
модели самолета в аэродинамической трубе (не говоря уже об
опасностях работы летчика-испытателя) экономит многие
миллионы рублей, тонны горючего. Оказывается, можно
делать модели числовые — сначала на листе бумаги с
карандашом в руках, а потом эти модели проходят испытания в
электронно-вычислительной машине.
Числовую модель не подержишь в руках, она имеется
только в памяти машины, но на ней можно так же хорошо
проверять теоретические и интуитивные предположения, как
и в аэродинамической трубе. О том, как проводится такое
числовое моделирование, читатель сможет узнать в разделе о
«бумажном эксперименте».
Трудности обработки поистине безбрежного моря
экспериментальных данных, приносимых многими исследованиями в
самых разных областях науки, и явились, собственно, той
объективной необходимостью, которая привела к появлению
быстродействующих вычислительных машин. В качестве
примера рассмотрим математическую обработку эксперимента
со физике высоких энергий, в частности один из основных
методов, применяемых при обработке данных косвенных
испытаний — метод наименьших квадратов. Этот метод
применялся и до появления вычислительных машин, но тогда из-за
вычислительных трудностей его можно было использовать
далеко не всегда, а только в наиболее простых случаях. Лишь
соединение его с методами приближенных вычислений,
выполняемых на быстродействующих электронных машинах,
сделало его таким удобным для экспериментаторов.
Для того чтобы понять сущность переворота,
произведенного появлением вычислительных машин в методах
вычислений и вообще в математизации научных исследований,
необходимо представлять себе, что такое вычислительные
машины, принципы их работы. Поэтому, естественно, один раздел
брошюры посвящен машинам и машинным языкам, дающим
возможность прибегать к услугам машины каждому ученому.
4
Без использования этой возможности нельзя себе представить
дальнейшее быстрое развитие науки.
Наиболее актуальной сейчас областью применения
вычислительных машин является, пожалуй, область планирования
больших разработок. Организаторам крупного
строительства — будь то большой завод, гидростанция или
научно-исследовательская установка—приходится при отпущенных
строго лимитированных средствах в кратчайшие сроки
добиваться слаженной работы строителей и обеспечивать
строительство материалами и механизмами. Таким образом,
необходимо координировать сам ход строительства и деятельность
внешних предприятий-поставщиков, согласуй сроки
выполнения отдельных этапов строительства и их финансирования.
Если учесть, что большая разработка может быть
рассчитана на длительное время и содержит сотни и тысячи таких
этапов, то становится ясным, что правильное планирование и
управление в таких масштабах невозможно без научной
организации труда и без использования вычислительных машин.
Поэтому в брошюре уделяется особое внимание ос*човным
принципам применения математики и вычислительных машин
в этой области, называемой сетевым планированием.
Таким образом, мы выделяем три основных метода,
применяемых в математическом планировании экспериментов с
использованием счетных машин;
— метод наименьших квадратов;
— метод статистических испытаний;
— метод сетевого планирования и управления.
А теперь перейдем фазу к последней, может быть, самой
интересной теме — к вопросу о научном математическом
планировании.
Научное планирование
В конце пятидесятых годов в иностранных
работах по научной организации труда появились сведения о
методе ПЕРТ (сокращение по первым буквам английских
слов Program Evaluation Research TasK, в переводе —
Работа по исследованию и усовершенствованию программы). Этот
метод, называемый методом сетевого планирования и
управления (СПУ), широко применяется и у нас, Суть его
заключается в формализации записи многочисленных работ и свя*
зей между ними с помощью так называемых сетевых
графиков.
События, заключающиеся в выполнении отдельных
этапов работ, обозначаются кружочками с цифрой — кодом,
обозначением этого события, внутри. От кружочка — предшест-
s
вующей работы—идет стрелка к кружочку — работе,
которая может быть выполнена только после нее. Около каждой
стрелки помещены цифры, указывающие время, необходимое
для выполнения этой работы. Получается пронумерованная
сеть. Такой сетевой график изображен на рис. 1 (смысл его
будет ясен из примера, приведенного ниже).
Казалось бы, что нового может дать иная форма записи
уже известных соотношений? Нет ли тут простора для того,
чтобы половчить? Ведь каждый исполнитель строит сам для
себя сетевой график. Возьмет и проставит себе завышенные
сроки, чтобы не перенапрягаться.
Но метод СПУ не ограничивается написанием графиков
отдельными исполнителями. Эти графики затем «сшиваются»
(в общий сетевой график всей разработки. Прослеживая по
стрелкам от начального этапа до последнего — окончания
строительства, можно выбрать так называемый критический
путь, т. е. самый длинный путь от начала до конца, ту
цепочку событий, которая и определяет все время строительства.
При та-ком «сшивании» неизбежно выясняются такие
ошибки и несогласованности, которые, выявись они поздней,
грозили бы сорвать все сроки работ. Если какой-то
исполнитель в своей части сети чрезмерно затянул сроки исполнения,
этот участок неизбежно оказывается на критическом пути.,
Обнаруживается, что при таких темпах работы в общий срок
не уложиться. Придется этому исполнителю сократить свои
сроки.,
Оказалось, что новая форма записи плана несет с собой
новую эпоху в планировании. В общем сетевом графике могут
быть тысячи отдельных этапов, но, как показала статистика,
график позволяет сосредоточить внимание на 10—20% из них,
лежащих на критическом пути — основном звене, по
которому можно увидеть все, что задерживает стройку.
После составления сетевого графика метод СПУ поможет
оперативно управлять ходом выполнения плана.
Еженедельно получая сведения о завершении этапов работы и ©нося из-
Рис. lt
6
менения в сетевой график, можно добиться непрерывной
оптимизации хода строительства, так как перемещение
критического пути на новые события заставляет заблаговременно
обратить на них внимание и исправить положение.
Применение методов СПУ дает поразительные результаты
экономии. Впервые систему ПЕРТ применили в США при
проектировании и изготовлении системы ракет «Поларис».
Организация ремонта заводов в Луизвилле, проводимая
фирмой «Дюпон» но системе ПЕРТ, позволила сократить срок
ремонта на 37%, а продукцию заводов увеличить более чем
на 1 млн. фунтов *.
Метод СПУ применялся при строительстве цеха для
блюминга «1300» на Челябинском металлургическом заводе и
-позволил провести строительство за 10 месяцев вместо 11/г—
2 лет по существующим нормам.
ТЭЦ в Лисичанске, мост через Днепр для поездов
киевского метро, Бурштынская ГРЭС строились по сетевым
графикам.
Ученые подсчитали, что применение СПУ на строительстве
Красноярской ГЭС могло бы сократить сроки строительства
на 30—40%, а стоимость снизить на 100—150 млн. руб.2
Метод СПУ, естественно, может применяться не только
для организации строительных работ, но и при планировании
и управлении самыми разнообразными исследованиями и
разработками, причем, как показала практика, затраты на
внедрение самого метода СПУ ничтожны по сравнению со
стоимостью всех работ (десятые доли процента).
Еще более трудной может показаться задача поиска
критического пути в системе, где сроки выполнения работ
неизвестны заранее, а являются случайными величинами
(например, зависят от погоды). Для разрешения такой сложной
задачи может быть использована быстродействующая
вычислительная машина.
Алгоритмы
и машины
В основе метода СПУ лежит формализация.,
Она полезна и в том смысле, что позволяет математизировать
процесс выбора критического пути, или, как говорят
математики, выработать алгоритм этого процесса.
Любую математическую задачу можно расчленить на
последовательность элементарных акто в—арифметиче-
1 J. W Р о с о с к. Operations Research. 1962, v. 10, № 6.
2 «Известия», 1963 г., 16 апреля.
7
ских и логических операций. Набор этих элементарных
актов и указание, в какой последовательности их выполнять,
т. е. п р а в и л о и х выбора, и называют
математическим алгоритмом.
Алгоритмы для решения многих практических важных
задач сетевого планирования уже разработаны ]. Но как
машина реализует заданный алгоритм и как, собственно, его
можно задать ей?
Возьмем наиболее простой пример (доступный любому
читателю),— решение квадратного уравнения
ах2+вх+с=0. (1)
Все исходные данные об этом уравнении состоят из трех
чисел а, в и с. Для простоты предположим, что в2>4 ас. В
этом случае для нахождения -корней уравнения мы можем
воспользоваться известной из школы формулой:
—в+ Ye2—4ас <~-в— V в2—4ас
2а 9 2а
Алгоритм вычисления х\ и х2, т. е. порядок действий над
коэффициентами а, в, с, таков:
1. в'в = 2; 7. —в+ У в2 — Аас\
2а'с> 8. —в —Ув2 — Аас\
3*4'ас; 9.2-а;
4. в2 — Аас\ , ,л-х—з
, - 10. -+**-«« шХ1;
5. Ув2 — 4ас; 2а
6. 0—в=— в; п -о- Ув2-4ас _
2а
Теперь мы можем поручить вычислителю, который ничего
не знает про корни уравнения, но знает четыре действия
арифметики и умеет извлекать квадратные корни, вычислить
числа Х\ и Х2. Для этого нужно дать ему программу действий,
т. е. список команд (1) — (11): сначала выполнить (1), потом
(2) и т. д. Этот вычислитель может быть и неодушевленным
автоматом. Для проведения вычислений такой автомат
должен, кроме умения производить арифметические операции,
обязательно -иметь память — устройство, где можно было бы
хранить три коэффициента а, б, с, два числа 2 и 4, данные
промежуточных вычислений и где после окончания мы запом-
1 См. С. И. Зуховицкий, И. А. Радчик. Математические
методы сетевого планирования, М., «Наука», 1965,
8
нили бы результат х\ и х2. Кроме.того, очевидно, надо как-то
сообщить машине значения коэффициентов и получить ог
нее ответ, т. е. потребуются устройства ввода и вывода.
Получается такая функциональная схема:
1
Устройство \
в 6а да 1 т
Арифметическое
устройство (АУ)
i
^
*
1
Л« „ЛТП «.
/
/ и м я ш о
Устройство ]
вывода
Рис. 2at
Для того чтобы такая машина находила именно корни
квадратного уравнения, нужно, чтобы в арифметическом
устройстве (АУ) действия выполнялись -в строгой
последовательности в соответствии с программой (1) — (2). Если уметь
менять программу — порядок выполнения операций, то даже с
таким небольшим набором операций возможности машины
резко расширяются, она становится универсальной, и мы
сможем ей сообщить алгоритмы решений огромного количества
арифметических и алгебраических задач. С точ.ки зрения
схемы машины, это означает, что мы в схему внесли еще один
ящичек — устройство управления (УУ), -которое и будет
сообщать в АУ порядок действий.
Ввод
Ту |
i
\
Память
>i
—ч
г
<
'
АУ
Вывод |
\
Рис. 26,
Интересно, что уже более ста лет назад эти соображения
пришли в голову кембриджскохму математику Чарлзу Бэббид-
жу. Будучи состоятельным человеком, он все свои средства
вложил в создание такой универсальной вычислительной
машины, которую собирался сделать на механической основе
систем зубчатых колес. Из этой затеи ничего не вышло. Бэб-
бидж разорился, хотя он, а затем его сын семьдесят лет
посвятили созданию машины-вычислителя. Только с развитием
электроники автоматические вычислительные машины
получили техническую базу для своей реализации.
Не сразу машины стали работать автоматически. В
первых вычислительных машинах программа расчета набиралась
9
на сиецилъной коммутационной доске и не менялась в ходе
решення задачи. Из-за необходимости постоянного
вмешательства человека, вручную коммутирующего новые
варианты программы, «фактически сводилось на нет быстродействии
машины.
Счастливая мысль — внести программу в память машины
и поручить УУ только извлекать оттуда по очереди команды
и' сообщать их в АУ для исполнения — позволила резко
расширить возможности машины и, самое главное, повысить
скорость вычисления. Современные электронные вычислительные
машины (ЭВМ) с автоматическим программным управлением
делают сотни тысяч операций в секунду, обладают
колоссальной памятью в десятки и даже сотни тысяч машинных слов
и имеют богатые возможности для ввода информации по
многим каналам и вывода на бумажную ленту, перфокарты,
перфоленту, в цифровом и буквенном виде (можно прямо
печатать ответ).
Как можно что-либо сообщать машине, в каком виде она
запомнит числа и тем более команды, на каком языке отдать
ей приказ? Как машина будет доказывать, искать максимум,
проводить логический анализ?
Ответим по порядку на эти вопросы. Язык машины
основан па двоичной системе счисления. Записывая любое число,
например 275, мы, конечно, знаем (хотя обычно не
задумываемся над этим), что цифра на первом месте справа
означает число единиц в нашем числе, на втором месте стоят
десятки, на третьем — сотни и т. д., т. е,
275=2- 102+7-10H5-10°.
Таким образом, место, позиция цифры определяет
степень числа 10, на которую умножается эта цифра. Поэтому
наша система счисления и называется позиционной. В
основу ее положено число 10, т. е. число возможных различных
цифр 0, 1, 2..., 9. В основу системы можно положить -и другие
числа, например 8 или 2.
В двоичной системе счисления будет всего две цифры 0 и
1. Само число 2 будет в этой системе выглядеть как 10, 4 = 22
как 100 и т. д. Наше число 275 в двоичной системе будет
выглядеть очень длинно: 10001011, ибо 275=28+24+21+2б.
Некоторые неудобства, вызванные возрастанием длины
чисел, окупается простотой двоичной арифметики. Вот
таблица сложения:
0+0=0; 1+0=1; 0+1 = 1; 1 + 1 = 10, т. е. мы должны перенес:
ти единицу в следующий разряд.
Вся таблица умножения состоит из четырех произведений;
0X0=0; 1X0=0; 0X1=0; 1X1-1,
10
Простота двоичной записи чисел обусловила выбор
двоичной системы для внутреннего языка машины. В
электронике имеются хорошо разработанные схемы, имеющие два
устойчивых положения, на которых и реализован двоичный
язык К
В двоичном коде можно записать и команды. Операциям,
производимым машиной, присваивают номера. Места в
памяти ЭВМ, где хранятся числа (эти места называются
ячейками), также пронумерованы. В команде должны быть
указаны четыре числа: номер операции, два адреса (т. е. номера
ячеек памяти) чисел, над которыми производится операция,
и третий адрес — куда засылается результат. Логические
операции тоже могут быть выполнены. Машина может,
например, сравнить два числа и, если они совпадут, выполнять
Далее одну программу, а при несовпадении — другую.
Благодаря этому можно ответить еще на один вопрос:
если для расчета требуются миллиарды операций, то какую же
длину должна иметь программа такого расчета и в ка.ком
запоминающем устройстве разместить такую программу?
Отвечая на этот вопрос, заметим, что в основе почти всех
вычислительных процессов лежит метод итераций, т. е.
многократно повторяющихся циклов одинаковых
арифметических действий, проводимых над разными числами. В машину
обычно вводят признак, сигнализирующий о необходимости
прекращения повторений в данном цикле и переходе к новым
числам, которые будут обрабатываться опять в этом цикле.
Проверку выполнения признака на каждом шаге в цикле и
производит машина с помощью упомянутой операции
сравнения.
Вернемся к рассмотренной программе для решения
квадратного уравнения. По команде № 5 машина должна
извлечь корень квадратный из в2 — 4ас. Но дело в том, что во
многих ЭВМ нет операции извлечения корня. Как быть?
Вспомним еще одну школьную формулу—бином Ньютона
п(п+\)
(1+*)л-1+л*+—^—х2+... +x\
1
Оказывается, эта формула действует и при я- *у\«
Правда, в этом случае число членов в сумме справа будет
бесконечно большим, но при 1х|<31 абсолютная величина членов
суммы будет быстро убывать с ростом степени х.
/ Аас
Вынося б2 из-под корня, получим в 1/ 1— —' Если
1 Наличие схем с тремя устойчивыми положениями (—1Д+1)
позволило создать ЭВМ на базе троичной системы счисления. Такая ЭВМ
«Сетунь» разработана в 1957 г. в МГУ. «Сетунь» успешно эксплуатируются во
многих предприятиях»
11
обозначить х=— и вспомнить наше тпебование:в2>4а£,
в2
то можно убедиться, что 1х|<!. Так мы получили
представление V в2—4ас в виде.ряда но степеням х
V в2—4ас=в[\+ ~х+ ~^х2+ -l6 x*...J.
Каждый следующий член этого ряда (пусть его номер к]
получается из предыдущего умножением на (1 - )х.
Важен вопрос о том, когда же прекратить суммирование.
Поскольку члены суммы убывают с ростом к, все время
меняя знак, то, очевидно, суммирование можно прекратить,
когда очередной член ряда станет по абсолютной величине столь
малым, что практически уже не будет влиять на сумму.
Если, например, вам достаточно вычислить квадратный
корень с тремя верными знаками после запятой, то нужно
очередной член ряда, умножив на в, сравнивать с 0,001.
Когда это произведение будет меньше, чем 0,001, вычисление
корня прекращается и мы переходим к команде № 6. Чтобы не
умножать на в всякий раз пер£д сравнением, можно члены
ряда просто сравнивать с величиной 8 = 0,001/е.
Таким образом, мы можем сформулировать алгоритм
вычисления квадратного корня из выражения в2—4ас (в2>4ас):
переменную /с, начав с 1, увеличивать на 1 до тех пор^ пока не
станет меньше 8 другая переменная ut получающаяся
умножением предыдущего значения una х (1 ■ ).
2к
При каждом к вновь полученное значение и прибавлять
к сумме 5 .всех предыдущих значений.
Перед началом вычисления нужно позаботиться, чтобы
самое первое значение и было равно 1 и была пуста ячейка
памяти, где будет накапливаться сумма S. После окончания
всех циклов сумму S нужно не забыть умножить на в -и уже
после эюго переходить дальше — к команде № 6.
Для человека, знающего систему команд какой угодно
конкретной машины, т. е. коды всех операций и вид записи
чисел в ячейке памяти, никакого труда не составит
переписать такой алгоритм на язык этой машины.
Возникает вопрос — машин различных типов много,
у каждой своя система команд, и поэтому как будто надо
учить столько машинных языков, сколько машин. Это,
во-первых. Во-вторых, трудно себе представить программу, <в
которой не вычислялись бы те или иные элементарные функции
(sin, cos, tg, In, epx и т. д.) и интегралы. Совсем: нельзя
обойтись ц без перевода числового материала из десятичной си-:
12
стемы в двоичную, в которой оперирует ЭВМ, и обратно.
Получается, что при программировании всякий раз надо
изобретать массу алгоритмов вычислений.
Действительно, мало придумать алгоритм для решения
задачи, надо еще найти программиста-переводчика на язык
той машины, на которой будет решаться задача, или учить
этот язы:< самому. Это положение, кстати, служит одной из
главных причин того, что многие из тех, кому нужна помощь
машины, лишены-возможности пользоваться ей.
Что же касается второй проблемы, то ее решение проще.
Программисты существенно облегчают себе
программирование, составляя стандартные программы для решения типовых,
часто встречающихся задач (и, конечно, в первую очередь
для вычисления элементарных функций).
Такие стандартные программы объединяют в библиотеки
и составляют специальную программу-дирижера, которая по
небольшой информации (номер стандартной программы и
указания, где хранится аргумент и куда направить
результат) сама вызывает нужную стандартную программу на
свободное место в память ЭВМ, передает ей управление с
возвратом потом в основную программу.
Тем не менее использование всех этих
усовершенствований, представляющих первый этап автоматизации
программирования, невозможно без знания системы команд данной
конкретной ЭВМ.
Есть еще одно важное обстоятельство. Кибернетизация,
проникновение математических методов буквально во все
области науки настоятельно потребовала облегчить для
ученых возможности обмена алгоритмами различных процессов
управления, способов .вычислений и т. д.
Как описать алгоритм?
Формулами?
Их явно недостаточно даже для описания процесса
вычисления (это видно хотя бы на нашем простом примере),
В виде программ?
Вряд ли это целесообразно. Машин много, и алгоритмы
при записи их на языке разных машин оказываются
различными.
Словами?
А на каком из многих человеческих языков? Если еще
учесть терминологические барьеры, то ясно, что практически
это неосуществимо.
Нужен специальный символический язык, отвлеченный
от языка любой машины, но близкий к общепринятому в
математике способу описания и решения задач и достаточно
строгий с формальной стороны, чтобы можно было вести
речь о составлении программы-переводчика с этого языка на
язык любой машины.
13
Алгол
Постепенно на основе машинных языков
стала определяться символика, удобная для записи алгоритмов*
В результате деятельности ученых ряда стран в 1960 г.
появилось сообщение об алгоритмическом языке алгол.
Этому сообщению предшествовало двухлетнее обсуждение
проекта нового языка. После своего появления язык алгол
постоянно совершенствуется. Существует много вариантов
этого языка в разных странах, но главное остается. Алгол
(сокращение слов Algorithmic Language — алгоритмический
язык) —это символический язык, служащий двум целям:
1) обмену алгоритмами между людьми;
2) описанию алгоритмов в форме, пригодной для
вычислительной машины.
Нужно совершенно четко представлять себе, что алгоритм,
записанный на алголе, еще не может быть непосредственно
выполнен на машине. Машина может только вводить
информацию с перфокарт или перфоленты, выполнять
арифметические операции, запоминать результаты и передавать
управление в зависимости от условия. Алгоритмы, записанные
на гораздо более сложном языке алгол, должны быть
расчленены на элементарные операции, выполняемые машиной.
Эта работа по расчленению алгоритма на элементарные
операции, которую ранее делал программист, благодаря
формализации записи на алголе может быть сделана самой
машиной с помощью специальной программы, записанной в
коде машины и называемой транслятором.
Но в том-то и дело, что те, кто пользуется алголом для
записи алгоритмов, могут совершенно не знать устройства
транслятора и вообще языка и особенностей машины, на
которой будет решаться задача. А их алгоритмом может с
успехом пользоваться любой, кто заинтересуется.
Поэтому появление алгола и других более специальных
алгоритмических языков1 вызвало настоящую революцию в
использовании ЭВМ в самых разнообразных областях
науки, техники и экономики.
Эту ситуацию, пожалуй, удачнее всего выразил Б. Хигмен
в своем остроумном «алгольном букваре», называющемся
«Что должен каждый знать об Алголе?»2.
«Если вы никогда не пользовались математикой, то
дальше не читайте, иначе, если вы не хотите пользоваться алго-
1 Например, язык фортран применяется при решении физических
задач, обычно связанных с вводом и выводом большого количества число*
вого материала; кобол — алгоритмический язык для коммерческих задач.
2 The Computer Journal, V. 6, 1963,
14
лом, то уходите на пенсию, иначе прочтите внимательно это
руководство».
Это хороший пример алгольного оператора. Обратите
внимание на слова, выделенные курсивом. Эти слова — основные
операторы алгола. В алгольных записях, использующих, в
основном, латинские буквы для обозначения переменных,
принято употреблять их английские эквиваленты:
// — если,
then — то,
else — иначе,
go to — перейти к.
При организации циклов и итернационных процессов
вычисление этих операторов обеспечивает передачу управления
в зависимости от выполнения условия. Например, проверку на
окончание цикла в примере, приведенном выше, можно
осуществить так:
if и<г then go to дальше else go to начало.
Здесь «дальше» означает, что мы переходим к
умножению в и уходим на команду № 6; «начало» — это начало
цикла. При кодировке алгольных выражений для ввода их в
машину операторы обычно обозначаются не словами
(«дальше», «начало»), а некоторыми метками, в качестве которых
обычно служат .комбинации букв и цифр, например х% В1, A3,
хотя в принципе слова и целые предложения можно
употреблять как метки.
Конструкция //—then—else может быть использована и
и для действия над логическими функциями, такими, как
логическое сложение V (или) и логическое умножение А (и).
Пусть х означает: «время спать» (на алголе это
записывается с помощью оператора присваивания, обозначаемого
: = , т. е. х: = время спать; у: = читать надоело).
Тогда:
if х V У then закрывайте книгу else примите пирамидон.
Алгольные выражения для ввода их -в машину кодируются
так, чтобы они были понятны транслятору. Перфолента ц
перфока;рта, служащие для ввода, одномерны, т. е. не
позволяют выносить за строку индексы и показатели степеней.
Поэтому в алголе вместо х2\ или аву+с1 пишут x[l]\ t 2-
или a t {eXy+c/d). Стрелка означает возведение в степень.
Круглые скобки здесь обязательны, иначе транслятор
поймет как ав • у+ —,
d
Если теперь упомянуть еще об операторах
for— для,
step — maaf
15
while — пока,
do — выполнить,
значение которых ясно из «их перевода, и заметить, что для
устранения путаницы в границах операторов их окружают
операторными скобками: eegin (на-чало) и end (конец), то мьс
уже почти сможем написать на алголе алгоритм вычисления
|/ в2—4ас,
eegin
г: ** в X 0,001;
х: - (—ixaxc/e f 2);
s: = 0;
а:- 1;
for к : «* 1 step l while u<e do
eegin
и:=иХ*(1—V2X/c);
s ; = s+u;
end
s: - eXs
end
«Почти» означает, что мы не оформили наш оператор
должным образом: у него нет заголовка, где определяются
все переменные величины, не определены также и величины
а, в, с. Поэтому в такой именно записи транслятор не сумеет
перевести алгоритм на язык машины. Мы не приводим здесь
описание этих деталей, так как не хотим отнять у читателя
интереснейшую возможность самому постичь все тонкости
алгола.
На том уровне, которого достиг читатель в понимании
алгола, программа для вычисления корней квадратного
уравнения (1) (в2>4ас) даже с исследованием случая вырождения
при а=0 покажется ему совсем простой;
©вод (а, в, с)
if a=0 then
eegin
R : число корней: "= 1;
*[1]: = — с/в;
х[2]: - 0;
go to P;
end
else
eegin
R ' — 2'
d: -e't 2—4XaXC;
d : = sgrt {d);
x[l]:= (-e+d)/(2Xa);
*[2]:- (-e~d)/(2Xa);
end
P ; печать (a, e, c, x[l], x[2]t R}.
16
Заметьте, что мы не использовали здесь итерационный
процесс, придуманный нами для вычисления корня из
промежуточной переменной d, а просто написали sqrt (от сокращения
слов sqare root — квадратный корень). В этом еще одно из
удобств алгола. Метки sqrt, sin, cos, tg, arctg, In, exp в алголе
зарезервированы для элементарных функций, и каждый
транслятор, встретив тажую метку при расшифровке алголь-
ной программы, вставит в рабочую программу обращение к
соответствующей элементарной функции при значении
аргумента, стоящего далее в скобках.
Конечно, в использовании алгола для программирования
существуют трудности, сущность которых выразил еще
Козьма Прутков: «Нельзя объять необъятное». Если потребовать
от транслятора, чтобы он понимал все тонкости и хитрые
места алгола, то такой транслятор будет так долго и
медленно проверять ваш алгоритм (нет ли там этих каверз?), что
машина будет больше тратить времени на транслирование
программы, чем на счет.
Поэтому большинство применяющихся трансляторов
переводит алгоритмы, написанные на несколько урезанных
вариантах алгола, пригодных, впрочем, для решения 99%
встречающихся задач. Например, не все трансляторы умеют
переводить программы, в которых функция в своем аргументе
содержит саму себя (так называемое ре-курсивное обращение к
процедуре. Это как если бы мы пробовали снять пиджак, не
снимая пальто). Но и эти задачи обычно решаются за счег
небольших усложнений программы.
Мы не будем более углубляться в подробности,
касающиеся языка алгол: для этого есть учебники (достаточно,
например, назвать прекрасную книгу Мак-Кракена) \ к которым
мы отсылаем читателя,
План
должен быть
оптимальным
Теперь можно вернуться к вопросу о выборе
критического пути в сетевом графике. Если в память машины
занести номера всех событий сети и длины соответствующих
дуг графика, соединяющих их, то, используя известные
алгоритмы, нетрудно написать алгольную программу, реализую-
1 Д. Д. Мак-Кракеи Программирование на АЛ ГОЛ е. (Пер. с англ.).
М., «Мир», 1964.
щую перебор всех возможных цепочек событий, идущих от
начала до конца, для выбора максимальной из них по длине.
На практике мы ждем от машины гораздо большего, чем
иростой перебор вариантов. При «сшивании» подсетей в
большой сетевой график неизбежны ошибки всякого рода, такие,
например, как циклы, когда какая-то работа Л, без которой
невозможно выполнение последующей работы В, сама
оказывается зависящей от окончания этой В. Устранение этих
ошибок в больших сетях — дело трудоемкое, и желательно
поручить его машине (благо алгоритмы для устранения циклов
уже ^имеются). Но самое существенное заключается в том, что
от машины естественно ждать не просто выбора
критического пути, а оптимизации плана работ.
Если, например, имеется директивный срок, ж которому
надо закончить стройку, то можно добиться существенной
экономии средств, увеличивая сроки -выполнения работ, не
лежащих на критическом пути. Здесь мы имеем задачу
оптимизации плана .с точки зрения минимизации ресурсов.
Часто дело обстоит наоборот — необходимо, как говорят
хозяйственники, «освоить» все отпущенные средства {иногда
ведомственные барьеры мешают их передаче для других
работ). Тогда ставится задача минимизации общего времени Т
лродолжительности всех работ.
Рассмотрим календарные сроки «событий, т. е. моменты
времени /о, tu ..., tn , когда начинаются или кончаются какие-
то работы. Обозначим через хк время от tK„} до tK . За это
время, конечно, может выполняться не одна, а несколько
работ, как говорят, фронт работ.
Минимизации общего времени
Т = п + т2 + ... + хп
можно добиться, варьируя значения фронтов работ и их
продолжительности хк с учетом ограничений на хк * налагаемых
имеющимися нормами работ и распределением ресурсов по
календарным срокам.
Для решения подобных задач в последнее время
развилась целая наука — линейное программирование \ в
вычислительных центрах создано довольно много стандартных
программ, реализующих алгоритмы линейного программирования.
Почему линейное программирование?
Величина, подлежащая минимизация Т, — линейно
зависит от своих аргументов хк (т. е. они ©ходят в нее в первой
степени). Если же усложнить задачу, попытавшись учесть то
•вполне реальное обстоятельство, что все эти хк являются
1 См., например, книгу. Д. Б. Юдина и Е, Г. Гольштейна «Линейноа
программирование», М., Физматгиз, 1963.
18
случайными величинами !, а Г не имеет простой линейный вид,
тонам требуется прибегнуть к услугам нелинейного или
динамического программирования.
Математическая теория оптимального планирования,
оптимального управления процессами является особенно
актуальной сейчас в приложениях. И, пожалуй, нигде так ярко не
проявляются роль и значение вычислительной техники в
управлении экспериментом, как в наших грандиозных
космических исследованиях. За первые секунды полета ракеты
быстродействующие электронные машины
координационно-вычислительного центра обрабатывают начальные данные о ее
траектории, чтобы успеть внести необходимые поправки. При
этом точность вычислений должна быть очень высока, ибо
ошибка в метр при определении скорости может привести
зачастую к гибельным отклонениям от заданного пути.
Математически процессы регулирования полета ракеты
описываются в терминах обыкновенных дифференциальных
уравнений (т. е. уравнений, связывающих скорости изменения
величин, характеризующих процесс управления, с
параметрами процесса). Требование оптимальности в смысле
быстродействия или минимума затрат энергии приводит к
специальным задачам вариационного исчисления. В удостоенной
Ленинской премии монографии коллектива советских ученых
во главе с Л. С. Понтрягиным2 излагаются методы решения
обширного круга таких задач.
Можно было бы продолжать перечень математических
дисциплин, используемых экспериментаторами при расчетно-тео-
ретической подготовке опытов. Упомянем, например, о
последних работах по математической статистике и
математической теории надежности3. Но мы не преследуем цель
сделать обзор о применении вычислительной техники в
постановке и проведении опытов, так как вряд ли это целесообразно
в рамках популярной брошюры, тем более что каждая
область науки имеет свою специфику, иногда в корне меняющую
сам подход к планированию эксперимента.
Однако, для того чтобы дать читателю некоторое
представление о реальных взаимоотношениях экспериментатора и
машины, более подробно остановимся на роли машинной ма-
1 Это обычно является результатом того, что сроки окончания работ
зависят от массы мелких, заранее непредвидимых обстоятельств, а также
непреднамеренных случайных ошибок в определении исполнителями
предварительных сроков.
2 Л. С. Понтрягин и др. Математическая теория оптимальных
процессов. М, Физматгиз, 1961.
3 Н. П. Клепиков, С. Н. Соколов. Анализ и планирования
экспериментов методом максимума правдоподобия. М., «Наука», 19G4.
Б. В. Гнеденко, Ю. К. Беляев, А. Д. Соловьев.
Математические методы в теории надежности. М, «Наука», 1965.
;9
тематики в физике высоких энергий. В выборе примеров,
несомненно, сказались вкусы автора—сотрудника Вычисли-,
тельного центра Объединенного института ядерных исследо*
ваний © Дубне,
Машина —
соавтор
научных открытий
Попробуем представить себе, что происходит
в кабинете физика, со-бирающегося спланировать некоторый
эксперимент. Допустим для наглядности, что мы у стола, за
которым этот физик обсуждает предстоящий эксперимент со
своими коллегами.
Постепенно мы начинаем понимать, что речь идет о .какой-
то внушительной установке, называемой физиками камерой.
Ее создают, чтобы изучать различные виды взаимодействий
элементарных частиц или для регистрации новых частиц
(если они ожидаются в этих взаимодействиях). Каким-то
образом в этой камере удается .получать стереофотографии
микровзрывов — взаимодействий, столкновений, распадов
элементарных частиц и путей их осколков.
После пуска установки полученные с ее .помощью стерео-
снимки микровзаимодействий должны быть просмотрены для
отбора событий, интересующих физиков. Цифровые данные
об этих событиях будут получены после измерений следов
частиц, зафиксированных на снимках.
Вероятность появления изучаемого эффекта 0,00001—одна
стотысячная. Поэтому, нужны сотни тысяч и миллионы
опытов, что:бы обнаружить и изучить хотя бы несколько
полезных событий. Сколько же нужно времени (по-видимому, в
годах), чтобы среди миллионов фотографий найти одну или
две интересующих исследователя и, кстати, как собственно
это делать, по каким признакам отличать эти фотоснимки?.
Выясняется, что тут, конечно, не обойтись без помощи
быстродействующих вычислительных машин.
Даже после беглого просмотра остается несколько тысяч
фотографий, дальнейший отбор и анализ которых не .под силу
самому опытному физику.
Для использования машины надо перевести информацию,
содержащуюся а фотоснимках, на язык цифр. До недавнего
времени это делалось вручную. Фотопленка просматривалась
кадр за кадром под специальным микроскопом. Измерялись
координаты точек на траекториях частиц и записывались на
бланках,- Потом эти цифры пробивались на перфокартах для
20
ввода в машину. Сейчас созданы специальные просмотровые
измерительные автоматы, позволяющие пробивать цифровую
информацию на перфоленту или прямо вводить ее по
специальному каналу связи в ЭВМ для последующей обработки.
Эта обработка состоит в получении величин,
непосредственно интересующих физиков: массы и энергии частиц,
участвующих в реакции, их числа (ведь некоторые не видимы на
снимках).
Устраняются, вернее учитываются ошибки измерений, н
наступает очередь идентификации событий.
Что это такое? В памяти машины запасены теоретические
данные о возможных типах взаимодействий. Проверяя, как
выполняются в изучаемой реакции основные физические
законы, машина может установить, совпадают ли
характеристики события с каким-либо из этих известных машине типов.
Точнее, поскольку речь идет о случайных событиях,
находятся вероятности такого совпадения. И тот тип взаимодействия,
вероятность которого является наибольшей, считается
осуществившимся.
Если нет такого совпадения, то чаще всего приходится
искать ошибку в данных, вводимых в машину и переизмерять
событие. Но иногда, к великой радости экспериментаторов,
это означает нал-ичие нового типа взаимодействия или новой
частицы.
Так машина становится главным помощником
ученых-экспериментаторов, соавтором их открытий.
Как руководить сооружением
экспериментальной
установки
Итак, методика эксперимента ясна.
Разрабатываются алгоритмы для математической обработки опытных
данных. Прошел этап расчетов конструкции установки
(сколько ума и изобретательности было вложено в них!). В
самых разных вычислениях помогали
электронно-вычислительные машины:
— магнитно-электродинамических — при расчете
магнитов, поворачивающих в камеру пучок частиц, разогнанных
ускорителем до космических скоростей;
— гидромеханических, та.к как камера заполнена
жидкостью под большим давлением, периодически сбрасываемым;
— по автоматике и телемеханике — управлять камерой, в
которую врывается мощное излучение, приходится на
расстоянии;
■— оптических и т. д.
21
Все позади — отпущены средства, сделаны
соответствующие заказы предприятиям на изготовление оборудования и
аппаратуры. Но пока все вопросы, касающиеся тонкостей
научной стороны опыта, отступили на второй план. На
первом— трудности осуществления научных замыслов.
Нелегкие и непривычные проблемы возникли перед
учеными: строительство, снабжение, выполнение заказов.
Затянулось строительство, не оказалось необходимой аппаратуры и
материалов, при перевозке разбили уникальный прибор,
привезли не тот магнит (значит, придется перематывать и т. д.)«
Срыв одно-го срока вел к задержке другого. А время не ждет*
Темп исследований высок. Через год-два научная тема, ради
которой затеян весь эксперимент, уже может потерять смысл.
Да и каждый час работы огромного ускорителя стоит сотни
рублей. Больше нельзя «выдерживать, хладнокровно
относиться к этому, и тогда физики обращаются к сетевому
планированию.
Сколько осталось до пуска установки? Ровно год.
Рисуем кружок с цифрой ноль внутри — начало работы,.
С чего же начать? Самое главное — оборудование и
аппаратура. Нужно срочно подготовить документацию на замену
отсутствующих приборов и материалов. На это уйдет один
месяц. Получаем еще кружок с кодом 1 внутри, к которому
идет стрелка с цифрой 1. Надо привезти остальное
оборудование (событие 2); для этого потребуется еще 2—3 месяца.
Получается график (рис. За).
Но куда ставить эти приборы? Сначала нужно закончить
строительство пристройки. Пусть это и будет событие 2. Срок
37г месяца. А затем устанавливаем оборудование —
событие 3.
График изменяется (рис. 36),
От события 1 к событию 3 проведем стрелку с цифрой 4:
минимум через 4 месяца после повторного заказа мы получим
требуемое. На ремонт прибора (событие 4) и перемотку
магнита (событие 5) потребуется по два месяца. Одновременно
можно подводить электропитание (событие 6—7г месяца)1*
Только после этого можно приступать к наладке аппаратуры..
Чтобы отметить событие — начало наладки, нарисуем кружок
Рис, За, рис. 36.
22
Рис. 4.
с цифрой 7 внутри, к которому проведем пунктирные стрелки
без цифр — фиктивные работы.
На автономную наладку аппаратуры нужно полгода
(событие 8—6 месяцев). В это время пора организовать работу
измерительных автоматов (событие 9—3 месяца). И как буд*
то все.
Событие 10 — окончание работ по наладке всего
комплекса (1—2 месяца). После этого можно пускать установку.
Посмотрим, что получилось (рис. 4)? Ишем критический
путь. По цепочке событий — 0—1—3—4—7—8—10 и 0—1 —
—3—5—7—9—10 общая продолжительность работ 14
месяцев, цепочку с событием 6 не смотрим — там явно меньше, но
вот по цепочкам 0—2—3—5—7—9—10 и 0—2—3—4—7—8—10
получаем целых 16 месяцев! Это значительно больше
срока. Надо кардинально пересмотреть график. К тому же
мы забыли, что машина ие будет сама обрабатывать
результаты опыта. Необходимо составить для нее программу. А это
дело долгое — месяца три, так как программа должна быть
предельно экономичной, с точки зрения места, занимаемого в
памяти машины и затрат машинного времени. Поэтому
включаем в наш график и работы по составлению обработанных
программ (событие 11). Но ведь в программе должны быть
учтены все данные об аппаратуре, а их можно измерить
только после ее наладки. Получается, что вместо сокращения
придется удлинять критический путь еще на 3 месяца. Что же
делать?
Графи«к надо «сжимать». Самое длинное звено на
критическом пути (их целых два, они отмечены жирной линией на
рис. 4) — автономная наладка, т. е. наладка каждого
прибора в отдельности.
А что если не ждать конца строительства и временно
установить где-то хотя бы часть приборов, налаживать их? Это,
возможно, задержит комплексную наладку, но в целом,
может быть, получится выигрыш. Предположим, что мы имеем
временное помещение для установки приборов.
Теперь можно разделить наладку на два этапа: первый—
включающий событие 12 — установку приборов в подсобном
23
помещении (1 месяц) и наладку их (событие 13—4 месяца),
Начать первый этап можно до события 2 и даже до событий
4, 5, 6. Появится еще событие 14 — перенос в основное
помещение и «доналадка»—1 месяц. Второй этап — после
события 7. Он потребует теперь не 6, а только 2 месяца. Работа
2—3 сократится до 1 месяца. Наконец, задание математикам
на составление обработочной программы можно дать, не
дожидаясь конца наладки. Программу лучше писать в общем
виде, а потом подставить измеренные константы. Это
потребует не 3, а 5 месяцев, но тогда программа подойдет и для
других установок такого типа. Мы получили совсем новый
график (мы видели его на рис. 1).
Критический путь на нем отмечен двойной линией. Он
равен уже 11 месяцам. В резерве имеется целый месяц. Он
пригодится потом. Обстановка за этот год еще не раз изменится..
Физики вовремя получили помощь. Теперь по ходу работ
им надо регулярно пересчитывать свой сетевой график,
постоянно следить за событиями, которые окажутся на
критическом пути.
Читатель, конечно, понимает условный характер этого
примера. На самом деле все выглядит далеко не так
тривиально, хотя, как показывает практика, систему СПУ
целесообразно применять при планировании и небольших
разработках для упорядочения дел и гарантии от грубых просчетов.
К сожалению, мы вынуждены признаться, что подобный
эпизод с составлением сетевого графика для планирования
эксперимента представляется мало реальным. Пока еще
трудно найти примеры строгой, научной организации и
планирования экспериментальных работ. Будем надеяться, что это
положение изменится к лучшему.
Монте-Карло—
«бумажный»
эксперимент
Какова дальнейшая судьба эксперимента?
Настал момент, когда опытная установка заработала. Есть
пучек элементарных частиц в камере! Вот появились первые
фотографии!
Что же теперь волнует физиков?
Теперь они обсуждают проблему фоновых событий.
Положение оказывается очень сложным. Имеется дюжина
типов взаимодействий, фотографии которых по внешнему
виду не отличить от нужных нам. Этих взаимодействий,
которые называют фоновыми, в десятки и сотни раз больше, чем
тех, которые мы хотим изучать. Вдобавок ко всему
выясняется, что сама камера регистрирует* далеко не все события, т. ей
24
ее эффективность (вероятность регистрации) заранее неизве*
стна. Попытки расчета фона и эффективности приводят к
многократным интегралам. Под-счет их даже на
быстродействующей машине потребует недели и месяцы. А подсчитать фон и
эффективность надо, так как без поправки на них
результатам опыта нельзя доверять.
Тогда обращаются к методу статистических испытаний,
известному под именем метода Монте-Карло. В чем его суть?
Будем, например, бросать иголку на страницы тетради в
линеечку и смотреть, пересекла ли иголка хоть одну линейку
или нет. Представьте себе, если подсчитать, сколько раз была
брошена иголка, и поделить это число п на число попаданий
т иглой на линейку, то после достаточно большого числа по-
п
ладаний частное — дает нам знаменитное число я=3,14.
Все дело в том, что, как подсчитано в теории вероятностей,
при случайном бросании иголка пересекает линию с вероят-»
ностыо1"-^ , а эту вероятность при достаточно большом п
т
можно определить как —.
Отсюда совсем нетрудно догадаться, как подсчитать
площадь / заштрихованной фигуры, изображенной на рис. 5.
Будем бросать в единичный квадрат случайные точки так, чтобы
они засевали его равномерно. Тогда площадь / будет
приблизительно равна отношению числа т точек, попавших в
заштрихованную часть, к общему числу п брошенных точек
(рис. 5).
Если теперь учесть, что / есть интеграл I=$f(x)dx, то
о
будет понятно, что такие специальные игры дают нам метод
вычисления интегралов (остроумно названный известным ма-
техматиком Джоном фон Нейманом методом Монте-Карло).
Очевидно, что точно так же мы можем подсчитывать
объемы, т. е. вычислять двумерные интегралы и вообще
интегралы любой кратности 2.
Обращаем внимание читателя на суть явления,
заключающегося в том, что для вычисления интеграла мы
придумывали игру, т. е. строили статистическую модель такого
случайного процесса, средняя характеристика которого —
вероятность попадания в область / — легко подсчитывается по
(известным правилам математической статистики
1 При условии, что длина иглы вдвое меньше расстояния между
параллельными линиями.
2 Именно в вычислении многократных (с кратностью большей 4-х)
интегралов метод Монте-Карло имеет преимущество перед обычными
методами вычисления благодаря вероятностному подходу к оценке числа
операции необходимых для достижения заданной точности.
25
Все происходящее в каме-
flx) ре — есть случайный процесс.
Правда, он совсем не такой
простой, как игра с иголкой»
Случайными являются и
направление полета
элементарной частицы в камере, и
точка, где произошло
взаимодействие, и сам тип этого
взаимодействия, и комбинация путей,
по которым разлетелись
осколки реакции. Но если бы мы
сумели построить числовую мо-
^ дель всего этого процесса и
/ """** осуществить ее многократно,
Рис ь то потом, подсчитав общее
количество таких «розыгрышей»
и поделив на него число тех, в
которых регистрируется интересующее нас явление
(остальные как раз и составляют фон), получили бы нужную
экспериментаторам эффективность камеры. Статистический
анализ остальных взаимодействий даст нам необходимые
сведения о фоновых процессах.
Таким образом, задача сводится к числовому
моделированию физического процесса, которое после многократного
повторения дает материал для получения нужных нам средних
характеристик с помощью статистической обработки.
Очевидно, что сотни и тысячи таких «розыгрышей»,
нужные для достижения хорошей точности, могут быть
осуществлены лишь на быстродействующей ЭВМ. Собственно, только
с их появлением метод Монте-Карло и смог возникнуть и
получить такую широкую популярность.
Но как строить статистическую модель?
Компоненты физического процесса — случайные
величины. Рассмотрим для примера одну из них. После влета в
камеру частица пролетает в ней до взаимодействия путь
случайной длины.
Длина эта, конечно, зависит от энергии частицы и.
плотности вещества в камере, во и при фиксированных значениях
энергии и плотности / будет случайна. В ходе
предварительного эксперимента подсчитали число частиц *Vi, пролетевших
путь A/, N2 частиц пролетели путь 2А/ и т. д. Nк —частиц
пролетели /сД/. Всего частиц было Л^ + Л^-Ь ... +A^= N.
Все эти данные можно занести в график^ называемый
гистограммой (рис.6).
При увеличении Л' и уменьшении А/ гистограмма
непрерывной случайной величины будет давать нам все более
точное представление о плотности распределения этой случай-
2$
Г'
u
Кг
»3
*е
1 г
Г>^
2—*е
Рис. 6.
нои величины, т. е. о вероятности, с которой случайная
величина принимает то или иное значение ].
Пусть кривая N=N(1) описывает плотность
распределения случайной величины (рис. 7). В пряхмоугольник Q с
основанием (/ь h) и высотой Н==тахЛ/(/) будем бросать
случайные точки с координатами (/, N). Если точка попадает над
кривой плотности, то мы считаем испытание неудачным и
повторяем его снова. Если же точка окажется под кривой, то
соответствующая абсцисса берется в качестве очередного
значения случайной величины.
При равномерном засевании точками прямоугольника Q,
очевидно, наиболее часто будут появляться те значения /,
которые соответствуют большему значению N(1), что и
требовалось.
Для получения координат случайных точек, равномерно
разбросанных в Q, можно пользоваться таблицами случайных
чисел (или даже телефонной книгой). Возьмем несколько
чисел из такой таблицы, например пять чисел: 2, 0, 1, 6, 4, ч
составим первое случайное число, т. е. десятичную дробь
0,20164.
Умножим ее на Я, получим координату N. Координата /
получается аналогично из второго случайного числа аг*.
/ = /i + a2(/2-/i).
Следующая пара случайных чисел аз и си дает нам
следующую точку и т. д. Запомнить в машине большие таблицы
случайных чисел явно нерационально. Поэтому составлены
1 Если говорить более точно, то плотность распределения не равна, но
пропорциональна вероятности попадания в очень малый отрезок, длина
которого и является коэффициентом пропорциональности.
27
е
Рис. 7*
специальные коротенькие
стандартные програмки,
позволяющие генерировать
случайные числа в самой
машине.
Необходимое условие
применения метода Монте-
Карло: тщательный
предварительный анализ
статистических .свойств всех слу-:
чайных компонент
физического процесса для
установления (теоретически или
опытным путем) законов
распределения.
Время работы
физических установок может
обходиться, в сотни рублей в час
(не говоря уж о стоимости самого оборудования). Поэтому
понятно увлечение экспериментаторов такими «бумажными»
экспериментами. Метод Монте-Карло позволяет на числовой
модели без больших затрат предварительно рассчитать
варианты будущего дорогостоящего опыта, проверить
теоретические предположения, лежащие в его основе и (что иногда
очень важно) выиграть время, повысить темп научного
исследования.
Однако вернемся к нашим экспериментаторам. У них
прошли первые волнения. Опыт вошел .в колею, превратился в
обычную повседневную работу по медленному, но
неуклонному накоплению статистики. Полезные события стали
измеряться уже не единицами, а десятками, но за этими
единицами и десятками стояла массовая обработка многих тысяч
фотографий (помните, вероятность равна 0,00001). И тут новые
трудности поджидали исследователей.;
Косвенные испытания
и метод
наименьших квадратов
Наблюдения, проводимые нашими физиками,
как и большинство современных экспериментов, являются
косвенными. Различные физические параметры,
содержащиеся в теоретическом описании изучаемых взаимодействий,
невозможно измерить непосредственно. Приходится измерять
только то, что можно измерить. Измеряя, например,
координаты точек, лежащих на сфотографированных
2S
(*с,Уп)
-Y
Рис. 8.
траекториях частиц, мы
находим по ним
косвенным образом (с помощью
вычислений) такие
параметры, как энергии или
массы частиц,
участвующих во взаимодействии,
в том числе и
нейтральных, не оставляющих
следов в камере. Далее,
по выбору энергий и масс
определяют еще более
сложные параметры,
которые нужны физикам.
Как же получить из
непосредственных
измерений значения
косвенных параметров?
Возьмем следующий пример. Из школьного курса физики
известно, что электрически заряженное тело отклоняется
магнитным полем. Если камеру поместить между полюсами
мощного магнита, то все заряженные частицы будут в ней
описывать кривые типа окружностей. Чем более энергична
частица, тем меньше она успеет отклониться магнитным
полем, тем большим будет радиус описываемой ею окружности,
т, е, радиус R и энергия Е частицы связаны обратной пропор-
о
циональностью R- ~jT > где величина С зависит, в свою
очередь, от массы частиц и магнитного поля. Нанесем на график
(рис. 8) координаты измеренных точек (х\9 ух), (х2, уч), ...,
(хп > Уп )• Любая окружность на плоскости ХОУ задается
радиусом и координатами ее центра (хс , у с). Можно
провести сколько угодно разных окружностей, которые будут
приблизительно проходить по точкам
(*/ » У\) (^1, 2>-> п\ п>3).
Какая из них будет наилучшей? По-видимому, та, которая
меньше всех отходит от измеренных точек. Однозначно
провести окружность можно по трем точкам, но у нас д>3, и
поэтому неясно, какие три из них выбрать. По каким-то трем
она лройдет, а от остальных отодвинется. Нужна мера
удаления точек от проводимой кривой.
В методе наименьших квадратов в качестве такой меры 5
берется сумма квадратов расстояний Pt от точек до кривой с
учетом средних ошибок сгь с которыми измеряются эти
расстояния
29
Такие величины, принимающие различные значения для
разных кривых, называются в математике функционалами.
Необходимость учесть ошибки измерений а{ ясна сама по
себе. В знаменатель в\ попали потому, что чем больше
ошибка, тем меньше мы доверяем информации, приносимой этой
точкой, тем меньше должен быть -вклад этой точки в S,
Кривая, для которой функционал 5 будет наименьшим, и
будет самой хорошей — оптимальной. В нашем примере, где
мы ищем Е— энергию частицы (пусть массу нам удалось
определить из каких-то других соображений), нужно,
варьируя Е (а значит, и /?), хс и yQi найти те их значения, при
которых S будет наименьшим.
К сожалению, эта задача имеет точное решение
(найденное еще Гауссом) только в случае, когда расстояния ?t
линейно зависят от искомых параметров (даже в нашем
простом примере это не так). В случае же нелинейной
зависимости от параметров применяются различные итерационные
способы, позволяющие найти минимум S приближенно с
помощью электронно-вычислительных машин.
При обработке современных физических экспериментов
ищутся десятки неизвестных параметров и не один, а сотни
я тысячи раз. Можете себе представить, сколько раз
приходится применять процедуру минимизации S! Поэтому очень
актуальной является проблема выработки алгоритма
наиболее быстрого способа определения минимума 5 именно в
нелинейном случае, которая разрабатывается многими
математиками.
Один из таких алгоритмов разработан в Объединенном
институте ядерных исследований. Сотрудник
Вычислительного центра института И. Н. Силин на основании этого
алгоритма создал стандартную про-грамму метода наименьших
квадратов, успешно используемую для минимизации самых
различных нелинейных функционалов во многих вычислительных
центрах страны.
Диалог
с машиной
Идея диалога с машиной становится все
более насущной. Было бы хорошо узнавать от машины, когда
она бывает недовольна полученной от вас ошибочной
информацией, не только по огоньку АВОСТа (аварийная
остановка), как сейчас, а более понятно — где и какая ошибка,
почему она появилась. Еще лучше было бы иметь возможность
спросить и быстро получить ответ: как вести расчеты дальше
или как понять результат*
30
Больше всех этой возможности обрадовались бы, наверх
кое, экспериментаторы.
Какими достоинствами должен обладать хороший
собеседник?
Во-первых, достаточным уровнем интеллекта. Нельзя
нормально поговорить с тугодумом, т. е. машина должна иметь
обширную память порядка 50 тысяч ячеек плюс внешнюю
память с необходимой системой стандартных программ и
высокое быстродействие.
Во-вторых, способность к быстрому обмену информацией*
Труден разговор двух заик, но если вдобавок, задав с
трудом вопрос, будешь часами ждать ответа, то беседа не
получится. Для машины — это требование иметь
быстродействующие внешние устройства, т. е, быстрый ввод буквенной и
цифровой информации с телетайпа и быструю (более 100 строк
в минуту) печать, позволяющую печатать на широком листе
слова и числа.
В некоторых физических институтах, имеющих машины с
такими достоинствами, возможность беседы с машиной
осуществлена. Физик может вести активный разговор с
машиной, отстукивая ей на телетайпе вопросы (в готовых
формулировках из имеющегося набора) по неясным ему моментам
исследования. Машина отвечает, также печатая текст. Можно
попросить машину проверить новую гипотезу или уточнить
промежуточные результаты. Например, в физической
лаборатории в Беркли (США), где ведутся исследования по физик*
высоких энергий, можно обратиться к машине ИБМ 7090 с
помощью телетайпа. Назовите номер стереоснимка
некоторого трехлучевого события и спросите ее, допустим:
Если первая частица К4* мезон, а вторая протон, то
какова может быть третья?
Машина сама ведает автоматическим просмотром
снимков. Найдя нужный кадр и проанализировав задачу с учетом
ошибок, ЭВМ красным цветом напечатает ответ:
— Масса третьей частицы лежит в таких-то пределах,
энергия — в таких-то.
Физик, сообразив, что* такой массы нет ни у какой из
известных частиц, просит машину проверить новую гипотезу.
За приятной возможностью вести такие беседы
скрывается, кроме необходимости иметь соответствующую
техническую базу, еще и огромная предварительная работа по
составлению стандартных программ для анализа и идентификации,
событий, кодировки вопросов и расшифровки ответов.
Тенденция к оперативной передаче машине достаточной
информации о способах управления процессом и его ходе,
чтобы она могла активно руководить исследованием,
характерна теперь не только для космических
координационно-вычислительных центров,
31
Например, в Объединенном институте ядерных
исследований в Дубне широко ведутся работы по применению метода
«on line» — на линии, т. е. хметода, позволяющего числовую
информацию о ходе процессов, происходящих в искровой ка-
мере, минуя этап перфорации, вводить непосредственно в
оперативную память машины БЭСМ-ЗМ. Нежелательный
этап перфорации при вводе экспериментальных данных, а
также выводе промежуточной информации искоренен
благодаря созданию вычислительной системы из двух основных
ЭВМ с быстродействием 20 тысяч операций в секунду,
соединенных с периферийной машиной типа «Минск-2», которая
связана с измерительными устройствами в лабораториях
института.
Такое -врастание машин в эксперимент приносит с собой
совершенно новые возможности гибкого и оперативного
управления опытом. Особенно большие преимущества дает
применение ЭВМ в оперативном управлении экономикой и
производством.
Как будет выглядеть электронное оснащение плановых и
административных управлений — несколько небольших
транзисторных ЭВМ или одна мощная со многими выносными
пультами — не так важно. Важно, чтобы уже сейчас велась
работа по созданию алгоритмов бухгалтерских, и
управленческих дел, чтобы ставились эксперименты по проверке методов
применения вычислительной техники в народном хозяйстве.
Есть еще один важный момент. Речь идет о том, с чего мы
начали этот раздел — с вопроса о быстродействующих
внешних устройствах. Они нужны, конечно, не только для
осуществления бесед с машинами. Без них невозможно
полноценное использование ЭВМ в народном хозяйстве, так как
экономические и планово-статистические расчеты при сравнитель-
по небольших объемах вычислительных работ требуют
обработки громадного количества вводных данных. К сожалению,
здесь мы существенно отстали от зарубежной техники и не
имеем внешних устройств, которые могли бы полностью
удовлетворить нужды народного хозяйства.
Анализируя это положение в своей статье в «Правде» от
24 февраля 1966 г., академик А. Дородницын наряду с
форсированием разработки новых устройств у нас в стране
предлагает закупить их за границей, что позволит сохранить темпы
в экономическом соревновании.
32
6 коп.
Индекс
70072
ВНИМАНИЮ ПОДПИСЧИКОВ!
В 1967 году серия «Физика, математика, астрономия» разделяется на
2 серии: «Физика, астрономия» и «Математика, кибернетика».
Сообщаем темы брошюр, которые запланированы к выпуску в этих
сериях в 1967 году:
«ФИЗИКА, АСТРОНОМИЯ».
Индекс 70072.
«Успехи советской астрономии», «Физика плазмы»,
«Экспериментальные исследования частиц», «Парадоксы физики», «Ядерная астрофизика»,
«Биологические принципы и радиолокации», «Сверхсильные магнитные
поля», «Металлы при высоких давлениях» и др.
«МАТЕМАТИКА, КИБЕРНЕТИКА».
Индекс 70097.
«Советская математическая школа», «Машинный перевод»,
«Кибернетика в космических исследованиях», «Математическая статистика», «Успехи
математики», «Всемирный математический съезд в Москве»,
«Математические методы в экономике», «Современная топология» и др.
Кроме того, по науке и технике будут выпускаться серии брошюр:
«Химия»,«Радиоэлектроника и связь», «Техника», «Промышленность»,
«Транспорт», «Строительство и архитектура», «Наука о Земле»,
«Естественнонаучный факультет», «Естествознание и религия».
По «Естественнонаучному факультету» выпускается одна брошюра в
месяц средним объемом 80 стр. Подписная плата на год—1 руб. 80 коп.
По остальным сериям выходит по 1 брошюре в месяц средним объемом
48 стр.
Подписная плата на каждую серию на год — 1 руб. 08 коп.
Подписка принимается в пунктах подписки «Союзпечати», городских и
районных узлах связи, почтамтах, а также общественными
распространителями печати на предприятиях, в учреждениях, организациях, учебных
заведениях.
Просим своевременно выписать на 1967 год интересующие вас серии
брошюр.
Издательство «3 н а н и е»