我想實現一個團隊選擇算法 - 比如我們有n個人都有基於他們的優點排序的技能:P1 {ruby,python,java}這意味着他比ruby更精通ruby,同樣P2 ..等等。我有項目Proj1,需要具備一定技能的人(比如說ruby,python等),Proj2等。我如何在項目之間分配人員進行公平分配(讓我們假設一個人只能在一個項目上工作)?基於技能的建築團隊
回答
Linear programming可以在這裏應用。您需要根據可以最大化或最小化的目標來定義公平分配。然後根據項目添加約束。您可以使用任何LP解算器解決此問題,例如lpsolve。從維基百科引用LP的歷史記錄
Dantzig最初的例子是找到70 人的最佳作業爲70個工作。
希望這會有所幫助。
+1線性規劃很適合,只是問題的定義很差 – 2012-08-04 09:35:17
這裏是我的建議,其中填補了我的假設問題定義差距。這類似於
您在程序員的佔有分配重量每一個技能線性在Ankush的回答編程方法:
P1{java,ruby,python} -- P1{1, 0.5, 0.25}
P2{ruby,python} -- P2{1, 0.5}
P3{python,ruby,java} -- P3{1, 0.5, 0.25}
現在你的項目的要求是:
項目{使用Java,Python}
所以,你採取每個程序員的權重,乘以1(技能要求)或0(技能不要求):
P1_suitability = 1*1 + 0.5*0 + 0.25*1 = 1.25
P2_suitability = 1*0 + 0.5*1 = 1
P3_suitability = 1*1 + 0.5*0 + 0.25*1 = 1.25
您選擇P1和P3到項目
另一個項目要求:
項目{紅寶石,蟒蛇}
計算適用性:
P1_suitability = 1*0 + 0.5*1 + 0.25*1 = 0.75
P2_suitability = 1*1 + 0.5*1 = 1.5
P3_suitability = 1*1 + 0.5*1 + 0.25*0 = 1.5
您爭取P2和P3爲您其他項目
同樣,這是非常推測性的解決方案,因爲prob lem的定義不完整。 無論如何,這不是一個壞的練習..
這是另一種線性規劃的方法,基於理論,沒有人注意到,如果你早點結束,但如果你遲到完成你很大麻煩。
對於每個項目,估計每個技能所需的標準程序員小時數。
對於每個程序員和每種技能,估計他們必須工作多長時間(因爲他們的特定技能水平)才能產生一個標準程序員小時的價值。
然後你需要解決一個線性程序,其中大部分未知數的形式爲Pijk,其中Pijk是程序員我花費在項目k的技能j上的時間。
您立即有約束SUM_j,k Pijk < = Qi,其中Qi是程序員我必須在所有項目上剩餘的總時間。
在項目k的技能j上完成的工作總量是SUM_i Pijk * Eij,其中Eij取決於程序員我在技能j上的優秀程度。給定Pijk,特定活動的鬆弛量爲Sjk = SUM_i Pijk * Eij - Wjk,其中Wjk是該技能和項目的總工作量。如果任何項目的任何技能的最小松弛量是S,那麼我們有約束S < = Sjk。由於缺少最後期限是昂貴的,我聲稱一個好的目標函數是最大化S,任何項目的任何技能的最小松弛量。所有這些都是作爲一組線性不等式給出的,因此您應該能夠找到導致最大可能S的Pijk作爲線性規劃問題。
- 1. 在團隊城建築nuget包
- 2. 基於兩個組創建團隊
- 3. 建築像c隊中的團隊查看器#
- 4. Django創建團隊功能
- 5. 基於正規建築
- 6. 建模團隊
- 7. 算法基於技能
- 8. 建築物基於輸入的查詢
- 9. 基於Rails協會的建築形式
- 10. 團隊基礎服務器
- 11. 團隊基金服務器
- 12. 團隊基金會/ SQL/Silverlight創建新團隊項目失敗Timeout
- 13. 如何阻止團隊創建新的基於XAML的構建定義
- 14. 建築socket.io基於服務器結構
- 15. 微服務團隊 - 如何處理「基礎設施」團隊?
- 16. 團隊建設 - 以DLL的
- 17. 用於建築
- 18. 用於建築
- 19. 關於實現GUI邏輯的建築技巧
- 20. 微軟團隊系統的價值僅限於開發團隊
- 21. 基於Django的技能實現
- 22. Enterrise建築師MDG技術在DFD
- 23. 對於小開發團隊
- 24. 獲取屬於團隊
- 25. 用RabbitMQ排隊的建築評論?
- 26. 將Team Foundation Server引入基於FogBugz的團隊:要使用哪些功能?
- 27. 什麼是Epics關於功能和團隊基礎中的積壓項目
- 28. 創作團隊及團隊用戶的
- 29. 團隊構建和Dotfuscator
- 30. 用戶和團隊建模
請說明您認爲什麼「公平」?你沒有考慮到程序員之間的區別:P1的Java比P2更好,他們都有最大的經驗 - P1更適合需要Java的項目嗎? – 2012-08-04 08:42:33
公平地爲所有團隊中的每個技能分配「最好的技能」程序員 – Hari 2012-08-04 11:22:25