将人类玩家的天才升华到量子误差校正中

去年我做了一个公民科学比赛。 它使玩家可以清除量子计算机中的错误,这就是我们称之为解码的过程。 给他们一个很容易理解的问题,但是我们不知道好的解决方法。 通过寻找获得高分的方法,玩家可以积极参与科学研究。

这个问题以简单的益智游戏的形式出现,基于数字网格。 它与当前任何游戏都不十分相似,但与Threes确实具有某些相似之处2048Sudoku 。 我称它为Decodoku。

Decodoku
Decodoku项目可让您参与量子计算机的研究。 decodoku.com

根据去年Decodoku玩家开发的方法,我决定制造一个机器人。 这是根据我们高分者的方法来设计的,目的是要自己达到这样的分数。 然后可以将其合并到实际量子计算机的解码算法中。

它尚未实现这一目标。 它的得分相当不错,但肯定不如启发它的球员那么聪明。 即便如此,它也发现了重要的用途:极大地增强了游戏性。

Decodoku的原始版本有一个简单的文本和图片教程。 给玩家一些关于如何解码的讲座,然后继续进行下去。 当前版本完全不同。 该教程是交互式的,并提出了机器人给出的建议动作。 玩家可以在工作中学习,并获得以前的高得分手的启发。

原始版本在尝试解释其方法时也没有给予玩家太多帮助。 保存文件使玩家可以分享他们如何获得高分的完整故事,但是解释他们为何做出每一步动作的重担仍然由玩家承担。

此错误是我们视为功能之一。 Decodoku的目的是让玩家有成为研究者的感觉,而努力弄清楚这是其中的很大一部分。

即使这样,还是要有一个明智且经验丰富的主管来鼓吹想法。 至少在某种程度上,这是机器人可以扮演的另一个角色。 通过将自己的举动与机器人的举动进行比较,看看他们何时同意和不同意,玩家可能会更好地了解他们在做什么以及为什么。

为了帮助玩家解决这个问题,最好看一下机器人的实际想法。 这就是本文其余部分要讨论的内容。

Decodoku的基础知识

首先,我们应该花一点时间来解释机器人(和玩家)应该做的工作。

在Decodoku中,网格上有一堆数字。 每个都属于一个组。 每个组中的数字加起来等于10的倍数。

随着时间的流逝,数字不断变化。 新团体来了。 老群体变得更大。 一旦足够大,游戏就结束了。

您的工作是防止这种情况。 通过移动数字来保持小组的规模。 通常情况下,小组的增长会比您应付的速度快一点,因此您注定要在某个时候结束游戏。 但是,保存时间越长,您的得分就越高。

在教程游戏中,您将看到组是什么。 下图是一个示例。 不同的组以不同的颜色显示。

通常,您没有足够的动作来清理所有内容,因此您需要确定优先级以获得高分。 这就是该策略的用武之地。

在普通游戏中,您还必须计算出哪些数字属于哪些组。 一场艰苦的比赛是一样的,除了一个正方形总是围绕其内容。 但是我们不会在这里详细介绍这些内容,因为该机器人是专门为教程游戏设计的。

机器人的想法

机器人会考虑每个数字,并询问以下三个问题。

  • 同一组中有多少个数字? 这包括数字本身。 例如,上图中的浅蓝色7与两个数字组成一个组,绿色9与3组成一个组。
  • 小组的中心在哪里? 尽管不是唯一定义,但这是组的中间点。 我们使用质心。 要了解如何对像英国这样的怪异形状进行定义,请参见此处。
  • 号码离市中心有多远? 尽管这看起来很简单,但是有多种定义距离的方法。 该机器人使用的是曼哈顿距离,即垂直距离加上水平距离,因为它反映了数字的实际移动方式。

该机器人还考虑每对数字,以及它们如何相互关联。 对于每对,它询问以下x个问题。

  • 他们相距多远? 我们再次使用曼哈顿距离。
  • 他们属于同一组吗? 来自不同组的数字一起移动会迫使他们的组合并,从而变得更大。 因此,仅合并来自同一组的数字似乎是一个好主意。
  • 如果您经过小组的中心,他们相距多远? 为此,只需将对中两个数字相加到组中心的距离即可。 如果一个人离中心很远,或者两者都离得太远,它将很高。 如果两者相距甚远,即使它们彼此紧邻,也会很高。
  • 他们加起来是10吗? 一起移动数字会使它们加起来,而10的倍数会消失。 因此,如果一对加到10,将它们组合将完全摆脱它们。
  • 他们有多少有用的邻居? 也许这对加起来不等于10。但是,有没有一个邻居可以弥补这一差异呢? 有多少个这样的邻居?
  • 每个邻居有几个,不包括另一个? 两个数字在一个岛上彼此的邻居是否远离其他任何人? 还是有很多其他选择?

这是机器人需要知道的一切吗? 可能不会。 如果您认为其他因素很重要,请通过玩游戏来测试您的理论,并告诉我们您发现了什么。

机器人做什么

给定所有这些信息,该机器人将分配一个对的等级。 为了获得最佳排名,机器人会建议将它们拉近。

我选择的排名有点奇怪,但我会尽力解释。

  1. 属于同一个组的对比不存在的对要好。
  2. 距离小于4的线对要好于距离较大的线对。 距离越小越好。 这会优先处理非常接近的对。 为什么4特别? 不是! 其他方法可能会更好。
  3. 对于距离为4或更大的线对,距离越大越好。 如果处理了所有接近的对,则此规则可确保我们不会忘记引入已经漂浮的东西。
  4. 到组中心的距离越大,效果越好。 如果其他所有条件都相等,则我们将重点放在距离组中心相当远的对上。
  5. 有其他邻居的一对是最好的。 没有其他邻居的配对也很好。 双方都有其他邻居的对还可以。 这优先于修剪从组中逃脱的事物,而不是摆脱孤立的对。 大数对中间的对将最后处理。

在此,较早的规则优先于较晚的规则。 因此,即使根据规则2–5看起来不错,如果它们不满足规则1,它们的排名也将低于任何一对。

您可能不同意此排名的定义。 您可能会注意到,该漫游器感兴趣的某些信息已被忽略。 您可能对如何进行改进有想法。 但愿如此! 通过玩游戏测试您的理论,并告诉我们您发现了什么。

交给你

我不认为Decodoku玩家会为机器人的细节担心太多。 我不希望他们尝试自己制造机器人。

我希望他们考虑的是面对Decodoku网格时他们会问什么问题,以及他们如何使用这些信息。 本文提供了一个示例,但玩家不必那么正式。 任何技巧都可以帮助我们编写出色的量子纠错算法。 让我们知道你发现什么。