try ai
科普
编辑
分享
反馈
  • 逻辑约束:塑造我们世界的规则

逻辑约束:塑造我们世界的规则

SciencePedia玻尔百科
核心要点
  • 复杂的口头规则可以被翻译成布尔代数,并进行系统性简化,以揭示其本质的逻辑结构。
  • 逻辑约束可以被转换为数学不等式,从而使整数线性规划等强大的优化技术能够解决复杂的决策问题。
  • 逻辑规则不仅仅是抽象概念,它们是生物学的基因调控到人工智能系统设计等不同领域的基本构建模块。
  • 逻辑学研究是一个不断发展的领域,包括像相干逻辑这样的替代系统,这些系统挑战经典原则,以更好地与直觉推理保持一致。

引言

我们的世界由规则支配,从法律法规到工程蓝图。然而,我们用以表达这些规则的自然语言常常是模棱两可的,导致错误和漏洞。我们如何才能强制精确,并揭示这些复杂约束的真正本质呢?答案在于形式逻辑的语言,这是一种以数学的严谨性来提炼、分析和应用规则的强大工具。本文探讨逻辑约束的世界,展示“如果-那么”和“与/或”这些简单原则如何扩展以解决艰巨的挑战。

我们将在“原理与机制”一章开始我们的旅程,学习如何将口头规则转化为布尔代数,简化它们,并用它们来构建牢不可破的真理。我们还将看到逻辑如何通过整数线性规划等技术成为优化的强大引擎。然后,在“应用与跨学科联系”中,我们将见证这些原则的实际应用,发现逻辑约束如何塑造一切,从我们电子设备中的电路和我们DNA的调控语法,到人工智能的前沿。

原理与机制

规则的提炼:从言语到智慧

我们生活在一个由规则编织的世界里。有些规则很简单(“如果红灯亮,就停车”),而另一些则是条件、例外和依赖关系的复杂网络,就像在法律合同、工程规范或金融法规中找到的那样。人类语言的表达力极强,但当精确性至关重要时,其模糊性往往成为一个弱点。我们如何能确定我们已经正确理解了规则,没有隐藏的漏洞或矛盾?

我们旅程的第一步是看看如何将这些杂乱的口头规则提炼成一种纯粹、晶莹剔透的形式。这就是​​布尔代数​​——逻辑语言的魔力。让我们考虑一个涉及容错服务器系统操作规则的实际(尽管是假设的)场景。手册中可能会这样陈述规则:

  1. 如果安全监控器在线且主数据中心处于活动状态,则系统可操作。
  2. 如果安全监控器在线,主数据中心不活动,且主负载均衡器处于活动状态,则系统也可操作。
  3. 此外,如果安全监控器、管理员覆盖和备份数据中心都处于活动状态,则系统可操作。
  4. 最后,一个故障保护机制确保在管理员覆盖和安全监控器都处于活动状态时,系统可操作。

这真是一大堆话。对于计算机来说,这只是文本。对于逻辑学家来说,这是一个等待被揭示的结构。我们为每个组件分配一个二进制变量:SSS 代表安全监控器,MMM 代表主数据中心,LLL 代表负载均衡器,AAA 代表管理员覆盖,BBB 代表备份数据中心。值为 111 表示“活动”或“开启”,000 表示“不活动”或“关闭”。现在,我们可以将英文规则翻译成系统操作状态 FFF 的逻辑表达式:

