Questions tagged «reversible-computing»

1
在线上的并行卵石游戏
在一行上的Pebble游戏中,有N + 1个标记为0到N的节点。该游戏从节点0上的卵石开始。如果节点i上存在卵石,则可以从节点i + 1添加或删除卵石。目的是在节点N上放置一个小石子,而无需同时在板上放置许多小石子,并且无需执行太多步骤。 天真的解决方案是在1、2、3等上放置一个卵石。就步骤数而言,这是最佳的。同时板上的最大卵石数量并不是最佳的:在最后一步中,板上有N个卵石(不计0的卵石)。 在同一时间放置在电路板上较少的卵石策略是在本文中。它们一次到达节点N而不会超过Θ(lgN)Θ(lg⁡N)\Theta(\lg N)小卵石,但是代价是将步数增加到Θ(nlg23)Θ(nlg2⁡3)\Theta(n^{\lg_2 3})。他们切换是否有一个在位置上的卵石NNN而不通过递归地切换周围留下任何其他卵石N/2N/2N/2,使用作为起始点到肘节NNN与另一递归步骤,则切换N/2N/2N/2与第三半尺寸递归步骤以清除它。 我对卵石的最大数量和步骤数之间的权衡取舍很感兴趣,假设卵石的添加和去除可以并行进行。“平行”是指每个步骤可以根据需要添加或删除任意数量的卵石,只要允许每个单独的添加/删除并且不与进行的其他移动相互作用即可。具体来说,如果AAA是我们要添加或删除卵石的节点集合,而PPP是在步骤开始时具有卵石的节点集合,则我们可以在单个步骤中完成所有这些添加和去除操作,如下所示:只要{a−1|a∈A}⊆P−A{a−1|a∈A}⊆P−A\{a-1 | a \in A \} \subseteq P - A。 例如,考虑在步骤i上将卵石放置在iii上但标记为√的倍数的卵石的策略iiiN−−√N\sqrt{N}作为“检查点”,并在可能的情况下除去有卵石的检查点后面的最高索引的卵石。这种策略仍然到达节点N后NNN步骤,例如幼稚的策略,但降低卵石的最大数目从NNN到2N−−√2N2 \sqrt{N}。 是否有以步完成的平行线扰动策略,甚至具有更低的渐近最大卵石复杂度?如果我们愿意允许O (N lg N )个步骤怎么办?在最大卵石和时间之间的权衡特别好的“有趣”点是什么?NNNO(NlgN)O(Nlg⁡N)O(N \lg N)

1
高阶程序的程序反转算法
程序反转一词 具有多种含义,但可能始于麦卡锡(J. McCarthy)1956年的著作《图灵机在AI中定义的功能反转》。到目前为止,已经发现了程序反转和其他领域之间的许多联系,例如可逆编程(物理和逻辑),部分评估,验证,双向编程,逻辑编程和机器学习。 什么是程序反转?在第一个近似中,它是这样的:给定程序接受类型参数 并返回类型结果,产生一个程序,它“某种程度上”是的逆。我故意在这里含糊不清,因为可以用多种方式(和已经)阐明这个概念:例如,必须是内射的?是否应 返回所有或部分,使得?P:A → BP:一个→乙P : A \rightarrow BB P − 1 P P P − 1(b )a P (a )= b一个一个A乙乙BP− 1P-1个P^{-1}PPPPPPP− 1(b )P-1个(b)P^{-1}(b)一个一个aP(a )= bP(一个)=bP(a) = b 有一些通用的方法可以使程序求逆,例如使用麦卡锡已经指出的对角化或使用部分评估,但它们往往效率不高。同样,我熟悉的大多数程序反转工作似乎都无法处理完整的高阶编程语言(即 -calculi)。λλ\lambda 参考要求。用于 -calculi的程序求逆的显式算法的最新技术是什么(不限制高阶)?λλ\lambda
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.