《时间环路软件》(2013)

2020-11-10 00:10:03

如果有可能写出能够进行时间旅行的软件呢?如果我们可以编写能够在不久的将来某个时候从计算中检索结果的软件,会怎么样?这款软件会是什么样子呢?有哪些问题可以解决?

时间循环逻辑是一种假想的计算系统,它利用了诺维科夫自洽原理。在这个系统中,计算机能够通过时间向后发送计算结果,并依靠自洽原理强制发送的结果是正确的。这个未来主义的概念现在看起来可能是不可能的,但我可以想象,试图向一个3世纪的铁匠解释核裂变似乎也是不可能的。

基于时间循环逻辑的概念,我们能够实现理论编程构造,以帮助更好地理解软件中的时间旅行概念。在下面的例子中,我们演示了时间循环逻辑程序可能是什么样子。

在下面的例子中,我们将使用JavaScript编程语言。JavaScript为代码的运行提供了单一的执行线程。JavaScript虚拟机一直在运行事件循环。此事件循环的每个滴答都代表代码执行的单个周期。一旦这个循环完成,事件循环中的下一个滴答就会出现。在流行的Node.js框架中,提供了一个API来延迟代码块的执行,直到事件循环的nextTick发生。

现在,让我们设想一下,不是将一行代码推迟到事件循环的下一个滴答器,而是将该代码向后推到事件循环的前一个滴答器。

使用带负值的setTimeout也可以达到同样的处理效果。

因为我们所做的只是将一个简单的字符串记录到控制台,所以这是一个人为的例子。然而,基于进程的概念,我们可以开始实现更复杂的时间循环程序。

让我们假设一个简单的暴力搜索密码破解场景。假设有一个需要输入密码的登录函数。我们可以访问一个非常大的单词词典,我们的破解软件将使用词典中的每个单词作为密码顺序尝试登录,直到找到匹配项。

注意:重要的是要记住,诺维科夫的自洽原理保证了以下代码中产生悖论的事件序列的概率为零。

时间循环逻辑在理论上的应用是无穷无尽的。设想一种基于时间循环的通信协议。这将意味着零毫秒延迟。想象一下,游戏、视频广播和文件共享可以实现即时传输和零延迟。通过利用自我一致性,我们知道数据将在不久的将来被发送(因为数据已经开始从源传输),并且最终传输将到达它的目的地。只要数据最终会被接收到,我们就能够将结果从未来发送回当前,消除了延迟或滞后的概念。

实际上,如何才能对时间循环进行编程呢?基于自洽原理和量子纠缠的不断进步,这类令人费解的构造并不遥远。在接下来的一百年里,我们很可能会看到这种类型的软件被积极开发出来。

时间循环逻辑最早是由汉斯·莫拉维克(Hans Moravec)撰写的,他因在卡内基梅隆大学(Carnegie Mellon University)从事机器人学和人工智能方面的工作而闻名。你可以找到1991年汉斯的原创论文,《时间旅行与计算》,这里:https://frc.ri.cmu.edu/~hpm/project.archive/general.articles/1991/TempComp.html.。我建议你通读整篇文章。

我们从广义相对论中知道的是,在量子水平上,在包含封闭的类时间曲线的某些解中,反向时间旅行在数学上是可能的。闭合类时曲线是洛伦兹流形中的一条世界线。

封闭的类时间曲线(CTC)给物理学家带来了一个问题。CTC的存在引入了时间旅行成为可能的概念。如果时间旅行是可能的,我们现在引入了时间旅行悖论的概念,这可能违反因果关系。既然人们普遍认为我们不能违反宇宙中的因果关系,我们就必须能够解释封闭的类时间曲线是如何存在的。

在他的自洽原理中,诺维科夫断言,如果存在一个会引起悖论的事件,或者任何改变过去的事件,那么该事件发生的概率为零。简而言之,它说不可能创造时间旅行悖论。你可以在这里找到原文:http://authors.library.caltech.edu/3737.。我建议从阅读这一原则的历史开始。

为了让时间循环逻辑即时返回答案,我们必须确保问题在未来运行足够长的时间来实际计算结果。如果一个问题需要60秒才能解决,程序必须运行至少60秒。时间循环逻辑并不违反因果关系。我们能够立即检索到答案,因为我们承诺在未来花费60秒计算答案并将其发回。

这使得调试时间循环逻辑变得有点不可能。时间循环中的任何错误都表示将来某个时候发生了问题。此事件可能与软件有关,也可能与软件无关。

想象一下,一台利用时间循环暴力破解密码的计算机(就像我们上面发布的代码所做的那样)。我打开机器,要求它破解密码。这个程序不起作用。沮丧之余,我关掉了机器,向同事乔什抱怨。

乔什打开机器,要求提供密码。该软件可以在不到1ms的时间内立即破解密码。

乔希回答说,其实很简单。使用这台计算机,暴力破解密码大约需要400小时。在这400小时之后,CPU必须递归地将破解的密码及时返回,直到它到达现在为止。我能够立即得到答案,因为我已经决定在399小时59分钟内不关闭这台电脑。简而言之,你关机太快了。