Квант

2


running_head:
folio:

Р. С. ГУТЕР
ЧТО
УМЕНОТ
МАШИНЫ

Разным временам — разные ма-
шины, у разных машин—разные
возможности. По-видимому, первый

3

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

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

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

Читатель должно быть уже договора, что реч иidet об электронных вычислительных машинах, этом «объикновенном учете» наших дней.

Мыслю о создании «думающих машин» возникла у людей достаточно давно. Ее высказывали и пытались в какой-то мере осуществить испанский монах Раймон Люллий (XIII век н. э.), французский ученый Блез Паскаль (1623—1662), великий немецкий математик и философ Готтфрид Вильгельм Лейбниц (1646—1716). Оdnako в те времена эти попытки не были и не могли быть удачными.

Не прошли эти мысли и много писателей. Вспомните замечатель-ного английского сатирика Джонатана Свифта (1667—1745) и путешествие Гулливера на Лапуту. В числе носителей различных ией, псевдонаучных и подлежащих осмеянию с точки зрения автора*), читатель встретил и некоето профессора, работавшего «…над проектом, цель которого заключается в усовершении умозрительного знания при помощи технических и механических операций… С помощью его изобретения самый нежежственный человек, произведя небольшие издержки и затратив немного физических усилий, может писать книги по философии, позиции, политике, праву, математике и богословию при полном отсутствии эрудиц и таланта**).

Любопытно, что рисунок, который сопровождает описываемый Свифтом «станок», удивительно на

*) Впрочем, несколько лет назад журнал «Техника — молодежи» сделал выборку из этой главы «Путешествия Гулливера». В выборке приводится немало число ией, осмеявшихся Свифтом, но наведших применение в наших годы, вплоть до «постройки домов, начиная с крыши», успешно применяющейся сейчас ленинградскими домостроительными комбинатами.

**) Дж. Св и фт, Путешествия в некооторные отделные страны света Лемюзия Гулливера, сначала хирурга, а потом капитана нескольких кораблей, ГИХЛ, М., 1967, стр. 217.

4

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

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

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

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

В 1874 году русский инженер В. Т. Однер изобрел и построил аррифометр, в котором для изображения чисел использующий шестерни с переменным числом зубцов. В 1878 году великий русский математик П. Л. Чебышев (1821—1894) изобрел аррифометр с непрерывным механизмом перенаса из разряда в разряд. В 1891 году началось промышленное производство аррифометров Однера. Об удачности этой конструкции свидетельствует хотя бы тот факт, что производство ручных аррифометров «Феликс», прициппально неотличиях от аррифометров Однера, лишь в середине пятыдесятых годов было заменено выпуском электронеханических аррифометров.

Широкое распространение получила также суммирующая машина

5

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

Другую линию в развитии математических машин представляют так называемые машины непрерывного действия или аналоговые машины. Первыми их представлениями были всем известная логарифмическая линейка и различных планметры и логиметры, предназначенные для нахождения плоских областей и длины плоских кривых. В конце XIX и начале XX века были сконструированы непрерывные машины для выполнения операций дифференцирования и интерровирования. В 1912 году великий русский ученый, математик и кораблестритель А. Н. Крылов (1863—1945) сконструировал машины для решения дифференциальных уравнений. Все они были основаны на механических элементах. С развитием электротехники и электрокики аналоговые машины, построенные с широким использованием электрических и электронных элементов получили очень большое распространение.

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

Для электронных вычислительных machines, существующих две основ-

6

ные характеристики — скорость выполнения арифметических операций и объем памяти. Первые советские электронные вычислительные машины БЭСМ, М-2, Стрела, Ураль имели скорость 200—2000 арифметических операций в секунду и объем памяти 1024—2048 ячеек. Эти машины были ламповыми и имели по несколько тысяч электронных ламп каждая.

Ниболье распространяли машина конца шестидесятных годов является БЭСМ-4, М-220, Минск-22, Раздан-3 со скоростями около 25 000 арифметических операций в секунду и объемом оперативной памяти 8192—32 768 ячеек. Машина БЭСМ-6 при оперативной памяти 32 768 ячеек имеет уже скорость до миллиона арифметических операций в секунду. В этих машинах электронные лампы уже полностью заменены полупроводниковыми элементами (транзисторами), имеющими значительное меньший объем и требующими значительное меньшей мощности.

Применение трансисторов позволило создать малогабаритные настольные электронные клавишные машины, заменяющие электромеханические. Они отличятся большой скоростью и полной безшумность, что очень важно для больших вычислительных laboratorий. Поэтому настольные клавишные электронные машины начинают вытеснять электромеханические. Широкую популярность завоевали у нас машины «Вятка», «Искра», «Орбита» и некоторые другие.

Первые же успехи в создании вычислительных машин позволили использовать их и для новых специальных задач различного рода.

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

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

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

7

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

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

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

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

Представим себе два языка, состоящие из одинакового количества слов, которые не изменяются при склонении или спряжении и все являются значениями (в русском языке практические все слова являются значениями; например, в других европейских языках имеется ряд службных слов, не имеющих самостоятельного значения. К ним относятся, например, der или ein в значении артикля в немецком языке, the — в английском и т.п.). Предположим далее, что каждое слово одного языка имеет точно один перевод на другой язык. В математических терминах это означает, что между словами двух рассматриваемых языков существует взаимно однозначное соответствие.

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

Достаточно вести в машину словарь. Это можно сделать, например, таким косвенным путем. Занутерум с слова первого языка каким-либо способом, например по алфавиту. Слова же второго языка занутерум теми же номерами так, чтобы соответствующие друг друг слова двух языков имели один и тот же номер. Теперь остается сделать программу, с помощью которой машина могла бы по введенному слову первого языка находить его номер, затем по номеру — соответствующей слову второго языка, и выдавать его на печать. Тем самым программа перевода будет создана.

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

  1. проанализировать введенное предложение синтаксически, определить подлежащее, сказуемое и

8

Второстепенные члены предложения и выязывать их характер;

  1. исследовать каждое слово, выделить его корень и найти основную форму (именительный падеж единственного числа для существительного и т.п.);

  2. после перевода каждого слова на другой язык с помощью словааря расставить слова другого языка в переведенном предложении в нужном порядке;

  3. изменить каждое слово в соответствии с нужной форму (число, падеж и т.п. или другие граматические формы в зависимости от части речи).

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

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

Прежде всего, в каждом языке имеются ономимы — так называются слова, имеющие несколько различных значений. Например, русское слово «коса» может иметь четыре различных значения: коса может быть острая, русая или песчаная или может быть кратким прилагательным (от «косая»). Ясно, что переводить каждое слово в отдельности здесь уже не удается, да и словарь придает страна по сложнее, чем было описано выше; простой нумерацией слов здесь не обойдётся.

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

К этому можно добавить, что и анализ слов по частям речи может встречаться с необходимыми трудностями. Например, никто из читателей, видимо, не усомнился в том, что «стекло» есть имя существительное среднего рода, стоящее в именительном падеже …до тех пор, пока не встретился с фразой, в которой оно предательски обращится в глагол. Такой фразой может быть, например, следующая: «Масло разлилось по столу и ручейком стекло на пол». Здесь снова при рассмотрении одного слова приходимся прилекать другие.

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

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

9

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

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

На международном симposiumе по эвристическому программированию в февраля 1967 года американский математик Г. Гелернтер расскажал о составлении им программы для документата теорем элементарной геометрии. Работая по этой программе, машина документа

ла теорему, справедливо которой программисту ранее была неизвестна.

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

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

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