/
Текст
Т НИБЕРНЕТИНП ••
Н.А.КРИНИЦКИЙ
АЛГОРИТМЫ
И РОБОТЫ
Настоящая серия печатается по рекомендации
IX Международного Совещания руководителей
научно-технических издательств социалистических
стран (июнь 1975 г.).
В серии участвуют:
Издательство «Радио и связь» (СССР)
Издательство технической литературы (ВНР)
Издательство «Техника» НДР)
Издательство научно-технической литературы
(ЧССР)
• КИБЕРНЕТИКА»
Н.А. КРИНИЦКИЙ
АЛГОРИТМЫ
И РОБОТЫ
Е
МОСКВА
«РАДИО И СВЯЗЬ» 1983
ББК 32.816
К82
УЖ 007. 52
Криницкий Н. А.
К82 Алгоритмы и роботы. — М.: Радио и связь, 1983. - 168с.,ил. -
(Кибернетика).
55 к.
Изложены теория, принцип действия и методы логического проек-
тирования широкого класса роботов, называемых дискретными. Жи-
вой и увлекательный стиль книги сочетается с глубиной освещения
теоретических и технических вопросов.
Для широкого круга специалистов.
К
1502000000*082
046 (01) - 83
107-83
ББК 32.816
6Ф0.1
Рецензенты: доктор техн, наук проф. Г. А. Миронов и доктор техн, наук проф.
Г. Д. Ф р о л о в
Редакция литературы по кибернетике и вычислительной технике
© Издательство ’’Радио и связь”, 1983.
ПРЕДИСЛОВИЕ
Робототехника и роботология сейчас только зарождаются. Робо-
ты уже есть, их уже делают, они уже ’’пришли”. Все большее число роботов
’’трудится” на производстве, выполняет задания ученых в таких условиях,
в которых пребывание человека невозможно (в зонах высокой радиации,
на дне океана, на других планетах), но ни в одной научной книге (даже та-
кой, как [10]) я не нашел точного определения: что такое робот. Очевидно
поэтому теория роботов состоит из несвязанных между собой ’’кусков”, их
проектирование похоже на изобретательство, а изготовление во многом яв-
ляется искусством. Впрочем, изготовив один образец, иногда его повторяют
в нескольких экземплярах.
Многие и теперь еще думают, что робот — это по внешнему виду похожее
на человека устройство, которое может выполнять его работу. Даже в ’’Эн-
циклопедии кибернетики” [17] характерной чертой робота считается антро-
поморфизм, хотя бы в смысле поведения. Такой взгляд слишком узок. Поэ-
тому работу над книгой я начал с ознакомления с литературой по этому воп-
росу. Пришлось проанализировать большой по объему описательный мате-
риал, и я был вознагражден. Выяснилось, что основным отличием автомата-
робота от автомата не робота является присущее первому свойство адаптив-
ности, свойство целесообразно изменять поведение при изменении ближней
внешней среды.
Вместо точки зрения на робота как на многоцелевой автомат, вместо его
анализа путем ’’продольных разрезов” и синтеза из одноцелевых автоматов
нами принята точка зрения на робот как на единую систему управления,
анализ которой производится ’’поперечными разрезами” При этом вырисо-
вываются компоненты робота, среди которых главным оказывается преоб-
разователь информации. Этому компоненту и посвящена данная книга. Из-
лагая материал, я исходил из убеждения, что описательный период науки о
роботах уже окончен.
Наш подход не отвергает и многоцелевости робота, не исключает из рас-
смотрения и роботы, являющиеся объединениями одноцелевых автоматов,
допускает и возможность того, что основные компоненты робота являются
распределенными или частично совмещенными. Если выразить это одним
3
словом — он является общим, кибернетическим, охватывает все ро-
боты.
Наряду с общностью в понимании сущности робота принимаем и одно ог-
раничение: рассматриваем только дискретные роботы, которые наиболее ин-
тересны. Именно для них уже намечаются пути к такой* ’’вершине”, как ис-
кусственный интеллект.
В наиболее элементарной форме изложены основные понятия кибернети-
ки. Неизбежно более сложными являются главы, посвященные аналитичес-
кой теории алгоритмов, представляющей фундамент, на котором основана
структура преобразователя информации. В дискретном роботе он принимает
форму аппаратно-программной реализации коллектива алгоритмов. Заклю-
чительные главы не вызовут затруднений у читателя. Я надеюсь, что читатель
признает содержащиеся в них утверждения достаточно обоснованными мате-
риалом предыдущих глав. В общем же, для понимания этой книги не требу-
ется никакой специальной подготовки.
Глава 1
ЧТО ТАКОЕ РОБОТ?
. Помещение, не очень большое, было обставлено как гости-
ная. . В кресле, спиной к окну, скрестив ноги и облокотись на драгоценный
столик, сидел, откинув голову, молодой человек, одетый как модная кар-
тинка. .. Это был точь-в-точь манекен из витрины. Мы все стали против него.
— Ксаверий! — произнес Ганувер. — Позволь рассказать твою историю!
— Мне все равно, - ответила кукла. — Я — механизм.
Впечатление было удручающее и сказочное...
— Ксаверий, чувствуешь ли ты что-нибудь?
Все побледнели при этом вопросе, ожидая, может быть, потрясающего
”да” ... Автомат кивнул головой и скоро проговорил:
- Я - Ксаверий, ничего не чувствую, потому что ты говоришь сам с собой.
— Вот ответ, достойный живого человека! — заметил Галуэй. — Что, что в
этом болване? Как он устроен?
— Не знаю, — сказал Ганувер, — мне объясняли . . но я мало что понял.
Принцип стенографии, радий, логическая система, разработанная с помощью
чувствительных цифр. Чтобы вызвать слова, необходимо при обращении
произносить ’’Ксаверий”, иначе он молчит”.
Эти отрывки взяты из романа Александра Грина ’’Золотая цепь”, впервые
напечатанного в 1925 г. Ксаверий называет себя механизмом. Грин называет
его автоматом. Чем он является? Может быть, роботом?
Слово ’’робот” в первый раз, во всяком случае для широкой публики,
прозвучало 21 января 1921 г. в Пражском национальном театре во время
премьеры пьесы Карела Чапека ’’R.U.R”. С тех пор оно стало широко извест-
ным и вошло во многие языки мира. Писатель назвал так искусственного че-
ловека, созданного для того, чтобы заменить в капиталистическом произ-
водстве рабочего. Таких ’’людей” пока нет и неизвестно, будут ли они, но
роботы (в новом смысле слова) существуют.
Какая же разница между понятиями механизма, автомата и робота? Эти
слова часто мелькают на страницах газет и журналов и не реже звучат в радио-
5
и телевизионных передачах. Мы все их понимаем, но одинаково ли? И точно
ли? Совершенно ясно, что то туманное их значение, которое мы усвоили,
пользуясь столь широкими и неопределенными источниками, нужно уточнить,
прежде чем Дриступить к изложению науки о роботах.
Начнем с разъясняющих примеров, не придерживаясь при этом историчес-
кой последовательности, а лишь стараясь переходить от более простого к
более сложному.
1.1. ПРИСПОСОБЛЕНИЯ, УСИЛИВАЮЩИЕ ФУНКЦИИ ВНЕШНИХ ОРГАНОВ
ЧЕЛОВЕКА
Внешними называют те органы человека, которыми он непосредственно
взаимодействует с внешней средой. Их можно объединить в три группы:
1) органы чувств, иначе называемыерецепторами (глаза, уши, слизистые обо-
лочки рта и носа, кожа) ; 2) активные органы, или эффекторы t которыми
человек воздействует на внешнюю среду (руки, ноги, даже голова, голосо-
вые связки, зубы, ногти, если ими царапают); 3) изолирующие органы, за-
щищающие организм от недопустимых воздействий внешней среды, их мож-
но назвать изоляторами (кожа, обеспечивающая механическую защиту, сли-
зистые оболочки рта, глаз, носа; ресниц и брови, защищающие глаза и др.).
Некоторые органы одновременно относятся к двум группам. Например, ко-
жа является и изолятором и рецептором; ногти являются и изолятором и
эффектором.
Для усиления функций своих внешних органов наши предки стали поль-
зоваться различными предметами, а затем научились их изготовлять. Будем
называть такие предметы приспособлениями. Вероятно, первыми приспособ-
лениями были подходящие по форме и размерам палки, кости крупных
животных и камни. С помощью палки можно было достать плод, до кото-
рого не удавалось дотянуться руками или ногами, ударить врага или пора-
зить животное, являющееся объектом охоты. Камнем можно было разбить
орех или мозговую кость. Тяжелые палки и камни были также аккумуля-
торами энергии, позволяющими постепенно накопить ее (медленно под-
нимая палку или камень) и быстро ее высвободить (нанеся удар); с их по-
мощью можно было действовать на расстоянии (метнув палку или камень).
С помощью палки можно было усиливать действие не только эффекто-
ров, но и рецепторов (органов чувств), например, нащупывая ею дно при
переходе через болото. Были придуманы человеком и приспособления, уси-
ливающие функции изоляторов. Среди них одним из первых была, вероятно,
шкура, снятая с какого-нибудь животного, родоначальница появившихся в
результате длительного прогресса одежды и обуви.
6
Прошли тысячелетия, и число видов приспособлений стало необозримым.
Возрасли сложность и совершенство самих приспособлений. Некоторые из
них все же и теперь являются всего навсего усилителями функций внешних
органов. Экскаватор, как и лопата, усиливает функцию человеческой руки
(копает). Сложный телескоп, как и электронный микроскоп, усиливают
функцию зрения. Рупор и появившийся позже мегафон усиливают функцию
голосовых связок. Но появились приспособления и другого характера: не
усиливающие, а выполняющие новые функции. Например, счетчик Гейгера
можно считать искусственным рецептором нового вида, позволяющим ’’ощу-
щать” присутствие в окружающей среде радиоактивных веществ; часы —
искусственным рецептором, ’’ощущающим” течение времени. Человек с ча-
сами на руке - это человек с дополнительным чувствительным органом и
соответственно с дополнительным (’’шестым”1) чувством. И все же не та-
кие приспособления представляют для нас особый интерес. Автоматы — вот
на чем следует сосредоточить внимание.
Однако, прежде чем перейти к рассмотрению автоматов, ответим на один
из вопросов, поставленных в начале данной главы: что такое механизм? Ме-
ханизмами называют приспособления, действия которых сводятся к процес-
сам, изучаемым в разделе физики, известном под названием механики.
Механика изучает движение физических тел и их действие друг на друга,
проявляющееся в виде сил. Палка, топор, копье, рычаг, часы - песочные, ги-
ревые, пружинные и даже часы со звоном — все это механизмы. Удар — это
кратковременное действие достаточно большой силы.
Из приведенных примеров видно, что термин ’’механизм” применяют не
очень строго. Ведь часы с боем, кроме механических действий, осуществляют
и акустический эффект: издают звук (’’тиканье” представляет собой побоч-
ный эффект и не является функцией часов; это шум механизма). А вот
солнечные часы уже не являются механизмом. Их ’’механическая сущность”
заключается в том, что их циферблат и стержень, отбрасывающий тень, непод-
вижны относительно Земли и вместе с ней движутся вокруг ее оси. Чтобы
признать их механизмам, нужно земной шар считать их составной частью.
Этого обычно не делают. Электронные часы тоже не считают механизмом
(как и радиоприемник или телевизор). Таким образом, различные приспо-
собления бывают механизмами, но бывают и не механизмами: это относится,
как мы увидим, и к автоматам и даже к роботам. С точки зрения теории
роботов, что являемся механизмом, а что им не является — это несуществен-
1 Принято говорить, что человек обладает пятью чувствами: зрением, слухом, осяза-
нием, обонянием и чувством вкуса. В действительности чувств больше: есть чувство
температуры окружающей среды, чувство равновесия, чувство взаимного расположения
частей тела и др.
7
ная деталь. Что же касается Ксаверия (описанногоу Грина), то, по-видимо-
му, лишь некоторые его части могут быть названы механизмами.
1.2. АВТОМАТЫ
Чтобы лучше уяснить сущность автомата, попытаемся представить себе
те пути, которыми шел (да и в настоящее время идет) прогресс приспособле-
ний. Один из путей (назовем его эвристическим) — это путь изобретений и
находок. Вероятно, на самых ранних стадиях развития человечества он был
основным. Кто-то замечает, что некоторый предмет при наличии у него неко-
торых особенностей чем-то полезен в определенных условиях. Так появляет-
ся новое приспособление, постепенно получающее распространение. Второй
путь - вытеснение более совершенными приспособлениями менее совершен-
ных, но эквивалентных им по своим функциям. Третий путь назовем техно-
логическим. Его сущность — внесение мелких изменений, постепенно улуч-
шающих приспособление. И, наконец, четвертый путь - конструктивный..
Этот путь для нас наиболее интересен. Сущность его в том, что новые приспо-
собления создаются как определенные комбинации уже известных. При этом
некоторые элементы исходных приспособлений иногда совмещаются. Комби-
нирование может быть параллельным и последовательным.
Проиллюстрируем сказанное примерами. Допустим, что первобытный
’’изобретатель” заметил, что палкой можно извлекать из почвы съедобные
корни и что это легче, чем непосредственно руками. Тут он шел по эври-
стическому пути. Постепенно палка как средство производства (приспособ-
ление для копания земли) получает распространение среди современников
’’изобретателя”. Но вот некто случайно сломал конец палки, и оказалось, что
она копает лучше. Это — опять шаг по эвристическому пути. Но теперь кон-
цы палок начинают умышленно отламывать. Палки с отломанными конца-
ми постепенно вытесняют своих предшественников. Это — движение по пути
вытеснения. Дальше прогресс идет по технологическому пути и заключается
в постепенном изменении формы излома и характера затачивания.
Конструктивный путь прогресса поясним другими примерами. Наиболее
простыми являются конструкции, в которых уже известные приспособления
включены ’’параллельно”. В древности такой конструкцией был каменный
топор с деревянной рукояткой, объединявший в себе палку (увеличивав-
шую длину руки) и камень (аккумулятор энергии, увеличивавший силу уда-
ра) . В более позднее время аналогичным ’’комбайном” стала алебарда, в ко-
торой соединены копье и топор. При этом древко копья и рукоятка топора
совмещены. В новейшее время примером подобной конструкции являются
известные домашним хозяйкам универсальные кухонные машины, объеди-
8
няющие в себе мясорубку, овощерезку, соковыжималку, кофейную мель-
ницу, миксер, картофелечистку и агрегат для мытья посуды. Некоторые
элементы перечисленных приспособлений совмещены.
Наиболее интересен способ получения новых приспособлений, заключаю-
щийся в их последовательном соединении. Этот способ часто приводит к
приспособлениям, обладающим новыми свойствами, не присущими исход-
ным. Например, блок (состоящий из обоймы и ролика) позволяет изменять
направление силы (поднимать груз вверх с помощью силы, направленной
вниз); последовательное соединение нескольких блоков — полиспаст -
кроме того, позволяет увеличивать силу, подобно тому, как это делает ры-
чаг. Если в составе приспособления-эффектора имеется аккумулятор
энергии, то, присоединив его к искусственному чувствительному органу,
можно получить устройство, действующее без непосредственного участия
человека!
Примером подобного устройства является обычная мышеловка-капкан.
Чувствительным органом в ней является легкий крючок, одним концом
удерживающий взведенную пружину (аккумулятор энергии), а на другом
конце несущий приманку. Стоит мыши потянуть приманку, и крючок осво-
бождает пружину, захлопывающую капкан. Подобные конструкции и назы-
ваются автоматами. Необходимыми составными частями автомата являют-
ся искусственные рецептор и эффектор. В настоящее время известно огром-
ное число автоматов, принципы действия которых весьма разнообразны.
Автоматом является терморегулятор обычного бытового компрессор-
ного холодильника. Искусственным рецептором в нем служит биметалли-
ческая планка (стержень), состоящая из двух слоев, неодинаково удлиняю-
щихся (или укорачивающихся) при изменении температуры, и поэтому из-
меняющая свою кривизну. Эта же планка является частью эффектора — од-
ним из контактов выключателя электрического тока, приводящего в дейст-
вие компрессор. Когда в результате остановки компрессора температура в
холодильнике поднимается, кривизна планки изменится в обратном направ-
лении и произойдет включение тока, питающего компрессор. Этот автомат
замечателен тем, что обладает ’’многоразовым” действием, благодаря тому,
что вместо аккумулятора имеет источник энергии, которая поступает в него
в вице колебаний температуры.
Чем же замечательны автоматы как приспособления, применяемые чело-
веком? Прежде всего тем, что кроме функций внешних органов человека
они выполняют некоторые функции его нервной системы! Например, все
приведенные автоматы выполняют функцию активного внимания. Для того
чтобы привести в действие их эффекторы, человек должен был бы ожидать
соответствующего сигнала от рецептора. Вторая особенность автоматов
9
является следствием первой — они действуют без непосредственного участия
человека.
В некоторых случаях внешняя среда может непосредственно влиять на
эффектор, вызывая срабатывание автомата без участия рецептора. Чтобы ис-
ключить такую возможность, те части автомата, которые восприимчимы к
нежелательным воздействиям внешней среды, защищают. Таким образом,
появляется третий элемент автомата - изолятор. Для того чтобы не разде-
лять всегда автоматы на два класса (с изолятором и без изолятора), будем
считать- отсутствие изолятора частным случаем его наличия (в котором изо-
лятор обладает ’’нулевым” действием).
Итак, внешне автомат выглядит как устройство, содержащее искусст-
венные рецепторы, изоляторы и эффекторы, причем действие рецепторов,
возникающее под влиянием внешней среды, вызывает действие (в простей-
шем случае - срабатывание) эффекторов.
1.3. ВНЕШНЯЯ ОБРАТНАЯ СВЯЗЬ
тором.
Особый интерес представляют автоматы с внешней обратной связью.
Это должны быть автоматы многоразового действия. Присущая им внешняя
обратная связь проявляется в том, что вызываемые их эффекторами измене-
ния внешней среды воспринимаются их рецепторами и влияют на дальнейшие
действия эффекторов. Внешней обратной связью могут обладать автоматы,
влияющие на те свойства среды, которые воспринимаются их чувствительны-
ми органами.
Однако не нужно думать, что параметр внешней среды, воспринимаемый
рецептором, должен быть тем же самым, что и параметр, изменяемый эффек-
Простейшим примером автомата с внеш-
ней обратной связью является поплавковый
регулятор уровня жидкости. Он представ-
ляет собой рычаг, имеющий в некоторой
средней точке шарнир (опору), на одном
конце - поплавок, на другом - привод кла-
пана, закрывающего трубу, подающую жид-
кость при всплывании поплавка, и откры-
вающего ее, если поплавок опускается вниз.
Схема поплавкового регулятора приведена
на рис. 1.1. Если уровень жидкости падает,
поплавок опускается вниз и шире открыва-
ет клапан. Это увеличивает приток жидкости.
Рис, 1.1. Схема поплавкового ре- Повышение ее уровня воспринимается авто-
гулятора уровня жидкости матом и вызывает постепенное закрывание
10
клапана. Таким образом, регулятор поддерживает уровень жидкости, почти
неизменный при определенной интенсивности ее расхода. Чувствительным
органом является поплавок, эффектором - клапан.
Уже в этом простом примере рецептором воспринимается уровень жид-
кости, а эффектор действует на величину потока, поступающего в резервуар.
Уровень жидкости и величина потока не являются одним и тем же парамет-
ром, но, как мы видим, обратная связь возникает. Дело в том, что между
этими двумя параметрами существует зависимость.
Конечно, возможен и такой случай, в котором эффектор действует на тот
же самый параметр, который воспринимается рецептором. В следующем па-
раграфе мы разберем пример именно такого автомата с внешней обратной
связью.
Сразу нужно подчеркнуть, что внешняя обратная связь возникает при су-
ществовании особого соответствия между автоматом и внешней средой. Это
соответствие называется их конформностью по отношению друг к другу.
Известны автоматы многоразового (вернее, длящегося) действия, не кон-
формные своей среде. Например, таким будет фрезерный станок с контур-
ным управлением для дублирования дверных ключей. Если в станок вста-
вить болванку и ключ, подлежащий дублированию, и включить станок, то
он будет своим рецептором (специальным рычагом) скользить по ключу,
’’ощупывая” его, а своим эффектором (фрезой) вырезать дубликат ключа из
болванки. Ключ и болванка составляют внешнюю среду. Однако, если меха-
низм станка слегка разрегулируется, то станок будет изготовлять негодный
дубликат, не реагируя на это.
О конформности среды и автомата мы подробнее будем говорить в гл. 9, а
пока что предположим, что во всех рассматриваемых случаях она су-
ществует.
Заметим еще, что автомат с внешней обратной связью может быть (при
конструировании еще более сложного автомата) таким образом включен в
его состав, что другие части более сложного автомата окажутся для него
внешней средой. При этом внешняя обратная связь более простого автомата
по отношению к более сложному автомату будет внутренней обратной
связью. Внутренними обратными связями сложного автомата называются
внешние обратные связи более простых автоматов, входящих в его состав,
по отношению к которым внешней средой являются другие элементы слож-
ного автомата.
1.4. ИНФОРМАЦИЯ. КАНАЛ СВЯЗИ
Итак, автомат изолирован от внешней среды (за исключением его чувст-
вительных органов - рецепторов). Под влиянием внешней среды в чувстви-
11
тельном органе происходят изменения, соответствующие этому влиянию.
Тем или иным способом они передаются эффекторам и здесь преобразуются
в их воздействия на внешнюю среду. Тот внутренний элемент автомата, с
помощью которого происходит описанная передача изменений, называется
каналом связи, а сама передача изменений - передачей информации. В по-
плавковом регуляторе уровня жидкости каналом связи является сам рычаг,
и передача информации выражается в его перемещениях (повороте). При из-
менении уровня жидкости чувствительный орган (поплавок) вызывает по-
ворот рычага. В свою очередь, поворот рычага вызывает открывание или за-
крывание клапана (действие эффектора). Канал связи в данном случае сое-
диняет рецептор с эффектором, и информация передается от рецептора эф-
фектору.
Мы видим, что соединение рецепторов и эффекторов в систему, представ-
ляющую собой автомат, приводит к тому, что в автомате образуется внут-
ренний его орган: канал связи. Изменения, передаваемые по каналу связи,
зарождаются в чувствительном органе в соответствии с состоянием внешней
среды. Их называют сигналами, несущими информацию.Информацией называ-
ют ту ’’картину” внешней среды, которой соответствуют передаваемые сиг-
налы. Поэтому чувствительный орган (рецептор) иногда называют датчиком
информации. К моменту поступления сигналов из канала связи в эффектор
прежняя ’’картина” принимает вид ’’картины” будущих действий эффектора.
Исходящую из рецепторов информацию называют осведомляющей, а посту-
пающую в эффекторы — управляющей. Информация - это отражение внеш-
ней среды или будущих действий эффекторов в сигналах.
В таком примитивном автомате, как поплавковый регулятор, одни и те
же сигналы являются носителями одновременно этих двух, вовсе не одина-
ковых ’’картин” Информация о состоянии внешней среды и информация о
соответствующих действиях эффектора выражаются одной и той же совокуп-
ностью сигналов. Это бывает далеко не всегда и представляет собой частный
случай.
Точно так же частным случаем является то обстоятельство, что сигнал,
поступающий из канала связи, непосредственно приводит в действие тот эле-
мент автомата, которому он адресован, в данном случае эффектор. Для этого
он должен быть энергетически достаточно мощным. Как мы увидим дальше,
чаще всего энергии сигнала для этого недостаточно и сигнал служит для
включения более мощного потока энергии, который уже достаточен для при-
ведения в действие воспринимающего ее органа, в данном случае эффектора.
Но, что очень важно, новый энергетический поток несет в себе ту же инфор-
мацию о необходимых действиях эффектора (а иногда и ту же информацию1
1 Информация о внешней среде и необходимых действиях эффекторов не всегда
одинаково содержательна. Например, если различные воздействия требуют одинаковых
реакций, то информация о необходимых действиях эффекторов беднее информации о
внешней среде.
12
о состоянии внешней среды), что и первоначальный сигнал. Таким образом,
сигналы, передаваемые внутри автомата, во многих случаях подвергаются пе-
реработке, и вполне возможно, что в эффектор поступают уже не те сигналы,
которые были выработаны датчиком информации.
Заканчивая этот параграф, вернемся к понятию информации. Информация
возникает внутри автомата в виде изменений состояния канала связи, созда-
ваемых рецептором (датчиком информации, чувствительным органом ав-
томата) в ответ на воздействие внешней среды. Указанные изменения явля-
ются сигналами, несущими информацию. Информация - это отражение воз-
действий внешней среды в сигналах, но никак не сами сигналы. Сигналы яв-
ляются физическими носителями информации. Конечно, отражение внешней
среды в автомате является неполным, что зависит от особенностей рецептора.
Например, рецептор поплавкового регулятора вырабатывает адекватную
(правильно соответствующую действительности) информацию только об
уровне жидкости, но не об ее температуре или о химических примесях в ней,
хотя эти факторы могут как-то влиять на рецептор. Тем не менее, чувстви-
тельный орган автомата или их совокупность, если таких чувствительных
органов много, создает определенное отображение внешней среды, представ-
ленное в виде системы сигналов, определенную ’’картину” (хотя и грубую)
внешней среды. В другой точке канала связи — в месте его контакта с эффек-
тором - система сигналов несет в себе уже другую ’’картину” - информацию
о действиях эффектора. Эта информация тоже носит лишь приближенный
характер, так как реальные эффекторы, как правило, не совсем точно реали-
зуют ’’приказы”, содержащиеся в поступающих сигналах.
1.5. ПРЕОБРАЗОВАНИЕ ИНФОРМАЦИИ И ЕЕ ЗАПОМИНАНИЕ
В простейших случаях, как выше было сказано, одни и те же сигналы не-
сут в себе сразу две ’’картины”: внешней среды и действия эффектора. В бо-
лее сложных случаях такое непосредственное совмещение ’’картин” в одних
и тех же сигналах может быть невозможным. Тогда сигнал связи разделяется
на две части, между которыми помещается специальное устройство, пред-
назначенное для преобразования ’’картины” внешней среды в ’’картину”
действий эффекторов. Такое устройство, конечно, осуществляет преобразо-
вание ’’картин” путем преобразования сигналов. Называется оно преобразо-
вателем информации в отличие от преобразователей сигналов (о них упоми-
налось в предыдущем параграфе), не меняющих информацию, которую несут
сигналы.
Примером автомата, в состав которого входит преобразователь информа-
ции, является устройство, поддерживающее постоянную освещенность рабо-
13
чего места. Такое устройство в качестве рецептора имеет фотоэлемент, а в
качестве эффектора группу ламп. По мере того, как сила дневного освеще-
ния уменьшается, устройство включает искусственные источники света. Ин-
формация, вырабатываемая рецептором, представляет собой электрические
сигналы. Собственно, сигналов только два: 1) напряжение ниже некоторого
минимального уровня; 2) напряжение выше некоторого максимального
уровня. Значения напряжений между указанными уровнями характеризуют
чувствительность автомата. Если напряжение становится ниже минимального
уровня, то устройство зажигает дополнительную лампу. Если после этого не
произошло перехода в зону чувствительности, зажигается еще одна лампа,
не помогло — еще одна и т. д. Если напряжение переходит из средней зоны в
верхнюю, выключается одна лампа. Если это не повлекло перехода напряже-
ния в среднюю зону, выключается еще одна лампа и т.д. Преобразование ин-
формации о силе освещения в информацию о включении или выключении од-
ной лампы (т. е. о действиях эффектора) производится специальным устрой-
ством, внутренним для описываемого автомата. Это и есть преобразова-
тель информации.
Для того чтобы зажечь или потушить еще одну лампу, преобразователь
информации должен ’’помнить”, какие лампы горят. Значит, кроме преоб-
разования информации в описанном автомате должно происходить и ее за-
поминание. Число фактов, которые нужно помнить, уменьшится, если лампы
будут зажигаться всегда в одном и том же порядке, а выключаться в обрат-
ном (по схеме ’’позже зажглась раньше выключать”). Но все же автомат
должен иметь в своем составе запоминающее устройство. Запоминающее
устройство может быть реализовано по-разному, но сущность его всегда
заключается в том, что оно имеет некоторое количество устойчивых состоя-
ний и каждому состоянию поставлен в соответствие один из факторов, под-
лежащих запоминанию. Каждое состояние можно считать носителем инфор-
мации об определенном факте (т. е. сигналом).
Вернемся к работе рассматриваемого регулятора освещенности. Предпо-
ложим для определенности, что в его системе имеется пять ламп. Запоминаю-
щее устройство должно хранить информацию о следующих фактах: 1) го-
рит 0 ламп; 2) горит 1 лампа; 3) горят 2 лампы; 4) горят 3 лампы; 5) го-
рят 4 лампы; 6) горят 5 ламп. Получая информацию о состоянии внешней
среды и имея информацию о состоянии (в недавнем прошлом) своих эффек-
торов, преобразователь информации вырабатывает информацию о дальней-
ших действиях эффекторов.
Конечно, описанный нами регулятор освещенности очень несовершенен.
Производимое им переключение ламп будет вызывать неприятное ’’мигание’’
Кроме того, возможности его могут оказаться недостаточными. Например,
в яркий солнечный день при выключении всех ламп освещенность может
14
все же быть чрезмерной, а ресурсы эффекторов по ослаблению света уже ис-
черпаны. Более сложный автомат мог бы, во-первых, иметь еще один эффек-
тор — устройство для закрывания и открывания шторы на окне и, во-вто-
рых, управлять большим числом (а не пятью) лампами столь малой мощ-
ности, что включение или выключение отдельной лампы оставалось бы для
человеческого глаза практически незаметным. Но это все технические дета-
ли, не имеющие в данном случае принципиального значения. Не имеет прин-
ципиального значения также конкретная техническая реализация как запоми-
нающего устройства, так и преобразователя информации, поэтому мы на ней
останавливаться не будем. Принципиальное значение имеет функциональная
структура автоматов с внешней обратной связью, которую мы теперь пол-
ностью себе представили.
Отмечу сразу, что дискретный характер рассматриваемого запоминающего
устройства тоже является частным случаем. Возможны запоминающие уст-
ройства, сигналы которых могут изменяться непрерывным образом. В на-
шем примере особенности запоминающего устройства диктовались дискрет-
ным характером действий эффектора (каждое действие заключалось в зажи-
гании или выключении одной лампы).
1.6. КИБЕРНЕТИЧЕСКИЙ ПОДХОД. СИСТЕМЫ УПРАВЛЕНИЯ
Постепенно усложняя структуру автомата, мы пришли в конце концов к
структуре, которая в кибернетике называется системой управления. Ее схе-
ма приведена на рис. 1.2. Синтезируя автомат в соответствии с этой схемой,
мы всегда сможем с уверенностью утверждать, что автомат является систе-
мой управления.
Иное дело, если мы имеем
автомат, устройство которого
нам неизвестно, но действия
которого можем наблюдать и
над которым мы можем экспе-
риментировать. Такой автомат
в кибернетике называют чер-
ным ящиком. О черном ящике
известно только следующее:
его входы (рецепторы) и его
выходы (эффекторы). Можно
Рис. 1.2. Схема системы управления
также обозревать его изолирующую оболочку, но заглянуть внутрь нельзя.
Часто делается допущение, что вид его рецепторов и эффекторов известен.
Например, известно, что черный ящик реагирует на звук и на свет. При этом
15
он сам издает звуки, испускает световые сигналы и совершает движения ис-
ходящими из него рычагами. Но иногда и этой информации мы не имеем или
имеем только часть таких сведений. В последнем случае условимся называть
автомат очень черным ящиком.
Если исследование черного ящика — увлекательная проблема, то иссле-
дование очень черного ящика, кроме того, опасное дело. Ведь не знаешь, что
может привести его в действие и как именно он будет себя вести. Тем не ме-
нее, путем построения гипотез и их экспериментальной проверки иногда
удается очень черный ящик не только сделать просто черным, но, более того,
определить совокупность его возможных ’’восприятий” и отвечающих им
реакций.
Чтобы определить поведение черного ящика, можно построить его модель
в виде системы управления, схема которой приведена на рис. 1.2. Такая мо-
дель будет вести себя как исследуемый черный ящик, причем структура ее
нам в точности известна. Можно сделать гипотезу о том, что черный ящик
имеет внутреннее устройство, подобное устройству нашей модели, т. е., что
схема рис. 1.2 эквивалентна черному ящику.
В данном случае при исследовании нового для нас объекта мы применили
кибернетический подход в первой его форме (в форме гипотезы и ее провер-
ки путем моделирования).
Предположим теперь, что нам удалось заглянуть внутрь исследуемого ав-
томата. Опыт человечества показывает, что при всем разнообразии устройств
автоматов в них всегда удается выделить части, которые можно считать вы-
полняющими функции рецепторов, каналов связи, преобразователей инфор-
мации, запоминающих устройств, эффекторов и изоляторов. При этом иног-
да сразу несколько функций совмещены в одной и той же части. Например,
вспоминая поплавковый регулятор уровня жидкости, мы можем сказать, что
его рычаг совмещает в себе канал связи и преобразователь информации, при-
чем эта информация (в виде поворота рычага) преобразуется путем ее интер-
претации (переистолкования). Идущий от поплавка сигнал о повышении
уровня для клапана является сигналом, вызывающим его закрытие. Это —
новая форма кибернетического подхода. Она заключается в том, что реаль-
ную систему мы истолковываем как систему управления.
При этом оказывается, что с помощью небольших ’’ухищрений” можно и
объекты, заведомо не являющиеся системами управления, истолковывать
как системы управления, в которых большинство функций совмещены. На-
пример, кусок железа (или даже простой булыжник) можно истолковывать
как систему управления, в которой рецептором, чувствительным к измене-
ниям температуры, является этот кусок железа (или булыжник), он же яв-
ляется каналом связи и преобразователем информации, а также запоминаю-
щим. устройством, т он же представляет собой эффектор (расширяется или
сжимается). Правда, такой ’’автомат” не имеет внешней обратной связи.
16
Из сказанного следует, что в тех случаях, когда приходится не синтезиро-
вать автомат, а анализировать его, выделение функциональных элементов
начинают с истолкования отдельных частей автомата. Если при этом получа-
ется структура системы управления, автомат условно делят на части, соот-
ветствующие проведенному истолкованию. Каждая часть, кроме кибернети-
ческих функций, может выполнять и многие другие (например, канал связи
может быть физической опорой рецептора и т. п.).
Точка зрения на изучаемый объект как на систему управления представ-
ляет собой кибернетический подход к исследованию объекта. Если этот под-
ход плодотворен, то его следует применять. Подход к куску железа (или бу-
лыжнику) как к системе управления пока своей плодотворности не обнару-
жил и потому отвергается.
Кибернетический подход к автоматам, особенно при их конструировании,
оказался чрезвычайно полезным. Он не только позволяет объяснить работу
автомата, но и намечает методы построения новых автоматов.
Нужно отметить, что кибернетический подход возможен не только к ис-
кусственным объектам, но и к сложным естественным объектам и к их си-
стемам. Например, уже в настоящее время совершенно ясно, что живые ор-
ганизмы и их системы (такие, как семья, популяция, вид, даже человеческое
общество) при определенных аспектах исследований не только можно, но и
нужно рассматривать как системы управления. Практика — критерий исти-
ны. Успехи, достигнутые генетической инженерией, являются доказательст-
вом того, что кибернетический подход в биологии адекватно (правильно) от-
ражает сущность реальных явлений.
Однако нельзя забывать, что кибернетический подход — это метод изуче-
ния, метод конструирования искусственных систем, но не объяснение сущ-
ности реального явления. Кибернетика всего лишь одна из естественных на-
ук, а не философия.
1.7. РОБОТЫ
Теперь мы можем уже достаточно ясно ответить на вопрос: что такое робот?
Роботом называется автомат с внешней обратной связью, синтезированный
в соответствии со схемой, приведенной на рис. 1.2, т. е. с общей схемой си-
стемы управления.
Капкан-мышеловка роботом не является, потому что не имеет внешней
обратной связи. Поплавковый регулятор уровня жидкости, хотя и имеет
внешнюю обратную связь, но не заслуживает название робота из-за своей
примитивности (в нем отсутствует запоминающее устройство, а канал связи
”по совместительству” является и преобразователем информации). Описан-
ный выше регулятор освещенности — уже робот.
17
Мне могут возразить, что по своему внешнему виду этот автомат не имеет
никакого сходства с человеком. Это верно. Но внешнее сходство робота с
человеком считали его характерной чертой лишь на первых порах, когда по-
нятие робота только зарождалось. Зато в теперешнем его понимании робот
похож на человека, если человека рассматривать как систему управления.
У робота, как и у человека, мы находим рецепторы, каналы связи ( у челове-
ка — это нервы), преобразователь информации (у человека эту роль играет
большая часть головного мозга и спинной мозг), запоминающее устройство
(у человека — часть головного мозга) и, наконец, эффекторы и изоляторы.
Сходство робота с человеком менее броско, чем внешнее, но значительно
глубже него.
Некоторые специалисты, классифицируя роботы, относят к их числу та-
кие приспособления, как манипуляторы, управляемые на расстоянии челове-
ком. Но тогда, если быть последовательным, нужно считать роботами и экс-
каватор и простую лопату, которые тоже являются разновидностями мани-
пуляторов. Мы считаем, что манипулятор может быть эффектором робота,
но ни в коем случае не самим роботом.
Возникает вопрос, может ли устройство, управляемое человеком, считать-
ся роботом? На такой вопрос следует заметить, что поставлен он неправиль-
но. Управляет ли человек устройством или не управляет, не определяет того,
является ли устройство роботом. Ведь и человеком может управлять другой
человек! Если управляющий человек воздействует на рецепторы или даже на
преобразователь информации автомата и если этот автомат имеет внешнюю
обратную связь и обладает структурой системы управления, то автомат яв-
ляется роботом. Если же управление, осуществляемое человеком, заключает-
ся в выполнении им функции преобразователя информации, то устройство
не является автоматом, не то что роботом.
Нужно сказать, что определение автомата как устройства, действующего
без участия человека, не только бессодержательно, но и неправильно. Напри-
мер, автомат по продаже газированной воды без участия человека (опускаю-
щего монету) не действует. Но человек в данном случае является частью
внешней среды, хотя со своей субъективной точки зрения он и управляет
автоматом. В заслужившем большую популярность кинофильме режис-
сера Эльдара Рязанова ’’Берегись автомобиля” владелец автомобиля устанав-
ливает в нем медвежий капкан как средство против возможного угонщика.
И угонщик попадает в капкан. Капкан — автомат, и' в данном случае срабо-
тать без участия человека не может. Но это участие человек уже не назовет
управлением...
Подводя итоги данного параграфа, перескажем другими словами то опре-
деление робота, которое мы привели раньше. Такое перефразирование по-
лезно, так как уменьшает опасность неодинакового понимания читателем и
автором одного и того же определения.
18
Робот — это автомат с внешней обратной связью, состоящий из рецептора
(или нескольких рецепторов), преобразователя информации (не совмещен-
ного с другими его частями), запоминающего устройства, эффектора (или
нескольких эффекторов) и каналов связи, соединяющих эти элементы.
Кроме того в состав робота входит изолятор, защищающий внутренние его
элементы от непосредственных воздействий внешней среды. Запоминающее
устройство может быть ’’нулевым” (отсутствовать, но это бывает сравни-
тельно редко), изолятор тоже может быть ’’нулевым”, если внутренние части
робота достаточно устойчивы по отношению к воздействиям внешней среды.
Считается, что внешняя среда воздействует только на рецепторы и изоля-
торы, причем последние устойчивы к ее воздействиям. Робот воздействует
на внешнюю среду только эффекторами. Влияние на внешнюю среду рецеп-
торов (поглощение ими из нее энергии) и изоляторов предполагается на-
столько малым, что им можно пренебречь.
Теперь мы можем полностью ответить на вопрос, поставленный в начале
главы: был ли Ксаверий Александра Грина роботом. Что он автомат - это
ясно. В целом механизмом он не является, но отдельные механические час-
ти имеет. Как автомат он очень сложен и для читателя, да и для действую-
щих лиц романа Александра Грина, он — черный ящик. Внешнюю обратную
связь он имеет, так как ответы его всегда (не случайно же это) по смыслу
соответствуют вопросам и предыдущим ответам. Модель Ксаверия как си-
стемы управления сегодня не сумел бы построить ни один специалист, хотя
читатель наверное знает — уже существуют программы, выполняя которые,
ЭВМ ведет диалог с человеком. Дело в том, что язык такого диалога допус-
кает лишь очень небольшое число фраз, составленных из узкого набора слов.
Ксаверий же понимал любые русские фразы из любых русских слов, хотя и
реагировал на них, только если они содержали обращение ’’Ксаверий”. Все
же Ксаверий - робот. Необычным интеллектом наделила его фантазия Гри-
на, но для фантазии почти все возможно.
1.8. ВАЖНЫЕ "ТОНКОСТИ"
Понятие робота связано с понятием внешней среды и не только тем, что
его рецепторы создают ее отражение, а его эффекторы на нее воздействуют,
но и тем, что важнейшим признаком робота является наличие внешней об-
ратной связи. А внешняя связь возникает в результате восприятия роботом
нового состояния внешней среды, изменившейся под влиянием действий эф-
фекторов.
Возможные состояния внешней среды так многообразны, что один и тот
же робот оказывается в одних случаях имеющим, а в других — не имеющим
19
внешней обратной связи. И это, пожалуй, справедливо для любого робота.
Например, описанный в § 1.5 регулятор освещенности потеряет обратную
связь, если его фотоэлемент случайно затенить или при слишком ярком сол-
нечном освещении. Поэтому для каждого робота всегда имеется в виду не-
которая допустимая для него внешняя среда. Слово ’’допустимая” обычно
опускают, но всегда предполагают.
Внешняя среда многосторонна и безгранична. Не все ее стороны и не все
ее части воспринимаются рецепторами робота и подвергаются воздействию
его эффекторов. Поэтому среду обычно делят на ближнюю и дальнюю. Это
деление условно и для каждого робота свое. Под ближней средой понима-
ют совокупность тех предметов среды (точнее, тех их сторон), которые воз-
действуют на рецепторы или поддаются воздействиям эффекторов робота.
Обратная связь возникает в ближней среде.
Следует иметь в виду, что действие эффектора обладает своеобразной
относительностью. Так, для одних автоматов оно выражается в изменении
внешней среды, для других — в изменении положения во внешней среде
самого автомата (например, в его перемещении в пространстве или в его по-
вороте), наконец, для третих — в изменении их формы, размеров (сжатие
или расширение) или конфигурации.
Во всех случаях автомату необходима энергия сравнительно небольшая
для передачи сигналов и порой довольно значительная для действия эффекто-
ров. Иногда источник энергии находится вне автомата. Внутри автомата в
некоторых случаях находится аккумулятор энергии (который ’’заряжается”
от источника ). В последнее время появилась возможность размещать источ-
ник энергии (например, атомный реактор) внутри автомата. Говоря об ос-
новных частях автомата и робота, мы не указывали на источники или акку-
муляторы энергии, поскольку питание энергией не характерно для автомата
или робота, хотя и совершенно необходимо.
Очень часто приходится слышать, что информация является общим свой-
ством материи. Что приводит к такой мысли? Каждый человек постоянно
чувствует себя буквально охваченным вихрем информации. Мы читаем газе-
ты, слушаем радио, смотрим телевизионные передачи, ведем переписку с раз-
личными людьми, беседуем друг с другом. Все это потоки информации.
Наконец, мы узнаем, что вся наследственность живых организмов — это пере-
дача информации, зафиксированной ”на молекулярном уровне” в хромосо-
мах (возможно и даже вероятно, читатель об этом слышал). В настоящей
главе мы узнали, что в автоматах тоже циркулируют потоки информации.
Теперь многим покажется вполне естественным сказать, что солнечный свет,
достигающий земли, несет информацию о тех процессах, которые происхо-
дят на солнце. Палеонтолог, обнаруживший при раскопках отпечаток лапы
какого-нибудь игуанодона, смело скажет, что этот отпечаток несет нам ин-
20
формацию из далекого прошлого ни много, ни мало — об игуанодоне. Вот и
получается, что информация — это свойство любой материи.
Мы отнесемся к этой проблеме с осторожностью. Информация — это не
всякое отражение, а отражение в сигналах. Так как солнечный свет не сигнал,
а явление природы, то он не несет информации, но, воздействуя на рецепто-
ры системы управления, может вызвать возникновение информации. Точно
так же след игуанодона на ископаемом песчаннике не является сигналом,
хранящимся в запоминающем устройстве, а представляет собой лишь ре-
зультат случайной деформации почвы, случайно сохранившийся до наших
дней. А вот, палеонтолог, изучивший этот след и написавший о нем, или, мо-
жет быть, об игуанодонах научную статью, выработал информацию. Об ин-
формации, как о всяком отражении одного явления в другом, мы не станем
говорить просто потому, что уже есть слово ’’отражение”, получившее широ-
кое распространение, и оно нас вполне устраивает.
Но как же все-таки объяснить наличие всех потоков информации, о кото-
рых говорилось выше? Действительно ли они существуют? Да, эти потоки
существуют действительно. Все объясняется очень просто. Каждый йз нас
окружен большим числом систем управления, сам (как организм) является
системой управления и, кроме того, элементом большого числа систем уп-
равления (семьи, вида, предприятия, профсоюза, города, народа, челове-
чества и т. п.). В каждой из этих систем управления циркулирует информа-
ция. Неискушенному человеку нетрудно и растеряться в бушующих вокруг
него вихрях информации. Тем более, что в некоторых системах управле-
ния он выполняет функции рецептора (или его части), в других является
составной частью эффектора, в третьих — он винтик в преобразователе ин-
формации и т. д.
1.9. ДИСКРЕТНЫЕ РОБОТЫ. ЦЕЛЕВОЕ ОТНОШЕНИЕ
В данной книге мы ограничимся изучением только одного вида роботов,
получивших название дискретных. Дискретными называют роботы, в кото-
рых сигналы, несущие информацию, имеют дискретный, прерывистый харак-
тер. Дискретными сигналами являются точки и тире азбуки Морзе, импуль-
сы электрического тока, с помощью которых можно кодировать, передавать
и запоминать тексты, составленные из различных символов, например букв
или цифр. Естественно, что и процесс преобразования дискретных сигналов
в дискретные сигналы является дискретным, собтойт из отдельных шагов.
Известные в настоящее время датчики информации в большей части слу-
чаев являются‘Приборами непрерывного характера, вырабатывающими сигна-
лы, изменяющиеся непрерывным образом. Например, при восходе солнца
освещаемый им фотоэлемент будет давать плавно возрастающее напряжение.
21
При похолодании термометр будет показывать плавно уменьшающуюся тем-
пературу. Существуют, конечно, и датчики дискретного характера, к числу
которых относится, например, счетчик Гейгера, издающий отдельные зву-
ковые импульсы (в форме треска) при прохождении через его камеру ра-
диоактивных излучений.
В тех случаях, когда в состав дискретного робота входят рецепторы непре-
рывного действия, между рецептором и каналом связи должно находиться
специальное переходное устройство, осуществляющее дискретизацию выра-
батываемого датчиком информации сигнала.
Как сами датчики информации, так и устройства дискретизации выраба-
тываемых ими сигналов ставят перед инженерами много трудных и интерес-
ных проблем. Однако практика показывает, что инженеры всегда с ними
справляются и довольно успешно. Не менее сложны и вопросы проектирова-
ния и реализации эффекторов. Тем не менее и эти вопросы, хотя и не сразу,
но решаются. Сигнал, поступающий от преобразователя информации, если он
недостаточно мощен для приведения эффектора в действие, должен быть
преобразован в сигнал, несущий ту же информацию, но обладающий большой
мощностью. Этот процесс мы будем называть энергизацией сигналов. Мы
должны упомянуть об энергизации, но и эта проблема не является темой дан-
ной книги. Сигналы, поступающие в канал связи после их дискретизации, мы
будем считать входными, а сигналы, поступающие в устройство энергизации
или в эффектор (если энергизация не нужна) — выходными. Наша область —
это проблема преобразования входных сигналов в выходные, при котором
обеспечивается требуемое поведение робота.
Входные и выходные сигналы мы будем рассматривать как предложение
двух языков, один из которых описывает возможные состояния внешней
среды, а другой — действия эффекторов. Преобразователь информации вос-
принимает описание внешней среды и решает две задачи: 1) используя вход-
ные сигналы и ту информацию, которая хранится в запоминающем устрой-
стве, он вырабатывает выходные сигналы; 2) перерабатывает входные сигна-
лы вместе с информацией, взятой из запоминающего устройства, в новую
информацию, подлежащую хранению в запоминающем устройстве вместо
прежней. Конечно, вторая задача может сводиться просто к незначительному
изменению той информации, которая хранилась раньше. До начала функцио-
нирования робота в запоминающем устройстве должна быть записана
некоторая начальная информация, которую полушутя называют ’’врожден-
ной”.
Очень упрощая проблему, можно себе представить, что входная информа-
ция возникает в моменты времени 1, 2, 3,.. ., t9... и что на работу преобра-
зователя информации совсем не тратится времени. Тогда, обозначая через
и Yf совокупности сигналов в момент t и через Tt_x информацию в запо-
22
минающем устройстве в момент появления входного сигнала 2^, работу пре-
образователя можно описать парой формул:
Yt =F, (Xn Tt =F2 (Xt, Tt_.y (1)
В этих формулах Fx называется функцией выходов, a F2 — функцией пере-
ходов.
Абстрактное устройство, которое ’’работает” в соответствии с приведен-
ной парой формул, в кибернетике известно под названием (абстрактного)
конечного автомата типа Мили. При этом всю совокупность сигналов Xt на-
зывают входным символом, a Yt - выходным символом. Для того чтобы
теорию конечных автоматов Мили можно было использовать для прикидоч-
ного описания работы робота, нужно задать еще две формулы, одна из ко-
торых описывала бы влияние робота на ближнюю среду, а другая — обратную
связь. Эти формулы будут иметь вид
5r+1 =<Mr„5,,Zr),Xr + 1 =Ф2(5г + 1). (2)
В этих формулах S означает состояние ближней внешней среды, a Z — возму-
щение, вносимое в ближнюю внешнюю среду отдаленной средой.
Так как робот предназначается для действий в определенных условиях, то
это возмущение обычно бывает незначительным. Вторая из этих формул, ес-
ли положить в ней t = 0, дает нам начальное условие
X, =Ф2(^1). (3)
Однако написанные нами формулы еще не позволяют судить о том, ведет
ли себя робот так, как нам нужно, а ведь робот создают ради того, чтобы он
выполнял определенные функции. Необходимо, чтобы робот приводил ближ-
нюю внешнюю среду в определенное состояние, что будет выражаться в сиг-
налах, вырабатываемых его рецепторами. Значит, следует задать условие,
которому должны начать удовлетворять входные сигналы с учетом информа-
ции, содержащейся в запоминающем устройстве.
В математике условия, если их нужно передать в общем виде, обозначают
какой-либо буквой, вслед за которой в скобках приводят перечень величин,
которые в своей совокупности должны удовлетворять данному условию.
Наше целевое условие запишем так:
(4)
Теперь, в очень огрубленном виде имеем математическое описание робота
в виде системы формул (1)-(4). Сущность робота передает даже такое опи-
сание.
Интересно отметить, что формулы (2), если Zt является постоянным,
представляют собой описание абстрактного устройства, которое в кибернети-
ке известно под названием конечного автомата Мура. О конечных автоматах
можно прочитать в книге [3].
Крайне редко, вернее, лишь в простейших случаях, все перечисленные
функции и целевое условие могут быть выражены аналитически (средства-
ми математического анализа). Чаще всего условия и функции задаются в ви-
де словесных описаний. При этом используются особые, совершенно точные
формальные языки. Функции удается представить в виде алгоритмов и кол-
лективов алгоритмов, о которых будет сказано в следующих главах. Забегая
вперед, отмечу, что алгоритмы, описывающие преобразователь информации,
могут быть реализованы аппаратно, и тогда говорят, что преобразователь яв-
ляется физической моделью алгоритма. Но возможна и так называемая прог-
раммная реализация алгоритма, и тогда выполняющая его часть преобразова-
теля становится чем-то похожа на специализированную ЭВМ. Наиболее вы-
годна комбинация этих двух возможностей.
Глава 2
СИМВОЛЬНЫЕ КОНСТРУКЦИИ
Датчики информации робота вырабатывают информацию о внешней сре-
де, изменяя под ее влиянием свои состояния. В дискретных роботах, если эти
состояния не являются дискретными, они превращаются в дискретные с
помощью специальных устройств, ’’вставленных” между датчиком и каналом
связи. Условимся такие устройства рассматривать как одно целое с датчи-
ком. Это позволит нам считать, что датчики информации дискретного робота
всегда имеют дискретное действие. При этом оказывается, что для каждого
датчика возможно лишь конечное число различных состояний; число парал-
лельно работающих датчиков тоже конечно, и, таким образом, число всевоз-
можных сочетаний состояний, принимаемых датчиками, тоже конечно.
Для того чтобы представить себе картину, рисуемую совокупностью дат-
чиков, можно каждое состояние датчика обозначить или одним каким-либо
символом (значком), или их системой. Но совокупность получаемых симво-
лов еще не передает интересующей нас картины. Нужно показать, как эти
символы сгруппированы и какие между ними существуют связи. Таким об-
разом, мы приходим к выводу, что в каждый момент времени совокупное
состояние датчиков робота можно изобразить как некоторую символьную
конструкцию.
Но мы знаем, что символами могут быть не только значки, изображенные
на бумаге, но и физические предметы или состояния физических предметов.
Например, в речи глухонемых символами являются различные положения
частей тела (пальцев рук, губ и др.). В царской армии в прошлом веке, для
того чтобы приучить новобранцев выполнять команды ’’направо” и ’’налево”
24
им привязывали к правой руке клок соломы, а к левой клок сена. Солому
от сена они прекрасно отличали, а вот правую сторону от левой отличить не
могли. При этом клок соломы и клок сена выступали в роли символов, зна-
ков.
Теперь ясно, что возникающую совокупность состояний датчиков можно не
только изображать на бумаге в виде символьной конструкции, но и просто
считать символьной конструкцией. Эти символьные конструкции физически
различны, но между ними существует взаимно-однозначное соответствие. При
изучении свойств символьных конструкций как носителей информации удоб-
нее пользоваться их изображениями на бумаге или на каком-либо аналогичном
носителе.
Теперь читателю стало понятно, почему работу роботов мы начинаем с вы-
яснения вопроса о том, что такое символьная конструкция.
2.1. БУКВЫ, СВЯЗИ, ОБОЛОЧКИ
Символ, который в данной области применения никогда не изменяется и
никогда не подвергается делению на составные части, называется буквой.
Реальные буквы, конечно, лишь приблизительно удовлетворяют этим усло-
виям, но совершенно необходимо, чтобы имеющие место отступления были
настолько малы, чтобы ими можно было пренебречь.
Считается, что каждую букву всегда опознают как букву, а не как соче-
тание букв или что-либо иное, и, кроме того, если даны две буквы, то всегда
ясно: одинаковы они или различны. Это следует понимать так: элементы ро-
бота всегда различают, одинаковы или различны буквы.
При построении символьных конструкций буквы являются наиболее
простыми конструктивными элементами.
Введенное нами понятие буквы — математическое. Оно абстрактно, так
как не учитывает физической природы и даже геометрической формы букв.
Нужно отметить, что оно не совпадает с понятием буквы, знакомым нам в
обиходе. Приведем примеры.
Буквы русского алфавита являются буквами в нашем смысле, но знаки
препинания с нашей точки зрения — тоже буквы. Десятичные цифры (часто
называемые арабскими) являются буквами. Знак 7 и имеющий тот же смысл
знак VII очень отличаются друг от друга: первый является буквой, а второй
состоит из трех букв. В некоторых ЭВМ числа представляются в так называ-
емой двоично-десятичной системе счисления. В ней каждая арабская цифра
кодируется четверкой двоичных цифр (двоичных цифр две: 0 и 1). Так,
0000 представляет собой арабскую цифру 0, а 0001 и 1001 - соответственно
1 и 9. В области применения, которую можно назвать ’’двоично-десятичная
25
арифметика”, буквами являются указанные сочетания нулей и единиц. В об-
ласти денежного обмена металлические монеты и бумажные купюры можно
считать буквами. Каждая из них неделима и неизменяема. Мы видим, что по-
нятие буквы тесно связано с областью применения. Переходя из той области,
в которой данные знаки являются буквами, в другую область применения,
мы уже будем, возможно, анализировать их составные части, преобразовы-
вать их, но при этом следует не забывать, что в новой области они уже не
буквы.
Невозможно указать абсолютные требования, которым должны удовлет-
ворять символы для того, чтобы быть буквами, потому что таких требований
нет. В § 2.2 я опишу один из приемов, с помощью которого можно задать
требования, при выполнении которых буквы относятся к определенной об-
ласти.
Второе важное понятие - связь. В отличие от букв связи не во всех об-
ластях применения задаются в виде символов, хотя в каждой из таких об-
ластей они тоже являются неделимыми и неизменными. Каждая связь, когда
с ней приходится иметь дело, всегда распознается как связь. Любые две свя-
зи всегда воспринимаются как одинаковые или как различные, и это воспри-
ятие их в данной области применения неизменно. Но ни в какой области при-
менения используемые там связи не выступают в роли конструктивных эле-
ментов! Таким образом, уже теперь мы видим различие между связями и
буквами. Буквы в своих областях применения являются символами и кон-
структивными элементами. Связи не всегда являются символами и никогда
не бывают конструктивными элементами. Они — тот ’’цемент”, который
’’скрепляет” между собой буквы при образовании сложных конструкций.
Кроме описанных, связи обладают еще некоторыми свойствами, очень
важными для нас. Каждая связь может связывать (’’скреплять между со-
бой”) строго определенное число конструктивных элементов, называемое
рангом связи. Для большей наглядности можно представлять себе, что взаи-
модействие связи и конструктивного элемента осуществляется посредством
так называемой ветви связи. При этом число ветвей связи равно ее рангу.
Наше математическое определение связи и ее ветвей абстрагируется от того
конкретного (может быть, физического) способа, которым связь взаимодей-
ствует с конструктивным элементом, так что ветвь — это мысленная схема.
На рисунках удобно связь изображать каким-либо значком, от которого в
разные стороны идут отрезки линий, обозначающие ветви.
Считается, что вся совокупность ветвей связи разбита на группы, причем
две ветви, принадлежащие одной и той же группе, называются одинаковыми
(как говорят, имеющими одинаковый жанр), а принадлежащие разным груп-
пам — различными. Удобно пронумеровать группы ветвей связи с помощью
неравных между собой целых положительных чисел, но не обязательно под-
26
ряд. Это позволяет в качестве жанра ветви указывать номер группы, кото-
рой она принадлежит.
Характеристикой связи называется последовательность вида
s;
в которой s - имя связи, а щ. - число ветвей жанра if. Символ/ представля-
ет собой так называемый ’’бегущий индекс”, принимающий значения 1,2,...
Число к групп ветвей называется жанром связи.
Очень важно, чтобы в одной и той же области применения не использова-
лись связи, имеющие одно и то же имя и неодинаковую последовательность
чисел в остальной части характеристики (это приводит к путанице).
Чаще всего приходится встречаться со связями следования, которые бы-
вают трех видов: начинающие (первого ранга), продолжающие (второго
ранга и второго жанра) и заканчивающие (первого ранга). Эти связи можно
проследить, анализируя слова, из которых составлены тексты, например на
русском языке. Обозначим связи следования соответственно значками
-> и ->•. Рассмотрим слово
книга
В нем связи следования переданы не с помощью введенных нами значков, а с
помощью особого расположения букв. Если бы мы явно указали связи, то
получилось бы
-•*к-*н-*и->г->а->*
Начинающая связь связывает первую букву слова своей единственной ветвью
(удобно считать, что жанр этой ветви 2). Каждая продолжающая связь связы-
вает пару букв (одну — ветвью первого жанра, а другую, последующую,
ветвью второго жанра). Заканчивающая связь связывает последнюю букву
слова своей единственной ветвью, имеющей жанр 1.
Хотя в области книгопечатания связи следования в словах не указаны, но
в их наличии (в том, что они подразумеваются) нас убеждает тот факт, что
мы, не анализируя слбва, находим его начало и конец, а взяв какую-либо
букву слова (кроме последней), без труда находим следующую за ней.
То обстоятельство, что связи следования в словах русского текста переда-
ются именно особым расположением букв можно подтвердить, анализируя
какое-либо слово, начертание букв которого не позволяет его ориентировать
на листе. Например, слово ’’фон”, если его напечатать ’’вверх ногами” превра-
тится в ”ноф”, в котором все связи уже иначе связывают буквы.
Словом называется образованная из букв с помощью связей следования
простейшая конструкция, в которой присутствует ровно одна начинающая
и ровно одна заканчивающая связь (и могут присутствовать несколько про-
должающих связей). При этом каждая буква слова связана ровно двумя свя-
зями, из которых одна взаимодействует с ней ветвью второго жанра, а дру-
27
гая -- ветвью первого жанра. В математике кроме того допускают слова, не
содержащие ни одной буквы, а следовательно, и ни одной связи. Такие сло-
ва называют пустыми. Если хотят подчеркнуть, что слово содержит буквы
(хотя бы одну), то его называют непустым.
Мы видим, что математическое понятие слова отличается от обиходного.
Слово в математическом смысле — это особая символьная конструкция, а
в обиходном смысле — элемент естественного языка, либо наделенный
смыслом (знаменательное слово, например ’’стол”, ’’стоит”), либо выполня-
ющий какие-нибудь функции в предложении (незнаменательное слово, на-
пример ”и”, ’’как”). При этом, конечно, и в обиходном смысле слово явля-
ется конструкцией из символов.
Приведем еще примеры связей. Нам нередко приходилось читать, что по-
лицейский, задержав преступника, приковывает его к себе. При этом совер-
шенно безразлично, какой ’’ветвью” он присоединит наручники к себе, а ка-
кой к преступнику. Наручники представляют собой связь, имеющую две
одинаковые ветви (связь второго ранга и первого жанра). Иное дело, если
бы мы имели наручники, которыми человека можно сковать со слоном.
Здесь была бы связь второго ранга и второго жанра, ее ветви были бы раз-
личны. Связь третьего ранга и третьего жанра существует в семье, состоящей
из мужа (отца), жены (матери) и ребенка. Эта связь уже не является графи-
ческой, как в текстах, или физической. Она является моральной, юридичес-
кой, социально-экономической, эмоциональной. В этой же семье существует
и еще одна связь второго ранга и второго жанра между отцом и матерью как
супругами.
Но конструктивные элементы могут быть более сложными, чем отдельные
буквы. Рассмотрим например фразу
«Книга начата»
В ней два слова и неверно было бы утверждать, что слово ’’начата” следует за
буквой ”а” или за пробелом. Это слово следует за словом ’’книга”, и оба сло-
ва при этом играют роль конструктивных элементов. Вводя связи следова-
ния нового вида, мы могла бы написать
(книга) -+ (начата) ->•
где скобки показывают, что каждое слово при построении фразы использует-
ся как целое, как бы заключено в ’’прозрачную” оболочку.
В обычном тексте связь, начинающая фразу, передается тем, что первая
буква первого слова является прописной, продолжающая связь передается
пробелом, а заканчивающая фразу связь выражена точкой (т. е. графическим
знаком). В более сложных текстах используется еще ряд связей и в оболоч-
ки могут быть заключены не только слова, но и целые фразы (при этом обо-
лочки оказываются вложенными друг в друга). В последнем примере мы
28
приходим к новому понятию, к понятию оболочки. Однако, оказывается, что
оболочку можно представить с помощью букв и связей.
Введем специальную букву, которую назовем группировочной и для иных
целей использовать не будем, и особый вид связей — группировочных, имею-
щих второй ранг и второй жанр. Группировка конструктивных элементов
будет заключаться в том, что мы будем их связывать группировочными связя-
ми с группировочной буквой. При этом будем следить за тем, чтобы группи-
руемые конструктивные элементы взаимодействовали с ветвями второго
жанра группировочных связей, а группировочная буква — с их ветвями пер-
вого жанра (рис. 2.1).
Оболочкой называется совокупность группировочной буквы и соответст-
вующего числа взаимодействующих с ней группировочных связей. На схемах
оболочку будем часто изображать в виде замкнутой линии, окружающей
заключенные в нее конструктивные элементы (рис. 2.2).
Рис. 2.1. Сгруппированная конструкция
Рис. 2.2. Конструкция, заключенная
в оболочку
Если связь (ранга г) связывает конструктивные элементы, которые все
заключены в некоторую оболочку, то будем считать, что она тоже находится
внутри этой оболочки. Если все конструктивные элементы, связанные неко-
торой связью, находятся вне оболочки, то и связь считается находящейся вне
оболочки. Наконец, если часть конструктивных элементов, связанных
связью, находится внутри оболочки, а другая часть вне нее, то связь считает-
ся пронизывающей оболочку. Все эти детали мы описываем так подробно по-
тому, что, хотя на схемах оболочка изображается непрерывной замкнутой ли-
нией, в действительности она непрерывной не является.
Наконец,отметим, что если конструктивным элементом является нечто,
заключенное в оболочку, то фактически соответствующая ветвь связи, вза-
имодействующая с этим конструктивным элементом, взаимодействует с
группировочной буквой упомянутой оболочки (рис. 2.3).
► к —► н —►и►г —►а —
Рис. 2.3. Фактическая связь конструкций, заключенных в оболочки
29
Таким образом, символьные конструкции в своем составе могут иметь
элементы трех видов: буквы, связи, оболочки.
2.2. ТОЧНОЕ ОПРЕДЕЛЕНИЕ СИМВОЛЬНОЙ КОНСТРУКЦИИ
Робот — устройство настолько сложное, что для отображения в нем карти-
ны внешней среды или картины действий эффекторов могут потребоваться
очень сложные символьные конструкции. В связи с этим целесообразно при-
вести полное математическое определение символьной конструкции, не огра-
ничиваясь частными случаями или примерами. Для большей простоты мы
разделим это определение на части. Предварительно скажем несколько слов
об определении вообще.
Понятия математики можно разделить на две группы: первоначальные,
или неопределяемые; производные, или определяемые. Первоначальные по-
нятия должны быть очень подробно описаны и разъяснены. В современных
дедуктивных математических дисциплинах первоначальные понятия должны
быть выражены в аксиомах теории. У нас примерами неопределяемых поня-
тий могут служить понятия буквы, связи, ветви связи. Производные понятия
должны быть выражены через другие понятия, которые являются либо пер-
воначальными, либо уже определены. Примером такого понятия служит обо-
лочка.
Каким же образом определяют новые понятия? Общеизвестным видом яв-
ляется так называемое прямое определение. Например, можно сказать: ’’По-
ни — это порода лошади, рост которой не превосходит 100 см” Я не берусь
утверждать, что мое определение совпадает с применяемым в коневодстве,
но это — определение. Понятие ’’пони” определяется в нем через уже извест-
ные (или предполагаемые известными) понятия ’’порода лошади”, ’’рост”,
”100”, ”см”. Второй пример возьмем из геометрии. ’’Две прямые, лежащие
в некоторой плоскости, называются параллельными, если они либо совпада-
ют, либо не пересекаются”. Здесь понятие ’’параллельность прямых” выраже-
но через понятия ’’плоскость”, ’’прямая”, ’’лежать”, совпадение”, ’’пересече-
ние”
Иногда допускают ошибку в прямом определении, заключающуюся в
том, что в качестве одного из уже известных понятий берут понятие, которое
само выражено через определяемое. Прямое определение при этом ’’замы-
кается”, превращаясь в так называемый порочный круг. В математике по-
рочные круги считаются недопустимыми. Порочный круг получился бы, если
бы мы сказали: ’’Верблюд, имеющий два горба, называется двугорбым
верблюдом. При этом верблюдами называются безгорбые верблюды, одно-
горбые верблюды и двугорбые верблюды”. Это определение, по существу,
30
содержит два более простых определения, которые вместе образуют пороч-
ный круг. Из такого определения нельзя узнать, ни что такое верблюд, ни
что такое двугорбый верблюд.
Если вдуматься в логическую структуру приведенных определений, то
можно заметить, что каждое определение называет новое понятие, приводит
уже известные понятия и с помощью остальных своих слов формирует со-
держание нового понятия через уже известные. Можно представить себе, что
каждое определение содержит оператор1, перерабатывающий известные по-
нятия в определяемое. В наших примерах такие операторы либо выделяли
часть объема одного из известных понятий с помощью других понятий, либо
объединяли объемы нескольких понятий. Например, в определении парал-
лельных прямых из класса всех пар прямых плоскости, в которые входит
данная прямая, сперва выделялись два подкласса: сливающихся прямых и
непересекающихся прямых (”за бортом” оставались все пары пересекающих-
ся, но не сливающихся прямых), а затем эти два подкласса объединялись.
Таким образом, операторы определений не расширяли объем понятий.
Нужно отметить, что возможны операторы, которые расширяют объем
понятий. Например, оператор определения ’’Строкой букв называется резуль-
тат, который получится, если к строке букв приписать еще одну букву” яв-
ляется расширяющим. Правда, последнее определение - порочный круг, так
что это расширение понятия все же ничего не дает. Но оказывается, что если
такое циклическое определение дополнить удачно выбранным прямым опре-
делением, то получится вполне продуктивное определение. Например, можно
было бы сказать: ’’Строкой букв называется 1) отдельная буква, а также
2) строка букв, к которой приписана еще одна буква”. Это уже не порочный
круг. Прямая часть определения позволяет задать некоторый начальный объ-
ем понятия ’’строка букв” (она задает все однобуквенные строки букв), а
циклическая часть с помощью многократных повторений расширяет этот
объем (включает в него сначала все двухбуквенные строки, потом все трех-
буквенные и т. д.).
Определения такого вида, имеющие прямую часть и циклическую часть с
расширяющим оператором, называются рекурсивными, или, точнее, опреде-
лениями по индукции.
Сделав вышеприведенные разъяснения о структуре определений, мы мо-
жем теперь приступить к уточнению понятия символьной конструкции.
Определение 1. Конструктивным элементом называется или отдельная
буква, или несколько конструктивных элементов, заключенных в оболочку,
или произвольная конструкция, заключенная в оболочку.
1 Оператор - описание операции.
31
Это определение рекурсивно. Его прямая часть объявляет конструктив-
ными элементами отдельные буквы. Циклических частей у него две: одна
’’короткая”, объявляющая конструктивным элементом то, что получится,
если несколько (отдельных) конструктивных элементов заключить в обо-
лочку (рис. 2.4), а вторая — ’’длинная”, содержащая в своем составе еще не
приведенное определение символьной конструкции.
Рис. 2.4. Схема сложного рекурсивного определения понятия
символьной конструкции
Определение 2. Связь называется насыщенной, если число связанных ею
конструктивных элементов равно ее рангу.
Определение 3. Два конструктивных элемента, каждый из которых не
внутренний для другого, называются непосредственно связанными, если су-
ществует связь, которая одной ветвью взаимодействует с одним из них (или
с внутренним для него конструктивным элементом), а другой ветвью - с
другим (или с внутренним для него конструктивным элементом).
Определение 4. Два конструктивных элемента называются связанными в
одном из двух случаев: 1) если они непосредственно связаны; 2) если су-
ществует третий конструктивный элемент, с которым первый связан и кото-
рый непосредственно связан со вторым.
Определение 4 является рекурсивным. Первая его часть говорит, что эле-
менты связаны, если они являются непосредственно связанными, а вторая
часть, циклическая, — что, кроме того, элементы связаны, если они являются
первым и последним в цепочке непосредственно связанных элементов.
Определение 5. Конструкцией (точнее символьной конструкцией) назы-
вается или пустое множество, или отдельный конструктивный элемент, или
совокупность нескольких конструктивных элементов, которой соответству-
ет некоторое количество связей,причем каждая из указанных связей насыще-
на конструктивными элементами из названной совокупности и каждые два
конструктивных элемента из названной совокупности связаны связями из
числа указанных.
Теперь мы имеем полное и строгое определение символьной конструкции.
Ранее описанные слова и последовательности слов являются частными видами
конструкций.
32
В определении 5 мы указали один частный случай символьной конструкции: пустое
множество. С этим случаем мы уже встречались, когда в § 2.1 говорили о пустых сло-
вах. Тем не менее сделаем некоторое разъяснение понятия ’’пустое множество” В мате-
матике множеством называется абстрактный предмет, являющийся совокупностью
(коллекцией, собранием) других предметов, называемых элементами множества.
Отношение между элементом множества и множеством обозначают символом G, так
что запись a G А означает ”а является элементом множества А ”. Множества равны (оди-
наковы) , если они состоят из одних и тех же элементов. Примерами множеств являются
стадо быков, куча камней, содержимое мешка гороха и т. п.
Если некоторые элементы множества А являются элементами множества В и других
элементов множество В не содержит, то В называется подмножеством или частью мно-
жества А. При этом пишут В с А. Знак с обозначает отношение, существующее между
частью и всем множеством. Для удобства вводят понятия одноэлементного множества и
пустого множества. Первое состоит ровно из одного элемента, а второе не содержит ни
одного элемента. Но пустое и одноэлементное множества не являются просто матема-
тическими соглашениями. Например, отбрасывая от множества по одному его элементу,
мы после такой операции получаем новое множество. В конце концов, может быть,
мы получим одноэлементное множество, а на следующем шагу и пустое. При этом нуж-
но иметь в виду, что одноэлементное множество — это не то же, что его элемент, а про
пустое множество нельзя говорить, что это ’’ничто”. Пустое множество считается частью
любого множества.
Следует обратить внимание на такую тонкость. Все элементы любого множества меж-
ду собой различны и каждый из них хотя бы чем-нибудь отличается от любого другого
элемента, принадлежащего тому же множеству. Это кажется удивительным только на
первый взгляд. Ведь и в природе все предметы между собой различны. Даже близнецы
отличаются друг от друга хотя бы тем, что занимают разное место в пространстве. ’’Оди-
наковые” предметы тоже различны, они только в каком-то смысле похожи друг на друга.
На рис. 2.5 показаны примеры различных символьных конструкций.
Если в некоторой символьной конструкции мы можем указать оболочку,
такую, что ни одна связь не связывает конструктивные элементы, заключен-
ные внутри нее, с конструктивными элементами, находящимися вне ее, то
Рис. 2.5. Простейшие символьные конструкции:
а - матрица; б - дерево; в - кольцо; г - конструкция, содержащая две оболочки ,
одна из которых пустая, а другая неразделяющая (связь 5 проникает сквозь нее) ; д -
конструкция, содержащая в оболочке две несвязанные между мобой буквы
2 Зак. 1586
эту оболочку называют разделяющей. В противном случае (при наличии свя-
зей, проникающих сквозь оболочку) ее называют неразделяющей.
Из определения конструкции мы знаем, что внутри оболочки может за-
ключаться либо некоторая (более простая) конструкция, либо несколько
несвязанных между собой конструктивных элементов.
Если в составе конструкции К содержится разделяющая оболочка, заклю-
чающая в себе (группирующая) конструкцию К1, то К9 называется под кон-
струкцией конструкции К. При этом пишут К9 С К, где знак С читается ’’яв-
ляется подконструкцией” и обозначает отношение, существующее между
подконструкцией и конструкцией. Мы видим из определения, что сама кон-
струкция К своей подконструкцией не является. Конструктивный элемент
может быть подконструкцией, если он один сгруппирован разделяющей обо-
лочкой.
2.3. АЛФАВИТЫ. КЛАССЫ СИМВОЛЬНЫХ КОНСТРУКЦИЙ
Для того чтобы ограничить число видов применяемых букв, обычно по-
ступают следующим образом. Выбирают некоторое слово, все буквы кото-
рого попарно различны, и уславливаются никаких букв, кроме тех, которые
одинаковы с буквами взятого слова, не применять. При этом указанное вы-
ше слово называют алфавитом (букв). Всякую букву, одинаковую с одной
из букв алфавита, называют буквой в этом алфавите. Например, если
А = абвгдежзик
является алфавитом, то ”б” — буква в Л, а ”р” — не является буквой в А.
Слово, образованное из букв в А, называется словом в А.
Если бы мы ограничились конструкциями, являющимися словами, то опи-
санный прием был бы для нас вполне достаточен, так как число видов связей
следования ограничено (их три). Очень часто так и делают. Но для нашей
цели слова как символьные конструкции слишком бедны. С их помощью
без специальных ухищрений нельзя даже описать предложения естественно-
го языка. Правда, ухищрения эти довольно примитивны. Нужно все буквы
(прописные и строчные), а также знаки препинания и пробелы считать бук-
вами. Тогда любой текст можно считать словом. Но в более сложных случаях
такой прием уже недостаточен. Для каждого нового вида конструкций, что-
бы их изобразить словами, приходится изобретать новый прием. Итак, нам
нужно найти способ ограничивать число применяемых видов связей, но не
ограничивать сложность конструкций.
Для этого можно рассматривать связи как буквы и задать их алфавит.
Но это невозможно сделать в той области, в которой они являются связями.
Однако ничего страшного в этом нет. Алфавит связей, как впрочем и алфавит
34
букв, относится не к упомянутой области, а к области, в которой мы упомя-
нутую область описываем, по существу, к области теории.
Итак, для ограничения числа видов применяемых букв и применяемых
связей нужно задать два алфавита: букв и связей. Предполагается, что груп-
пировочная буква и группировочная связь в эти алфавиты не входит. Поэто-
му, если в рассматриваемом классе конструкций используются и оболочки,
то задают еще однобуквенный алфавит оболочек. Если А — алфавит букв,
В - алфавит связей, aS- алфавит оболочек, то запись (А, В) означает
класс конструкций, в котором используются буквы в Л и связи в В. Запись
(А, В, S) означает класс конструкций, в которых,кроме того,используются
оболочки.
Если в рассматриваемой области (как,например, при традиционном пред-
ставлении слов) связи изображаются не символами, а как-либо иначе, то при
записи алфавита связей их можно как-нибудь обозначить, но обязательно
иначе, чем буквы.
Алфавит характеризуется не только своим буквенным составом, но и по-
рядком следования букв. Этот порядок называют алфавитным, или лекси-
кографическим .
Алфавиты можно объединять и пересекать. Если А и С — два алфавита, то
их главное пересечение получают так: просматривают алфавит А и выписы-
вают только те его буквы, которые являются буквами в С. Получаемый при
этом алфавит обозначают А П С. В последнем алфавите можно переставлять
буквы. При этом будут получаться другие (но уже не главные) пересечения
алфавитов А и С. Главное объединение алфавитов А и С получим, приписы-
вая к алфавиту А те буквы алфавита С, которые не являются буквами в А,
сохраняя их порядок. Переставляя буквы в этом новом алфавите, получают
другие (уже не главные) объединения алфавитов Л и С. Главное объединение
АиС обозначают A UC
Предположим, что
А = абвгдежз С = фуаврмк
Тогда
А АС = ав A U С = абвгдежзфурмк
Заметим, что, пересекая два алфавита, мы можем получить результат, не
содержащий ни одной буквы, т. е. пустой алфавит. Поэтому целесообразно
допустить существование пустого алфавита. Иначе при операциях над алфа-
витами результата могло бы не быть и такая возможность заставляла бы нас
постоянно контролировать, не исчезает ли результат пересечения алфавитов.
Это постоянно отвлекало бы внимание. Если А - пустой алфавит, то пишут
А = ф.
2:
35
2.4. СВЯЗИ И ОТНОШЕНИЯ
Современная абстрактная алгебра рассматривает связи как отношение между связы-
ваемыми ими элементами. Алгебра потому и называется абстрактной, что, изучая раз-
личные объекты, оставляет в стороне все их свойства, которые в этой науке считаются
несущественными. Понятие отношения в абстрактной алгебре выглядит так. Предполо-
жим, что М - некоторое множество. Образуем всевозможные наборы по п элементов
этого множества. В каждом наборе считается, что каждый из вошедших в него элемен-
тов стоит на определенном месте. Например, если множество состоит из букв ”а”, ”б”,
”в”, ”г”, ”д”, то при п = 3 из элементов этого множества можно образовать наборы (а,
а, а), (а, а, б),..., (а, б, в),..., (д, д, д).
Но вернемся к общему случаю. Множество всех наборов по п элементов обозначают
Мп. Его элементами являются указанные наборы. Предположим теперь, что Ф - некото-
рое подмножество множества Мп. Тогда о членах каждого набора п элементов множест-
ва М, если набор принадлежит Ф, говорят, что они находятся в отношении Ф. Например,
если (хь х2, , хп) G Ф, то х2, • . ., хп находятся в отношении Ф. При этом пишут
Ф (*ь х2, ...»х^). Отношение Ф называют «-местным. ,
Для того чтобы ввести понятие одноместного отношения, полагают, что М - М.
Элементами М являются ’’наборы” вида (fli), (а2), , где alf а2, - элементы
множества М. Другими словами, каждый набор, входящий в М , является элементом
множества М. Любое подмножество множества М , а значит и множества М, является
одноместным отношением, заданным на М.
Предположим, что ф - такое подмножество. Если некоторый х - элемент множества
М удовлетворяет этому отношению, т. е. если х Е , то пишут (х).
Одноместные отношения называют унарными, двухместные - бинарными, трехмест-
ные - тернарными.
Понятия множества и отношения в настоящее время широко известны, и люди, за-
нимающиеся наукой, любят применять абстрактную алгебру и, в частности, эти понятия.
Они считают это признаком солидности. У таких любителей абстрактной алгебры может
возникнуть вопрос ’’почему мы ею не пользуемся?” Ответ прост: абстрактная алгебра
для описания символьных конструкций неудобна, неплодотворна. Покажем это на
простейшем примере.
В качестве символьной конструкции рассмотрим слово
параметр
Указывая явно все связи между буквами, получаем
*->п ->а ->р “>а ~>м ~>е ->т ->р
Это и есть самое полное описание данной символьной конструкции. Опишем ее теперь
средствами абстрактной алгебры. Для этого представим ее в виде множества, на кото-
ром заданы некоторые отношения. Все элементы множества должны быть различны;
чтобы этого добиться, нужно или снабдить одинаковые буквы пометками, либо ввести
унарные отношения, которые говорили бь; о том, какую букву обозначает элемент мно-
жества. При этом нужно помнить, что порядка среди элементов множества нет и его на-
глядно можно представить себе так: .
р 1 м al
Мр п т .
а
36
На этом множестве должны быть заданы два одноместных отношения, позволяющих
найти начало и конец слова, и одно бинарное отношение, показывающее, как буквы сле-
дуют друг за другом. Эти отношения будут иметь вид:
Я = {п); С= {(п,а), (а,р), (р, al), (а1,м), (м,е), (е,т), (т, pl)}.
Кроме того, должно быть задано отношение равенства букв
Р = {(a, al), (р, pl)} .
Итак, слово ’’параметр” имеет алгебраическую структуру, т. е. является совокуп-
ностью вида (М, И, К, С, Р). Простота последней записи иллюзорна. Ведь для ее понима-
ния нужно знать и все предыдущие записи.
Мы рассмотрели первую из вышеуказанных возможностей; рассмотрим вторую.
Пусть теперь слово представлено в виде множества
М1 = х2, х3, х4, х5, х6, х7, х8},
в котором индексы служат лишь для установления различия элементов, а вовсе не для
указания их взаимного расположения. В последнем случае в замаскированном виде бы-
ло бы задано отношение следования, а я хочу указать все отношения явно. По-прежнему
должны быть заданы отношения начала, конца и следования:
н' ~ {*2}’ к' = {xs} ’ С' ~ хэ)> *1)> (*3>*4). (*4 Х6), (Х6,Х7), (Х7,Х8),
(х8, Х5)}
Кроме того, нужно было бы задать шесть унарных отношений, задающих вид букв. Обо
значим для удобства эти отношения теми буквами, вид которых они задают:
а= {х,,х4},е= {х7 } , м = {х6} , п = (х2) ,р = {х3,х5},т = {х8}
Теперь слово ’’параметр” будет передано в виде алгебраической структуры (М\ Н*
К ,С , а,е,м,п,р,т).
Другие способы описания слов средствами абстрактной алгебры я приводить не ста-
ну. Они аналогичны рассмотренным. Неудобство всех этих способов не ограничивается
их сложностью, которая читателю, надеюсь, ясна. Оказывается, что даже локальное из-
менение рассматриваемого слова вызывает очень значительные изменения в его алгеб-
раическом описании. Это связано с тем, что все отношения заданы на основном мно-
жестве. Например, в последнем случае, отбрасывая первую букву, т. е. ”п”, мы не толь-
ко исключим отношение ”п” и, понятно, изменим множество М , а также отношение
Н , что естественно, но и изменим отношение следования С , хотя фактически оно оста-
лось тем же самым, только проверять его для буквы ”п” не нужно.
Из приведенного нами сравнения описания одних и тех же объектов средствами сим-
вольных конструкций и средствами абстрактной алгебры вовсе не следует, что абстракт-
ная алгебра плоха. Просто в данном случае она неудобна. Менее абстрактный аппарат
символьных конструкций лучше и проще передает свойства изучаемых нами объектов
носителей информации.
2.5. ОПЕРАЦИИ НАД СИМВОЛЬНЫМИ КОНСТРУКЦИЯМИ
Комбинация сигналов — это символьная конструкция. Как мы уже знаем,
информация всегда существует в виде некоторой комбинации сигналов, т. е.
в виде некоторой символьной конструкции.
37
Преобразованием символьной конструкции называется всякое внесение в
нее изменений, результатом которого является опять символьная конструк-
ция.
Иногда бывает задано какое-либо условие. Проверить, выполнено ли оно
для рассматриваемой символьной конструкции, — это значит, не изменяя
конструкции, поставить ей в соответствие так называемую логическую бук-
ву, т. е. либо букву, предназначенную для обозначения слова ’’истина” (если
условие выполнено), либо другую букву, означающую ’’ложь” (если условие
невыполнено). Рассматриваемая символьная конструкция всегда бывает под-
конструкцией некоторой более обширной конструкции, остальные части ко-
торой мы не рассматриваем. ’’Поставить в соответствие” - это значит связать
логическую букву с.’’невидимой частью” этой более обширной конструкции.
Проверка выполнения условия называется логическим действием.
Естественно, что как преобразование символьной конструктфи, так и ло-
гическое действие над ней можно описать в виде соответствующего конкрет-
ного правила. Иногда удается составить такое правило сразу для целого мно-
жества символьных конструкций. В этом случае преобразование или логичес-
кое действие называют массовым. Именно массовые преобразования и логи-
ческие действия имеют большое значение, и в дальнейшем речь пойдет только
о них.
Термин ’’массовый” носит чисто условный (а вернее - математический)
смысл. Он ничего не говорит о виде множества исходных конструкций, ко-
торое, в принципе, может быть бесконечным, конечным, одноэлементным и
даже пустым.
Очевидно, последовательность преобразований, в ходе которой, возмож-
но, производились и логические действия с целью выбора дальнейших преоб-
разований, тоже является преобразованием. Точно так же снятие копии с ис-
ходной конструкции, преобразование этой копии, выполнение логического
действия над результатом преобразования и отнесение полученной логичес-
кой буквы к исходной конструкции тоже является логическим действием.
Таким образом, преобразования и логические действия могут быть не только
одношаговыми, но и многошаговыми.
Преобразования и логические действия, которые для любого допустимого
исходного данного являются одношаговыми, называются операциями. С точ-
ки зрения математики между одношаговыми и многошаговыми преобразо-
ваниями и логическими действиями нет особой разницы. И те и другие яв-
ляются функциями (или, что то же, однозначными отображениями), кото-
рые любому допустимому исходному данному ставят в соответствие опреде-
ленный результат. Иное дело приложения к робототехнике. Здесь преобразо-
вания и логические действия выполняются устройствами. Очень существенно,
требуется ли выполнить один шаг или тысячу (расходуется различное время!).
38
На практике существует возможность многошаговое преобразование или
логическое действие превратить в одношаговое (в операцию) путем замены
применяемого устройства. В нашей теории это учитывается в виде волевого
акта — объявления какого-либо многошагового преобразования или логи-
ческого действия операцией.
Совокупность множества символьных конструкций некоторого класса
(А, В, S), множества операций и множества правил (их называют алгорит-
мами), определяющих многошаговые преобразования и логические дейст-
вия, будем называть областью применения. Этот термин мы уже раньше ис-
пользовали без его точного разъяснения.
Каждая область применения скрывает за собой некоторую систему управ-
ления или класс таких систем. Объявляя новую операцию, мы переходим в
новую область применения. Операции являются в ней простейшими преобра-
зованиями и логическими действиями, но за этой простотой в других об-
ластях применения могут скрываться очень сложные многошаговые процессы.
После приведенных разъяснений перейдем к точным математическим оп-
ределениям операций, которые позволят нам иметь дело с любыми областя-
ми применения.
Простейшими считаются так называемые натуральные операции, получив-
шие свое название потому, что умение их выполнять постулируется. Кто не
обладает этим умением, вообще не может изучать математику. К тому же
техника располагает простыми устройствами для их выполнения. Натураль-
ные операции задаются непосредственным описанием каждой из них.
При описании натуральных операций мы встретимся с простой символьной
конструкцией, известной под названием ’’квазислово”.
Квазисловом называется символьная конструкция, которая отличается от
слова тем, что одна из букв в ней связана специальной связью (которая на-
зывается выделяющей), имеющей первый ранг и первый жанр. Кроме связей
следования в каждом квазислове присутствует одна выделяющая связь.
Связанная ею буква называется выделенной. Квазислово не может быть
пустой конструкцией.
Квазислово, полученное из слова
м-> а-> м-> а-»•
путем выделения второй буквы, представляет собой конструкцию
Ф
->м->а ->м->а->*
Приведем перечень и описание натуральных операций, объединяя их в
группы в зависимости от вида исходного данного и результата.
I. Операции вида ’’слово ->слово”:
1. Аннигиляция. Однобуквенное слово преобразуется в пустое слово. На
практике этой операции соответствует стирание однобуквенного слова.
39
2. Генерация однобуквенного словах. Пустое слово преобразуется в одно-
буквенное слово х (при указании этой операции буква, входящая в х, долж-
на быть задана). На практике этой операции соответствует написание одно-
буквенного слова на чистом листе бумаги.
3. Сцепление двух слов. Иногда эту операцию называют конкатенацией.
Если даны два непустых слова, то эта операция заключается в замене закан-
чивающей связи первого слова и начинающей связи второго одной продолжа-
ющей связью. Исходным данным этой операции является упорядоченная пара
непустых слов, а ее результатом - одно слово. С операциями над упорядочен-
ными парами операндов каждый из нас знаком. Например, такой является в
арифметике операция вычитания. Операция, выполняемая над упорядочен-
ной парой операндов, называется двухместной, бинарной или операцией вто-
рого ранга, Все прочие натуральные операции выполняются над одним опе-
рандом. Такие операции называются одноместными, унарными или операция-
ми первого ранга.
Пример. В результате сцепления слов
•-►к ~>и-►л->0->• и —>м "*е “►т->р->•
получится результат
•^к ->и -►л ->о ->м -*е -►т >.
И. Операции вида ’’слово квазислово”:
4. Нахождение начала слова. Непустое слово преобразуется в квазислово
с выделенной первой буквой.
Пример. Здесь и дальше связи следования в словах и квазисловах опускаются.
Слово
рыба
после нахождения начала преобразуется в квазислово
Ф
рыба
5. Отключение. Рассматриваемое квазислово путем отбрасывания выделя-
ющей связи преобразуется в слово.
Пример. Квазислово ।
цифра
с помощью операции отключения преобразуется в слово
цифра.
III. Операции вида ’’квазислово-> квазислово”:
6. Продвижение вправо. В преобразуемом квазислове выделяющая связь
переносится на одну букву вправо.
Пример. Квазислово I
р ы ба
при продвижении вправо преобразуется в квазислово
Ф
рыба.
К квазислову ।
рыба
эта операция неприменима (некуда перенести выделяющую связь).
40
7. Продвижение влево. В преобразуемом квазислове выделяющая связь
переносится на одну букву влево.
Пример. Квазислово I
рыба
при продвижении влево преобразуется в квазислово
рыба,
а к последнему квазислову ее применить нельзя (некуда перенести выделяющую
связь).
8. Продолжение квазислова буквой х. Операция может быть применена
только к квазисловам, в которых выделена последняя буква. Заключается
она в том, что после выделенной буквы приписывается буква х. Для каждого
такого преобразования должна быть задана конкретная буква, являющаяся
значением х.
Пример. Продолжение квазислова ।
бор
буквой ”т” дает квазислово
ф
борт.
9. Отбрасывание конца. Все буквы, следующие за выделенной буквой
преобразуемого квазислова, отбрасываются.
10. Замена буквой х (где х — произвольная конкретная буква). Выделен-
ную букву преобразуемого квазислова заменяют буквой х, которая стано-
вится выделенной.
Пример. Квазислово 4
борт
после замены буквой л преобразуется в квазислово
болт.
IV. Операции вида’’конструкция ** слово”:
11. Линеаризация. Произвольная конструкция преобразуется в слово
специального вида (эта операция подробно описана в § 2.6).
12. Делинеаризация. Операция, обратная линеаризации. С ее помощью сло-
ва специального вида преобразуются в конструкции (см. § 2.6).
V. Логические натуральные операции:
13. Проверка непустоты. Соответствующее ей условие гласит: ’’Данное
слово непусто”.
14. Проверка начала. Соответствующее условие гласит: ”В данном квази-
слове выделена первая буква”.
15. Проверка конца. Проверяемое условие гласит: ”В данном квазислове
выделена последняя буква”
16. Проверка одинаковости букв. Условие гласит: ”В данном квазислове
41
выделенная буква одинакова с буквой х.” В качестве х может быть задана
любая буква.
Дадим общее определение операции. Операцией называется или 1) нату-
ральная операция или 2) отображение, соответствующее определенному (уже
разработанному) алгоритму, объявленное операцией.
Для того чтобы понять это определение, нужно ознакомиться с точным
смыслом слова ’’алгоритм” Мы это узнаем в гл. 4. Пока что ограничимся
неточным смыслом этого слова: алгоритм — это многошаговое преобразо-
вание символьной конструкции или многошаговое логическое действие. Из
гл. 4 нам станет ясно, что все операции, какие только возможны, конструи-
руются из натуральных операций путем построения алгоритмов и объявления
новых операций.
2.6. ЛИНЕАРИЗАЦИЯ И ДЕЛИНЕАРИЗАЦИЯ
Эти операции не так просты, как остальные натуральные операции, и, по-
жалуй, утверждение о том, что без умения выполнять эти операции нельзя
понимать математику, не так уже бесспорно. Но во всяком случае, не умея
выполнять эти операции, невозможно решить многие практические задачи.
Это с полной определенностью следует из известного основополагающего
труда А. А. Маркова [9].
А. А. Марков разработал теорию частного вида алгоритмов, названных им
нормальными, которые описывают преобразования слов. Чтобы нормальные
алгоритмы применить для преобразования других конструкций, нужно эти
конструкции сначала превратить в слова (линеаризовать), а потом результа-
ты превратить в конструкции соответствующего класса (делинеаризовать).
Марков, которому линеаризация и делинеаризация как общие операции
были еще неизвестны, полагал, что в каждом частном случае человек сумеет
произвести такие превращения. Но перед нами стоит более трудная задача.
Нам может потребоваться устройство, которое выполняло бы эти операции
без участия человека. Поэтому нам необходимо математическое описание
линеаризации и делинеаризации, пригодное во всех мыслимых случаях.
В процессе выполнения линеаризации и делинеаризации применяется опе-
рация произвольного выбора элемента конечного множества. В традицион-
ной теории алгоритмов эту операцию тщательно избегали из-за неопределен-
ности ее результата. Но оказывается, неопределенность можно устранить,
сочетая произвольный выбор с некоторыми другими операциями. Мы будем
его применять только в составе произвольной нумерации элементов множе-
ства, а устранять — построением всех мыслимых нумераций и выбора только
одной вполне определенной.
42
Опишем процесс подробнее. Номера будем представлять в виде слов, со-
ставленных из одинаковых букв, например из букв вида ”1” (палочка).
Количество букв в слове и будет являться номером. Предположим, что ну-
меруемое множество содержит п элементов. Теперь построим результат всех
возможных нумераций. Для этого снимем копию с перенумерованного мно-
жества, а в нем произведем перестановку номеров. Повторяем процесс до
тех пор, пока все возможные нумерации не будут получены. В конце процес-
са мы будем иметь п\ перенумерованных множеств. Э^от результат уже не
является неопределенным. Перестановки номеров можно производить с
помощью специальной функции, которая может быть всегда построена сразу
же после окончания случайной нумерации. Очень важно, что эта функция не
должна быть обязательно заранее заготовлена, так как тогда наш метод не
был бы универсальным (потому что потребное число таких функций не ог-
раничено : для каждого п требуется своя функция).
Покажем, как строится функция, преобразующая нумерацию. Через / обо-
значим номер системы нумерации, считая, что / = 1 для произведенной нами
произвольной нумерации. Очевидно, 1 < / < п\. Через i обозначим произ-
вольный номер элемента. Искомуя функцию обозначим через (4 /). Ее зна-
чением является номер при / -й нумерации этого элемента, который при слу-
чайной нумерации получил номер i. Функция (/, /) может быть задана таб-
лично. Определяющую ее таблицу построим, выполняя процесс, описанный
ниже.
1° Записать строку чисел, состоящую из единственного числа 1. Перейти
к п. 2.
2°. Полагать к = 1. Перейти к п. 3.
3°. К каждой из имеющихся к\ строк приписать справа число &+1. Перей-
ти к п. 4.
4° Для каждой из имеющихся к\ строк составить еще по к строк путем
обмена местами числа £+1 последовательно с каждым из чисел, стоящих сле-
ва от него. Перейти к п. 5.
5°. Если к + 1 = и, то процесс окончен; иначе — перейти к п. 6.
6°. Увеличить значение к на 1. Перейти к п. 3.
После выполнения описанного правила мы получим п\ строк, состоящих
(каждая) из чисел 1, 2,..., п, расположенных различным образом. Запишем
эти строки друг под другом так, чтобы получилась таблица из п столбцов и
п\ строк. Номер столбца будем считать значением /. а номер строки — значе-
нием /. Числа, расположенные в этой таблице, будем считать значениями
функции у (it /).
Пример 2.1. Дано множество из трех элементов (а, б, в} и результат произвольной
нумерации
а(2),б(1),в(3).
43
Построим для п = 3 функцию у? и с ее помощью определим пятый вариант ну-
мерации.
Составляем строку из одной цифры (в соответствии с п. 1°):
1.
Полагаем к = 1 (в соответствии с п. 2°). К каждой из имеющихся строк, количество ко-
торых к\ = 1! = 1, приписываем число к + 1 = 2 (в соответствии с п. 3°). Получаем строку
1, 2.
В силу п. 4° строим еще одну строку, переставляя 2 с числом, стоящим слева от него.
Теперь имеем две строки
1, 2
2, 1
Так как (см. п. 5°) к + 1=2^3=л,то увеличиваем к на единицу, т. е. делаем к = 2 и
о О
переходим к п. 3
Далее к каждой из имеющихся в количестве к\ =2! =2 строк приписываем число
£+1=2 + 1=3. Получаем
1, 2, 3
2, 1, 3.
Для каждой из этих строк (в соответствии с п. 4 °) составляем еще по к = 2 строки пу-
тем обмена тройки с числами, стоящими слева от нее. Получаем всего шесть строк
1, 2,3 2, 1,3
1, 3, 2 2, 3, 1
3, 1, 2 3, 2, 1
В соответствии с п. 5° прекращаем процесс, так как к + 1 = 2+ 1=3= л.
Теперь строим таблицу значений функции (i,j) (табл. 2.1).
Таблица 2.1. Значения функции <р (i, f) для п = 3
J i 1 2 3
1 1 2 3
2 1 3 2
3 3 1 2
4 2 1 3
5 2 3 1
6 3 2 1
Из этой таблицы видно, что (1,5) =2; (2,5) = 3: (3,5) =1. Искомый пятый ва-
риант нумерации в нашем случае будет
а(3), 6(2), в(1).
Теперь, перейдем к рассмотрению операции линеаризации. Пусть К -
некоторая конструкция класса (Л, В, S), где А - алфавит букв, В — алфавит
связей, S - алфавит оболочек (содержит одну оболочку, т. е. одну группиро-
вочную букву и одну группировочную связь). Как известно, эти алфавиты
44
между собой не пересекаются. Включим группировочную букву в качестве
последней в алфавит Л, а группировочную связь в качестве последней в ал-
фавит В. Новые алфавиты обозначим соответственно через А ' и В Выбе-
рем алфавит С, не пересекающийся ни с A F , ни с В' , число букв которого
равно наивысшему жанру связей, описанных в В' Кроме того выберем од-
нобуквенный алфавит D, не пересекающийся ни с А \ ни с В , ни с С. Для
определенности положим, что D = I. Выбрав эту именно букву, мы нисколь-
ко не уменьшаем общности наших рассуждений, так как если бы она входи-
ла в один из алфавитов A f , ВF и С, то вместо нее мы взяли бы другой
символ.
Образуем новый алфавит Е = А 1 UBr UC UZZ В результате линеаризации
нами будет получено слово в Е. Это значит, что, если в некоторой области
применения должна использоваться линеаризация, то набор символов заранее
должен быть выбран достаточно обширным.
Для удобства дальнейшего описания условимся буквы алфавита A ' обо-
значать , а2, . , ап> буквы алфавита В' (т. е. обозначения связей) — ,
Ь2 , , буквы алфавита С - сх, с2,..., сг . В дальнейшем нам придется
слова в алфавите Е сравнивать по их алфавитному порядку. Я предполагаю,
что понятие алфавитного порядка читателю известно; это тот порядок, в ко-
тором слова располагают в словарях и энциклопедиях. Если мы имеем два
слова в одном и том же алфавите, то они называются равными, если состоят
из одинаково расположенных попарно одинаковых букв. Если они не равны,
то всегда одно из них по своему алфавитному порядку предшествует друго-
му. При этом предшествующее будем называть младшим, а последующее
старшим. Одно слово нестарше другого, если оно либо младше него, либо
равно ему. Только слова в одном и том же алфавите допускают сравнение по
алфавитному порядку.
Линеаризация производится так.
I этап. В конструкции К все оболочки представляют в виде группировоч-
ных букв с ’’исходящими” из них группировочными связями.
II этап. Нумерация связей. Сначала нумеруются все связи, присутствую-
щие в К и одинаковые с Ъх, затем все связи, одинаковые с Ь2, и т. д., пока не
будет исчерпан алфавит В'. При этом после каждой произвольной нумерации
конструкцию копируют и строят новые ее экземпляры со всеми возможны-
ми нумерациями связи данного вида. Каждую новую нумерацию производят
для каждой из полученных конструкций. После окончания этого этапа число
символьных конструкций со связями, помеченными номерами, равно Ni! X
X N2! .X Nm\, где Nj — количество связей вида bj, содержащихся в исход-
ной инструкции. Номера представлены строками, составленными из букв
в алфавите D.
III этап. В каждой из имеющихся конструкций ветви связей помечают
45
буквами в алфавите С: ветви 1-го жанра буквой 2-го жанра - буквой
с2, и т. д., г -го жанра — буквой сг .
Имея много конструкций, мы дальнейший процесс описываем только для
одной, так как для всех конструкций он аналогичен, и сохраняем для этой
конструкции обозначение К.
IV этап. Нумерация ветвей связей. У каждой связи просматривают ветви
и помеченные одинаковыми буквами нумеруют. Например, если буквой с2
помечена в данной связи только одна ветвь, ей присваивают номер I, если
же — три ветви, то они получают номера 1,11 и I 11. После каждой случайной
нумерации строят результаты всех возможных нумераций.
После выполнения предыдущих этапов каждая ветвь получила обозначе-
ние в виде слова, построенного так: I I I .. .1. Замечу, что в преде-
лах одной конструкции нет двух ветвей, имеющих одинаковое обозначение,
и все обозначения имеют разный алфавитный порядок. Так, если связь Ь,
а ее ветвь с, причем номер связи 2, а номер ветви 3, то обозначением ветви
будет b I I с I I I. Обозначения ветвей связей будем называть их именами.
V этап. Для каждой конструкции К строят слово специального вида сле-
дующим образом.
Просматривают алфавит В', пока не найдут в нем букву, такую, что в К
содержится отвечающая ей связь (с номером I). Находят младшую из ветвей
этой связи (в смысле алфавитного порядка имени этой ветви) и тем самым
некоторую букву конструкции. Пусть это будет aiv Выписывают в порядке
возрастания алфавитного старшинства относительно Е сначала имена всех
’’входящих” ветвей группировочных связей, связывающих эту букву (если
такие имеются), а затем - всех остальных ветвей. После этого выписывают
букву Яц. Полученная строка называется фрагментом. Фрагментом назовем
также слово, которое образуется в результате присоединения к фрагменту
еще одного фрагмента, содержащего одну букву в А ' Далее имена ветвей
будут временно помечаться, например чертой снизу. Просматривая фрагмент
слева направо, находят в нем имя ветви, которое еще не подчеркнуто (а вна-
чале они все неподчеркнуты), и подчеркивают его. Это имя позволяет найти
в конструкции связь, которой принадлежит ветвь, имеющая указанное имя.
Самая младшая из еще неиспользованных ветвей этой связи, укажет нам но-
вую букву ai2 9 для которой нужно точно так же, как описано выше, постро-
ить элементарный фрагмент и приписать его к ранее полученному.
Если бы оказалось, что в конструкции все ветви данной связи уже исчер-
паны, мы, двигаясь по фрагменту (слева направо), подчеркнули бы следую-
щее имя связи и повторили исследование конструкции.
Процесс оканчивается, когда в фрагменте нечего больше подчеркивать
(неподчеркнутые имена ветвей исчерпались).
VI этап. После V этапа получено довольно многочисленное, но конечное
46
множество фрагментов, в каждом из которых все имена ветвей подчеркну-
ты. Отбразываем все подчеркивания. Имеем множество слов специального
вида. Из них выбираем любое, которое в алфавите Е нестарше всех других.
Это слово является результатом линеаризации.
Укажем ряд свойств линеаризации, которые при желании можно было бы
математически доказать.
1. Если заданы непересекающиеся алфавиты А, В, S, С и £>, то результат
линеаризации каждой конструкции — единственный.
2. В результате линеаризации после каждой группировочной буквы непо-
средственно расположены элементарные фрагменты сгруппированных ею
букв.
3. Порядок символов в алфавитах А и В существенно влияет на результа-
ты линеаризации (кроме отдельных частных конструкций).
4. Описанный процесс неприменим к конструкциям, не содержащим свя-
зей: однобуквенным и пустым.
Будем считать результатом линеаризации однобуквенной или пустой
конструкции, не содержащей связей, соответственно однобуквенное или
пустое слово.
В практике линеаризацию в чистом виде применяют редко. Обычно ее со-
четают с другими операциями и, объявляя это сочетание новой операцией,
имеют более простую операцию. В частности, полученный результат можно
сжать, заменяя в нем группировочные буквы парами скобок ” (”и”) ”. Дела-
ют это в несколько приемов.
а0 В результирующем слове находят группировочную букву, не группи-
рующую других группировочных букв, т. е. такую, что ни одному принадле-
жащему ей имени ’’исходящей” ветви группировочной связи не соответству-
ет имя ’’входящей” ветви той же связи, принадлежащее группировочной
букве.
б° Символ ”)” вставляют после последней буквы из сгруппированных
выбранной группировочной буквой. Удаляют все имена ветвей, связей, изо-
бражающих группировку с помощью указанной группировочной буквы, и,
наконец, ее саму заменяют символом ”(”. Всю строку вместе с охватываю-
щими ее скобками при дальнейшем выполнении процесса считают одной
буквой.
в0. Если еще не все группировочные буквы исключены, то возвращаются
к п. а0. Иначе процесс окончен.
Иногда бывает удобно иметь несколько видов оболочек. В этом случае
следует ввести несколько группировочных букв, тогда как группировочные
связи все могут быть однотипными.
Теперь коротко опишем делинеаризацию применительно к исходному сло-
ву, принадлежащему множеству слов, полученному выше после выполнения
47
V этапа. Она применима к любому из них, а также к однобуквенному слову
и к пустому. Будем считать, что известны алфавиты Л, В, S, С и D. По опре-
делению результатом делинеаризации пустого слова является пустая конст-
рукция, а однобуквенного слова — входящая в него буква.
В общем случае делинеаризация производится так:
1° Все связи следования в преобразуемом слове помечаются новым вспо-
могательным знаком (например, птичкой).
2° Находят в операнде имена ветвей, принадлежащих какой-нибудь связи
(имеющих одинаковую букву в В' и одинаковый номер за ней). Связывают
соответствующие этим ветвям буквы в А ’ связью необходимого типа, спо-
собом, который задается именами ветвей. Сжимают операнд, удаляя из него
использованные имена ветвей. Процесс повторяют, пока из оперенда не будут
удалены все имена ветвей.
3°. Все связи следования, помеченные птичками, удаляют.
После этого процесса будет получена искомая конструкция.
Обозначим делинеаризацию через d (Р), где Р - слово специального вида,
а линеаризацию - через I (К), где К - произвольная конструкция.
Если I (Кх) = I (/С2), то конструкции/G и/С2 называются одинаковыми
и при этом пишут = /С2. Выбор алфавитов С и Due влияет на одинако-
вость конструкций.
Легко видеть, что
K = d(l(K)),
но равенство
Р = 1((КРУ)
может быть и неправильным.
Операция линеаризации важна тем, что позволяет эффективно узнавать,
одинаковы ли конструкции. Как читатель увидит в дальнейшем, линеариза-
ция и делинеаризация очень важны при построении общего определения ал-
горитма, а значит и общей теории роботов.
2.7. ГЛОБАЛЬНЫЕ И ЛОКАЛЬНЫЕ ОПЕРАЦИИ
До сих пор мы рассматривали над конструкциями операции, которые
можно назвать глобальными, потому что в результате операции изменялась
вся конструкция. Например, при линеаризации конструкция преобразовыва-
лась в слово специального вида. При выполнении операции ’’нахождение на-
чала” слово преобразовывалось в квазислово. Рассмотрим теперь операции,
которые называются локальными.
Заметим, что при локальной операции вся конструкция переходит в новую
48
конструкцию, так что ее можно назвать и глобальной, но локальной можно
назвать не всякую глобальную операцию.
Пусть конструкция К содержит подконструкции К1, К'2, , Кп.
Предположим, что
эд,
где F - некоторая операция. Заменяя в конструкции К подконструкцию
/Сг на подконструкцию К", мы выполним над К локальную операцию.
Для такой операции введем специальное обозначение
к9 =f (/^эд2,...Х).
По отношению к К эта операция будет, конечно, и глобальной.
Проверку какого-либо условия для К1 будем называть локальной логи-
ческой операцией.
Локальные операции имеют чрезвычайно большое практическое значение.
Подчеркнем, что при локальных операциях их аргументами (операндами)
являются подконструкции, а их результаты (в случае преобразований) ста-
новятся подконструкциями совокупной конструкции. Не исключается слу-
чай, когда конструкция К'' не заменяет собой некоторую подконструкцию
К', а ’’подключается” к К в качестве новой подконструкции (для этого ее
предварительно заключают в разделяющую оболочку).
Употребленный нами выше знак =” широко известен под названием
знака присваивания и представляет собой ’’повелительную” форму равенства
(является приказом: ’’сделать равным”).
Глава 3
ФОРМАЛЬНЫЕ ЯЗЫКИ
3.1. КОРОТКО О ЕСТЕСТВЕННЫХ ЯЗЫКАХ
В Большой Советской Энциклопедии отмечается, что на Земле
существует свыше 2500 языков, на которых говорят более или менее много-
численные группы людей.
Язык — это средство общения людей. Как возникли языки, когда, как
они связаны с мышлением, как связаны между собой - это вопросы, о кото-
рых спорят между собой лингвисты.
Известно, что в коллективах животных, ведущих стадный образ жизни,
существуют зачатки языка в виде систем различных по характеру звуков,
издаваемых для передачи информации одними из них и понимаемых други-
ми. Видимо, человеческие языки произошли из подобных систем звуковых
49
сигналов, и, безусловно, их возникновение протекало, как часть процесса
возникновения самих людей. Что это был за процесс, мы знаем: это был про-
цесс общественного производства, и решающим рубежом в нем было начало
производства средств производства.
С точки зрения кибернетики язык является средством передачи информа-
ции, и возникновение языков имело место при формировании групп людей в
системы управления. Основным фактором, под влиянием которого происхо-
дило такое формирование, был общественный труд.
Первоначально человеческие языки имели только звуковую форму и су-
ществовали в головах людей, которые ими пользовались. Поскольку знания
каждого человека индивидуальны, то трудно очертить границы языков того
времени. Жесты в процессе общения играли подсобную роль.
На определенном этапе развития народов были созданы системы фонети-
ческой записи, позволившие любое устное сообщение передавать с помощью
небольшого числа символов. Такая запись допускала обратный переход —
к звуковой форме сообщения и в этом смысле была понятна любому инди-
видууму, владеющему соответствующим звуковым языком и правилами за-
писи — чтения. Всевозможные записи картинками и т.п. мы оставляем в сторо-
не, поскольку для нас они несущественны. Появление письменности знамено-
вало для каждого языка начало новой эры. Если до сих пор сохранение зна-
ний (сверх тех, которые можно зафиксировать в виде картинок) было воз-
вожно только в головах людей, то теперь оно стало возможным вне челове-
ческих голов и виде письменных текстов. Язык стал не только средством
общения людей, но и средством накопления знаний.
Кроме того, наличие письменности облегчило изучение самого языка:
его структуры, закономерностей его развития. С несомненностью было уста-
новлено, что каждый звуковой язык с течением времени изменяется. Приве-
дем лишь один пример, являющийся доказательством этого факта: сравни-
вая правила написания слов на каком-нибудь языке с правилами их произ-
ношения, мы заметим существенные различия. Так, по-русски пишут: ”я
заставил моего сына выкупаться”, а произносят: ”я заставил моево сына
выкупаца”. Еще больше расхождения между звуковой и письменной формой
языка во французском языке (например, пишут ”еаи”, а читают ”о”, что зна-
чит ’’вода”) и, тем более, в английском (запись ’’trough” произносится при-
мерно как ”тру”, что значит ’’через”).
В данной книге, которая вовсе не посвящена вопросам лингвистики, мы бу-
дем говорить лишь о языках в их письменной форме. Анализ большого числа
письменных языков показывает, что в каждом из них используется определен-
ный набор букв и дополнительных значков (например, знаков препинания).
В лингвистике между буквами и знаками препинания делают различие. В на-
шей теории они все называются буквами, а иногда буквой считается и пробел.
50
Элементарными носителями смысла в языках являются слова, однако
почти во всех языках есть слова, не имеющие самостоятельного смыслового
значения, а служащие для установления связи между другими словами (на-
пример, союз ”и”, предлог ’’над” и др.). Имеются и слова, смысл которым
приписывается в самом тексте (например, ’’собаке дали имя Фрушка”).
Словарный состав языка называют его лексикой. Лексика является сущест-
венной частью языка. Нужно отметить, что сами слова могут представлять
собой структуры, образованные из более простых частей, называемых мор-
фемами (корни слов, префиксы, суффиксы и др.)* В лингвистике науку о
строении слов называют морфологией. Из слов в естественных языках об-
разуют предложения, из которых могут быть составлены еще более сложные
предложения. Текст представляет собой последовательность предложений,
связанных по смыслу. Система правил построения предложений называется
синтаксисом. Система правил чтения (перевода в звуковую форму) называ-
ется фонетикой.
Поскольку язык является чрезвычайно сложным явлением, связанным с
историей, психологией, литературой и многими другими факторами, в линг-
вистике существует много различных и противоречащих одна другой точек
зрения. Я вдаваться в них не стану, тем более, что не являюсь лингвистом.
Обращу внимание читателя на некоторые особенности естественных языков
как средств передачи информации.
Первым из таких свойств является изменчивость естественного языка,
делающая тексты через некоторое время непонятными не только потому, что
одни слова ’’исчезают”, а другие появляются, но и потому, что многие слова
меняют смысл. Хотя изменчивость ествественного языка является его цен-
ным свойством, благодаря которому он остается постоянно живым, для нас
это свойство неудобно.
Вторым неудобным свойством для науки и особенно теории алгоритмов,
программирования и роботологии является расплывчатость смысла предло-
жений естественного языка. Например, если предложить в толпе выбрать
девушку в красной кофточке, то различными людьми будут выбраны различ-
ные девушки и цвет их кофточек окажется различным.
Третье неудобное свойство языка - зависимость смысла предложений от
неязыковых причин. Например, удар при рукопашной схватке — это одно, а
при игре в шахматы — совсем другое.
Очень неприятным является свойство многозначности слов и даже целых
предложений. Всем известны слова — омонимы (ключ — от замка, ключ —
источник, ключ — музыкальный, например скрипичный, ключ - гаечный и
т. п.), имеющие различный смысл. Существует немало и многозначных пред-
ложений. Например: ”у меня стол (кто, что?) заменяет стул” (кого, что?)
звучит так же, как ”у меня стол (кого, что?) заменяет стул” (кто, что?).
51
Пятым нежелательным свойством естественных языков является возмож-
ность в них парадоксальных предложений, которые на первый взгляд что-то
значат, но в действительности бессмысленны. Простейшим примером служит
фраза ’’Данное предложение ложно”. Читатель скажет: что же особенного в
этом предложении? Но давайте его проанализируем. Если оно истинно, что в
силу содержащегося в нем утверждения оно ложно. Значит, оно не может
быть истинным. Тогда оно, наверное, ложно? Если бы было так, то содер-
жащееся в нем утверждение было бы ложно, т. е. было бы неверно, что оно
ложно. Итак, это предложение ни истинно, ни ложно. В этом его парадоксаль-
ность.
А как вы расцените предложение ’’Наименьшее из натуральных чисел, каж-
дое из которых нельзя назвать с помощью менее чем семнадцати русских
слов, существует”? В нем утверждается существование некоторого числа.
Но какого? Требующего для своего названия не менее семнадцати русских
слов. Если читатель не поленится, то, посчитав слова, он увидит, что это число
названо с помощью 16 русских слов. Может быть, это предложение бессмыс-
ленно, как и предыдущее? Ничего подобного! В русском языке конечное
множество слов. Если бы мы их комбинировали по одному, по два и т. д., до
семнадцати и все эти комбинации использовали как названия чисел, то, даже
увеличив количество комбинаций путем всевозможных добавлений знаков
препинания, получили бы конечное множество названий, а множество нату-
ральных чисел, как известно, бесконечно. Значит, числа, каждое из которых
нельзя назвать менее, чем с помощью семнадцати русских слов, существуют.
В теории чисел доказано, что в любом множестве натуральных чисел существу-
ет наименьшее. Таким образом, приведенное предложение не бессмысленно и
даже истинно! А между прочим, оно говорит о том, о чем не может говорить!
Шестым нежелательным свойством, если не всех, то многих естественных
языков, является наличие синтаксических правил, зависящих от смысла язы-
ковых элементов, к которым они применяются. В русском языке одним
из таких правил является правило образования винительного падежа от су-
ществительных мужского рода. В этом правиле учитывается одушевленность
или неодушевленность существительного. Говорят ”я увидел волка” и ”я
увидел пень”, но не ”я увидел волк” и не ”я увидел пня”. А ведь одушевлен-
ность или неодушевленность — это уже часть смысла.
Седьмая особенность относится уже не к языку, а к его грамматике.
Исключения из грамматических правил вошли в поговорку: ’’нет правила
без исключения” Говорят даже: ’’исключения только подтверждают прави-
ло”. В действительности, правило вместе с исключениями — это и есть прави-
ло. Правило, имеющее исключения, — вовсе не правило. Я согласен, что
составить грамматику так, чтобы ее правила не имели исключений, во много
раз труднее, чем так, как она составлена. Да и язык нужно знать гораздо луч-
52
ше, чем его знают составители грамматик. Но можно было бы говорить не о
правиле с исключениями, а о частичном правиле, охватывающем не все случаи.
3.2. ПРИМЕНЯЕМАЯ ДАЛЕЁ ТЕРМИНОЛОГИЯ
Необходимо четко различать язык, на котором говорят (пишут), и язык,
о котором идет речь. Первый будем называть метаязыком по отношению ко
второму — языку-объекту.
Поскольку мы будем говорить всегда о письменном языке, то всегда бу-
дем указывать применяемый в нем алфавит. Мало того, будем указывать и
алфавиты связей и оболочек. Для нас предложение языка будет иметь фор-
му символьной конструкции.
Систему правил, по которым можно построить любую символьную кон-
струкцию - предложение, будем называть синтаксисом языка, не расчленяя
его на морфологию, орфографию и синтаксис, как это делают лингвисты. Со-
вокупность способов или правил, позволяющих предложениям придать
смысл, назовем семантикой языка.
В математике сложилась традиция языком называть множество всевоз-
можных предложений языка, не учитывая их смысла. И мы будем так посту-
пать. Языком будем называть множество символьных конструкций, соответ-
ствующих заданному синтаксису. Это вовсе не значит, что мы считаем пред-
ложение бессмысленными.
Когда символьные конструкции рассматриваются совместно с их смыс-
лом, язык будем называть наделенным семантикой. Термин ’’предложение”
сохраним. Термин ’’слово” будем употреблять не в лингвистическом смысле,
а в том, который нами введен раньше (частный вид символьной конструк-
ции).
3.3. ЧТО ТАКОЕ ФОРМАЛЬНЫЕ ЯЗЫКИ?
После того, как было познано, что такое язык, появились попытки соз-
дать искусственный язык. Упомянем один из таких языков — эсперанто.
Этот язык был создан в 1887 г. варшавским врачом Л. Заменгофом как
международный вспомогательный язык. Орфография языка — фонетическая
(между буквами и звуками точное соответствие). Эсперанто получил неко-
торое распространение, на нем существует небольшая по объему переводная
и оригинальная литература. Международным этот язык все же не стал, так
как он легок далеко не для всех людей (что понятно, если вспомнить, на-
сколько своеобразны синтаксисы различных естественных языков). Будучи
искусственным, эсперанто, однако, обладает большей частью черт, которые
в предыдущем параграфе мы отметили как нежелательные.
Известный немецкий математик Давид Гильберт в 1904 г., стремясь устра-
нить из математики все неточности, которые могут приводить к получению
противоречивых результатов, высказал идею о создании такого языка, на
котором все формулировки были бы совершенно точными и однозначными
и который позволял бы выводить из аксиом следствия не путем рассужде-
ний, а с помощью операций, преобразующих символьные конструкции не-
зависимо от их смысла. Описание такого языка, пригодного для изложения
части арифметики, приведено ниже.
Алфавит языка. В этом алфавите запятая не является буквой, поэтому
для увеличения наглядности я буду буквы алфавита отделять друг от друга
запятыми.
0, а, , +, Э, Л, V, “1, V, 3, = , (, ), как читатель видит, всего 15
букв.
Используемые связи — связи следования. Предложениями данного языка
являются слова. Кроме русского языка в состав применяемого нами метаязы-
ка включим пять латинских курсивных букв: s,t,x, А нВ.
Грамматика языка. Ограничимся тремя грамматическими категориями:
переменная, существительное (его будем называть словом терм) и предло-
жение (его будем называть формулой).
Правило 1. Если х — переменная, тох, тоже переменная. Других перемен-
ных нет.
Правило 2. а) 0 есть терм; б) каждая переменная есть терм; в) если s
и t — термы, то (s) + (t), (s)-(t) и (s)' являются термами; г) никаких
других термов, кроме определенных в предыдущих пунктах данного прави-
ла, нет.
Правило 3. а) если s и t — термы, то (s) = (I) является формулой; б) ес-
ли А и В — формулы, то (A) D (В), (А) Л (В), (А) V (В), “1 (А) - тоже
формулы; в) если х — переменная, а А — формула, то V х (А) и Зх (Я) то-
же являются формулами; г) никаких формул, кроме определенных в соот-
ветствии с предыдущими пунктами данного правила, нет.
Опишем семантику этого языка в виде табл. 3.1.
Таблица 3.1. Семантика арифметического языка
Символ или категория Смысл
0 Нуль
Переменная Символ, обозначающий целое неотрицательное число
+ Плюс
Умножить
(*)' Число, непосредственно следующее за s
D Влечет
Л И
54
Окончание табл. 3.1
Символ или категория Смысл
V "1 Vx Эх Или Не (неверно, что) Равно Для всех х Существует такое х, что
а<п. . , ап
п раз
Описанный арифметический язык позволяет совершенно точно выразить
все арифметические утверждения (в пределах трех операций — следования,
сложения и умножения), правда, иногда в виде очень длинных формул
(предложений). Заметим, что слово ’’или” в этом языке имеет неразделитель-
ный смысл (т.е. оно означает, что реализуется или первая возможность, или
вторая, или обе). Приведем несколько примеров предложений этого языка.
Равенство 1+1=2 выразится формулой ( ( (0)' ) + ( (0)' ) ) = ( ( (0)')'). Ут-
верждение, что ноль не следует ни за каким числом, запишется в виде форму-
лы “1(((а)' ) = (0)). Дословно оно читается как ’’неверно, что число, следу-
ющее за а, равно нулю”.
Читатель согласится, что арифметический язык является формальным. По-
пытаемся установить различия между естественными и формальными языка-
ми. Прежде всего мы замечаем, что
каждое предложение конструируется с помощью синтаксических правил,
для применения которых не нужно знать смысла элементов, из которых со-
ставляется предложение;
смысл каждого предложения нерасплывчат, совершенно четок; и это
обеспечивается не только семантикой, но и характером синтаксиса;
каждое предложение по своему смыслу совершенно однозначно;
на арифметическом языке нельзя ’’говорить” ни о нем самом, ни об от-
дельных его предложениях и поэтому в нем невозможны парадоксы, вроде
описанных выше для естественных языков.
Но такой язык не является живым, не может изменяться. Правда, множе-
ство мыслимых предложений (формул) бесконечно, но все они могут иметь
только арифметический смысл. Самое главное, что смысл каждого предло-
жения целиком и однозначно (при помощи семантической таблицы) опреде-
ляется его структурой, его формой. Нужно еще отметить, что число син-
таксических правил и семантических правил конечно.
55
3.4. ФОРМАЛЬНЫЕ ГРАММАТИКИ
Уже было сказано, что для описания языка-объекта должен быть известен
метаязык. В качестве самого первого метаязыка мы вынуждены применить
естественный (в данном случае — русский) язык. В предыдущем примере мы
так и сделали. Сейчас мы воспользуемся русским языком для того, чтобы
описать несложный и удобный метаязык, прйгодный для описания синтакси-
сов многих формальных (но, конечно, не всех) языков.
Условимся, что в формальных языках, для описания которых будет ис-
пользован создаваемый нами метаязык, никогда не будут применяться сим-
волы ”<”, ”>”, =” и ”1 ”. Первые два назовем угловыми скобками (соот-
ветственно открывающей и закрывающей). Текст на естественном языке,
заключенный в угловых скобках, будем считать метасимволом (т. е. одной
буквой, применяемой для описания языка-объекта). Это означает, что в дан-
ном применении такой текст нельзя разлагать на части или вносить в него
какие-либо изменения. Символ =” будем считать условной записью фра-
зы ”по определению есть”, а символ ”1 ” — обозначением слова ’’или”
Формальную грамматику запишем в виде последовательности так назы-
ваемых метаформул. Каждая метаформула начинается с метасимвола (со-
держащего угловые скобки), после которого стоит знак =”, а затем за-
писана правая часть формулы, состоящая из одного фрагмента или несколь-
ких фрагментов, разделенных знаками”!”. Фрагмент может быть пустым
(в этом случае ничего не пишут), состоять из одного слова (в частности, од-
нобуквенного) или представлять собой последовательность слов, записанных
без знаков раздела. В последнем случае фрагмент обозначает результат по-
следовательно (считая слева направо) выполненных операций сцепления
слов. Каждая метаформула определяет стоящий в ее начале метасимвол, как
групповое обозначение любых конструкций, указанных в ее правой части. Ес-
ли метасимвол присутствует несколько раз в одном или нескольких фраг-
ментах правой части, его экземпляры считаются между собой независимыми,
так что правая часть формулы обозначает множество конструкций со всеми
возможными значениями этого метасимвола.
Так как в метаформулах никак не указаны их границы, а применение
обычных знаков препинания приводит к смешению описываемого языка
с русским, который при этом является мета-метаязыком, то условимся каж-
дую метаформулу начинать с абзаца, после ее конца не ставить никаких зна-
ков препинания и следующий за ней текст начинать только с абзаца. В случае
необходимости перехода из строки в строку никаких знаков переноса ста-
вить не будем.
Рассмотренный метаязык известен под названием нотации Бекуса или Бе-
куса-Наура. Опишем с его помощью уже знакомую нам грамматику ариф-
метического языка.
56
< переменная > ” = а I < переменная >,
(терм > :: = О I ( переменная) 1((терм> )' I ((терм) ) + ((терм) ) I
((терм > ) ( (терм > )
( формула ) = ( ( терм > ) = ( ( терм ) ) I (формула) D ( ( форму-
ла >) I (( формула > ) Л (< формула) ) I ((формула ) ) V ((формула) ) I
“1 ((формула > )
Покажем, как с помощью этой грамматики получается уже знакомая нам
формула “1 ( ( (а)9 ) = (0) ). В силу первого фрагмента первой метаформулы
а есть ( переменная ) ; в силу второго фрагмента второй метаформулы а есть
( терм > ; в силу третьего фрагмента той же второй метаформулы (а)1 —
тоже ( терм > В силу первого фрагмента второй метаформулы 0 тоже
( терм > . С помощью первого фрагмента третьей метаформулы получаем, что
((а)1) = (0) есть ( формула > , а с помощью последнего фрагмента третьей
метаформулы узнаем, что “I ( ( (а)9 ) = (0) ) - тоже (формула >
Остается подвести итог наших рассуждений. Говоря о формальном языке,
мы всегда будем иметь в виду, что существует некоторое множество L сим-
вольных конструкций определенного класса (А, В, S), называемых предло-
жениями и построенных с помощью конечной системы однозначных правил,
называемых синтаксическими. Если это так, то кроме того существует не-
которое множество S (об элементах которого не делается никаких предпо-
ложений) и задана конечная система правил, называемых семантическими, с
помощью которых каждому предложению, принадлежащему L, ставится в
соответствие один единственный (или не ставится ни один) элемент из S.
Множество L называется формальным языком. Совокупность множеств
L, S и отображения, порождаемого семантическими правилами, называется
формальным языком, наделенным (формальной) семантикой.
Совокупность описания (А, В, X) класса символьных конструкций и
системы синтаксических правил называется формальной грамматикой.
Мы не требуем, чтобы предложения языка были обязательно словами или
последовательностями слов. Они могут быть конструкциями любого вида.
Мы не требуем также, чтобы синтаксические правила обязательно каким-ли-
бо способом ’’складывали” конструкции из исходящих морфем, как в есте-
ственных языках. Синтаксическое правило может предписывать выполнение
любого преобразования.
С помощью семантических правил можно понимать предложения фор-
мального языка. А вот ’’говорить” на нем они нам не помогут. Для этого не-
обходимы другие правила, которые определяют преобразование элементов
множества 5 в символьные конструкции, принадлежащие L, причем опреде-
ляемое ими преобразование должно быть обратным преобразованию, опре-
деляемому семантическими правилами. При разговоре двух людей на естест-
венном языке множество S представляет собой совокупность образов и по-
57
нятий, каким-то способом зафиксированных как в мозгу одного, так и в
мозгу другого собеседника. Один из них как-то отображает один из образов
или ’’мысль” на соотвествующее предложение естественного языка. Он гово-
рит. Другой, слыша предложение, каким-то способом производит его отобра-
жение на зафиксированный или на составленный в мозгу экземпляр того же
образа или той же ’’мысли”. Он понимает. Вот грубая модель применения
естественного языка. Как осуществляются прямое (когда говорят) и обрат-
ное (когда понимают) отображение, мы можем только предполагать. Этими
вопросами занимаются физиология, психология и, вероятно, еще другие нау-
ки. Обычно, поняв предложение, человек как-то перерабатывает содержащу-
юся в нем информацию. При пользовании формальным языком переработка
поступившего предложения может быть произведена и без этапа ’’понимания”.
По отношению к формальному языку ’’говорение” мы будем называть
генерацией предложения, а восприятие предложения, независимо от того,
происходит ли его ’’понимание” или оно поступает в переработку — его
рецепцией.
В роботах мы найдем и генерацию и рецепцию предложений формального
языка (а иногда и нескольких).
Теорию формальных языков, приспособленную к потребностям робото-
техники, мы будем называть кибернетической лингвистикой. Некоторые ее
проблемы играют большую роль в области применения ЭВМ и программиро-
вания, что вполне естественно.
Нотация Бекуса позволяет описывать формальные грамматики языков,
предложения которых являются словами, да и то не любые. Действительно,
рассмотрим весьма простой язык, для которого
(буква >" = а1б1в1г1д1е
< фраза >: I = < буква> -1 < фраза > < буква >
а вот предложение языка пусть получается путем сцепления двух одинако-
вых фраз. С помощью нотации Бекуса задать такой способ построения пред-
ложений нельзя потому, что метаформула
< предложение >:: = < фраза > < фраза >
кроме допустимых предложений, определяет как предложения и недопусти-
мые слова.
Тем не менее, нотация Бекуса играет и в практике и в теории значитель-
ную роль. Заметим, что если бы мы расширили набор операций, которые при-
меняются для конструирования предложений, т. е. обобщили нотацию Бе-
куса, то смогли бы построить грамматику и такого языка, о котором было
сказано выше. Например, введем операцию удвоения, которую будем обо-
значать двойкой, поставленной справа и выше закрывающей угловой
скобки. При этом необходимо, чтоб такая ’’подпрыгнувшая” двойка не
58
была буквой языка-объекта. В этом случае стала бы возможной мета-
формула
< предложение > II = < фраза)2
Обобщить рассмотренный способ формального описания грамматик фор-
мальных языков можно следующим образом. Пустьxlf х2, -.. ,хк метасим-
волы, являющиеся именами исходных символьных конструкций, называе-
мых морфемами. Пусть, кроме того, xk + i, х^ + 2, ..., хл, х* — метасимво-
лы^ являющиеся именами результатов операций над символьными конструк-
циями. Из этих метасимволов х* выделен, как обозначающий предложение
языка-объекта. Далее, пусть метасимволы ipi, </?2,..., <рт означают операции
над конструкциями. Формальная грамматика принимает вид совокупности
описания класса конструкций (A, В, S), которому принадлежат предложе-
ния языка-объекта, конечного множества морфем, снабженных именами х х,
х2,... ,х^, и конечного набора метаформул вида
X,-:: = <pv (xixxi2,...,xir),i> к,
где г — ранг операции . Среди метаформул одна или несколько должны в
левой части иметь х*.
Синтаксис принимает вид набора метаформул.
Построение предложений языка-объекта с помощью формальной грамма-
тики называется порождением предложения. Оно заключается в последова-
тельном выполнении метаформул (в любом возможном порядке и с любым
числом применений каждой из них), причем последняя из выполненных
должна в левой части содержать х*. В качестве операнда может быть взято
любое значение метасимвола, являющегося аргументом правой части мета-
формулы.
Интересный частный случай. Всякое конечное множество символьных кон-
струкций является формальным языком.
В этом легко убедиться, приняв заданные символьные конструкции
за морфемы и считая, что в левых частях всех метаформул стоит х* и все
операции, указанные в них, являются одноместными тождественными. Син-
таксис при этом примет вид: х* :: = xz, i = 1, 2,.. . Д.
Формальная грамматика с математической точки зрения является конеч-
ным (или, как говорят, финитным) описанием множества символьных кон-
струкций, которое, в принципе, может быть и бесконечным.
В практике приходится иметь дело с символьными конструкциями, фик-
сированными в запоминающих устройствах, объемы которых конечны, а
значит, и количества допустимых символьных конструкций оказываются
конечными, так что практически применяются либо конечные формальные
языки, либо их конечные подъязыки. Тем не менее, применяемые формаль-
ные грамматики редко бывают столь простыми, как в указанном случае.
59
Теория формальных языков для нас настолько важна, что целесообразно
привести еще две иллюстрации.
Пример 3.1. Общеизвестная десятичная система счисления представляет собой фор-
мальный язык. Покажем это, построив ее формальную грамматику. Ограничимся слу-
чаем целых неотрицательных чисел (только ради экономии места и времени). Морфема-
ми десятичной системы счисления являются однобуквенные слова, составленные из
букв в алфавите 0123456789. Запишем это в виде метаформулы
< цифра>::=0 111213141516 17 1819
Предложениями языка являются так называемые ’’записи чисел”, определяемые
следующей метаформулой:
< запись числа > ’ ’ = < цифра > I < запись числа > ( цифра >
Первый фрагмент этой метаформулы определяет, что запись числа может состоять
из одной цифры. Второй фрагмент говорит, что если к записи числа приписать какую-ни-
будь цифру, то опять получится запись числа. Так, 5, 59, 592 — это все записи чисел.
Пример 3.2. Предположим, что формальная грамматика из примера 3.1 является толь-
ко частью интересующей нас более сложной грамматики, содержащей еще метаформулу
< столбец > ’^ = < запись числа > I st (< столбец > < запись числа »
Пусть при этом s t (х. у) означает операцию подписывания у под х (при этом неявно
используется связь вертикального следования у за х). В силу первого фрагмента послед-
ней формулы ”02015” можно считать столбцом. В силу ее второго фрагмента столбца-
ми будут также
02015 02015
210 210
4915
и т. д.
Г лава 4
АЛГОРИТМЫ
4.1. ОТНОСИТЕЛЬНЫЙ ХАРАКТЕР ПОНЯТИЯ ТОЧНОСТИ
Этот маленький параграф посвящен очень важному вопросу.
Предложение формального языка называется точным, если все допусти-
мые реципиенты понимают его одинаково. Это утверждение, очевидно, мож-
но считать приемлемым и для предложения естественного языка (реципи-
ент — это объект, воспринимающий предложение). Но для формального язы-
ка оно имеет строгий смысл. Как уже было сказано, рецепция — это преоб-
разование предложения в элемент множества ’’смыслов”. Ясно, что каждый
реципиент тем или иным способом обладает этим множеством S. Вернее, он
обладает каким-то множеством S1, элементы которого с элементами множе-
ства S связаны взаимнооднозначным соответствием, причем соответствую-
60
щие друг другу элементы одинаковы. Вот эта одинаковость элементов, по-
лучаемых при рецепции, и составляет сущность понятия точности предло-
жения.
Мы уже говорили, что два объекта абсолютно одинаковы, только если они
являются одним и тем же объектом. Например, две какие-либо буквы дан-
ного текста не могут быть абсолютно одинаковы уже потому, что они распо-
ложены в различных местах на странице. Тем не менее, вовсе не бессмыслен-
но говорить, что какие-либо объекты одинаковы. Нужно только иметь в ви-
ду относительный смысл этого утверждения. Условие ”х одинаков су” — это
отношение, которое в различных областях применения имеет различный
смысл. В тех случаях, когда мы имеем дело с техникой, этот смысл всегда
известен. В математике отношение одинаковости либо постулируется, либо
совершенно строго определяется в зависимости от раздела, в котором оно
применяется. В естественном языке смысл слова ’’одинаковы” расплывчат,
и это часто приводит к недоразумениям.
4.2. ТОЧНОЕ ОПИСАНИЕ ПРОЦЕССОВ
Будем рассматривать процессы, состоящие из последовательных шагов.
Такие процессы называются дискретными и последовательными.
Дискретный последовательный процесс можно описать в виде последова-
тельности предложений некоторого языка, которые могут быть и объедине-
ны в одно предложение. Каждое частное предложение описывает один шаг.
Если нужно описать процесс, который реципиент должен осуществить, то
каждое частное предложение называют приказом, а их совокупность — пред-
писанием.
Если предписание формулируется на естественном языке, как нередко бы-
вает, когда процесс должен быть осуществлен человеком, то особое внима-
ние следует обратить на точность приказов.
Понятие алгоритма развилось из представления о точном описании дис-
кретного процесса. В своей ’’Теории алгоритмов” А. А. Марков начинает
вводный раздел словами ”В математике принято под ’’алгоритмом” пони-
мать точное предписание, определяющее вычислительный процесс. .Заме-
тим, что так было примерно до 1954 г., когда вышла указанная книга. Теперь
нужно говорить: ’’определяющее процесс преобразования информации”. Там
же Марков говорит: ’’Следующие три черты характерны для алгоритмов.
а) точность предписания, не оставляющая места произволу, и его понят-
ность1 — определенность алгоритма;
1 У Маркова сказано — "общепонятность”. Я позволил себе поправку.
61
б) возможность исходить из варьируемых1 в известных пределах исход-
ных данных — массовость алгоритма;
в) направленность алгоритма на получение некоторого искомого резуль-
тата - результативность алгоритма”
Марков подчеркивает, что это не определение, а только некоторое ш мне-
ние, очень расплывчатое и нестрогое.
А. А. Марков считает, что точность не оставляет места произволу. Это зна-
чит, что ’’смыслом” предписания является действие и что в результате рецеп-
ции совершается именно ’’описанное” в предписании действие.
Для кибернетики алгоритмы - это прежде всего средство преобразования
символьных конструкций, а вместе с ними и представленной в них информа-
ции. Это преобразование должно выполняться устройствами, для которых
алгоритм — это управляющая информация. Понятие алгоритма как описания
процесса при этом оказывается недостаточным, потому что алгоритм — сред-
ство не только описания процессов, но и создания тех операций, которые
должны выполняться как шаги процессов (кстати, и необязательно последо-
вательно) .
4.3. ПЕРВИЧНЫЕ АЛГОРИТМЫ
Уже в вышеприведенном нестрогом определении алгоритма высказывает-
ся требование к нему ’’быть понятным” Какой математический (или, если
хотите, кибернетический) смысл можно вложить в это требование? Только
один: нужно знать алгоритм применения алгоритма к соответствующим
(т. е. заданным) исходным данным. Для того чтобы выполнять алгоритмы,
нужно знать алгоритм их выполнения. Возможен и еще один случай. Испол-
нитель алгоритмов так устроен, что, получая алгоритм и исходные данные, он
выполняет алгоритм. Исполнитель алгоритмов — это устройство, созданное
для выполнения алгоритмов. Ну, а если нам нужно создать такое устройство,
как описать его необходимое для нас функционирование? Только задавая ал-
горитм выполнения алгоритмов.
Значит, дать точное определение алгоритма, не используя в качестве ис-
ходного это же понятие, нельзя. Но тогда получится так называемый пороч-
ный круг и никакого определения не будет. Однако, как мы уже знаем
(см. с. 31), существуют еще рекурсивные определения (определения по
индукции). Сначала мы определим некоторый частный вид алгоритмов
путем точного математического описания. В этом случае мы сможем обой-
1 Варьируемость означает не расплывчатость, а наличие множества различных исход-
ных данных.
62
тись без предварительного знания того, что такое алгоритм. А впоследствии,
зная уже некоторые алгоритмы, дадим общее определение алгоритма. Таким
частным способом мы определим целый класс семейств алгоритмов, кото-
рый назовем классом первичных алгоритмов.
Каждое семейство первичных алгоритмов предполагает наличие допусти-
мых для него исходных данных. Такими исходными данными будем считать
предложения (символьные конструкции) некоторого формального языка A i.
Описывать конкретно L t мы не будем, потому что для разных семейств пер-
вичных алгоритмов и языки исходных данных могут быть различными.
Предположим далее, что задан конечный набор операций (преобразований
и логических действий), причем для некоторых из них операндами могут
быть предложения языка исходных данных, а для некоторых — результаты
операций-преобразований (или и те и другие).
Определим теперь для описываемого семейства первичных алгоритмов фор-
мальный язык L 2, предложения которого будут называться записями первич-
ных алгоритмов (данного семейства). Воспользуемся для этого уже знако-
мой нам нотацией Бекуса.
< запись первичного алгоритма > :: = < приказ > I < запись первичного алго-
ритма > < приказ >
< приказ >:.’=< безусловный приказ > I < условный приказ >
Эти две метаформулы гласят, что запись первичного алгоритма представ-
ляет собой последовательность любого числа приказов, а приказы бывают
безусловными и условными. Продолжим описание языка.
< безусловный приказ > = < метка > < разделитель 1 > < знак операции-
преобразования > < разделитель 2 > < отсылка > < разделитель 3 >
< условный приказ > :: = < метка > < разделитель 4 > < знак логической
операции > < разделитель 5 > < отсылка > < разделитель 6 X отсылка > < раз-
делитель 3 >
(отсылка >:: = < метка > I < стоп > I < стоп 1 > I < стоп 2 >
Метасимволы < метка >, < разделитель 1 >, < разделитель 2 >, < разделитель 3),
< разделитель 4 >, < разделитель 5 >, < разделитель 6 >, < стоп >, < стоп 1 >, < стоп 2>,
а также метасимволы < знак операции-преобразования > и < знак логической
операции > задают тогда, когда хотят выделить конкретный язык L 2. При
этом необходимо, чтобы: метасимвол < метка > обозначал любое из некоторо-
го бесконечного множества слов; разделитель 3 отличался от всех других
разделителей; разделители позволяли в приказах находить границы их частей
метасимволы < стоп >, < стоп 1 > и < стоп 2 > означали различные между собой
слова. Значениями метасимволов < знак операции-преобразования > и < знак
логической операции > являются имена вышеуказанных одноместных опера-
ций.
Для каждого семейства первичных алгоритмов должно быть задано пра-
вило их выполнения:
1. Найти первый (самый левый) приказ в записи первичного алгоритма.
Перейти к п. 2.
2. Если рассматриваемый приказ является безусловным, то перейти к п. 3,
а если условным — к п. 7.
3. Выполнить над операндом операцию, обозначенную в рассматриваемом
приказе, и ее результат считать операндом. Выбрать из рассматриваемого
приказа отсылку. Перейти к п. 4.
4. Если выбранная отсылка имеет вид < стоп >, < стоп 1 > или ( стоп 2 >, то
перейти к п. 5; во всех остальных случаях - к п. 6.
5. Считать имеющийся операнд результатом. Прекратить процесс вы-
полнения.
6. Просматривая запись первичного алгоритма, начиная с первого приказа,
искать метку, одинаковую с выбранной отсылкой. Если такой не окажется,
то процесс безрезультатно обрывается. Если она будет найдена, то считать
содержащий ее приказ рассматриваемым и перейти к п. 2.
7. Проверить, удостоверяет ли операнд условию, обозначенному в прика-
зе. Если да, то перейти к п. 8, а если нет — к п. 9.
8. Выбрать первую отсылку из приказа. Перейти к п. 4.
9. Выбрать вторую отсылку из приказа. Перейти к п. 4.
Это правило выполняют при заданной записи первичного алгоритма и
заданном операнде. Оно наделяет смыслом предложения языка L 2. Другими
словами, для формального языка L2 оно является семантическим. Но толь-
ко в совокупности с расшифровкой знаков операций.
Правило выполнения является точным предписанием, ведущим от исход-
ного данного (пары ’’запись алгоритма — операнд”) к искомому результату.
Оно обладает определенностью, конечно, если полностью заданы оба языка
и набор операций. И хотя в строгом смысле оно не является алгоритмом, но
все же может быть использовано в каждом конкретном случае для точного
определения некоторого семейства первичных алгоритмов.
4.4. НАТУРАЛЬНЫЕ АЛГОРИТМЫ. ПОРОЖДЕНИЕ ПЕРВИЧНЫХ АЛГОРИТМОВ
В § 2.5 дано общее определение операции. Однако из всех операций нам
пока известны только натуральные, которые являются операциями только
над словами и квазисловами. Язык L 2 построен нами из конечного числа
морфем при помощи последовательно выполняемых операций сцепления
слов.
Введем обозначения еще двух натуральных операций: — нахождение
начала и — продвижение вправо.
Теперь нетрудно определить формальный язык, предложениями которого
будут всевозможные слова и квазислова в алфавите A i. Чтобы не говорить
только об одном конкретном алфавите, считаем метасимвол < буква > задан-
ным. Формальная грамматика нового языка в этом случае имеет вид.
64
( буква >:: = [ определение метасимвола буква]
( слово > = ( непустое слово > I ( пусто >
( непустое слово )'.' = ( буква > I (непустое слово > (буква >
< квазислово > :*. = *(< слово >) I -> (< квазислово > )
( предложение >" = < слово > I ( квазислово >
Правая часть первой метаформулы опущена. Скобки в правой части чет-
вертой метаформулы служат для указания границ аргументов. Наличие среди
синтаксических правил четвертой метаформулы не позволяет считать фор-
мальную грамматику заданной с помощью нотации Бекуса. Пользуясь опера-
циями линеаризации и делинеаризации, можно было бы задать еще более
сложные языки.
Вернемся к изучению первичных алгоритмов. Семейство первичных алго-
ритмов, в котором используются только операции из числа натуральных,
принадлежит подклассу первичных алгоритмов, называемых натуральными
алгоритмами.
Построим теперь конкретный алгоритмический язык, для чего доопреде-
лим грамматику языка первичных алгоритмов, приведенного в предыдущем
параграфе. Будем считать, что алфавит А 2 этого языка содержит все буквы в
A i и, кроме того, в него включены дополнительные буквы, которые читатель
легко найдет, если просмотрит нижеприведенные метаформулы. Произволь-
ную букву в A i будем обозначать метасимволом < а >.
= (буква в-Л j >
< цифра >::= 0I1I2I3I4I5I6I7I8I9
< метка >:: = < цифра > I < метка > ( цифра >
(метками могут быть произвольные последовательности цифр)
(разделитель 1 >:: =
(разделитель 2 >,
< разделитель 3 > = ;
< разделитель 4 >: =
< разделитель 5 > : = ?
< разделитель 6 >: = /
(стоп >:: = стоп
(стоп 1 >:: = да
(стоп 2 >:: = нет
< знак операции-преобразования > = V I А (а> I * I X I -> I I !(q> I
I I /(а>I I I d
(знак логической операции >:.’= Д I н I к I =(а>.
Между знаками операций и самими операциями установим следующее
соответствие (табл. 4.1.).
3 Зак 1586 65
Таблица 4.1. Соответствие между знаками операций и операциями
Знак Операция Знак Операция
V Аннигиляция Отбрасывание конца
h < а) Генерация < а > / <а> Продолжение < а >
* Нахождение начала 1 Линеаризация
X Отключение d Делинеаризация
—> Продвижение вправо L Проверка непустоты
<— Продвижение влево н Проверка начала
! <а> Замена буквой < а > к Проверка конца
= <«> Проверка одинаковости с < а )
В качестве упражнения построим алгоритм нахождения конца слова в оп-
ределенном нами семействе натуральных алгоритмов. Его запись может
иметь вид:
1: Д?2/ 1 ;
2 : * , 3 ;
3 : к 1 стоп / 4 ;
4 :->,3 ;
В этой записи (исключительно для наглядности) мы расположили прика-
зы в виде столбца. Можно было бы их написать в виде одной строки и это не
уменьшило бы понятности алгоритма для того, кто знает правило выполне-
ния (см. с. 63). Первый приказ гласит: если преобразуемое слово непусто, то
перейти к приказу 2, а иначе снова к приказу 1. Значит, если слово пусто, то
сдвинуться с приказа 1 невозможно. Это значит, что к пустому слову наш ал-
горитм неприменим. Это естественно, так как пустое слово не имеет конца.
Приказ 2 предписывает найти начало преобразуемого слова (т. е. превра-
тить его в квазислово) и перейти к приказу 3; приказ 3 — проверить, явля-
ется ли выделенная буква концом, и если да, прекратить процесс. Если же
выделенная буква еще не конец, то по приказу 4 нужно продвинуться вправо
и снова вернуться к приказу 3 и т. д. В конце концов необходимое преобра-
зование будет выполнено.
Составив такой алгоритм, мы можем выполняемое им преобразование
объявить операцией. Обозначим ее ” * * ”.
Составим еще натуральный алгоритм, который проверял бы, является ли
рассматриваемое слово однобуквенным? Его запись может иметь вид
1 : Д ? 2 / нет ; 2 : * , 3 ; 3 : к ?4 / 5 ; 4 : X , да ; 5 : X , нет ;
Этот алгоритм я умышленно записал в виде одного слова. Он кончает
свою работу по-разному в зависимости от того, является ли слово однобук-
венным или нет. Если слово однобуквенное, то процесс окончится выполне-
нием приказа, имеющего отсылку ”да”, а если не однобуквенное - выполне-
нием приказа, имеющего отсылку ’’нет”. Получив его, мы можем объявить
66
новую логическую операцию: проверку однобуквенности. Обозначим ее, на-
пример, ”б”
Алгоритм, который бы проверял, является операнд словом или квазисло-
вом, можно составить, только используя операции линеаризации и делинеари-
зации. В этом случае необходимы дополнительные буквы для обозначения
связей, их ветвей и нумерации. Они не должны входить в алфавит A j языка
исходных данных, но должны использоваться операциями d и I и входить в
алфавит, над которым определены остальные натуральные операции. Пред-
положим, что для обозначения связей нами избраны буквы Я, 77, /Г, В (соот-
ветственно для начинающей, продолжающей, заканчивающей и выделяющей
связей), для пометки их ветвей — Г иД (соответственно первого и второго
жанра) и буква 7 для нумерации связей и ветвей. Это заставило бы нас из-
менить самую первую метаформулу:
<а>:: = (буква вА ) I Н I 77 I К I В I Г I Д I 7
Искомый натуральный алгоритм может иметь запись:
1 : Z , 2 ;
2 :Л?3/да;
3 * , 4 ;
4:=В?5/7
5 X , 6 ;
6 d , нет ;
7 : к ? 9 / 8 ;
8 :->,4;
9 : X , 10 ;
10 : d , да ;
Приказ 1 применим к любой конструкции языка исходных данных. Он
предписывает линеаризацию операнда. Приказ 2 проверяет непустоту резуль-
тата линеаризации. Если он пуст, то исходное данное было пустой конст-
рукцией, т. е. словом, так как квазислова пустыми не бывают. Этому случаю
отвечает отсылка ”да”. Если он непуст, нужна дальнейшая проверка. Приказ
3 выделяет начало результата линеаризации. Приказ 4 проверяет, содержится
ли в результате линеаризации буква В, являющаяся именем выделяющей свя-
зи. Приказы 7 и 8 обеспечивают просмотр результата линеаризации, так как
буква В может стоять и не в начале операнда. Если оказывается, что буквы
В вообще нет (значит, исходное данное было словом), то приказы 9 и 10 про-
изводят делинеаризацию (т. е. придают операнду вид исходного данного
(слова) и завершаются отсылкой ”да”). Если В будет найдена, то приказы
5 и 6 производят делинеаризацию, чтобы вернуть операнду его исходный вид
(вид квазислова) и завершаются отсылкой ’’нет” Читатель сам понял, поче-
му пустой результат линеаризации не нужно было делинеаризировать - пото-
му что делинеаризация его не изменяет (см. приказ 2).
V 67
Последний алгоритм позволяет объявить еще одну логическую операцию,
что мы и сделаем. Обозначим ее s.
Расширив набор операций, мы можем построить новое семейство первич-
ных алгоритмов, добавив к грамматике алгоритмического языка метафор-
мулы:
< знак операции-преобразования ):: = **
< знак логической операции >:: = б I s
При этом нужно изменить и правило выполнения так, чтобы оно обеспечива-
ло выполнение новых операций. У нас это правило сформулировано в общем
виде и потому его изменение будет неявным.
Новые алгоритмы уже не будут натуральными (так как используют три
новые операции, не являющиеся натуральными).
4.5. ШИРОКОЕ ФОРМАЛЬНОЕ ОПРЕДЕЛЕНИЕ АЛГОРИТМА
Теперь, когда мы имеем некоторые алгоритмы (первичные), можно дать
циклическое определение, которое уже не будет порочным кругом. Это опре-
деление очень похоже на определение первичных алгоритмов, но только в
нем вместо правила выполнения фигурирует алгоритм выполнения. Но давая
циклическое определение, сделаем это в самом общем виде, чтобы сократить
текст книги.
Прежде всего нужно указать объекты преобразований. Пусть это по-преж-
нему будут предложения формального языка исходных данных L i. Но такие
предложения можно ’’обрабатывать” не только поодиночке, а сразу набора-
ми. Учтем в нашем определении такую возможность. Пусть имеется некото-
рая связь и-го ранга и и-го жанра, не присутствующая в предложениях языка
L j. Обозначим ее z. Связывая с ее помощью различными способами предло-
жения языка L i, предварительно заключая каждое из них в оболочку, полу-
чаем более сложные конструкции, которые, если через обозначить пред-
ложение языка А!, можно изобразить как (sb s2, , sn) z- Эти новые
конструкции образуют новый формальный язык. Обозначим его L 3. Если
п = 1, нет надобности привлекать связь z первого ранга. В этом частном слу-
чае считаем, что L 3 совпадает с L i. Итак, объектами преобразований будем
считать предложения языка L 3.
Далее, пусть задан формальный язык L2, предложения которого будем
называть записями алгоритмов. Пусть t — произвольное предложение языка
£ 2> a q — языка L 3. Выберем бинарную связь z *, не применяемую ни в язы-
ке L2, ни в языке L3, и построим символьные конструкции (t,q) z’ . Их
совокупность образует еще один язык L 4.
68
Алгоритмом выполнения назовем алгоритм И7, записанный на любом, но
определенном языке, для которого Ь4 является языком операндов.
Таким образом, записями нового семейства алгоритмов являются предло-
жения языка L2, а алгоритм выполнения Wнаделяет эти предложения семан-
тикой.
Можно приведенное циклическое определение перефразировать так: ал-
горитмами называются предложения языка, для которого задан язык исход-
ных данных и алгоритм выполнения.
Определенное нами семейство алгоритмов по отношению к языку L j
называется семейством и-местных или и-арных или и-го ранга алгоритмов.
Замечание. Если предложения языков L i и L 2 являются только сло-
ва, то можно вместо и-арной связи и-го жанра (z) и бинарной связи 2-го жан-
ра (z' ) применить набор из п букв х0, Xi, .. ,хп _ j, не используемых ни
в L j, ни в L 2, и предложения языка L 3 строить как последовательные сцеп-
ления слов q = хх s2 х2 • хп - 1 sn- Предложения языка L4 при этом
строят с помощью последовательных сцеплений в виде t xQ q. Этот прием де-
лает ненужными оболочки и упрощает алгоритм W.
Теперь можно сформулировать широкое формальное определение алго-
ритма. Алгоритмами называются: 1) первичные алгоритмы; 2) и-арные (при
п= 1, 2,...) алгоритмы, определение которых приведено выше.
Первые и-арные алгоритмы можно конструировать, используя для задания
алгоритма выполнения первичные алгоритмы. А затем можно строить алго-
ритмы выполнения из числа и-арных и получать новые семейства алгоритмов.
4.6. ТЕРМИНОЛОГИЯ И ПРАВИЛА ЗАПИСИ
Для первичных алгоритмов - правило выполнения, а для и-арных - ал-
горитм выполнения определяют отвечающие им процессы преобразования
исходных данных в искомые результаты. Эти процессы называют алгоритми-
ческими. Каждой паре ’’алгоритм — операнд” отвечает алгоритмический
процесс. При этом возможен один из трех случаев: 1) алгоритмический
процесс заканчивается получением искомого результата; 2) алгоритмичес-
кий процесс безрезультатно обрывается; 3) алгоритмический процесс никог-
да не заканчивается. Все эти случаи мы можем наблюдать уже на первичных
алгоритмах. Например, составленный на с. 66 алгоритм нахождения конца
слова приводит к результативному окончанию процесса для любого операн-
да, являющегося непустым словом. Этот же алгоритм безрезультатно ос-
тановится на первом же приказе, если его применить к квазислову. Это связа-
но с тем, что логическая операция ’’проверка непустоты” имеет смысл толь-
ко для слов, а не для квазислов. Наконец, тот же алгоритм порождает про-
цесс, который никогда не закончится, если его применить к пустому слову.
69
В первом из вышеперечисленных случаев говорят, что алгоритм применим
к своему исходному данному; во втором и третьем случаях — что алгоритм
неприменим к нему. Применимость или неприменимость алгоритма рассмат-
ривается только по отношению к предложениям языка его исходных данных.
Два алгоритма, имеющие один и тот же язык исходных данных, называют-
ся функционально эквивалентными, если одни и те же исходные данные они
преобразуют в одни и те же результаты. Ясно, что если один из двух функци-
онально эквивалентных алгоритмов неприменим к какому-нибудь операнду,
то и второй тоже неприменим к этому операнду.
Функционально эквивалентные алгоритмы могут, однако, для одного и
того же исходного данного порождать различные алгоритмические процессы.
Из этого вытекает интересное следствие. Предположим, что функционально
эквивалентны два алгоритма выполнения. Тогда очевидно, что порождаемые
ими семейства алгоритмов между собой совпадают в том смысле, что одина-
ковые записи алгоритмов этих семейств являются записями функционально
эквивалентных алгоритмов. Однако порождаемые ими процессы преобразо-
вания могут быть различны.
Таким образом, по записи алгоритма нельзя судить о том, какой алгорит-
мический процесс он порождает. Это очень важный факт, объясняющий, по-
чему нельзя строить теорию алгоритмов, отправляясь от алгоритмического
процесса.
Мы уже знаем и уже пользовались этим обстоятельством, что каждый ал-
горитм осуществляет некоторое отображение или, как говорят, индуцирует
некоторую функцию.
С точки зрения математической лингвистики алгоритм - это наделенное
смыслом предложение формального языка. С точки зрения абстрактной ал-
гебры он — совокупность элемента множества символьных конструкций и
функции, соответствующей алгоритму выполнения.
Наша точка зрения — это точка зрения математической лингвистики с тем
ее уточнением, что семантику алгоритмическому языку придает именно ал-
горитм выполнения.
Так как записи алгоритмов могут быть операндами для других алгорит-
мов, то следует различать сам алгоритм, его запись и индуцируемую им
функцию. Условимся алгоритмы обозначать прописными латинскими буква-
ми, их записи — теми же буквами с чертой над ними, индуцируемые ими
функции - теми же буквами с волной.
Эти предосторожности в обозначениях позволят нам пользоваться обыч-
ной символикой, разработанной в математике для записи формул, содержа-
щих функциональные знаки. Для того чтобы не делать различия между опе-
рандами и записями алгоритмов, если они оказываются операндами, усло-
вимся предложения языков исходных данных впредь считать записями опе-
70
рандов, что вполне логично, так как при решении задач операндами являют-
ся не сами записи, а записи, наделенные смыслом. Записи операндов также
будем обозначать буквами с чертой сверху.
При соблюдении указанных правил записи формул циклическую часть оп-
ределения алгоритма и-го ранга можно записать в следующем виде.
Если s 1, ,. .. ,snE L Е L2 nW- алгоритм, определяющий функцию
fi? (Г, 5 i, s 2, , sn), то t является алгоритмом, и, коль скоро, W (t, s х,
S 2 , • • • ~ Г , ТО t ($ S • • • A ~ f
При написании этих формул связи z и zг отражать в записи не нужно, по-
тому что они фиксированы для всех возможных значений аргументов и, сле-
довательно, в неявном виде учитываются в символах WnT.
Если при построении двух семейств и-арных алгоритмов для образования
промежуточных формальных языков были в одном случае употреблены свя-
зи z и zf, а в другом — связи f и f', и если, заменяя z на и z' на J*' (или
обратно), мы превращаем одно семейство алгоритмов в другое, то эти се-
мейства называются одинаковыми с точностью до технических деталей.
В заключение данного параграфа приведем без доказательства очень важ-
ную теорему: для любого семейства первичных алгоритмов на достаточно
высоком уровне семейств алгоритмов существует алгоритм выполнения,
эквивалентный правилу их выполнения.
Эта теорема хотя и не снимает необходимости в правилах выполнения при
определении понятия первичных алгоритмов, но делает их вполне равноправ-
ными со всеми другими алгоритмами и дает возможность не доказывать от-
дельно теоремы для первичных и для л-арных алгоритмов. Кроме того, она
позволяет первичные алгоритмы отнести к 1-арным алгоритмам и впредь гово-
рить об ’’арности” алгоритмов лишь тогда, когда она имеет существенное
значение.
4.7. ОПЕРАТОРНЫЕ АЛГОРИТМЫ
В функциональном анализе, одном из основных разделов современной
математики, операторами называют функции, значения которых, а также
значения аргументов которых могут быть объектами нечисловой природы.
В силу этого определения функции, индуцируемые алгоритмами, являются
операторами (так как значения их самих и их аргументов — символьные
конструкции). Дальнейшее изложение я буду вести применительно к алго-
ритмам, используя правила записи формул, введенные выше (на с. 70).
Пусть А — некоторый оператор, а X — его исходное данное (операнд).
Результат применения оператора А к X обычно обозначают А (X). Если
В — второй оператор и результат выполнения первого может быть его опе-
71
рандом, то В (А (X) ) по определению оператора - тоже оператор. В функци-
ональном анализе для него введено специальное обозначение Л Ви назва-
ние — произведение оператора А на оператор В.
Пусть теперь Р — некоторое условие, которому может удовлетворять или
не удовлетворять (в зависимости от значения X) результат выполнения опе-
ратора Л. Очевидно, если выполнить Л*, затем проверить условие Р, а далее
применить оператор В, если условие выполнено, или оператор С, если оно не
выполнено, то такая композиция операторов и условия тоже будет операто-
ром. Запишем ее так:
____U?
A PG
Г
Сами операторы Л, В и С могут в свою очередь быть произведениями или
композициями, и тогда операторное выражение усложняется. В некоторых
случаях после проверки условия, при одном из ее исходов нужно повторить
выполнение оператора, результат которого проверялся; при этом возможны
операторные выражения вида i
4 А Рг> В или ^А-Р^С
о
Еще в 1953 г. А. А. Ляпунов, основоположник советской школы програм-
мирования, заметил, что большое число методов решения задач (практически
все) можно схематически описать с помощью операторных выражений ука-
занного выше типа. Если бы оказалось, что операторы соответствуют практи-
чески удобным алгоритмам и существует простой прием, позволяющий пос-
ле выполнения одного из алгоритмов переходить к выполнению другого, ис-
пользуя результат первого как операнд второго, то операторные выражения
стали бы важным средством для облегчения работ по составлению сложных
алгоритмов. А. А. Ляпунов заметил, что программы для ЭВМ являются имен-
но такими алгоритмами. Читатель увидит несколько позже, что программы
ЭВМ образуют семейства алгоритмов, для которых сами ЭВМ являются фи-
зическими реализациями алгоритмов выполнения.
Все это привело А. А. Ляпунова к идее логической схемы алгоритма, полу-
чающейся из операторного выражения, если в нем функции заменить символа-
ми, обозначающими имена алгоритмов, а знаки умножения операторов и стрел-
ки толковать как знаки перехода от одних алгоритмов к другим. Логическая
схема алгоритма передает одновременно и структуру алгоритма и его
’’смысл” (если известен смысл каждого оператора). При построении логи-
ческих схем оказалось целесообразным обозначать конец выполнения алго-
ритма и его ’’вход”, т. е. ’’место”, с которого начинается процесс его выпол-
нения. Для этого были введены стандартные символы Ио и Я, получившие
названия операторов начала и конца. Алгоритмы, включенные в логическую
72
схему, стали называть ее операторами. Метод программирования, основан-
ный на идее логической схемы, получил название операторного метода.
Семейства алгоритмов, допускающих описания алгоритмов в виде логичес-
ких схем, отражающих не только их содержание, но и структуру, называют
семействами операторных алгоритмов.
Любое семейство первичных алгоритмов, объединенное его алгорит-
мом (или правилом) выполнения, является семейством операторных алго-
ритмов. Покажем это.
Выполнение первичного алгоритма всегда начинается с приказа, стоящего
в его записи на первом месте. Этот приказ будем называть входом первич-
ного алгоритма. После выполнения операции, названной в безусловном при-
казе, производится переход к первому, если идти от начала записи алгорит-
ма, приказу, имеющему метку, одинаковую с отсылкой только что выпол-
ненного приказа. Заметим, что в записи первичного алгоритма может быть
несколько приказов с одинаковыми метками, но, как следует из правила
выполнения, выполняться может только тот из них, который расположен бли-
же к началу записи. (Это замечание не имеет, правда, непосредственного
отношения к вопросу, который мы в данный
момент исследуем, но несколько ниже оно нам
потребуется).
После выполнения логической операции,
знак которой указан в условном приказе,
выбирается одна из двух отсылок, а затем
переход производится так же, как и в случае
безусловного приказа. Мы видим, что опера-
ции-преобразования можно рассматривать как
операторы, а логические операции как усло-
вия. Пары ’’отсылка - метка”, если они оди-
наковы, можно рассматривать как переходы (с
учетом выше сделанного замечания о способе
перехода). При этом отсылки типа < стоп >
являются операторами конца, а перед входом
алгоритма подразумевается оператор начала.
Таким образом, каждый первичный алгоритм
можно рассматривать как операторное выра-
жение и представлять в виде логической
схемы. Для примера алгоритм проверки,
является ли операнд словом или квазисловом,
который приведен на с. 67, изображен в виде
логической схемы на рис. 4.1.
Операции являются наиболее элементарны-
ми (наиболее ’’мелкими”) операторами и ус-
ловиями, возможными для данного семей-
Рис. 4. 1. Логическая схема первич-
ного алгоритма:
Квадратами изображены операто-
ры, ромбами — условия, стрелка-
ми — переходы. Цифра О означает
переход в случае невыполнения
условия, а цифра 1 — в случае
его выполнения
73
ства первичных алгоритмов. Своими рассуждениями мы, по существу, дока-
зали теорему о том, что любой первичный алгоритм можно представить в ви-
де логической схемы. Но этого мало. Нужно еще доказать, что, имея несколь-
ко алгоритмов и условий, всегда можно из них образовать произведения
операторов и композиции.
Заметим прежде всего, что если все одинаковые между собой отсылки и
метки, присутствующие в записи первичного алгоритма, заменить одинако-
выми словами (т. е. одним и тем же словом), удовлетворяющим метаформу-
ле, в левой части которой стоит метасимвол < метка ), и отличающимися от
всех других меток и отсылок записи алгоритма, то получится запись нового
первичного алгоритма того же семейства, эквивалентного исходному. Это
следует из правила выполнения. Например, если в записи алгоритма, различа-
ющего, является ли операнд словом или квазисловом (с. 67), все отсылки
и метку, имеющие вид ”4”, заменить допустимым словом ”100”, то получится
l :l ,2 ; 5 X , 6 ; 9 X , 10
2 : Д ? 3 / да ; 6 : d , нет ; Ю : d,да ;
3 ♦ , 100 ; 7 :Jt?9/8 ;
100 : = В ? 5 / 7 8 100 ;
Это - запись алгоритма, эквивалентного исходному и даже имеющего с ним
одну и ту же логическую схему.
Теперь легко сообразить, как после выполнения какого-нибудь алгоритма
обеспечить выполнение другого, если они принадлежат одному и тому же
семейству и записи обоих заданы. Нужно все отсылки и метки второго с по-
мощью допустимых замен сделать отличающимися от отсылок и меток пер-
вого (это не относится к отсылкам типа < стоп >). Затем необходимо вместо
соответствующего выхода из первого алгоритма (т. е. вместо всех одинако-
вых между собой отсылок типа < стоп >) поставить отсылки, равные метке
первого приказа второй записи. Иногда, но это уже зависит от содержания за-
дачи, производят замену отсылок типа < стоп ) другими отсылками этого же
типа.
Пример 4.1. Если бы нам нужно было, распознав, является ли операнд словом или
квазисловом, в первом случае оставить операнд неизменным, а во втором - приписать
к его концу букву а и сделать словом, то можно было бы воспользоваться вышеприве-
денным алгоритмом распознавания, который играл бы роль условия, и алгоритмом
1:Лг?2/4;2 ? а, 3 ; 3 X, стоп ; 4 : , 1 ;
Обозначая условие через Р, а последний алгоритм через Л, мы можем запись искомо-
го алгоритма строить по логической схеме
И„Р^А
п 1 ч 0
Для этого: I) в записи последнего алгоритма произведем изменение отсылок и меток,
увеличивая (если рассматривать их как целые числа) на Ю; 2) отсылку ’’нет” условия
74
заменим отсылкой ”11”; этим мы свяжем два алгоритма в один; 3) отсылку ”да” усло-
вия заменим отсылкой ’’стоп”. Запись искомого алгоритма будет иметь вид:
100:=В?5/7;
5 Х.6 ;
6 :d, 11 ;
7 : * ? 9 / 8
8 100 ;
9 :X , 10 ;
11 : к? 12/ 14 ;
12 Та , 13 ;
13 X ,стоп ;
14 11 ;
1 :/ , 2 ;
2 : Д ? 3 / стоп ;
3 : 100 ;
10 : d ,стоп ;
Понятие ’’операторные алгоритмы” охватывает бесконечное множество
семейств алгоритмов, но известны семейства алгоритмов, которые не явля-
ются операторными. Например, не являются операторными известные нор-
мальные алгоритмы А. А. Маркова [ 10].
4.8. СХЕМЫ АЛГОРИТМОВ
Если заданы все алгоритмы, имена которых указаны в качестве опера-
торов и условий в логической схеме, то ее можно считать условной записью
некоторого операторного алгоритма, отражающей как его структуру, так и
его ’’смысл”, т. е. индуцируемую им функцию.
Иногда отвлекаются от значений операторов и даже условий; в этом слу-
чае логическая схема отражает структуру некоторого класса операторных ал-
горитмов, вообще говоря, принадлежащих даже различным семействам опе-
раторных алгоритмов. Целый раздел теории алгоритмов - схематология —
занимается изучением таких схем алгоритмов. Этот раздел очень интересен,
но мы им заниматься не будем.
Для нас более важен другой вид схем алгоритмов — семантические схемы.
Любой алгоритм можно считать семантической схемой всех функционально
эквивалентных ему алгоритмов. Однако возможности схем такого вида для
нас недостаточны. Нам желательно описать смысл алгоритмов, не интересуясь
семейством, которому они принадлежат, но зная, какие функции и в какой
взаимосвязи они должны реализовать.
Для этого можно пользоваться логическими схемами (операторными вы-
ражениями) , предполагая, что функции операторов и условий заданы, одна-
ко не считая, что логическая схема отражает структуру алгоритма. При этом
логическая схема является отражением так называемой функциональной
структуры алгоритма, задает его ’’смысл”. В такой схеме операторами яв-
ляются не алгоритмы, а функции, т. е. мы возвращаемся к тому смыслу опе-
раторов, который был введен в функциональном анализе, сохраняя форму
записи, принятую для логических схем (изображая переходы стрелками, а
начало и конец с помощью операторов ИопЯ).
75
Рис. 4.2. Логическая схема
алгоритма внесения данных
в таблицу и их выдачи из нее
Пример 4.2. Требуется составить семантическую схе-
му алгоритма внесения данных в таблицу и выдачи их из
таблицы (по запросу).
Обозначим таблицу через 7, код, которой может быть
либо приказом о включении данных в таблицу, либо за-
просом - через z. Пусть ?r(z) - условие ”z - запрос”;
т (z) - условие ”z - приказ о включении данных в f”;
J (z, 7) - процедура поиска ответа; ф (z, 7) - процеду-
ра внесения данных в таблицу 7; 0 - процедура выдачи
кода "непонятно”. При таких обозначениях семанти-
ческая схема искомого алгоритма может быть дана в
виде
HQ —► 7г-+ 'tp-^Ят^ф-^Яв Я
1 f I___________7
о о
Она же в виде блок-схемы приведена на рис. 4.2.
Несколько больше информации и, в каком-то смысле, наглядности семан:
тическая схема приобретает, если ее записывать в форме, напоминающей за-
пись первичного алгоритма.
Формальный язык для записи семантических схем зададим следующим об-
разом:
( схема алгоритма >:: = < приказ ) I < схема алгоритма ) ( приказ )
( приказ < безусловный приказ > I (условный приказ >
( безусловный приказ > = < метка >) (знак преобразования ) < отсылка);
( условный приказ > = < метка )) Если < знак условия ), то ( отсылка > ,
иначе < отсылка );
(отсылка >::-*( метка ) I стоп
< метка >: ’ = < цифра > I < метка > < цифра >
( цифра >:: = О I 1I2I3I4I5I6I7I8I9
( знак преобразования) ’’ = < имя операнда > = < функциональный знак )
(( список аргументов )) I (имя операнда ): = (имя операнда ) I < имя операн-
да >:= < число >
( знак условия > = < предикатный знак ) (( список аргументов >) I (имя
операнда > = (имя операнда > I < имя операнда ) = < число >
Метасимволы ( функциональный знак > и < предикатный знак) 1 оставим
неопределенными для того, чтобы при записи схем иметь возможность при-
менять любые удобные нам символы. Метасимволом ( число ) обозначаем
запись числа, произведенную арабскими цифрами. Приведем еще одну мета-
формулу
( список аргументов ) = ( имя операнда ) I ( список аргументов >, < имя
операнда >
1 Предикатным знаком называется символ, которым обозначено условие.
76
При записи схем алгоритмов будем пользоваться правилами, изложенны-
ми выше.
Пример 4.3. Составим семантическую схему алгоритма внесения данных в таблицу и
выдачи их из таблицы, рассмотренного в предыдущем примере. Сохраним введенные
там обозначения, добавив к ним следующие: у - запись ответа, у0 - текст кода, глася-
щего ’’непонятно”, искомая семантическая схема может иметь вид:
1) если ft(z), то -> 2, иначе -+ 3;
2) у = ? (z, Г), стоп;
3) если т (z), то-► 4, иначе-*5;
4) F : = ф (z, 7), стоп;
5) У =у0,стоп;
Формальный язык для записи схем выбран так, чтобы схемы можно было читать
на русском языке. При этом знак ”-*” следует произносить как ’’перейти к”, а знак
” =”как ’’присвоить значение” (стоящее слева от него - произносить в дательном па-
деже, а стоящее справа - в родительном).
Глава 5
КОЛЛЕКТИВЫ АЛГОРИТМОВ
5.1. НЕСКОЛЬКО АЛГОРИТМОВ И ОДИН ОПЕРАНД
До сйх пор нам встречались случаи, когда алгоритм и операнд
’’сражались один на один” (одноместные алгоритмы) или один алгоритм
имел дело с несколькими операндами (многоместные алгоритмы). При этом
’’победителем” оказывался алгоритм. Он перерабатывал операнды в искомый
результат. Правда, допускались случаи, когда процесс безрезультатно обры-
вался или затягивался бесконечно. Но и в этих случаях алгоритм оставался
верен себе: он никогда не давал различные результаты при повторных ’’захо-
дах” Когда он противостоял нескольким операндам, они представляли со-
бой коллектив.
Что же получится, если одному операнду противопоставить несколько
алгоритмов? По-видимому, их сила должна возрасти? Но оказывается, что в
общем случае они потеряют свое главное свойство: однозначность. Они бу-
дут друг другу мешать, и это приведет к их ’’поражению”.
Но оставим спортивный стиль и вернемся к математическому. Попробу-
ем разобраться в сущности вопроса. Для этого рассмотрим различные воз-
можные случаи взаимодействия алгоритмов и операндов.
1. Один алгоритм и несколько операндов. Этот случай рассмотрен в § 4.5.
Как мы помним, несколько операндов (от одного до п) объединены вспомо-
гательной связью в совокупный операнд. Затем алгоритм и этот совокупный
операнд (точнее, их записи) объединены с помощью новой вспомогательной
77
связи в одну конструкцию. И эта конструкция подвергается переработке
алгоритмом выполнения. Алгоритм выполнения порождает алгоритмический
процесс, который представляет собой последовательность шагов. На каждом
шаге либо происходит некоторое элементарное преобразование, либо выпол-
няется логическая операция. Что при этом преобразуется или проверяется
легко понять, если алгоритм принадлежит классу первичных. Преобразуется,
по существу, операнд, а запись первичного алгоритма только просматрива-
ется (хотя и это является преобразованием, так как ’’просматривание” пред-
ставляет собой связывание отдельных частей записи алгоритма различными
выделяющими связями).
В общем случае алгоритмический процесс более сложен, так как отдель-
ные его шаги могут заключаться в выполнении операций, преобразующих
совместно элементы записей операнда, алгоритма и даже алгоритма выпол-
нения. Но при этом всегда алгоритмический процесс имеет характер после-
довательности шагов и является детерминированным (при повторных вы-
полнениях алгоритма в точности воспроизводится).
2. Несколько алгоритмов и несколько операндов при одном алгоритме
выполнения. Этот случай ненамного сложнее предыдущего. Рассмотрим его
вкратце. Предположим, что, как и в § 4.5, заданы два языка: L! - исходных
данных (операндов) и алгоритмический язык Z2. С помощью связи ли-го
жанра и ранга, играющей вспомогательную роль, свяжем т предложений
языка L 2 (т. е. записей алгоритмов) в совокупную запись. Как и в первом
случае, построим совокупный операнд из п предложений языка L i. Далее,
с помощью вспомогательной связи 2-го ранга и жанра совокупную запись ал-
горитмов свяжем с совокупной записью операндов. Именно эту символьную
конструкцию должен перерабатывать алгоритм выполнения И/. Алгоритм
выполнения определит процесс совместного выполнения сразу т алгорит-
мов над п операндами. Как и в первом случае, этот процесс будет последова-
тельностью актов и будет полностью детерминированным1
3. Операнд один, а алгоритмов несколько и каждый со своим алгоритмом
выполнения. Процесс выполнения каждого алгоритма является последова-
тельным, а совокупный процесс имеет хаотический характер. Он зависит от
соотношения скоростей алгоритмов выполнения, которое в течение выпол-
нения алгоритмов может изменяться и быть различным при повторных при-
менениях алгоритмов к исходному данному. Нет не только детерминиро-
ванности процесса, но и однозначности результата. Взаимное расположение
шагов, совершаемых разными алгоритмами, непредсказуемо, а результат
Примечание для программистов: операционная система мультипрограммного режи-
ма, обеспечивающая ’’одновременное” выполнение с помощью однопроцессорной ЭВМ
сразу нескольких программ, является алгоритмом выполнения п алгоритмов, имеющих
п операндов.
78
от него зависит. Так будет, если не наделить алгоритмы специальными сред-
ствами, обеспечивающими однозначность результата.
В некоторых частных случаях однозначность результата гарантируется и
без специальных средств. Например, если операнд содержит столько подкон-
струкций, сколько алгоритмов, и каждый алгоритм перерабатывает отдель-
ную подконструкцию, не затрагивая других. При этом хаотичность совокуп-
ного алгоритмического процесса не влияет на окончательный результат: соот-
ветствующие операции, выполняемые над операндом, являются локальными
и зоны их действия не пересекаются. Но этот случай неинтересен. В нем каж-
дый алгоритм ’’сражается” со своим операндом (подконструкцией) один на
один.
Гораздо интереснее случай, когда возможно преобразование одних и тех
же подконструкций операнда несколькими алгоритмами. Во всяком случае
ясно, что операции, выполняемые отдельными алгоритмами на отдельных
шагах, должны быть локальными (см. с. 48) .
Выполнение локальной операции можно расчленить на части: а) обраще-
ние к операнду для определения исходных данных операции; б) внесение в
преобразуемую символьную конструкцию результата операции. По анало-
гии с преобразованием символьной конструкции, записанной на бумаге,
назовем эти части соответственно чтением и писанием. Если два или несколь-
ко алгоритмов читают некоторую подконструкцию и ни один из них ее не
пишет, то результат чтения будет одним и тем же независимо от того, какой
алгоритм будет раньше читать, а какой - позже. Совсем другая картина
получится, если один алгоритм будет читать подконструкцию, а другой ее
же писать. Может быть сперва написано, а потом прочитано или сперва прочи-
тано (старое состояние подконструкции), а потом написано. Недопустимо
также неуправляемое писание двумя алгоритмами одной и той же подконст-
рукции. Писание заключается в замене старого состояния подконструкции
новым. При неуправляемом писании новое состояние зависит от того, кото-
рый из двух алгоритмов будет писать позже.
Теперь мы можем указать еще один случай безконфликтности алгорит-
мов, имеющих общий операнд. В этом случае операнд состоит из п + 1 под-
конструкций, где п — число алгоритмов. Пронумеруем мысленно алгоритмы
числами 1,2, , п и подконструкции - числами 0, 1,..., п. Предположим,
что из подконструкции № 0 любой алгоритм может только читать, а в под-
конструкции № i может как писать, так и читать только алгоритм № i (где
i = 1, или 2, , или п). Очевидно, при таких условиях хаотичность алгорит-
мического совокупного процесса не приведет к неоднозначности результата.
В наиболее общем случае можно считать, что операнд состоит из некоторо-
го числа подконструкций, которые можно разбить на две группы. В одну из
них входят подконструкции, называемые собственными, а в другую - под-
79
конструкции, называемые буферными. Каждая собственная подконструкция
либо доступна как по письму, так и по чтению только одному алгорит-
му, либо доступна нескольким алгоритмам, но только по чтению. Каждая
буферная подконструкция доступна сразу нескольким алгоритмам и хотя бы
одному из них по письму. В описанных выше случаях все подконструкции
были собственные. Очевидно, не всегда так просто удается обеспечить бес-
конфликтность алгоритмов с общим операндом, как в указанных частных
случаях.
5.2. РЕГУЛИРУЮЩИЕ ПРЕДИКАТЫ
Слово предикат означает то же, что условие. Термин этот принят в матема-
тической логике. Введенные нами логические операции (см. § 2.7) проверя-
ют выполнение условий или, как говорят в логике, определяют логическое
значение предиката.
Описывая ниже алгоритмы, совместно преобразующие один общий опе-
ранд, сущность используемых при этом приемов будем пояснять с помощью
семантических схем. Для операторных алгоритмов эти схемы будут отражать
и их структуру. Для записи семантических схем используем язык схем, вве-
денный в § 4.8. Характер этой книги вынуждает меня вместо строгих дока-
зательств ограничиться содержательными рассуждениями и примерами.
Как одно из средств координации алгоритмических процессов нам потре-
буется один тип операции, который мы сейчас объявим.
Пусть, В — некоторая буферная подконструкция операнда. Обозначим через
Р (В) логическую локальную операцию, проверяющую, обладает ли В неко-
торым свойством. Можно построить первичный алгоритм, состоящий из од-
ного условного приказа:
1) Если Р (В), то стоп, иначе -* 1;
Этот алгоритм осуществляет тождественное преобразование буфера В, если
он удовлетворяет условию Р (В), и неприменим к нему в противном случае.
Отображение, реализуемое этим алгоритмом, объявим операцией и назовем
ее ’’Ожидать Р (В)”. В составе одиночного первичного алгоритма приказ,
например, вида
5) ОжидатьР (2?),->6 ;
не влиял бы на алгоритмический процесс, если условие Р (В) выполняется;
в противоположном случае он вызывал бы безрезультатную остановку. Другое
дело, если этот приказ входит в состав одного из алгоритмов, совместно пе-
рерабатывающий общий операнд. Остановка длилась бы до тех пор, пока
один из других алгоритмов не преобразовал бы В так, что условие Р(В)
выполнится. Отмечу, что для выполнения операции ’’Ожидать Р (В) ” нужно
читать подконструкцию В или ее часть, но не нужно ничего писать.
80
Рассмотрим теперь случай, когда п алгоритмов A i, А 2, . .., Ап обрабаты-
вают операнд, в котором подконструкция В является буфером, доступным
для любого из этих алгоритмов. Предположим, что существуют п предикатов
?i (?), ?2 (Я)> , ?п (Р)> удовлетворяющих следующим двум условиям:
1) для любого состояния В эти предикаты определены; 2) всегда только од-
но условие выполняется, а все остальные не выполняются.
Такую совокупность условий будем называть системой регулирующих
предикатов п-го порядка.
С помощью системы регулирующих предикатов n-го порядка можно обес-
печить бесконфликтное обращение алгоритмов к буферу В, если число ал-
горитмов не более п. Проиллюстрирую это на частном примере, когда п = 3.
Пусть семантические схемы алгоритмов имеют вид:
l)Si =^(Si)2^2;
2) Ожидать ?! (В), 3 ;
3)5i '=F (5i,B),->4 ;
4)В:=Ф2 (В),^5 ;
5)5i -F" \
^2 ~ _
1) Ожидать ?2 (В) , 2
2) 52 : = ^(52,В) ,->3
3) В = Ф3 W ,->4;
4) 52 :=F' (52),-> 1 ;
6) Ожидать?! (В),->7
7) Если Q (51, В), то стоп, иначе ->1;
1) Ожидать?3 (В),-*2 ;
2)B:=^i (В),->3;
3) 53 :=F (53),->1 ;
В этих схемах алгоритмов ?i_, Л> Л - система регулирующих предикатов
3-го порядка. Преобразование В = (В) так перерабатывает В, что стано-
вится выполненным условие ?,-, где i = 1,2 или 3. Смысл остальных функци-
ональных и предикатных знаков понятен (в нужной степени) из текста схем;
51,52,5з - собственные подконструкции алгоритмов.
Защитой от конфликтов являются операции ’’Ожидать”. Только в прика-
зах, которые следуют за приказами, содержащими эту операцию, могут сто-
ять приказы, обращающиеся к буферу, и последним по порядку выполнения
является приказ, изменяющий так состояние буфера, что право обращения к
нему получает один из остальных алгоритмов. Регулирующие предикаты вза-
имно-однозначно соответствуют алгоритмам. В принципе, число алгоритмов
может быть меньше порядка системы регулирующих предикатов. В этом слу-
чае взаимно-однозначное соответствие должно существовать между множест-
вом алгоритмов и некоторым подмножеством регулирующих предикатов.
Если внимательно проследить за процессом выполнения алгоритмов, то
81
можно заметить, что каждый алгоритм может разрешать обращение к буферу
другому, запрещая такое обращение себе. При этом нужно иметь в виду, что
алгоритмы могут иметь условные приказы, которые приводят к разветвле-
нию процесса выполнения данного алгоритма и могут иметь циклический ха-
рактер, при котором происходит возврат к уже выполненным один или не-
сколько раз приказам. В процессе выполнения каждого алгоритма до обра-
щения к буферу должна быть обеспечена невозможность одновременного об-
ращения к буферу другого алгоритма. Она обеспечивается тем, что обраще-
нию к буферу предшествует (хотя, может быть, не непосредственно) приказ
ожидания.
На рис. 5.1 схематически показан совокупный процесс выполнения алго-
ритмов А р Л 2, А3 в предположении, что начальное состояние буфера В удов-
летворяет условию Д (В) и что при повторном выполнении приказа 7 пер-
вого алгоритма реализуется отсылка ’’стоп”. На рисунке в горизонтальных
строках записаны номера выполняемых приказов, причем номера приказов
ожидания заключены в скобки, а после номеров приказов, изменяющих со-
стояние буфера, в скобках указаны номера алгоритмов, которым эти прика-
зы разрешают обращаться к буферу. Анализируя схему совместного процес-
са, замечаем, что конец выполнения приказа, разрешающего обращение к
буферу, является также концом выполнения приказа об ожидании, стоящего
в некотором другом алгоритме. Процесс оканчивается остановкой первого
алгоритма, влекущей за собой вход других алгоритмов в бесконечное ожи-
дание. Тем не менее считается, что совокупный процесс заканчивается резуль-
тативно, так как составитель алгоритмов это заранее предвидел (если, конеч-
но, он не допустил ошибки).
А1 1 (2) 3 Ц2) 5 (6) 7 1 (2) 3 4Й) 5 (6) 7 Стоп
лг (1) 2 3(3) 4 (1) 2 3(3) 4 (1) 1
Аз (1) 2(1) 3 (1) 2(1) 3 (1) (
Рис. 5.1. Схема совместного выполнения трех алгоритмов, имеющих регули-
руемый буфер
Если бы одна и та же группа совместно работающих алгоритмов пользо-
валась не одним, а двумя буферами (каждый со своей системой регулирую-
щих предикатов), то существовала бы возможность того, что все алгоритмы
впадут в ожидание и процесс остановится без того, чтобы хотя бы один ал-
горитм достиг отсылки типа ’’стоп”. Это явление называют схватыванием,
или клинчем. При разработке алгоритмов его предусмотреть или исключить
трудно, и оно считается нежелательным. Но простейшие примеры схватыва-
ния привести легко.
82
Рассмотрим опять три алгоритма; пусть Вх и В2 — две буферные подкон-
струкции, причем первая связана с регулирующими предикатами Pi, Р2, Рз , а
вторая — с регулирующими предикатами Qi, Q2, Q3. Предположим, что пер-
вый алгоритм начинается с приказа
1) Ожидать Pi (2?i),->2;
второй — с приказа
1) Ожидать Q2 (В2) ,->2 ;
а третий - с приказа
1) Ожидать Р3 (Pi), 2 ;
Пусть, кроме того, начальное состояние буферов таково, что для них выпол-
няются условия Р2 (Bi) и Qi (В2). Ясно, что все три алгоритма сразу же
впадут в бесконечное ожидание, т. е. наступит схватывание.
Заметим, что если бы начальное состояние буферов было таково, что вы-
полняются условия Pi (Bi), Q2 (В2), то схватывания при выполнении пер-
вых приказов не произошло бы. А дальнейшие приказы могут благоприятно
изменить состояние буферов.
О любых нескольких алгоритмах, имеющих общий буфер, принято гово-
рить, что они связаны этим буфером. О системе предикатов и-го порядка, ре-
гулирующих обращения к буферу В, говорят, что она задана на этом буфере,
как и каждый регулирующий предикат. Если в семантической схеме алгорит-
ма Л, связанного буфером В, присутствуют приказы ’’ожидать Р (В) ”, то про
алгоритм А и предикат Р говорят, что они соответствуют друг другу.
Мы рассматриваем достаточно общий случай, когда каждому алгоритму, со-
ответствует только один из регулирующих предикатов, заданных на буфере В.
Существуют два очень важных вида связи между алгоритмами и регулиру-
ющими предикатами:
1. Каждому из п предикатов, регулирующих обращение к буферу В, со-
ответствует хотя бы один алгоритм. В этом случае буфер В называется за-
крытым.
2. Лишь некоторым из п регулирующих предикатов, заданных на буфере
В, соответствуют алгоритмы из числа перерабатывающих совокупный опе-
ранд. В этом случае буфер В называется открытым.
Каждый из этих случаев допускает два варианта: 1) соответствие между
регулирующими предикатами и алгоритмами (если оно существует) явля-
ется взаимно-однозначным; 2) некоторым предикатам соответствует не-
сколько алгоритмов. Соответствие ’’алгоритм - предикат” однозначное, а
’’предикат — алгоритм” не однозначное.
Два (или более) алгоритма, соответствующие одному и тому же преди-
кату, называются сопряженными относительно указанного предиката.
Открытые буферы позволяют вводить в операнд, в то время когда ни
один алгоритм к этим буферам не обращается, воздействия из внешней среды.
83
Ясно, что в теории роботов открытые буферы играют существенную роль.
Кроме того с их помощью можно обеспечить ’’одновременный” запуск
нескольких алгоритмов. Например, представим себе, что в начале каждого
из трех алгоритмов, приведенных на с. 83, стоял бы приказ следующего вида:
0) Ждать х = 1 , 1
где х - некоторая подконструкция (буфер), которая может принимать од-
но из двух значений: 0 или 1. Равенство* = 1 является регулирующим преди-
катом, который вместе с предикатом х = 0 образует систему второго поряд-
ка. Буфер х является -открытым, и все три алгоритма были бы сопряженны-
ми относительно предиката х = 1. Все три алгоритма постоянно находились
бы в состоянии ожидания предикатах = 1, и как только человек, который по
отношению к совокупности алгоритмов является частью внешней среды,
произведет действие х = 1 все алгоритмы одновременно станут выпол-
няться. Отсылка ’’стоп” может быть заменена отсылкой к приказу вида
100) х : = 0,-*0 ;
и, таким образом, остановка алгоритма будет реализована как ожидание
предиката ”х = 1”. К анализу описанных применений открытых буферов мы
еще вернемся.
5.3. ПОНЯТИЕ КОЛЛЕКТИВА АЛГОРИТМОВ
Совокупность всех алгоритмов, связанных некоторым буфером В (по-
средством системы регулирующих предикатов), называется элементар-
ным коллективом алгоритмов. Однако понятие коллектйва алгоритмов
шире и не сводится к понятию элементарного коллектива.
Коллективом алгоритмов называется группа алгоритмов, которые сов-
местно перерабатывают общий для них операнд, приводя к однозначному
результату или не давая никакого результата (что зависит только от выбора
исходного данного).
Нарушение однозначности результата совокупного выполнения несколь-
ких алгоритмов, преобразующих общий для них операнд, может возникать
как следствие беспорядочного обращения к буферным подконструкциям.
Поэтому будем буферные подконструкции называть также несобственными
элементами операнда, а отрезки алгоритмических процессов, при протекании
которых происходят обращения к несобственным элементам, — критичес-
кими отрезками. В частном случае критический отрезок может сводиться к од-
ному критическому шагу (на котором происходит чтение из буфера, запись
в буфер или сразу чтение и следующая за ним запись).
Для исключения неоднозначности результата необходимо, чтобы для каж-
дого несобственного элемента выполнение критических отрезков осущест-
84
влилось в некотором порядке, который называется специальным. Что же это
за порядок? Его можно представить себе как некоторую нумерацию крити-
ческих отрезков, соответствующих, вообще говоря, различным алгоритмам.
В этом порядке каждый критический отрезок, на котором производится за-
пись, имеет некоторый номер, и вся группа критических отрезков, произво-
дящих только чтение и подлежащих выполнению после указанного критичес-
кого отрезка и до другой записи в несобственный элемент, — на единицу
больший номер. Следующий номер присваивается записывающему отрезку,
если он перед записью читает то состояние критического элемента, которое чи-
талось критическими отрезками группы, уже получившей номер. Если такой
критический отрезок отсутствует, то нумерация считается оконченной. При
этом возникают так называемые критические серии (отрезков), связанные
с данным несобственным элементом.
Самый первый записывающий отрезок серии может быть фиктивным (ес-
ли обращения к критическому элементу начинаются с группы чтений его на-
чального состояния, содержащегося в исходном данном). В каждой крити-
ческой серии считаются заданными не только номер записывающих отрезков
и групп читающих отрезков, но и количества читающих отрезков в их груп-
пах. Например, критическую серию можно себе представить следующим
образом:
№ 1 - пишущий отрезок; № 2 — три только читающих отрезка; № 3 — чи-
тающий и пишущий отрезок; № 4 (последний в серии) — два читающих кри-
тических отрезка.
Всякое ’’постороннее” обращение к несобственному элементу после того,
как было произведено обращение № 1 некоторой серии, и до того, как будут
выполнены в присущем серии специальном порядке все ее критические от-
резки, должно быть исключено.
С одним и тем же несобственным элементом операнда может быть связано
несколько критических серий. При этом возможны два случая: а) критичес-
кие серии естественно упорядочены в силу того, что в них встречаются крити-
ческие отрезки одного и того же алгоритмического процесса; такие серии на-
зываются фиксированными друг относительно друга; б) между двумя крити-
ческими сериями нет естественной упорядоченности, так как в них нет крити-
ческих отрезков, принадлежащих одному и тому же алгоритмическому про-
цессу; такие серии называются плавающими друг относительно друга.
Критические серии, связанные с одним несобственным элементом, могут
’’переплетаться” и даже частично совпадать с критическими сериями, отвеча-
ющими другому несобственному элементу. При этом может случиться, что
какой-нибудь критический шаг в одной серии предшествует другому крити-
ческому шагу, а в другой - следует за ним. В таком случае неминуемо долж-
но произойти схватывание (клинч) и некоторые процессы, а может быть
85
и все, безрезультатно остановятся. Клинч такого типа называется абсолют-
ным, потому что его возникновение или невозникновение целиком зависит
от выбора исходного данного (операнда). Наличие в совокупном алгоритми-
ческом процессе пересекающихся с другими критическими сериями плаваю-
щих серий может приводить к схватываниям другого вида, которые называ-
ются мерцающими. Эти схватывания при повторных применениях группы ал-
горитмов к одному и тому же исходному данному могут то возникать, то не
возникать. О мерцающих клинчах подробнее будет рассказано в следующем
параграфе.
Совокупный процесс выполнения коллектива алгоритмов при любом до-
пустимом исходном данном должен протекать вышеописанным образом и
без мерцающих клинчей.
Несобственные элементы (буферы), которым отвечают плавающие друг
относительно друга критические серии, иногда называют резервами, потому
что некоторые из алгоритмов коллектива могут их занимать, ’’работать” в
них, использовать для переработки своих собственных подконструкций и
затем освобождать.
Как и для отдельного алгоритма, для коллектива алгоритмов возможны
два случая: коллектив может делать результативную остановку (и тогда
он называется применимым к операнду) или быть неприменимым к операн-
ду (безрезультатно останавливаться или никогда не останавливаться). Схва-
тывание - это бесконечно длящийся безрезультатный процесс (кроме случа-
ев остановки коллектива на открытом буфере).
5.4. ВАЖНЫЕ ВОЗМОЖНОСТИ КОЛЛЕКТИВОВ АЛГОРИТМОВ
Защита буферов с помощью регулирующих предикатов не является един-
ственным способом объединения алгоритмов в коллектив. Рассмотрим слу-
чай ’’захвата” резерва. Если ограничиться коллективом двух алгоритмов, то
схема пользования резервом такова: любой алгоритм обращается к резерву,
если им не пользуется другой, и на время пользования запрещает другому ал-
горитму обращаться к резерву. Оказывается, проблема защиты резерва го-
раздо сложнее, чем проблема защиты буфера другого типа.
Для облегчения анализа этого случая сделаем одно общее замечание. Для
защиты как буфера, так и резерва вовсе не обязательно применять предика-
ты, которые выражали бы глобальные свойства всей защищаемой подконст-
рукции. Можно выбрать в ней очень простую под-подконструкцию и на нее
наложить проверяемое условие. Ведь изменить только одну букву — это уже
изменить всю подконструкцию. Такие под-подконструкции обычно называют
ячейками. Ячейка, состояние которой используют для проверки состояния
86
всей подконструкции, называется сигнальной. Нужно помнить, что сигналь-
ная ячейка — это часть защищаемой подконструкции. В следующих семанти-
ческих схемах я буду ячейки обозначать малыми латинскими курсивными
буквами с черточкой над ними и, если надо, с постоянным или буквенным
(переменным) индексом внизу.
Теория изучает потенциально осуществимые процессы, т. е. отвлекается
от ограниченности ресурсов. С помощью такого приема теоретики обеспечи-
вают себе относительно ’’легкую жизнь”. Практики, увы, вынуждены считать-
ся с наличием ресурсов. Если для теоретика резерв - это, в лучшем случае,
занятная головоломка, то для практика — это вопрос успеха. Военные спе-
циалисты говорят, что резерв — это не запас, а силы для нанесения главного
удара.
Итак, вернемся к вопросу защиты резерва, или, если хотите, его захвата и
защиты. Пусть даны два алгоритма, претендующих на резерв R. Идя обеспе-
чения бесконфликтности нужны три простых буфера, сводящихся к отдель-
ным ячейкам. Обозначим их сх, с2 и х. Предположим, что каждый из двух
первых может принимать значения либо 0, либо 1, а третий — либо 1, либо 2.
Начальное состояние буферов может быть следующим: сг =0; с2 = 0: х = 1;
начальное состояние буфера х принципиального значения не имеет. Та часть
первого алгоритма, которая производит захват резерва R может иметь сле-
дующую семантическую схему (s х — собственная подконструкция):
51) Ci = 1,->52;
52) Если с2 = 0, то -> 57 , иначе -> 53 ;
53) Еслих = 1, то ->54, иначе -> 55;
54) Ожидать с2 = 0,->57;
55) Ci =0,-*56;
56) Ожидать х = 1, -> 51;
57) Я =^(5i),->58;
58) Si : = 0(Si,/?),->59;
59) х : = 2,->60;
60) Ci = 0,->61;
Соответствующую часть схемы второго алгоритма получим, меняя ролями
ci и с2 и предписывая приказом 56 ждать х = 2. Понятно, что номера прика-
зов (метки и отсылки) могут быть сдвинуты. Обе схемы алгоритмов А г и
А2 графически изображены на рис. 5.2.
В приведенной схеме приказы 57 и 58 изображают работу с резервом.
В приказе 51 предусмотрена запись в буфер Ci значения 1 (до этого там
был 0). Если бы я был педантом, то перед приказом 51 я поставил бы приказ
50) Ожидать сх = 0, -> 51;
87
но он пропущен потому, что это условие в момент выполнения приказа 51
всегда выполняется. Этим приказом первый алгоритм сообщает второму о
том, что захват резерва им начат. Затем приказ 52 предусматривает проверку
того, начал ли также захватывать резерв второй алгоритм. Если не начал
(т. е. если с2 = 0), то первый алгоритм занимает резерв. Второй алгоритм его
уже не сможет занять до конца работы первого. Кончив работу с резервом,
первый алгоритм делает х равным 2 и Cj равным 0 (приказы 59 и 60).
Рис. 5.2. Схема двух алгоритмов, ’’претендующих” на один и тот же
резерв R
Если бы приказ 52 установил, что второй алгоритм тоже начал захват ре-
зерва, то было бы проверено значение буфера х, говорящего о том, чья сей-
час очередь занимать резерв. Если очередь первого алгоритма, то начинается
ожидание условия с2 = 0, которое второй алгоритм должен будет выполнить
(своим приказом 55) . если же очередь второго, то первый алгоритм начина-
ет ждать свою очередь (приказ 56) и занимает буфер тогда, когда эта очередь
придет.
Приказ 52 фактически представляет собой ’’кусочек” ожидания, оторвав-
шийся от приказа 54. Прерывать ожидание для выполнения преобразований
88
нельзя, а для выполнения логических операций, не изменяющих состояние
буфера, - можно.
В последнем примере буферы и с2 не совсем обычны. Например, буфер
сг может изменяться только первым алгоритмом, тогда как во втором алго-
ритме предусмотрено только ожидание предикатов = 0. Такое применение
буфера называется задержкой с помощью предиката сх = 0. В данном случае,
записывая (приказ 51) в ячейку сt значение 1, первый алгоритм производит
задержку, а приказом 60 ее снимает. Аналогично, второй алгоритм произво-
дит задержку первого, записывая в ячейку с2 значение 1, а после конца ра-
боты с резервом ее снимает.
Задержка предикатом действительно приостанавливает процесс выполне-
ния только в случае, если ’’задерживаемый” процесс еще не миновал приказа,
содержащего операцию ожидания задерживающего предиката. Сработает или
нет задержка, зависит от соотношения между скоростями протекания алго-
ритмических процессов. Это заставляет проявлять большую осторожность,
применяя задержки.
Итак, рассмотрев последний пример, мы изучили сразу две новые возмож-
ности коллективов: захват резерва и задержку посредством предиката.
Обобщение описанного приема захвата резерва с двух на п алгоритмов
оказывается чрезвычайно трудным. Это связано с необходимостью учитывать
соотношения между конкурирующими алгоритмическими процессами во
всевозможных их сочетаниях. Значительно проще организовать очередь и
предоставлять резерв в соответствии с занятой очередью. Для ведения оче-
реди можно отвести один из алгоритмов коллектива. Посмотрим, как это
сделать.
Предположим, что для ведения очереди выделены 2п + 1 ячеек: х0,хг,...
, хп и Ci, с2, .. ,сп. Для того чтобы занять очередь, ьй алгоритм должен
в ячейку Cj записать значение 1 (а до этого там должно быть значение 0). За-
тем нужно ожидать появления в ячейке х0 числа i (номера алгоритма) и при-
ступить к работе с резервом. Приказы для записи в очередь будут:
1) Ожидать Ci = 0, 2 ;
2)q: = l,->3;
3) Ожидатьх0 = /,->4;
Если в последнем приказе вместо отсылки ”4” поставить ’’стоп”, то эти
три приказа образуют запись алгоритма. Объявим индуцируемую им функ-
цию операцией и обозначим ее ’’Занять (х0, 0”« Для того чтобы процесс
’’нахождения в очереди” более заметно выражался в записи семантической
схемы алгоритма, объявим еще с помощью алгоритма
1) х0 = 0, стоп ;
операцию, которую обозначим ’’Освободить (х0)”
89
Теперь участок захвата резерва в записи схемы может иметь вид
51) Занять (хо,0,-*52;
52) R :=$(Sz)r->53;
53)5 = £ (R, 5,),-* 54;
54) Освободить (хь),^55;
Здесь i — номер алгоритма, 5/ — его собственная подконструкция, R - как и
прежде, резервная подконструкция операнда.
Алгоритм ведения очереди может иметь простой вид, если сначала объя-
вить две следующие операции:
1. Операция ”/ = клиента” объявляется в соответствии с алгоритмом,
имеющим запись
1) Если= 1, то-*5,иначе-*2 ; 6)/ :=/,-► 7
2) Если i = и, то -* 4, иначе -* 3; 7) Если i = и, то -* 9, иначе -* 8 ;
3) / =Г+1,-*1; 8) i = /+1 + 1, стоп;
4) / = 0, -*9; 9) i = 1, стоп ;
5) ё/: =0,-*6 ;
До начала работы алгоритма, ведущего очередь, а значит, и до первого вы-
полнения данной операции, i может иметь любое целое значение из интервала
[1, п]. На рис. 5.3 показано, что до начала работы выполняется операция г. =1
(но это не существенно).
Рис. 5.3. Схема алгоритма, индуциру-
ющего операцию ”/ = клиент”
Первый Второй
опгоритмиче- алгрритмичес-
скиипроцесс кии процесс
Рис. 5.4. Схема, поясняющая возник-
новение мерцающего клинча
Алгоритм, индуцирующий операцию ”/ : = клиента”, в скрытом виде име-
ет аргументы , с2, . — имена ячеек, в которые алгоритмы-клиенты запи-
90
сывают ’’заявку” на включение в очередь (4/ записывает код 1 в ячейку q).
Он эти ячейки просматривает (в кольцевом порядке) и, как только обнаружи-
вает очередную заявку, записывает вместо нее 0, а переменной / присваивает
номер алгоритма, сделавшего заявку. Если при просмотре 1-. 2-, , и-й
ячейки ни одной ’’заявки” не обнаружено, производится присваивание
/: = 0 и алгоритм настраивается на новый просмотрячеек, начиная с 1-й.
2. Операция ’’Сделать шаг” объявляется по алгоритму
1) к: = 0,->2;
2) хк : = хк + „^3 ;
3) Если& = и—1,то->4, иначе->5;
4) хп = 0, стоп;
5) к = к + 1,-»2;
Эта операция продвигает очередь на один шаг и освобождает в ней последнее
место для очередного ’’претендента” на резерв.
Теперь без труда сделаем запись алгоритма ведения очереди:
1) i: = 1,^2; 4) Сделать шаг, ->5 ;
2) ] : = клиента, ->3; 5) хп = /, -> 2;
3) Ожидатьх0= 0, ”*4 ;
Приведенная семантическая схема алгоритма ведения очереди предполага-
ет простейшую организацию очереди. Ячейки просматриваются в порядке их
номеров и все обнаруженные в них заявки последовательно включаются в
очередь. Если заявок нет, в очередь заносится нуль. После того, как резерв
освобождается, очередь продвигается на один шаг (в том числе и нули, если
они стоят в очереди). При необходимости можно реализовать более сложное
ведение очереди.
Говоря о захватах резервов, нельзя ничего сказать об особом случае схва-
тывания, который с ними связан.
Захват резерва одним из алгоритмов запрещает обращения всех других
алгоритмов к этому резерву на время захвата. Представим теперь, что кол-
лектив состоит из двух алгоритмов и что имеется два резерва R и Q. Пусть
в первом алгоритме предусмотрен захват резерва Q в то время, когда R уже
захвачен, но еще не освобожден, а во втором — захват резерва R, когда уже
захвачен, но еще не освобожден резерв Q. Описанную ситуацию поясняет
рис. 5.4. При выполнении таких алгоритмов возможны два случая: 1) один
из алгоритмов успеет захватить оба резерва раньше, чем второй захватит хотя
бы один; 2) первый алгоритм успеет захватить R, но не Q, а второй успеет
захватить Q, но не Я. В первой из указанных ситуаций выполнение обоих
алгоритмов произойдет беспрепятственно, а во второй алгоритмы схватятся
(будет клинч). Произойдет или не произойдет схватывание — зависит от со-
91
отношения скоростей выполнения алгоритмов. Описанное схватывание
(клинч) является мерцающим. На рис. 5.4. области алгоритмических процес-
сов, одновременное вхождение в которые вызывает наступление мерцающе-
го клинча, обозначены соответственно буквами А и В.
Мерцающий клинч предотвращается объединением двух ресурсов R и Q
в один объединенный ресурс (если невозможно так перестроить алгоритмы,
чтобы области А и В отсутствовали). Это должно быть сделано в процессе
разработки алгоритмов.
В более общем случае захваты резервов могут осуществляться не одиноч-
ными алгоритмами, а их группами.
5.5. ОТКРЫТЫЕ КОЛЛЕКТИВЫ. ИЕРАРХИЯ
Коллективы алгоритмов, в которых применяется открытый буфер только
для ’’пуска” коллектива, обычно относят к закрытым. Мы будем говорить
об открытых коллективах, имеющих и другие открытые буфера, называе-
мые существенными.
Наличие открытого буфера может вызывать безрезультатную остановку
коллектива алгоритмов. Внося искусственно изменения в состояние откры-
того буфера, можно добиться продолжения процесса и, поступая так нужное
число раз, довести процесс до получения результата. Если, по-разному воз-
действуя на буфер, можно получать не равные между собой результаты, то
открытый буфер называется существенным. Наличие существенного откры-
того буфера приводит к тому, что коллектив алгоритмов перестает обладать
свойством однозначности результата по отношению к исходному данному.
Если для закрытых коллективов справедлива теорема о том, что каждый
из них эквивалентен некоторому одиночному алгоритму, то для открытого
коллектива это не так (из-за его неоднозначности).
Но посмотрим на открытый коллектив алгоритмов с другой стороны.
Будем считать, что операнд X (исходное данное) является некоторым пара-
метром, а последовательность элементов информации b = (bi9 b2, Ьп),
которые мы вводим в буфер для того, чтобы совокупный процесс привел
к искомому результату (обозначим его У), примем за значение аргумента.
Повторяю, значениями аргумента будем считать не отдельные данные, а их
последовательности. Тогда окажется, что каждую последовательность b (при
фиксированном X) коллектив алгоритмов отображает на некоторый резуль-
тат Y. И при этом отображение будет однозначным.
Каждую последовательность b будем называть серией1
1 Не смешивать с серией критических отрезков процесса.
92
Если коллектив алгоритмов имеет несколько открытых существенных
буферов, то он индуцирует функцию от многих переменных (зависящую от
параметра X). Значениями аргументов этой функции будут серии данных.
Обычно в роботе под параметром X понимают ту информацию, которая
хранится в его памяти (запоминающем устройстве), а результат Y расчленя-
ют на части, одну из которых считают новым значением X, другую рассматри-
вают как управляющую информацию и передают эффекторам, а третью во-
все стирают как ненужную (это ’’отходы производства”).
После получения результата и выделения из него нового значения X, вы-
полнение коллектива алгоритмов повторяют и т. д. Таким образом, сигналы
рецепторов вместе с информацией, накопленной в памяти, перерабатываются
в управляющие сигналы и новое состояние памяти.
Так как при управлении роботом существенное значение имеет своевре-
менность реакции, то в состав коллектива алгоритмов иногда включают
алгоритм, играющий роль рецептора, называемый генератором времени. За-
даваемое им ’’время” называют алгоритмическим временем.
Генератор времени часто называют алгоритмическими часами. Но такой
термин неудачен. Часы, по всеобщему мнению, являются измерительным
прибором, который позволяет измерять время. Я не стану оспаривать эту об-
щепринятую точку зрения, но замечу, что ничего общего с измерением време-
ни генерация алгоритмического времени не имеет.
Пусть Т — некоторая подконструкция операнда, которая может принимать
состояния 1\, Г2, , TN, где N— очень большое число, и пусть 0 — про-
цедура, которая для любого i<N преобразует 7/ в j, а кроме того TN в Тх.
Генератором времени называется алгоритм
1) Т =в ;
Другие алгоритмы коллектива могут обращаться в подконструкции Т
только для чтения, и таким способом они (если это надо) ’’узнают”, каково
алгоритмическое время. Если подконструкция Т никак не защищена, то в
момент обращения к ней нескольких алгоритмов происходит не поддающа-
яся учету случайная задержка всех процессов, кроме одного. При этом ре-
зультат, который прочитает тот или иной алгоритм, непредсказуем. Чтобы
алгоритмы коллектива между собой не ’’боролись” за доступ к Т, следует
организовать очередь из алгоритмов-пользователей. Но это не устранит не-
предсказуемости результата считывания. Если же подконструкцию Т органи-
зовать как буфер, защищенный регулирующими предикатами, то непредска-
зуемость исчезнет, но генератор времени будет останавливаться и ждать, пока
алгоритмы-клиенты читают ’’который час”. Разработчик коллектива алгорит-
мов должен решать, что лучше или, вернее, что хуже.
Обычно в качестве Т берут ячейку, которая может принимать последова-
93
тельные числовые значения, т. е. удовлетворяющую условию T^i — 1, и тог-
да генератор времени принимает вид
1) Г:= (Г+ 1) modTV,->1 ;
Здесь выражение (f + 1) mod N называется сложением по модулю N и равно
остатку от деления суммы Т + 1 на N. В нашем случае
Г+ 1 при? <7V;
(Г+ 1) mod7V =
1 при T = N.
Можно построить генератор времени так, чтобы ’’столкновение” алгорит-
мов при чтении было полностью исключено. Например, для каждого алгорит-
ма Aj отвести свою ячейку связи с часами 7}. Это похоже на ситуацию, в ко-
торой каждому прохожему предоставлялся бы отдельный циферблат на улич-
ных часах только для того, чтобы, определяя время, прохожие между собой
не передрались... При этом генератор времени может иметь вид:
1) £: = 1,->2; 4) £: = 7+J,->2 ;
2)7’: = О,->3; 5) Т) = (7} + 1) modTV,^6 ;
3) Если i = и, то ->4, иначе -> 5; 6) i: = (i + 1) mod m , -» 5 ;
Легко сообразить, что такие ’’часы” на разных ’’циферблатах” одно и то же
будут показывать не одновременно. Возможность столкновений между ал-
горитмами и генератором и здесь не устранена.
Точное алгоритмическое время алгоритмы коллектива не могут считывать
из-за того, что в коллективе возникает ’’борьба” за обращение к ’’часам” Т.
Но если для отсчета времени взята ячейка, принимающая последовательные
целочисленные значения, то границы интервала разброса можно определить
и тогда будет известно, с какой ошибкой определяется алгоритмическое
время поступления данных или выдачи результата.
В тех случаях, когда коллектив алгоритмов реализован в виде некоторого
физического устройства, можно установить экспериментальным способом
зависимость, существующего между алгоритмическим и физическим време-
нем. Соотношение это должно быть таково, чтобы робот действовал в так на-
зываемом реальном времени, т. е. чтобы реакции на внешние воздействия
вырабатывались достаточно быстро. Иначе управляющее устройство робота
неэффективно. Читателю понятно, что управляющее устройство при нашем
подходе - это физическая модель открытого коллектива алгоритмов.
Наряду с регулирующими предикатами, вернее с ожиданием регулирую-
щего предиката, можно допустить и другие бесконфликтные способы обра-
щения к буферу. Я имею в виду такой практически важный прием, как
спаривание буфера с собственной подконструкцией алгоритма. Поясню этот
прием.
Прежде всего замечу, что каждый алгоритм может иметь много собствен-
ных подконструкций. До сих пор я не подчеркивал этого факта. В предыду-
щих примерах встречалась подконструкция 5/. В действительности это мо-
жет быть любая из собственных подконструкций и даже совокупность всех
собственных подконструкций. В последнем случае наши примеры приобрета-
ют очень частный характер, с которым я мирился ради простоты, учитывая
возможность его устранения включением дополнительных приказов.. Ниже
нам просто нужно, чтобы собственных подконструкций было несколько (хо-
тя бы две).
Пусть теперь В - некоторый буфер, Р/ - регулирующий предикат, задан-
ный на этом буфере и соответствующий алгоритму Aа 5/ — одна из собст-
венных подконструкций алгоритма Aj. Тогда возможна следующая семанти-
ческая схема обращения к В :
1) Если^. (В), то->2 , иначе->3; 3)5/ = ~ ^(5/, 5/),->4;
2) Si = ^(Д 5/),-*4; 4)
Эта схема предусматривает проверку истинности регулирующего предиката
Pf. Если предикат имеет логическое значение ’’истина”, то выполняется при-
каз 2, смысл которого в том, что информация из буфера В переносится в
подконструкцию Sj9 после чего, начиная с приказа 4, продолжается выполне-
ние алгоритма Л/. Если же регулирующий предикат имеет логическое значе-
ние ’’ложь”, то аналогичная по своей структуре (но другая по смыслу) ин-
формация, в силу приказа 3 переносится в собственную подконструкцию 5/
из 5/и, как в предыдущем случае, продолжается выполнение алгоритма, на-
чиная с приказа 4. Буфер В должен быть открытым. Сущность описанного при-
ема в том, что если внешнее воздействие не закончено к моменту обращения
алгоритма к В, то вместо ожидания информации, которая может поступить
в буфер, но нарушает требования режима реального времени, алгоритм Л/ из
подконструкции Sf' получает запасенную ранее, может быть, несколько уста-
ревшую, но близкую к нужной информацию.
Мы уже говорили, что буферы можно применять для запуска алгоритмов
и даже их коллективов (см. с. 84). Эту возможность легко использовать для
того, чтобы один алгоритм (или коллектив) разрешал или запрещал функци-
онировать другому. Пусть буфер а доступен алгоритму Л по записи, а алго-
ритму В - по чтению и В содержит приказ ’’Ожидать а = 1”, причем вначале
а = 0. Достигнув этого приказа, В остановится и будет ’’ожидать” до тех пор,
пока алгоритм Л не выполнит приказ
к) а : = 1; -+к + 1;
Тот же Л, своим приказом
Z) а : = 0, -> / +1;
заставит алгоритм В остановиться при очередном обращении к а.
95
При такой связи между алгоритмами (коллективами алгоритмов) В и А
говорят, что В подчинен А.
Если коллектив алгоритмов К можно разбить на подколлективы так, что
каждый из них, кроме одного (главного), подчинен одному и только одному
подколлективу, то К называют иерархическим.
Иерархическая структура позволяет четко распределить функции между
подколлективами.
Передача подчиненным подколлективом своих результатов старшему до-
пустима, но без задержки процесса выполнения старшего. Один из приемов
такой передачи заключается в том, что старший наделяется возможностью
’’маскировать” буфер, доступный младшему по записи. Допустим, что млад-
ший обращается к старшему, заменяя в буфере у код 0 кодом 1. Тогда для
старшего предусматривают собственную ячейку 6, которая может содержать
либо 0, либо 1, и в старшем ставят пару приказов
к) Если 6 = 1, то -+к + 1, иначе к + т ;
к + 1) Ожидать у=1, ~+к + 2;
Г л а в а 6
"СПОСОБНОСТИ"РОБОТОВ
К наиболее поразительным результатам логической теории ал-
горитмов относится установление факта существования неразрешимых проб-
лем и обнаружение большого числа конкретных проблем такого характера.
Мы пользуемся в своей теории дискретных роботов аналитической теорией
алгоритмов, но не можем не обратить внимание на эти результаты логичес-
кой теории. Прежде всего нас интересует вопрос, не является ли неразреши-
мость фатальной для теории роботов? И что это вообще такое? Может быть,
это математическая ’’фикция”, вроде точек, не имеющих никаких измере-
ний? И в вопросах практики она не страшна?
6.1. АЛГОРИТМИЧЕСКИ НЕРАЗРЕШИМЫЕ ПРОБЛЕМЫ
Прежде всего заметим, что когда идет речь о разрешимости или неразре-
шимости проблем, то имеются в виду не одиночные проблемы, а массовые.
Примером одиночной проблемы может служить задача: ’’Найти сумму чисел
2 и 3”. Массовые проблемы требуют нахождение некоторого общего метода
или алгоритма. Например, массовой проблемой является задача: ’’Найти ал-
горитм получения суммы двух произвольных целых чисел х и у”. Такой
96
алгоритм нам известен ”со школьной скамьи”. Обе названные проблемы раз-
решимы, причем, имея решение массовой проблемы, мы без труда решим и
входящую в нее одиночную проблему.
Неразрешимыми могут быть как одиночные, так и массовые проблемы.
Например, неразрешимая одиночная проблема: ’’Найти частное от деления
числа 3 на число 0”. Соответствующая массовая проблема: ’’Найти алгоритм
для получения частного от деления произвольного числа х на число 0”. Эта
проблема тоже неразрешима, но такие массовые проблемы, которые являют-
ся совокупностью неразрешимых одиночных проблем, не удивительны. Од-
нако при исследовании феномена неразрешимости рассмотрение и таких
проблем может принести пользу.
Рассмотрим еще одну массовую проблему. Предположим, что нам дано
конечное множество символьных конструкций, каждой из которых присвое-
но имя. Для простоты будем считать, что имена являются словами. Список
имен, разделенных запятыми, будем называть каталогом. Каталог - тоже
символьная конструкция, и мы будем его тоже снабжать именем. От имен
требуется, чтобы они были попарно различны между собой. Например, име-
ются три конструкции и их именами являются строчные буквы русского
алфавита ”а”, ”б” и ”в” Обозначим отношение именования (х есть имя кон-
струкции ЛЭ знаком =”, который мы прежде употребляли в метаформу-
лах, вкладывая в него несколько иной смысл. Тогда можно написать
к1:: = а, в
Эта запись означает, что каталог, содержащий имена двух символьных конст-
рукций, указанных справа, сам имеет имя ”к1”. Построим еще один каталог
к2 :: = а, б, к2
Этот каталог содержит свое собственное имя. Составляя каталоги, мы расши-
ряем изучаемое множество именованных символьных конструкций. Не бу-
дем составлять слишком много каталогов, так как основных символьных
конструкций у нас всего три и каталоги будут главным образом упоминать
в своем составе друг друга. Допустим, что нами всего составлено три катало-
га: два ранее указанных и каталог
кЗ :: = а, б, в
Каталоги, упоминающие самих себя, назовем автонимными, а не упомина-
ющие себя — неавтонимными. Предположим, что требуется составить еще
один, последний каталог к4, который должен быть каталогом всех неавто-
нимных и только неавтонимных каталогов.
Казалось бы, построить каталог к4 нетрудно. Он будет
к4 :: = к1, кЗ
4 3;ik. 15Kb
97
Стоп! Это неверно, потому что он сам себя не упоминает и, значит, не яв-
ляется каталогом всех неавтонимных каталогов. Исправим его:
к4 :: = к1, кЗ, к4
Теперь он сам себя упоминает и потому перестал быть каталогом только
неавтонимных каталогов. Что же, проблема неразрешима? Да, неразрешима!
Но почему? Да потому, что мы требуем от к4 невозможного: по нашему тре-
бованию, если он себя не упоминает, т. е. неавтонимен, то должен по этой при-
чине себя упоминать; если же он себя упоминает (и, значит, автонимен), то
должен не упоминать. В обоих случаях он должен одновременно и упоминать
и неупоминать себя. Такое условие называется абсурдным. Каталог к4 аб-
сурден и потому невозможен.
В нашем примере проблема каталога к4 была одиночной. Но если бы мно-
жество исходных конструкций было произвольным конечным, то можно бы-
ло бы поставить массовую проблему нахождения алгоритма построения ка-
талога всех неавтонимных и только неавтонимных каталогов. Она, понятно,
была бы неразрешима.
Видоизменим проблему каталога так, чтобы она была проблемой, связан-
ной с алгоритмом. Рассморим класс алгоритмов, записи которых являются
словами в алфавите X, и в качестве допустимых исходных данных могут
иметь любые слова в алфавите Y, содержащем не менее двух букв. Любую
запись алгоритма нашего класса можно закодировать в виде слова в Y. Дей-
ствительно, если буквами алфавита Y являются ”а”, ”б”, .., то можно 1-ю
букву алфавита X закодировать в виде слова ”аба”, вторую в виде слова
”абба”, третью — в виде слова ’’аббба” и т. д. Такой код является однознач-
ным и, более того, однозначным в обе стороны. Если какой-либо алгоритм
применим к коду другого алгоритма В, то назовем его применимым к В, ес-
ли же он применим к своему коду (описанного вида), то будем его называть
самоприменимым. Если алгоритм не применим к своему коду, то будем его
называть несамоприменимым. Рассуждая так же, как с каталогами, мы без
труда докажем, что алгоритм, применимый ко всем несамоприменимым и
только к несамоприменимым алгоритмам и принадлежащий нашему клас-
су — абсурден. Это еще одна неразрешимая проблема - построение такого
алгоритма.
Читатель скажет, что в этом примере нет ничего нового. . Но погодите!
Рассмотрим теперь вопрос о разрешимости проблемы распознавания неса-
моприменимости. Предположим, что она разрешима, т. е. известен алгоритм,
имеющий схему:
1) Если U (z), то -> 2, иначе -> 3 ;
2) v = да, стоп 1 ;
3) и : = нет, стоп 2 ;
98
где z произвольный код алгоритма; U (z) — процедура распознавания не-
самоприменяемости; V — ответ.
Но тогда^можно построить алгоритм
1) Если U (z), то стоп, иначе 1;
Применение этого алгоритма к коду несамоприменимого алгоритма, не изме-
няет этот код, а применение к коду самоприменимого - приводит к зацикли-
ванию, что означает неприменимость, Другими словами, мы получили алго-
ритм, который применим ко всем несамоприменимым и только к несамо-
применимым алгоритмам, т. е. мы пришли к абсурду. Все это справедливо,
если последний алгоритм принадлежит к нашему классу. При таком условии
мы должны признать, что процедура распознавания несамоприменимости не
существует. Задача распознавания несамоприменимости оказалась неразре-
шимой массовой проблемой.
Но тогда неразрешима и проблема распознавания самоприменимости, так
как она тесно связана с проблемой распознавания несамоприменимости.
Наше доказательство условно справедливо. Если допустить гипотезу, что
для всякого алгоритма, имеющего в качестве исходных данных слова в У,
существует эквивалентный ему алгоритм в указанном нами классе (и если
эта гипотеза будет верна!), то доказательство становится завершенным.
Смысл и правомерность такой гипотезы мы обсудим чуть позже, а сейчас
вернемся к рассмотренной нами массовой проблеме. Итак, массовая пробле-
ма распознавания самоприменимости алгоритмически не разрешима. Но в
ее состав входят одиночные проблемы, которые разрешимы. Например, на-
туральные алгоритмы, в которых не применяются операции линеаризации и
делинеаризации (см. § 4.4), принадлежат нашему классу алгоритмов. Имея
тот или иной натуральный алгоритм, можно его закодировать и непосредст-
венно применить его к своему коду. К примеру возьмем алгоритм
1 : 2 ;
2 : Л 3 ;
3 :X ,стоп ;
Читатель, если он не верит мне на слово, может убедиться, что этот алго-
ритм самоприменим.
Значит, существуют массовые проблемы, которые неразрешимы, тогда
как входящие в их состав частные проблемы могут быть разрешимыми.
Если неразрешима проблема самоприменимости, то можно сказать, что не-
разрешима и проблема распознавания применимости произвольного алгорит-
ма нашего класса к произвольному допустимому для него исходному данно-
му. Это следует из того, что, имея алгоритм распознавания применимости
любого алгоритма к любому допустимому для него исходному данному, мы
сумели бы составить алгоритм распознавания самоприменимости, что в дей-
ствительности невозможно.
4-
99
Обсудим вопрос об упомянутой выше гипотезе. Поразительно, но факт,
что такая гипотеза принята в логической теории алгоритмов. В разных раз-
делах логической теории алгоритмов она известна под разными названиями
и формулируется в различном виде. Тезис Черча, тезис Тьюринга, принцип
нормализации — вот ее разные формы и названия. Она не является ни теоре-
мой, ни аксиомой, потому что связывает не формализованное в логической
теории алгоритмов понятие алгоритма вообще с понятием алгоритмов до-
вольно узкого класса, которое сформулировано строго. Это нечто вроде
принципа (закона) сохранения материи.
Доказать справедливость такого принципа нельзя, но по мнению ряда ма-
тематиков он подтверждается всей практикой человечества. Они говорят
’’Попробуйте его опровергнуть!” Читатель согласится, что для математики,
если считать ее наукой, имеющей особенный метод, такое явление необычно.
Но в том то и дело, что математика, хотя она и очень абстрактна, является
одной из естественных наук и, нравится это или нет некоторым идеалистам,
почитающим себя знатоками оснований математики, ее основанием явля-
ется совокупная практика человечества.
Замечу, что аналитическая теория алгоритмов дает широкое формальное
определение алгоритма, по отношению к которому все логические теории
алгоритмов являются теориями частных семейств алгоритмов. При более ши-
роком, необходимом для практики понятии алгоритма можно было бы вы-
шеназванные тезисы доказать для алгоритмов, исходные данные и результа-
ты которых являются словами. Хотя эти доказательства еще не проведены,
но я думаю, что их можно сделать. Что же касается алгоритмов, перерабаты-
вающих более сложные (чем слова) конструкции, то для них, конечно, эк-
вивалентов вышеуказанного частного класса может не быть.
Иногда приходится слышать утверждение, что неразрешимость массовых
проблем связана с их слишком большой общностью. Стоит сузить проблему
надлежащим образом, и она станет разрешимой. Но что значит ’’сузить”?
Если ее сузить до одиночной проблемы, то, как я показал выше, она может
стать разрешимой. Но доказано, что и одиночные проблемы бывают нераз-
решимы. Значит, причина неразрешимости не в обширности проблемы, а в
ее особенностях. Если проблему сузить так, чтобы ее ’’плохие” особенности
были устранены, то получится подпроблема данной проблемы, которая раз-
решима. Решить вопрос о том, как произвести такое сужение — сложная ма-
тематическая задача. Но для практических целей это и не нужно. Поясню ска-
занное примером.
Вернемся к самому первому и безнадежному случаю. Построить каталог
всех неавтонимных и только неавтонимных каталогов невозможно. Но зачем
нам такой каталог? Вероятно, для того чтобы по нему находить неавтоним-
ные каталоги. Если, строя каталог каталогов, мы будем помечать, какие из
100
них автонимные, например, пометкой ”(—)”, т0 каталог, упоминающий все
неавтонимные каталоги, будет пригоден для нахождения неавтонимных ката-
логов. А чтобы не затруднять работу, связанную с поиском в каталоге, будем
строить минимальный каталог, содержащий имена всех неавтонимных ката-
логов. В нашем случае это будет (см. с. 98):
к4:: = к1, кЗ, к4(-).
Отсюда вывод: сталкиваясь с неразрешимой проблемой, мы должны
вместо нее искать разрешимую, которая решает нужные нам задачи. Во мно-
гих случаях простой здравый смысл подскажет нам, как это сделать. Во вся-
ком случае феномен неразрешимости является существенным препятствием
для составления многих алгоритмов и заслуживает самого пристального вни-
мания.
Феномен неразрешимости обнаружен логической теорией алгоритмов. Од-
нако неразрешимые проблемы существуют и для аналитической теории ал-
горитмов, в рамках которой мы действуем, потому что классы алгоритмов,
используемые в логической теории алгоритмов, являются частными случая-
ми алгоритмов в широком смысле.
При этом можно утверждать, что любой алгоритм, изучаемый в аналитической тео-
рии, либо эквивалентен некоторому из избранных алгоритмов (изучаемых в логической
теории), либо ему равносилен. Под равносильностью понимается следующее. Если ал-
горитм А перерабатывает операнд X в результат Y и если избранный алгоритм В, могу-
щий перерабатывать только слова в слова-результаты, перерабатывает11 (X) в некото-
рый у, причем d (у) = У, то говорят, что А равносилен В. Другими словами, основная
гипотеза, которая была нами названа выше, по отношению к алгоритмам аналитической
теории является просто доказанной теоремой.
Зададимся теперь вопросом: как понимать феномен неразрешимости в
общечеловеческом и философском смысле? Существуют ли неразрешимые
проблемы для человека?
Совершенно ясно, что машине решение произвольной одиночной пробле-
мы, входящей в неразрешимую массовую проблему, не под силу. Ведь прог-
раммы — это алгоритмы, а неразрешимая проблема потому и неразрешима,
что алгоритма, пригодного для любой одиночной проблемы, нет. Некоторые
ученые говорят, что человек тем и отличается от машины, что любую одиноч-
ную проблему, входящую в неразрешимую проблему, он может решить [ 13].
Такое категорическое заявление - ошибочно.
Если одиночная проблема не разрешима, то она подобна задаче: ’’Найди
число, которое меньше чем 1 и больше чем 2”. Такая проблема не разрешима
ни для машины, ни для человека. Если же одиночные проблемы все разреши-
мы, но нет общего алгоритма для решения любой из них (массовая проблема
не разрешима), то его нет ни для машины, ни для человека. И тогда нужно
1 Напоминаю, что I означает линеаризацию, &d - делинеаризацию.
101
искать разрешимую массовую проблему, которая охватывает только случаи,
имеющие практическое значение. Но тогда алгоритмы будут существовать и
для машины и для человека. Человек сможет и решить любую одиночную
проблему, и составить программу для машины.
Некоторые ’’философы”, стремясь опровергнуть материалистическую
диалектику, говорят, что феномен неразрешимости доказывает непознавае-
мость мира. Но им могут поверить только те, кто не знает, что такое фено-
мен неразрешимости. Скорее, этот феномен подтверждает, что на некоторых
языках можно высказать формулировки, которые кажутся осмысленными,
но в действительности бессмысленны. Вроде утверждения ’’данная фраза
ложна”. Почему-то такие философы не удивляются тому, что нет общей
грамматики для всех языков мира, а вот отсутствие общего правила для оп-
ределения несамоприменимости алгоритмов их наводит на мысль о непозна-
ваемости мира.
Отмечу одну особенность массовых проблем. Если они объединяют в себе
конечное множество разрешимых одиночных проблем, то они всегда разреши-
мы, сколь бы велико не было число одиночных проблем. Тому, доказатель-
ством является принципиальная возможность построения таблицы решений.
Но для очень больших множеств (хотя и конечных) таблица решений будет
практически бесполезной. Массовая проблемма, объединяющая бесконечное
множество разрешимых одиночных проблем, может оказаться неразрешимой.
Так как в дискретном роботе число всевозможных комбинаций симво-
лов, порождаемых рецепторами, конечно, то и число возможных состояний
его ’’памяти”, а значит, и число могущих возникнуть одиночных проблем то-
же конечно. Значит, массовая проблема, объединяющая все эти одиночные
проблемы, должна быть алгоритмически разрешима.
6.2. ПАМЯТЬ; ОБУЧЕНИЕ
Всякий робот должен быть автоматом с внешней обратной связью. Это —
принятое нами определение робота. Между его рецепторами и эффекторами
должна существовать зависимость, которая выражается в том, что изменения
внешней среды, производимые эффекторами, должны быть доступны вос-
приятию рецепторов. Иначе обратной внешней связи не будет. Обратная связь
должна обеспечивать контроль эффективности действий, совершаемых эф-
фекторами. Эти вопросы мы рассмотрим в следующих главах. Сейчас попы-
таемся определить, на какие ’’способности” робота можно рассчитывать и
при каких условиях.
Дискретный робот может быть аппаратной реализацией некоторого кол-
лектива алгоритмов. Каждый алгоритм коллектива будет при этом реализо-
102
ван в виде некоторого устройства, называемого процессором. О возможных
структурах преобразователя информации роботов говорится в гл. 7.
Если в роботе все функциональные алгоритмы преобразования информа-
ции реализованы аппаратно, то робот называется фиксированным или жест-
ким. Если в нем присутствуют только совершенно необходимые для приема
сигналов от датчиков информации, обмена информацией между параллель-
но работающими процессорами и выдачи результатов запоминающие элемен-
ты, то жесткий робот называется роботом без памяти. Поведение робота без
памяти детерминировано. При периодически изменяющихся внешних воздей-
ствиях периодически изменяется и его реакция. Все же благодаря наличию
внешней обратной связи (и при разумной конструкции) робот без памяти
может устанавливать равновесие между собой и внешней средой.
Следующим уровнем в классификации можно считать жесткие роботы с
памятью. Такие роботы, кроме минимума запоминающих элементов, содер-
жат запоминающие элементы, в которых можно фиксировать результаты пе-
реработки некоторого количества предыдущих ситуаций, имевших место во
внешней среде. Разумеется, алгоритмы, физически реализованные в роботах,
должны позволять пользоваться этой информацией при переработке потока
входной информации.
Роботы с памятью могут накапливать некоторый ’’опыт”. Один из спосо-
бов его применения мы уже знаем: спаривание буфера и собственной подкон-
струкции. Второй способ заключается в том, что в операнд включена некото-
рая информация сверх той, которая поступает от датчиков. При наличии до-
статочного объема запоминающего устройства в нем можно зафиксировать
символьную конструкцию, несущую такую информацию.
Если сравнивать робот с живыми организмами, то информацию, заложен-
ную заранее в операнд и в алгоритмы, которые реализованы аппаратно, мож-
но назвать врожденной. Информацию, которая накапливается в процессе
функционирования, можно назвать опытом робота.
Очень часто алгоритмы накапливания опыта и алгоритмы функциониро-
вания робота делают независимыми, так что весь коллектив алгоритмов
состоит из двух подколлективов, связанных буфером-ячейкой, на котором
задан коллектив регулирующих предикатов третьего порядка открытый,
причем первый подколлектив (накапливающий опыт) состоит из алгорит-
мов, сопряженных относительно одного предиката, второй подколлектив
(осуществляющий функционирование с учетом опыта), состоит из алгорит-
мов, сопряженных относительно второго предиката, а третий — допускает
вмешательство человека. Запустив первый подколлектив, человек может,
создавая нужные для этого состояния внешней среды, создать в ’’памяти”
робота нужную информацию. Этот процесс называют обучением робота^ а
человека, производящего обучение, - ментором. Описанный метод приме-
103
няют, например, если нужно ’’приучить” робота к голосу ментора. По оконча-
нии обучения обучающийся подколлектив отключают и включают подкол-
лектив, осуществляющий функционирование.
Следующий по богатству возможностей — класс гибких роботов. Гибкий
робот моделирует не функциональные алгоритмы (или не все функциональ-
ные алгоритмы), а их алгоритмы выполнения (или некоторые алгоритмы
выполнения). Тот функциональный алгоритм, алгоритм выполнения кото-
рого задан аппаратно, сам должен быть задан в виде символьной конструк-
ции, подобно программе ЭВМ. Гибкий робот должен располагать достаточно
емкими запоминающими устройствами, так как в них должна храниться и
управляющая и накапливаемая информация.
Технически целесообразно аппаратно реализовать не все алгоритмы вы-
полнения коллектива, а лишь некоторые. Например, генератор алгоритмичес-
кого времени, алгоритмы ведения очередей и некоторые другие реализовать
аппаратно непосредственно, а алгоритмы накопления информации и выдачи
управляющих символов — опосредствовано (т. е. в виде символьных записей
и алгоритмов выполнения).
Гибкие роботы могут быть сделаны обучающимися и накапливающими
опыт, причем в них появляется еще одна возможность реализовать эти свой-
ства — видеоизменяя те алгоритмы, которые хранятся в памяти в виде сим-
вольных конструкций.
Подведем итог этого параграфа. Некоторый минимум запоминающих
элементов необходим во всяком дискретном роботе. При достаточно боль-
ших объемах запоминающих устройств робот может накапливать опыт и обу-
чаться. Наибольшие возможности накопления опыта и обучения предоставля-
ют гибкие роботы.
Замечу, что некоторые ценные знания, нужные для создания роботов, на-
копили специалисты по разработке и эксплуатации ЭВМ. Анализ самих ЭВМ
с точки зрения роботологии мы произведем позже.
6.3. САМООБУЧЕНИЕ
Возможность создания самообучающихся роботов не вызывает сомне-
ния. , но реальные результаты в этом направлении пока что незначительны.
У животных основной способ самообучения заключается в выработке услов-
ных рефлексов. Собственно, и обучение животных осуществляют, создавая у
них условные рефлексы. Животное обучают выполнять команду, подкрепляя
правильное ее выполнение соответствующим поощрением, а неправильное —
отсутствием поощрения или даже наказанием. Вряд ли такой метод обучения
и самообучения роботов практически целесообразен. Ведь гораздо проще
104
ввести информацию в запоминающее устройство или изменить алгоритм, чем
создавать алгоритм, моделирующий образование условных рефлексов. Тем
не менее существует ряд экспериментальных роботов, в которых моделиру-
ется условный рефлекс.
Уже пресловутые ’’черепахи” Кора и Элси англичанина Грея Уолтера (ко-
торые были одними из первых роботов-игрушек описаны в научной литера-
туре) имитировали условный рефлекс. Например, Кора, прикасаясь при пе-
ремещении к препятствию, давала задний ход и делала поворот на некоторый
угол, после чего снова двигалась вперед, объезжая таким образом препятст-
вие. Если при каждом соприкосновении с препятствием подавали звуковой
сигнал свистком, то Кора начинала реагировать на свисток как на контакт с
препятствием. У нее появлялся ’’условный рефлекс”. При отсутствии совпа-
дений звуковых сигналов и соприкосновений с препятствиями через некото-
рое время ’’условный рефлекс” забывался. Совпадение двух видов сигналов
запоминалось путем зарядки конденсатора, а забывалась связь между ними
в результате того, что конденсатор постепенно разряжался через сопротивле-
ние, включенное параллельно с ним. Впоследствии были созданы програм-
мные модели условных рефлексов на ЭВМ.
Роботы, обладающие условными рефлексами, пока что имеют лишь эк-
спериментальное значение.
6.4. СОБСТВЕННАЯ МОДЕЛЬ. МОДЕЛЬ СРЕДЫ
Существует еще один способ самообучения, который связан с более слож-
ной структурой робота. Рассмотрим сначала необходимое для этого функци-
ональное и структурное усложнение робота, а затем вернемся к вопросу са-
мообучения.
Если мы внимательно всмотримся в свои собственные способности, то за-
метим, что каждый из нас всегда знает, где в данное время находится тот или
иной его орган по отношению к другим органам. Имеются в виду ’’внешние
органы” О внутренних органах человек может этого не знать и даже может
не подозревать об их существовании. Например, многие ли знают, что имеют
гипоталамус1 ?
Для того чтобы робот ’’знал” о взаимном расположении его устройств, на-
ходящихся во взаимодействии с внешней средой, соответствующие устрой-
ства должны быть снабжены дополнительными датчиками информации. Так,
если эффектор может удлиниться, то датчик должен выдавать информацию
о его удлинении, если он может поворачиваться — об углах поворота, если он
может разогреваться — о его температуре. Эта информация, характеризую-
1 Гипоталамус - один из органов головного мозга.
105
щая состояние самого робота, должна по каналам связи поступать в преобра-
зователь информации. При этом возникают внутренние обратные связи. Пре-
образователь информации ’’узнает” о том, как выполняются выдаваемые им
управляющие сигналы. О состоянии датчиков внешней информации преобра-
зователь информации может ’’узнавать”, например, с помощью дополнитель-
ных специальных датчиков, контролирующих работу основных датчиков.
Информация о состоянии робота может существовать и в простых и в
сложных роботах. Ее наличие обеспечивает повышение надежности функцио-
нирования робота. Но новое качество она дает только в роботах с памятью.
Эту информацию можно организовать в так называемую собственную модель
робота. Информация, поступающая от рецепторов робота, может быть орга-
низована в модель внешней среды.
Слово ’’модель” понятно каждому инженеру. Это объект, аналогичный
прототипу, исследованием которого можно заменить исследование прототи-
па. Но такое содержательное понятие о модели ничего не говорит о том, как
создать модель. Этот вопрос остается вопросом интуиции, искусства того,
кто создает модель. Здесь нам на помощь приходит математика, которая,
как оказывается, своими абстрактными методами изучает, в частности, и
модели, а для этого формализовала это понятие, дала ему строгое определе-
ние (правда, не изучая связи модели с прототипом, потому что каждый про-
тотип всегда конкретен и в математике может принять только вид модели;
поэтому вместо изучения связи модели с прототипом, математика изучает
наиболее важные связи между моделями). Что же называет моделью матема-
тика (точнее абстрактная алгебра) ? Модель — это множество, на котором за-
дана некоторая система отношений. Информационная модель должна быть
множеством элементов информации, в простейшем случае элементами ин-
формации могут быть не очень ’’длинные” слова. Какие? Различные, причем
каждый элемент в различное время является не одним и тем же словом, а
видоизменяется. Конкретные слова, которые могут становиться данным
элементом информации, называются состояниями этого элемента.
Какие же отношения могут существовать между элементами информации?
Во-первых, отношения, показывающие, в какой взаимосвязи друг с другом
находятся соответствующие элементы прототипа. Эти отношения можно вы-
разить в виде связей, существующих между элементами информации, как
подконструкциями совокупной символьной конструкции, которая из них
образована. В простейшем случае элементы информации можно объединить в
двумерную таблицу. В этой таблице столбцы и строки могут группировать-
ся по тому или иному принципу в подрубрики и рубрики. Кроме того, между
ними могут быть отношения, зависящие от их физического смысла и от наз-
начения робота.
Покажем на примере ’’черепахи” Коры, как могут выглядеть модели —
106
собственная и внешней среды. Кора не формирует таких моделей и не имеет
нужного для этого дополнительного оборудования. Модели мы составляем
для робота, который получился бы при соответствующей модернизации Ко-
ры. Таблицы, входящие в состав указанных моделей, могут иметь вид
табл. 6.1. и 6.2.
Таблица 6.1. Собственная модель Коры
Положение руля поворота Направление вращения колес
X У
Таблица 6.2. Модель внешней среды для Коры
Контакт с препят- ствием Звуковой сигнал Совпадение сигналов Алгоритмическое время, протекающее после совпадений
к Z Р t
Параметр х может принимать значения 1 (прямо), 2 (направо) или 3 (на-
лево) ; параметр у — значения 1 (вперед) или 2 (назад). Параметры к, z, р
могут принимать значения 0 (нет) или 1 (есть). Значение параметра 7 полу-
чается в результате считывания алгоритмического времени, даваемого гене-
ратором времени.
Читатель не должен обольщаться простотой приведенного примера, так
как более или менее сложный робот имеет модели во много тысяч раз более
сложные. Табличный метод очень прост, но не всегда экономен. Его нужно
сочетать с аналитическим методом, в котором отношения моделей задаются
либо аналитическими формулами, либо в виде алгоритмов.
Совокупность параметров, значения которых являются элементами ин-
формации в модели, можно посчитать координатами точки в многомерном
математическом пространстве. Такое пространство называется фазовым.
Каждое состояние модели - это точка соответствующего фазового простран-
ства. Например, собственная модель Коры связана с пространством (х, J). Ее
состоянием может быть точка (3; 2), описывающая ситуацию, при которой
руль повернут налево и колеса вертятся назад. Параметр t в модели внешней
среды фактически представляет собой внутреннюю оценку внешнего собы-
тия. Его удобнее включить именно в эту модель, а не в собственную, так как
там он был бы ’’непонятен” Модель внешней среды Коры порождает четы-
рехмерное фазовое пространство (к, z,p,T), Ее состоянием может быть точ-
ка (1, 1, 1, 2500), описывающая ситуацию, при которой робот прикасается
107
к препятствию и слышит звуковой сигнал; сигналы совпали; время =
= 2500 единиц, но так как сигналы совпали, его надлежит уменьшить на-
столько, насколько увеличивается время разряда конденсатора Коры после
его подзарядки.
Для поддержания соответствия модели и состояния робота необходимо
соответствующее алгоритмическое обеспечение.
Имея в памяти робота модели (собственную и внешней среды), можно
с их помощью управлять действиями робота, иначе эти модели были бы доро-
гим излишеством. Вот тут-то и появляется новая возможность самообучения.
Коллектив алгоритмов робота, формирующего в своей памяти соответствую-
щие модели, может анализировать их функционирование и вносить в модели
некоторые изменения, которые будут влечь за собой изменения в поведе-
нии робота. Такое самообучение напоминает самообучение людей, анализиру-
ющих свой опыт, и на основании полученной оценки меняющих свое поведе-
ние. Роботы, обладающие указанным свойством, называют интеллектуальны-
ми, хотя такому ’’интеллекту” до интеллекта людей еще очень далеко.
Но все же робот с моделями собственной и внешней среды, имеет зачатки
’’субъекта”, своего ”я”. В нем формализовано противопоставление ’’робот —
внешняя среда” и взаимодействие между этими сущностями.
Читатель, если он скептик, может подумать, что интеллектуальные робо-
ты — это лишь фантастические домыслы. Он скажет: подавай мне такой ро-
бот и только тогда я поверю. Оптимист, напротив, подумает, что проблема
машин, имеющих сознание, уже полностью решена. На самом деле ни то, ни
другое. Ведутся работы и достигнуты определенные успехи. Но эти успехи
еще рассеяны в разных научных областях, и их нужно синтезировать. Не ре-
шены еще и многие чисто технические вопросы, но они уже поставлены. Ме-
тод формирования моделей внешней среды разработан в теории информаци-
онных систем, метод построения собственных моделей разработан специали-
стами математического обеспечения ЭВМ, методы алгоритмического анализа
используются многими программистами. Ведутся исследования в областях
разработки эффекторов и рецепторов. Многие промышленные роботы, в ко-
торых преобразователем информации является ЭВМ, являются интеллекту-
альными.
Внося искусственные изменения в модели, реализованные в интеллекту-
альном роботе, можно его обучать. Но такое обучение в принципе не отли-
чается от уже рассмотренного в § 6.2.
Отмечу, что разработчики роботов нередко называют интеллектуальными
роботами свои изделия, обладающие значительно меньшими ’’интеллектуаль-
ными” возможностями, чем роботы с моделями. Это связано с тем, что поня-
тие ’’интеллектуальный” робот пока что не формализовано и потому остав-
ляет большую свободу для своего применения.
108
6.5. АВТОМАТИЧЕСКИЙ СИНТЕЗ АЛГОРИТМОВ
Большой интерес для робототехники представляет метод автоматического
синтеза алгоритмов решения узкого класса задач, разработанный системны-
ми программистами для своих целей. В этом методе существенным компо-
нентом является планирование цепочек операторов, образующих алгоритм,
необходимый при данной внешней ситуации. Операторы, снабженные инфор-
мацией о способе их ’’соединения”, часто называют (если применяется семей-
ство операторных алгоритмов) модулями. Задача автоматического синтеза
состоит в том, чтобы, зная исходную информацию (ее имя и ее значение) и
название искомого результата, построить из заранее заготовленных модулей
необходимый алгоритм.
Такая проблема часто возникает, если робот рассчитан на выполнение ко-
манд, подаваемых его руководителем. Чтобы это пояснить, приведу простой
пример. Предположим, что робот должен выполнять команды такого типа:
’’Принести из библиотеки с полки номер 60 книгу номер 20”. Для этого нуж-
на информация и о том, где робот находится в момент получения задания.
Такая информация есть в собственной модели робота (а если ее нет, то она
должна быть задана). Допустим (для упрощения примера), что она есть.
Нужно только указать ее название. Команда может иметь вид: ”1) Пойди
отсюда в библиотеку; 2) возьми с полки № 60 книгу № 20; 3) из библиоте-
ки принеси сюда”. В команде выделены исходные данные (пойди отсюда) и
название искомого результата (библиотека, полка № 60, книга № 20, прине-
си сюда). Алгоритм планирования определит такую цепочку модулей:
1) ПОЙТИ (из данной комнаты в коридор); 2) ПОВЕРНУТЬСЯ (налево);
3) ИДТИ (до двери справа); 4) ПОВЕРНУТЬСЯ (направо); 4) ВОЙТИ
(в библиотеку) ; 5) НАЙТИ (полка № 60, книга № 20); 6) ВЗЯТЬ (книгу) ;
7) ВЫЙТИ (в коридор) ; 8) ПОВЕРНУТЬСЯ ( налево) ; 9) ИДТИ (до второй
двери справа); 10) ПОВЕРНУТЬСЯ (направо); 11) ВОЙТИ (в данную ком-
нату); 12) ОТДАТЬ (книгу, руководителю)).
В приведенном примере шрифтом выделены названия модулей; в скоб-
ках указаны необходимые для их работы сведения. В полученной цепочке
модулей их количество равно 12, но из этого числа различных только 6
(ПОЙТИ, ПОВЕРНУТЬСЯ, ИДТИ, ВОЙТИ, НАЙТИ и ОТДАТЬ). Эти 6 моду-
лей должны быть выбраны из имеющегося запаса и соединены в нужную це-
почку.
Упомянутый запас модулей называется библиотекой модулей и хранится в
запоминающих устройствах робота.
Каждый модуль использует некоторую исходную для него информацию
и вырабатывает: 1) определенные сигналы — информацию для эффекторов;
2) исходные данные для последующих модулей цепечки, которые присоеди-
109
няются к уже имеющимся исходным данным, нужным для последующих мо-
дулей.
В библиотеке модулей каждый может иметь некоторую оценку, и тогда
для задач, имеющих несколько путей решения, может быть выбрана цепочка
с наибольшей (или наименьшей, смотря по тому, что лучше) суммой оценок.
Это значит, что данный метод допускает оптимизацию синтезируемого алго-
ритма.
Достоинство данного метода заключается в том, что вместо хранения
большого объема управляющей информации он позволяет хранить неболь-
шое число модулей (позволяет экономить память). Но нужно знать и из-
держки метода. Он требует наличия алгоритма синтеза и алгоритма ведения
библиотеки модулей (если мы хотим иметь возможность включать в нее но-
вые модули и исключать какие-то, ставшие ненужными). Кроме того, он свя-
зан с расходом алгоритмического времени (а значит, и физического) на син-
тез и оптимизацию.
Для тех читателей, которых это может интересовать, сообщу, что метод
синтеза и оптимизации представляет собой интерпретацию решения транс-
портной задачи на сети дорог (модули являются образами географических
пунктов, а комплекты имен данных - образами соединяющих их дорог).
Из приведенного мною примера не следует сделать вывод о том, что авто-
матический синтез алгоритмов применим только для ’’домашних” роботов,
которых, кстати говоря, пока что нет. Он вполне и даже в большей степени
применим для промышленных роботов, приспособленных для выполнения
определенных классов работ.
6.6. ОБЩЕНИЕ С ЧЕЛОВЕКОМ И ДРУГИМ РОБОТОМ
Так называемое общение - обмен информацией, осуществляемое в обе
стороны, представляет собой сложную проблему, которая, однако, уже в
значительной степени исследована специалистами, создающими или эксплуа-
тирующими ЭВМ.
О непринужденной беседе между человеком и роботом на естественном
языке еще рано думать. Речевой ввод информации и ее речевая выдача на-
ходятся в стадии эксперимента. Есть устройства для звукового ввода и про-
граммы для распознавания речевых сигналов, но их возможности крайне ог-
раничены. Какая-нибудь сотня слов и то только после адаптации устройства
ввода и программы к диктору. Есть программы для синтеза речевой инфор-
мации (в частнности, для перевода из текстовой формы в речевую) и устрой-
ства (подключаемые к ЭВМ) для речевой выдачи. И это большие достижения
работающих над данной проблемой специалистов. Речь получается хотя и яв-
но
но русская, с ударениями, но без интонаций; а интонации в русском языке,
оказывается, играют большую роль. Я слушал однажды синтезированную
речь несколько раз от начала до конца и не мог понять, но вдруг уловил сло-
во ’’лукоморья” и дальше стал понимать” ... дуб зеленый, златая цепь на ду-
бе том...”. Я стал понимать потому, что узнал одно слово, но слово, которое
теперь является уникальным. Дальше пошло лучше, я привык к особенно-
стям ’’речи” машины. Но ведь глядя из окна автобуса, стекло в котором ока-
залось с дефектом, я тоже узнаю улицы, по которым еду. Такова человечес-
кая способность распознавать образы. Роботу до человека еще далеко.
Но не нужно думать, что общение человека с роботом еще невозможно.
Есть другие способы ввода и выдачи информации, и с ними дело обстоит
неплохо.
Ввод информации при общении с роботом можно производить, пользуясь
его основными рецепторами или специально приспособленным и предназна-
ченным для этого рецептором, называемым устройством ввода. Второй спо-
соб надежнее, так как не может произойти конфликт между вводимым при-
казом и воздействием внешней среды, заключающийся в том, что устройство
управления их не различит.
Для представления вводимой информации следует применять специально
разработанный формальный язык (о нем скажу несколько ниже). Ввод мож-
но производить с перфокарт или перфолент, как это делают при работе с
ЭВМ, можно пользоваться специальной клавиатурой (которая должна вхо-
дить в этом случае в состав робота); можно использовать так называемую
пультовую пишущую машинку (тоже, если она входит в состав робота). На-
конец, ввод можно в виде специального кода производить через предназна-
ченный для этого канал связи. В этот канал она может попадать различными
путями, например из другого робота или из радиоприемника.
’’Беседа” между роботами может происходить беззвучно по проводу или
по радио. Роботы, обменивающиеся информацией, должны иметь между со-
бой определенную функциональную связь. Иначе обмен информацией между
ними был бы бессмысленным. Это не значит, что роботы должны быть одина-
ковыми или выполняющими одни и те же функции. Но информация, имею-
щаяся в одном из них, должна требоваться другому для выполнения им сво-
их функций.
Мы видим, что общение робота и его руководителя-человека или общение
двух роботов между собой вполне возможно.
Роботы — это автоматы, технические устройства, и способностью понимать
смысл они не обладают. ’’Понимание” ими информации заключается в том,
что символьные конструкции, несущие информацию, являются исходными
данными для алгоритмов коллектива, моделируемого роботом. Именно поэ-
тому язык, на котором осуществляется общение с роботом или общение
111
между роботами, должен быть формальным. Он может иметь вид двоичного
кода (т. е. последовательности единиц и нулей) в тех случаях, когда обмен
информации производится по каждому каналу связи. Если используются
перфокарты, перфоленты, клавиатура или пишущая машинка, набор симво-
лов может быть любым.
Отмечу, что применение различных кодов неудобно для человека, особен-
но, если обмен информации является двусторонним и оперативным. Есть
возможность приблизить язык обмена к естественному путем так называе-
мой нормализации языка — ограничения запаса используемых слов и приме-
няемых грамматических правил. При этом информация, выдаваемая робо-
том, становится непосредственно понятной для человека, а изучение норма-
лизованного языка значительно легче изучения кода, достаточно глубокого
для того, чтобы на нем непосредственно ’’говорить”. Для обмена информа-
цией между роботами нормализованные языки не применяются.
Нужно и здесь сказать, что обмен информацией и тем более на нормали-
зованном языке связан с определенными издержками. Каждую возможность
робота приходится искупать разработкой обеспечивающих ее алгоритмов.
Иногда очень важно обеспечить невозможность перехвата управления ро-
ботом кем-нибудь посторонним. Это может быть достигнуто различными
способами. Проще всего метод сменных паролей. Руководитель робота за-
канчивает ввод информации выбранным для данного случая новым паролем.
Начиная новый ввод информации, руководитель должен сначала повторить
пароль. Существует опасность, что руководитель сам забудет назначенный им
же пароль и тогда робот не станет ему подчиняться.
Безопаснее метод физического ключа, имеющего вид жетона с определен-
ными отверстиями. Робот воспринимает команды только пока ключ встав-
лен в предназначенное для него гнездо. Однако оба эти метода не работают,
если руководителя физически устранят после того, как пароль введен или
ключ вставлен в гнездо. Пока что роботы не имеют столь высокого ’’интел-
лекта”, чтобы отличать руководителя от постороннего лица. Но все же мож-
но настроить робот на какой-нибудь признак, свойственный только руково-
дителю, например на его голос или манеру произносить какое-то слово. Ввод
каждого приказа нужно при этом методе сопровождать демонстрацией робо-
ту своего тождества руководителю. Такую связь между руководителем и
роботом, по аналогии со связью между загипнотизированным и гипнотизе-
ром, можно назвать раппортом. Метод раппорта плох тогда, когда почему-то
управление роботом нужно передать другому лицу, в отсутствии того лица,
с которым робот находится в раппорте.
6.7. ПАССИВНОЕ ВНИМАНИЕ
Способ формализации, а вернее автоматизации такой важной функции че-
ловеческого мозга, как пассивное внимание, изобретен инженерами-электрон-
112
щиками и в настоящее время эта функция присуща любой ЭВМ. В чем она
заключается? Представьте себе, что вы идете по улице и беседуете со своим
спутником. И в это время раздается голос, называющий вас по имени. Сразу
же ваше внимание оторвется от разговора и сосредоточится на этом голосе.
Это и будет проявление пассивного внимания.
В ЭВМ пассивное внимание реализовано в виде так называемой системы
прерывания, которая имеет вид набора простейших ячеек — регистра преры-
ваний, в которые могут поступать различные сигналы о ситуациях, требую-
щих переключения ’’внимания”. В каждом рабочем такте устройство управ-
ления ЭВМ, играющее роль алгоритма выполнения программ, просматривает
регистр прерываний, и, если обнаруживает в нем хотя бы один сигнал, пре-
кращает выполнение текущей программы, запасает информацию, нужную
для возврата и продолжения текущей программы, и производит ’’перескок”
к программе обработки прерываний. Последняя определяет, какова должна
быть реакция на поступившие сигналы прерывания. После осуществления
этой реакции производится возврат к прерванной программе.
Так реализовано пассивное внимание в ЭВМ, имеющих только один прог-
раммный процессор. В ЭВМ с несколькими программными процессорами и
в роботах реализация пассивного внимания может быть и иной: в коллек-
тиве алгоритмов может содержаться специальный алгоритм пассивного вни-
мания, который воспринимает через открытый буфер сигналы прерывания,
определяет необходимую реакцию на них и, если нужно, вмешивается в рабо-
ту других алгоритмов, с которыми он связан посредством буферов полуот-
крытого типа. Этим термином называют буфер, в котором только один ал-
горитм имеет ’’право” производить запись информации, а другие алгорит-
мы могут только производить считывание и в зависимости от прочитанного
изменять порядок своих действий.
Пассивное внимание удалось автоматизировать лишь недавно, в ЭВМ
третьего поколения, тогда как функция активного внимания была автомати-
зирована уже давно, когда был изобретен первый автомат.
Объектом пассивного внимания может быть не только внешнее воздей-
ствие, но и важная внутренняя ситуация (благодаря наличию внутренних
обратных связей).
6.8. ОЦЕНКА "ПОВЕДЕНИЯ"
Оценка ’’поведения” автомата имеет очень большое значение. Особое зна-
чение она приобретает для робота. Для любого автомата существенным по-
казателем является так называемое время отклика — время, протекающее
между воздействием внешней среды и реакцией на него. Этот показатель
из
легко измерить экспериментально для наиболее простых (выполняющих
только одну какую-либо функцию) автоматов разового действия, т. е. таких,
которые перед каждым повторным применением нужно взводить. Произво-
дят несколько запусков автомата и измерений времени его срабатывания и,
пользуясь обычными методами статистики, определяют математическое ожи-
дание и дисперсию времени отклика.
Измерение времени отклика сложного автомата со многими обратными
связями — вещь непростая, так как при разных воздействиях это время мо-
жет быть различным. Кроме того, не всегда легко определить, какую реак-
цию нужно соотнести с каким из воздействий. Определение времени отклика
нередко превращается в сложную научно-техническую проблему. Очень часто
для таких сложных автоматов время отклика определяют очень приблизи-
тельно, путем экспертных оценок.
Важной оценкой робота является его надежность (вероятность отсутствия
сбоев, т. е. случайных ошибок в его работе). Для роботов, действующих без
перерывов, ей иногда придают форму среднего времени бессбойной работы,
С этой оценкой для наиболее сложных роботов связана оценка, получившая
название отлаженности алгоритмов (тех, которые присутствуют в роботе в
виде не физических устройств, а символьных конструкций). К этим оценкам
примыкает вопрос об опасности роботов, о тех последствиях, которые могут
быть вызваны сбоями в работе робота или наличием ошибки в алгоритме,
которая осталась невыявленной при отладке алгоритма.
Не менее важной характеристикой поведения робота является его помехо-
устойчивость, Недостаточная помехоустойчивость может увеличивать опас-
ность робота, приводить тому, что робот будет совершать непредусмотрен-
ные действия, предвидеть которые иногда невозможно. Недостаточная поме-
хоустойчивость может зависеть и от недостаточной специфичности его рецеп-
торов, в связи с чем некоторые воздействия внешней среды могут влечь за
собой не те реакции его эффекторов, которые предусмотрены конструкто-
ром.
Я перечислил лишь те показатели, которые определяют ’’поведение” робо-
та. При этом на полноту я не претендую, считая, что с развитием робототех-
ники могут быть выявлены и другие характеристики ’’поведения”. Не вызы-
вает сомнения, что по мере автоматизации новых работ, выполняемых в
настоящее время человеком, новые психические функции будут автоматизи-
рованы в роботах и потребуются новые характеристики и оценки их ’’пове-
дения”. Уже теперь намечаются некоторые направления таких оценок. Напри-
мер, можно говорить о развитости функции пассивного внимания, о ’’силе”
искусственного интеллекта, и тому подобное. Поскольку такие оценки мы
пока что делать не умеем, то трудно о них что-либо сказать. Можно ожидать,
что для получения таких оценок будет использован метод испытательных
114
тестов и метод имитационного программного (с помощью ЭВМ) моделиро-
вания. В данный момент я полагаю, что содержание настоящего параграфа
способствует появлению у интересующихся проблемами оценки поведения
роботов новых идей, а на большее я не рассчитываю.
Совсем ничего нельзя сказать об оценках поведения, которые были бы
заложены в самих работах. В живых организмах такие оценки производятся
в виде ощущений, таких как голод, жажда и др., а также в виде эмоций, сре-
ди которых есть такие, как (у человека) угрызения совести, вдохновение,
радость труда и т. п. У роботов ничего подобного мы не знаем, хотя имита-
ция голода (правда, очень условная) была осуществлена в виде ’’стремления’
подзарядить аккумулятор.
6.9. "БОЛЕЗНИ" РОБОТОВ
Немного неожиданным концом главы о ’’способностях” роботов является
параграф об их ’’болезнях”. Но ведь можно говорить и о способности болеть?
’’Болезни” роботов могут быть врожденными и приобретенными, т. е.
дефектами конструкции и результатами поломки или износа. Но можно их
делить на физические и ’’психические”. Первые являются физическими де-
фектами, а вторые - дефектами алгоритмов, заложенных в преобразователь
информации. Болезни роботов разнообразны и могут быть как ’’излечимы-
ми”, так и ’’неизлечимыми”. Я думаю, что когда роботы получат повсемест-
ное распространение, а робототехника и роботология достигнут высокого
уровня развития, возникнет область робототехники, которую назовут ’’меди-
циной роботов”. Но пока что я скажу несколько слов лишь об одной болезни
роботов - психической, которую назову столбняком роботов. Читатель, на-
верное, догадывается, что ’’столбняком” я называю возникновение схваты-
вания (клинча) в коллективе управляющих алгоритмов.
Клинч может возникать для некоторых сочетаний входных сигналов (ес-
ли бы он возникал для всех сочетаний, то робот не был бы принят отделом
технического контроля) и отсутствовать для остальных. Может возникать и
мерцающий клинч. Проявляться столбняк может по-разному. Если схватыва-
ется весь коллектив алгоритмов, то робот будет внезапно прекращать выпол-
нение своих функций, ’’столбенеть”. Если схватывается лишь часть алгорит-
мов управляющего коллектива, то действия робота могут становиться не-
адекватными окружающей обстановке и даже опасными. Столбняк — очень
скверная болезнь!
Коллектив управляющих алгоритмов должен быть строго выверен и воз-
можность схватываний в нем должна быть исключена. Насколько трудна эта
задача, знают программисты, эксплуатирующие многопрограммные и много-
процессорные ЭВМ, тоже страдающие от клинчей.
115
Имеется возможность и программного разрешения клинчей. Для этого в
управляющий коллектив должен быть включен специальный алгоритм для
контроля времени работы других алгоритмов. Если некоторые алгоритмы
слишком долго не совершают записей в соответствующие контролирующие
ячейки, этот алгоритм прерывает их функционирование и запускает заново
(с начальной точки), тем самым выводя их из клинча. Изменившиеся внеш-
ние условия уже к клинчу, как правило, не приводят. Все же программное
предотвращение менее надежно, чем предварительная полная выверка. Беда
в том, что такая выверка не всегда практически осуществима из-за сложно-
сти коллектива управляющих алгоритмов.
Глава 7
СТРУКТУРА ПРЕОБРАЗОВАТЕЛЯ ИНФОРМАЦИИ
В этой главе устанавливается связь между функциональной
структурой коллектива алгоритмов, обеспечивающего преобразование ин-
формации в искусственной системе управления, и функциональной структу-
рой физического устройства, осуществляющего это преобразование. Гово-
рить о физической структуре этого устройства мы не будем, так как она мо-
жет быть различной в зависимости от технических условий, в которых долж-
на действовать система управления. Известно, что преобразователь информа-
ции может быть и механическим, и пневматическим, и электронным.
7.1. ПРОЦЕССОРЫ И ИХ ТИПЫ
Всем знакомо такое запоминающее устройство, как лист бумаги, на кото-
ром можно фиксировать информацию в виде записей,произведенных, напри-
мер, карандашом. Запись можно стереть, после чего запоминающее устрой-
ство опять готово для приема информации. В жизни использованный лист
обычно выбрасывают и заменяют его новым. Это возможно из-за двух об-
стоятельств: дешевизны бумаги и удобства того, кто ею пользуется. В древ-
ности, когда писали на пергаменте, который был дорог, исписанные листы не
выбрасывали, а стирали старый текст.
Можно считать, что лист бумаги состоит из элементов, называемых строка-
ми, а каждая строка состоит еще из более мелких элементов, которые мы
назовем разрядами, каждый из которых может хранить только одну букву.
Правда, границы между строками и между разрядами в строках при повтор-
ной записи могут изменяться, так что и число букв на листе (точнее — стра-
не
нице) может изменяться. В разряде может быть написана одна из букв при-
меняемого алфавита или ничего не написано. Другими словами, если алфавит
состоит из п - 1 букв, то разряд нашего запоминающего устройства может
находиться в одном из п устойчивых состояний. Именно это обстоятельство
характерно для всякого запоминающего устройства.
В технических запоминающих устройствах (ЗУ) их атомами являются
приборы, каждый из которых может находиться в одном из заданного числа
фиксированных состояний. Запись или стирание информации представляет
собой изменение устойчивого состояния разрядов и превращение его в новые
устойчивые состояния.
Нужно сразу сказать, что в отличие от листа бумаги разбивка ЗУ на разря-
ды в технике является жесткой, а не ’’плавающей”, и состояния не являются
графическими изображениями букв. Если запоминающим элементом служит
реле, то одним из его устойчивых состояний считают замкнутость контактов,
а другим — их разомкнутость. Каждый разряд при этом может находиться в
одном из двух состояний. Так как однобуквенный алфавит неудобен, то в
отношении релейных ЗУ условились, что ничего не хранить разряд не может;
он всегда что-нибудь хранит. И тогда в ЗУ можно хранить тексты, составлен-
ные в двухбуквенном алфавите. Исторически сложилась привычка при запи-
си на бумаге обозначать эти буквы через 0 и 1. В этом случае тексты, поме-
щенные в ЗУ, можно толковать и как логические значения и как числовые,
записанные в двоичной системе счисления (если это нужно).
Если запоминающим устройством является магнитная поверхность (маг-
нитной ленты, магнитного диска или магнитного барабана), то разрядами
считают участки магнитной ленты с нанесенными на них магнитными диполя-
ми. При этом намагниченность в одну из сторон считают изображением бук-
вы 0, а в другую - буквы 1. Опять мы сталкиваемся с двухбуквенным ал-
фавитом.
Не следует.думать, что в технических ЗУ всегда применяются двухбук-
венные алфавиты. Например, на перфоносителях (перфолентах и перфокар-
тах) буквы представляются в виде систем отверстий. Существуют коды, при-
меняющие алфавит из 256 букв, тексты которых могут быть представлены
на таких носителях.
Не вдаваясь в детали, отметим, что ЗУ делятся на быстродействующие и
медленные. При этом имеют в виду время, расходуемое на считывание или
запись в ЗУ одного символа (иногда говорят о времени обращения к ЗУ).
Кроме того, ЗУ могут быть двухсторонними (допускающими и считывание
и запись) и односторонними (допускающими только чтение или только запись)
Например, односторонним ЗУ, допускающим только запись, является бумаж-
ное полотно, на котором распечатываются полученные результаты. Односто-
ронние ЗУ, допускающие только считывание, применяются для хранения
117
постоянной информации, необходимой в ходе преобразования Поступающих
в преобразователь данных о состоянии внешней среды, а также для ввода
данных (ЗУ в виде колоды перфокарт).
Наконец, третьим аспектом классификации ЗУ является способ доступа
к информации, которая в них хранится. Бывают ЗУ непосредственного до-
ступа (к малым группам разрядов, называемым при этом машинными сло-
вами) , последовательного доступа (к машинным словам или еще более мел-
ким группам разрядов) и индексно-последовательного доступа. В последнем
случае прямой доступ осуществляется к группам машинных слов (их долж-
но быть много), а внутри каждой группы доступ к отдельным словам явля-
ется последовательным.
Для непосредственного доступа необходимо, чтобы каждое машинное сло-
во имело имя. Обычно именем считают номер машинного слова в ЗУ, назы-
ваемый при этом адресом. Возможность обращаться к машинным словам по
их адресу обеспечивается соответствующими конструктивными особенностя-
ми устройства. При последовательном доступе нужное машинное слово опре-
деляется как следующее за ранее просмотренным. При индексно-последова-
тельном доступе именами снабжены группы машинных слов. Будем такие
группы называть блоками, а их имена (тоже обычно имеющие вид номеров)
адресами блоков.
Вид доступа характеризует собой так называемую физическую структуру
ЗУ. Собственно, кроме вида доступа, необходимо указать тип (или типы)
разрядов (если разряды не все однотипны), где тип — это число возможных
состояний разряда, длины машинных слов (т. е. количества образующих их
разрядов) и длины блоков (т. е. количества входящих в их состав машинных
слов). Наконец, нужно описать всю совокупность блоков, разрядов или их
сочетаний, образующую ЗУ. Физическая структура ЗУ — это тот ’’фундамент”,
на котором в преобразователе размещается информация.
Символьная конструкция, вложенная в ЗУ, представляет собой синтакси-
ческую структуру информации. К сожалению, в настоящее время лишь
для наиболее простых символьных конструкций умеют строить ЗУ, физи-
ческая структура которых совпадает с синтаксической структурой информа-
ции. Вложение синтаксической структуры информации в физическую струк-
туру ЗУ называется размещением информации в памяти и представляет собой
трудную задачу. О размещении информации в памяти мы будем еще гово-
рить несколько ниже (см. § 7.3).
Запоминающие устройства являются совершенно необходимыми состав-
ными частями дискретных преобразователей информации. Это связано с тем,
что переработка информации, как бы она быстро не производилась, связана
с затратами времени, причем локальный характер преобразований сопровож-
дается тем, что отдельные части символьных конструкций как считываются,
118
так и записываются не одновременно. Необходимость хранения информации
в течение какого-то времени оказывается совершенно неизбежной.
Кроме запоминающих устройств в состав преобразователя информации
входят еще так называемые операционные устройства, которые могут обра-
щаться к тем ЗУ, с которыми они связаны (читать или писать в них информа-
цию) , и преобразовывать информацию.
Операционное устройство (ОУ) вместе со связанными с ним ЗУ образует
так называемый процессор. Процессор является физической моделью алго-
ритма. Преобразователь информации системы управления представляет со-
бой систему процессоров, которую следует рассматривать как физическую
модель коллектива алгоритмов. В соответствии со сказанным ЗУ, входящие
в состав процессоров, делят на собственные, резервные и буферные. В соста-
ве буферных ЗУ выделяют сигнальные ячейки. Если буферное ЗУ сводится к
одной или нескольким сигнальным ячейкам, то такое ЗУ называют сигналь-
ным.
Собственное ЗУ процессора доступно только тому ОУ, которое входит в
состав данного процессора. Остальные ЗУ доступны нескольким ОУ, принад-
лежащим различным процессорам.
В дискретных роботах информация, поступающая от рецепторов, должна
быть сперва преобразована в форму, которая может быть записана в ЗУ.
Иногда это осушествляется до выдачи ее в канал связи, иногда (в некоторых
роботах) после ’’прибытия” информации по каналу связи. В первом случае
рецептор вместе с устройствами дискретизации удобно считать разновид-
ностью операционного устройства, которое вместе с ЗУ, принимающим от
него информацию (его следует отнести к буферным)-, удобно считать про-
цессором. Канал связи в этом случае переносит из входного ЗУ в некоторое
ЗУ преобразователя (из одного буфера в другой). Его тоже следует считать
(вместес двумя ЗУ) разновидностью процессора. Во втором случае рецептор
вместе с каналом связи и устройствами дискретизации надлежит считать опе-
рационным устройством. Мы видим, что при таких соглашениях, если к тому
же аналогично рассматривать и выходные каналы связи, а также эффекторы
робота, можно считать (оставляя в стороне изолирующие элементы), что ро-
бот - это система взаимосвязанных процессоров.
Если алгоритм представлен в процессоре как некоторая символьная кон-
струкция, размещенная в его собственном ЗУ, то по аналогии с принятым в
области ЭВМ, алгоритм будем называть программой, а выполняющий его
процессор, который является физической моделью алгоритма выполнения, —
программным процессором. Процессоры, входящие в состав преобразовате-
ля информации и не являющиеся программными, будем называть функцио-
нальными. К числу функциональных процессоров относятся процессоры ге-
нерации времени, ведения очередей (если эти функции не реализованы ап-
119
паратно) и др. В частности, каналы связи, рецепторные и эффекторные про-
цессоры являются функциональными.
Рецепторные процессоры называют также процессорами ввода: эффектор-
ные процессоры — процессорами выдачи, а каналы связи (которые, кстати
говоря, могут производить и некоторое преобразование информации без из-
менения ее ’’смысла”) — процессорами передачи.
Итак, робот (если не учитывать изолирующих элементов) представляет
собой связную систему процессоров. Если в роботе, не нарушая связей меж-
ду процессорами, можно выделить несколько подсистем, которые являются
связными, то перед нами несколько отдельных роботов, которые объедине-
ны только изолирующими элементами, т. е. как бы находится в ’’общей
шкуре”.
7.2. АРХИТЕКТУРА РОБОТА
Схема робота как связной системы процессоров, элементами которой яв-
ляются операционные и запоминающие устройства, а связи показаны в виде
линий, снабженных стрелками, указывающими возможные направления пе-
редачи информации, называется схемой архитектуры робота. Архитектура
робота — наиболее укрупненное описание его физической структуры, но не-
обходимое при его разработке как определенный этап проектирования. При-
веду некоторые фрагменты схем архитектуры, которые нам знакомы по ма-
териалам гл. 5 на уровне коллективов алгоритмов.
Два процессора, связанных буфером, допускающим только чтение, изо-
бражены на рис. 7.1. Сигнальных ячеек в данном случае буфер не содержит.
Оба ОУ могут из него читать, лишь бы это было только технически возмож-
но. О таких тонкостях, как техническая возможность обращения двух ОУ к
одному и тому же ЗУ, я в этой книге рассказать не имею возможности и упо-
минаю о ней только, чтобы не вызвать раздражения у специалистов. Аббре-
виатура СЗУ означает ’’собственное ЗУ”.
Рис. 7.1. Два процессора, свя-
занных буфером, допускаю-
щим только чтение
Рис. 7.2. Два процессора, свя-
занных буфером, регулируе-
мым предикатами и содержа-
щим сигнальную ячейку Б’
120
На рис. 7.2 показаны два процессора, связанных буфером, регулируемым
предикатами. Сигнальная ячейка на этом рисунке выделена в отдельный
схемный элемент (Б1).
На рис. 7.3 приведен фрагмент схемы архитектуры робота, на котором
показан процесс ведения очереди между тремя процессорами-клиентами.
Этот процессор ведет очередь в своем СЗУ и связан сложной системой сиг-
нальных ячеек с процессорами-клиентами. Становясь в очередь, ьй клиент
записывает код ”1” в сигнальную ячейку Cj и ожидает появления номера i
в сигнальной ячейке х0. Получив тот ресурс, за которым он стоял в очереди,
и использовав его, ьй клиент записывает код 0 в ячейку х0. Подробно веде-
ние опереди описано в гл. 5.
Рис. 7.3. Процессор, ведущий очередь, связан-
ный с,тремя процессорами-клиентами
Рис. 7.4. Два процессора, свя-
занные ’’полуоткрытым” бу-
фером (без регулирующих
предикатов)
Схема связи двух процессоров полуоткрытым, не регулируемым предика-
тами буфером показана на рис. 7.4. Один процессор может как писать в бу-
фер, так и читать из него, а другой - только читать. Более сложная схема это-
го вида, в которой функциональный процессор генерации времени связан
со многими ОУ, приведена на рис. 7.5, на этом рисунке генератор времени во
все буферные ячейки пишет одно и то же. Каждый ’’клиент” считывает вре-
мя только из одной ячейки буфера.
Рис. 7.5. Возможная схема
связи генератора времени
со многими процессорами
На рис. 7.6 показана схема так называемого вентиля — устройства, с по-
мощью которого процессор 1 может изменять направление процесса, проте-
121
кающего в процессоре 2; легко видеть, что схема вентиля является частным
случаем фрагмента, показанного на рис. 7.4. В ней буфер сводится к одной сиг-
нальной ячейке. Если процессор 1 является процессором ввода, то вентиль а
для преобразователя информации будет представлять собой открытый буфер.
Рис. 7.6. Схема ’’вентиля”, с помощью которого
процессор 1 может влиять на направление процесса,
протекающего в процессоре 2
Фрагмент схемы архитектуры робота, на котором показан процессор пас-
сивного внимания, изображен на рис. 7.7. ОУ процессора пассивного внима-
ния считывает содержимое регистра прерываний (являющегося сигнальным
ЗУ), обрабатывает его в своем СЗУ и с помощью вентилей а,-, где / = 1,2,...»л,
вносит нужные изменения в процессы, выполняемые другими процес-
сорами.
На рис. 7.8 показан фрагмент схемы архитектуры, изображающий так на-
зываемую точку синхронизации двух процессов. Иногда точка синхрониза-
ции служит для того, чтобы избежать схватывания при наличии двух буфе-
ров, связывающих два процессора, иногда же ее используют для перераспре-
деления ячеек между двумя СЗУ и буфером, так что распределение запоми-
нающих устройств становится динамическим. Суть точки синхронизации за-
ключается в следующем. Приближаясь к этой ’’точке”, процессор 1 записы-
вает в ячейку Ci код ”1” и ждет выполнения условия ”Ci = 1 ис2 = 1”. Точ-
но так же процессор 2 в ячейку с2 записывает код ”1” и ждет выполнения то-
го же условия. Дождавшись, первый в сх, а второй в с2 пишут код ”0” и
продолжают свои процессы. До начала работы обоих процессоров должно
быть Ci = 0 и с2 = 0.
122
В этом и предыдущем параграфах мы определили общий подход к любо-
му дискретному роботу, позволяющий рассматривать его как систему взаим-
но-связанных процессоров. Пользуясь таким подходом, мы можем при созда-
нии роботов применить так называемый системный принцип.
7.3. СИСТЕМНЫЙ ПРИНЦИП
Обычно при конструировании роботов системный принцип не выполняет-
ся. Исключение, которое представляют собой роботы, управляемые с по-
мощью ЭВМ, связано с тем, что программы для них разрабатывают систем-
ные программисты, специалисты по разработке так называемого математи-
ческого обеспечения ЭВМ, которые системный принцип впитали в свои плоть
и кровь. Если в роботе для реализации каждой его функции предусмотрена
отдельная схема, не связанная или слабо связанная с другими, то систем-
ный принцип не соблюден.
В применении к роботам системный принцип выражается в следующих
правилах:
1. Всю совокупность внешних рецепторов рассматривают как одно целое, а
выдаваемые ими сигналы после дискретизации — как одну символьную кон-
струкцию. Для представления этой символьной конструкции разрабатывают
входной язык робота. В техническом задании указывают допустимое время
отклика. Совокупная символьная конструкция должна включать данные для
обнаружения и исправления ошибок.
2. То же должно быть сделано для внутренних рецепторов. Информация,
поступающая от них, образует вторую символьную конструкцию.
3. Определяют совокупность сигналов управления эффекторами и объеди-
няют их в выходную символьную конструкцию, для чего должен быть разра-
ботан выходной язык робота.
4. Разрабатывают архитектурную схему робота, понимая под процессора-
ми алгоритмы коллектива и промежуточные символьные конструкции.
5. Определяют совокупность ЗУ робота, руководствуясь требованием раз-
мещения в них циркулирующей и сохраняемой в роботе информации. Опре-
деляют совокупность всех ОУ.
6. Особо рассматривают каждый программный процессор, разрабатывают
для него алгоритмический язык и ориентировочно определяют объем нуж-
ной программы и время ее работы.
Указанные работы выполняются совместно инженерно-техническими спе-
циалистами и системными программистами. Результаты оцениваются и, если
нужно, корректируются. После этого, как они будут признаны удовлетвори-
тельными, выполняют следующие этапы.
123
7. Разрабатывают программное обеспечение робота, т. е. все программы для
программных процессоров.
8. Производят программное имитационное моделирование робота на уни-
версальной ЭВМ. По результатам моделирования либо утверждают проект,
либо корректируют и снова повторяют некоторые из вышеперечисленных
работ.
После изготовления роботов обязательно производится опытная эксплуа-
тация, которая может потребовать каких-то изменений и вернуть разработ-
чиков к одному из уже пройденных этапов. После опытной эксплуатации, в
случае получения положительной оценки ее результатов, может быть органи-
зован серийный выпуск.
Нужно еще вернуться к вопросу о распределении запоминающих уст-
ройств. От того, как мы сумеем синтаксическую структуру информации ото-
бразить на физическую структуру запоминающих устройств, зависит не толь-
ко потребный объем запоминающих устройств, но и особенность программ
(их отличие от алгоритмов, составленных только с учетом синтаксической
структуры информации). Это отличие бывает всегда в сторону усложнения,
так как каждая программа представляет собой преобразование синтакси-
ческой структуры путем выполнения операций над физической структурой.
Здесь особенно важен опыт специалистов, и такой опыт имеется. Он накоп-
лен системными программистами-разработчиками математического обеспе-
чения ЭВМ. Теперь читатель поймет, почему я неоднократно апеллировал к
ЭВМ и почему хочу это сделать в следующем параграфе.
7.4. АПЕЛЛЯЦИЯ К ЭВМ
Между анализом реального, но неизвестно, на каком принципе основанно-
го устройства, и синтезом нового существует принципиальное различие.
В первом случае приходится изучать некоторый реальный объект и его мате-
матическое описание произвести очень трудно; во втором случае такое опи-
сание (если при конструировании была применена математика) нам заранее
известно. Сказанное в полной мере относится к ЭВМ. Поскольку ЭВМ не яв-
ляется математическим объектом, доказательство какой-либо теоремы о су-
ществовании соответствия между вычислительными машинами и алгоритма-
ми невозможно. При некоторой идеализации работу существующей и неиз-
вестно как спроектированной ЭВМ можно описать как функционирование
коллектива алгоритмов, но при проектировании можно ее построить как
физическую модель коллектива алгоритмов.
Мы так и поступим. Объем данной книги принуждает нас ограничиться
настолько упрощенным примером, что никто не станет такую ЭВМ строить.
Поэтому назовем ее вымышленной (ВМ).
124
Ближайшей внешней средой для ВМ будем считать две колоды перфо-
карт: одну, содержащую исходные данные, и другую, предназначенную для
выдачи на нее результатов. Таким образом, в отличие от распространенных
в настоящее время ЭВМ, наша ВМ производит выдачу результатов не на пе-
чать, а на перфокарты, как это было в ЭВМ первого поколения. Однако мы
наделим ВМ некоторыми архитектурными элементами, являющимися необ-
ходимым атрибутом ЭВМ третьего поколения: системой прерывания (реали-
зующей пассивное внимание) и защитой памяти (поясню ниже). В состав ВМ
войдут три процессора и пульт управления: процессор ввода, программный
процессор, процессор выдачи и, как уже было сказано, пульт управления,
который совмещает в себе упрощенные процессор ввода и процессор выдачи.
Схема архитектуры ВМ показана на рис. 7.9. На нем совокупность блоков
(VI, VII и bi) изображает процессор ввода, состоящий из устройства ввода,
буфера/;/ и разряда Ьх регистра прерыванияR; совокупность блоков (VIII,
IX и Ь3) - процессор выдачи, состоящий из устройства выдачи, буфера БЗ
и разряда Ь3 регистра прерывания/?; совокупность блоков (VII, II, III, VIII, IV,
V) - программный процессор, состоящий из буферов Б1, Б2, БЗ, устройства
управления, оперативной памяти (ОП) и регистра прерываний/?, с которым
устройство управления имеет две связи (с разрядом Ь2 - одностороннюю, и
с /? в целом — двухстороннюю); совокупность блоков (/, //) — пульт управ-
ления, состоящий из собственно пульта и буфера Б2. Направление стрелок на
линиях, соединяющих блоки, указывает возможные направления движения
информации.
Рис. 7.9. Схема архитектуры ВМ: Рис. 7.10. Схема системы запомина-
(/> И) ~ пульт управления, (77, 777, IV, V, VII, ющих элементов процессора ввода
VIII) - программный процессор, (VI, VII) - про-
цессор ввода, (VIII, IX) - процессор выдачи
Опишу работу каждого процессора в отдельности.
Собственное ЗУ процессора ввода на рис. 7.9 не показано. Оно состоит из
ячейки 5, называемой счетчиком перфокарт, ячейки р, в которую считывается
125
содержимое перфокарты при ее продвижении сквозь читающее приспособле-
ние, одноразрядной ячейки я, в которую заносится код ”1”, если перфокар-
та действительно прошла через читающее приспособление. Перфокарта мо-
жет через него и не пройти, если в колоде меньше перфокарт, чем нужно, или
перфокарта замялась и ’’застряла”
Кроме того в состав устройства ввода входит сигнальная ячейка т, запись
кода ”1” в которую является пуском устройства, протягивающего перфо-
карту через читающее приспособление. После одного движения (в прямую и
обратную сторону) это устройство автоматически останавливается, записы-
вая при этом код ”0” в ячейку т. Схема системы запоминающих элементов
процессора ввода изображена на рис. 7Л0. Буфер Б19 входящий в этот
процессор, содержит две сигнальные ячейки: и — для записи в нее програм-
мным процессором разрешения пользоваться буфером и U - для указания в
ней числа перфокарт, с которых должна быть прочитана информация. Кроме
того, буфер Б1 содержит п ячеек х1} х2, , хП9 в которые должны быть
помещены (в виде последовательности, начиная cxj) вводимые коды.
Процессор ввода должен быть реализован как физическая модель алгорит-
ма ввода.
Запись алгоритма ввода
1) Ждать й= 1, ->2; 7) Если п = 0, то -* 8, иначе-* 9;
2) s : = 0, -* 10; 8) : = 1,^5;
3) 5 : =з + 1,->4; 9) xs :=рЛ_Ю;
4) И : =0,->5; 10) Если s = U, то -» * 11, иначе -*3;
5) г := 1,~*6; 11) м: = 0,~»1;
6) Ждать т = 0, -» 7; 12) 7Г= 1,->4;
Алгоритм ввода ждет условия и = 1; до начала его работы должно быть и = 0.
После этого он ’’очищает” счетчик и, если в сигнальной ячейке U записано
число кодов, подлежащих вводу с перфокарт, больше нуля, увеличивает s
на единицу, засылает ”0” в ячейку я и включает протяжку перфокарт, делая
f = 1. Затем ожидает появления в ячейке т нуля, т. е. окончания протяжки.
Если перфокарта прошла (при этом я = 1), то производится перенос считан-
ного с нее кодар в ячейку буфера xS9 т. е. в ячейку, номер которой содер-
жится в счетчике; затем, если еще не все коды введены (их число указано в
ячейке U), процесс повторяется, начиная с приказа 3. Если же окажется, что
перфокарта не прошла через читающее приспособление (т. е. если я = 0), то
вырабатывается и посылается в регистр прерывания код ”1”. После этого
процесс продолжается, начиная с приказа 5. Устройство ввода обкидает воз-
можности ввести перфокарту.
Алгоритм выдачи очень похож на алгоритм ввода. Процессор выдачи,
кроме выходного перфоратора, буфера БЗ и сигнальной ячейки Ь3 , содержит
еще счетчик перфокарт t, ячейку q9 в которую нужно записать код для его
126
переноса на перфокарту, подлежащий выдаче, и две одноразрядные ячейки;
б - включатель перфоратора и о — ячейку для записи в нее признака (в виде
кода ”1”), что перфокарта прошла через выходной перфоратор. Перфокарта
может и не пройти через выходной перфоратор, если заготовлено слишком
мало перфокарт или если очередная перфокарта сомнется.
Буфер БЗ в своем составе содержит две сигнальные ячейки: ir - для запи-
си программным процессором разрешения обращаться к буферу (в виде ко-
да ”1”) и V - для указания числа кодов, помещенных программным процес-
сором в буфер для выдачи. Кроме того, буфер содержит п ячеек уг ,у2,... ,уп,
в котором в виде последовательности (начиная сyt) записаны коды,подле-
жащие выдаче. Схема системы запоминающих элементов процессора выда-
чи приведена на рис. 7.11.
□» [ I*
□Z—R □ □
S 5
5J
Рис. 7.11. Схема системы запоминающих эле-
ментов процессора выдачи
Процессор выдачи должен быть реализован в виде физической модели
алгоритма выдачи.
Запись алгоритма выдачи
1) Ждать и - 1, ->2;
2) 7 : = 0,10;
3) 7 : = 7 + 1,-*4;
4) q : =xf>-5;
5) 5:=0,->6;
6) € : =
7) Ждать £ = 0, ->8;
8) Если о - 0, то ->9, иначе 10;
9) Ь3 : = 1,-^5;
10) Если t = И, то -» 11, иначе ->3;
11) v := 0,-> 1;
Смысл алгоритма выдачи читатель поймет, если внимательно просмотрит
его запись.
Буфер Б2 принадлежит одновременно пульту управления и программно-
му процессору. Для простоты считаем, что он состоит всего из двух однораз-
рядных ячеек: w- для записи в нее с пульта (нажимая кнопку ’’пуск”) кода
”1”, разрешающего программному процессору работать, и X — для записи
127
в нее программным процессором информации о причине произошедшего
прерывания. При нажиме на пульте управления кнопки ’’пуск” на панели
сигнализации загорается неоновая лампочка, которая горит до тех пор, пока
в ячейку wne будет записан код ”0”, что может быть сделано либо програм-
мным процессором, либо нажимом на пульте управления кнопки ’’стоп”.
Одновременно с нажимом кнопки ’’пуск” в ячейку Л записывается код ”000”.
Ячейка Л имеет три разряда (по числу разрядов в регистре прерывания),
с каждым из которых спарена неоновая лампочка на панели сигнализации,
загорающаяся при записи в соответствующий ей разряд кода ”1”.
Схема системы запоминающих устройств программного процессора по-
казана на рис. 7.12. Кроме буферов Б1, Б2 и БЗ, а также регистра прерыва-
ний R, в программный процессор входят блок ячеек z х, z 2,..., zNi называ-
емый оперативной памятью (ОП), и ряд ячеек: г - регистр команд, Iсчет-
чик команд, со — логическая одноразрядная ячейка, т — регистр маски пре-
рываний; ячейки-дублеры: г 1 — регистра команд; I' — счетчика команд,
со ' — логической ячейки, R' — регистра прерываний. Кроме того имеется
еще ячейка 10, в которой постоянно хранится (реализовано аппаратно) целое
положительное число v — адрес первой команды программы обработки пре-
рываний. Это число является также границей, отделяющей так называемую
зону рабочих программ (ячейки zr — zv _ х) от зоны служебных программ
(ячейки zv — zjv) . В реальных ЭВМ ОП делится обычно на большее число зон
и тогда для их границ требуется больше ячеек. Зона служебных программ
должна быть защищена от воздействий рабочих программ, тогда как служеб-
ные программы имеют возможность воздействовать на все ячейки.
Г & fl
|1-----
!□ п nx.ZJL-. гЛ
W / |0|/U|*| □
ГТ~П* I 1я'
память
Рис. 7.12. Схема системы запоминающих элементов программного процессора
128
Программный процессор моделирует алгоритм выполнения программ.
Поэтому нам придется отвлечься и выбрать язык программ.
< программа < приказ > I < программа > < приказ >
< приказ >:: = < собственный адрес > < команда >
< собственный адрес >:: = [ номер ячейки, хранящей команду]
В последней метаформуле правую часть мы записали неформально. При раз-
мещении приказов в ОП собственный адрес совпадает с номером ячейки, в
которую его надлежит поместить, и потому в саму ячейку не записывается.
< команда >:: = < код операции > < адрес > < адрес > < адрес >
Для определенности я остановился на трехадресной структуре команды,
хотя в современных ЭВМ структура команд не фиксирована. В принципе,
фиксированной является структура только кода операции, структура же
остальной части команды зависит от значения кода операции. Адреса - это
номера ячеек ОП. Будем считать, что код операции в команде имеет вполне
определенное число разрядов и команда имеет структуру (в соответствии
с последней метаформулой) 0 i j к, где 0 - код операции, i, j, к - адреса.
Ячейку г считаем состоящей из четырех ячеек, как это и показано на рис. 7.12.
Зададимся системой команд (ее выбирают с учетом характера задач, кото-
рые предстоит программировать). Соответствие между кодами операций и
самими операциями представим в виде табл. 7.1.
Таблица 7.1. Код операций
Код операции Название операции
01 02 03 04 05 06 07 08 09 10 11 12 13 Сложение (+) Вычитание (-) Умножение (X) Деление (:) Перенос Безусловный переход Условный переход Ввод с перфокарт Выдача на перфокарты Стоп Возврат (после прерывания) Фиктивная операция, нужная при вводе Фиктивная операция, нужная при выдаче
— Условие ’’результат отрицателен”
Фиктивные операции для программистов запрещены. Их используют толь-
ко сама ВМ . Команда с таким кодом операции, будучи включенной в прог-
рамму, будет воспринята машиной как нарушение защиты памяти (см. с. 132).
5 зак. I5b6
129
Последняя операция, приведенная в табл. 7.1, не имеет кода, так как вы-
полняется вместе с другими операциями, как будет видно ниже. Ее принято
обозначать символом sign. Если а произвольное число, то
О при а > 0;
sign (а) = <
1 приа.<0.
Это удобно, если вспомнить, что логическое значение ’’истина” кодируют
цифрой 1, а логическое значение ’’ложь” — цифрой 0.
Перейдем к описанию работы программного процессора.
Запись алгоритма выполнения программ
Подготовка
1) Ждать и/= 1,->2; 6) i = 0000,-> 7;
2) Если w= 0, то -> 3, иначе 11; 7) 7: = 8, 8;
3) й:=0,->4; 8)1:=0,-*9;
4)г> : = 0,->5; 9)/ :=0-1,->1О;
5) в : = 08,->6; 10) Ждать й>= 1,->12;
Группа приказов, которую мы назвали ’’Подготовка”, описывает действия
программного процессора, предшествующие его основной работе. Очевидно,
прежде всего нужно ввести в ОП программы (как служебные так и рабочие).
Для этого должны быть составлены и перенесены на перфокарты подлежа-
щие вводу программы. Но как их ввести в ВМ? Для этого нужно составить
еще программу ввода. О ней будет сказано ниже. Пока что допустим, что все
программы заготовлены. Их нужно сложить в виде колоды, в которой на
первом месте лежат карты с программой ввода, а за ними карты с програм-
мами, подлежащими вводу. Далее оператор ВМ (человек) должен действо-
вать так:
1. Нажать на пульте управления сначала кнопку ”стоп-1” (связанную с
сигнальной ячейкой w ), а затем — кнопку ”стоп-2” (связанную с сигналь-
ной ячейкой и). При этом сигнальные лампочки, соответствующие этим ячей-
кам, должны не гореть (или погаснуть).
2. На тумблерном регистре 8 набрать число перфокарт, содержащих про-
грамму ввода, а на тумблерном регистре /3 — адрес ячейки ОП, в которую
должна попасть первая команда программы ввода.
3. Нажать кнопку ”пуск-1”. В результате этого начнет выполняться ’’Под-
готовка”. Приказ 2 передаст управление приказу 3 (так как кнопка ”пуск-2”
еще не нажата) ; приказы 3 и 4 запретят несанкционированную работу про-
цессоров ввода и выдачи; приказы 5, 6, 7, 8 и 9 сформируют непосредствен-
но в регистре команд г команду ввода (программы ввода) ; приказ 10 вызо-
вет ожидание нажима кнопки ”пуск-2”.
4. Вложить в читающее устройство колоду перфокарт.
130
5. Нажать кнопку ”пуск-2”. После этого приказ 10 передаст управление
приказу 12 и произойдет ввод программы ввода.
Выбор и ’’счет” команд
11) г : =zz ,->12; 012) Если0 = 12, то->25, иначе->0012;
12) I :=7 + 1,->О12; 0012) Если 0= 13, то->25, иначе-* 13;
Приказ 11 вызывает в регистр команд команду, которая в ОП записана по
адресу, стоящему в счетчике команд I. При начальном пуске этот приказ
пропускается, так как в регистре команд стоит команда, засланная с пульта
управления, и начать работу надо с ее выполнения.
Приказы с необычными метками 012 и 0012 предназначены для того, что-
бы не допустить выполнение команд с запрещенными кодами операции (12
или 13).
В нижестоящем приказе 13 символом обозначена операция поразряд-
ного умножения. Напомню, что разряды регистра R и его маски т могут
быть либо нулями, либо единицами.
Прерывание
13) Если 7?*/я =000, то-* 21, иначе-* 14;
14) г' :=г,->15;
15) /' :=/,-> 16;
16) ы = й, -> 17;
17)7?’ :=7?,->18;
18) I :=70,->19;
19) т : = 000,-* 20;
20) R : = 000,->И;
Эта группа приказов предусматривает перенос содержимого из регистра
команд, счетчика команд, логической ячейки и регистра прерываний в дуб-
лирующие ячейки (приказы 14 —17). Но это производится, только если в
регистре прерываний содержатся незамаскированные сигналы прерывания
(т. е. такие, которым в регистре маски т соответствует код ”1”; сигнал пре-
рывания считается замаскированным, если в отвечающем ему разряде ре-
гистра маски стоит код ”0”). Затем в счетчик команд засылается содержи-
мое ячейки I о (а оно равно адресу первой команды программы обработки
прерываний). Засылается в регистр маски код 000 (чтобы новые сигналы
прерываний не мешали работе служебных программ) и в регистр прерыва-
ний — код 000 (для того чтобы он был готов к приему новых сигналов пре-
рываний) . После этого управление передается блоку ’’Выбор и счет команд”.
Начинает работать программа обработки прерываний.Так остроумно в совре-
менных ЭВМ реализована функция пассивного внимания.
Если сигналов прерывания нет, то приказ 13 сразу передает управление
блоку защиты памяти. О такой функции алгоритма выполнения программ
выше уже было сказано. В ВМ она реализована так:
Защита памяти
21) Если7 <70, то-* 22, иначе-* 26;
22) Если/<70,то->23,иначе->25;
5* 131
23) Если / < /0, то -> 24, иначе -> 25;
24) Если к < Tq , то -> 26, иначе -> 25;
25) Ь2 : = 1, -> 13;
Защита памяти ВМ считается нарушенной, если команда, поступившая в
регистр команд из рабочей зоны, имеет хотя бы один адрес, принадлежащий
служебной зоне (включая и команды ввода и выдачи, в которых один из ад-
ресов равен числу кодов). Если защита нарушена, производится выдача сиг-
нала прерывания (приказ 25). Если защита не нарушена, производится расшиф-
ровка кода операции, стоящего в соответствующей части
Расшифровка кода операции
26) Если в = 01,то -> 100, иначе -> 27;
27) Если 0 = 02, то -+ 200, иначе -> 28;
28) Если 0 = 03, то ->300, иначе -> 29;
29) Если 0 = 04, то ->400, иначе -> 30;
30) Если 0 = 05, то -> 500, иначе -> 31;
31) Если 0 = 06, то -> 600, иначе -> 32;
32) Если .0 = 07, то -> 700, иначе -> 33;
33) Если 0 = 08, то -> 800, иначе -> 34;
34) Если 0 = 09, то ->900, иначе ->35;
35) Если 0= 10, то -> 1000, иначе -> 36;
36) Если 0 = 11, то -> 1100, иначе ->37;
37) Если 0= 12, то ~> 1200, иначе-> 38;
38) Если 0 = 13, то -> 1300, иначе -> 1000;
Как видно из приказа 38, любой код операции, отличный от указанных
в табл. 7.1, выполняется как код 10. Дальше, алгоритм выполнения про-
грамм содержит операции:
Сложение. 100) zk =Zj + Zj, -> 1400;
Вычитание. 200) zк =Zj _ Zj, -> 1400;
Умножение. 300) zk = ZjX Zj, -> 1400;
Деление. 400) zk = Zj : zy, -> 1400;
Перенос. 500) zk = Zj, -> 1400;
Безусловный переход. 600) 7 : = 7, -> 11;
Условный переход. 700) 7 : = (си - 1) • 7+ со 7, -> 11;
Ввод с перфокарт. 800) U : =/, ->801;
801) и = 1,->802; 802) в =12, ->13;
803) Если й = 1, -> 13, иначе ->804;
804) 7: = 1±->805; 805) zk ; = xz,->806;
806) Если i </, то -> 807, иначе -> 1;
807) i = 7+ 1, ->808; 808) к : =&+ 1, ->805;
При вводе с перфокарт алгоритм выполнения программ должен был бы
ждать, пока процессор ввода, получив (при выполнении приказа 801) разре-
132
шение работать, запишет в ячейку и код ”0”, но тогда при возникновении
сигнала прерывания bx = 1 программный процессор его не уловил бы и ВМ
остановилась бы до тех пор, пока оператор (человек) не заметил бы небла-
гополучия и его не устранил бы. Чтобы этого не произошло, приказ 802 за-
сылает в регистр команд код фиктивной операции 12 и передает управление
блоку ’’Прерывание”, который, если сигнала прерывания нет, передает управ-
ление блоку защиты, а затем блоку расшифровки кода операции. Последний
передает управление приказу 803, а этот приказ, если й 0, снова передает
управление блоку ’’Прерывание”, и так до тех пор, пока не станет й = 0. Пос-
ле этого приказы 804 — 808 забирают введенную информацию из буфе-
раБ1.
Выдача на перфокарты
900) Если & = 1, то->901, иначе->903;
901) 0: = 13, -> 13;
902) Если v = 1, то -> 13, иначе ->903;
903) К: =/,->904;
904) £ =1,->905;
9Ь5)ук =J/,^906;
906) Если_? </, то ->907, иначе ->909 ;
907)7:=?+ 1, ->908 ;
908) = Л+1,->905;
909) v = 1,->1;
Если в начале выполнения операции ’’выдача на перфокарты” окажется,
что выходной процессор еще занят выдачей, которая была начата раньше, т. е.
если u = 1, то нужно выполнять операцию ожидания условия v = 0. Однако
такое ожидание сопровождалось бы невозможностью уловить прерывание от
выходного процессора. Поэтому предусматривается искусственный прием:
запись (приказ 901) в регистр команд кода фиктивной операции 13 и пере-
дача управления блоку ’’Прерывание” Подобный прием мы уже применяли
при составлении части алгоритма, выполняющей операцию с кодом 08 (ввод
с перфокарт).
Замечу, что одновременно с работой процессора выдачи может продол-
жаться выполнение других команд программного процессора. При этом во
время каждого рабочего цикла программного процессора производится про-
смотр регистра прерываний. Однако, если почему-либо процесс изменится, то
прерывания от процессора выдачи не будут восприниматься до тех пор, пока
естественный процесс выполнения команд не восстановится. Нарушение
естественного порядка выполнения может произойти из-за нажатия на пульте
управления кнопки ”стоп-1” или прерывания, не связанного с процессором
выдачи.
Приведу описание остальных операций ВМ.
133
Остановка. 1000) w' : = 0, -* 1 ;
Возврат. 1100)7 :=7Г,-*1101;
1101)7 :=7',-*1102;
1102) а>: = о> -*1103 ;
1103) й: = 000,-* 13 ;
Фиктивная операция 12. 1200) £: = £, -*803 ;
Фиктивная операция 13. 1300) в :=д, -*902;
Условие ’’результат отрицателен”. 1400) со : = sign (гд.), -* 1 ;
В заключение данного параграфа приведу примеры конкретных команд
на языке ВМ.
Команда сложения может иметь вид 01 0001 0002 0003.
Команда ввода 08 0000 0100 0020 гласит: ’’ввести 100 кодов в ячейки
20, 21,..., 119”.
Команда выдачи 09 0020 0100 0000 гласит: ’’выдать 100 кодов из ячеек
20, 21,..., 119”.
Команда возврата имеет вид 11 0000 0000 0000.
Из приведенного в этом параграфе примера ЭВМ видна связь между фи-
зическими устройствами дискретного преобразования информации и матема-
тическим аппаратом коллективов алгоритмов.
7.5. МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ РОБОТА
Термин ’’математическое обеспечение” возник в области применения ЭВМ.
Под математическим обеспечением ЭВМ понимают систему программ, удов-
летворяющих следующим условиям.
1. Каждая программа в отдельности удовлетворяет системе правил, назы-
ваемых системными соглашениями. Эти правила отражают связи, существу-
ющие в математическом обеспечении между образующими его программами.
2. Каждая программа в отдельности и вся их совокупность в целом доку-
ментированы в соответствии с принятыми для системы математического
обеспечения правилами документации настолько точными и детальными, что
из них можно почерпнуть всю информацию, которая может потребоваться
при эксплуатации машины, вместе с математическим обеспечением.
3. Все программы включены в библиотеку программ, структура которой
задана для данной системы математического обеспечения.
4. Каждая программа выполнима на ЭВМ (или их системе), для которой
создана система математического обеспечения, либо непосредственно, либо
благодаря наличию других программ.
Эти четыре требования задают синтаксис системы математического обеспе-
чения (МО) ЭВМ, его форму. Так, в литературе существуют требования,
134
при выполнении которых литературное произведение признается стихотворе-
нием. Но одной формы мало для того, чтобы стихотворение кому-нибудь бы-
ло нужно. Необходимо, чтобы оно обладало еще определенным содержанием.
Так и МО должно обладать определенным содержанием: выполнять важные
для пользователей ЭВМ функции. К числу таких функций относятся автома-
тизация программирования, облегчение работы оператора и ряд других.
Важнейшей функцией МО является создание необходимого режима рабо-
ты ЭВМ. Необходимый режим зависит от того, для каких задач или для ка-
ких целей используется ЭВМ. Если ЭВМ предназначается для решения задач
вычислительного характера, но весьма разнообразных, может быть целесооб-
разен так называемый пакетный режим, известный в двух разновидностях:
пакетный однопрограммный и пакетный многопрограммный. При пакетных
режимах автоматизированы работы по переходу от одной задачи по ее окон-
чании к другой. Если для решения задачи необходимо одновременное нали-
чие в оперативной памяти большого объема информации, то приходится до-
вольствоваться однопрограммной разновидностью. При многопрограммной
разновидности в оперативной памяти находится сразу несколько программ,
что позволяет наиболее рационально использовать оборудование машины, за-
ставляя параллельно работать ее процессоры (например, если первой задаче
понадобился ввод информации, то пока ее программа ждет, программный
процессор переключается на программу второй задачи).
Если ЭВМ используется как многопультовая система коллективного поль-
зования, то целесообразен режим разделения времени, при котором все поль-
зователи как бы организованы в круговую очередь и ресурсы ЭВМ предо-
ставляются им на короткие промежутки времени в порядке этой очереди,
причем у каждого пользователя возникает чувство непрерывности его обслу-
живания машиной.
Для управляющей ЭВМ необходим так называемый режим реального време-
ни, при котором отклик машины на ввод исходных данных происходит че-
рез такое время, что результат может быть использован как управляющий
сигнал для управляемого ею объекта.
В применении к роботам понятие МО следует несколько конкретизиро-
вать. Прежде всего заметим, что робот является кибернетической системой,
действующей под непосредственным влиянием внешней среды и оказываю-
щей непосредственные воздействия на нее. Преобразователь информации ро-
бота является управляющей машиной и его режим должен быть режимом
реального времени. Функции преобразователя нам уже ясны. Преобразова-
тель информации реализуется как модель коллектива алгоритмов, причем
некоторые алгоритмы в нем осуществлены аппаратно, а некоторые програм-
мно. При этом алгоритмы выполнения программ реализованы аппаратно.
Математическим обеспечением робота называется совокупность всех его
программ.
135
Если робот реализован как совокупность технического оборудования
(датчиков информации и эффекторов) и управляющей ЭВМ (которая может
относиться к числу так называемых универсальных или к числу управляю-
щих, но общего назначения), то все вышесказанное о МО ЭВМ остается в си-
ле. Если же робот реализован как самостоятельная конструкция, без приме-
нения серийных ЭВМ, то требование 3 о включении всех программ в систем-
ную библиотеку программ перестает быть обязательным (хотя библиотеч-
ная структура МО и не исключается).
Вполне возможен случай, в котором одна ЭВМ является преобразовате-
лем информации нескольких роботов, без тою чтобы объединять их в один
робот или коллектив роботов (см. гл. 8). При этом режим работы ЭВМ может
представлять собой комбинацию режима коллективного пользователя с ре-
жимами реального времени каждого робота. Такое применение ЭВМ возмож-
но при сравнительно простых программах преобразования информации у каж-
дого из роботов или при достаточно больших допустимых временах отклика.
Читатель, наверное, догадывается, что применение одной ЭВМ в качестве пре-
образователя информации сразу нескольких роботов — это прием, применя-
емый для промышленных роботов. В принципе возможна связь рецепторов и
эффекторов роботов с ЭВМ по радио, например в роботах, забрасываемых на
другие планеты.
Математическое обеспечение - важнейший атрибут сколько-нибудь слож-
ного дискретного робота. Аппаратная реализация всех алгоритмов коллек-
тива связана с большими техническими трудностями и материальными
затратами. Интересно отметить, что при производстве серии роботов мате-
риальные затраты на техническую реализацию повторяются с каждым образ-
цом, а при программной реализации - не зависят от числа образцов. Если
стоимость разработки проекта Р, затраты на изготовление одного образца X,
а затраты на разработку математического обеспечения У, то стоимость С од-
ного образца с достаточной точностью передает формула С = X + Р/п + Y/n,
где п - число образцов. При этом робот, имеющий математическое обеспе-
чение, в определенной степени допускает модернизацию без внесения в аппа-
ратуру каких-либо изменений (путем изменения программ).
7.6. КОРОТКО О ПРОГРАММИРОВАНИИ МАТЕМАТИЧЕСКОГО ОБЕСПЕЧЕНИЯ
Ранее уже говорилось о том, что физически роботы могут быть реализо?
ваны различно. Это относится, в частности, и к программным процессорам.
Физическое разнообразие программных процессоров заставляет меня гово-
рить о них в общих чертах, имея в виду только их общие, так сказать, логи-
ческие, свойства.
136
Первой проблемой, возникающей перед разработчиками МО, является ма-
тематическая формулировка задачи о необходимом преобразовании инфор-
мации, поступающей от рецепторов, в информацию, выдаваемую эффекто-
рам. Это вопрос очень не простой. В большей части случаев задача не может
быть сформулирована аналитическими средствами (в виде уравнений и т. п.)
Ее постановку можно представить в виде схемы коллектива алгоритмов,
каждый из которых тоже задан схематически.
Для выполнения такой работы прежде всего нужно знать, с какими дан-
ными и как представленными придется иметь дело в качестве исходных дан-
ных и в качестве результатов. Другими словами, нужно определить два ин-
формационных языка - входной и выходной. Исходным данным всегда бу-
дет предложение входного языка, а результатом — предложение выходного
языка. При этом следует помнить, что информация может и будет поступать
не только от внешних, но и от внутренних рецепторов.
В простейшем случае каждый рецептор в определенный момент выдает
некоторое число или логическое значение. Тогда исходным данным является
некоторый кортеж (размещенная в определенном порядке конечная строка)
чисел и логических значений. Например, если рецепторы определяют темпера-
туру, вес, геометрические размеры и т. п. объекта, на который должен воз-
действовать робот (этот случай часто имеет место для промышленных робо-
тов).
Однако возможен случай, когда данными являются не логические значе-
ния и не числа, а одномерные последовательности чисел, которые сами по
себе не являются теми данными, которые подлежат преобразованию, а явля-
ются лишь формой восприятия таких данных. Например, форма плоской
кривой может задаваться в виде последовательности чисел (ординат, изме-
ренных для определенных значений абсциссы). В этом случае нужно сначала
распознать образ, соответствующий данной последовательности чисел и зна-
чительно более лаконичный.
В еще более сложных случаях информация может вырабатываться в виде
двухмерных систем чисел или логических значений, например телевизионная
информация. Распознавание образа, представленного такой информацией,
значительно сложнее, хотя сам образ может тоже допускать представление
в очень сжатой форме. Например, при побуквенном оптическом чтении
текста образ имеет форму одного символа некоторого алфавита. Сразу
замечу, что в общем виде проблема распознавания образа еще далека от ре-
шения. Но в частных случаях и в определенных границах она уже разрешима
и теперь. Распознавание образов следует отнести к предварительному этапу
переработки исходных данных. По отношению к преобразователю информа-
ции процессор, производящий распознавание образов, считается предвари-
тельным (препроцессором).
6 Зак. 1586
137
Разработка схемы коллектива алгоритмов и выделение среди них тех, ко-
торые будут реализованы программно, это неформальная задача, имеющая
творческий характер. Разные коллективы специалистов решат ее по-разно-
му. После того, как это сделано, разрабатывают сперва схемы алгоритмов, а
затем и программы.
Разработку программ начинают с формулировки системных соглашений,
в которых, как уже было сказано, должны быть зафиксированы связи меж-
ду программами. Обычно учитывают четыре вида связей. 1. Связи по инфор-
мации, выражающиеся в том, что результаты одних программ являются ис-
ходными данными для других. В коллективах алгоритмов областями дисло-
кации передаваемых данных являются буфера, необходимо точно определить
форму, в которой передаваемые данные должны быть представлены в буфе-
рах. 2. Связи по управлению; эти связи выражаются в том, что одни програм-
мы передают управление другим, разрешают или запрещают их выполнение,
производят прерывание в их выполнении и т. п. 3. Связи по воздействию,
программы связаны по воздействию, если одна из них перерабатывает код
другой, например настраивает, транслирует (переводит с одного алгоритми-
ческого языка на другой) или интерпретирует се (является ее алгоритмом
выполнения). 4. Связи по размещению; эти связи возникают ^гежду про-
граммами, которые могут одновременно находиться в одном и том же за-
поминающем устройстве и не должны ’’друг другу мешать”.
Для программиста необходимы системные соглашения, описывающие
связи между программами (а значит, и условия, которым программы долж-
ны удовлетворять), но в коллективе алгоритмов, в котором некоторые ал-
горитмы реализованы аппаратно, такие связи могут быть косвенными, яв-
ляться связями программ с процессорами. Знание системных соглашений
позволяет разработку математического обеспечения выполнять параллельно
силами нескольких программистов.
Как только та или иная программа изготовлена (а иногда и в процессе ее
разработки), нужно сразу же эту программу документировать, без чего она
недоступна не только для второго разработчика, но через некоторое время -
и для ее автора.
При определении системы программных процессоров робота разрабатыва-
ют алгоритмический язык каждого из этих процессоров. Для экономии тру-
да программистов обычно эти алгоритмические языки стремятся сделать по
возможности похожими друг на друга и допускающими символическую фор-
му (автокод), общую для них всех или состоящую из подъязыков, имеющих
аналогичную структуру предложений и являющихся символическими кода-
ми алгоритмических языков программных процессоров. Автокод, грубо го-
воря, представляет собой код алгоритмического языка, в котором буквами
обозначены основные элементы команд, так что переход от автокода к про-
138
грамме представляет собой чисто техническую задачу и может быть выпол-
нен с помощью ЭВМ. ЭВМ, применяемая как вспомогательное средство при
разработке МО, называют инструментальной.
После того как разработаны схемы всех программ, их программируют на
вышеуказанном автокоде, транслируют на инструментальной ЭВМ и тщатель-
но выверяют. Разумеется, трансляция на ЭВМ связана с наличием программы-
транслятора, составленной для этой ЭВМ (такую программу необходимо за-
ранее разработать).
Я ограничусь краткими и отрывочными сведениями о технологии про-
граммирования математического обеспечения, приведенными выше. Эта тех-
нология во многом подобна технологии программирования математического
обеспечения для ЭВМ. Замечу только, что выверка программ представляет
собой ответственную и трудную задачу, которую можно значительно упро-
стить, если воспользоваться инструментальной ЭВМ. При этом нужно иметь
программную модель на языке ЭВМ каждого программного процессора робо-
та, т. е. иметь на языке ЭВМ алгоритм.работы каждого такого процессора.
С помощью таких моделей можно выверить (говорят — отладить) каждую про-
грамму робота. Для их комплексной отладки потребуется имитация всего ро-
бота. Но окончательная проверка всего математического обеспечения может
быть осуществлена только путем экспериментальной эксплуатации готового
робота. Только после экспериментальной эксплуатации опытного образна
можно приступать к серийному производству роботов.
Глава 8
КОЛЛЕКТИВЫ РОБОТОВ
8.1. ЧТО ТАКОЕ КОЛЛЕКТИВ РОБОТОВ?
О коллективах роботов стали говорить, проводя аналогию меж-
ду системами роботов и коллективами людей. С научной точки зрения такая
аналогия не является достаточным основанием для введения нового понятия.
Для того чтобы наука стала говорить о коллективах роботов, необходимо
точно определить, что это такое.
Основанием точного определения может послужить и интуитивное пред-
ставление об изучаемом явлении, но такое представление нужно уточнить.
Кстати говоря, я уверен, что многие читатели, пользуясь термином ’’коллек-
тив”, и в отношении людей не знают точного смысла этого слова. Посмотрим
в энциклопедию. Там сказано: ’’коллектив — это объединение лиц, связан-
ных совместной работой, общими интересами и целями”. Хотя и такое
6
определение не отличается математической точностью, из него все же кое-что
можно извлечь. Во-первых, для коллектива характерна связь между его чле-
нами. Нет связи - нет и коллектива. Во-вторых, должна быть общая цель, об-
щие интересы. Эта общая цель вовсе не должна быть целью каждого лица.
Она должна быть целью всего объединения лиц.
Перейдем теперь к рассмотрению систем роботов. Что нужно понимать
под связью между роботами? Чтобы лучше в этом разобраться, рассмотрим
ряд примеров.
Пример 8.1. В подъезде многоэтажного дома установлен автомат, который отмыкает
дверь, если на специальном кнопочном регистре (ряде кнопок, имеющих номера 0, 1,...
..., 9) набрать определенный код, например 297. Если после этого в течение минуты никто
не входит, автомат опять замыкает дверь. Если кто-то входит, открывая, а затем закры-
вая дверь, автомат также ее замыкает. Если оставить дверь открытой (а это не просто,
так как дверь снабжена пружиной), то через минуту автомат подает сигнал в диспетчер-
скую, где загорается лампочка. При неверном наборе кода автомат двери не отмыкает.
Такой автомат является примитивным роботом. В этом же доме в других подъездах
установлены такие же автоматы. Их совокупность не является коллективом, так как
между ними нет связи.
Пример 8.2. Если бы в подъезде, описанном в предыдущем примере, установили ав-
томат, поддерживающий постоянную освещенность подъезда днем и ночью (а это то-
же робот), то такая пара автоматов не стала бы коллективом. Даже находясь в одном
помещении, они не связаны. А вот если бы мы второй автомат переделали так, что при
полной темноте вместо того, чтобы зажигать дополнительную лампу, он размыкал ка-
нал связи, по которому кодовый сигнал с кнопочного регистра поступает в дешифра-
тор первого робота, то совокупность двух роботов была бы коллективом. Между рас-
сматриваемыми роботами возникла бы связь. Кстати, нетрудно выявить и целевое от-
ношение коллектива: днем регулировать освещенность ц пропускать в подъезд всех,
кто знает соответствующий код, а ночью никого не впускать в подъезд.
Пример 8.2 создает ложное впечатление, что между наличием связи между роботами
и наличием общей цели есть зависимость. Очень показателен следующий пример.
Пример 8.3. Предположим, что даны два робота, каждый из которых ’’ощущает”
только температуру помещения, в котором он находится, и влияет только на темпера-
туру этого помещения. Допустим, что первый из них предназначен для поддержания
температуры на уровне +10 С, а второй - на уровне+20 С. Если эти роботы находятся
в разных помещениях (изолированных между собой), то между ними практически от-
сутствует связь. Они не образуют коллектива.
Однако из нашего примера не следует, что такие два робота не могут образовать кол-
лектив. Если их установить в помещениях, которые между собой соединены дверью, то
связь между роботами появится. И если нам нужен сложный тепловой режим, который
будут теперь в двух комнатах устанавливать два робота, они составляют коллектив.
Если же такой сложный режим никому не нужен, т. е. функции его поддержания не
существует, то коллектива нет. Это и означает, что наличие связи между роботами не-
достаточно для того, чтобы возник коллектив роботов.
Предыдущий пример можно усилить и при этом обнаружить еще одно явление, ко-
торое может возникать при объединении роботов.
Пример 8.4. Предположим, что роботы, описанные в предыдущем примере, помеще-
ны в одну комнату, начальная температура в которой равна +15 С. В таких условиях
140
первый робот будет охлаждать помещение, а второй его нагревать. Кто из них ’’победит”
и ’’победит” ли один из них, заранее неизвестно. Может быть, ресурсы первого меньше,
тогда победит второй. Но в зависимости от таких характеристик, как чувствительность
рецепторов, мощность эффекторов и время отклика, возможно и возникновение тепло-
вых колебаний, и даже значительных. Конечно, не исключено и такое соотношение всех
факторов, что температура в комнате будет оставаться равной +15 С (хотя этот случай
и маловероятен). Еще из известной басни Крылова знаком нам подобный ’’коллектив”:
”... Лебедь рвется в облака, Рак пятится назад, а Щука тянет в воду... ”.
В примере 8.4 мы встретились с так называемым антагонизмом роботов.
Возникновение антагонизма возможно, если внешние среды роботов связа-
ны. Отмечу, что возможен случай, когда даже один робот сам с собой нахо-
дится в антагонизме. Это может произойти, если робот влияет на многие па-
раметры внешней среды и эти влияния в скрытом виде противоречивы. Но
вернемся к вопросу о возможных видах связей.
Связь между роботами, как следует из вышеприведенных примеров, мо-
жет возникать благодаря наличию либо связей между их ближними внешни-
ми средами, либо канала связи, соединяющего их преобразователи информа-
ции. В последнем случае встречаются две разновидности связи: передачей
осведомляющей информации и передачей управляющей информации. Первая
связь в определенном смысле близка к связи через внешнюю среду, так как
под влиянием внешней среды в роботах возникает именно осведомляющая
информация. Передача управляющей информации более разнообразна. Она
может выражаться в передаче вопроса или ответа на прежде заданный вопрос
(это имеет место при управлении одних роботов другими), но может выра-
жаться и во внесении изменений в алгоритм работы робота (как это было в
примере 8.2). Другими словами, она может заключаться в передаче операнда
или во внесении изменения в алгоритм, управляющий роботом. Последний
вид связи может принимать форму передачи записи алгоритма или его части.
Каналом связи может служить специальное приспособление (например,
кабель), но возможно, что каналом связи является часть внешней среды (пе-
редача звуковых сигналов непосредственно в среде, радиосвязь и т. п.). Неза-
висимо от вида канала связи, передачу информации от робота к роботу, осу-
ществляемую активно, мы будем всегда отличать от связи, возникающей из-
за наличия связи между внешними средами роботов, являющуюся пассивной.
Нужно еще иметь в виду, что связь между роботами может быть непосред-
ственной или опосредствованной, осуществляемой через другие роботы.
Наконец, нужно не забывать, что в некоторых случаях связь между робо-
тами принимает нежелательную форму антагонизма (я исключаю из рас-
смотрения случай боевых военных роботов, когда их цель заключается в ан-
тагонизме, но ведь ’’воюющих” между собой роботов не назовешь коллек-
тивом).
Теперь мы можем наконец сказать, что следует называть коллективом
141
роботов. Это — система роботов, в которой все роботы между собой связа-
ны, не находятся в состоянии антагонизма и имеют групповое целевое отно-
шение (групповую цель: выполняют групповую функцию).
Не вызывает сомнения, что понятие коллектива роботов целесообразно и
заслуживает изучения.
Кончая этот параграф, я хотел бы сделать два замечания общеметодологи-
ческого характера.
1. Изучая поведение роботов при их взаимодействии, мы описывали их
функции и приводили некоторые характеристики внешней среды, а затем
анализировали поведение роботов. Такой прием называется мысленным
экспериментом. В последнее время появился ряд работ по философии о зна-
чении и месте мысленного эксперимента в познании. Мысленный экспери-
мент — это моделирование явления или процесса в мыслях. Он существенно
отличается от реального эксперимента и может дать не больше чем любая
модель. Однако в ряде случаев он существенно помогает анализу явления
или процесса. Все же мысленный эксперимент уступает таким моделям, как,
например, программная.
2. В некоторых случаях мы считали пример доказательством своего ут-
верждения. Законно ли это? Ведь обычно доказательство проводят путем
логических рассуждений. Оказывается законно, и это не противоречит пра-
вилам логики. Если нужно опровергнуть какое-либо всеобщее утверждение
(т. е. доказать его неверность), то достаточно одного опровергающего приме-
ра. Мыс помощью одного примера доказали недостаточность наличия связей
для того, чтобы совокупность роботов была к ылективом.
8.2. КЛАССИФИКАЦИЯ КОЛЛЕКТИВОВ РОБОТОВ
В основу всякой классификации обычно кладут какой-либо признак или
совокупность признаков, которыми может обладать или не обладать объект
из классифицируемого класса объектов. Признак может быть двоичным
(отсутствует присутствует) или многозначным. В некоторых случаях клас-
сы, полученные по одному какому-то признаку, дальше разбивают на подклас-
сы по другому признаку. При этом, если каждый класс изобразить точкой
(или прямоугольником, в котором записано название класса), которую
назовем вершиной, и между ними провести отрезки, ведущие от каждого
класса к его подклассам, то возникает разветвляющаяся структура, называе-
мая одноаспектным классификатором. С математической точки зрения такая
структура представляет собой ориентированный граф, имеющий форму
дерева (для наглядности добавим обращенного ветвями вниз). Основани-
ем этого дерева является совокупность всех классифицируемых объектов.
142
Если произведено несколько одноаспектных классификаций и все одно-
аспектные классификаторы объединены и при этом одноименные вершины
(если такие имеются) совмещены, то получается так называемый многоас-
пектный классификатор. Входящие в его состав отрезки во избежание неяс-
ности следует пометить именем или номером аспекта.
Классифицируя коллективы роботов, мы должны исходить из таких приз-
наков (свойств), которые не являются свойствами роботов, характеризуя
именно коллективы их. Таких свойств мы знаем два: 1) характер связей
между роботами - членами коллектива и 2) структура коллектива.
Условимся не считать запрос, пересылаемый из одного робота в другой,
управляющей информацией, хотя вполне допустимо считать, что запрос - это
приказ о выдаче ответа или другого приказа. Кроме того, введем понятие
подколлектива. Под коллективом мы будем считать совокупность роботов,
входящих в состав некоторого коллектива роботов, и являющуюся коллек-
тивом. При этом уточним один вопрос, касающийся коллектива роботов и не
освещенный нами до сих пор.
Спрашивается, могут ли элементы коллектива роботов быть связанными
с другими роботами, не принадлежащими данному коллективу? В отноше-
нии пассивных связей ответ на этот вопрос ясен: могут, потому что всякий
робот находится в собственной внешней среде, независимо от того, что вли-
яет на нее. Что же касается активных связей, то проблема сложнее. Если до-
пустить и активные связи, то не получится ли, что любая часть коллектива
роботов является подколлективом? С другой стороны, требование отсут-
ствия внешних активных связей явно нецелесообразно, потому что оно при-
вело бы к запрещению связей между коллективами. Но это противоречило
бы нашим представлениям о роботах и их коллективах и не позволило бы
также отдельный робот считать частным случаем коллектива (одноэлемент-
ным коллективом). Ясно, что мы не можем пойти на исключение возмож-
ности активных внешних связей. Однако никаких трудностей это не повле-
чет, так как основной признак коллектива наличие коллективной функ-
ции — всегда позволит нам подколлектив отличить от всякой иной части кол-
лектива.
После сделанных выше замечаний мы можем привести классификацию
коллективов роботов по видам связей, которые в них существуют (рис. 8.1).
Недостатком этой классификации является то, что некоторые коллективы
роботов могут попасть сразу в несколько классов. Например, если некото-
рые роботы активно связаны по осведомлению, а другие в том же коллекти-
ве активно связаны по управлению. Правда, в таком случае можно считать,
что данный коллектив не попадает ни в один класс. Признаюсь, что ради эко-
номии места и терпения читателя я просто опустил в классификаторе ряд
’’комбинированных” подклассов.
143
Рис. 8.1. Классификация коллективов роботов по видам связи между роботами
Автономные подколлективы, сами будучи коллективами, должны попасть
в один из разделов классификаторов.
Скажем теперь несколько слов о втором возможном аспекте классифика-
ции коллективом роботов, связанном с их структурой. Структуру коллекти-
ва роботов нам поможет описать теория графов. Придется привести более
подробные сведения из этой теории.
Справка из теории графов. Множество точек (назовем их вершинами) и
множество ориентированных отрезков линий (назовем их дугами), соеди-
няющих некоторые из этих точек, исходящих из них или входящих в них,
называются в своей совокупности ориентированным графом. Две дуги, име-
ющие одно и то же начало и один и тот же конец, считаются одной и той же
дугой и потому на схеме графа дважды не изображаются. Дуги, не имеющие
начала, называются входами в граф, а не имеющие конца — выходами из гра-
фа. Если начало дуги и ее конец совпадают, то дуга называется петлей.
Если дуги какого-нибудь ориентированного графа пометить какими-либо
значками, а затем провести новые дуги и тоже пометить их, следя за тем,
чтобы дуги, имеющие одинаковые начала и одинаковые концы, отличались
144
своими пометками (такую операцию можно проделать многократно), то по-
лучится так называемый ориентированный размеченный мультиграф.
В дальнейшем слова ’’ориентированный” и ’’размеченный” мы будем опус-
кать, так как неориентированные и неразмеченные графы и мультиграфы у
нас не будут встречаться.
Графы и мультиграфы называются связными, если из какой-либо их вер-
шины можно прийти в любую другую вершину, двигаясь по дугам (без учета
их направлений и пометок). В противном случае они называются несвязными.
Структуру коллектива роботов мы будем изображать в виде мультиграфа,
вершины которого соответствуют роботам, являющимся членами коллекти-
ва, а дуги — связям между ними. В данной книге мы ограничимся тремя ви-
дами связей, а следовательно и тремя видами пометок на ребрах. Для того
чтобы сделать структурные схемы коллективов более наглядными, вместо
того, чтобы помечать дуги, будем изображать их пунктиром (пассивные свя-
зи) , тонкими линиями (связи по осведомляющей информации) и толстыми
линиями (активные связи управления). При необходимости можно учиты-
вать большее число видов связей; тогда мультиграф будет сложнее.
Классификацию структур коллективов роботов можно осуществить как
классификацию соответствующих им мультиграфов.
Рассмотрим некоторые структуры коллективов роботов. На рис. 8.2 при-
ведена структура одноэлементного коллектива, который состоит из одного
робота. На этой схеме имеется один вход в мультиграф (воздействие на него
внешней среды), один выход (воздействие робота на внешнюю среду) и од-
на петля (обратная связь). Если имеется робот, управляемый человеком-опе-
ратором, то его схема как одноэлементного коллектива будет иметь вид,
показанный на рис. 8.3.
Рис. 8.2. Структура одноэ-
лементного коллектива ро-
ботов (одиночного ро-
бота)
Рис. 8.3. Структура одноэ-
лементного коллектива
роботов, управляемого
человеком
Рис. 8.4. Структура двух-
элементного коллектива
роботов, описанного в при-
мере 8.2
На рис. 8.4 приведена структура двухэлементного коллектива роботов,
описанного в примере 8.2.
Рассмотрим некоторые частные случаи коллективов роботов, которые мне
кажутся интересными.
145
8.3. КОЛЛЕКТИВЫ АВТОНОМНЫХ РОБОТОВ
Коллектив автономных роботов мож^т быть создан намеренно, но может
возникнуть и сам собой при совместном использовании нескольких роботов
с целью достижения какого-либо эффекта. Необходимым условием для воз-
никновения такого коллектива является связь между внешними средами
Рис. 8.5. Структура возможного
коллектива автономных роботов
роботов. При этом кроме внешних обрат-
ных связей каждого робота возникают
внешние прямые связи между роботами.
Внешняя обратная связь всего коллектива
осуществляется как совокупность внешних
обратных связей роботов. Активных связей
между роботами в таком коллективе нет.
Возможная структура некоторого коллек-
тива автономных роботов приведена на
рис. 8.5. Воздействие внешней среды на изо-
браженный коллектив описывает совокуп-
ность входов в мультиграф (a Ri9 b RSf
с Rt, d R3, I R2), а совокупный эффект
коллектива выражает множество выходов
из мультиграфа (R{ z, R2 и, R3 у, R4 х,
Rs uj. Пересечение дуг в точках, не совпадающих с вершинами мультиграфа,
не учитывается из-за случайного вида чертежа, который можно и изменить,
перемещая вершины.
При рассмотрении коллективов автономных роботов нужно не забывать
о возможности возникновения между ними антагонизмов. Если в некотором
резервуаре один робот поддерживает постоянный уровень жидкости, дру-
гой - постоянную температуру, третий - постоянное давление, а четвертый
постоянный удельный вес (плотность) жидкости, то с высокой степенью
уверенности следует ожидать возникновения конфликта между роботами,
потому что регулируемые параметры между собой связаны законами физи-
ки. Но эта же связь между ними объединяет их в коллектив (если антагониз-
ма нет).
Существенную роль в таких коллективах играет и соотношение между
временами отклика роботов-элементов коллектива.
8.4. ЛИНЕЙНО ПОСЛЕДОВАТЕЛЬНЫЕ КОЛЛЕКТИВЫ РОБОТОВ
Такие коллективы можно встретить на производстве. Их элементами яв-
ляются промышленные роботы. Каждый такой робот взаимодействует с
146
обрабатываемым им объектом. Этот объект и является его внешней средой.
Получив объект, робот его обрабатывает, контролируя результаты обработ-
ки с помощью соответствующих рецепторов. После того, как обработка
окончена, он передает сам объект другому роботу, сигнализируя об этом.
Следующий в линии робот, после того, как он окончит обработку предыду-
щего изделия, приступает к обработке нового и т. д.
Если, оканчивая свою работу, каждый робот коллектива перемещает из-
делие на участок следующего робота, не подавая сигнала, начинает обработ-
ку следующего тогда, когда его рецепторы обнаружат появление на его вхо-
де следующего изделия, то элементами коллектива являются последователь-
но работающие автономные роботы. Если же передача изделия имеет место
одновременно с подачей сигнала непосредственно в преобразователь инфор-
мации следующего робота, то коллектив, будучи линейно последовательным,
вместе с тем является и иерархическим (о иерархических коллективах см.
ниже). Структуры вышеуказанных коллективов роботов приведены на
рис. 8.6 и 8.7.
Рис. 8.6. Структура линейно-после-
довательного коллектива авто-
номных роботов
Рис. 8 7. Структура линейно-последователь-
ного иерархического коллектива роботов
8.5. ИЕРАРХИЧЕСКИЕ КОЛЛЕКТИВЫ РОБОТОВ
Рассмотрим коллектив, в котором могут быть как активные, так пас-
сивные связи между роботами. Такой коллектив называется иерархическим,
если для него выполнены следующие три условия:
1. В структурной схеме коллектива можно указать уровни, такие, что
каждый робог (z + 1)-го непосредственно связан с одним и только одним
роботом z-ro уровня. Самым старшим считается Ой уровень и на нем нахо-
дится только один робот. Уровень с номером z считается старше (z + 1)-го.
2. От роботов старшего уровня к роботам младшего уровня осуществля-
ется передача только управляющей информации.
3 От роботов младших уровней к роботам старших уровней может пере-
даваться только осведомляющая информация (активно или пассивно).
Па рис. 8 8 показана возможная структура иерархического коллектива
роботов.
Уровень в иерархическом коллективе роботов называется с./ос.и, если
147
существуют непосредственные связи между роботами этого уровня. Струк-
турная схема иерархического коллектива роботов, содержащего слой, приве-
Рис. 8.8. Структура иерархического коллек-
тива роботов
Возможны иерархические коллективы роботов, в которых робот нулево-
го уровня не имеет другой внешней среды, кроме роботов коллектива. Та-
кой робот 0-го уровня называется директором коллектива. Структурная схе-
ма возможного коллектива с директором показана на рис. 8.10.
Рис. 8.9. Структура иерархи-
ческого коллектива роботов,
содержащего слой
Рис. 8.10. Структура иерархичес-
кого коллектива роботов с робо-
том-директором
Рассмотренный нами ранее класс линейно-последовательных роботов во
втором его варианте (с передачами управляющих сигналов) является част-
ным случаем иерархических роботов (см. рис. 8.7). В роботах этого класса
осведомляющая информация передается пассивно.
148
8.6. ВОЗМОЖНОСТИ КОЛЛЕКТИВОВ РОБОТОВ
Деятельность человечества иногда сравнивают с борьбой. Человечество
сражается с природой и отвоевывает у нее одну позицию за другой. Я ни в
коем случае не хочу оправдать действия некоторых западных политических
руководителей, которые жизнь человечества представляют себе как войну,
да к тому же еще братоубийственную (людей с людьми). Но все же прибегаю
к такому сравнению, чтобы нагляднее выявить одно преимущество коллек-
тива сравнительно простых роботов перед большим, сложным роботом, ко-
торый эквивалентен этому коллективу. Роботов можно уподобить солдатам,
сражающимся на стороне человечества.
Спрашивается, что лучше: иметь 100 солдат, каждый из которых оснащен
оружием, позволяющим произвести 5 выстрелов в минуту, или одного сол-
дата, огневая мощь которого 500 выстрелов в минуту? По силе огня 100 сла-
бо вооруженных солдат равны одному сильно вооруженному. Но по живу-
чести? Если даже вероятность выхода из строя считать одинаковой
(а для более сложного оружия она обычно выше), то живучесть 100 солдат
во 100 раз выше живучести одного.
Итак, одно преимущество коллектива роботов перед одиночным более
сложным роботом мы выяснили: коллектив более надежен.
Второе преимущество коллектива роботов перед эквивалентным ему оди-
ночным роботом таится в особенностях человеческого мышления, которое
вначале является аналитическим, расчленяет сложные проблемы на более
простые, а затем уже рассматривает сложную проблему, как систему более
простых (т. е. синтезирует ее). Особое развитие получил системный подход
во второй половине XX в. Разрабатывая один сложный робот, мы все равно
будем создавать его как систему (коллектив). Может быть, только заклю-
чим эту систему в общую оболочку. Коллектив роботов проще создать, чем
одиночный сложный робот. Да к тому же появляется возможность комплек-
товать коллективы из некоторого набора стандартных более простых робо-
тов. Это очень важная возможность, которая позволит при производстве ро-
ботов существенно экономить материальные средства и научные силы. Уже
теперь нужно заняться рассмотрением проблемы стандартизации роботов и
списков полного набора возможных роботов-модулей.
Наконец, укажем на еще одно обстоятельство. Если необходимо создать
робот, распределенный в большом пространстве, то совершенно неизбежно
он примет форму коллектива более простых роботов. Действительно, возни-
кнет вопрос о разработке устройств, связанных между собой каналами свя-
зи для дальней передачи информации. Трудности такой передачи информации
заставят эффекторы и датчики информации конструктивно группировать
вместе с локальными устройствами управления, изолируя такие блоки от
149
вредных воздействий внешней среды. Словом, распределенный робот должен
принять форму системы более простых роботов, связанных каналами актив-
ной связи.
Следовательно, возможность охвата больших пространств — это одна из
особенностей коллективов роботов. Мы знаем, что уже существуют подоб-
ные коллективы роботов, в которых один ’’элемент” находится в космосе,
а другой — на земле (имеются в виду межпланетные станции и обслужива-
ющие их ЭВМ; об ЭВМ мы еще поговорим в девятой главе). Легко себе пред-
ставить, что освоение других планет человечество будет осуществлять, на-
правляя туда роботы, которые вместе с роботами, оставленными на Земле,
будут составлять (скорее всего иерархический) коллектив. Менее вероятно,
что другие планеты можно будет осваивать с помощью коллектива автоном-
ных роботов.
Таким образом, применение коллективов роботов вместо одиночных
сложных роботов позволяет повысить надежность системы, облегчает ее раз-
работку, упрощает и удешевляет производство роботов и, наконец, позво-
ляет охватить автоматической системой большие пространства.
Г лава 9
КОРОТКО О МНОГОМ (ЗАКЛЮЧЕНИЕ)
9.1. ЧТО ЕСТЬ ЧТО?
Итак, робот - это автомат многоразового (или длящегося) дей-
ствия: а) с внешней обратной связью и б) подчиненный целевому отношению
(см. § 1.9). Для того чтобы указанные выше два условия были выполнены,
необходимо определенное соответствие основных компонентов робота как
системы управления друг другу и внешней среде. Такое соответствие называ-
ют конформностью среды и системы управления.
Нужно помнить, что внешней средой робота называется не вообще внеш-
няя среда, а та ее часть (или ее сторона), которая воспринимается рецептора-
ми и (или) поддается воздействию эффекторов робота. Такую часть (сторо-
ну) внешней среды мы в § 1.8 назвали ближней средой.
Робот - это искусственная система управления, конформная определен-
ной выделенной части внешней среды, называемой ближней средой. Для того
чтобы выяснить, является автомат роботом или нет, нужно уметь построить
эквивалентную ему схему системы управления и ее ближней среды и прове-
рить конформны ли они. В простейших случаях, например, для поплавкового
регулятора уровня жидкости или автомата, поддерживающего постоянную
150
температуру в помещении, это сделать нетрудно. Однако в более сложных
случаях распознать робота довольно не просто.
Имея автомат, можно получить ответ на вопрос, робот ли это, с помощью
следующей процедуры.
1. Выявляют рецепторы автомата; определяют, что на них воздействует и
куда и по каким каналам от них поступают сигналы, несущие осведомляю-
щую информацию.
2. Выявляют эффекторы; выясняют, на что они воздействуют и откуда по-
лучают управляющую информацию.
3. Используя часть сведений, полученных при выполнении пп. 1 и 2, выяв-
ляют ближнюю среду.
4, С помощью другой части сведений, полученных при выполнении пп. 1 и
2, выявляют преобразователь информации.
5. Строят кибернетическую схему автомата как системы управления.
6. Анализируя взаимодействие системы управления и ближней среды вы-
ясняют, конформны ли система управления и ее ближняя среда.
Описанную процедуру нельзя считать алгоритмом из-за того, что действия,
выполняемые на каждом этапе, имеют не формальный, а творческий харак-
тер.
Применим для иллюстрации вышеприведенный рецепт к известному нам
из повседневной жизни автомату - автоматической телефонной станции
(АТС). Вряд ли читатель сразу с уверенностью скажет, является ли АТС ро-
ботом или нет.
1. Рецепторами АТС несомненно являются наборные диски всех телефо-
нов и рычаги, на которых лежат телефонные трубки. Действительно, АТС
начинает воспринимать информацию, идущую от наборного диска, только
после того, как трубка будет снята с рычага. Кроме того, стоит только во
время разговора нажать на рычаг, и АТС сразу это ’’почувствует” и разъеди-
нит телефонные линии. Итак, рецепторы найдены и других рецепторов АТС
не имеет. Что же является внешней средой, действующей на рецепторы?
Несомненно - люди. Но не все, а только те, которые находятся так сказать
”у телефона”. Осведомляющая информация по проводам (это канал связи)
направляется на АТС. Но если вдуматься, то можно сказать точнее в де-
шифратор. Дешифратор - это и есть преобразователь информации или во
всяком случае его часть.
2. Теперь поищем эффекторы. Органы воздействия на внешнюю среду у
Al С более разнообразны. Во-первых, к их числу относятся все звонки, уста-
новленные на телефонах. Во-вторых, собственно телефоны временно исполь-
зуются как эффекторы (в то время, когда мы слышим сигналы, идущие
от дешифратора). В-третьих, эффектором является коммутатор. Тут мы об-
наруживаем, что ближней внешней средой для АТС являются не только люди,
151
которые находятся у телефонов, но и то, на что воздействует коммутатор:
линии связи, ведущие от телефонных аппаратов к коммутатору.
3. Сопоставляя пп. 1 и 2, видим, что ближней внешней средой для АТС
являются люди, желающие вести переговоры, телефонные трубки, за кото-
рые они берутся, и линии связи.
4. Преобразователем информации тоже в силу пп. 1 и 2 является дешифра-
тор АТС и, может быть, еще какие-то ее второстепенные части, осуществляю-
щие подачу сигналов. Каналы управляющей информации тоже выяснены.
Временно их роль играют сами телефонные линии, относящиеся и к внешней
среде. Здесь использовано то, что эта компонента внешней среды сама по се-
бе является очень высококачественным каналом связи. Роль каналов связи
АТС телефонные линии играют временно, когда они не используются по
прямому назначению - для переговоров.
5. Строим схему АТС как системы управления. Она приведена на рис. 9.1.
Изолирующий компонент безусловно тоже есть. Телефонные провода надежно
изолированы, сама АТС тоже защищена. Телефонные аппараты тоже распо-
ложены не рядом и не создают помех друг другу.
Рис. 9.1. Схема системы управления, эквивалентная АТС
6. Смотрим, возникает ли в ближней среде обратная связь для АТС.
Безусловно! Наговорившись, каждый кладет трубку на рычаг, т. е. измене-
ние среды, произведенное АТС, вызывает новые воздействия среды на АТС.
Но есть и другое воздействие внешней среды: например, если по телефонам
ведутся переговоры, то никакой другой телефон ни с одним из, этих ’’номе-
ров” не может быть соединен. Состояние всей системы телефонных линий
воспринимается АТС, а это состояние создано ею самой. Обратная связь
налицо. Целевое отношение (возможность переговоров) тоже выполнено.
Итак, система управления и ее ближняя внешняя среда конформны. Теперь
мы знаем, что АТС является роботом. Возникает только вопрос, какое от-
ношение к АТС имеют те разговоры, которые ведутся по телефонным лини-
ям. На этот вопрос ответить нельзя, потому что эти разговоры не относятся
152
к ближней внешней среде. Они могут не иметь никакого отношения к АТС,
но могут и иметь (например, если по телефону обсуждают вопрос о необходи-
мости ремонта АТС).
Разобранный нами пример, безусловно, является трудным. Здесь и слож-
ное расположение и рецепторов и эффекторов в пространстве, и совмещение
элементов робота с элементами внешней среды, правда, не одновременное и
временное.
В качестве еще одного объекта для исследования возьмем ЭВМ. Предпо-
ложим, что ее используют в режиме одиночных решений. Столь несовершен-
ное применение ЭВМ в настоящее время уже не встретишь, но нам оно поз-
волит продемонстрировать очень интересные особенности систем управления.
При режиме одиночных решений каждый пользователь готовит: 1) рабочую
программу, 2) исходную информацию. Все это пробивают на перфокартах и
получают две колоды перфокарт.
Но программу нужно еще ввести в ЭВМ и соответствующим образом раз-
местить в запоминающих устройствах. Для этого составляют еще 0) програм-
му ввода рабочей программы. Ее тоже переносят на перфокарты. Три полу-
ченные колоды складывают в порядке 0, 1, 2, вкладывают в читающее уст-
ройство ЭВМ и на пульте управления набирают число карт программы ввода
и нажимают кнопку ’’пуск”. ЭВМ автоматически вводит программу ввода,
затем, выполняя ее, вводит рабочую программу и сразу начинает ее выпол-
нять, тем самым решая задачу. Исходная информация вводится по мере необ-
ходимости (об этом есть приказы в рабочей программе). Результаты реше-
ния распечатываются печатающим устройством ЭВМ.
ЭВМ несомненно автомат многоразового действия. Проведем ее анализ.
1. Рецепторами ЭВМ являются соответствующие кнопки на пульте управ-
ления и читающее устройство. Действуют на них оператор или пользователь
и колода перфокарт. Информация по каналам связи передается в операцион-
ное устройство ЭВМ.
2. Эффектором ЭВМ является печатающее устройство, выдающее резуль-
таты на бумагу, немедленно поступающую пользователю.
3. Ближняя среда - люди, оснащенные перфокартами с входной информа-
цией или бумагой с результатами.
4. Преобразователь информации — операционное устройство ЭВМ.
5. Строим схему системы управления, эквивалентную ЭВМ. Она приведена
на рис. 9.2. Каналы связи и изолирующие элементы в ЭВМ тоже нетрудно об-
наружить.
6. Но внешней обратной связи не возникает. Система управления и ее
ближняя внешняя среда между собой не конформны. Сомнений нет: ЭВМ не
робот.
При нашем анализе с целью устранения деталей, усложняющих исследова-
153
ние, мы игнорировали наличие в комплекте ЭВМ пультовой пишущей машин-
ки, которая позволяет вводить информацию в ЭВМ (если вручную печатать
ее на машинке) и выдавать ее из ЭВМ (если предусмотреть соответствующие
приказы в программе). Наличие машинки не меняет существа дела.
Рис. 9.2. Эквивалентная схема ЭВМ, работающей
в режиме одиночных решений
Но рассмотрим теперь ту же ЭВМ, введя в нее комплекс программ, с по-
мощью которых ЭВМ будет накоплять, систематизировать и обновлять све-
дения (информацию) и выдавать их в ответ на вопросы. ЭВМ, оснащенная та-
кими программами, называется автоматизированной информационной си-
стемой (АИС). Рецепторы и эффекторы у нее прежние, но преобразователь
информации изменился за счет ввода в ЭВМ коллектива алгоритмов (комп-
лекса программ). Ближняя внешняя среда тоже изменилась. Она состоит из
людей двух категорий (с которыми связаны носители с информацией). Пер-
вая категория - это источники сведений, вторая - пользователи. Источники
подают на вход АИС новые сведения, которые АИС включает в свой храни-
мый в ЭВМ информационный фонд. Пользователи вводят в АИС вопросы и
на выходе получают ответы. Теперь сплошь и рядом возникают диалоги лю-
дей с ЭВМ. От источников АИС может требовать устранения неясностей,
вкравшихся в их сообщения; пользователи, получив ответ, нередко запраши-
вают подробности, уточнения или разъяснения. Появилась внешняя обратная
связь. АИС (т. е. ЭВМ вместе с комплексом программ работы с информаци-
ей) несомненно является роботом.
Приведенные примеры очень поучительны. Они характеризуют трудности,
связанные с распознаванием роботов, и позволяют сделать следующие вы-
воды.
1. Элементы системы управления могут быть очень сложно размещены в
пространстве и во времени.
2. Возможно совмещение элементов системы управления (в смысле их
функций) не только между собой, но и с элементами внешней среды.
3. Преобразователь информации системы управления изменяется, если в
него ввести коллектив алгоритмов, заданный программно.
Интересно заметить, что такие роботы, как АТС и АИС легко объединяются
154
в коллективы, и такие коллективы уже существуют. Так, Московская теле-
фонная сеть и даже Государственная телефонная сеть — это коллектив робо-
тов типа АТС. Распределенная АИС, объединяющая в единый комплекс АИС,
размещенные в разных городах (находится в стадии разработки), - это тоже
коллектив роботов. При этом телефонные линии образуют так называемую
сеть, а коллектив АТС представляет собой иерархическую структуру. Кол-
лектив АИС также характеризуется иерархической структурой.
9.2. РОБОТЫ УЧАТ ЛЮДЕЙ
Сразу скажу: такие роботы уже есть! Но должен разочаровать молодых
родителей: роботов-нянек, роботов-гувернанток, как и роботов-домашних
работниц, еще нет. Для таких дел они еще "умом не вышли". Зато экзамено-
вать студентов, обучать их программированию и даже высшей математике,
пожалуйста. Это роботы могут. Существует шутливое утверждение: "Многие
учат тому, чего сами не знают!"
Возможно, читатель уже догадался, что речь идет об экзаменующих и обу-
чающих автоматах. Такие автоматы обычно для связи с обучаемым имеют
набор кнопок и телевизионный экран. Иногда в качестве обучающего или эк-
заменующего автомата используют ЭВМ, снабженную соответствующим
комплексом программ. Современная ЭВМ обладает достаточной производи-
тельностью для того, чтобы обучать или экзаменовать одновременно целую
группу людей. Для этого ЭВМ оборудуют системой терминалов, каждый из
которых имеет телевизионный экран и клавиатуру для ввода информации.
Экзамен обычно проходит так: на экране высвечивается вопрос и несколь-
ко ответов на него. Экзаменуемый вводит в автомат номер того ответа, ко-
торый считает наиболее правильным. Если в течение некоторого времени от-
вет не введен, равно как и после ввода ответа, вопрос на экране заменяется
новым. В конце опроса (после 10-15 вопросов) на экране высвечивается
оценка (чаще всего среднее арифметическое баллов, которые в ЭВМ постав-
лены в соответствие вопросам).
Обучение идет несколько иначе. На экране высвечиваемся текст (напри-
мер, формулировка теоремы). После того, как обучаемый его поймет и наж-
мет кнопку, появляется следующий текст и т. д. После окончания определен-
ного, обычно небольшого раздела автомат переходит в режим опроса, в ко-
тором в отличие от экзамена выдаются исправления, а иногда предложения
повторного изучения некоторых разделов.
Легко убедиться в том, что обучающий автомат - это робот. Ближней
внешней средой для пего является обучаемый или экзаменуемый человек.
Проверку этого без труда выполнит сам читатель.
155
Хотя обучающие автоматы применяются еще мало, появился ряд учебни-
ков, приспособленных для преподавателей-роботов. Такие учебники называ-
ются программированными.
Хорошо ли обучают роботы людей, зависит от качества используемых при
этом программированньрс учебников.
Обычно при первом знакомстве преподающие роботы вызывают к себе
повышенный интерес, но вскоре их педагогическое мастерство начинает
вызывать скуку. Я считаю, что, по-видимому, методика обучения роботами
еще требует дальнейшей педагогической разработки. Кроме того, я счи-
таю, что сообщать экзаменуемому несколько ответов, среди которых есть
и правильный, — это уже подсказка.
Перспективность самого направления — привлекать роботов для обучения
людей — не вызывает сомнений. Роботы — тренеры, предназначенные для вы-
работки у обучаемого механических навыков (например, при обучении трак-
тористов вождению трактора или шоферов — вождению автомобиля), оказы-
ваются высоко эффективными.
9.3. МНОГО ЛИ РОБОТОВ?
Ответ на вопрос, стоящий в заглавии данного параграфа, зависит от того,
что понимать под словом робот. Мы в этой книге понимаем под этим словом
искусственную систему управления, конформную с ее ближней внешней сре-
дой. Никакого антропоморфизма мы не требуем не только во внешнем виде,
но и в сходстве функций робота и человека. Наличие каких-то функций у
робота, связанных с тем, что он создан людьми для решения их задач, — его
обязательное свойство. Но конкретно сказать, в чем должны состоять эти
функции, нельзя, да и не нужно. Функции эти появляются в процессе научно-
го и технического прогресса и предугадать их можно лишь для ближайшего
будущего. Возможность выполнять свои функции у робота обусловлена на-
личием внешней обратной связи, это его отличительная черта, имеющая не
количественный, а качественный характер. Большее или меньшее число
функций - обстоятельство, не имеющее принципиального значения при ре-
шении вопроса ’’робот — не робот?”. Вот при классификации роботов это мо-
жет иметь значение.
Часто к числу роботов относят любые сложные многоцелевые автоматы и
даже механизмы с программным управлением, но без рецепторов. При этом
безрецепторные устройства (например, токарные станки с программным
управлением) относят к первому поколению роботов. Для нас — это не ро-
боты. Ко второму поколению относят ’’очувствленные” (т. е. имеющие ре-
цепторы) системы управления. Из этих систем управления некоторые явля-
156
ются роботами (конформные своей ближней среде). К третьему поколению
относят роботы с элементами искусственного интеллекта. Я привожу эти све-
дения только потому, что читатель может с ними встретиться в статьях или в
технической литературе и должен правильно понимать.
Многие механизмы, из носящих в настоящее время название ’’промышлен-
ных роботов”, принадлежат именно к числу таких ’’роботов” первого поко-
ления и, значит, увы, не являются роботами. Правда, ’’очувствленные” систе-
мы управления, применяемые в промышленности, практически являются
роботами, потому что их ’’очувствленность” разработчиками предназначена
для обеспечения ’’адаптивного поведения”,т. е. для обеспечения внешней об-
ратной связи. Но таких ’’очувствленных роботов” сравнительно мало, а ин-
теллектуальные существуют пока что только как отдельные образцы.
Получается, что мы с вами, читатель, разжаловали из роботов многие ме-
ханизмы, но зато многие системы управления мы произвели в роботы и сре-
ди них есть даже обладающие элементами искусственного интеллекта, вроде,
например, АИС, среди которых есть воспринимающие информацию на огра-
ниченном естественном языке. Мы с вами, читатель, просто навели порядок:
изгнали нахалов, примазавшихся к племени роботов, и восстановили в пра-
вах скромников, которых именно цз-за их скромности никто не замечал. И
несмотря на произведенную нами пертурбацию, можно утверждать, что ро-
ботов десятки тысяч. Мы в обыденной жизни встречаемся с ними на каждом
шагу.
9.4. ПРОБЛЕМА ИНОПЛАНЕТЯН. МЫШЛЕНИЕ РОБОТОВ
Как-то после окончания одного из научных семинаров, когда все устали и
каждому хотелось отвлечься, зашел один из неофициальных полунаучных
разговоров, самых интересных из тех, которые иногда ведут ученые. Был
затронут вопрос о том, смогли бы или нет инопланетяне, наблюдая издали за
нашей планетой, определить, какие из движущихся предметов являются жи-
выми существами, а какие — машинами. Кто-то высказал мысль, что по всем
признакам автомобили были бы признаны живыми существами. Они питают-
ся (бензином), в них происходит обмен веществ (сгорание бензина в двига-
телях и замена износившихся деталей новыми), они размножаются (на заво-
дах, подобно тому, как люди в родильных домах). Они организованно снуют
по улицам, и люди, которые им, по-видимому, подчиняются, уступают им до-
рогу. И тут ныне покойный профессор А. А. Ляпунов рассказал коротенькую
историю.
’’Представьте себе, - сказал он, - что Землю посетил инопланетный кос-
мический корабль и на нем находились космонавты. Завязались сношения,
157
началось взаимное изучение, обмен научной информацией. Потом иноплане-
тяне покинули землю и через некоторое время прибыл новый космический
корабль с той же планеты. Сразу было видно, что новая экспедиция знакома
с материалами предыдущей. Но чем-то новые космонавты отличались от пре-
дыдущих. И вот однажды они рассказали, что, не зная, пригодны ли для их
жизни условия на земле, они в прошлый раз присылали роботов. После это-
го у наших ученых сразу же возник вопрос: кем же являются новые космо-
навты? Живыми существами или роботами?”
Кто-то спросил: а можно ли вообще вступить в контакт с инопланетяна-
ми? Ведь они могут и не быть сколько-нибудь похожи на людей, и средства
обмена информацией у них могут быть не такие, как у нас. Например, вместо
звуковой речи у них может быть какая-нибудь ультрафиолетовая сигнализа-
ция или, хуже того, сигнализация с помощью гравитационных волн, которых
мы не воспринимаем своими органами чувств и о существовании которых
еще ничего не знаем.
Задумаемся и мы об этом, привлекая на помощь наши знания из области
кибернетики и теории роботов.
При вступлении в контакт с мыслящими существами нужно наладить об-
мен информацией с ними; а мы знаем, что информация как форма связи су-
ществует только в системах управления. Для того чтобы общаться, нужно
создать систему управления, объединяющую коллектив инопланетян и кол-
лектив жителей земли. Эквивалентная схема такой системы управления
приведена на рис. 9.3, но такая система управления возникает не сразу, а на
втором этапе, когда между двумя цивилизациями уже установлен контакт
и уже происходит общение. Эта система управления имеет структуру очень
сложную. Ее элементами являются земляне (члены контактной группы) и
инопланетные пришельцы (члены экспедиции). И те и другие оснащены
соответствующими техническими средствами, о которых я умышленно не
говорю, гак как их состав зависит от конкретных условий, которые мне
неизвестны. Ближней внешней средой являются две цивилизации: челове-
ческое и инопланетное общества (если допустить, что инопланетная циви-
лизация, подобно земной, является системой индивидуумов, что заранее
не известно).
На первом же этапе, когда два коллектива только узнают друг друга, кар-
тина иная (рис. 9.4). Имеются две системы управления, каждая из которых
стала ближней внешней средой для другой и каждая из которых изучает дру-
гую. Когда и как происходит слияние двух систем управления в одну, это
проблема в настоящее время не исследованная.
Рассмотрев кибернетическую сущность общения двух цивилизаций, мы
легко поймем, сколь сложна эта проблема, не говоря уже о чисто техничес-
ких трудностях, которые были упомянуты вначале.
158
Рецептор
Иноплане-
тяне
Земляне
Эффектор
Штаб
космонавтов
Преобразова-
тель
информации
Эффектор
Иноплане-
тяне
7ЛГ
Преобраэова-
толь *-
информации
Штаб
контактной группы
Земляне
Рецептор
Рис. 9.3. Схема системы управления при Рис. 9.4. Схема первого кон-
контакте с инопланетянами такта двух систем управле-
ния; каждая из них являет-
ся ближней внешней средой
для других
На сколько же более сложной является проблема установления связи с
инопланетной цивилизацией, если эта цивилизация и мы друг о друге ни-
чего не знаем и не можем исследовать друг друга! Какие-то излучения, при-
ходящие с расстояния, измеряемого сотнями световых лет, некоторые фан-
тасты от науки принимают за сигналы и отвечают на них отправлением в
космос сигналов, которые будут восприняты (если вообще будут восприня-
ты) через сотни лет. При этом всерьез обсуждается вопрос о том, каким ко-
дом и какие земные сведения нужно передавать для того, чтобы мыслящие
инопланетяне догадались, что это сигналы и что отправлены они мыслящими
существами. Например, рекомендуют передавать (и притом многократно!)
короткие коды, означающие что-то вроде (2 2 = 4), (2 2 = 4), , или
(З2 + 42 = 52), (З2 + 42 = 52),... Однако, во-первых, известно, что, чем ко-
роче текст на неизвестном коде, тем его труднее расшифровать, во-вторых,
еще вопрос, мыслят ли инопланетяне такими категориями, как целые числа,
в-третьих, надеются ли они вообще получить сигналы, в-четвертых, существу-
ют ли они на таком расстоянии от нас, на которое можно нашими средствами
передать радиосигналы и т. д. Я смотрю на эти затеи пессимистически.
Поднятые нами вначале вопросы близко соприкасаются с проблемой
мышления роботов. Ведь началось все с истории о том, как под видом ино-
планетян на землю прибыла экспедиция инопланетных роботов (мы-то по-
сылаем своих роботов на Луну, на Венеру, на Марс; почему бы и к нам не
могли быть засланы роботы?), и наши ученые приняли их за мыслящие су-
щества. Возможно ли это, если не сегодня, то в будущем (я говорю не о за-
сылке роботов, а о создании роботов, которые мыслят)9 Этот вопрос, давно
интересующий ученых, подвергался исследованию и получил, в обшем-то,
благоприятные ответы.
Точка зрения на мышление, как на свойство, присущее только людям,
предпологает зарание отрицательный ответ на вопрос о возможности мыш-
ления у роботов. Они ведь не люди. Но на чем основывается такая точка
зрения? Известный ученый М. Тьюринг говорит, что она происходит от тези-
са, что мышление — это свойство бессмертной души, которая бывает только
у людей. Но мне приходилось слышать и другое обоснование этой точки зре-
ния. Ссылаясь на Ф. Энгельса, говорят, что мышление — это высшая форма
движения материи, происходящая в человеческом мозгу. Робот — не человек,
значит, в его устройствах эта высшая форма движения происходить не мо-
жет. Но в том-то и дело, что хотя высшая форма движения происходит в че-
ловеческом мозгу, но это не значит, что нигде больше она происходить не
может. Такого Энгельс не утверждает.
Лично я не вижу никакого основания считать мышление привилегией че-
ловека, тем более, что среди людей имеются индивидуумы, которые безус-
ловно не обладают способностью мышления (например, идиоты), т. е. явно
лишены этой ’’привилегии”.
Нельзя не согласиться с мнением, что ответ на вопрос о возможности
мышления существенно зависит от того, что понимать под словом ’’мышле-
ние”. Однако такие определения мышления, как ’’способность правильно от-
ражать объективную действительность”, слишком туманны для того, чтобы
пытаться на их основе доказать возможность или, тем паче, невозможность
мышления роботов. К тому же при мышлении происходит правильное от-
ражение объективной действительности, но это же происходит и в роботах,
например, поддерживающих постоянную температуру, хотя такие роботы яв-
но не являются мыслящими.
В своей книге ’’Может ли машина мыслить?” [17] М. Тьюринг обходит
этот вопрос, считая его слишком трудным. Вместо этого он предлагает срав-
нивать машину с человеком, в отношении которого не вызывает сомнения
наличие способности мыслить. В качестве критерия, по которому произво-
дится сравнение, он предлагает применить частоту положительных исходов в
некоторой игре.
Игра Тьюринга заключается в следующем. В ней участвуют трое: отгад-
чик, плохой и хороший. Отгадчик задает вопросы и по ответам должен уга-
дать, первый или второй из его оппонентов является плохим. Ему известны
лишь номера оппонентов, присвоенные им по жребию. Плохой своими отве-
тами старается ввести отгадчика в заблуждение, а хороший — ему помочь.
Игроки друг от друга изолированы и между собой незнакомы. Предполага-
ется, что они играют добросовестно. Для сравнения сперва игру проводят с
участием людей, вычисляют частоту правильных отгадываний, потом, не ин-
формируя отгадчика и хорошего, заменяют плохого машиной и снова опре-
деляют частоту правильных отгадываний. Если частота не изменилась или по-
низилась делают вывод, что машина обладает способностью мыслить.
Точка зрения Тьюринга была подвергнута критике американскими учены-
ми К. Шенноном и Дж. Маккарти, которые считали ее недостатком то, что в
160
ней не делается различия между операционным способом получения маши-
ной ответов и (возможном при большом объеме запоминающих устройств)
способе получения ответов по заранее заготовленной таблице-справочнику.
Дескать, есть различие между решением задачи путем ’’размышления” и вы-
бором из таблицы готового ответа.
Советские ученые Д. А. Поспелов и В. Н. Пушкин [14] присоединяются к
этой критике, исходя из того, что одинаковое внешнее поведение еще не
означает тождественности структуры внутренних процессов, обуславливаю-
щих это поведение.
Мы с вами, читатель, не будем спешить и сразу высказывать свое мнение,
но все же возразим этим критикам. Первым двум я позволю себе сказать,
что в некоторых случаях поиск ответа в справочнике сложнее решения пу-
тем ’’размышлений”, да и предварительное составление справочника тоже
нелегкое дело. Практика говорит, что необходима комбинация операцион-
ного и табличного способов и именно такая, которая делает решение задачи
более простым. Но к этому мы еще вернемся. Что же касается вторых двух
критиков, то их подход связан с тем, что они заняты именно анализом чело-
веческого мышления, а не мышления вообще. Нельзя требовать, чтобы
структура процессов в живой и чрезвычайно сложной системе управления
была та же, что и в искусственной. И, конечно, встретив инопланетянина, мы
не сможем вскрыть его ’’мозг”, чтобы решить вопрос о том, мыслит он или
нет. Нам придется судить об этом по его поведению.
Попробуем, если не определить, что такое мышление, то определить неко-
торые его компоненты. Можно ли считать, что человек является мыслящим,
если он не способен ни к какому выводу следствий из посылок? Я думаю,
что способность производить логический вывод является необходимым атри-
бутом мышления. Мы знаем, что существуют программы, выполняя кото-
рые, ЭВМ производят вывод всевозможных теорем из аксиом или следствий
из посылок. Значит, в принципе, и робот может обладать ’’способностью” ло-
гического вывода.
Определенный интерес для нас представляет мнение юристов о способно-
сти мышления. У них эта способность приобретает вид так называемой вме-
няемости. Человек называется вменяемым, если он способен сознавать зна-
чение своих поступков и руководить ими. Под значением поступков юристы
понимают их оценку в смысле соответствия законам. Это, конечно, сугубо
профессиональный подход к проблеме, но кое-что из него можно извлечь и
для своих целей. Для того чтобы сознавать значение поступков, человек, во-
первых, должен знать некоторое число законов, хотя бы в самом общем ви-
де, а для этого необходимо иметь в памяти определенное количество сведе-
ний и уметь их извлекать из памяти. Значит, нужна память и средства доступа
к ней. Но кроме того нужно сознавать свои поступки и видеть их результаты.
161
Нужно в памяти иметь модель среды и свою собственную модель. Мы знаем,
что все эти компоненты мышления возможны у роботов соответствующей
сложности.
Наконец, необходимо уметь решать некоторые задачи для конкретных
условий. Именно этого и требует М. Тьюринг от машины, правда, в несколь-
ко своеобразной форме: он требует, чтобы машина была способна вводить в
заблуждение не хуже, чем человек. Я считаю, что задача выбрана Тьюрингом
несколько произвольно, можно мыслить и не умея быть ловким обманщи-
ком, но, во всяком случае, Тьюринг заметил одну из существенных компо-
нент мышления: умение решать задачи, требующие при наиболее примитив-
ном подходе выполнения большого перебора вариантов и их оценки.
Наличие всех перечисленных компонентов безусловно необходимо для
того, чтобы можно было утверждать, что способность мышления в наличии.
Но достаточно ли этих компонентов, еще трудно сказать. Можно добавить,
пожалуй, еще требование, чтобы все решения принимались системой (робо-
том) в реальном масштабе времени, т. е. чтобы реакция робота соответство-
вала состоянию внешней среды, а не отставала от нее. Но это имеет место
всегда, когда система управления и робот конформны, т. е. это входит в
определение понятия робота.
Итак, анализируя понятие мышления, мы не нашли никаких оснований
утверждать, что мышление роботов в принципе невозможно.
9.5. ПРЕДСТАВЛЯЮТ ЛИ РОБОТЫ ОПАСНОСТЬ ДЛЯ ЧЕЛОВЕЧЕСТВА?
Вопрос об опасности роботов имеет два аспекта. Первый аспект возник в
среде литераторов. Фантасты стали писать рассказы, в которых (по-видимо-
му, в XXIII в.) повествуется, что роботы ’’были” настолько усовершенство-
ваны, что ’’стали” мыслящими, самовоспроизводящимися и даже самосо-
вершенствующимися. Я ставлю глаголы в кавычки, потому что о будущем
повествуется в прошлом времени. И вот, наконец, роботы ’’вышли” из по-
виновения людям, которые к тому моменту уже во многом ’’уступали” ро-
ботам. ’’Железное” мышление роботов привело их к выводу, что люди им
вовсе не нужны. И вот, они людей просто ’’устранили”.
Ситуация, конечно, волнующая. Люди в таких рассказах похожи на де-
тей, которые играют со спичками и становятся виновниками пожара, уже им
не подвластного.
О бунте роботов уже писал в своем романе ’’R.U.R” Карел Чапек. Но его
роботы были выдумкой, а теперь речь идет о действительно существующих
роботах! Возможен ли бунт роботов?
Я думаю, такой опасности нет. И не только потому, что мы не дети и не
162
будем играть с огнем, но и потому, что наука и техника являются функциями
не отдельных людей, а всего человечества. И роботы составят лишь незначи-
тельную часть научного и технического потенциала человечества и будут в
нем занимать определенное место.
Второй аспект вопроса об опасности роботов относится к возможности
использования их одним коллективом людей (государством) против других.
Если смотреть правде в глаза, то ведь многие из уже созданных так называе-
мых средств доставки ядерного оружия (ракет) являются роботами и даже
обладающими элементами искусственного интеллекта. Но в этом аспекте
опасность роботов — это опасность некоторых групп людей для других. Это
не проблема робототехники, и других средств для ее разумного решения,
кроме борьбы за мир и одновременного соблюдения мер по укреплению
своей обороноспособности, я не вижу.
9.6. ПЕРСПЕКТИВЫ. ПОСЛЕДНИЕ ЗАМЕЧАНИЯ
В настоящее время серьезные трудности связаны с такими проблемами,
как изготовление надежных и удовлетворяющих условиям использования ро-
ботов датчиков информации (рецепторов), достаточно прочных эффекто-
ров, достаточно быстродействующих и имеющих малые габариты преобразо-
вателей информации. Не мало усилий требуют и изолирующие материалы,
потому что многие роботы должны действовать в такой среде, в которой пре-
бывать люди не могут. Неменьшие трудности представляет и проблема раз-
работки и аппаратно-программной реализации коллективов алгоритмов.
Словом, трудностей много. Но и роботов уже много и с каждым днем стано-
вится все больше.
Эра роботов уже началась и развитие этой области техники будет с каж-
дым годом идти все большими темпами. И нет сомнения в том, что и в об-
ласти умственного труда роботы получат широкое применение. Как говорят
человек, думающий ’’босыми мозгами”, будет представлять такой же цирко-
вой или спортивный номер, как и атлет, поднимающий с помощью своих
мускулов штангу. И это безусловно так, потому что автомат, не являющийся
роботом, как средство, помогающее умственному труду, уже стал вчерашним
днем оргтехники (например, электронные микрокалькуляторы).
Если вы, уважаемый читатель, дошли до этих строк, то я считаю, что не зря
трудился. Надеюсь, что мне удалось заинтересовать вас проблемами робототех-
ники, вернее проблемой преобразователей информации и ее основой - тео-
рией алгоритмов.
Теория алгоритмов уже существенно разработана и позволяет не только
сознательно и обоснованно подойти к вопросу разработки преобразователей
163
информации, но и увидеть связанные с этим трудности. Существование алго-
ритмически неразрешимых проблем говорит, что есть проблемы, неразре-
шимые управляющими устройствами роботов. Но это проблемы такого ха-
рактера, как умение единым методом решить любую задачу, которая когда-
либо может возникнуть, или проблемы, которые внутренне противоречивы
(вроде, например, проблемы составления каталога всех несамоназывающих-
ся и только несамоназывающихся каталогов). Или проблемы, неразреши-
мость которых устраняется путем незначительного изменения постановки.
Являясь математической дисциплиной, теория алгоритмов делает мате-
матической дисциплиной и теорию алгоритмического проектирования робо-
тов и их преобразователей информации. Конечно, речь идет о дискретных ро-
ботах. Замышляя данную книгу, я хотел ее назвать ”От слова до дела — шаг”,
понимая под словом — алгоритм, а под делом — робота. Потом я отказался
от такого заголовка, увидев, что шаг этот довольно-таки длинный.
СПИСОК ЛИТЕРАТУРЫ
1. Винер Н. Кибернетика. - М.: Сов. радио, 1958. - 216 с.
2. Гаазе-Рапопорт М. Г. Автоматы и живые организмы. - М.: Физматгиз, 1961. - 224 с.
3. Глушков В. М. Введение в кибернетику. - Киев: Изд. АН УССР, 1964. - 324 с.
4. Залманзон Л. А. Беседы об автоматике и кибернетике. - М.: Наука, 1981. - 414 с.
5. Кобринский А. Е. Вот они роботы. - М.: Наука, 1972. - 389 с.
6. Косса П. Кибернетика. - М.: ИЛ, 1958. - 122 с.
7. Кринецкий И. И. Автомат принимает решение. - М.: Машиностроение, 1977. - 250 с.
8. Криницкий Н. А. Алгоритмы вокруг нас. - М.: Наука, 1977. - 224 с.
9. Криницкий Н. А. Понятие коллектива алгоритмов и некоторые его приложения. -
Программирование, 1977, № 3, с. 3-9.
10. Марков А. А. Теория алгоритмов. Труды института им. Стеклова, т. Х1Л. - М.:
АН СССР, 1954. - 376 с.
11. Научные проблемы робототехники. - М.: Наука, 1980. - 102 с.
12. Нейман Дж. фон. Теория самовоспроизводящихся автоматов. - М.: Мир, 1971. -
384 с.
13. Полетаев И. А. Сигнал. - М.: Сов. радио, 1958. - 404 с.
14. Поспелов Д. А., Пушкин В. Н. Мышление и автоматы. - М.: Сов. радио, 1972. - 224 с
15. Программированное обучение и кибернетические обучающие машины: Сб. статей/Под
ред. А. И. Шестакова. - М.: Сов. радио, 1963. - 248 с.
16. Тимофеев А. В. Роботы и искусственный интеллект. - М.: Наука, 1978. - 192 с.
17. Тьюринг А. Может ли машина мыслить? - М.: Физматгиз, 1960. - 112 с.
18. Энциклопедия кибернетики в 2-х т. - Киев: Главная редакция УСЭ, 1974. - Т.2,
с. 298-301.
19. Криницкий В. Н., Криницкий Н. А. Анализ коллективов алгоритмов. - Программи-
рование, 1982, №2, с. 3 - 17.
ОГЛАВЛЕНИЕ
Стр.
Предисловие . 3
Глава 1. Что такое робот? . . 5
1.1. Приспособления, усиливающие функции внешних органов человека. . 6
1.2. Автоматы . 8
1.3. Внешняя обратная связь . 10
1.4. Информация. Канал связи . 11
1.5. Преобразование информации и ее запоминание 13
1.6. Кибернетический подход. Системы управления . 15
1.7. Роботы. 17
1.8. Важные ’’тонкости” 19
1.9. Дискретные роботы. Целевое отношение . 21
Глава 2. Символьные конструкции 24
2.1. Буквы, связи, оболочки 25
2.2. Точное определение символьной конструкции. 30
2.3. Алфавиты. Классы символьных конструкций . 34
2.4. Связи и отношения 36
2.5. Операции над символьными конструкциями. 37
2.6. Линеаризация и делинеаризация 42
2.7. Глобальные и локальные операции. . 48
Глава 3. Формальные языки 49
3.1. Коротко о естественных языках . . 49
3.2. Применяемая далее терминология . .53
3.3. Что такое формальные языки? . 53
3.4. Формальные грамматики. 56
Глава 4. Алгоритмы 60
4.1. Относительный характер понятия точности. 60
4.2. Точное описание процессов 61
4.3. Первичные алгоритмы 62
4.4. Натуральные алгоритмы. Порождение первичных алгоритмов. . 64
4.5. Широкое формальное определение алгоритма . . 68
4.6. Терминология и правила записи 69
4.7. Операторные алгоритмы . 71
4.8. Схемы алгоритмов....................................................75
166
Глава 5. Коллективы алгоритмов 77
5.1. Несколько алгоритмов и один операнд . 77
5.2. Регулирующие предикаты 80
5.3. Понятие коллектива алгоритмов. 84
5.4. Важные возможности коллективов алгоритмов. 86
5.5. Открытые коллективы. Иерархия 92
Глава 6. "Способности” роботов. 96
6.1. Алгоритмически неразрешимые проблемы. 96
6.2. Память; обучение 102
6.3. Самообучение. 104
6.4. Собственная модель. Модель среды 105
6.5. Автоматический синтез алгоритмов 109
6.6. ’'Общение” с человеком и другим роботом 110
6.7. Пассивное внимание. 112
6.8. Опенка ‘’поведения”. 113
6.9. ’’Ьолезни” роботов 115
Глава 7. Структура преобразователя информации . 116
7.1. Процессоры и их типы 116
7.2. Архитектура робота. 120
7.3. Системный принцип . 123
7.4. Апелляция к ЭВМ 124
7.5. Математическое обеспечение робота . 134
7.6. Коротко о программировании математического обеспечения 136
Глава 8. Коллективы роботов 139
8.1. Что такое коллектив роботов? 139
8.2. Классификация коллективов роботов. 142
8.3. Коллективы автономных роботов . 146
8.4. Линейно-последовательные коллективы роботов. 146
8.5. Иерархические коллективы роботов. 147
8.6. Возможности коллективов роботов . 149
Глава 9. Коротко о многом (заключение). 150
9.1. Что есть что? 150
9.2. Роботы учат людей. 155
9.3. Много ли роботов?. 156
9.4. Проблема инопланетян. Мышление роботов . 157
9.5. Представляют ли роботы опасность для человечества?. 162
9.6. Перспективы. Последние задачи 163
Список литературы. 165
167
Николай Андреевич Криницкий
Алгоритмы и роботы
Редактор Н. Г. Д а в ы д о в а
Художественный редактор Л. Н. Сильянов
Технический редактор А. Н. Золотарева
Корректор Л. А. Б уданцева
ИБ№527
Подписано в печать 14.04.83 г. Т-07778 Формат 60x84/16 Бумага TVn. № 2 Гарнитура
’’Пресс-роман” Печать офсетная У с л. печ. л. 9,765 У сл. кр.-отт. 10,346 Уч.-изд. л. 11,0
Тираж 50 000 экз. Изд. № 19766. Зак. № 1586 Цена 55 к.
Издательство ’’Радио и связь”. 101000, Москва, Главпочтамт, а/я 693
Московская типография № 4 Сою зполиграфпр ом а при Государственном комитете СССР
по делам издательств, полиграфии и книжной торговли. 129041, Москва, Б. Переяс-
лавская ул., д. 46
В серии «КИБЕРНЕТИКА»
в 1983 г. выйдет в свет книга:
ГёльднерК. Кибернетика и ее будущее
Книги серии «КИБЕРНЕТИКА»
Вы сможете приобрести в магазинах,
распространяющих литературу
по данной тематике.
«РАДИО И СВЯЗЬ»