一种基于VBA实现的护士自动排班方法及系统技术方案

技术编号:27274638 阅读:36 留言:0更新日期:2021-02-06 11:40
本公开提供了一种基于VBA实现的护士自动排班方法及系统,所述方法包括以下步骤:获取至少一天的班次需求和护士人员数据;根据获取的班次需求和护士人员数据,采用随机分配的方式得到初始排班结果;根据预设排班约束、初始排班结果以及变邻域和局部搜索结合的排班优化算法,得到最优的排班结果;其中,在VBA中使用二维数组来存储排班表,数组的不同字符表示不同班次,通过VBA代码遍历排班表的二维数组将字符转为班次的名称填回排班界面;本公开可以最大限度的降低信息系统的部署复杂度和成本,系统的实现的模块化较高,方便扩展和维护,而且系统不需要其他任何第三方插件的支持。而且系统不需要其他任何第三方插件的支持。而且系统不需要其他任何第三方插件的支持。

【技术实现步骤摘要】
一种基于VBA实现的护士自动排班方法及系统


[0001]本公开涉及护士排班自动化
,特别涉及一种基于VBA实现的护士自动排班方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本公开相关的
技术介绍
,并不必然构成现有技术。
[0003]医院中的护士排班问题是一类复杂的人员分配问题。尽管近年来已有许多高效的算法被提出,将这些算法集成到现有的医院信息系统中或者设计开发独立的排班软件系统仍是一项复杂和艰巨的工作。
[0004]本公开专利技术人发现,排班系统设计和开发不仅需要实现复杂的排班算法、调用求解器、设计交互界面,还需要对代码进行不断的维护和扩展,且需要与医院当前的信息系统集成或者单独部署。因此,目前许多医院的排班工作仍然使用手工或者半手工的方式。当护士人数较多时,排班较为耗时,且质量无法得到保证。

技术实现思路

