501. Kore 2022 | kore-2022
首先,我想感谢 @bovard 和所有参与者。在比赛期间,我通过反复改进智能体获得了极大的乐趣。
和许多其他参与者一样,我的智能体基于 @egrehbbt 提供的解决方案,我改进了诸如采矿、建造船坞、防御船坞等操作。
总体而言,许多特征可以通过解析方式计算,因此似乎很少有能从强化学习等统计方法中受益的地方。我花了大约三周时间准备强化学习,但收益似乎不是很大,所以在学习大约一周后,我决定改变方向。
我认为许多操作与金牌和银牌得主的其他智能体几乎相同。另一方面,攻击船坞的操作可能相对独特,这有助于将我的智能体推入获奖范围,因此我将集中解释这一操作,并仅简要描述其他操作。
以下是在最终评估中获得最高分的智能体。
正如你所看到的,在智能体获胜的大多数比赛中,它都成功攻击了对手的第二个船坞。这种趋势即使在智能体与获奖者中的智能体对战时也成立。另一方面,智能体很少因为攻击第二个船坞失败而输掉比赛。这意味着判断攻击是否会成功非常准确,即使在高分段也非常有效。为了做出这种准确的判断,一些准备工作是必要的。
在比赛开始时,我实现了模拟器。它估计了在双方玩家不发出任何指令的情况下,未来25个回合的棋盘状态。比赛的特点之一是,由于已出发舰队的飞行计划已经确定,因此可以较容易地以一定的准确性估计舰队的未来状态。因此,估计结果非常有价值。
在每个回合,智能体估计攻击每个对手船坞需要多少飞船,以及每个友方船坞有多少可用飞船。
通过模拟结果,可以估计在每个回合目标船坞及其周围船坞最多可以有多少飞船。因此,智能体根据开始攻击的回合,估算对手智能体可以用于防御的飞船数量。
除了现有的飞船,攻击完成前生成的飞船也可用于防御。因此,智能体根据攻击回合、每回合估计的Kore数量以及每个船坞在每回合生成飞船的能力,计算可以生成多少用于防御的飞船。
通过模拟结果,智能体可以估计每回合可用于攻击的飞船数量。如果智能体可以利用下文解释的与友方舰队的碰撞,智能体会将碰撞的友方舰队的飞船数量包括在内。
为了增加用于攻击的飞船数量,智能体在通往要攻击的目标对手船坞的路径中途搜索友方舰队。如果智能体有模拟结果,这种搜索相对容易,因为智能体可以获得友方舰队将在哪一回合出现在哪里的信息。如果路径中途有舰队,智能体会选择与该友方舰队碰撞的路径计划。
基于估计的攻击所需飞船数量和可用攻击飞船数量,智能体决定是否发射舰队进行攻击。此外,如果在8个回合内有机会获得比攻击所需数量更多的飞船,那么智能体会等待该回合而不发射新舰队。
通过上述算法,如果碰巧遇到攻击可行的情况,智能体可以精确地选择攻击操作。为了增加攻击可行情况的机会,采矿计划被决定为在每个船坞至少七个回合后,对手最近船坞将拥有的飞船数量将被确保。这种策略在一定程度上降低了采矿效率,但增加攻击机会有助于提高胜率。
除了攻击船坞外,还使用了以下操作:
再次强调,我非常享受这次比赛,并获得了我的最佳排名!
如果你对我的智能体有任何疑问,请随时在评论中提问。谢谢!