考虑到大致相等的元素

时间:2013-05-04 03:57:54

标签: algorithm sorting approximation

我们有一些元素具有一些关键价值。

我们按键值的降序考虑元素。因此,如果我们有10个带键值的元素,4,5,7,10,2,8,9,10,5.5,9,我们按键值对元素进行排序,并将元素的键值相等。

因此,具有相同键值的元素,例如将一起考虑图10,其后是具有键值9的元素,依此类推。当考虑元素并且它通过某个适应度函数时,它将从列表中删除并且不再被考虑。

现在我们放宽了将相同键值一起考虑的限制,并考虑具有大致相等键值的元素。因此,当我们按排序顺序说第二个元素在第一个元素的10%范围内时,它们将被一起考虑。

因此,现在一起考虑具有键值10,10,9,9的元素。并且,如果在此处不删除具有键值9的一个元素,则必须再次考虑8.5。

我能想到实现上述场景的唯一方法就是这样,

  1. 按键值的降序对元素进行排序。
  2. 对于订单中的第一个元素,找到10%作为允许偏差。查找属于此偏差窗口的元素。所以,在这个窗口中我们考虑10,10,9,9。
  3. 如果任何元素通过了适应度函数,请将其从列表中删除。
  4. 形成下一个窗口并重复循环。
  5. 这是我的想法令人难以置信的地方。如何从下一个窗口的开始形成开始?如果在第一个窗口中考虑了排序值为10,10,9,9,8.5,8 ......和10,10,9,9,则下一个窗口应以9开头并由9,8组成5。

    启动下一个窗口上一个窗口的最后一个值总是足够的吗?我尝试了一些反例,但没有一个反驳我的推测。但是如果这两个9都通过了适应度函数并从列表中删除了,那么这个值会从下一个窗口开始呢?下一个可在排序列表中找到?

    所以,我的问题是,

    1. 关于开始下一个窗口的猜想是否与前一个窗口的最后一个值(以及下一个可用的,如果它被删除)有关吗?
    2. 整个过程有更好的算法吗?

1 个答案:

答案 0 :(得分:2)

不,从上一个窗口的最后一个值启动窗口可能不太正确。

首先尝试从最后一个窗口的中点开始;然后在向下迭代下边缘时动态降低上边缘,以保持窗口的适当“跨度”。


尚不清楚健身功能和健身功能是否正常。你从“清单中删除”中描述了构成接受的理想元素,或拒绝,或者是什么。

窗口的理想正确语义可能取决于对整体操作的准确规范/理解 - 而且您的问题非常缺乏。