«Квант» — научно-популярный физико-математический журнал (издаётся с 1970 года)
Старый сайт журнала: kvant.ras.ru

Что умеют машиныГутер Р. С. Что умеют машины // Квант. — 1970. — № 5. — С. 2‍—‍9.

Текст статьи Гутер Р. С. Что умеют машины // Квант. — 1970. — № 5. — С. 2—9.

Вставить иллюстрации В комментарии дать ссылки https://tcheb.ru/arithmometer-first-model/ https://tcheb.ru/arithmometer-second-model/ 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Использование электромотора позволило заменить ручные арифмометры полуавтоматическими и автоматическими клавишными вычислительными машинами. У нас, например, очень широкое распространение получили автоматические клавишные машины BMM-2, которые выпускались до недавнего времени.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Метаданные Гутер Р. С. Что умеют машины // Квант. — 1970. — № 5. — С. 2—9.

Авторы
Заглавие
Что умеют машины
Год
1970
Номер
5
Страницы
2—9
Рубрика
Описание
Гутер Р. С. Что умеют машины // Квант. — 1970. — № 5. — С. 2‍—‍9.
Ссылка
https://www.kvant.digital/issues/1970/5/guter-chto_umeyut_mashinyi-45262bf4/