2021-05-08

 

 

  • 员工排班模型
    1. 模型构建
      1. 排班原则
  • (一)以解决痛点为导向
  • 作为作业现场主管,需提前一周将作业员未来- -周上班安排发出,包括作业岗位,班次等信息。而排班时需综合考虑现场管理和公司制度,因需要人为平衡出勤的排班目标和基础条件,因此,主管在排班时经常需要反复检查和修正。
  • (二)科学合理原则
  • 通过对排班场景的观察,了解排班的需求,判断为可利用运筹学中的线性规划工具,通过将现场要求和公司制度转化为约束条件输入,上班与否可用“0-1” 变量体现,平衡出勤工时作为模型整体目标。
      1. 目标函数
  • 排版模型中主要设定两个角色,一个为管理者,一个为普通员工。通过对普通员工和管理的的不同目标值设定目标函数。仓储作业生产中最大的资源投入是人员。为保证每日的运营生产,在总出勤工时方面需最大化地平衡员工当月的总工时,包括已上班工时和预排班工时,避免出现月底时无人开工的现象。设定管理者薪资为1.5,普通员工薪资为1,求得整体薪资最低时的函数。
      1. 排班约束
  • 作业现场主管,最迟不晚于当周五之前,需将作业员未来-1 周的上班安排发出,包括作业岗位,班次等信息。排班时需综合考虑现场管理和公司制度,约束因素如下:
  • 连续出勤:制度要求所有员工不得连续出勤7天或以上,排班表上不能有连续7天的上班安排,包括跨周连接期。因此排班需同时结合前一周 的上班安排
  • 本文分别从多个方面设置了6个独立的约束模块。根据企业的实际现状与要求选择其中相应的约束模块,使得排班模型获得的排班结果更加适合企业。
  • 约束模块1:主要从作业姿势的变化出发,使得工人每天的工作交替变化,从而身体同一个部位的工作负荷交替变化可以避免工人连续从事高负荷工作而得到休息时间。
  • 约束模块2:为了均衡负荷风险值,每位工人受到的风险程度都应该在一定合理范围的要求之内,避免个别工人承受高额的工作风险。
  • 约束模块3:考虑到工人肌肉的提举等能力的不同,在从事体力作业环境下,工人承受的作业重量负荷应该在合理的范围内,超过工人自身最大的能力时继续作业可能造成严重的伤害,因此设立肌肉约束。
  • 约束模块4:工人由于个体的差异,作业时候身体所可接受的时间不同,因此根据MET的要求考虑工作情况进行合理安排,使工人都处于合理的作业时间内。
  • 约束模块5:考虑工人的疲劳积累,使得工人在相连的两个休息段的时间内疲劳积累值不超过额定值。
  • 约束模块6:不同的工人操作不同任务的技术系数不同,熟练程度的差异导致企业的产量会存在波动,企业在特定时期需要优先满足生产的需求。因此为解决排班与生产之间可能存在的矛盾,对总生产和关键工位的生产能力上设置最低的标准要求。

 

      1. 参数设定
  • 设x,为员工i在第n周第j天的排班出勤(i=1,2. .. 16,j=,2.7,n=1,2 .52), Yin为员工i截止到第n周的预估出勤工时(=1,2..16, n=1,2 .52),Zjn为员工员工i在第n周第j天的连续出勤天数(i=1,2... 16,j=1,2.7,n=1,2.52),Qjn为第n周第j天的排班人数要求(j=1,2..7, n=1,2.52)
  •  
  • 目标函数为总体薪资最少。
  • 在平峰的薪资最优化中,x6-26设置为200一天,x1-5设置为10000元一天,采用大M法的思想对员工进行剔除,即原来员工只有20个。
  • 设x,为员工i在第n周第j天的排班出勤(i=1,2. .. 16,j=,2.7,n=1,2 .52), Yin为员工i截止到第n周的预估出勤工时(=1,2..16, n=1,2 .52),Zjn为员工员工i在第n周第j天的连续出勤天数(i=1,2... 16,j=1,2.7,n=1,2.52),Qjn为第n周第j天的排班人数要求(j=1,2..7, n=1,2.52)
  • 排班总目标是最大化平衡所有员工的出勤工时,目标为截止第n周员工整体出勤工时极值差最小,由此列出如下目标函数:
  • Z = MAX(Ym)一MIIN(Ymn) (n= 1,2,. ,52)
  • 约束条件为
  • SUM(X1,X2,..。。 X5)=<3----------------------------------星期一总排班人数等于3;
  • SUM(X12,X22 ...X162)<4------------------------------------星期二总排班人数等于4
  • SUM(X13, X23..X163)<2----------------------------------星期三总排班人数等于2;
  • SUM(X14, X24..X164)<3-------------------------------------星期四总排班人数等于3;
  • SUM(X15,X25..X165)<3-------------------------------------星期五总排班人数等于3;
  • SUM(X16,X26.. X166)=4------------------------------------每人总排班天数为小于4;
  • 资源受限项目调度(RCPSP)作为一类重要的调度模型,广泛存在于制造、建筑等领域,其最大的特点是考虑资源为可更新资源,即资源在任务结束后立即释放,同时项目进程中资源总量不发生改变.然而,在许多实际装配生产系统中,例如飞机移动装配中,人力资源以排班的形式进行装配生产活动,其可用量会在生产过程中会受到排班的影响,因此事先制定的调度计划与实际的生产进度存在很大差距.此时,调度的关键在于如何将人力资源进行合理的排班,以确定每个班次下的人力资源数量,并在排班决策下为任务安排合理的开始时间,以获得最小的装配时间.此问题称为考虑人力资源排班的资源受限项目调度问题(RCPSP-ET),其本质上是资源受限项目调度与人力资源排班(ETP)的整合问题.由于RCPSP-ET问题与传统RCPSP问题的决策范围不同,现有的模型与算法无法直接应用,所以对RCPSP-ET问题的建模以及算法研究具有重要的实际与理论意义。
    1. 遗传算法计算
      1. 算法步骤
  • a)读取人员表和人员信息表,对机次信息表以天为单位分段,算段,算法以天为单位处理,简化约束条件的处理流程;
  • b)对种群及算法所需参数初始化,计算当前种群所有染色体的偏差值;
  • c)计算并记录当代的平均偏差值和最优解,判断是否满足收敛条件或得到最优解,如果满足则输出最优解并进行下一工作日的算法运算,如果不满足就继续进行步骤d);
  • d)对所有染色体按偏差值大小排序,并将染色体分为1和2组,对2组进行改进交叉和变异操作;
  • e)将1和2组合并成新的种群,判断是否达到设置的进化代数,如果达到则计算当前种群所有染色体的偏差值并输出当前最优解,没有达到则返回步骤c)。
      1. 编码与初始种群
  • 遗传算法的编码是将问题的可行解从解空间转换为遗传算法所能处理的搜索空间。为避免二进制编码对连续变量产生的固有缺陷以及从染色体到表现值的转换,本文采用实数编码方法。通过读取“工人排班表”和“工作时长”的数据生成初始种群;为了简化处理约束条件对种群的影响,也为了更好地处理式(7)表达的约束,读取的机次信息表以月为单位,生成的解种群以天为单位,通过以天为单位对机次信息表进行处理,实现对以月为单位的作业任务的机组分配。本文中的一条染色体即一个工作日的排班计划,一个基因对应当日任务所指派的机组。假设当日有8个任务,需从15个机组中指派,则染色体由8个基因组成;基因的顺序代表任务的顺序,随机从15个机组抽取8个填入8个基因座,代表执行对应的8个任务,且保证同一机组不会出现在不同的任务指派中。如表1所示,随机生成一条染色体,第一行代表基因位置,第二行代表机组编号。假设该种群由M个个体组成,则初试种群由M个随机生成的染色体组成,每个染色体有八个基因。

 

      1. 适应度函数
  • 适应度函数是区分种群中个体好坏的标准,也是算法自然选择的唯一依据。为了解决人员排班问题中约束条件多、影响力不一等问题,本文采用一种基于专家系统评判的约束条件影响评估函数。专家系统根据任务的作业类型、作业区域、人员等确定与人员匹配偏差值的大小,专家系统由该地区作业的历史数据和专家观点通过影响因子的配比组成。以上述初始种群Q为例,一条染色体即一种排班方法,通过专家系统对染色体上的每个基因进行约束条件影响评估,得出机组执行当前任务的偏差值;对整条染色体求和,最终得到一种排班方法的总偏差值。通过每条染色体的偏差值大小判定排班效果,偏差值越小排班效果就越好。

 

      1. 选择策略
  • 选择哪些个体适合遗传到子代。为了更好地执行搜索策略,避免算法过快收敛或陷入局部最优,本文采用了以下方法:根据个体适应度的大小将适应度大的前50%分为第1组,后50%分为第2组;将第1组随机竞争选择,即通过轮盘赌的方式每次选择一对个体,适应度高的留在第1组,低的分配到第2组;第2组交叉、变异操作后再与第1组一起形成新的子代。这种选择方式的优点是避免了传统轮盘赌方法随机性过大,导致有时优秀个体也选不上的缺点,通过随机竞争选择的方法使部分优秀个体也可以进行交叉和变异,防止算法陷入局部最优,提高算法效率。

 

 

      1. 交叉策略
  • 选择完成后第2组进行交叉操作,交叉分为单点交叉、两点交叉、多点交叉、均匀交叉和算数交叉。如果采用传统遗传算法的交叉方式,完成后的染色体很难满足实际需要,例如图1所示是发生交叉前的染色体,如果第5基因位处发生了单点交叉,完成交叉后的染色体如图2所示,其中第1条染色体的第3基因位和第7基因位上的基因相同,实际上这种情况是同一日期任务3和7所指派的机组相同。在实际通航机组任务指派中,这种情况一般不会出现,所以传统遗传算法的交叉策略是行不通的。为了解决这个问题,本文提出了一种改进染色体的交叉方法。a)对个体进行两两随机配对,如果个体总数为单数,则剩下的单独个体不进行操作。b)对于每一对相互配对的个体,依据其个体偏差值的大小,个体偏差值低的作为交换体,偏差值高的作为被交换体。选取交换体中基因位偏差值高的前1/3与被交换体中进行等位基因交换,交换过程依据基因偏差值从高到低一个个来,如发现交换后同一个体中出现相同基因,则放弃该基因位两个体间的互换,采取交换体中两基因位进行调换。该方法的优点在于改进传统遗传算法的交叉策略,在保证生成新染色体的同时实现进化的方向性,不再是随机设置交叉点,提高了进化效率,并且染色体中的元素不会因为交叉产生重复,从而保证了机组指派的单一性。
    1. 演算结果
  •  

 

 

  • 解得x为:1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0

 

  • 高峰时期效果对比图
    1. 模型构建
      1. 排班原则
  • (一)以解决痛点为导向
  • 作为作业现场主管,需提前一周将作业员未来- -周上班安排发出,包括作业岗位,班次等信息。而排班时需综合考虑现场管理和公司制度,因需要人为平衡出勤的排班目标和基础条件,因此,主管在排班时经常需要反复检查和修正。
  • (二)科学合理原则
  • 通过对排班场景的观察,了解排班的需求,判断为可利用运筹学中的线性规划工具,通过将现场要求和公司制度转化为约束条件输入,上班与否可用“0-1” 变量体现,平衡出勤工时作为模型整体目标。
  • 资源受限项目调度(RCPSP)作为一类重要的调度模型,广泛存在于制造、建筑等领域,其最大的特点是考虑资源为可更新资源,即资源在任务结束后立即释放,同时项目进程中资源总量不发生改变.然而,在许多实际装配生产系统中,例如飞机移动装配中,人力资源以排班的形式进行装配生产活动,其可用量会在生产过程中会受到排班的影响,因此事先制定的调度计划与实际的生产进度存在很大差距.此时,调度的关键在于如何将人力资源进行合理的排班,以确定每个班次下的人力资源数量,并在排班决策下为任务安排合理的开始时间,以获得最小的装配时间.此问题称为考虑人力资源排班的资源受限项目调度问题(RCPSP-ET),其本质上是资源受限项目调度与人力资源排班(ETP)的整合问题.由于RCPSP-ET问题与传统RCPSP问题的决策范围不同,现有的模型与算法无法直接应用,所以对RCPSP-ET问题的建模以及算法研究具有重要的实际与理论意义。
      1. 目标函数
  • 排版模型中主要设定两个角色,一个为管理者,一个为普通员工。通过对普通员工和管理的的不同目标值设定目标函数。仓储作业生产中最大的资源投入是人员。为保证每日的运营生产,在总出勤工时方面需最大化地平衡员工当月的总工时,包括已上班工时和预排班工时,避免出现月底时无人开工的现象。设定管理者薪资为1.5,普通员工薪资为1,求得整体薪资最低时的函数。
      1. 排班约束
  • 作业现场主管,最迟不晚于当周五之前,需将作业员未来-1 周的上班安排发出,包括作业岗位,班次等信息。排班时需综合考虑现场管理和公司制度,约束因素如下:
  • 连续出勤:制度要求所有员工不得连续出勤7天或以上,排班表上不能有连续7天的上班安排,包括跨周连接期。因此排班需同时结合前一周 的上班安排
  • 本文分别从多个方面设置了6个独立的约束模块。根据企业的实际现状与要求选择其中相应的约束模块,使得排班模型获得的排班结果更加适合企业。
  • 约束模块1:主要从作业姿势的变化出发,使得工人每天的工作交替变化,从而身体同一个部位的工作负荷交替变化可以避免工人连续从事高负荷工作而得到休息时间。
  • 约束模块2:为了均衡负荷风险值,每位工人受到的风险程度都应该在一定合理范围的要求之内,避免个别工人承受高额的工作风险。
  • 约束模块3:考虑到工人肌肉的提举等能力的不同,在从事体力作业环境下,工人承受的作业重量负荷应该在合理的范围内,超过工人自身最大的能力时继续作业可能造成严重的伤害,因此设立肌肉约束。
  • 约束模块4:工人由于个体的差异,作业时候身体所可接受的时间不同,因此根据MET的要求考虑工作情况进行合理安排,使工人都处于合理的作业时间内。
  • 约束模块5:考虑工人的疲劳积累,使得工人在相连的两个休息段的时间内疲劳积累值不超过额定值。
  • 约束模块6:不同的工人操作不同任务的技术系数不同,熟练程度的差异导致企业的产量会存在波动,企业在特定时期需要优先满足生产的需求。因此为解决排班与生产之间可能存在的矛盾,对总生产和关键工位的生产能力上设置最低的标准要求。

 

      1. 参数设定
  • 设x,为员工i在第n周第j天的排班出勤(i=1,2. .. 16,j=,2.7,n=1,2 .52), Yin为员工i截止到第n周的预估出勤工时(=1,2..16, n=1,2 .52),Zjn为员工员工i在第n周第j天的连续出勤天数(i=1,2... 16,j=1,2.7,n=1,2.52),Qjn为第n周第j天的排班人数要求(j=1,2..7, n=1,2.52)
  •  
  • 目标函数为总体薪资最少。
  • 在高峰的薪资最优化模型中,x6-26设置为200一天,x1-5设置为200*k,其中k为高峰系数,k值越高峰值越高,临时工所支付的工资越高。此时对模型进行构建。
  • 设x,为员工i在第n周第j天的排班出勤(i=1,2. .. 16,j=,2.7,n=1,2 .52), Yin为员工i截止到第n周的预估出勤工时(=1,2..16, n=1,2 .52),Zjn为员工员工i在第n周第j天的连续出勤天数(i=1,2... 16,j=1,2.7,n=1,2.52),Qjn为第n周第j天的排班人数要求(j=1,2..7, n=1,2.52)
  • 排班总目标是最大化平衡所有员工的出勤工时,目标为截止第n周员工整体出勤工时极值差最小,由此列出如下目标函数:
  • Z = MAX(Ym)一MIIN(Ymn) (n= 1,2,. ,52)
  • 约束条件为
  • SUM(X1,X2,..。。 X5)=<3----------------------------------星期一总排班人数等于3;
  • SUM(X12,X22 ...X162)<4------------------------------------星期二总排班人数等于4
  • SUM(X13, X23..X163)<2----------------------------------星期三总排班人数等于2;
  • SUM(X14, X24..X164)<3-------------------------------------星期四总排班人数等于3;
  • SUM(X15,X25..X165)<3-------------------------------------星期五总排班人数等于3;
  • SUM(X16,X26.. X166)=4------------------------------------每人总排班天数为小于4;
  • 资源受限项目调度(RCPSP)作为一类重要的调度模型,广泛存在于制造、建筑等领域,其最大的特点是考虑资源为可更新资源,即资源在任务结束后立即释放,同时项目进程中资源总量不发生改变.然而,在许多实际装配生产系统中,例如飞机移动装配中,人力资源以排班的形式进行装配生产活动,其可用量会在生产过程中会受到排班的影响,因此事先制定的调度计划与实际的生产进度存在很大差距.此时,调度的关键在于如何将人力资源进行合理的排班,以确定每个班次下的人力资源数量,并在排班决策下为任务安排合理的开始时间,以获得最小的装配时间.此问题称为考虑人力资源排班的资源受限项目调度问题(RCPSP-ET),其本质上是资源受限项目调度与人力资源排班(ETP)的整合问题.由于RCPSP-ET问题与传统RCPSP问题的决策范围不同,现有的模型与算法无法直接应用,所以对RCPSP-ET问题的建模以及算法研究具有重要的实际与理论意义。
    1. 目标函数
  • 排版模型中主要设定两个角色,一个为管理者,一个为普通员工。通过对普通员工和管理的的不同目标值设定目标函数。仓储作业生产中最大的资源投入是人员。为保证每日的运营生产,在总出勤工时方面需最大化地平衡员工当月的总工时,包括已上班工时和预排班工时,避免出现月底时无人开工的现象。设定管理者薪资为1.5,普通员工薪资为1,求得整体薪资最低时的函数。
    1. 高峰状态下的总体约束
  • 目标函数为总体薪资最少。
  • 在高峰情况下,由于有临时工的存在,会导致部分薪资的降低。
  • 设x,为员工i在第n周第j天的排班出勤(i=1,2. .. 16,j=,2.7,n=1,2 .52), Yin为员工i截止到第n周的预估出勤工时(=1,2..16, n=1,2 .52),Zjn为员工员工i在第n周第j天的连续出勤天数(i=1,2... 16,j=1,2.7,n=1,2.52),Qjn为第n周第j天的排班人数要求(j=1,2..7, n=1,2.52)
  • 排班总目标是最大化平衡所有员工的出勤工时,目标为截止第n周员工整体出勤工时极值差最小,由此列出如下目标函数:
  • Z = MAX(Ym)一MIIN(Ymn) (n= 1,2,. ,52)
  • 约束条件为
  • SUM(X1,X2,..。。 X5)=<3----------------------------------星期一总排班人数等于3;
  • SUM(X12,X22 ...X162)<4------------------------------------星期二总排班人数等于4
  • SUM(X13, X23..X163)<2----------------------------------星期三总排班人数等于2;
  • SUM(X14, X24..X164)<3-------------------------------------星期四总排班人数等于3;
  • SUM(X15,X25..X165)<3-------------------------------------星期五总排班人数等于3;
  • SUM(X16,X26.. X166)=4------------------------------------每人总排班天数为小于4;
    1. 遗传算法计算过程
      1. 算法步骤
  • a)读取人员表和人员信息表,对机次信息表以天为单位分段,算段,算法以天为单位处理,简化约束条件的处理流程;
  • b)对种群及算法所需参数初始化,计算当前种群所有染色体的偏差值;
  • c)计算并记录当代的平均偏差值和最优解,判断是否满足收敛条件或得到最优解,如果满足则输出最优解并进行下一工作日的算法运算,如果不满足就继续进行步骤d);
  • d)对所有染色体按偏差值大小排序,并将染色体分为1和2组,对2组进行改进交叉和变异操作;
  • e)将1和2组合并成新的种群,判断是否达到设置的进化代数,如果达到则计算当前种群所有染色体的偏差值并输出当前最优解,没有达到则返回步骤c)。
      1. 编码与初始种群
  • 遗传算法的编码是将问题的可行解从解空间转换为遗传算法所能处理的搜索空间。为避免二进制编码对连续变量产生的固有缺陷以及从染色体到表现值的转换,本文采用实数编码方法。通过读取“工人排班表”和“工作时长”的数据生成初始种群;为了简化处理约束条件对种群的影响,也为了更好地处理式(7)表达的约束,读取的机次信息表以月为单位,生成的解种群以天为单位,通过以天为单位对机次信息表进行处理,实现对以月为单位的作业任务的机组分配。本文中的一条染色体即一个工作日的排班计划,一个基因对应当日任务所指派的机组。假设当日有8个任务,需从15个机组中指派,则染色体由8个基因组成;基因的顺序代表任务的顺序,随机从15个机组抽取8个填入8个基因座,代表执行对应的8个任务,且保证同一机组不会出现在不同的任务指派中。如表1所示,随机生成一条染色体,第一行代表基因位置,第二行代表机组编号。假设该种群由M个个体组成,则初试种群由M个随机生成的染色体组成,每个染色体有八个基因。

 

      1. 适应度函数
  • 适应度函数是区分种群中个体好坏的标准,也是算法自然选择的唯一依据。为了解决人员排班问题中约束条件多、影响力不一等问题,本文采用一种基于专家系统评判的约束条件影响评估函数。专家系统根据任务的作业类型、作业区域、人员等确定与人员匹配偏差值的大小,专家系统由该地区作业的历史数据和专家观点通过影响因子的配比组成。以上述初始种群Q为例,一条染色体即一种排班方法,通过专家系统对染色体上的每个基因进行约束条件影响评估,得出机组执行当前任务的偏差值;对整条染色体求和,最终得到一种排班方法的总偏差值。通过每条染色体的偏差值大小判定排班效果,偏差值越小排班效果就越好。

 

      1. 选择策略
  • 选择哪些个体适合遗传到子代。为了更好地执行搜索策略,避免算法过快收敛或陷入局部最优,本文采用了以下方法:根据个体适应度的大小将适应度大的前50%分为第1组,后50%分为第2组;将第1组随机竞争选择,即通过轮盘赌的方式每次选择一对个体,适应度高的留在第1组,低的分配到第2组;第2组交叉、变异操作后再与第1组一起形成新的子代。这种选择方式的优点是避免了传统轮盘赌方法随机性过大,导致有时优秀个体也选不上的缺点,通过随机竞争选择的方法使部分优秀个体也可以进行交叉和变异,防止算法陷入局部最优,提高算法效率。

 

 

      1. 交叉策略
  • 选择完成后第2组进行交叉操作,交叉分为单点交叉、两点交叉、多点交叉、均匀交叉和算数交叉。如果采用传统遗传算法的交叉方式,完成后的染色体很难满足实际需要,例如图1所示是发生交叉前的染色体,如果第5基因位处发生了单点交叉,完成交叉后的染色体如图2所示,其中第1条染色体的第3基因位和第7基因位上的基因相同,实际上这种情况是同一日期任务3和7所指派的机组相同。在实际通航机组任务指派中,这种情况一般不会出现,所以传统遗传算法的交叉策略是行不通的。为了解决这个问题,本文提出了一种改进染色体的交叉方法。a)对个体进行两两随机配对,如果个体总数为单数,则剩下的单独个体不进行操作。b)对于每一对相互配对的个体,依据其个体偏差值的大小,个体偏差值低的作为交换体,偏差值高的作为被交换体。选取交换体中基因位偏差值高的前1/3与被交换体中进行等位基因交换,交换过程依据基因偏差值从高到低一个个来,如发现交换后同一个体中出现相同基因,则放弃该基因位两个体间的互换,采取交换体中两基因位进行调换。该方法的优点在于改进传统遗传算法的交叉策略,在保证生成新染色体的同时实现进化的方向性,不再是随机设置交叉点,提高了进化效率,并且染色体中的元素不会因为交叉产生重复,从而保证了机组指派的单一性。

 

    1. 演算结果
  •  

 

 

  • 解得x为:1 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1
    1. 两种方法对比分析
  •  

 

  • 在采用临时工的策略中,我们发现采用临时工的收敛程度更慢,由于在设定函数时每个临时工所具有的薪资属性各不相同,本文采取了多样的薪资结构,多样的薪资方案不仅仅是考虑员工的工作,还要充分考虑员工的家庭、活动等员工生活的各方面。在保持薪资大体相同的基础上,这真正了解员工的需求的基础上结合实际情况制定出几套薪资方案供员工选择适合自己的薪资方案,并使员工对各薪资方案有着充分的了解,而且要允许员工能定期更换自己方案。在普通的正常薪资约束下,很快就可以计算出结果,在多样话的薪资条件下,我们可以看到在1000次迭代有迅速得到拟合近似值,但是在100次拟合之后依旧时没有得到一个准确的结果,在迅速地逼近一个最佳薪资结果。在平峰状态下我们可以迅速地得到结果,在高峰状态下,由于各个薪资不同,所以得到的薪资条件较为不一样,说明在多样化的薪资结构下,遗传算法对于其具有较好的逼近效果。

 

 

 

