对于创建机器人参加山王挑战赛,您有哪些一般技巧?从考虑挑战到创建机器人,您使用什么策略?您发现什么数据结构最有用?
请为每个答案发布一个提示。
对于创建机器人参加山王挑战赛,您有哪些一般技巧?从考虑挑战到创建机器人,您使用什么策略?您发现什么数据结构最有用?
请为每个答案发布一个提示。
Answers:
当KOTH涉及相对简单的决策集,仅涉及少数参与者(通常为2个)并且具有确定性时,这是一个非常重要的概念。纳什均衡描述了一个“僵局”位置:如果两个参与者决定了他们的两个策略,那么这两个参与者实际上就被锁定在那些位置:任何一个改变其策略的参与者都只会造成额外的漏洞。
纳什均衡很重要的游戏示例包括:
如何找到平衡
实际上,对于大多数简单的游戏来说,找到一个平衡实际上非常简单,而且通常非常直观。一吨左右的各种方法的细节可以在互联网上找到。通常适用的基本概念是创建两个玩家可以使用的可能策略的列表(游戏提供的选项)。如果一种策略被另一种策略“支配”,则可以将该策略从列表中删除,然后重复该过程。所谓“支配”,是指如果策略A总是针对所有其余对手策略给出与策略B相同或更好的结果,则可以从列表中删除策略B。
示例:剪刀石头布
RPS具有所谓的“混合”平衡,这意味着要进行分配。平衡不是要反复打相同的动作(这将导致快速失败),而是要以随机分布玩1/3块石头,1/3纸和1/3剪刀。如果我随机比赛,那么我的对手就无能为力了。如果我的对手选择不随机比赛,那只会在他这一方面造成漏洞。
具有混合平衡的游戏可能是PPCG上最常见的游戏,因为它们可以采取多种形式(我能想到的具有纯平衡的唯一有趣的游戏是囚徒的困境)。我应该注意,混合均衡不必一定是随机的,只是每次都玩相同的举动之外的事情。
使用此信息
游戏的纳什均衡通常代表您应该尝试操作的“基线”。在RPS中,随机播放可确保在包的中间获得一个终点。为了升至最高点,您必须开始确定其他玩家的弱点。
为此,当不确定对手的弱点时,您应该坚持均衡。一旦发现了这些弱点(您已经检测到您的对手没有处于平衡状态),您就需要轻而易举地脱离平衡状态,以利用您的对手。反过来,此操作也会造成您自己的弱点。然后,您必须检测对手何时改变其策略,以便您可以停止攻击并恢复随机比赛。
从平衡中检测变化
这非常困难,我不是专家。变化可以有多种形式:
通常,您可以编写一个可以单独完成任务以帮助团队的机器人,但在游戏内外进行协调时,优势更大。一个很好的例子可以在Red vs. Blue-Pixel Team Battlebots中看到。
在开发过程中,团队能够聊天并讨论如何协调其机器人以使其比单独发挥更好的功能。SphiNotPi3000在技术上是同一个机器人,它是与另一个机器人串联使用的,并且能够以某种方式移动,以解决如果单独使用它会遇到的缺点。最终结果是,即使是他们两个人对付整个其他团队,他们也几乎可以完全统治战场。
因此,在游戏之外,与队友计划和协调涵盖哪些策略。也许有人用机器人对角线扫描了地图?水平扫描(仅作为示例)。在游戏内部,如果挑战允许团队沟通,请利用它。例如,在战斗机器人游戏中,您可以向队友发送有关机器人在其视野之外的位置的信息,然后鼓励他们以兼容的方式编写机器人,以利用这些信号。
对于几乎每一个聪明的策略,都有另一种策略胜过它:例如,您的对手可能会使用与您完全相同的推理来预测您的下一步行动并加以抵消。现在您可以尝试再次猜测对手,但是很难知道何时停止。
另一个问题是,擅长于猜测一个聪明对手的策略可能无法与更简单的对手相提并论。
你怎么解决呢?您让您的机器人即时决定使用哪种策略!
为此,您首先要为机器人提供一系列不同的策略。然后,在每次移动之前,您的机器人都会查看到目前为止已记录的游戏历史,并评估这些不同策略的表现。然后,它会标出最成功的照片。
首先包括强大的策略,将有助于为您的机器人提供很好的选择。但是,您还应该包括一些非常简单的控件,因为它们通常可以更好地对抗愚蠢的对手。
您可能会考虑在某些策略上施加偏见,以避免过度拟合(例如,尝试击败对手只是随机行动的模式),或者在一开始就没有太多信息的情况下偏向某些策略。
当然,这种方法仅适用于某些特定的挑战。在摇滚剪刀布,蜥蜴布,史波克的比赛中,这对我来说真的很好。在其他游戏中,几乎无法评估某个策略在未实际执行的情况下的表现。
这种元方法的一种极端形式(与作弊行为接壤)将把所有其他机器人的已知行为包含到您自己的机器人中,从而可以完美地预测其行为。