Большое спасибо за статью. Сам вечерами пописываю своего бота, но по форумам не хожу и вообще был не в курсе что столько всего понаделали. Забавно, что описанные вами алгоритмы очень похожи на мои, которые я честно выдумывал сам, и уверен еще тысячи таких же как я. В этом конечно же нет ничего страшного, вся магия в мелочах. Удачи вам.
Конечно. Основной алгоритм напрашивается сам собой. А вот оценки и решения задач выбора — это действительно интересная тема, т.к. времени на оптимальный обсчет физически нет, и приходится использовать эвристику.
как-то возникли параллели с книжкой «Игра Эндера» Орсона Скотта Карда
там как раз из подростков готовили будущих полководцев, гоняя их на космических симуляторах
Offtopic: жестокий у вас выбор картинки вышел. Тем, кто смотрел «Battlestar Galactica» и особенно «Caprica» моя заметка будет понятнее.
За подробностями можно глянуть тут: en.wikipedia.org/wiki/Cylon_(Battlestar_Galactica) и en.wikipedia.org/wiki/Caprica_(TV_series)
О, мой тест скрипт засветился.
Кстати генетический алгоритм сейчас пытаюсь использовать для поисков коэффициентов эвристики в решателе какую планету атаковать.
В пост реквистируется Longing, который только что вырвался на второе место (это мало о чем говорит на самом деле, времени еще много и сто раз все поменяется)! Если нет аккаунта, готов отдать инвайт.
Интересно, какую на самом деле практическую задачу хочет решить google силами игроков и этой вот игры. Судя по условиям — это поиск какого-то универсального алогоритма в распределенной системе, сети… Может я упустил и уже об этом говорилось?
IMHO, тщательный алгоритм вычисления оценки позиции, а также просчет на несколько ходов вперед должен быть лучше, чем переключение стилей игры.
Пока еще не додумал учет истории и оптимальное распределение посылаемых кораблей между планетами. Где-то через неделю-другую планирую выложить то, что получилось.
А вообще после обдумывания алгоритма бота полезно посмотреть, как сейчас играют топовые боты. Насколько я смотрел — все мыслят примерно одинаково:
— Вначале захватим несколько ближайших планет
— Потом анализируем, чего хотим захватить
— Рассчитываем ход, на котором накопим нужную массу кораблей, и посылаем так, чтобы к этому ходу все корабли достигли места назначения
— Ключевые планеты, которые стремится захватить алгоритм — покрупнее и поближе к центру. Причем при этом часто пренебрегают нейстральными планетами, валяющимися рядом, хотя прирост кораблей на них за несколько ходов окупает захват.
— После захвата одной или нескольких ключевых планет картина начинает напоминать поток в сети — все корабли по оптимальному маршруту отправляются на ключевые планеты.
Кстати, в топике не замечена одна важная черта хорошего алгоритма.
Он должен учитывать рефлексность врага и незнание того, какой ход ты сделаешь сейчас. За счет того враг отстает в своем «знании» на один ход, за который можно успеть захватить ключевую планету раньше него.
Google AI Challenge две недели спустя