我給員工安排的CSV的列最接近的球隊:基於員工的時間表C#
employee ID, first last name, sunday schedule, monday schedule, ... , saturday schedule
1爲每個員工每週的時間表。我附上了一部分csv文件的截圖。總文件大約有300行。
我需要生成基於員工的日程安排(位置並不重要),使得每支球隊的員工有最接近的時間表,以彼此的15支球隊。什麼我都試過僞代碼:
解析CSV文件導入時間表的陣列(我自己的結構定義)
匹配的員工誰具有相同的確切時間表進隊(創建〜5個完整規模的團隊, 20 - 25半滿隊,葉〜約50個時間表誰不與任何人匹配)
對於i = 1到14,對於我的團隊的每個成員,找到最接近的時間表的團隊(作爲整個),並將該成員添加到該團隊。一旦一個團隊達到規模15,將其標記爲「完成」。
這有效,但絕對沒有給我最好的球隊。我的問題是有沒有人知道更好的方法來做到這一點?僞代碼或只是一個普遍的想法將有所幫助,謝謝。
編輯:這裏是一個比較公式的例子 比較是基於代理程序計劃之間的半小時差異塊。 Agent 25的得分爲16,因爲他與Agent 23和24的差距爲8個半小時。根據每個人的得分加起來,球隊的總得分是32。
並非所有的代理工作8個小時的日子,和許多有不同的休息日,這對他們的「接近性」得分的影響最大。此外,少數代理商在某一天的日程安排與他們的正常日程安排不同。例如,一名代理人可能在星期一上午7點至下午3點工作,但在星期二至星期五上午8點至下午4點工作。
你如何定義「最佳團隊」? – mrogers
當每個團隊的員工彼此的時間表中的差異最小時。 – obl
@ mrogers:這是真正的問題。一旦你有了指標,你就可以開始優化。 –