【问题标题】:Using red-black tree for non-linear optimization使用红黑树进行非线性优化
【发布时间】:2014-08-19 10:54:39
【问题描述】:

假设我们有有限的数据集{x_i, y_i}

我正在为数据集寻找一个有效的数据结构,这样给定ab,就可以有效地找到xy,这样x > ay > bx*y 是最小的。

可以用红黑树做吗?

我们可以在复杂度 O(log n) 中做到吗?

【问题讨论】:

    标签: optimization data-structures red-black-tree


    【解决方案1】:

    好吧,如果没有预处理步骤,你当然不能在 O(log n) 中使用任何数据结构进行处理,因为这没有足够的时间查看所有数据。所以我假设你的意思是“预处理后”。

    红黑树用于单维排序,因此在这里不太可能有太大帮助。我希望 kD-tree 在这里可以很好地工作,使用最近邻式查询:您执行树的深度优先遍历,跳过边界矩形违反 x 和 y 条件或不能包含较低产品的分支比已经找到的最低允许产品。为了进一步加快速度,kD-tree 中的每个节点还可以保存其任何后代中最低的乘积;直觉上,我希望这会带来实际的好处,但不会提高最坏情况的时间复杂度。

    顺便说一下,红黑树通常不适用于预处理数据。它们是为高效的动态更新而设计的,当然您不会在每个查询的基础上进行。它们提供与其他排序树相同的渐近深度保证,但具有更高的常数因子。

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 2010-09-06
      • 2015-11-17
      • 1970-01-01
      相关资源
      最近更新 更多