【发布时间】:2016-03-20 03:44:49
【问题描述】:
假设,我有一个算法,它的运行时间取决于两个参数。我想找到最小化运行时间的最佳参数集。这两个参数是 0 到 INFINITY 范围内的连续双精度值。
因此,对于两个参数 a,b:我想找到最小化运行时间的 a 和 b 的最佳值。我认为这是非常标准的做法,但我找不到这方面的好文献。我发现很少有文献,如 MLE、最小二乘法等,但他们谈论的是分布。
【问题讨论】:
假设,我有一个算法,它的运行时间取决于两个参数。我想找到最小化运行时间的最佳参数集。这两个参数是 0 到 INFINITY 范围内的连续双精度值。
因此,对于两个参数 a,b:我想找到最小化运行时间的 a 和 b 的最佳值。我认为这是非常标准的做法,但我找不到这方面的好文献。我发现很少有文献,如 MLE、最小二乘法等,但他们谈论的是分布。
【问题讨论】:
首先开动脑筋,以定性的方式了解这些参数与运行时间之间可能存在的函数关系。这意味着首先了解可能的最大值的数量和位置、函数的平滑度、渐近行为以及您能找到的任何其他线索。
然后确定一个合理的值范围,以便对函数值进行采样。如果这些范围非常宽,则最好使用几何级数而不是算术(例如,2 的幂)进行采样。
然后使用图形查看器测量和观察函数值并确认您的直觉。这很可能足以发现绝对最大值的大致位置。如果找到一个准确的位置可以为您提供最后百分之几的改进,那么它可能毫无用处。最佳位置的位置也很可能取决于特定的数据集,从而使准确的位置变得不那么有用。
【讨论】: