人员安排问题的讨论

本文用运筹与优化的相关知识对人员安排问题的优化进行讨论。
根据题目给出的条件,已知本公司拥有五个开发项目并有五位科学家对每一个项目依据自己的感兴趣程度进行投标。为了解决每位科学家的感兴趣度不同的情况下人员安排优化的问题,我们做出人如下假设

  引言

  在现实生活中对人员的合理分配是十分重要的,尤其在公司,科学的对人力资源进行分配能让一个公司在市场上始终保持很高的竞争水平从而市公司的经济得到快速的发展,所以公司不只要对现有的人员进行人员任务分配,还要使公司的人力资源结构保持一个科学的比例。本模型旨再制药公司提供一个良好的人员分配方案,达到公司获利的最大的目的。在公司现有的情况下,通过分析各种影响因素,排除掉一些不必要的干扰因素,运用运筹学知识建立数学模型,排除掉一些不必要的干扰因素,得出公司人员分配的最佳方案。在对本模型优缺点评价之后,根据公司可能会采取临时招聘技术人员的情况,对模型进行改进,通过模型计算,为制药公司提供一个合理的人员招聘方案。
  在运筹学中,将决策者为了使整体的价值最大化所做出的最佳人员安排问题称为指派问题。例如不同的工作要有不同的人来完成,但是因为每个人自身能力兴趣的不同,所以不同的人完成工作所使用的时间或者资源也都是不同的,那么让哪一个人去完成哪一份工作,使完成工作的效益最高,这就是指派问题。
  前人研究这类问题所得出的结论各有不同,但是他们都将此类问题划入0-1整数规划问题当中。本文首先根据一个案例建立指派问题的数学模型,再通过数学模型写出系数矩阵,最后通过匈牙利算法的原理并且使用MATLAB进行编程求解得出结论。

  1.问题概述

  1.1问题的背景情况

  某制药公司有开发五个项目,决定让五位科学家来领导并且给五位科学家每个人1000点的投标点。他们向每个项目投标,投的越多证明对该项目越感兴趣。下表1-1是这五位科学家进行投标的情况。
  表1-1科学家的投标情况
  投标点A项目B项目C项目D项目E项目
  李尔博士100 400 200 200 100
  朱诺博士0 200 800 0 0
  刘哲博士100 100 100 100 600
  王凯博士267 153 99 451 30
  罗林博士100 33 33 34 800
