История развития программного обеспечения

Что такое кибернетика?

При описании быстродействующих электронных машин в научной и популярной литературе часто встречается слово "кибернетика".

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

Здесь мы попытаемся дать общее понятие о кибернетике как научном направлении и в основном о ее связи с математическими электронными машинами (не претендуя, однако, на полноту изложения).

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

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

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

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

Какие же общие закономерности выявились в процессе изучения моделирования, систем автоматического регулирования, решения задач на цифровых машинах, использования машин для целей управления и планирования?

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

Пусть, например, нам были известны начальная температура поверхности спутника и закон ее изменения при выводе его на орбиту. Требовалось рассчитать изменение этой температуры в период вывода.

Как перевести эту имеющуюся у нас информацию о начальной температуре поверхности спутника на язык машин, чтобы произвести необходимые расчеты?

При решении этой задачи на электромодели начальная температура должна быть задана в форме напряжения. При решении задачи на цифровой машине мы должны были значения начальной температуры представить в виде пробивок на перфокарте. В дальнейшем пробивки преобразовались в серию импульсов. Следовательно, сведения о температуре представились уже в форме последовательности импульсов. Во всех этих случаях количество информации было одно и то же (давалась начальная температура поверхности), форма же ее представления (способ кодирования) и система передачи изменялись.

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

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

Поясним это на примере деления "столбиком".

Последовательность действий при делении можно описать так: сначала выполняем логическую операцию – сравниваем по модулю делимое с делителем. Если делитель больше, то в делимом переносим запятую вправо на один разряд, а в частном записываем нуль (целых); повторяем эту операцию, пока делимое не станет больше или равно делителю. После этого делим полученное число на делитель, целую часть результата записываем в очередном разряде частного, а к остатку приписываем цифру очередного разряда делимого. Если полученное число больше делителя, производим деление, если меньше – записываем в очередном разряде частного нуль, приписываем справа к числу цифру очередного разряда делимого и повторяем сравнение и т. д.

На этом примере видно, что последовательность действий при делении "столбиком" зависит от логического условия – результата сравнения двух чисел.

Когда преобразование и обработка информации происходила в системах управления, соответствие этой обработки наперед заданному закону обеспечивалось наличием обратной связи. В электронных цифровых машинах обратная цифровая связь осуществлялась наличием сигнала со между АУ и УУ, а в более общем случае эквивалентом обратной связи нужно считать выполнение ряда логических условий.

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

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

Для получения одного и того же окончательного результата, например для извлечения квадратного корня из числа, могут быть применены различные последовательности элементарных действий – различные алгоритмы.

Для извлечения корня квадратного мы упоминали о двух: об обычном поразрядном извлечении корня и о нахождении корня методом уточнений или, как обычно называют его, методом последовательных приближений, который описан в этой брошюре на стр. 80 и который оказался удобнее для составления программы при вычислении корня на машине.

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

Теперь, введя понятие об информации и алгоритме, мы можем дать определение того, чем занимается кибернетика.

Кибернетика изучает общие для всех систем управления законы кодирования, передачи, хранения и переработки информации, составление и преобразование алгоритмов, производящих переработку информации, отвлекаясь от конкретных технических средств, при помощи которых это осуществляется.

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

Действительно, как работает нервная система? Внешняя информация (раздражения) воспринимается рецепторами (нервными окончаниями), перерабатывается в нервные импульсы, которые передаются по нервным волокнам в нервные центры. В нервных центрах происходит переработка этой информации и выработка ответной реакции.

Из этих примеров видна непосредственная связь кибернетики с теорией связи, лингвистикой, биологией, математической логикой, физиологией, генетикой.

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

Даже социальные законы в обществе могут быть описаны в форме алгоритма. На это еще указывал К. Маркс, собираясь выразить в виде формул[1] основные законы возникновения периодических кризисов в капиталистическом обществе. А это значит, что экономические и социальные законы могут быть машинизированы и исследованы при помощи машин. Эти положения были извращены буржуазной философией, в извращенном виде, раздуты, разрекламированы, к ним были подтасованы ложные положения, и все это было направлено на службу реакционной пропаганды.

Пропаганда, использующая понятия кибернетики, на Западе ведется по двум направлениям.

Первое направление: в области умственного труда машина во всем и полностью может заменить человека и даже превзойти его, поэтому скоро настанет век роботов, машина займет главенствующее положение. Классовая борьба должна отойти на задний план. Если рабочему и будет предоставлена возможность трудиться, то только из "человеколюбия" капиталиста, так как можно, мол, обойтись и без рабочего при помощи машин.

Второе направление: кибернетика, разработай способы замены умственного труда человека машиной, позволит с помощью машины открывать новые законы развития природы и общества, недоступные человеческому разуму. Следовательно, кибернетика – это наука наук. Передав управление производством кибернетическим машинам, можно в условиях капиталистического общества достигнуть бескризисного существования: кибернетика опровергает марксизм.

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

Чтобы ответить должным образом на приводимую буржуазную пропаганду, разберемся в этом вопросе по существу.

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

Провести четкую границу между тем, какие из процессов умственного труда поддаются машинизации, какие нет– нельзя. Но зато известно другое. Даже в математике – этой наиболее точной и строгой науке – имеются такие задачи, для решения которых нельзя вообще составить алгоритм. Это было доказано в последних работах советского математика П. С. Новикова. А раз существуют алгоритмически неразрешимые задачи, то, следовательно, не все задачи умственной деятельности могут быть решены реализацией их алгоритмов на машине.

Ясно, что машина не сможет полностью заменить человека в его умственном труде.

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

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

Законы развития человеческого общества открыты К. Марксом и являются объективными законами. Исследование в этой области, проводимое с помощью кибернетических машин, ничего не сможет изменить, подобно тому как никакими кибернетическими машинами не открыть перпетуум мобиле (вечный двигатель). Если правильно описать в виде алгоритма процесс производства в капиталистическом обществе и, введя его вместе с необходимой начальной информацией в машину, искать ответ, как добиться бескризисного существования, то машина даст ответ: надо ликвидировать производство на рынок исходя из закона стоимости, а планировать его в государственном масштабе, надо правильно распределять доходы между трудящимися. Но ведь такой ответ капиталистов не удовлетворит.

Нечто подобное произошло с американским ученым О. Смитом. Он описал капиталистическое производство в виде уравнений, составил для их решения электрическую модель и сколько ни бился, не мог получить для этих уравнений устойчивого (т. е. бескризисного) решения, не меняя условий, характеризующих капиталистический характер производства.

Следовательно, и здесь мы видим несостоятельность противопоставления кибернетики всем наукам и стремления при помощи кибернетики избавиться от противоречий капитализма.

Поэтому не надо путать кибернетику с теми идеалистическими задачами, которые при ее помощи безуспешно пытаются решить буржуазные экономисты и философы.

Кибернетика – наука, изучающая объективно существующие процессы, – материалистична в своей основе. Она занимает место среди других наук, взаимодействуя с ними, используя их достижения и продвигая их развитие своими достижениями.

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

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

Примечание

1. К. Маркс и Ф. Энгельс, Письма о «Капитале», М., 1948, стр. 192.

Глава из книги "Современные математические машины", М., 1959 г., стр. 104.
Перепечатывается с разрешения автора.