【问题标题】:Parameter Estimation to Minimize Runtime最小化运行时间的参数估计
【发布时间】:2016-03-20 03:44:49
【问题描述】:

假设,我有一个算法,它的运行时间取决于两个参数。我想找到最小化运行时间的最佳参数集。这两个参数是 0 到 INFINITY 范围内的连续双精度值。

因此,对于两个参数 a,b:我想找到最小化运行时间的 a 和 b 的最佳值。我认为这是非常标准的做法,但我找不到这方面的好文献。我发现很少有文献,如 MLE、最小二乘法等,但他们谈论的是分布。

【问题讨论】:

    标签: optimization estimation


    【解决方案1】:

    首先开动脑筋,以定性的方式了解这些参数与运行时间之间可能存在的函数关系。这意味着首先了解可能的最大值的数量和位置、函数的平滑度、渐近行为以及您能找到的任何其他线索。

    然后确定一个合理的值范围,以便对函数值进行采样。如果这些范围非常宽,则最好使用几何级数而不是算术(例如,2 的幂)进行采样。

    然后使用图形查看器测量和观察函数值并确认您的直觉。这很可能足以发现绝对最大值的大致位置。如果找到一个准确的位置可以为您提供最后百分之几的改进,那么它可能毫无用处。最佳位置的位置也很可能取决于特定的数据集,从而使准确的位置变得不那么有用。

    【讨论】:

    • 我按照你的建议做了以下。首先猜测P1和P2的值,并为P1和P2设置确定的8个不同值。比如说,P1=(2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9) P2=(0.95 1.05 1.15 1.25 1.35 1.45 1.55 1.65)。然后,我对 P1 和 P2 的所有组合进行了 64 次实验,并找出哪个给了我最小的运行时间。下一次迭代,我可以减小步长。这个方法有名字吗?
    • @max:到目前为止,您所做的是详尽的搜索。如果您集中搜索并减少步骤,您将获得二分搜索的变体,也与 Hooke-Jeeves 模式方法有关。但最重要的是深入了解函数行为。你的初始间隔看起来很紧,我想你有你的理由。
    • 谢谢,是的,我通过对较大范围的多次迭代确定了这个值。我必须在论文中提到这种方法,这就是为什么我需要这种方法的名称。
    • 因为这是非正式的,你可以称之为“反复试验”。
    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 2019-10-24
    相关资源
    最近更新 更多