最优评估者实际上是最优的吗?


10

以下术语(使用bruijn-indexes):

BADTERM = λ((0 λλλλ((((3 λλ(((0 3) 4) (1 λλ0))) λλ(((0 4) 3) (1 0))) λ1) λλ1)) λλλ(2 (2 (2 (2 (2 (2 (2 (2 0)))))))))

当应用于教会人数时N包括幼稚的评估者在内的数个现有评估者会迅速将其评估为正常形式。但是,如果您将该术语编码为交互网络并使用Lamping的抽象算法对其进行评估,则它相对于会以指数形式减少β的减少N。在Optlam上,特别是:

N   interactions(betas)     (BADTERM N)
1   129(72)                 λλλ(1 (2 (2 (2 (2 (2 (2 (2 0))))))))
2   437(205)                λλλ(2 (1 (2 (2 (2 (2 (2 (2 0))))))))
3   976(510)                λλλ(1 (1 (2 (2 (2 (2 (2 (2 0))))))))
4   1836(1080)              λλλ(2 (2 (1 (2 (2 (2 (2 (2 0))))))))
5   3448(2241)              λλλ(1 (2 (1 (2 (2 (2 (2 (2 0))))))))
6   6355(4537)              λλλ(2 (1 (1 (2 (2 (2 (2 (2 0))))))))
7   11888(9181)             λλλ(1 (1 (1 (2 (2 (2 (2 (2 0))))))))
8   22590(18388)            λλλ(2 (2 (2 (1 (2 (2 (2 (2 0))))))))
9   43833(36830)            λλλ(1 (2 (2 (1 (2 (2 (2 (2 0))))))))
10  85799(73666)            λλλ(2 (1 (2 (1 (2 (2 (2 (2 0))))))))
11  169287(147420)          λλλ(1 (1 (2 (1 (2 (2 (2 (2 0))))))))
12  335692(294885)          λλλ(2 (2 (1 (1 (2 (2 (2 (2 0))))))))
13  668091(589821)          λλλ(1 (2 (1 (1 (2 (2 (2 (2 0))))))))
14  1332241(1179619)        λλλ(2 (1 (1 (1 (2 (2 (2 (2 0))))))))
15  2659977(2359329)        λλλ(1 (1 (1 (1 (2 (2 (2 (2 0))))))))

在类似BOHM之类的评估器上,它需要更少的beta步骤,但需要更多的交互。如果最优评估者是最优的,他们如何比现有评估者渐近地评估术语?

此链接对术语的起源进行了解释,并且对具有相反功能的同一函数的实现进行了解释,这几乎是奇怪的:它应该在指数时间内运行-在大多数评估器中确实在指数时间内运行-然而,最优评估者可以在线性时间内对其进行归一化!

Answers:


5

optlam的效率

我没有研究过BADTERM的细节,也没有研究optlam评估器的实现,但我发现optlam与其他最佳评估器(如BOHM)完全不同的ß交互作用非常奇怪。根据定义,该数字在给定术语上必须基本相同。您确定optlam核心的正确性吗?

最佳评估者的效率

回想一下,这些评估器的最优性概念更恰当地称为Lévy最优性,它不是天真的,因为无法计算减少执行最少ß步骤的策略。那么,最小化的是对整个redex家族执行的并行ß减少步骤的数量,大致是通过对称和传递性关闭该关系而获得的集合,当一个副本从另一个副本复制时,该绑定绑定了两个redex。通常,看到ß步骤的数量与其余重复步骤之间的差异并不奇怪,因为我们知道,大多数标准化负荷都可以从前者转移到后者,如Asperti,Coppola和马提尼[1]。

我们也不会惊奇地发现,使用最佳评估者对一个术语进行归一化所需的交互总数要比普通评估者少,因为以前的经验观察已经显示出显着的性能改进。尽管如此,从指数时间到线性时间的如此巨大的复杂性跳跃也许是被发现的首例。(我会检查的。)

另一方面,关于最优归约效率的理论结果(这是你的大问题)仍然很少,而且还不是通用的,因为它们仅限于EAL型证明网(基本上与最优约束相同)评估者,如果我正确理解的话),但都略有正面,因为在最坏的情况下,分摊减少的复杂性受一个普通因素的限制,其常数因子为[2,3]。

参考文献

  1. A. Asperti,P。Coppola和S. Martini, (最佳)复制不是基本递归,《信息与计算》,第1卷。193,2004。
  2. P. Baillot,P。Coppola和U. Dal Lago, 光逻辑与最优归约:完整性和复杂性》,信息与计算,第1卷。209号 2,第118–142页,2011年。
  3. S. Guerrini,T。Leventis和M. Solieri,“ 深入探讨最优性-共享有界逻辑实现的复杂性和正确性”,DICE 2012,爱沙尼亚塔林,2012。

Such a number must be, by definition, basically the same on a given term所以我认为。这让我感到惊讶,因为在我测试的许多情况下,Optlam都提供了与BOHM相同数量的beta版本。在某些情况下,由于其按需调用策略,它给出的内容较少。有人告诉我,没有预言的减少实际上并不是最优的,现在我不知道了。总而言之,我深感困惑。但是,绝对没有任何证据可以证明Optlam能够正确运行。我正在考虑您的其余评论-谢谢。
MaiaVictor

而且,我实际上发现了许多行为类似于Badterm的术语。我正在进一步研究该问题,因此可以找到更简单的术语来复制它。
MaiaVictor

对于最佳评估者(包括BOHM),一种并行的按需调用策略是标准的,因为这对于Lévy优化本身是必需的。oracle并非必须最佳地优化任何λ项:分层项(例如EAL类型的项)不需要它。
Marco Solieri 2015年

哦,那我的坏。无论如何,只是为了确保我理解它,当您考虑重复项(不仅是beta)时,即使在EAL类型的情况下,对于最优评估程序而言,可能会有渐近地减少的项?在那种情况下,我想知道为什么仅计算beta步数有意义,以及使用交互网络减少λ微积分的目的真的有什么好处...
MaiaVictor

1
啊哈!那么有没有EAL可键入的术语可以不用oracle来简化吗?我以为如果Optlam减少了它,那它就是EAL型的(因为我没有EAL类型推断器)。如果不是这种情况,那么现在一切都有意义。由于EAL可键入术语的子集具有足够的能力来表示诸如排序之类的任何多时间算法,因此我认为专门尝试设计EAL可键入术语是明智的。我不知道如何在实践中完成。非常感谢。
MaiaVictor
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.