人员安排问题的讨论

  1.2问题的提出

  问题一:根据表1-1提供的数据应该怎么样合理分配项目给这五个科学家。
  问题二:罗林博士去完成一个教学任务要离开公司,一个兴趣最低的项目要被公司放弃。司被放弃的的应该是那一个项目?
  问题三:公司不想放弃任何一个项目。公司决定让朱诺博士或者王凯博士同时领导两个项目。怎么安排会让项目热情最大化。
  问题四:还是原来那五位科学家,个别原因,其中三位科学家无法领导几个特定的项目,具体如下表1-2所示。科学家的总投标点还是1000点。在这种情况下,如何进行人员安排才会让项目的总热情最高。
  1-2问题的数据
  投标点A项目B项目C项目D项目E项目
  李尔博士100 700 200不可领导不可领导
  王凯博士871不可领导99不可领导30
  罗林博士不可领导33 33 34 900
  问题五:因为D项目和E项目难度较大,所以一个项目要安排两个科学家来领导,因此陈加博士和郑斯博士加入了公司。不过因为身体的原因,C项目均无法让这两个科学家来领导,表1-3是这两位科学家的投标情况,怎么安排让项目热情最大。
  表1-3问题的相关数据
  投标点A项目B项目C项目D项目E项目
  陈加博士250 250不可领导250 250
  郑斯博士111 1不可领导333 555
  问题六:回到问题一,因为公司资金有限,只能开发3个项目,所以公司想安排3个最有热情的科学家来领导,怎么安排。

  2.符号设置

  j任务是否i人去完成,如果是就为1,否则就为0
  第i个人去做第j个任务的工作效率
  工作总效率
  第一指标变量
  第二指标变量

  3.模型的建立及求解

  3.1问题一—最大化指派问题

  3.1.1问题的分析及假设
  针对1.2中问题一,分析表格,每位博士对于每个工作的感兴趣度其实可以理解为当时每位博士分配到该兴趣度最大的工作时就是完成工作有最大的工作效率。当博士人数与要完成的项目数相同时,则该分配方案只针对于每个任务是否有人员分配,则变量变为0-1变量。
  3.1.2模型(1)的建立及求解
  根据之前对于问题的分析建立模型:
  最大总满意度为目标函数:
  约束条件:
  从而写出系数矩阵(1):
  3.1.3模型(1)的求解结果
  将系数矩阵(1)代入MATLAB求出结果见表3-1
  表3-1模型的结果
  自变量A项目B项目C项目D项目E项目
  李尔博士0 1 0 0 0
  朱诺博士0 0 1 0 0
  刘哲博士1 0 0 0 0
  王凯博士0 0 0 1 0
  罗林博士0 0 0 0 1
  其中非零数字位置即为分配方案,由表中结果可知:
  将B项目分配给李尔博士;
  将C项目分配给朱诺博士;
  将A项目分配给刘哲博士;
  将D项目分配给王凯博士;
  将E项目分配给罗林博士。
  分析:由于每位科学家对每个项目的感兴趣度已定,所以为了平衡每个项目完成的效率,所以优先选择总感兴趣度再大的分配方案。
 

  3.2问题二—人数小于项目数的指派问题

  3.2.1问题的分析及假设
  针对1.2中的问题二,当博士人数少一个时,公司想放弃一个项目,此时人数小于项目数,所以为了确保匈牙利法的实现所以应该加入一个虚拟人A而且虚拟人A对每个项目的感兴趣度都应该为0。
  3.2.2模型(2)的建立及求解
  根据分析建立模型:
  最大总满意度Z为目标函数:
  约束条件:
  从而写出系数矩阵(2):
  3.2.3问题的求解结果
  将系数矩阵(2)带入MATLAB求解结果见表3-2
  表3-2模型的结果
  自变量A项目B项目C项目D项目E项目
  李尔博士0 1 0 0 0
  朱诺博士0 0 1 0 0
  刘哲博士0 0 0 0 1
  王凯博士0 0 0 1 0
  A博士1 0 0 0 0
  其中非零数字所对应的位置即为分配方案,由表中结果可知我们添加的虚拟人A博士被分配到A项目,由于A博士的感兴趣度都为0,所以A项目是最缺乏热情的项目,因此公司应该放弃项目A。
  分析:这个问题也能使用试探法来解决,先去掉罗博士所对应的数据,然后第一次去掉A项目所对应的数据,第二次去掉B项目所对应的数据,以此类推,然后算出每一种情况下的总满意度,总满意度最大的对应去掉的那个项目就是最缺乏热情的项目即公司要放弃的项目,最后得到最优的分配方案。对于这种非平衡的指派问题,我们应该将其变成平衡型的指派问题然后通过0-1整数规划的求解方法来完成最优分配。

  3.3问题三—一个人可以领导多个项目的指派问题

  3.3.1问题的分析及假设
  针对1.2中的问题三,公司不希望放弃任何一个项目,但是博士人数与项目数不能一一对应,所以公司决定从朱诺博士和王凯博士中选出一位来领导两个项目,为了满足标准化指派问题的约束条件,所以我们还是要加入虚拟人B,C,但是这次明确指出让朱诺博士或王凯博士来领导,所以添加的虚拟人B,C的感兴趣度应和对应的博士感兴趣度相同。所以这次问题分两种情况,情况一让朱诺博士领导两个项目,情况二让王凯博士领导两个项目。然后分别求出总满意度,其中总满意度大的那个可以领导两个项目。
  3.3.2模型(3)模型(4)的建立及求解
  根据分析要建立两个不同的模型,模型(3)和模型(4)
  情况一:朱诺博士领导两个项目
  最大总满意度Z为目标函数:
  约束条件:
  此时添加虚拟人B博士且对每个项目的感兴趣度与朱诺博士相同,所以根据分析建立系数矩阵(3)
  情况二:王凯博士领导两个项目
  最大总满意度Z为目标函数:
  约束条件:
  此时添加虚拟人C博士且对每个项目的感兴趣度与王凯博士相同,所以根据分析建立系数矩阵(4)
  3.3.3问题的求解结果
  将系数矩阵(3)(4)分别代入MATLAB中得出的结果分别见表3-3,3-4
  表3-4情况一的结果
  自变量A项目B项目C项目D项目E项目
  李尔博士0 1 0 0 0
  朱诺博士0 0 1 0 0
  刘哲博士0 0 0 0 1
  王凯博士0 0 0 1 0
  B博士1 0 0 0 0
  表3-5情况二的结果
  自变量A项目B项目C项目D项目E项目
  李尔博士0 1 0 0 0
  朱诺博士0 0 1 0 0
  刘哲博士0 0 0 0 1
  王凯博士0 0 0 1 0
  C博士1 0 0 0 0
  比较两种情况下的最大感兴趣度可知朱诺博士小于王凯博士,所以应该让王凯博士同时领导两个项目。
  分析:人数小于项目数,此时不满足0-1整数规划模型的约束条件,所以为了继续使用0-1整数规划来解决问题,我们要添加人数来满足0-1整数规划模型所要求的以约束关系。

  3.4问题四—某人不可领导某项目的指派问题

  3.4.1问题的分析及假设
  针对1.2中的问题四,与问题一大致相同依旧使用匈牙利法进行求解,只不过其中有几位博士不能够领导某一项目,因为我们的目标是最大总满意度,所以我们把在系数矩阵中不可领导项目对应的系数的设置为0。
  3.4.2模型(4)的建立及求解
  根据根系建立模型:
  最大总满意度Z为目标函数:
  约束条件:
  从而建立系数矩阵(5):
  3.4.3问题的求解结果
  将系数矩阵(5)代入MATLAB中求出结果见表3-5
  表3-5模型的结果
  自变量A项目B项目C项目D项目E项目
  李尔博士0 1 0 0 0
  朱诺博士0 0 1 0 0
  刘哲博士0 0 0 1 0
  王凯博士1 0 0 0 0
  罗林博士0 0 0 0 1
  其中非零数字位置即为分配方案,由表中结果可知:
  将B项目分配给李尔博士;
  将C项目分配给朱诺博士;
  将E项目分配给刘哲博士;
  将A项目分配给王凯博士;
  将D项目分配给罗林博士。

  3.5问题五—人数大于项目数的指派问题

  3.5.1问题的分析及假设
  针对1.2中的问题五,公司觉得D,E项目应该分别有两位博士来领导,并且信雇佣两位科学家参与其中而且由于某些原因不能够领导某些项目,此问题就变成了人数大于项目数的非平衡性指派问题,因此我们需要添加两个虚拟项目D1和E1,且对应的数值与项目D和E相同,不可领导的项目与问题四一样依旧将其数值设置为0。
  3.5.2模型(6)的建立及求解
  根据分析建立模型:
  最大总满意度Z为目标函数:
  约束条件:
  从而建立系数矩阵(6):
  3.5.3问题的求解结果
  将系数矩阵(6)代入MATLAB中求出结果见表3-6
  表3-6模型的结果
  自变量A项目B项目C项目D项目E项目D1项目E1项目
  李尔博士0 1 0 0 0 0 0
  朱诺博士0 0 1 0 0 0 0
  刘哲博士0 0 0 0 1 0 0
  王凯博士1 0 0 0 0 0 0
  罗林博士0 0 0 0 0 0 1
  陈加博士0 0 0 1 0 0 0
  郑斯博士0 0 0 0 0 1 0
  其中非零数字位置即为分配方案,由表中结果可知:
  将B项目分配给李尔博士;
  将C项目分配给朱诺博士;
  将E项目分配给刘哲博士和罗林博士;
  将A项目分配给王凯博士;
  将D项目分配给陈加博士和郑斯博士。

  3.6问题六—从中选几个项目的指派问题

  针对1.2中的问题六,公司想让最有热情的三位科学家来领导三个项目。对于这种问题我们只需要将每个项目对应的最大感兴趣度的值筛选出来见表3-7:
  表3-7问题六的结果
  投标点A项目B项目C项目D项目E项目
  李尔博士-400—
  朱诺博士–800–
  刘哲博士—–
  王凯博士267–451-
  罗林博士—-800
  由于我们只选择3个项目,所以排除掉两个感兴趣度较小的博士及其对应的项目便是最优安排方案。
  将C项目分配给朱诺博士;
  将D项目分配给王凯博士;
  将E项目分配给罗林博士。

  4.对问题的进一步探讨

  4.1算法的缺陷

  在我们对于问题的深入了解后发现问题中只给出了一个数据指标即个人感兴趣度,我认为单凭这
  一单一指标就分配工作是不合理的,这仅仅是从博士的个人角度出发忽略了客观实际即博士的能力
  是否可以与他感兴趣的项目相匹配,因此可能会产生这样一种情况:某个博士很感兴趣某个项目,
  但是他的能力却不足以来完成这个项目。这样不利于公司的发展。

  4.2解决方法(以第五题为例)

  为了弥补原有算法的缺陷所以我添加了另一项数据指标即项目匹配度,其中原有的个人感兴趣度作为第一指标,项目匹配度作为第二指标。我们自己添加项目匹配度的数据,每个项目作为主体,分配每一个项目700的投标点,如果有一个博士不可领导该项目那么该项目的投标点就减少100,以此类推。数据见表4-1。
  表4-1项目投标点
  项目匹配度A项目B项目C项目D项目E项目D1项目E1项目
  李尔博士150 250 40不可领导不可领导不可领导不可领导
  朱诺博士50 100 230 70 5 70 5
  刘哲博士100 230 50 75 78 75 78
  王凯博士150不可领导125不可领导52不可领导52
  罗林博士不可领导50 55 75 165 75 165
  陈加博士100 80不可领导130 87 130 87
  郑斯博士50 20不可领导150 113 150 113
  4.2.1问题的分析
  与原有解法类似,我们需要添加两个虚拟项目D1和E1,是问题转化为标准化指派问题,而且虚拟项目D1和E1对应的数值与项目D和E相同,其中将不可领导的项目对应的系数设置为0。
  4.2.2模型(7)的建立及求解
  根据分析建立模型;
  约束条件:
  可以看到约束条件和自变量相比原来的算法没有发生改变,不同的在于目标函数,我将这两种指标综合考虑给出了两种目标函数:
  ①两种指标相乘:
  max𝐹=min𝑖,𝑗{𝑟𝑖𝑗丨𝑥𝑖𝑗=1}min𝑖,𝑗{𝑢𝑖𝑗丨𝑥𝑖𝑗=1}
  ②给这两种指标分配不同比重然后相加,我设置的是6:4:
  max𝐹=0.6×min𝑖,𝑗{𝑟𝑖𝑗丨𝑥𝑖𝑗=1}+0.4×min𝑖,𝑗{𝑢𝑖𝑗丨𝑥𝑖𝑗=1}
  从而建立系数矩阵(7)(8):
  4.2.3问题的求解结果
  为了方便计算,我先将系数矩阵中的系数进行了归一化处理使用的是MATLAB中的mapminmax函数,然后再将处理好的矩阵带入MATLAB中求出结果见表4-2,4-3,4-4
  表4-2问题的结果
  自变量A项目B项目C项目D项目E项目D1项目E1项目
  李尔博士0 1 0 0 0 0 0
  朱诺博士0 0 1 0 0 0 0
  刘哲博士0 0 0 0 0 0 1
  王凯博士1 0 0 0 0 0 0
  罗林博士0 0 0 0 1 0 0
  陈加博士0 0 0 0 0 1 0
  郑斯博士0 0 0 1 0 0 0
  表4-3归一化个人感兴趣度
  归一化个人感兴趣度李尔博士朱诺博士刘哲博士王凯博士罗林博士陈加博士郑斯博士
  0.343 0.8 0.6 0.3 0.6 0.25 0.333
  表4-4归一化项目匹配度
  归一化项目匹配度A项目B项目C项目D项目E项目D1项目E1项目
  0.21429 0.35714 0.32857 0.21429 0.23571 0.18517 0.11143
  由表格4-3,4-4可知个人最小感兴趣度为0.25,项目最小适应度为0.1114将其带入目标函数(1)和目标函数(2)中分别求出结果为0.0279和0.1946。所以最终分配结果为:
  王凯博士负责A项目;
  李尔博士负责B项目;
  朱诺博士负责C项目;
  陈加博士和郑斯博士负责D项目;
  刘哲博士和罗林博士负责E项目。
  总结:尽管最终分配的结果与原来分配的结果一致,但这次的分配无疑是更全面更有说服力更符合实际的,所以以后在遇到此类问题的时候我们应该谨慎认真,让每一个人都能找到自己喜欢而且在自己能力范围之内的事。

  参考文献:

  [1]《运筹学》教材编写组编《运筹学》2005年清华大学出版社
  [2]袁新生《LINGO和EXCEL在数学建模中的应用》2007年科学出版社
  [3]赵静、但琦《数学建模与数学实验》2008年高等教育出版社
  [4]朱道元《数学建模案例精选》2003年科学出版社
  [5]徐玖平、胡知能、王緌《运筹学》(第二版)2004年北京科学出版社
  [6]张德丰等《MATLAB数值计算方法》2010年北京机械工业出版社
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.447766.cn/chachong/14780.html,

Like (1)
写文章小能手的头像写文章小能手游客
Previous 2021年11月3日
Next 2021年11月3日

相关推荐

My title page contents