Популярно об ИИ

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

Американские военные, реализуя свои планы частичной роботизации армии FCS (Future Combat Systems), изобрели единый протокол управления всей беспилотной техникой, в число которой могут входить самолеты, наземные машины, подводная техника и т.п. На позапрошлых соревнования IGVC (автономные беспилотные наземные роботы) опционально был введен новый этап. Участникам раздали JAUS SDK (на Java), и было предложено встроить этот набор команд в проектируемых роботов. В будущем все подразумевает управление армией роботов по типу игры — военной стратегии — из единого командного центра. Но, как мы знаем, помимо того, что всем происходящим может управлять игрок-человек, в рамках кампаний (или отдельных сценариев) против него сражается ИИ компьютерного соперника. Нужно отметить, что на современном этапе в стратегических играх (RTS — Real Time Strategy) искусственный интеллект представлен довольно слабо. Это объяснимо и небольшими сроками его разработки, и ограничениями, которые вводятся иногда осознанно. Например, никто не захочет играть, постоянно терпя поражение. Последний момент — очень редкий случай, потому как часто при создании ИИ руководствуются шаблонами, далекими от натурального разумного поведения.

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

Возвращаясь к теме робо-войн, стоит поговорить о правилах…

ИИ-движки

Мы, конечно, можем рассмотреть большое количество движков искусственного интеллекта, к чему можно отнести все шахматные программы и так далее, но… нас интересует нечто более универсальное. Даже могу озвучить одну интересную идею — она появляется постоянно, поэтому ничего секретного из себя уже не представляет. Впервые мне рассказал о ней тренер по шахматам моей дочери, потом я услышал вариант "один-в-один" от ведущего программиста крупной софтверной компании, после наблюдал несколько попыток реализации всего в Интернете.

Итак, представьте себе ситуацию, когда в онлайне сражаются между собой два игрока. Но при этом… один играет в шахматы, а другой — в шашки. А в рамках "костяка" программы используется специальный модуль, который преобразует каждый ход в определенную логическую цепочку, а после транслирует (переводит) ее в соответствующий ход для другой игры. Это может быть реальным.

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

Например, аналог JAUS в Европе называется CIP, если за реализацию подобного возьмутся другие крупные страны, то появится и еще несколько протоколов и систем управления робо-армиями из единого командного центра. Если туда начнут внедрять ИИ на замену человеку, а это произойдет в силу автоматизации, то каждый искусственный интеллект будет "играть" по своим правилам.

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

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

Один из новых движков наподобие Zillions of Games — Axiom


Многозадачные ИИ-движки

Представьте себе ситуацию, когда имеется некий "мозг". Ему дают определенные задачи, объясняя правила, и он их решает. В данном случае мы не подразумеваем написание конкретной программы под конкретные проблемы, имеется в виду более сложная архитектура — вы пишете сценарий для ИИ- движка, и он его выполняет.

На самом деле ничего необычного в этом нет. Примерно по такой же схеме работают высокоуровневые языки программирования, реализованы скрипты для специализированного ПО (flash, 3D-пакеты и так далее), происходит взаимодействие с технологическими стандартами (например, программирование игр под DirectX — игровых жанров много, но по существу используется один и тот же низкоуровневый движок).

Мы сейчас не будем рассматривать специализированные многозадачные движки ИИ, а обратимся к популярной в 1998-2004 гг. системе Zillions of Games (www.zillions-of-games.com). Авторами этого проекта являются Джефф Маллет и Марк Лефлер (Jeff Mallett, Mark Lefler). В основу была положена весьма интересная идея создания некоего единого программного интерфейса-платформы. То есть, вы устанавливаете оболочку Zillions of Games только один раз, а обновления в виде новых игр скачиваете как дополнительные программные файлы. Речь идет о всевозможных логических играх и паззлах (пошаговых играх). Причем сами разработчики не собирались денно и нощно сидеть за разработкой новинок, отдав все на откуп пользовательскому сообществу, изобретя особый язык сценариев ZRF, на котором можно легко описывать правила любой логической игры и алгоритм для компьютера, который в эту игру играет. По синтаксису этот язык напоминает смесь между HTML-разметкой и LISP, то есть можно загружать собственные графические файлы и спрайты и описывать алгоритмы. Сам движок ИИ является закрытым для программирования, им можно только управлять, сообщая команды или указывая некоторые параметры (например, время расчетов и т.п.).

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

