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元。

  • 相关阅读:
    游标
    Linq to Sql学习
    在asp.net mvc中使用Uploadify上传文件
    Linq 笔记
    ASP.NET MVC笔记
    转:ASP.NET MVC:窗体身份验证及角色权限管理示例
    PowerDesigner
    asp.net缓存使用总结
    Bash Shell中命令行选项/参数处理
    Javascript parseFloat、parseDouble类型转换,数值加减,四舍五入
  • 原文地址:https://www.cnblogs.com/tianqianlan/p/10402628.html
Copyright © 2011-2022 走看看