algorithm - 连续资源列表的优化算法

标签 algorithm mathematical-optimization

给定一个从 1 到 12 的列表,假设我每 10 分钟使用每个数字,我如何最大化接近数字之间的分钟数。

换句话说,最大化列表中每个位置的每个值之间的差异。

尝试最大化 n & n+1、n & n+2 和 n & n+3 之间的时间

2 旁边的 1 是最差的。 1 旁边的 1 是最好的,但它最终会导致列表中更靠后的数字。

例如,

  • 1 2 3 ... 不是最佳选择,因为 1 和 2 仅相隔 10 分钟。
  • 1 12 2 11 ... 不是最佳选择,因为 1 和 2 仅相隔 20 分钟。
  • 1 5 9 2 6 ... 会更可取,因为数字相距较远。
  • 在给定列表中的项数的情况下,是否可以计算出每个项之间的最佳 Delta?

    最佳答案

    假设集合中的输入值均匀分布,我建议使用以下方法来定义序列。

    遍历有序值,每次跳转 X 个值,其中 X 定义为值总数/Phi。 假设值集的末尾绕回开头。

    因此对于值集 1 - 12,您将有:

    X = 12/披

    X = 12/1.618 = 7.4

    将 7.4 四舍五入为最接近的整数,因此我们假设 X = 7。

    那么你的顺序就是 1, 8, 3, 10, 5, 12, 7, 2, 9, 4, 11, 6

    要量化(或评分)此序列的“最大化”程度,您需要对集合中的每个成员进行以下计算的总和。

    对于每个集合成员,计算其自身与每个其他成员之间“值”之差的绝对值除以到该成员的“距离”。 例如,对于上述序列中的成员 8,其得分为:

    8,1 = |8-1|/1 = 8

    +

    8,3 = |8-3|/1 = 5

    +

    8,10 = |8-10|/2 = 1

    +

    8,5 = |8-5|/3 = 1

    +

    8,12 = |8-12|/4 = 1

    +

    ...

    对集合中的每个成员都这样做,然后求和以获得总体“分数”。 得分越高,序列将越“最大化”。

    关于algorithm - 连续资源列表的优化算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6050307/

    相关文章:

    c - a*算法伪代码

    Rsolnp : In cbind(temp, funv) :结果的行数不是向量长度(arg 1)的倍数

    python - Python 中的约束线性回归

    python - 最小化缓慢、嘈杂、未明确定义的目标函数

    algorithm - 从 N^2 中的一系列点计算体积

    algorithm - 找到在 O(n) 时间 O(1) 空间内不重复的数字

    python - 将 ruby​​ 翻译成 python

    c# - 从 2 个集合中查找添加和删除的高效算法

    python - l_bfgs优化方法如何逼近梯度

    r - NLME 回归的限制?