zoukankan      html  css  js  c++  java
  • Shapley值的一个应用

         看书有这样一个问题,某互联网公司今天需要加班,需要编写一个500行的程序代码,产品经理找了三个程序员来完成。按照完成量发奖金:1号普通程序员独立能写100行,2号大神程序员独立能写125行,3号美女程序员能写50行。但如果程序员两两合作,会产生不同的编码效率:1号和2号合作能写270行,2号与3号合作能写350行,1号与3号合作能写375行。当然,三名程序员共同合作能完成500行。若共有1000元项目奖金,该如何给这三名程序员分配呢?

       下面,我们尝试用Shapley值经行计算。首先,计算可能的联盟数量。显然,三个人的联盟形成方法一共有6种:

      (1)1号邀请2号加入组成S联盟,3号加入S联盟;

      (2)1号邀请3号加入组成S联盟,2号加入S联盟;

      (3)2号邀请1号加入组成S联盟,3号加入S联盟;

      (4)2号邀请3号加入组成S联盟,1号加入S联盟;

      (5)3号邀请1号加入组成S联盟,2号加入S联盟;

      (6)3号邀请2号加入组成S联盟,1号加入S联盟;

        按照Shapley值的计算过程,下一步需要计算每位程序员的边际贡献,

      

      

      1号普通程序员的Shapley值为:(100 + 100 + 145 + 150 + 325 + 150 )/ 6 = 970 / 6

      2号大神程序员的Shapley值为:(170 + 125 + 125 + 125 + 125 + 300 )  / 6  =  970 / 6

      3号美女程序员的Shapley值为:(230 + 275 + 230 + 225 + 50  +  50 )/  6 =  1060 /  6

      三人的Shapley值的总和正好等于500。   所以根据Shapley值,1号普通程序员应该获得奖金为:1000 x 0.3233 = 323.3元,2号大神程序员应该获得奖金同样为323.3元,3号美女程序员获得奖金为353.3元。

  • 相关阅读:
    【数据分析】6 点发的文章在博客园阅读量最高?
    canvas api 速记
    leetcode 315. Count of Smaller Numbers After Self 两种思路
    一道闭包题题解
    一道经典JS题(关于this)
    HTML5 — 让拖放变的流行起来
    你应该知道的25道Javascript面试题
    关于base64编码的原理和实现
    Python中的None
    Python字符编码和转码
  • 原文地址:https://www.cnblogs.com/tianqianlan/p/10402628.html
Copyright © 2011-2022 走看看