501. Kore 2022 | kore-2022
我的解决方案和许多其他人的类似,都是基于 @egrehbbt 提供的基线解决方案。我将尝试描述我对它所做的更改,希望不会遗漏任何重要的内容。如果您有任何问题,请随时提问。
我做的第一个重要改变是为所有行动添加了规划。如果我想创建一个新的船厂,但没有足够的飞船,我会检查在接下来的 5 步中是否会有足够的飞船。如果答案是肯定的,我会选择生成飞船或者什么都不做。对于舰队攻击和船厂攻击也是如此。对于采矿,规划略有不同。我会将当前最佳路线的得分(预期 Kore 除以路线长度)与未来的路线进行比较。如果未来的路线得分足够好,我会等待(即生成飞船或什么都不做)。
事实证明,你通常不需要大量的飞船就能有效地采矿。这是因为采矿百分比的增量与舰队规模呈对数关系。实际上,许多参赛者注意到了相反的问题——采矿效率过高,迅速耗尽了船厂附近的 Kore。那么,如何处理那些不需要用于采矿的飞船呢?你可以创建新的船厂或利用它们进行进攻。我决定选择后者(虽然这并不总是正确的选择)。我根据距离最近敌人的距离选择一个船厂作为我的主船厂。如果有多个船厂距离相同,则拥有最多飞船(计入即将到达的舰队)的那个将成为主船厂。然后我会将飞船发送到该船厂,直到它拥有我飞船总数的一定百分比。这个百分比范围从 55 到 85,具体取决于距离最近敌方船厂的距离。我还有一些其他用于在船厂之间分配飞船的规则,但它们不那么重要,所以我在这里不描述。将 70% 以上的飞船集中在一个船厂通常让我能够轻松占领敌人的船厂,特别是当它们离我很近的时候。
有时即使我有很大的优势,我也会输掉比赛(尽管这在与我自己的代理对战中更为常见)。为了解决这个问题,我创建了 big_attack——一种宏观层面的策略,涉及多个船厂并持续 10-15 步。如果满足条件,我会选择 1 个船厂来领导攻击。其他船厂会在尽可能长的时间内生成飞船,然后将飞船发送到选定的船厂。然后选定的船厂发起攻击。我考虑过像其他人那样进行协同攻击(即同时从多个船厂攻击,而不是先在一个船厂聚集飞船),但我决定不这样做,因为我认为这不会产生太大的影响。
另一种处理方法是 crash_ships,这类似于 @itswin 使用的“消耗战攻击”。如果我在某个船厂(通常是我的主船厂)有大量飞船,我会攻击敌人的船厂,即使我无法占领它,意图是减少该船厂的飞船数量并造成其他困难。
我的一些代理关闭了 crash_ships 或 big_attack(我总是至少启用其中一个)。只开启 big_attack 的代理比只开启 crash_ships 的代理表现稍好,而最好的代理则同时开启了两者。
扩张是 Kore 2022 最重要的部分之一。即使在扩张策略上看似微小的变化也会产生截然不同的结果。这里有两个主要问题:在哪里 和 何时。
我不只是看目标点附近的 Kore,而是根据距离对数值进行加权。如果一个点离目标点更近,其 Kore 会乘以一个更高的数字。除此之外,我尽量不在离敌人太近或离我其他船厂太近的地方扩张。我有 3 条单独的规则(针对第一次扩张、第二次扩张以及所有其他扩张),但差异不足以在此详述。
随着时间的推移,我越来越倾向于更快、安全性更低的扩张。这是否是好主意并不明显(特别是因为我进行鲁莽扩张的代理最初表现更差),但我看到前 5 名的代理在早期攻击中并不那么激进,所以我认为我可以侥幸成功。最后,我是对的。虽然它们收敛花费了更长时间,但进行不安全扩张的代理表现明显更好。我的第一次扩张是最不安全的,而对于其他扩张,我根据飞船数量、可用 Kore 和距离最近敌人的距离来计算安全性。
我对原始解决方案做的其他显著更改是: