1

我有一组与流程输入相关的三个(或更多)已知变量。我也有这个过程的(测量的)结果,在这种情况下是完成过程所花费的时间。

为了能够给出估计的持续时间并根据输入创建进度指示器,我需要找到变量和结果之间的关系(如果有的话)。

确定是否存在关系以及是否存在关系以创建公式的最佳方法是什么。

我有许多数据集可供使用(输入变量值和结果时间)。

与此相关的任何建议或链接?关于如何使用代码或指向某些理论的指针来解决这个问题的提示会很有帮助。

一些添加的背景:

该过程由许多要处理的文件(主输入)和一个附加的辅助输入组成,该辅助输入由与主输入的内容直接相关的另一组(参考)文件组成。目前,进度是通过显示整体文件进度(与主要输入的总数相关)以及基于当前输入文件内容中的位置的文件内进度来指示的。由于每个文件(集)所需的总时间可能相当长(取决于内容),我想添加某种“剩余时间”或“预期完成时间”指示器。

实际代码包括将列表(Excel 格式)中的数据子集与 XML 文件合并到旧格式文件中。“耗时”的部分是 Excel 文件的解析,但这受文件实际大小、需要处理的项目数以及需要创建为输出的文件数的影响很大。在某些情况下,大文件会导致一个输出,而在其他情况下,小文件会导致大量输出。由于执行了大量文件访问,因此次要因素(很难用数字表示)是同时运行的相同进程的数量。

这个想法是能够根据输入给出估计的吞吐量。

4

3 回答 3

3

@Heatsink 的回答是对的,但是选择函数族和自由参数的数量需要一定的经验。它被称为“建模”,物理学家是这个行业的大师。此外,一般(非线性)回归问题并不总是容易解决。

也许你可以试试这个有时足够聪明的软件包来选择正确的功能和参数。我有一些很好的经验。

替代文字替代文字

顺便说一句...如果您可以在某个地方发布您的 4D 数据,我们可以进行更多研究

于 2010-11-17T07:20:33.093 回答
2

第一步是将您要查找的关系限制为某些函数系列。为此,您需要提出输入如何影响测量结果的模型。一旦你选择了函数族,下一步就是找出最能代表你的数据的族成员。

例如,您可能决定您正在测量的系统可以用线性关系建模,time = a*x + b*y + c*z; 然后您可以使用线性回归来找到最适合您的数据的参数 a、b、c。

于 2010-11-17T06:49:10.843 回答
2

随着计算的进行,您将如何更新进度表?如果它分成大量在大致相等的时间内运行的步骤,那么您可以报告已完成的步骤占总数的百分比,而无需任何先验知识。

如果计算有几个不同的阶段,那么你将不得不通过一些公式来估计每个阶段的总贡献,正如你所说的。仍然对于每个阶段,您都需要一个模型来说明计算在该阶段的进展情况,这需要对代码本身有一些了解。

在这里了解更多关于输入变量的性质会有所帮助。您对代码本身是否有计算界限,即,您能否证明它在输入的每个维度上线性或二次运行?它是一种蛮力类型的方法,在其中一个输入中是阶乘还是指数?尝试根据算法的选择推导出代码运行时间的公式可能比单独的经验回归更准确,并且可能会导致您找到更快的算法。

于 2010-11-18T02:07:01.580 回答