Автоматизация умственного труда
Источник: журнал «Техника – молодёжи», №11, 1961 год. Рассказывает академик Н. Г. БРУЕВИЧ.
Автоматизация в условиях строительства коммунизма открывает новую эру в развитии машинной техники.
Из доклада Н. С. Хрущёва на XXII съезде КПСС.
МАШИНА МОДЕЛИРУЕТ...
Несомненно, решение математических уравнений и вычисления по строго определённым правилам, приводящие к решению поставленной задачи, относятся к умственной деятельности человека. Система вычислений, выполняемых по таким правилам, называется алгоритмом решения задач. Существуют машины, которые решают уравнения и вычисляют значения различных функций очень быстро и с большой точностью. Особенно важно то обстоятельство, что машины могут решать и такие уравнения, которые человек без их помощи решить не в состоянии. Машины чрезвычайно расширили вычислительные возможности человека. Во многих технических задачах теперь удаётся получить ответ с помощью вычислений на машинах. Вычислительные машины позволяют освободить исследования от постановки некоторых опытов. С другой стороны, перед экспериментом можно ставить более глубокие задачи, состоящие в том. чтобы выяснить вопросы, которые нельзя определить вычислениями. Реальный эксперимент в натуре можно заменить экспериментом с помощью вычислительных машин.
Машины для вычислений обычно именуются математическими машинами. Одни из них можно построить, использовав физическую систему, в которой происходят процессы, описываемые уравнениями, подлежащими решению. Процессы могут быть самой различной природы: например, движение твёрдых тел, движение жидкостей и газов, различные электрические и магнитные явления. Эти машины известны под названием моделирующих машин. Раньше это были механические машины, сейчас же это главным образом машины электронные. За человеком остаётся проектирование и изготовление моделирующих машин, а также настройка их таким образом, чтобы в машине происходил процесс, описываемый уравнениями, которые предстоит решить и преобразованными к удобному для настройки виду. Эти уравнения называются машинными. Машины решают их быстро и с удовлетворительной точностью.
Моделирующие машины удобно использовать для испытаний различных автоматических устройств, в условиях, приближающихся к естественным. Например, автоматическое управление самолётами осуществляется специальными приборами, называемыми автопилотами. Конструкции новых автопилотов приходится испытывать на самолётах. Если автопилот недоработан и имеет дефекты, то при испытании в воздухе могут возникнуть ненормальности в полёте, и эти ненормальности может ликвидировать только весьма опытный и внимательный лётчик. Полётные испытания автопилота можно заменить его испытанием модели на моделирующей машине, которая будет настроена таким образом, чтобы оказывать на автопилот, соединённый с нею, то же воздействие, какое производит летящий самолёт на управляющий им автопилот. В результате удаётся осуществить более совершенную конструкцию автопилота.
«СЛУШАЕТ»...
(Здесь, похоже, ошибка, т.к. раздел «Слушает» есть ниже, а этот раздел должен называться «Решает» или что-то в этом роде – D.)
Другой класс математических машин создаётся на основе иного принципа. Дело заключается в том, что численные решения уравнений можно искать в виде определённой последовательности различных арифметических действий, выбранной согласно специальному разделу математики, известному под названием численных методов математического анализа. Решения уравнений в конечном счёте приводятся к последовательности арифметических операций, но для разных типов уравнений получаются разные последовательности. Важно то, что необходимо выполнять только арифметические действия в самых разнообразных последовательностях и в больших количествах. Математические машины, о которых мы сейчас ведём речь, предназначены для выполнения именно таких последовательностей арифметических вычислений. Таким образом, эти машины должны иметь устройство, выполняющее арифметические действия над числами (арифметическое устройство), устройство, управляющее осуществлением необходимой последовательности арифметических действий (устройство управления), устройство, хранящее заданные числа, результаты промежуточных вычислений и окончательные результаты (запоминающее устройство). Это будут основные устройства, или блоки, такой математической машины. Эти машины известны под названием цифровых математических, или вычислительных, машин. Они позволяют получать численные решения уравнений с большой скоростью, заданной точностью и способны решать самые разнообразные математические уравнения. За человеком остаётся проектирование и изготовление машин, выбор методов решения и составление последовательности выполнения арифметических действий для получения численного решения заданных уравнений. Последовательность называют программой вычисления. Конечно, использование математических машин целесообразно только в том случае, когда составление программы много-много легче, чем выполнение самих вычислений.
Цифровые вычислительные машины имеют устройства, облегчающие программирование. Дело заключается в том, что в программах не нужно записывать многократные повторения одних и тех же последовательностей арифметических действий: достаточно указать, сколько раз их нужно повторить. Программа может не указывать порядок вычислений. Взамен этого она может содержать указание о том, что при таких-то условиях дальнейшее вычисление должно пойти по такому-то пути, а при других условиях путь будет другой, определённый самой программой. В программу вычислений в качестве отдельных компонентов могут входить ранее составленные программы вычислений для решения других, более простых уравнений. Конечно, все это облегчает составление программ вычислений и делает программы более компактными.
Так или иначе, составление программы вычислений является важным трудом, отнимающим определённое время на подготовку машины к решению задачи. Очень заманчиво передать составление программы вычислений самой машине, указав при этом способ приведения решения уравнений к последовательности арифметических действий. Уже в течение ряда лет не без успеха делаются попытки составить программы, предназначенные не для вычисления на машинах, а для составления программ вычислений на машинах при решении разных задач.
«РАССУЖДАЕТ»...
Выполнение арифметических действий над числами в вычислительной машине сводится к осуществлению ряда операций математической логики. В математической логике рассматриваются переменные, имеющие только два значения – одно называют истинным, другое ложным, или одному значению соответствует слово «да», другому – «нет», или одному значению приписывают число «1», а другому – число «0». Такие переменные называют высказываниями. Для выполнения арифметических действий приходится осуществлять логическое сложение, умножение, отрицание и другие сложные функции этих операций. Логическая сумма нескольких высказываний равна единице, если хоть одно из высказываний слагаемых, или несколько слагаемых, или все слагаемые равны единице. В остальных случаях логическая сумма равна нулю. Логическое произведение двух высказываний равно единице, если оба высказывания-сомножителя равны единице, в остальных случаях логическое произведение равно нулю. Логическое отрицание высказывания равно единице, когда само высказывание равно нулю, и наоборот.
Таким образом, выполнение арифметических действий над числами показало, что вычислительные машины могут выполнять логические операции. Эти машины можно применять для решения разных логических задач, а не только для численного решения уравнений. Этим существенно расширяется область применения вычислительных машин.
УПРАВЛЯЕТ...
Мы только что отметили, что вычислительные машины производят вычисления по программам, введённым в машины человеком, а моделирующие машины настраиваются человеком.
Однако при автоматизации процессов управления, например, в сельском хозяйстве (посевы, уборка, транспортировка), в промышленности (при осуществлении технологических процессов изготовления деталей, сборке машин, при производстве материалов), в управлении народным хозяйством (при составлении планов, увязке их, регулировании выполнения и корректировке планов) трудно заранее выбрать задачи, с которыми в будущем придётся встретиться. В процессе управления трудно так сформулировать задачи и их программировать, чтобы это оказалось как раз то, что необходимо в ходе управления. Поэтому приходится затрачивать очень много труда на выбор и формулировку задач и составление программ для их машинного решения. Труд часто не удаётся широко использовать.
В чем же причина трудностей? Главное в том, что машина не приспосабливается к новым ситуациям так гибко и легко, как человек. В самом деле, сильные стороны человеческого мозга по сравнению с машинами состоят в том, что он способен одновременно обрабатывать большое количество данных, выбирая довольно правильно достоверные и существенные части и отбрасывая второстепенные, приходить к довольно правильным решениям на основе неполной информации. Человек способен менять поведение при изменившейся обстановке. Он знает, как делать индуктивные выводы. Все эти свойства можно кратко характеризовать словами – человек мыслит содержательно, а не формально. Расширение области применения вычислительных машин связано с заменой в какой-то мере содержательного мышления человека формально-логическим поведением машин.
Отсюда намечается путь лучшего приспособления вычислительных машин к задачам управления. Вычислительные машины будут более полезны и удобны в автоматизации управления, если их процессы не будут столь полно предписаны или, иначе говоря, детерминированы заранее, если перед ними можно будет ставить задачу, а они сами выберут подходящий путь решения и пройдут этот путь с надлежащей быстротой и точностью.
«СЛУШАЕТ»...
В процессе управлении возникают многие задачи, которые необходимо решать в ограниченное время. Это заставляет особенно серьёзно ставить вопрос о простоте ввода данных в машину и вывода результатов, или, иными словами, об организации связи между человеком и машиной. Можно осуществить связь с помощью человеческой речи и рисунков, набрасываемых человеком на бумаге и передаваемых в машину. Чтобы машина могла распознавать слова, используют так называемый «шаблон», который вводится в запоминающее устройство машины. Этот «шаблон» представляет собой спектрограмму звучания какого-либо слова, произнесённого оператором. Чтобы исключить ошибку из-за различных оттенков произношения слов, оператор повторяет их несколько раз. Затем в машину вводят печатный эквивалент произнесённого слова. В дальнейшем, когда оператор диктует задачу, машина при помощи специального устройства анализирует каждое «услышанное» слово, сравнивает с «шаблонами» и таким образом расшифровывает. Для придания смысла набору слов, введённому в машину, нужно ещё учесть окончания склоняемых и спрягаемых слов, грамматику фраз. Нужно записать в машине задачу специальным машинным кодом. Распознавание фраз гораздо сложнее распознавания отдельных слов. Создание связи на основе человеческой речи является трудной задачей, но её осуществление значительно повысит возможности применения вычислительных машин.
ПЕРЕВОДИТ...
С помощью программирования на вычислительных машинах можно решать задачи, относящиеся ко многим областям умственного труда человека, то есть машина принимает участие в интеллектуальной сфере деятельности человека. Такое применение вычислительных машин имеет большое значение для развития кибернетики.
Поучителен пример с автоматизацией перевода с одного языка на другой. Когда переводит человек, он хорошо понимает текст и хорошо знает язык и оригинала и перевода. Вполне понятно, что переводческая машина не в состоянии понимать значение слов и грамматических категорий обрабатываемого текста. Машинный перевод является интересной кибернетической задачей, ибо он должен предусматривать осуществление некой процедуры, равнозначной процессу «понимания».
Возможность перевода основана на том, что человеческие языки, различаясь структурой, грамматикой, лексикой (словарный состав языка), всё же имеют единый логический строй, иными словами, везде подлежащее есть подлежащее, сказуемое всюду остаётся сказуемым, дополнение – дополнением и т. д. Чтобы машины могли переводить текст, его необходимо закодировать чисто формальными символами, формально указать операции над кодом, подлежащие выполнению.
Исследования последних лет были направлены на то, чтобы увеличить часть работы при переводе, выполняемой автоматически, и тем самым свести к минимуму неавтоматическую работу. Для этого нужно специально подготавливать текст, добиваясь несложности его грамматической формы и сравнительно небольшого запаса слов. (Запас составляют из слов общего назначения и из набора слов, относящихся к соответствующей области науки или техники). Такой текст перед вводом в машину необходимо закодировать в цифровой форме.
Трудности стоят при разработке автоматического словаря переводческой машины как в части объёма словаря, так и содержания: нужно ли помещать в словаре целые слова или их основы, что должно быть указано о суффиксах и префиксах и т. д.
Практическое значение машинный перевод будет иметь в первую очередь для обработки научных, технических, медицинских и других специализированных текстов, так как в текстах, относящихся к этим областям знания, используется сравнительно немногочисленный запас слов и употребляются несложные грамматические формы. С такими текстами можно и не проводить никакой специальной подготовки к переводу.
ИНФОРМИРУЕТ...
Интересны и информационные машины. Их задача состоит в том, чтобы накапливать и хранить информацию и выдавать различные справки. Материал в машину нужно помещать согласно классификациям, отработанным самым тщательным образом чётко по различным областям знания. Наиболее трудными и важными будут ответы на вопросы – в каких книгах и статьях имеется рассмотрение поставленного вопроса, не менее трудно получение соответствующих извлечений и цитат. Эта трудность связана с тем, что машина не понимает хранимого текста, не способна делать выборки по существу. Хранимую информацию приходится кодировать посредством небольшого числа основных понятии, через которые выражаются все остальные. Вопрос, на который должна ответить машина, кодируется таким же образом. Для выдачи ответа машине нужно сравнить ход вопроса с хранимыми кодами.
Такова идея организации получения ответов на поставленные вопросы.
ПРОГРАММИРУЕТ...
Для решения различных задач в последние годы разрабатываются программы, не являющиеся вполне детерминированными, то есть не указывающие определённый путь решения задачи. Учёные пробуют составить программы, в которых предусматривается некая система поиска, основанная на так называемых догадках. Отсюда идёт название этих программ – эвристические (поисковые по наводящим вопросам).
Привлекательная сторона этих программ в том, что с их помощью в вычислительные машины можно вводить разнообразные задачи из обширных областей знаний, строго очерченных. Машины будут задачи анализировать, решать и выдавать результаты. Иными словами, можно не ограничиваться постановкой задач, заранее предвиденных и проработанных.
Важным достижением является создание эвристической программы для доказательства вычислительной машиной различных теорем геометрии. В программу входит алгоритм, называемый «схемой» и предназначенный для координатного представления условий теоремы и промежуточных результатов. Алгоритм может выполнять ряд операций по качественному описанию «схем», в программу также входит алгоритм по логическому анализу задачи. С помощью этой программы было решено много задач геометрии, включая и такие, которые для человека были бы, несомненно, трудны, если бы ему не разрешалось применять другие геометрические понятия и исходные теоремы, кроме использованных в программе.
Составление программ для решения интеллектуальных проблем в области управления промышленностью, технологическими процессами производства более трудно, чем разработка программ в области геометрии, где формализация гораздо значительнее.
«ОБУЧАЕТСЯ»...
Важно отметить, что на обучение машин удобно смотреть, как на особую форму программирования некоторых задач. Что же надлежит предусмотреть в вычислительной машине, чтобы был возможен процесс обучения? При обучении поведение машины не может быть строго определённым, так как иначе машина или может выполнять до обучения то, чему её учат, или результаты обучения будут противоречить заложенной в машине программе и, следовательно, не будут использованы. Обучение возможно при существовании в режиме машины некоторой неопределённости, которая ликвидируется в процессе обучения.
Условия обучения, промежуточные этапы и результат необходимо записывать в запоминающем устройстве машины в упорядоченной форме. Эта запись будет программой решения задач, совпадающих с теми, которым машина научена, или задач, логически связанных с заученными.
Правильность процесса, происходящего в машине при обучении, и достоверность записи в «памяти» оцениваются самой машиной по критерию, введённому в неё человеком. Может быть и по-другому: вычислительная машина сообщает данные другой машине или человеку и получает от них указания о том, справедлив ли полученный результат.
Упорядочение записи в машинной «памяти» подразумевает запись по адресам, которые позволяют легко находить нужные сведения и пользоваться ими при повторном решении выученных задач.
Например, в последние годы была предложена машина, отыскивающая выход из лабиринта, так называемая «мышь». «Мышь», приводимая в движение мотором, двигалась по лабиринту, возвращалась обратно, если попадала в тупик, отыскивала новые боковые проходы, обследовала их и в случае нового тупика снова возвращалась. Так продолжалось, пока не был найден выход из лабиринта. Вспомним греческий миф о Тесее, попавшем в лабиринт. Он нашёл выход с помощью клубка ниток, который позволил ему систематически обследовать все проходы и добраться до выхода. Запись пройденного «мышью» пути в «памяти» машины и адресная система записи играют в ней ту же роль, что клубок ниток у древнего героя.
Конечно, запоминающее устройство вычислительной машины резко отличается от естественной памяти человека или животного; «запоминание» машины есть запись информации. Для этого достаточно одного упражнения, повторения излишни. Естественная же память требует длительной тренировки.