Performance 是否有可能从图灵空间的复杂性来估计所需的RAM? 图灵机可以考虑空间(磁带上的内存空间)和时间的复杂性。

Performance 是否有可能从图灵空间的复杂性来估计所需的RAM? 图灵机可以考虑空间(磁带上的内存空间)和时间的复杂性。,performance,algorithm,complexity-theory,ram,turing-machines,Performance,Algorithm,Complexity Theory,Ram,Turing Machines,有一些类,如PSPACE和EXPSPACE 此外,我们还可以提出PSPACE中绝对适用的算法 然而,当我实际编写程序时,有些程序运行得比其他程序快,有些程序的内存占用比其他程序小 假设我编写了一个PSPACE算法来解决问题X,也编写了一个EXPSPACE算法来解决同样的问题,EXPSPACE程序应该比PSPACE代码使用更多的RAM 根据启动算法的理论评级,有没有办法估计需要多少RAM 假设我编写了一个PSPACE算法来解决问题X,也编写了一个EXPSPACE算法来解决同样的问题,EXPSPA

有一些类,如PSPACE和EXPSPACE

此外,我们还可以提出PSPACE中绝对适用的算法

然而,当我实际编写程序时,有些程序运行得比其他程序快,有些程序的内存占用比其他程序小

假设我编写了一个PSPACE算法来解决问题X,也编写了一个EXPSPACE算法来解决同样的问题,EXPSPACE程序应该比PSPACE代码使用更多的RAM

根据启动算法的理论评级,有没有办法估计需要多少RAM

假设我编写了一个PSPACE算法来解决问题X,也编写了一个EXPSPACE算法来解决同样的问题,EXPSPACE程序应该比PSPACE代码使用更多的RAM

你想错了

这些复杂度类描述了执行算法所需内存的渐进增长。它们绝对不会告诉您所需的RAM的实际数量

基本上,对于某些大小的问题n,大于该大小的EXPSPACE将使用比PSPACE更多的内存,但对于小于n的任何内容,您都不能真正说出任何内容(就像对于小n,O(n2)算法可能比O(n)算法运行得更快)

假设我编写了一个PSPACE算法来解决问题X,也编写了一个EXPSPACE算法来解决同样的问题,EXPSPACE程序应该比PSPACE代码使用更多的RAM

你想错了

这些复杂度类描述了执行算法所需内存的渐进增长。它们绝对不会告诉您所需的RAM的实际数量


基本上,对于某些大小的问题n,大于该大小的EXPSPACE将使用比PSPACE更多的内存,但对于小于n的任何内容,您都不能真正说出任何内容(就像对于小n,O(n2)算法可能比O(n)算法运行得更快)。

原则上不。在实践中,有时

首先,你必须理解复杂性分析的实际含义(复习课本中的定义)。PSPACE仅仅意味着所需的空间由输入大小的多项式函数限定。它不会告诉你边界函数是什么,或者实际使用的空间是什么。所以,仅仅知道PSPACE中有一个算法是不可能解决RAM的任何问题的

如果你知道一个算法在PSPACE中,你可能会假设它使用的空间不仅仅是一个多项式,它是由一个多项式来描述的。这可能不是真的,但对于许多算法来说却是真的。然后,您可以计算(或测量)用于各种不同输入大小的空间,并尝试将多项式与数据匹配


一般来说,这是相当徒劳的(因为不知道多项式的阶数,有无限多可能的拟合)。但是在实践中,如果你知道所使用的空间是,比如说O(n),并且你知道什么样的输入会产生最坏的空间使用情况,那么你可以做出相当准确的预测。如果处理1MB的输入需要10MB的RAM,处理2MB的输入需要20MB的RAM,那么处理10MB的输入通常需要大约100MB的RAM。但你只能从更详细的算法知识中获得这种洞察力,而不仅仅是知道它具有多项式空间复杂性。

原则上不。在实践中,有时

首先,你必须理解复杂性分析的实际含义(复习课本中的定义)。PSPACE仅仅意味着所需的空间由输入大小的多项式函数限定。它不会告诉你边界函数是什么,或者实际使用的空间是什么。所以,仅仅知道PSPACE中有一个算法是不可能解决RAM的任何问题的

如果你知道一个算法在PSPACE中,你可能会假设它使用的空间不仅仅是一个多项式,它是由一个多项式来描述的。这可能不是真的,但对于许多算法来说却是真的。然后,您可以计算(或测量)用于各种不同输入大小的空间,并尝试将多项式与数据匹配

一般来说,这是相当徒劳的(因为不知道多项式的阶数,有无限多可能的拟合)。但是在实践中,如果你知道所使用的空间是,比如说O(n),并且你知道什么样的输入会产生最坏的空间使用情况,那么你可以做出相当准确的预测。如果处理1MB的输入需要10MB的RAM,处理2MB的输入需要20MB的RAM,那么处理10MB的输入通常需要大约100MB的RAM。但是,您只能从更详细的算法知识中获得这种洞察力,而不仅仅是知道它具有多项式空间复杂性。

'然后,您可以计算(或测量)用于各种不同输入大小的空间,并尝试将多项式与数据相匹配。一般来说,这是相当徒劳的(因为不知道多项式的阶数,有无限多可能的拟合)。但在实践中,如果你知道所使用的空间是,比如说O(n),并且你知道什么样的输入会产生最坏的空间使用情况,那么你可以做出相当准确的预测。如果我让相关代码达到足够稳定的状态,那将是一个实际的行动过程。然后,您可以计算(或测量)用于各种不同输入大小的空间,并尝试将多项式与数据匹配。一般来说,这是相当徒劳的(因为不知道多项式的阶数,有无限多可能的拟合)。但在实践中,如果你知道所使用的空间是,比如说O(n),并且你知道什么样的输入会产生最坏的空间使用情况,那么你可以做出相当准确的预测。如果我让相关代码达到足够稳定的状态,那将是一个实际的行动过程。谢谢