проект интеллектуальной игры Цель проекта (первым этапом которого стала статья на «Мембране») – найти задачу-игру, и организовать турниры людей или коллективов, ее решающих. По моему опыту и умозаключениям, для игры должны быть верны следующие утверждения (в порядке уменьшения важности): В игре не должно быть детерминированной выигрышной стратегии. Игра интересна для неискушенного зрителя, который не будет задумываться о «начинке» игроков. Какая-нибудь простая стратегия придумывается очень быстро и с помощью средств, предоставляемых организаторами турнира, может быть записана в 30-50 строк. Принимать участие в игре легко. Никаких средств разработки, кроме компьютера, теоретически не нужно. Хотя, разумеется, должна быть возможность использовать современные среды разработки (такие, как Microsft Visual Studio или Delphi). В идеале, для участия (т.е. для написания работоспособного игрока) должно быть достаточно обладать компьютерной грамотностью и алгоритмическим мышлением. Игра проходит только между двумя соперниками. Игра с нулевой суммой, т.е. выигрыш одного означает проигрыш другого. Без этого пункта сложно оценивать эффективность решения (см. «задачу о тройной дуэли»). Игроки должны быть вынуждены демонстрировать как можно более интеллектуальное поведение. Это самый сложный пункт - очень сложно заранее оценить интеллектуальность будущей игры. Правила игры не должны поощрять переборных тактик, требующих серьезных вычислительных ресурсов, но не должны запрещать их явно – просто такие тактики должны быть бесполезны. Как пример – континуум возможных ходов, одновременно выполняемые ходы, неполная информация о состоянии игрового мира. Это не является мертвым прожектом, которыми наводнена Сеть, т.к. один такой турнир (симуляция футбола роботов на компьютере) мы уже успешно запустили. Некоторую информацию Вы можете найти здесь. Проблема задачи компьютерного футбола роботов в том, что последние два пункта практически не выполнены. Поэтому хочется найти какую-нибудь более подходящую задачу. Ваши идеи с удовольствием рассмотрю на форуме, или напишите мне письмо. В будущем я планирую размещать на этой странице интересные идеи участников форума относительно того, какой могла бы быть такая игра, и новости о ходе работ по ней. Кстати, я в курсе, что существует большое количество подобных игровых проектов (битвы роботов, "Террариум", RoboCup и т.п.) Но все эти игры не подходят на роль полигона для создания ИИ. Требования к такой игре я перечислил выше. Идея этой деятельности состоит в том, чтобы отслеживать тенденции, проявляющиеся в ходе быстрого совершенствования алгоритмов. Это предложение, возможно, непонятно (во всяком случае, я бы года два назад не понял), поэтому я попробую рассказать на реальных примерах. Футболистов многие бросились писать на идеях «машинной» эволюции. Некоторые в этом преуспели (Сергей Степанов, вот его сайт ), другие так и не вылезли с седьмых-восьмых мест. Когда Степанов открыл свой код, мы крайне удивились. Ни в его методе моделирования эволюции, ни в базовых идеях алгоритма не было ничего, о чем бы мы до того не знали, но в сумме это работало фантастически хорошо. Подумав, почему это происходило, мы переоценили все наши представления о машинной эволюции. Дальше, за это время мы выяснили, что методология разработки играет далеко не последнюю роль, и что методология Extreme Programming (XP) лучше всего подходит для разработки подобных "интеллектуальных игроков", и т.п. Это не очень большие достижения, но, начиная проект, мы даже о таком опыте не мечтали, и считали его развлечением. Фактически, цель проекта – осуществить «мозговой штурм», где идеи выражены не в словах, а в алгоритмах и методах разработки. Классический мозговой штурм хорошо себя зарекомендовал в различных тупиковых ситуациях, но (ИМХО) здесь не срабатывает. А вот «мозговой штурм» вышеприведенного типа оказался даже более эффективен, чем ожидалось (а такое, согласитесь, бывает редко). Возражения Даже если собрать очень-очень много малоквалифицированных программистов и студентов технических вузов, которые будут играть в такую игру, ничего путного они не придумают. Во-первых, шанс, что придумают, все-таки есть. Во-вторых, важно именно накопление статистически значимого фактического материала, выражаемого в словах «такой-то метод работает так-то, а такой-то метод заставить работать не удается». Пока такой материал не собран, по-моему, рано что-либо обобщать или строить теории. Но почему игра? Давайте решим какую-нибудь серьезную задачу! Я привык учиться на ошибках. Вместе с виртуальным футболом мы пробовали решать «более серьезные» задачи, однако все эти проекты умерли. Как мне кажется, наличие «базы поддержки проекта», т.е. хотя бы пяти-десяти независимых групп разработчиков, все равно необходимо. Идеи, рождаемые двумя-тремя людьми со схожим образованием и схожими методами, очень быстро «зацикливаются». Вряд ли можно этого избежать, если задача не будет яркой, популярной и вызывающей «зрительские симпатии». Кроме того, «соревновательные» задачи, как правило, решаются эффективнее и быстрее, т.к. сильнее мотивация и лучше возможности проверки эффективности. |