人才调度

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA

人才调度实例,该问题共有8个演员和8个场景

人才调度Template:Lang-en)是计算机科学运筹学领域的优化问题,亦是组合优化问题。在这一问题中,剧组需要完成电影的拍摄任务,其中分為若干个场景,而每个场景需要一个或多个特定的演员。现假定剧组每天只能完成一个场景的拍摄任务,而演员的薪资则按天计算。而在这一问题中,剧组需要连续性的聘请演员,例如某位演员需要参加第一天和第三天的演出活动,该剧组必须在第一天至第三天连续雇佣这位演员三天并支付其三天工资,即使这位演员第二天处于闲置状态。该问题的最终目的是通过调整场景的拍摄顺序,使得剧组的演员薪资支出最小化。[1]

数学表达式

当问题中有n个场景与m个演员,现使用演员拍摄日程矩阵(day out of days matrix,DODM)T0{0,1}m×n表示某位演员是否需要参加某个场景的演出任务:

tm×n0={1,if actor i is required in scene j,0,otherwise.

此外还存在薪资向量m,其元素ci表示演员i的日薪资。此外对于场景的排列顺序,定义:

σ:{1,2,...,n}{1,2,...,n}

其中σnn个拍摄日的排列集合。接下来定义矩阵T(σ)为矩阵T0的-{zh-cn:列; zh-tw:行;}-经过σ排列后的样子,其具体定义如下:

ti,j(σ)=ti,σ(j)0 for i{1,2,...,n},j{1,2,...,n}

接下来用li(σ)以及ei(σ)表示演员iσ的排序下需要出演的最后一天与第一天。因此,演员i需要被雇佣的闲置天数为:

hi(σ)=li(σ)ei(σ)+1ri=li(σ)ei(σ)+1j=1nti,j0

鉴于此,剧组需要为演员闲置天数支付的总薪资为:

K(σ)=i=1mcihi(σ)=i=1mci[li(σ)ei(σ)+1j=1nti,j0]

其中K(σ)为该问题需要最小化的值,不过考虑到j=1nti,j0为定值,因此可以在最佳化时忽略此项。[1]

强NP困难证明

该问题的难度可通过将其简化为最大线性排列问题来证明。[2]在该问题中,当所有演员的薪资皆为1时,此问题可以被简化为最大线性排列问题,因此这一问题不大可能有伪多项式时间算法。[3]

整数规划

人才调度问题有如下整数规划形式:[4]

Minimize i=1mci(liei+1)
subject to j=1nxj,k=k=1nxj,k=1, 1j,kn
ti,jeik=1nti,jkxj,kli, 1im,1jn
li,ei1, 1im
xj,k{0,1}, 1j,kn
li,ei, 1im

在此模型中,eili分别表示演员i需要参演的第一天和最后一天,而决策变量xj,k则表示场景j是否被安排到了第k天:

xj,k={1if scene j is scheduled in day k of shooting 0otherwise

参考文献

Template:Reflist

  1. 1.0 1.1 Template:Cite journal
  2. Template:Cite journal
  3. Template:Cite book
  4. Close Kochetov, Y. (2011). Iterative local search methods for the talent scheduling problem. In Proceedings of 1st international symposium and 10th Balkan conference on operational research, September 22, Thessaloniki, Greece (pp. 282–288).