Практически на любом форуме, и на нашем, в частности, всегда есть люди, которые всё про всё и про всех знают: и про науку (наверное, много в жизни научных результатов получали), и про гранты Российского фонда фундаментальных исследований (много их, видимо, получили), и, конечно же, про автоматное программирование (как не лягнуть).
Хорошо, что наш форум не про музыку, так как если про нее говорить по аналогии с тем, что говорится здесь про автоматное программирование, то засмеяли бы, но не меня со студентами, а тех, кто так уверенно про него рассуждает.
Говоря про музыку, вряд ли тому, кто услышал что-то непонравившееся, пришло бы в голову осуждать нотную грамоту.
В музыке вряд ли нашлось бы много людей, которые стали бы говорить, что играть по слуху лучше, чем по нотам, даже если по слуху кто-то и сыграл бы лучше.
Да и всю музыку сразу, как науку, вряд ли кто-нибудь стал «поливать».
А теперь по существу. В свое время (в 2003 году) было всемирное увлечение похожей игрой, которая называлась Robocode. Так вот в этой игре мы (Никита Туккель и я) также использовали автоматное программирование, и созданный на его основе танк Cynical долгое время был среди лидеров мирового рейтинга, причем даже в то время, когда он еще не стрелял (это отмечено сайте с историей игры http://robowiki.net/cgi-bin/robowiki?History). Кстати, когда люди, в свое время интересовавшиеся этой игрой, узнают, что танк с этим названием сделали мы, то сильно удивляются (http://is.ifmo.ru/?i0=aboutus&i1=5).
Выложенная в Интернет подробная и внятно написанная проектная документация на танк (http://is.ifmo.ru/projects/tanks/) и удобство описания поведения основных компонент танка с помощью автоматов, позволили провести рефакторинг этой программы быстро и эффективно (http://is.ifmo.ru/projects/robocode2/).
Рефакторинг был выполнен Денисом Кузнецовым, который в то время преподавал во Дворце творчества юных в Санкт-Петербурге объектно-ориентированное программирование и хотел провести обучение на примере задачи, интересной школьникам. При этом он просмотрел несколько десятков танков, в том числе и с открытым кодом, но выбрал, по указанным выше причинам, наш танк. Новый танк тоже очень неплохо сражался.
Потом была игра «Terrarium» (http://is.ifmo.ru/projects/terrarium/), в которой животное также было реализовано с помощью конечного автомата. Какой результат был в соревновании, я уже сейчас не помню (вряд ли очень высокий), но хорошо помню, что подробная проектная документация позволила неизвестному нам автору немного модифицировать разработанное нами существо (автомат). Это нашло отражение в перевыпущенной проектной документации, опубликованной на одном из сайтов МФТИ. К сожалению, указанный сайт закрылся, и я не успел модифицированный проект скопировать.
Кстати, мой соавтор по этой игре Сергей Марков, сейчас работает в Редмонде в корпорации Microsoft, под эгидой которой проводились эти соревнования. Там он активно общается с Никитой Шамгуновым, который первым защитил кандидатскую (а не докторскую, как говорят наши «доброжелатели») диссертацию по автоматному программированию, а до этого, в частности, был трехкратным чемпионом Урала по программированию.
К сожалению, по автоматному программированию пока защищены только три кандидатские диссертации, а не дюжина докторских, как пишут на форуме.
Если вы, господа, думаете, что Даниил Шопырин или Георгий Корнеев, также защитившие диссертации по автоматному программированию, дурнее или слабее вас, то вы глубоко ошибаетесь, а в соревнованиях, в том числе и на мировом уровне, они (как и Денис Кузнецов) уже достаточно навыступались.
В статье «Автоматы и танки» (http://is.ifmo.ru/works/tanks_new/) мы писали, что в какой-то момент перестали совершенствовать танк (там не было ограничения по времени проведения соревнований), так как ставили своей целью создать не самый эффективный танк, а эффективную технологию программирования систем со сложным поведением, которая включает выпуск документации по проектированию программного обеспечения.
К этой цели я продолжаю идти и сейчас, а лучше или хуже при этом получается конкретный танк или существо зависит от квалификации, а самое главное, от отношения к проекту моих соавторов-программистов.
Они могут делать это от всей души, как Никита Туккель при проектировании танка, тратя на это много сил и времени, или в той или иной мере отбывать номер, чтобы получить зачет, занимаясь, все-таки, достаточно интересной темой.
Ну и, наконец, через некоторое время мы опубликуем документацию, на существо для Электрических Джунглей, которое было построено автоматически. Так как идею его создания авторам удалось разработать только в последних числах февраля, то очень хорошо обучить автомат, видимо, не удастся успеть, а поэтому существо будет иметь немного шансов на успех.
Но разве мерой успеха, является только успех?
P.S. А теперь, почему я в этих работах соавтор просто потому, что тратил очень много времени на каждую из них, чтобы довести до такого вида, чтобы их было можно читать и понять, а не догадываться, что там хотел написать автор, который-то и по-русски писать не умеет. А вы не пробовали читать студенческие работы в их первозданном виде? А я это делаю ежедневно, и надо сказать, что это удовольствие не из приятных! Ну, так теперь все поняли? Или будут еще вопросы? Пишите, отвечу.