代码之家  ›  专栏  ›  技术社区  ›  Jorge Ferreira

优先权和到期日的综合平均数

  •  0
  • Jorge Ferreira  · 技术社区  · 15 年前

    假设任务存在两个属性:优先级和截止日期。

    优先 p 是一个数值。优先级重要性增加到无穷大,意味着5是高于4的优先级。优先级0是正常优先级。

    到期日 d 与当前日期相比,是过去或将来的日期。A D 现在之前的日期比将来的日期更重要。

    想法是把这两个结合起来 属性、优先级和到期日期, 按照上述规则,依次 生成一个可以 用于排序任务列表。

    这应该可以作为一个数学函数建模,但至少可以说,在这个领域,我已经生疏了。我甚至不相信它应该是二维函数还是三维函数。

    我从一个2d图开始,其中x轴是优先级,y轴是当前日期和到期日期之间的差异。

    • 左上象限 A1 有截止日期 在过去和高优先级。
    • 右上象限 A2 到期日期在 未来和高优先级。
    • 左下象限 A3 到期日期在 过去和低优先级。
    • 右下象限 A4 到期日期在 未来和低优先级。

    有数学知识的人能投一个费用指针吗?

    3 回复  |  直到 15 年前
        1
  •  2
  •   mjv    15 年前

    简单的 线性的 功能 应该做的。基于3个变量和一个常量的东西;比如

    CombinedPriority = k * (cd - d) + p
    

    其中k是表示日期相对于优先级值的相对重要性的系数,cd是当前日期。

    如何/为什么这样做?

    • (cd-d),表示为日单位,表示相对于d我们迟到了多少天(如果是积极的),或者我们还剩了多少天(如果是消极的)。值越大,交货日期就越“被吹走”;值越小,我们在它到期之前的时间就越多。
    • k用于以变量p的任何等级单位“转换”这两天的延迟或早期值。
    • 取二者之和,你就得到了一个给定任务(即D和P值对)相对于其他任务的额定值, 为了今天 (这当然会在明天改变,因为当我们及时行动时,D更重要)。

    另一个类似但不太直观的方法是增加等式的程度,来表达这样一个事实,即,当我们迟到两天时,日期对组合优先级的影响应该比我们迟到一天时更大。
    这个函数看起来像

     CombinedPriority = kd2 * ((cd - d) ^ 2)
                      + kd1 * (cd - d) 
                      + kp2 * (p^2)
                      + kp1 * p
    

    其中kd1、kd2、kp1、kp2是常数,表示加法的四个元素的相对重要性。其中一些常数甚至可能是零;从这个意义上说,第一个函数是第二个函数的一个特殊情况,其中
    kd2=0,kp2=0,kp1=1,kd1=k

    总结 :困难不在于数学本身,而在于定义一组很好的常量,这些常量表示d和p的相对重要性,以及测量d和p的尺度。
    第一个函数假定这两个因子中的每一个都是线性的(p=6的作业的紧急程度是p=3的两倍,和/或延迟3天的作业的紧急程度是昨天到期作业的三倍等),因此第二个函数允许d和/或p因子是二次的。

    帮助定义系数的初步计划是:

    • 首先考虑P因素 个别地 (好像D因子不存在一样)。仅考虑P因素,P=3的工作相对于P=6(或P=9)的工作有多紧急?.
    • 第二,单独考虑d因素。(与上面类似:与明天到期的工作相比,5天后到期的工作有多紧急?还是两天前到期的工作?
    • 这两个步骤有助于定义任何一个比例是否是线性的,并使我们朝向一个函数或另一个函数。
    • 然后我们只剩下定义“标准化”P和D因子的相对重要性;这是通过调整k(或kpn,kdn)常数来实现的。
        2
  •  0
  •   High Performance Mark    15 年前

    好吧,一种方法是遵循你已经概述的想法。绘制二维图形上的所有点,通过测量从(0,0)到点的距离转换为一维。所以函数是:

    fun(x,y) = sqrt(x^2+y^2)
    

    或者,由于您的数据是分类的,您可以简单地将图表的平面划分为小方框,每个日期/优先级对对应一个,并使用距该方框原点的曼哈顿距离。如果你不熟悉曼哈顿的距离,去谷歌。

    我将由您决定这些方法是否符合您的要求。

        3
  •  0
  •   ktharsis    15 年前

    你只要把这两个加起来就可以得出总数。我相信你会想否定截止日期,但要使项目过期一个更高的优先级。
    示例:
    昨天到期的优先级0(-1)总共为1(0+1)
    从现在起3天内到期的20个优先权总共有17个(20+-3)

    正如第一位评论者指出的那样,如果一个变量更重要,你可以将它乘以一个因子来加权每个变量。
    示例(截止日期是两次很重要,因此将优先级乘以.5):
    昨天到期的优先级0(-1)总共为1(0+1)
    从现在起3天内到期的优先级20总共有7个(.5*20+-3)