通用资源分配算法

来源:互联网 发布:苹果编程app 编辑:程序博客网 时间:2024/06/03 19:51

  现实生活中很多情景下都存在资源紧缺的情况,比如XXX大学今年就招生N个学生,那该如何入分配这几个名额呢?鉴于这种情景在现实生活中太多,而且很多情况下合理分配这些资源需要投入大量人力物力去分析和研究。我思考这个问题,提出如下一些观点。

 资源分配的本质:资源的有限性。

 资源分配的目标:整体价值最大(多维度的目标和)。

   资源的目标有时候是互斥的,比如一项决定对A目标实现是有利的,而对B目标达成是有害的,所以需要对互斥的目标设定权重,从而决定我们是否要采取这项决定。

 资源分配的过程:多次决定的积累。

 资源分配的手段:每次决定都趋利避害。

 功能实现的难点分析:

 (1)找到什么是有限的资源

 (2)明确每个维度的目标的利害标准。

 (3)如何规避短期利益带来的长期害处。

 下面举个简单的例子说明一下上述算法思想:

 有一个从题库抽试卷的业务,要求这个试卷一共20个题,试卷的总分为100分。假设题库中题的种类无限,该如何去设计抽题的算法呢?下面是我对这个业务的分析:

 试题的个数是有限的,这是问题解决的入口。该资源分配的包括两个目标:1、试卷个数为20个。2、试卷总分为100分。对于目标一:对于每一次抽题动作,目标一的利弊标准都是有利的。对于目标二:每一次抽题动作,利弊标准是100/20=5分。对于抽到的题,如果分数正好是5分,那么没有利,也是没有弊的。高于5分为正的弊端,低于5分为负的弊端,正负相抵正好达到利益最大。

 假如题库种类不全,那么就会出现短期长时间趋利避害后,积累起无法避免的害处。比如最后就剩1道题,而且还差10分。那么也就是说题库必须有一道题是10分才可以。假如题库不存在这样的题,就导致整个算法失效。这种情况出现的原因是,该算法只关心当下,乐观地认为当前的决定对未来是有利的,即便对未来是有害的,也是可以拯救的,因为我们没有预测未来的能力。

 如果该算法到最后出现了不能容忍的巨大误差,该如何去重新平衡我们之前设定的目标呢?

(1)后悔机制。如果能把现在产生的巨大误差,放到之前的有限次决定中取填平该弊端,那么就可以后悔几次。

原创粉丝点击