[英]Assignment allocation (linear programming) lookalike
我的工作需要在14天內完成。 我有5個工人。 有一天需要3名工人。 每個工人最多只能工作9天。 每個工人都有自己的日常偏好,每個工人每天都有不同的成本。
現在,我如何在數學術語中解決這個問題? 如何找到工人分配的最低成本?
我不認為這是賦值問題,因為匈牙利算法的設計使我只能找到1對1的賦值。 (在這種情況下,1名工人1天)
您需要解決此問題的是IP(整數編程)公式。 你的直覺是正確的,這與任務問題非常相似 - 我們基本上是指派工人在某些日子工作。
以下是制定問題的步驟:
決策變量 :(英文)哪個工作在哪幾天工作?
讓我們標記日期t (1..14)和工人w1到w5 。
所以,
X_wt = 1 if worker w works on day t
X_wt = 0 otherwise
這些約束現在相當簡單地寫下來了。 每天只需要3名工人。
X_1t + X_2t + X_3t + X_4t + X_5t = 3 for each t (1..14)
每個工人最多可以工作9天:
(sum over t=1..14) X_wt <= 9 for each w (1..5)
最后, 目標函數 :
讓C_wt
成為第t天招聘工人的成本。 雙重總和:
Min (sum over w 1..5)(sum over t 1..14) C_wt
而且為了適應工人的偏好天數,你可以將另一組成本分層,比如P_wt
。
這是基本的表述。 然后,您將需要IP / LP解算器(例如CPLEX
或Excel Solver
或R的optim
庫)來獲得實際解決方案。
希望有所幫助。
它可能是bin-packing和tsp問題。 尋找容量的車輛路線問題。 它有許多問題,但你有3個工人。 在容量車輛路由中有x個工人。 它認為你需要更多的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.