ЛЮБОЗАР вырастил дерево целей для задачи "Обезьяна и бананы", точно такое же, какое САИНТ порождала для задач интегрирования. И отсек лишние ветви на этом дереве, превратил пышное ветвеобильное дерево в бамбук - прямолинейный коленчатый ствол, ведущий к успеху.
ЛЮБОЗАР вырастил бамбук для обезьяны. Надо сказать, что обезьяна и бананы входят в знаменитую задачу лишь для шутки. Речь вовсе не о них, а о роботе и кирпичах. Представьте себе вместо обезьяны тележку-робот, а вместо бананов - кирпич, который лежит на высокой платформе. В помещении есть еще наклонная плоскость, как в клетке обезьяны был ящик.
Цель робота - столкнуть кирпич с платформы на пол, но он не может добиться цели из-за того, что платформа выше тележки-робота. Если подтолкнуть наклонную плоскость к платформе и въехать на платформу, тогда... В общем, перед нами переработанная задача "Обезьяна и бананы".
ЛЮБОЗАР наверняка решит эту задачу и многие другие ей подобные. ЛЮБОЗАР сможет руководить роботом, переходящим из помещения в помещение, складывающим различные детали, роботом-сборщиком, причем он сам составит последовательность сборки нового изделия, как составлял другие последовательности действий. ЛЮБОЗАР в роли робота в цехе, на стройке, в шахте, под водой, даже на других планетах. Дух захватывает от этой перспективы!
Перед моим мысленным взором уже несколько лет, не забываясь и не тускнея, проходят кадры кинофильма, совсем не художественного и даже не профессионально сделанного документального фильма, а короткой любительской ленты, снятой сотрудниками Института прикладной математики.
По экрану шагало насекомое, состоящее из бруска-тела, шарика-головки и шести ног. Каждая его нога представляла собой две палочки, связанные точкой-суставом. Рисованное насекомое аккуратно двигалось к цели, преодолевая возвышенности и провалы, обходя болота и пропасти, тоже нарисованные на экране. "Что же тут удивительного? - спросите вы. - Примитивный мульти-пликат, не более".
О нет! Это лишь внешне похоже на мультипликат, а внутренне... Насекомое на экране рисует ЭВМ, в которую заложено описание различных местностей и алгоритм действия многоногого транспортного механизма. Там, в недрах компьютера, механизм двигается по местности, попадает в затруднительные положения, находит выходы из них, там воспроизводится (моделируется) живая жизнь. А здесь появляются результаты расчетов, только оформлены они по-новому - не в виде столбцов цифр, а в виде подвижных картин на экране дисплея. Зачем такое оформление? Для внешнего эффекта?
Вовсе нет. Картины на дисплее нужны для диалога конструктора с ЭВМ. Конструктор по своей воле усложняет обстановку, создает критические условия. Он может нагрузить аппарат, а может пустить его шагать налегке. Он вправе даже изменить походку аппарата, сделать ее симметричной или асимметричной, велеть двигаться "след в след" или "трешками".
Наблюдая за движениями аппарата, человек выявляет слабости и ограничения в алгоритме его действия. Вот аппарат недопустимо накренился, а вот ноги его застряли в расселине. Стоп! Отметим, в какой обстановке это случилось, и пойдем дальше. Загоним теперь его в болото...
С помощью ЭВМ, в диалоге с компьютером, конструктор проводит испытания еще не изготовленного робота! Этим удивил, даже потряс меня давний фильм.
Исследования шагающих транспортных механизмов возглавляет член-корреспондент АН СССР Дмитрий Евгеньевич Охоцимский. В изящной постановке задачи, в мастерском использовании диалога человека с ЭВМ виден его стиль научного мышления. Сегодня работы далеко продвинулись вперед - робот из рисованного стал реальным, его проверяют на натуре. Придет время, и он будет уверенно шагать по пересеченной местности Марса или Юпитера, неся на борту вычислительную машину, в которую заложено семейство алгоритмов его движения.
Ходить - казалось бы, простая, совсем тривиальная работа; знай шевели конечностями. Исследования Д. Охоцимского и его сотрудников выявили, что такое мнение глубоко ошибочно. Хороший алгоритм ходьбы состоит в управлении каждой конечностью, в координации действия ног, в оценке места для постановки каждой ноги, в выборе походки и в прокладке общей трассы движения. Все это сложные интеллектуальные операции; правда, мы, люди, совершаем их автоматически, не осознавая своих действий.
Чтобы установить подлинную сложность задачи ходьбы, лучше всего написать алгоритмы движения, превратить их в машинные программы и проверить в деле. Здесь Искинт, решая собственные проблемы, одновременно помогает физиологии и психологии - ситуация, с которой мы еще не раз встретимся в этой книге.
Пока же возьмем на заметку: робот научен разумно ходить, ЛЮБОЗАР может приказывать ему, куда идти и что брать, робот добросовестно выполнит приказание. Вообще последнее десятилетие ознаменовалось быстрым развитием роботехники. Роботы могут и должны выполнить в нашем обществе важнейшую социальную функцию: освободить людей от труда под землей, в заболоченных местностях, на производствах, где условия вредны для здоровья человека или опасны для его жизни. XXV съезд КПСС нацелил советских ученых на решение этой проблемы, и она успешно решается.
У роботов есть и другая благородная задача - освободить людей от монотонной, изнуряющей работы на конвейерах массовых производств. Они станут сборщиками автомобилей и телевизоров, тракторов и холодильников, самолетов и часов. Мне кажется, без ЛЮБОЗАРа здесь не обойтись; он достоин своего имени: он многогранный, разноплановый, многоцелевой решатель. Нет, он не однодум!
Есть давняя мечта у ученых: найти в хитросплетениях человеческой мысли основные ее принципы; ученым хочется верить, что принципов не так много и что каждый из них "на все мысли мастер". ЛЮБОЗАР - вклад нашего времени в исполнение этой мечты.
Четыре метода держат ЛЮБОЗАР на плаву. Методы тщательно отобраны; чтобы решать многие задачи, необходимо и достаточно этих четырех приемов - таков главный вывод, полученный в результате испытаний ЛЮБОЗАРа. Он оказал серьезное влияние на создателей многих программ Искинта; признают ли они этот факт, или скрывают, но в их программах видна родственная близость к ЛЮБОЗАРу. Специалисты называют ЛЮБОЗАР мощной, изощренной, уникальной программой.
Все это справедливо, но прежде всего ЛЮБОЗАР - смелая программа. Какой отвагой надо обладать, чтобы броситься в безбрежный океан задач на плоту из четырех эвристик!
Четыре крепкие эвристики преодолевают различия, иногда быстро, а чаще ценой труда и времени. Чтобы вручить обезьяне банан, ЛЮБОЗАР трудился 4 минуты, взять несложный интеграл удалось ему лишь через 3 минуты.
ЛЮБОЗАР не однодум, он тугодум.
Изобретателям программы не удалось приблизиться к человеческому мышлению по времени решения задач - явный признак того, что ЛЮБОЗАР еще не ключ к нашему мозгу.
Нет, не ключ, ибо некоторые посильные для человека задачи ЛЮБОЗАР решить не способен. Он был бы всемогущ, если б любое решение складывалось наподобие детского домика из деревянных деталей.
Архитектор детских домиков уверен в прочности своих деталей. Ему никогда не придет в голову, что установка ступенек способна изменить форму трубы, свернув ее калачом, или что монтаж крыши вызовет самопроизвольное размножение окон и гибель крылечек. Такое невероятно, детали домика независимы друг от друга, мир домостроения основан на сложении или вычитании его "кубиков"; это, говоря языком математики, аддитивный мир.
ЛЮБОЗАР - царь аддитивных миров. Он отступает перед неаддитивностью.
Стрелочник направил встречные поезда по одной колее, поезда стремительно сближаются, сталкиваются, складываются. Достигнут, казалось бы, идеал аддитивности, но вместо нового гармонического сооружения - сверхпоезда, населенного сверхлюдьми, - мы видим развалины, мы слышим стоны жертв, и пожар пожирает обломки тепловозов.
Поезда, столь аддитивные, когда их собирают из отдельных вагонов на станции отправления, трагически неаддитивны, когда их заставляют сталкиваться друг с другом. Поезд ЛЮБОЗАРа - это собранная им последовательность решения задачи, вагоны ЛЮБОЗАРа - его отдельные действия. Побочные эффекты - его главные враги.
Побочный эффект от некоторого действия меняет ситуацию настолько, что следующее действие, обычно подходящее, становится бесполезным, а то и вредным. Вы, положим, приняли лекарство от простуды, насморк и кашель быстро исчезли, и можно было бы направиться на работу. Но от лекарств сильно стало болеть сердце, идти на работу не только бессмысленно, а даже опасно. Побочный эффект свел на нет положительное действие лекарства, усугубил болезнь. Если говорить языком ЛЮБОЗАРа - число различий не уменьшилось, а выросло, условия применимости операторов нарушились, программа увязла в болоте неаддитивности.