约束规划与希克定律

我只是意识到我大约一年都没有在Medium上写任何东西。 这是我想写一段时间的话题。 幸运的是, tansaku提供了重新开始写作的迫切动力,所以我就在这里。 谢谢山姆! 🙂

上学期我选修了研究生的计算机科学课程,称为知识表示 。 知识表示是人工智能的基本领域之一。 它涉及如何以形式语言表示知识并以自动化方式对其进行操作,从而使计算机可以根据编码后的知识做出明智的决策。 如果您发现这些内容难以理解,请不要担心,您无需了解任何内容就可以继续阅读。

在本课程中,向我介绍了约束编程的概念。 这种范例与面向对象或功能方法完全不同。 我之所以这样说,是因为您既不告诉计算机解决方案,也不告诉采取该解决方案的步骤。 您为计算机指定了特定的约束条件,并要求它“神奇地”为您找到答案!

我将通过8 Queens Puzzle对此进行解释。 这个难题的目的是将8个皇后放在棋盘上,以使2个皇后不会互相攻击,即,在同一行或同一列或对角线中不能有2个皇后。 天真的方法是反复试验,但考虑到只有92个解决方案和4,426,165,368种可能的组合,这似乎太乐观了。 您可能会考虑冗长而冗长的贪婪方法或动态编程。 但是,让我举例说明约束编程方法。

约束编程不仅需要4行代码来解决8个问题,而且还需要解决“ N”皇后问题。 不离题,这4行的伪代码为:

  定义8 * 8木板 第一约束:每正好有一个皇后 第二约束:每正好有一个皇后 第三约束:在同一对角线上没有两个皇后 

您只需指定这些约束条件,计算机就会立即为您提供答案。 我发现这种范例很有趣。 如您所知,第2–4行可以以任何顺序编写,执行不是顺序的,因为它们只是约束。 随着学期的进行,我开始对约束编程产生了浓厚的兴趣,它的巨大潜力开始浮现。 在为本课程构建项目时 ,我意识到了一个非常有趣的观点。

我当时正在处理大型数据集,而计算时间却越来越长。 我没有确切的时间,因为我记得20分钟后我终止了该过程。 它多次跨越了20分钟,我减少了试图找到执行终止点并给出答案的约束数量。 我快要达到饱和点并增加了该程序的约束数量。 瞧,执行完成了,一分钟后我得到了答案。 在深入研究这一点后,我了解到约束数量越多,执行速度越快。 起初,这与我矛盾。 如果您的解决方案空间受到严格限制,如何更快地找到答案? 事实证明,约束求解器采用消除方法,并且有更多的约束使其可以丢弃非解。 头脑=吹牛!

正是在这一点上,我顿悟了。 人类的决策过程也是如此吗? 如果我们选择更少,约束更多,我们是否可以做出更快的决策? 我在购买电子产品时遇到了这种情况。 更多的研究导致更多的混乱。 另一方面,如果我只需要从我朋友的一个中选择,这是一个更快的选择。 在后一个示例中,我的选择受到限制,这导致了更快的“解决方案”。 这是否也解释了为什么女性比男性花费更多的时间来决定购买什么? 显然, 被所有八所常春藤盟校的学校录取的女孩比进入一所学校的人更难做出决定。我发现这非常有趣,并给我亲爱的导师Sreeraman Thiagarajan发短信,他很快指出我只是重新发现了希克定律

希克定律或希克-海曼定律描述了一个人由于其可能的选择而做出决定所需的时间:增加选择的数量将对数地增加决定时间。 从数学上讲,它由下式给出:T = b * log2(n + 1)其中,n表示同样可能的选择,b是一个常数,T表示在这些选择中进行选择所需的平均反应时间。

我决定不了解希克定律是否适用于计算机科学,这一新发现让我不知所措。 事实证明,这是Web设计中一个非常重要的因素! 用户必须选择的选项越多-无论是导航,产品还是要查看的图像-做出决策所需的精力就更多。 最终,做出决定所需的精力变得如此巨大,以至于做出决定似乎并不值得。

还记得浏览网站时弹出的烦人的“用户体验”调查吗? 您可能纯粹出于内心的决定而决定填写调查表。 然后,您会看到调查中有50个问题,每个问题有8个选择! 你继续吗? 该调查值得您花费时间和精力吗? 毕竟,这项调查对我没有任何好处。 然后您按关闭按钮并离开调查。

总而言之,在网页设计中,希克定律要求您删除不必要的选择,从而减少用户必须做出的决策数量,加快交互速度并可能增加这些转换。 将内容分类为适当的类别。 删除长的导航列表。 有效利用过滤器和搜索选项。

尽管千差万别,心理学和计算机科学之间似乎是如何结合在一起的,这使我无休止。 我一生都为无法进入更多的学校而感到艰难。 事实证明,这使我能够做出更快(更好)的决定! 🙂