На Zillions of Games обратило внимание и множество экспериментаторов, которых принято называть "композиторами игр", то есть эти люди придумывают новые головоломки. Успех весьма неоднозначного мероприятия под названием Zillions of Games пришел практически сразу. Игры, разработанные для этой платформы, стали исчисляться сотнями, а после это число перевалило за тысячу. Причем стоит напомнить, что в 1998 году о рынке казуальных игр как о чем-то весомом еще никто не задумывался. Это уже потом он стал чем-то значимым и начал приносить баснословные прибыли (кстати, очень недолго). Сейчас Zillions of Games можно по праву считать кладезью мыслей для казуальщика, а тогда это было чуть ли не единственное решение, которое с постоянной периодичностью выдавало новинки. Ведь людям, изучившим "сапер", наигравшимся в шахматы, шашки и го, любителям пасьянсов и паззлов, хотелось чего-то нового.

Для многих скептиков идея по созданию многозадачного игрового ИИ-движка выглядела как сумасшествие. Но… все их доводы приходили в негодность после того, как оказывалось, что Zillions of Games не так-то и легко обыграть в шахматы, шашки и множество других игр. И с некоторого времени эту платформу стали рассматривать как явление.

Если говорить о композиторах игр, то в рамках Zillions of Games было реализовано очень много нестандартных разновидностей шахмат, как придуманных наново, так и взятых из истории. Отдельно стоит отметить энтузиаста и неплохого коммерсанта Эда Трайса, который взял на вооружение вариант шахмат, предложенный Хосе-Раулем Капабланкой, и запатентовал его на себя под названием Gothic Chess в 2002 году, организовал ассоциацию и стал проводить чемпионаты — как в реале, так и в онлайне. Эта разновидность шахмат отличается от обычных тем, что игровое поле увеличено до 8х10, и добавлены новые фигуры — канцлер (сочетание ладьи и коня) и архиепископ (сочетание коня и слона). В обычных шахматах мы имеем только один подобный "гибрид" — ферзь (сочетание ладьи и слона). Сейчас Gothic Chess — это самая популярная разновидность шахмат в мире после обычных.

Свою деятельность Эд Трайс начал с… соревнования компьютерных интеллектов (программ) между собой по правилам готических шахмат. ИИ-движок Zillions of Games оказался на высоте, хотя и не занял первое место. Он очень интересен, поскольку является одним из реальных шагов по преобразованию действий в логические переменные. И, возможно, с его помощью можно осуществить и транслирование из одной игры в другую.

Наш мозг ведет себя точно также, то есть для того, чтобы решить какую-либо задачу, нужно знать ее условия и иметь алгоритмы для решения. То, что называется в рамках Zillions of Games ИИ-движком, проще сравнить с понятием "мыслительного аппарата". Но при этом существует и внутреннее отличие. Человек склонен к интерполированию, то есть переносу определенных событий на предсказание будущих, и имеет такую важную вещь, как опыт. Причем это имеет место и для случаев, когда результаты событий из одной сферы деятельности переносятся в другую. В ИИ-движке от Zillions of Games этого нет, то есть он не может перенести опыт игры в го для использования в шахматах.

Подытожим

Мыслительный аппарат человека высокофункционален, при этом он зачастую требует ограничений и разграничений. Кстати, во многом этим можно объяснить природу такого понятия, как "внимание". Мыслительный аппарат ИИ требует, наоборот, расширений. Он действует только в рамках правил, предусмотренных программой, и даже если мы говорим о самостоятельном принятии определенных решений, это все равно описывается условиями программного кода. И как раз-таки в рамках Zillions of Games мы можем наблюдать правильный подход к созданию искусственного интеллекта как такового, который по определению эмулирует разумное поведение. При этом мы говорим только о начальном уровне. И подобные движки развиваются и совершенствуются, например, сейчас есть новинка Axiom ( сайт ).

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

Кристофер


Компьютерная газета. Статья была опубликована в номере 04 за 2009 год в рубрике технологии

©1997-2024 Компьютерная газета