[0005]为了解决现有技术的不足,本公开提供了一种基于VBA实现的护士自动排班方法及系统,可以最大限度的降低信息系统的部署复杂度和成本,系统的实现的模块化较高,方便扩展和维护,而且系统不需要其他任何第三方插件的支持。
[0006]为了实现上述目的,本公开采用如下技术方案:
[0007]本公开第一方面提供了一种基于VBA实现的护士自动排班方法。
[0008]一种基于VBA实现的护士自动排班方法,包括以下步骤:
[0009]获取至少一天的班次需求和护士人员数据;
[0010]根据获取的班次需求和护士人员数据,采用随机分配的方式得到初始排班结果;
[0011]根据预设排班约束、初始排班结果以及变邻域和局部搜索结合的排班优化算法,得到最优的排班结果;
[0012]其中,在VBA中使用二维数组来存储排班表,数组的不同字符表示不同班次,通过VBA代码遍历排班表的二维数组将字符转为班次的名称填回排班界面。
[0013]作为可能的一些实现方式,变邻域和局部搜索结合的排班优化算法,具体为:
[0014]以得到的初始排班结果作为当前解和全局最优解;
[0015]停滞计数器设为零,如果未到计算时间上限,停滞计数器加一,将当前解复制一份作为候选解,产生一个随机数,对候选解进行组交换;
[0016]如果候选解的目标函数值小于或等于当前解的函数值,对候选解使用局部搜索,得到局部最优解为候选解,如果局部搜索得到的候选解的目标函数值小于或等于全局最优解,则更新全局最优解,并将停滞计数器重新设置为零,此时输出全局最优解为最优的排班结果。
[0017]作为进一步的限定,如果候选解的目标函数值大于当前解的函数值,且停滞计数
器大于上限,设置停滞计数器为零;
[0018]将全局最优解设置为当前解,对当前解进行扰动,如果未到计算时间上限,继续进行循环,直至得到全局最优解。
[0019]作为进一步的限定,组交换,具体为:随机选取一段连续的时间,起始位置和结束位置均使用随机的方式产生,在该时间段内再随机的选取两名护士,然后在排班表中交换两个护士的班次。
[0020]作为进一步的限定,所述扰动为对一个解进行随机的变化,具体为重新分配某个护士的班次。
[0021]作为进一步的限定,局部搜索,具体为:
[0022]所有天数k循环;
[0023]对护士i=1到N-1循环,对护士j=i到N循环;
[0024]使用一个临时解保存当前解;
[0025]对临时解交换第k天护士i和j的班次;
[0026]如果临时解更好,则将临时解变为当前解;
[0027]返回当前解。
[0028]作为可能的一些实现方式,对于不同的班次,使用单元格格式化的宏代码对不同的班次进行背景着色,将按键与VBA中的函数进行链接,使用VBA中自带函数实现归档、清除和锁定功能。
[0029]作为可能的一些实现方式,排班表的总体目标函数为所有约束的惩罚值乘以每个约束的权重的和,所述约束包括强制性约束和非强制性约束;
[0030]强制性约束包括:每个员工每天只能被排到一个班次,每天科室内需求的班次必须要满足,夜班后需要安排休息,前一次排班的工作班次需要固定,约定好的假期需要安排休息;
[0031]非强制性约束包括:单人每周最大工作天数不能超过上限,单人每周的最大夜班天数不能超过上限,不出现独立工作天,安排晚班在夜班之前,不能超过最大连续工作天,在一段时间内,每个护士安排的班次总数相等。
[0032]作为可能的一些实现方式,在所有与连续天数相关的约束中,采用额外的表格页面存储上一次的排班,并将当前排班的结束部分作为新排班的开头部分在约束描述中考虑。
[0033]作为可能的一些实现方式,使用VBA代码对排班表的二维数据进行遍历,检查与约束条件不符合的次数,记录并返回相关惩罚值的加权和。
[0034]本公开第二方面提供了一种基于VBA实现的护士自动排班系统。
[0035]一种基于VBA实现的护士自动排班系统,包括:
[0036]数据获取模块,被配置为:获取至少一天的班次需求和护士人员数据;
[0037]初始排班模块,被配置为:根据获取的班次需求和护士人员数据,采用随机分配的方式得到初始排班结果;
[0038]最优排班模块,被配置为:根据预设排班约束、初始排班结果以及变邻域和局部搜索结合的排班优化算法,得到最优的排班结果;
[0039]其中,在VBA中使用二维数组来存储排班表,数组的不同字符表示不同班次,通过
VBA代码遍历排班表的二维数组将字符转为班次的名称填回排班界面。
[0040]本公开第三方面提供了一种电子设备,包括本公开第二方面所述的基于VBA实现的护士自动排班系统。
[0041]与现有技术相比,本公开的有益效果是:
[0042]1、本公开所述的方法、系统或电子设备,基于Excel软件开发,Excel软件在目前我国的电脑中普遍存在,容易获得,因此使用该平台进行软件系统的开发可以最大限度的降低信息系统的部署复杂度和成本,系统的实现的模块化较高,方便扩展和维护,且系统不需要其他任何第三方插件的支持。
[0043]2、本公开所述的方法、系统或电子设备,可以求解现实生活中实际规模的排班优化问题,同时还考虑了包括医院中与护理排班相关的实际约束和各种现实需求,以及两个排班之间的约束,保证了总体排班平衡性。
[0044]3、本公开所述的方法、系统或电子设备,求解质量可以达到工业级优化软件的水平,能够保证在可接受的时间内得到高质量的排班表,整个过程为自动化排班,使用者只需提供参数。
[0045]4、本公开所述的方法、系统或电子设备,提供了一种将理论上的护士排班算法和实际应用联系起来的方法,在后续的扩展中可以在系统中嵌入其他更为有效的优化算法,还可以针对不同场合的护士排班问题对系统进行修改并使用。
[0046]本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于VBA实现的护士自动排班方法,其特征在于,包括以下步骤:获取至少一天的班次需求和护士人员数据;根据获取的班次需求和护士人员数据,采用随机分配的方式得到初始排班结果;根据预设排班约束、初始排班结果以及变邻域和局部搜索结合的排班优化算法,得到最优的排班结果;其中,在VBA中使用二维数组来存储排班表,数组的不同字符表示不同班次,通过VBA代码遍历排班表的二维数组将字符转为班次的名称填回排班界面。2.如权利要求1所述的基于VBA实现的护士自动排班方法,其特征在于,变邻域和局部搜索结合的排班优化算法,具体为:以得到的初始排班结果作为当前解和全局最优解;停滞计数器设为零,如果未到计算时间上限,停滞计数器加一,将当前解复制一份作为候选解,产生一个随机数,对候选解进行组交换;如果候选解的目标函数值小于或等于当前解的函数值,对候选解使用局部搜索,得到局部最优解为候选解,如果局部搜索得到的候选解的目标函数值小于或等于全局最优解,则更新全局最优解,并将停滞计数器重新设置为零,此时输出全局最优解为最优的排班结果。3.如权利要求2所述的基于VBA实现的护士自动排班方法,其特征在于,如果候选解的目标函数值大于当前解的函数值,且停滞计数器大于上限,设置停滞计数器为零;将全局最优解设置为当前解,对当前解进行扰动,如果未到计算时间上限,继续进行循环,直至得到全局最优解;或者,组交换,具体为:随机选取一段连续的时间,起始位置和结束位置均使用随机的方式产生,在该时间段内再随机的选取两名护士,然后在排班表中交换两个护士的班次;或者,所述扰动为对一个解进行随机的变化,具体为重新分配某个护士的班次。4.如权利要求2所述的基于VBA实现的护士自动排班方法,其特征在于,局部搜索,具体为:所有天数k循环;对护士i=1到N-1循环,对护士j=i到N循环;使用一个临时解保存当前解;对临时解交换第k天护士i和j的班次;如果临时解更好,则将临时解变为当前解;返回当前解。5.如权利...

【专利技术属性】
技术研发人员:郑自然
申请(专利权)人:山东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1