КАК ПРОГРАММИРОВАТЬ РОБОТА-УБИЙЦУ

Иван Скляров

Xakep, номер #053, стр. 053-048-1


Sklyarov@real.xakep.ru

Свой домашний Терминатор – легко!

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

Помнится в INTRO (#49) CuTTer философствовал о роботах-убийцах, рисовал ужасные картины, когда такие роботы выйдут из под контроля и настанет «Ужас, смерть, апокалипсис...». Да, создание роботов-убийц сейчас вполне реально, более того, подобного робота может запрограммировать даже ребенок (об этом ниже). Но вот что касается того, что роботы могут самостоятельно выйти из-под контроля и объединится против человечества - это пока невозможно. Такое под силу только искусственному интеллекту, но, к сожалению (или к счастью?), современной науке до него еще далеко. Что следует понимать под искусственным интеллектом (ИИ)? ИИ (AI) — это система, которая самостоятельно строит свои поведенческие алгоритмы. Будет ли наш робот обладать искусственным интеллектом? Нет, не будет, т.к. никаких алгоритмов он строить не сможет. Однако он будет обладать, как это модно сейчас говорить, «элементами искусственного интеллекта», т.к. его действия будут строиться не на основе четко заданного алгоритма, а на основе логики, близкой к человеческой (нечеткой логики). Нечеткая логика (fuzzy logic) известна еще с 60-х годов 20 века, однако впервые на практике она стала применяться только в конце 90-х в Японии. Сейчас системы, работающие на нечеткой логике, можно встретить в большинстве иномарок (системы управления АБС, ДВС, АКПП и т.п.), а также в бытовых приборах: кондиционерах, микроволновых печах, фотокамерах и других. Автономные роботы на нечеткой логике уже используются в исследовательских и спасательных целях, а также в качестве развлечения (Asimo, Aibo).

ТЕЛО

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

С чего обычный киллер начинает свою «работу»? С получения фотографии жертвы. Следовательно, наш робот должен поступать так же, причем «фотографию» ему можно передавать удаленно. Здесь можно пофантазировать. Допустим, передавать роботу не просто фото, а трехмерный объект жертвы (в наш век мощных 3D-программ это не проблема), тогда робот сможет однозначно опознать «клиента» с любой позиции (например, со спины).

Содержание  Вперед на стр. 053-048-2