我绘制了函数的运行时间(以秒为单位)与输入的关系图,如下所示:
您可以观察到很多运行时,这些运行时都比上面各个要点所代表的要长。
我想将这些点向下映射到它们的预期时间,以获得理想的阶跃函数,如下所示:
红色点=运行时间大于预期
在以下情况下, RED 点被映射到各自的预期运行时:
但是,决定将红点映射到何处并非总是容易的。例如:
在上述情况下,我们将如何决定将RED点映射到运行时T1或T2?
此外,在以下情况下,我们无法确定如何将RED点向下映射到其理想或期望的运行时间:
如果我们决定通过判断邻居来映射点,则蓝色点会产生噪声,从而向下映射红色点
最后,在以下情况下可能会产生很多噪音:
因此,目标是通过将RED点向下映射到其理想的预期运行时间来实现具有最佳精度的理想步进功能
感谢您的任何建议。
答案 0 :(得分:0)
如果运行时确实是线性的,如曲线图所示。
您可以对数据创建线性回归,它将适合点的主线,而点的运行时间比预期的大。除了所有其他点之外,您还可以获取x
值并将其拟合到回归上,而不是根据模数1是否大于0.5来向上或向下取整。
在第一种情况下(实际情况),您不必使用此选项,但是由于回归应该穿过所有水平线的中间,因此它仍然可以工作。这种方法在情况4中非常有用,因为它忽略了附近的点。
提示:
在创建线性回归时,尝试开发一种忽略异常值的方法,以实现“纯净”回归。
红线是线性回归的输出,现在对于每个点,取其淡蓝色线并找到相交点。现在,对于该交点,将其向上或向下(取决于哪一个更接近)四舍五入到匹配的T水平。