Comments 47
Самообучение не нужно, т.к. это закрытая система, в которой не появляются новые факторыПростите, но Вы неправы. Самообучение может быть полезно как минимум в контексте адаптации к алгоритму оппонента.
+4
Но есть ограничение времени хода и не думаю, что быстро удастся обнаружить стратегию противника. К тому же я написал, что в любом случае должна присутствовать подстройка под врага.
0
С вами на одной карте могут играть до 9 противников. Под каждого будет трудновато подстроиться.
0
Но есть ограничение времени хода и не думаю, что быстро удастся обнаружить стратегию противникаНикто и не говорит, что вы за один ход должны определить алгоритм врага.
0
Ну вот, написал… что самообучение в данном контексте не выгодно… Прочитайте, перед тем как минусовать хотя бы.
0
Вы меня, конечно, извините, но говорить что C++ многословен и считать это аргументом в пользу Java как — то не логично. Можно было просто написать что выбрали Java из личных предпочтений. А так спасибо что подогреваете интерес к конкурсу. Сам задумался об участии после прочтения статьи от ideas4ru
+2
Это вторая статья с разбором стартовых пакетов для этого соревнования. Не очень ясно только, зачем это нужно: человек, который не может самостоятельно разобраться с готовым пакетом для создания своего бота, вряд ли напишет нормального бота, а вот сервера загрузит. Если посмотреть на таблицу рейтинга, можно заметить, что значительная часть ботов — v1, т.е. загружались 1 раз, а сейчас брошены. Все боты рубятся по очереди, и в данный момент между играми бот ждет около 200 минут.
Автора можно похвалить за популяризацию соревнования, но лучше бы вы, автор, написали про алгоритмы применительно к написанию такого бота, а не про кривую реализацию стартового пакета.
Например, ваш способ нахождения расстояния до еды совершенно бесполезен в лабиринте, т.е. почти всегда на официальных картах. Смотрите в сторону алгоритмов поиска кратчайшего пути в графах.
Или, скажем, вы упомянули, что муравьев можно распределять по ролям — это интересно. Если посмотреть на игру топовых ботов, можно заметить, что в них реализованы разные тактики для каждой роли. Минимально необходимый набор: разведчик, солдат, собиратель. Есть небольшая проблема — информацию о конкретном муравье бесполезно держать между раундами, т.е. на каждом раунде придется распределять роли, — такова особенность реализации игрового протокола, но эту проблему можно обойти.
Если вы реализуете стратегии, поиск пути для разных случаев и т.д., вы, скорее всего, упретесь в максимальное время, отведенное на раздачу приказов. Придется оптимизировать/менять алгоритмы — это ещё один пункт для подобной статьи, на мой взгляд.
Конечно же, интересно было бы почитать про стратегии. Очевидно, можно выделить несколько типов, которые стоит реализовать при написании бота:
Например, при атаке вражеских муравьев выгодно собираться в группы, — таким образом можно избежать потерь среди своих и нанести серьезный урон врагу (при встрече 1vs1 оба муравья умирают, при 2vs1 погибает вражеский муравей, свои 2 остаются в живых).
Важно упомянуть, что в игре реализован туман войны, поэтому область видимости каждого муравья ограничена — нет полной информации об игровом поле.
Короче, есть много интересных тем, а вы пишете про ерунду. :)
Автора можно похвалить за популяризацию соревнования, но лучше бы вы, автор, написали про алгоритмы применительно к написанию такого бота, а не про кривую реализацию стартового пакета.
Например, ваш способ нахождения расстояния до еды совершенно бесполезен в лабиринте, т.е. почти всегда на официальных картах. Смотрите в сторону алгоритмов поиска кратчайшего пути в графах.
Или, скажем, вы упомянули, что муравьев можно распределять по ролям — это интересно. Если посмотреть на игру топовых ботов, можно заметить, что в них реализованы разные тактики для каждой роли. Минимально необходимый набор: разведчик, солдат, собиратель. Есть небольшая проблема — информацию о конкретном муравье бесполезно держать между раундами, т.е. на каждом раунде придется распределять роли, — такова особенность реализации игрового протокола, но эту проблему можно обойти.
Если вы реализуете стратегии, поиск пути для разных случаев и т.д., вы, скорее всего, упретесь в максимальное время, отведенное на раздачу приказов. Придется оптимизировать/менять алгоритмы — это ещё один пункт для подобной статьи, на мой взгляд.
Конечно же, интересно было бы почитать про стратегии. Очевидно, можно выделить несколько типов, которые стоит реализовать при написании бота:
- Защита своего муравейника.
- Атака вражеского муравейника.
- Собирательство.
- Атака врагов.
Например, при атаке вражеских муравьев выгодно собираться в группы, — таким образом можно избежать потерь среди своих и нанести серьезный урон врагу (при встрече 1vs1 оба муравья умирают, при 2vs1 погибает вражеский муравей, свои 2 остаются в живых).
Важно упомянуть, что в игре реализован туман войны, поэтому область видимости каждого муравья ограничена — нет полной информации об игровом поле.
Короче, есть много интересных тем, а вы пишете про ерунду. :)
+18
А вы находитесь на начальной стадии рассуждений. При написании стратегий можно обнаружить новые группы и убрать ненужные. Я расскажу о интересных темах, но без основы меня мало кто поймет… поэтому я допишу своего бота, потестирую его в боевом режиме и уже тогда расскажу. А смысл сейчас потенциальным врагам рассказывать возможно выигрышные стратегии?
-8
Стратении ничего не решают, важна реализация.
Например тот же волновой алгоритм для поиска маршрутов для муравьёв вполне очевиден, но при уже 1000 муравьёв в реализации в лоб начинает кончаться время. И это только одина из маленьких частей.
> А смысл сейчас потенциальным врагам рассказывать возможно выигрышные стратегии?
Может быть чтобы потенциальные враги оценили эти стратегии, указали недостатки, развили идеи? Лично мне кажется, что до момента пока Вы не окажитесь в top 10 скрывать вообще ничего не стоит.
Например тот же волновой алгоритм для поиска маршрутов для муравьёв вполне очевиден, но при уже 1000 муравьёв в реализации в лоб начинает кончаться время. И это только одина из маленьких частей.
> А смысл сейчас потенциальным врагам рассказывать возможно выигрышные стратегии?
Может быть чтобы потенциальные враги оценили эти стратегии, указали недостатки, развили идеи? Лично мне кажется, что до момента пока Вы не окажитесь в top 10 скрывать вообще ничего не стоит.
+4
Я не использую алгоритм поиска. Если нужно обойти препятствие, то дешевле дать муравью другое задание и забыть о преграде.
-3
> Может быть чтобы потенциальные враги оценили эти стратегии, указали недостатки, развили идеи?
Я несколько раз повторил, что расскажу об стратегиях и своих мыслях когда проверю бота в реальной обстановке…
Я несколько раз повторил, что расскажу об стратегиях и своих мыслях когда проверю бота в реальной обстановке…
-1
> Стратении ничего не решают, важна реализация.
Это спорное утверждение. Важна и стратегия и реализация, в случае примитивной стратегии, отличная реализация вам не поможет, и наоборот.
Это спорное утверждение. Важна и стратегия и реализация, в случае примитивной стратегии, отличная реализация вам не поможет, и наоборот.
+1
в прошлом контесте какой-то умник выложил код бота из топ-50, в итоге набежали хомячки с его полными и частичными клонами и сильно увеличили энтропию в первых трех сотнях
+1
Интересные темы надо реализовывать, а не трепаться по этому поводу :)
+1
чем больше массовка, чем больше упоминаний (любых) контеста — тем лучше.
во время основного конкурса серверов будет больше, а с зомби бороться — это задача организаторов (снижать частоту боев для тех, кто давно не сабмитил и болтается внизу рейтинга)
во время основного конкурса серверов будет больше, а с зомби бороться — это задача организаторов (снижать частоту боев для тех, кто давно не сабмитил и болтается внизу рейтинга)
+1
С++ — многословен, PHP — не круто…
А как-же лисп, хаскель, эрланг? Все эти языки доступны, достаточно выразительны и вообще всячески кошерны.
Сейчас я вижу у вас нечитабельную кашу (метод getDirections), очевидные вещи, которые поймёт каждый, скачавший стартовый пакет и попытавшийся что-то менять, итого никакой пользы.
Лучше бы правила перевели, большему количеству хабралюдей бы помогли. Заодно и повод бы дали порассуждать о стратегиях.
+2
Пожалуйста, спасибо из вам за статья. Тоже кстати выбрал Java для написания своего бота, и именно сегодня начал разбираться с кодом. Так что завтра смогу подробнее оценить ваши идеи и код в применении. Удачи!
0
Спасибо за статью. Скачал в свое время javascript_starter и закачал его обратно без всяких изменений (как и было рекомендовано на сайте для быстрого начала). Сейчас этот бот занимает 152 место (http://aichallenge.org/profile.php?user=431). Хотел добавить хотя бы простой скан близлежащих ячеек для каждого муравья на предмет еды, но сайт ругается на мой быдло код. Оставил разбор на потом…
0
прошу прощения — ранг конечно же, а не место)
0
из самых простых решений которые хотелось бы реализовать (как только разберусь в причине ругани на код) это:
— обязательная запись карты (локаций воды) в свой массив
— для первых муравьев поиск еды по спирали, если еда дальше чем четверть карты, то двигаемся рандомно, но не туда где уже были (для разведки и сохранения локаций воды, если вся карта еще не просканирована и записана)
— когда муравьев станет больше, то расположиться расположить муравьев вокруг своего холма на некотором расстоянии друг от друга для быстрого сбора еды… в случае появления противника, соответствующее кол-во муравьев в том месте группируются
— пофиг на поиск пути, но карманы в стенах записывать и избегать
— обязательная запись карты (локаций воды) в свой массив
— для первых муравьев поиск еды по спирали, если еда дальше чем четверть карты, то двигаемся рандомно, но не туда где уже были (для разведки и сохранения локаций воды, если вся карта еще не просканирована и записана)
— когда муравьев станет больше, то расположиться расположить муравьев вокруг своего холма на некотором расстоянии друг от друга для быстрого сбора еды… в случае появления противника, соответствующее кол-во муравьев в том месте группируются
— пофиг на поиск пути, но карманы в стенах записывать и избегать
0
хммм на поиск пути не пофиг)… не учел такой простой вещи как наличие еды вблизи но за стенкой
0
Где-то ты все-таки перемудрил… Это я про раздел «Ошибочка» сейчас говорю.
Рассмотрим исходный код.
Функция определяет направление движения от Исходной точки до Цели.
1 аргумент — t1 — исходная точка
2 аргумент — t2 — цель
Представим поле, 100x100 клеток. Допустим муравей стоит в клетке (10,10), а его цель — в клетке (90,90). В каком направлении нужно двигаться муравью, чтобы побыстрее дойти до цели?
Конечно же влево-вверх (NORTH — WEST), ведь на поле нет стен, муравей пойдет вверх и выйдет снизу карты.
Это и расписано в коде. Если муравью до цели нужно идти больше чем полкарты
Весь код в комплексе, написанный здесь, я не проверял, но к исходному коду доверия как-то больше, чем к этому.
Рассмотрим исходный код.
Функция определяет направление движения от Исходной точки до Цели.
1 аргумент — t1 — исходная точка
2 аргумент — t2 — цель
Представим поле, 100x100 клеток. Допустим муравей стоит в клетке (10,10), а его цель — в клетке (90,90). В каком направлении нужно двигаться муравью, чтобы побыстрее дойти до цели?
Конечно же влево-вверх (NORTH — WEST), ведь на поле нет стен, муравей пойдет вверх и выйдет снизу карты.
Это и расписано в коде. Если муравью до цели нужно идти больше чем полкарты
(if (t2.row() - t1.row() >= this.rows / 2))
>, то ему быстрее «обернуться» вокруг карты (directions.add(Aim.NORTH);)
, чем идти напрямую (SOUTH). И так далее.Весь код в комплексе, написанный здесь, я не проверял, но к исходному коду доверия как-то больше, чем к этому.
+2
Эх, жаль что у меня экзамены.
0
вот жаль только регистрация закрыта уже
0
открыта, просто «Five Minute Quickstart Guide» ведет на прошлогоднюю страничку
0
а по-моему закрыта, из всех адресов убирается поддомен beta.
Очень жаль… но я все равно попробую написать своего бота, я думаю найдутся желающие устроить неофициальные соревнования?
Очень жаль… но я все равно попробую написать своего бота, я думаю найдутся желающие устроить неофициальные соревнования?
0
Админы говорят что завтра регистрация снова будет открыта — чего то там они ребутят. Так что спокойно качаем код и планируем захват мира.
0
Как я понял — начинается основное соревнование завтра. Они выходят из беты.
0
вот так даже — топик форума
http://ai-contest.com/forums/viewtopic.php?f=3&t=1499
http://ai-contest.com/forums/viewtopic.php?f=3&t=1499
0
0
Sign up to leave a comment.
Старт в Google AI Challenge на Java