声明:本文仅为学习参考资料,本文发布于公共领域供学习交流使用。对于使用本文用于任何用途,本文不负任何责任,此模型来源于互联网,仅为收集互联网资料。

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个数据可以使用Python进行解析和处理。可以按照以下步骤进行: 1. 将数据分割成每个数据项。 ``` data_items = data.split(',') ``` 2. 对于每个数据项,将其按#分割成四个小项,并存储到一个列表中。 ``` data_list = [] for item in data_items: item_list = item.split('#') data_list.append(item_list) ``` 3. 对于每个小项,进行相应的类型转换。 ``` for item in data_list: item[0] = int(item[0]) # 题号转换为整数 item[1] = datetime.datetime.strptime(item[1], '%Y-%m-%d %H:%M:%S') # 时间转换为datetime类型 if item[2] != '': # 操作类型转换为整数 item[2] = int(item[2]) item[3] = str(item[3]) # 科目转换为字符串类型 ``` 4. 可以按照需要对数据进行进一步处理,如按照题号、时间等进行排序、筛选等操作。 完整的Python代码如下: ``` import datetime data = '''1#2021-05-18 14:31:55##初级会计实务,2#2021-05-18 14:31:57#12#初级会计实务,2#2021-05-18 14:32:08##初级会计实务,3#2021-05-18 14:32:09#12#初级会计实务,4#2021-05-18 14:32:34#12#初级会计实务,4#2021-05-18 14:32:45##初级会计实务,5#2021-05-18 14:32:46#12#初级会计实务,5#2021-05-18 14:32:57##初级会计实务,6#2021-05-18 14:33:00#12#初级会计实务,7#2021-05-18 14:33:44#12#初级会计实务,7#2021-05-18 14:34:42##初级会计实务,8#2021-05-18 14:34:43#12''' # 将数据分割成每个数据项 data_items = data.split(',') # 对于每个数据项,将其按#分割成四个小项,并存储到一个列表中 data_list = [] for item in data_items: item_list = item.split('#') data_list.append(item_list) # 对于每个小项,进行相应的类型转换 for item in data_list: item[0] = int(item[0]) # 题号转换为整数 item[1] = datetime.datetime.strptime(item[1], '%Y-%m-%d %H:%M:%S') # 时间转换为datetime类型 if item[2] != '': # 操作类型转换为整数 item[2] = int(item[2]) item[3] = str(item[3]) # 科目转换为字符串类型 print(data_list) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值