F=(S⋅M)+(S⋅M′⋅L)+(S⋅A⋅B)+(S⋅A)F = (S \cdot M) + (S \cdot M' \cdot L) + (S \cdot A \cdot B) + (S \cdot A)F=(S⋅M)+(S⋅M′⋅L)+(S⋅A⋅B)+(S⋅A)

在这里,点(⋅\cdot⋅)表示“与”,加号(+++)表示“或”,撇号(′'′) 表示“非”。这是一个直接的翻译。但真正的力量并非来自翻译,而是来自转换。逻辑有其自身的物理定律,其自身的简化规则。

看最后两项:(S⋅A⋅B)+(S⋅A)(S \cdot A \cdot B) + (S \cdot A)(S⋅A⋅B)+(S⋅A)。这是​​吸收律​​的一个例子,X+XY=XX + XY = XX+XY=X。如果我们知道故障保护(S⋅AS \cdot AS⋅A)是活动的,那么备份数据中心也活动的更具体条件(S⋅A⋅BS \cdot A \cdot BS⋅A⋅B)就是多余的。如果一般情况为真,我们就不需要检查具体情况。所以,表达式简化为 F=(S⋅M)+(S⋅M′⋅L)+(S⋅A)F = (S \cdot M) + (S \cdot M' \cdot L) + (S \cdot A)F=(S⋅M)+(S⋅M′⋅L)+(S⋅A)。

现在看前两项:(S⋅M)+(S⋅M′⋅L)(S \cdot M) + (S \cdot M' \cdot L)(S⋅M)+(S⋅M′⋅L)。我们可以提出 SSS 得到 S(M+M′L)S(M + M'L)S(M+M′L)。M+M′LM + M'LM+M′L 是什么意思?它说“要么主数据中心活动,要么主数据中心不活动且负载均衡器活动。”稍加思索就会发现,这与说“要么主数据中心活动,要么负载均衡器活动”是相同的。在逻辑中,这是恒等式 X+X′Y=X+YX + X'Y = X + YX+X′Y=X+Y。所以,我们的表达式变得更简单了:F=S(M+L+A)F = S(M + L + A)F=S(M+L+A)。

将 SSS 分配回去,得到最终的最小形式:

F=S⋅A+S⋅M+S⋅LF = S \cdot A + S \cdot M + S \cdot LF=S⋅A+S⋅M+S⋅L

这太美了!四个复杂的规则被提炼成一个简单、优雅的核心:如果安全监控器处于活动状态,并且管理员覆盖已启用,或主数据中心处于活动状态,或负载均衡器处于活动状态,则系统可操作。我们运用了逻辑的刚性规则,在复杂的语言中找到了隐藏的简单真理。这不仅仅是一个学术练习;这正是工程师们设计和验证为我们世界提供动力的复杂数字电路的过程。

通用构建模块与牢不可破的真理

在发现了一种简化规则的语言后,我们可以提出一个更深层次的问题:这种语言本身是否有其固有的、普适的真理?是否存在一些陈述,无论如何,仅仅因为它们的逻辑形式就为真?

这些被称为​​重言式​​。想象一下为一艘深空探测器设计诊断系统,该探测器有三个冗余的微控制器。你希望内置一些始终可靠的基本逻辑检查。考虑这个陈述:“‘至少有一个微控制器在工作’的情况为假,当且仅当所有三个微控制器都不在工作。”这感觉是对的,不是吗?让我们将其形式化。设 ppp、qqq 和 rrr 分别为微控制器1、2和3正在工作的命题。该陈述变为:

¬(p∨q∨r)↔(¬p∧¬q∧¬r)\neg(p \lor q \lor r) \leftrightarrow (\neg p \land \neg q \land \neg r)¬(p∨q∨r)↔(¬p∧¬q∧¬r)

这是​​德摩根定律​​的一个版本,是逻辑学的基石。通过构建一个检查微控制器所有 23=82^3=823=8 种可能状态的真值表,我们发现这个陈述在每一种情况下都为真。它是一个重言式。这是一个牢不可破的真理,就像物理定律一样确定,我们可以将其构建到探测器的固件中,确信它永远不会让我们失望。

这引出了一个更为深刻的想法。我们有这些逻辑运算——与、或、非、蕴含。我们需要多少基本部分来构建所有这些运算?是否存在逻辑的单一“原子”?惊人的答案是肯定的。考虑 ​​与非(NAND)​​ 运算,它代表“非与”。写作 p↑qp \uparrow qp↑q,它等价于 ¬(p∧q)\neg(p \land q)¬(p∧q)。它可能看起来不起眼,但它是一个通用的构建模块。这个属性被称为​​功能完备性​​。

例如,一个只能使用与非门的工程师如何构建逻辑蕴含 p→qp \rightarrow qp→q 的电路?。蕴含 p→qp \rightarrow qp→q 等价于 ¬p∨q\neg p \lor q¬p∨q。通过使用德摩根定律进行一些代数操作,人们可以发现这个配方:

p→q≡¬p∨q≡¬(p∧¬q)≡p↑(¬q)p \rightarrow q \equiv \neg p \lor q \equiv \neg(p \land \neg q) \equiv p \uparrow (\neg q)p→q≡¬p∨q≡¬(p∧¬q)≡p↑(¬q)

我们如何得到 ¬q\neg q¬q?用与非门很简单:¬q≡q↑q\neg q \equiv q \uparrow q¬q≡q↑q。所以,最终的构造是:

p→q≡p↑(q↑q)p \rightarrow q \equiv p \uparrow (q \uparrow q)p→q≡p↑(q↑q)

这是一个惊人的结果。从一个单一、简单的运算,我们可以构建出整个逻辑思维的体系。每一个复杂的软件,每一个视频游戏,每一个AI算法,在其最深的物理层面,即在微芯片的硅片中,都是由无数个像与非门这样的单一、通用逻辑原子的组合构成的。这是复杂性从简单性中涌现的终极体现。

从描述到决策:作为优化工具的逻辑

到目前-为止,我们已经使用逻辑来描述和简化世界。但它最大的力量可能在于它帮助我们决策的能力。我们不只想知道一个商业计划是否有效;我们想找到遵循所有规则并最大化利润的最佳计划。这就是逻辑向优化世界迈出的惊人一步,通过一个名为​​整数线性规划(ILP)​​的框架。

其核心思想是将逻辑约束转化为涉及只能取整数值(通常仅为 000 或 111)的变量的数学不等式。这将一个逻辑问题转化为一个几何问题:在由这些不等式定义的一个复杂、高维形状内找到最佳点。

让我们在一个资本预算问题中看看这是如何运作的,公司必须从一组项目 A,B,C,DA, B, C, DA,B,C,D 中进行选择。我们定义二进制决策变量 xA,xB,xC,xDx_A, x_B, x_C, x_DxA​,xB​,xC​,xD​,其中如果我们选择项目 iii,则 xi=1x_i=1xi​=1,否则 xi=0x_i=0xi​=0。

  • ​​逻辑约束​​:“项目A和B是互斥的。”

    • ​​ILP翻译​​:最多只能选择一个。它们的变量之和必须不大于1。
    • xA+xB≤1x_A + x_B \le 1xA​+xB​≤1
  • ​​逻辑约束​​:“只有在承担项目B的情况下,才能承担项目C。”(如果 xC=1x_C=1xC​=1,则 xB=1x_B=1xB​=1。)

    • ​​ILP翻译​​:C的变量永远不能大于B的变量。
    • xC≤xBx_C \le x_BxC​≤xB​
  • ​​逻辑约束​​:“项目A或D中至少必须选择一个。”

    • ​​ILP翻译​​:它们的变量之和必须至少为1。
    • xA+xD≥1x_A + x_D \ge 1xA​+xD​≥1

这些翻译惊人地简单和优雅。它们将语义关系转化为计算机可以处理的代数关系。我们甚至可以为更复杂的逻辑建模,比如数字电路中的异或(XOR)门,当其两个输入不同时输出 111。约束 gA=p1⊕p2g_A = p_1 \oplus p_2gA​=p1​⊕p2​ 可以通过一组四个线性不等式来编码,包括 gA≤p1+p2g_A \le p_1 + p_2gA​≤p1​+p2​ 和 gA≥p1−p2g_A \ge p_1 - p_2gA​≥p1​−p2​。

通过以这种方式编码系统的所有逻辑规则,并添加一个线性目标函数以最大化(如利润)或最小化(如成本),我们创建了一个ILP模型。然后我们可以将这个模型交给一个强大的求解器,这是一种软件,它可以在一个可能比宇宙中原子数量还要大的可能性空间中搜索,并返回一个可证明的最优决策。航空公司就是这样安排航班的,物流公司就是这样规划卡车路线的,能源网络也是这样管理的。它是现代经济的无声引擎,全部由将逻辑转化为数字的简单思想驱动。

逻辑建模的艺术与技巧

将逻辑转化为数学是强大的,但它也是一门艺术。你如何编写约束条件会对问题求解的难易程度产生巨大影响。建模者工具箱中的一个经典工具是​​“大M”方法​​。

想象一个将二元选择与连续行为联系起来的规则:“如果我们决定生产产品P1(即生产数量 x1>0x_1 > 0x1​>0),那么我们必须激活一条特殊的生产线,产生至少为 LLL 的劳动力成本 yyy”。这个“如果-那么”陈述很棘手,因为它混合了逻辑和连续值。

大M技巧是引入一个二元“辅助”变量 z∈{0,1}z \in \{0, 1\}z∈{0,1}。我们用两个新约束将它与我们的变量联系起来:

  1. x1≤Mzx_1 \le M zx1​≤Mz
  2. y≥Lzy \ge L zy≥Lz

在这里,MMM 是一个“大数”——一个被选为生产数量 x1x_1x1​ 的安全上限的常数。让我们看看这是如何工作的。如果我们决定生产任何东西(x1>0x_1 > 0x1​>0),第一个约束 x1≤Mzx_1 \le Mzx1​≤Mz 会立即强制 zzz 为 111。如果 zzz 是 111,第二个约束 y≥Lzy \ge Lzy≥Lz 就变成 y≥Ly \ge Ly≥L,强制执行了所需的劳动力成本。如果我们不生产任何东西(x1=0x_1 = 0x1​=0),第一个约束允许 zzz 为 000。如果 zzz 是 000,第二个约束只是说 y≥0y \ge 0y≥0,这通常是一个标准的非负条件,不会增加新的负担。逻辑被完美地捕捉了!

然而,这个优雅的技巧也有其阴暗面。MMM 的选择至关重要。如果 MMM 选得太小,它可能会意外地禁止有效的生产计划。如果选得太大(例如,当模型中所有其他数字都在 100100100 左右时,选择 10910^9109),它可能会造成严重的​​数值不稳定性​​。求解器依赖于有限精度算术,混合数量级差异巨大的数字就像试图用大锤制造精密手表。它可能导致舍入误差,使算法失败或返回错误答案。

大M方法的这一弱点促使了更复杂技术的发展。现代优化求解器现在支持​​指示性约束​​。建模者可以声明性地陈述逻辑,而不是使用手动的大M技巧:例如,“x=0⇒y=0x=0 \Rightarrow y=0x=0⇒y=0”。然后,求解器在内部处理这个逻辑,使用智能分支策略或生成定制的“切割平面”,在不引入巨大、不稳定的常数的情况下收紧模型。这种从手动“技巧”到声明性“陈述”的转变代表了该领域的演进,使得逻辑优化的力量更加稳健和易于获取。

质疑游戏规则本身

在我们的整个旅程中,我们一直在​​经典逻辑​​的世界里操作,这是我们在学校里学习的熟悉系统。它有一个奇特而强大的特性,我们大多数人从未质疑过:​​爆炸原理​​。这个原理,也称为 ex falso quodlibet(“从谬误可推出一切”),指出从一个矛盾中,可以推导出任何结论。用符号表示:

A,¬A⊢BA, \neg A \vdash BA,¬A⊢B

如果你以“天是蓝的”和“天不是蓝的”为前提,经典逻辑允许你有效地得出“牛会飞”的结论。这感觉对吗?

对一些逻辑学家来说,这并不对。他们对前提和结论之间完全缺乏相关性感到困扰。这种不满催生了​​相干逻辑​​,一个旨在强制执行“常识”相关性概念的系统。

相干逻辑如何防止爆炸?在形式系统中,这个原理的经典证明通常依赖于一个称为​​弱化​​的结构规则,该规则允许你随时在结论列表中添加任何任意公式。正是这个规则让你能够将“牛会飞”悄悄地引入图中。相干逻辑只是禁止了弱化规则。通过扔掉这一个规则,整个逻辑的特性都改变了。

这样做的一个美好结果是​​变量共享属性​​:在相干逻辑中,要使一个推导 Γ⊢C\Gamma \vdash CΓ⊢C 有效,结论 CCC 中的每个命题变量也必须出现在前提 Γ\GammaΓ 的某处。在我们的例子 p,¬p⊢qp, \neg p \vdash qp,¬p⊢q 中,变量 qqq 出现在结论中,但没有出现在前提中。因此,这个推导从一开始就是无效的。相关性在根本层面上得到了强制执行。

这最后一个例子揭示了逻辑并非一块从古代流传下来的单一、巨大的石碑。它是一个充满活力的、由不同形式系统构成的生动景观,每个系统都建立在对推理本质略有不同的公理和直觉之上。通过研究这些逻辑约束,我们不仅学会了制造更快的计算机和做出更明智的决策,而且还开始了对思维结构本身的更深层次的探究。

应用与跨学科联系

我们花了一些时间来理解逻辑约束的机制,即构成理性基石的与、或、非这些简单明了的规则。人们很容易将这些思想留在数学或哲学的纯净领域,作为抽象的思维工具。但这样做就错过了重点。事实证明,大自然是一位多产的逻辑学家。从我们周围平凡的电子产品到我们自身细胞最深层的运作,甚至到时间和因果关系的结构本身,宇宙都建立在一个逻辑规则的脚手架上。我们现在的旅程是去观察这一原则的实际应用,去发现这些简单的约束如何结合起来,创造出我们周围看到的令人惊叹的复杂性。

想想你车里那个不起眼的安全带警示灯。它看起来很简单,但却是逻辑约束在实践中的一个微小而完美的体现。该系统不需要“智能”;它只需要遵循几条严格的规则。警示灯亮起当且仅当点火开关打开,并且驾驶员座位被占用,并且安全带未扣。如果这些条件中的任何一个为假,灯就保持熄灭。再加一条规则——警报声响起当且仅当警示灯亮着并且汽车挂挡——你就用同样的基本模块构建了一个稍微复杂一点的系统。这就是[组合逻辑](/sciencepedia/feynman/keyword/combinatorial_logic)电路的本质。它是一个布尔表达式的物理体现,一个用逻辑语言写成的简单句子,忠实地、毫无差错地执行其指令。

这种结合简单规则以产生复杂行为的想法并非人类工程师的发明;它是直接从大自然自己的剧本中借鉴而来的。几十年来,生物学中一个主导的隐喻是“遗传密码”,即认为DNA是构建蛋白质的简单查找表。但这未能解释一个更深的谜团:细胞如何知道哪些基因在何时开启?为什么肝细胞会激活一套与脑细胞不同的基因,尽管两者都含有相同的DNA?

科学家们发现,答案在于一个更复杂的隐喻:“调控语法”。基因的调控不是一个单一的命令,而是一个计算,一个信息处理事件。想象一个基因的控制区域——它的增强子——就像一个开关面板。为了让基因被转录,一种叫做[激活蛋白](/sciencepedia/feynman/keyword/activator_protein)的特定蛋白质必须存在并与面板结合。这是我们的与条件。但另一种蛋白质,[阻遏蛋白](/sciencepedia/feynman/keyword/repressor),可能会结合到另一个开关上,并像一个总否决权一样,关闭整个过程,实现一个强大的非条件。还有另一种蛋白质,增强蛋白,它本身可能没有效果,但当与激活蛋白一起存在时,它可以将转录提升到高水平,产生一种协同效应。

这正是在复杂图案形成过程中起作用的逻辑,比如昆虫翅膀上的斑点。翅膀的不同区域产生这些转录因子蛋白质的不同组合。在一个区域,只有激活蛋白存在,导致一个浅色斑点。在另一个区域,激活蛋白和阻遏蛋白都存在,所以阻遏蛋白胜出,没有斑点。在第三个区域,激活蛋白和增强蛋白共同作用,创造出一个深色、饱和的斑点。复杂而美丽的最终图案不是由一位伟大的设计师绘制的,而是从一个简单的逻辑程序的执行中自动涌现的,这个程序用蛋白质和DNA的语言编写,在成千上万个单个细胞中重复。生命本身就是一台计算机。

一旦我们认识到将规则表达为逻辑约束的力量,我们就可以利用它来解决复杂得惊人的问题。考虑一个经典的逻辑谜题:Alice、Bob、Carol和David有四份不同的工作,你得到了一系列线索来找出谁做什么。你的大脑通过迭代应用约束来解决这个问题:“如果Bob是医生,那么他就不可能是老师”,等等。我们可以通过将这些规则翻译成一种形式语言来教计算机做同样的事情。像“Alice最多只有一种职业”这样的陈述被分解为一系列基本子句:“Alice是工程师与是医生这件事是假的”,“Alice是工程师与是老师这件事是假的”,依此类推,对所有工作对都如此。

当我们将整个谜题翻译成这种称为合取范式(CNF)的形式语言时,我们将其变成了一个[布尔可满足性问题](/sciencepedia/feynman/keyword/boolean_satisfiability_problem)(SAT)。神奇之处在于:我们有通用的“SAT求解器”,这些算法非常擅长找到一个解——即为所有变量赋予真和假——同时满足每一个子句。这些求解器被用来验证计算机芯片设计、在软件中寻找错误,以及解决涉及数百万约束的后勤问题。

但我们的世界并非纯粹的二元世界。我们经常处理连续的量,如时间、成本或温度。我们如何将清晰的如果-那么逻辑嵌入到数值优化问题中呢?这一挑战催生了[混合整数规划](/sciencepedia/feynman/keyword/mixed_integer_programming)领域中一种非常聪明的技术。假设你正在为一个复杂的项目做排程。你有一个逻辑规则:“如果我们决定进行可选的Alpha项目,那么Beta项目必须在时间TdelayT_{delay}Tdelay​之后才能开始。”

我们可以用一个二元变量xAx_AxA​来表示做Alpha项目的决定,如果我们做,它就是111,如果不做就是000。Beta项目的开始时间是一个连续变量tBt_BtB​。诀窍是引入一个极其巨大的数字MMM——一个大到足以保证比任何合理的开始时间都大的数字。然后我们写出以下线性不等式:

tB≥Tdelay−M(1−xA)t_B \ge T_{delay} - M(1 - x_A)tB​≥Tdelay​−M(1−xA​)

让我们看看这会做什么。如果我们选择做Alpha项目,那么xA=1x_A = 1xA​=1,项M(1−xA)M(1-x_A)M(1−xA​)变为零,约束简化为tB≥Tdelayt_B \ge T_{delay}tB​≥Tdelay​。逻辑规则被强制执行。但如果我们选择不做Alpha项目,那么xA=0x_A = 0xA​=0,约束变为tB≥Tdelay−Mt_B \ge T_{delay} - MtB​≥Tdelay​−M。由于MMM非常大,这就像说“开始时间必须大于某个巨大的负数”,这总是成立的,并且对tBt_BtB​没有真正的限制。约束实际上消失了!这种“大M”方法是将逻辑注入数值问题的通用工具,使我们能够构建模型来决定开设哪个工厂、飞机航线如何规划,或如何根据条件规则控制化工厂。

这种方法的表达能力几乎是无限的。我们甚至可以为一个富有创造性且极具人类特色的任务建模,比如构建一个填字游戏。我们可以为每个可能填入每个空位的单词以及哪个字母出现在哪个方格中定义二元变量。然后我们写下约束条件:每个空位最多只能有一个单词;如果一个单词被选中,它的字母必须占据相应的方格;并且至关重要的是,在每个交叉点,来自横向单词的字母必须等于来自纵向单词的字母。我们甚至可以添加美学约束,比如“不允许单个的黑色方格”。结果是一个巨大的[整数线性规划](/sciencepedia/feynman/keyword/integer_linear_programming)问题。然后我们将这座由逻辑约束堆成的山交给一个优化器,让它找到一个有效的单词排列,比如说,最大化它们分数的总和。机器并不“有创造力”,但通过勤奋地满足我们列出的每一条规则,它可以产生一个看似有创造力的解决方案。

这把我们带到了现代人工智能的前沿。多年来,人工智能一直由机器学习模型主导,如深度神经网络,它们在从数据中学习模式方面表现出色,但对逻辑或规则没有天生的理解。这可能导致它们犯下荒谬的错误。一个新兴且令人兴奋的领域,有时被称为神经符号AI,旨在弥合这一差距。如果我们能够构建一个既能从数据中学习又尊重逻辑约束的模型呢?

一种方法是将约束重新想象成“软”惩罚,而不是刚性墙壁。我们定义一个[基于能量的模型](/sciencepedia/feynman/keyword/energy_based_models),其中特定配置的“能量”在它符合数据并尊重规则时较低,而在不符合时较高。像“x1x_1x1​蕴含x2x_2x2​”这样的逻辑规则可以被编码为一个惩罚函数,例如,(x1(1−x2))2(x_1 (1-x_2))^2(x1​(1−x2​))2。如果规则被满足,这个函数为零,否则为正。模型在训练期间的目标是最小化一个由数据驱动和逻辑驱动两部分组成的总结能量。它学会找到一个很好的折中方案——这些方案很好地拟合数据中的模式,同时被强烈鼓励(尽管不是绝对强制)遵守我们提供的逻辑法则。这种方法有望创造出更稳健、可解释和值得信赖的AI。

我们已经在我们的机器中,我们的细胞中,以及我们的算法中看到了逻辑约束。最终的极限是什么?逻辑只是我们发明的一种工具,还是它本身就是现实的一个特征?考虑最后一个令人费解的思想实验。想象你制造了一台可以将一位信息发送到一分钟前的机器。你决定了一个简单的、确定性的规则:机器将读取它即将从未来接收到的比特,通过一个[非门](/sciencepedia/feynman/keyword/not_gate)运行它,然后将反转的结果发送回去。让我们称未来比特的值为BfutureB_{future}Bfuture​。机器发回值NOT(Bfuture)\text{NOT}(B_{future})NOT(Bfuture​)。但这个到达过去的信号,就是设定未来比特值的东西。因此,该系统受一个单一、可怕的约束支配:

Bfuture=NOT(Bfuture)B_{future} = \text{NOT}(B_{future})Bfuture​=NOT(Bfuture​)

如果BfutureB_{future}Bfuture​是000,它必须是111。如果它是111,它必须是000。在经典逻辑的规则下,这个陈述是一个悖论。它没有解。该系统在逻辑上是不一致的。

这类悖论可以被表述,但我们并未观察到它们发生,这一事实具有深刻的启示性。它暗示宇宙本身必须是自洽的。因果律原则——即结果不能发生在其原因之前——可以被视为一个禁止形成此类逻辑矛盾的基本元约束。从这个角度来看,逻辑约束不仅仅是一个抽象概念。它们被编织在宇宙最深的结构中,是一个使宇宙可知、可预测,并最终成为真实的基本原则。