Роботи та їх самовідтворення
Магістральна лінія розвитку промисловості, як відомо,— автоматизація. В ідеалі, міркуючи чисто теоретично, промисловість повинна стати настільки автоматизованою, що буде сама себе відтворювати. Можна сказати, що інженери, що працюють в області автоматизації технологічних процесів, тільки тим і займаються, що збільшують ступінь самовідтворення промисловості.
На малюнку показаний напрямок, в якому йде їх діяльність. Велосипед можна виготовити вручну (а), а можна побудувати автомат, який потім стане робити велосипеди (б). Але це не кінець ланцюга. Якщо цей же автомат вдасться змусити виконувати частину технологічних операцій по виготовленню таких автоматів,— це буде неповне самовідтворення (в), і — тепер вже ми прийшли до кінця — в ідеалі конструктор повинен придумати повністю самовідтворювальні автомати, здатні будувати у міру потреби собі подібні, щоб велосипеди безперервно сходили з конвеєра без втручання людей (г).
Сьогоднішній рівень — рівень (в), неповне самовідтворення. Ланцюжки зворотного зв’язку, правда, дуже довгі. Наприклад, трубопрокатний стан дає труби, які використовуються для виготовлення кілець, що йдуть в шарикопідшипники — обов’язкову частину металорізальних верстатів, які роблять, в свою чергу, деталі для трубопрокатного стану. Коло, нарешті, замкнулося – стан бере участь у виготовленні стану.
Поява комп’ютерів дозволила перейти до безпосереднього «машинного» управління верстатами. Ось тоді-то і з’явилася можливість створити самовідтворювальний автомат: якщо керований машиною робот може загвинчувати гайки, то він може їх і загвинчувати при виготовленні таких же роботів. Ланцюжок зворотного зв’язку скоротився майже до нуля.
Але навіщо? Звичайно, був інтерес і чисто науковий. Однак практичне використання роботів, які роблять собі подібних, визначається тільки економічною доцільністю; якщо вони дають в кінцевому рахунку економію суспільного часу, то їх слід застосовувати, якщо не виходить — треба відмовитися від самовідтворення. Справа в тому, що робот, як будь-яка машина (втім, як і будь-який біологічний об’єкт), має обмежений ресурс – г, кінцевий час життя. Безсмертних автоматів теж немає… А значить, коли робот, створений для цілком конкретної роботи, використовує частину свого ресурсу на виготовлення собі подібних, то тим самим він скорочує ту частину свого життя, що призначена для виконання основної роботи.
З цієї очевидної обставини випливає не зовсім тривіальний висновок. Виявилося, що якщо для виготовлення робота потрібно виконати кілька однакових технологічних операцій (наприклад, загвинтити десять гвинтів) і ці операції можуть робити і людина, і робот, то оптимально або все доручити людині або все роботу. Все або нічого — середина шкідлива!
На малюнку по горизонтальній осі відкладена ступінь автоматизації (тобто яку частину гвинтів загвинчує робот), а по вертикальній — вартість загвинчування роботом одного гвинта. Нульова ступінь автоматизації даної операції відповідає випадку, коли всі гвинти в роботі загвинчує людина. Як видно з графіка, вартість загвинчування роботом одного гвинта зі збільшенням ступеня автоматизації спочатку навіть збільшується, і тільки коли ступінь автоматизації стає досить великою, вартість виготовлення робота роботом робиться менше вартості його ручного виготовлення.
Тобто «боязка» автоматизація — шкідлива! Автоматизувати потрібно сміливіше або вже взагалі не автоматизувати. І, отже, вже якщо будувати роботів, то найкраще – самовідтворюваних, тобто автоматизованих до максимально можливого ступеня.
Якщо намагатися дати визначення самовідтворювальному автомату, то воно буде дуже схоже на визначення виду в біології: самовідтворюваним у даному середовищі називають автомат, який з елементів даного середовища за час свого життя виготовить не менше одного здатного до самовідтворення автомата.
Середовище недарма входить в це визначення: не можна говорити про самовідтворення безвідносно до нього. Не викликає сумніву, що можна зробити самовідтворюваний автомат, скажімо, з двох або трьох (звичайно, дуже складних) частин, але існування автомата, здатного самовідтворюватися в природному середовищі, щонайменше, викликає сумніви. Дещо втішає, що в біології справа йде не краще. Людина, наприклад, може існувати тільки в умовах, коли є тварині білки. Не буде білків — не буде і людини. Рослини можуть жити, використовуючи більш прості речовини, але не простіше деяких цілком певних хімічних сполук і т. д.
Якщо мова йде про механічні автомати, то основне питання полягає в тому, чи вистачить ступенів свободи маніпулятора і його довжини кінцівок, щоб зібрати точно такий же. Як з’ясувалося, такі маніпулятори існують. Маніпулятор складається з однакових елементів-кубиків, кожен з яких може перебувати в одному з п’яти станів. Перше – основне, у другому — кубик розтягнутий в два рази, в третьому – нахиляється вправо на 90°, в четвертому – вліво, в п’ятому стані випускає схвати, якими може утримувати інший кубик.
Самовідтворення маніпулятора відбувається так. Він нахиляється вліво, бере з конвеєра кубик і ставить його праворуч від себе. Потім знову нахиляється вліво, бере другий кубик, ставить його на перший і т. д. Цей процес повторюється до тих пір, поки всі кубики не будуть складені стовпчиком. Цей стовпчик і є копія збираючого маніпулятора. Як легко збагнути, для того щоб маніпулятор міг зібрати свою копію, довжина всіх повністю стиснутих елементів маніпулятора повинна бути менше повністю розтягнутих елементів тієї частини маніпулятора, яка не бере участь у вигинах.
Вдається скомбінувати маніпулятор і комп’ютер таким чином, що вся система «маніпулятор + комп’ютер» виявляється здатною до самовідтворення. Оскільки комп’ютер управляє діями маніпулятора, а він, у свою чергу, збирає його, то цим ніби вичерпується питання про принципову, чисто логічну можливість побудувати самовідтворюваного робота.
Так, але крім логіки є ще й така неприємна річ, як реальні умови роботи такої системи. Нові величезні труднощі виникають у зв’язку з тим, що будь-які технологічні процеси, в тому числі, природно, і ті, які використовуються при виготовленні роботів, носять імовірнісний характер — у них завжди залишається місце для деякої неточності та невизначеності.
На перший погляд, здавалося б, чого простіше: забезпечимо робота програмою складання, будемо подавати йому по конвеєру необхідні деталі, і він збере іншого робота, приєднуючи ці деталі одну за одною. Таким чином, без особливих проблем організуємо складання самовідтворюваних роботів. Проте з такої прямолінійної спроби налагодити виробництво скільки-небудь складного робота нічого не вийде.
Сьогоднішній робот містить близько тисячі деталей, і мало надій на те, що майбутні роботи будуть простіше. Сучасні складальні автомати виконують технологічні операції не напевно, а з деякою ймовірністю. Наприклад, для автоматів по збірці електроламп вона дорівнює 0,99. Це висока ймовірність — всього один відсоток браку. Треба мати на увазі, що складальні автомати або на клас точніше зібраних ними пристроїв, або підганяються, налаштовуються перед роботою. Оскільки при самовідтворенні роботів ні того, ні іншого зробити буде не можна, ймовірність правильної збірки їх буде ще менше. Але все ж припустимо, Що ймовірність виконання роботом кожної окремої технологічної операції дорівнює 0,99. Яка при цьому буде ймовірність зібрати придатного робота?
Якщо вважати складальні операції статистично незалежними (а для цього є багато підстав), то за правилами теорії ймовірностей, щоб обчислити ймовірність правильного виконання усіх без винятку операцій, необхідно звести 0,99 тисячну ступінь. Проробивши за допомогою логарифмів цю нескладну операцію, отримаємо в результаті 0,00004. Це означає, що зібрати з тисячі деталей придатного робота за допомогою роботів практично неможливо. Зі ста тисяч зібраних роботів тільки чотири будуть зібрані без помилок! Такі цифри можуть вселися песимізм в кого завгодно.
Перше, що приходить в голову,— спробувати якимось чином збільшити ймовірність виконання окремої технологічної операції. Простий розрахунок показує, що це не допоможе. Навіть якби нам вдалося збільшити її вдвічі, то і тоді придатними були б всього сім автоматів з тисячі. Адже для того, щоб отримати більш високу ймовірність, нам, без сумніву, були б потрібні додаткові пристрої, наприклад для організації зворотного зв’язку з розпізнаванням образів і т. п. Це, в свою чергу, збільшило б число деталей у роботі і, відповідно, зменшило ймовірність правильно його зібрати. Чи є вихід з цього зачарованого кола? Як з’ясувалося, є.
Як показує багатовіковий досвід машинобудування, вихід полягає в організації ієрархічної (вузлової) збірки і контролі деталей і операцій, ретельному контролі всіх креслень роботів. При цьому повинні обов’язково бути присутніми обидва цих елементи, тому що ієрархія без проміжного контролю безглузда і контроль без ієрархії теж майже нічого не дає. Ідея ієрархічної збірки полягає в тому, що робот збирається не послідовним приєднанням окремих деталей, а вузлами. Спочатку збираються окремі вузли, які контролюються. Браковані вузли викидаються, а з вузлів, визнаних придатними, збираються більш складні, які знову контролюються, і т. д. Застосування вже двоступеневого складання (для робота з нашого прикладу це складе приблизно тридцять вузлів за тридцяти деталей) дозволяє збільшити ймовірність складання придатного автомата майже тридцять тисяч разів! У стільки ж разів зменшаться витрати часу, витрати матеріалів і т. д.
Ефективність ієрархічної збірки дивовижна, вона дозволяє вирішити більшість імовірнісних проблем, але, звичайно, не без витрат. Організація вузлової збірки досить складна. Робот повинен вміти відрізняти погані вузли від хороших, тобто мати деякі тестові програми і датчики, а, найголовніше, порядок складання не може бути записаний у програму заздалегідь, і робот повинен приймати рішення в залежності від ситуації. Справді, якщо в процесі складання виявилося, що якийсь вузол поганий, то перш ніж перейти до складання наступного, необхідно вузол, що вийшов погано зібрати знову. Такий порядок складання не можна записати в програму заздалегідь, так як вузол може виявитися придатним і відразу — це справа випадку. Але нічого надскладного в організації ієрархічної збірки немає, і для її реалізації досить мати в системі команд комп’ютера так званий умовний перехід — «якщо… те…» Наприклад, якщо вузол після контролю виявився непридатним, то слід передати його в металобрухт і знову повернутися до попередньої програмі складання цього вузла, а якщо вузол після контролю виявився придатним, то слід перейти до програми складання наступного вузла.
Таким чином, роботу, що самовідтворюється в ймовірнісному середовищі, тобто в наших звичайних виробничих умовах, вже недостатньо мати жорстку програму, і він повинен бути забезпечений набором алгоритмів і програм, що дозволяють йому гнучко реагувати на різні ситуації.
«Кмітливість» допомагає роботу не тільки у визначенні порядку складання, але і при виконанні окремих технологічних операцій. Одна японська фірма демонструвала збірку роботом точних деталей. Треба зауважити, що вставити точно виготовлений валик в точно виготовлений отвір важко навіть для людини — через неминучі перекоси. Для робота ймовірність правильно виконати цю операцію майже дорівнює нулю. Вони занадто для цього незграбні, і ситуація тому виходить вкрай неприємна: роботи, що складаються з досить точних і добре пригнаних один до одного деталей, можуть виконувати лише дуже грубу механічну роботу. Про яку самозбірку може йти тут мова?
Програма для комп’ютера, складена японськими інженерами, дозволила виконати роботу дуже тонку роботу — вставити вал в отвір — швидше некваліфікованого робітника. З кваліфікованим фахівцем робот поки конкурувати не може, але зараз це не важливо— головне, що використовувався звичайний, «неточний» робот, який тільки завдяки «інтелекту» у вигляді програми для комп’ютера, зумів виконати технологічну операцію, яка без машини була б йому не під силу. Це дуже важливий експеримент, він обіцяє «розшити» вузьке місце на шляху роботів до самовідтворення.
Чи можуть роботи крім самовідтворення ще й самовдосконалюватися? Тобто чи можлива самостійна еволюція роботів, подібна до процесу природного відбору в живому світі?
Нехай на заводі з виробництва роботів працюють і виготовляються роботи декількох типів. Природно, роботи універсальні і можуть робити будь-яку роботу. Ті, що працюють на цьому заводі, виробляють собі подібних, а вже їх дітища використовуються споживачами там, де це буде потрібно. Деталі, з яких складаються заводські роботи, однакові, одні і ті ж електронні компоненти, що одні і ті ж гвинти і гайки тощо, але різні типи роботів відрізняються числом деталей, а тому і часом виконання технологічних операцій, ресурсами і т. п. Коли відбувається поломка будь-якого з роботів, що працюють на заводі, то він демонтується і замінюється першим же з знову виготовлених. При цьому, якщо зламався робот одного типу, а виготовлений робот іншого, заміна все одно проводиться. Якщо число місць на заводі фіксовано, то в результаті таких замін відбувається поступове витіснення менш досконалих роботів більш досконалими, тому що менш досконалі ламаються частіше. Так йде еволюція роботів від поганих до більш досконалих.
Цей процес відбувається як серед роботів, що працюють на заводі, так і з деяким запізненням — серед точно таких же роботів, які надсилаються споживачу. Рівняння цієї «еволюції роботів» збіглися з отриманими лауреатом Нобелівської премії Ейгеном рівняннями еволюції для живих організмів.
Процес відбору відкриває абсолютно нові можливості на шляху вдосконалення роботів без участі людини. Справді, якщо вводити в конструкцію робота випадкові «мутації» (а для цього не потрібен інтелект людини — досить мати датчик випадкових чисел), а потім використовувати механізм відбору, то роботи з шкідливими «мутаціями» вимруть, а з корисними — витіснять всіх інших. Таким чином, замість конструювання більш досконалого робота досить буде задати критерій, якому має задовольняти ідеальна конструкція, а все інше роботи зроблять самі. У нашому прикладі таким критерієм було відношення часу життя робота до часу його самозбірки – чим більше це відношення, тим кращою вважалася конструкція робота.
Звичайно, не все так просто. Є ще мільйони нюансів, які необхідно враховувати при розробці реально працюючої системи. Ось один з таких нюансів. Для того, щоб робот міг удосконалюватися, він повинен бути надмірним: мати зайві — без лапок — деталі. Дійсно, якщо всі деталі в автоматі принципово необхідні для його роботи, то будь-яка «мутація», тобто будь-яка заміна елемента, буде призводити до смерті автомата. Для того щоб могли накопичуватися і нейтральні «мутації», що не впливають безпосередньо на роботу автомата, він повинен бути надмірним. Подібних тонкощів дуже багато.
Одна з найцікавіших проблем у теорії самовідтворюваних роботів — необхідний набір елементів, з яких можна було б зібрати такого робота. Абсолютно очевидно, оскільки природа дала нам більше мільйона діючих зразків рослин і тварин, що такі пристрої можуть бути зроблені з існуючих на землі хімічних елементів. Але якщо б ми спробували розробити конструкцію робота, що збирає свою копію з окремих атомів або молекул, то, як справедливо зауважив фон Нейман, ми загрузли б у питаннях, які, будучи і важливими і цікавими, абсолютно не мають відношення до нашої проблеми.
Автор: В. Чадєєв.