本发明属于机器学习技术领域,特别涉及一种基于机器学习的智慧工地智能排班方法及系统。
背景技术:
工地在施工过程中总会需要不同的工种、形形色色的工人同时施工。尤其是现在大型工程越来越多,势必导致工种更加丰富,同时工人数目也会激增。在这样的背景下,如何实现工地工人的智能排班就显得很有意义,一方面,对于企业而言,不合理的排班会降低施工效率,也会给企业增加成本;另一方面,对于工人而言,不合理的排班也会降低工人的积极性,甚至威胁工人的安全。而现有的排班大都是基于人工排班,这在面对大型工程时就很难满足排班的需求。
现有的排班技术大都针对工况简单、施工人员较少的情况,很难满足工地这样的工种丰富、施工人员众多的场景。
技术实现要素:
本发明的目的在于提供一种基于机器学习的智慧工地智能排班方法及系统,以解决上述工地工人排班的技术问题。
为了实现上述目的,本发明采用如下技术方案:
第一发面,本发明提供一种基于机器学习的智慧工地智能排班方法,包括:
采集工地中工人的状态以及施工的完成进度数据;输入预先训练好的深度强化学习网络,获得工人排班方案。
本发明进一步的改进在于:所述深度强化学习网络为基于a3c算法的深度强化学习网络;
基于a3c算法的深度强化学习网络包括:一个全局网络和连接全局网络的n个局部网络;每个局部网络结构和全局网络结构相同,每个局部网络能够独立的和环境进行交互得到经验数据,局部网络之间互不干扰,独立运行。
本发明进一步的改进在于:局部网络负责与环境交互,局部网络得到的神经网络损失函数的梯度每隔第一设定时间传递给全局网络;n个局部网络能够按照各自的梯度更新全局网络的神经网络模型参数;每隔第二设定时间全局网络将全局网络的网络参数传递给各局部网络,完成各局部网络之间的信息共享。
本发明进一步的改进在于:每个局部网络接收对应环境输入的工人需求状态和施工进度,输出对应的动作概率和得分值;局部网络得到动作概率的损失梯度和得到得分值的损失梯度由下式所示:
式中,s为当前状态,a为动作,θ为局部网络动作概率部分的网络参数,θv为局部网络得到得分值部分的网络参数;θ′和θv′为下一时刻动作概率部分和得分值部分的网络参数;(si;θv′)为局部网络的状态值函数,
本发明进一步的改进在于:基于a3c算法的深度强化学习网络的训练方法包括:
定义深度强化学习网络训练中的奖励函数r(t)为:
其中,
深度强化学习网络训练中的约束条件包括:
若安排某工人的连续工作时间大于国家标准:
r(t)=r(t)-x
由于存在工序,设工序a理应先于工序b,若b先于a完工:
r(t)=r(t)-y
其中,x和y均为一个惩罚值;
利用训练集对建立的基于a3c算法的深度强化学习网络进行训练,获得基于a3c算法的深度强化学习网络的初始的网络权重参数。
本发明进一步的改进在于:采集工地中工人的状态以及施工的完成进度数据;输入预先训练好的深度强化学习网络,获得工人排班方案的具体步骤包括:
采集工地中工人的状态以及施工的完成进度;
将网络权重参数赋值给基于a3c算法的深度强化学习网络;
采用粒子群算法对a3c算法动作选择的初始概率进行优化;
改变工人的状态,a3c算法的动作为每次改变1个工种的排班状态;
结合约束获得得分值r(t);每执行一次动作进行一步约束处理;
对作出的动作进行约束处理后判断已进行的动作是否能满足当下各工种的需求量,若能满足则将迭代次数 1;否则更新网络权重参数以及工人状态和施工进度并继续返回改变工人的状态的步骤;
记录能满足当下各工种的需求的那组工人排班状态的值以及其相应的累加奖励值;
若迭代次数小于最大迭代次数,将工人状态和施工进度初始化为一开始的状态,并返回改变工人的状态的步骤;
若已达到最大迭代次数就输出使奖励值最高的那组工人状态的值。
本发明进一步的改进在于:还包括可视化输出工人排班方案的步骤。
本发明进一步的改进在于:所述可视化指显示器显示或打印。
第二方面,本发明还提供一种基于机器学习的智慧工地智能排班系统,包括:处理器以及与所述处理器耦合的存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现所述基于机器学习的智慧工地智能排班方法的方法步骤。
相对于现有技术,本发明具有以下有益效果:
本发明公开了一种基于机器学习的智慧工地智能排班方法及系统,将工人状态(如是否请假、已工作时长、所做工作的施工进度)作为输入,考虑安全因素(一个工人不能连续工作超过指定时间)、经济因素(工种之间工作顺序)、工人满意度(工作一定时间后安排休假)以及企业一定时间内需求的工作量,来不断安排工人改变状态,输出工人排班的结果,同时利用可视化的界面将输出的结果可视化,以实现在线智能排班的目的。
进一步的,本发明先将所要应用到的工地的排班历史数据对算法中的网络参数进行训练,这样就能更快得到适合该工地的智能排班结果。利用该发明,在工地智能排班中不仅能获得实时的智能排班结果,也有助于提高工地施工的安全性、经济型以及工人工作的积极性。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1位本发明一种基于机器学习的智慧工地智能排班方法的流程框图;
图2为本发明深度神经网络的架构图;
图3为本发明深度神经网络的训练流程图;
图4为本发明一种基于机器学习的智慧工地智能排班系统的结构框图。
具体实施方式
下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本申请所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
实施例1
请参阅图1所示,本发明第一方面提供一种基于机器学习的智慧工地智能排班方法,具体包括以下步骤:
s1:采集历史数据,获得训练集;
所述历史数据包括:工人的状态以及施工的完成进度。
其中,工人的状态包括是否在工作、工种、已工作时间、已工作天数(工作8小时算一天)、每小时的薪酬。施工进度也是分工种的,这里假定每个工种的工人的工作能力即每小时所能完成的工作量是一致的。状态变量s就定义为工人的状态以及施工完成进度。
s2:建立基于a3c算法的深度强化学习网络
深度强化学习网络的结构如图2所示,包括:一个全局网络和n个局部网络;其中n取决于运行方法的计算机cpu的数目。每个局部网络结构和全局网络结构相同,每个局部网络独立的和环境进行交互得到经验数据,这些局部网络之间互不干扰,独立运行。每个局部网络都接收工人需求状态和施工进度,并依次输出对应的动作概率和得分值以及得到相应的损失梯度。
算法中全局网络并不直接与环境进行交互,局部网络负责与环境交互,而局部网络得到的神经网络损失函数的梯度并不更新自己线程里的神经网络,而是每隔一定时间传递给全局网络,即n个局部网络都会按照自己的梯度去更新全局网络的神经网络模型参数。而每隔一段时间全局网络就会将自己的网络参数传递给各局部网络,这就完成各局部网络之间的信息共享工作,该方法能大大加快算法的计算速度。
局部网络得到动作概率的损失梯度和得到得分值的损失梯度由下式所示:
式中,s为当前状态,a为动作,θ为局部网络动作概率部分的网络参数,θv为局部网络得到得分值部分的网络参数。θ′和θv′为下一时刻动作概率部分和得分值部分的网络参数。(si;θv′)为局部网络的状态值函数,
s3:采用步骤s1采集的训练集训练s2建立的基于a3c算法的深度强化学习网络:
定义奖励函数r(t),设置约束条件,基于步骤s1采集的训练集数据对s2建立的基于a3c算法的深度强化学习网络进行训练,通过不断迭代地试错式学习方式训练深度神经网络,当奖励函数稳定收敛状态或者达到最大迭代次数,结束训练过程并保存全局神经网络持久化模型。
a、深度神经网络训练中的奖励函数r(t)为:
其中,
深度神经网络训练中的约束条件包括:
b、若安排某工人的连续工作时间大于国家标准:
r(t)=r(t)-x
由于存在工序,设工序a理应先于工序b,若b先于a完工:
r(t)=r(t)-y
其中,违反几次减几次;x和y均为一个惩罚值,违背约束就会降低奖励的值,x和y的大小可分别有企业根据自身情况设定。
利用步骤s1的训练集对s2建立的基于a3c算法的深度强化学习网络进行训练,获得基于a3c算法的深度强化学习网络的初始的网络权重参数。
为进一步加强本发明的实时性,即加快本发明的计算速度,引入粒子群算法来帮助a3c算法加快计算速度。粒子群算法受鸟群觅食启发而来,其通过让粒子不断向自身历史最优位置学习以及所有粒子的最优位置学习来不断迭代寻优。pso粒子的位置更新方式如下式所示:
本发明中,设置每个粒子的维度为工种数,粒子各维度均为0,1变量(0即为不排班,1为排班),个体的位置由这些维度的值组成。算法的目标函数设置为与a3c算法的奖励函数一致,奖励值越高说明粒子的位置越好。其中,粒子速度的范围设置为(-0.4,0.4),
根据上述粒子群算法输出的结果,按照其输出的那个个体最佳位置排班状态改变输出的动作概率值。假设粒子群输出的最佳位置为(10101),则就在执行第一次动作时增加选择第一个工种排班的概率,第二次动作时增加选择第三个工种的排班概率,第三次动作时增加选择第五个工种的排班概率。本发明定增加概率为30%,由于强化学习在初始动作选择时概率是完全随机的,而增加粒子群算法输出结果的这一引导作用,势必给初始状态的强化学习动作选择提供更明确的方向,这就能帮助算法进一步提升计算速度。
s4、实时采集工地中工人的状态以及施工的完成进度;输入步骤s3训练好的深度神经网络,获得排班方案,并输出排班报告;按照排班方案进行相应排班。
请参阅图3所示,步骤s4具体的训练步骤如下:
s4.1、首先采集工地中工人的状态以及施工的完成进度;
s4.2、将s3使用工地历史数据训练好的网络权重参数赋值给基于a3c算法的深度强化学习网络。
s4.3、采用粒子群算法对a3c算法动作选择的初始概率进行优化;
s4.4、改变工人的状态(排班为1,不排班为0),假设有n个工种,那么就有n个排班状态可能会做出改变,a3c算法的动作为每次改变1个工种的排班状态(如将第i个工种的排班状态由0改成1,即说明对工种i排班。)。
s4.5、结合约束获得得分值r(t);每执行一次动作就要进行一步约束处理,即违反上述约束就要进行相应的惩罚,降低此步行动的奖励值。
s4.6、对作出的动作进行约束处理后判断已进行的动作是否能满足当下各工种的需求量,若能满足则将迭代次数 1,并跳出此步循环进入步骤s4.7,否则就更新网络权重参数以及工人状态和施工进度并继续返回s4.4。
s4.7、记录步骤s4.6输出的那组工人排班状态的值(即都有哪个工种的排班状态发生改变)以及其相应的累加奖励值。
s4.8、若迭代次数小于最大迭代次数,就将工人状态和施工进度初始化为一开始的状态,并返回步骤s4.4。
s4.9、若已达到最大迭代次数就输出使奖励值最高的那组工人状态的值。
s4.10、将步骤s4.9的结果可视化。
在设定算法的循环训练时,只要各工种需求的排班量没有达到要求,就必须继续安排各工种的工人排班状态改变。若各工种的需求工作量都已完成,即企业制定的总工作量已经完成,那就将工人状态和施工进度初始化为最开始的输入状态,让模型上一步训练的基础上再次进行训练,这样就等达到将结果不断向想要达到的智能排班结果训练的目的。
整个学习框架将按照前述步骤的模式进行反复的训练,主要是按照梯度不断更新神经网络的权重参数(局部网络的神经网络参数为间接更新)。所谓间接更新即各局部网络与环境交互获得相应的损失梯度,并将传递给全局网络,全局网络将按照损失梯度更新神经网络的权重参数,并每隔一定代数就将神经网络参数赋值到局部神经网络中,以此达到各局部网络之间信息共享的目的。直到达到设定的最大训练次数时即可输出使得分值最高的那组改变的工人状态的值,并将该结果可视化,按照此组值进行排班。
其中,算法的动作空间定义为整个工人集体,算法的动作a为改变工人的状态(即由非工作状态改为工作状态或由工作状态转为非工作状态)。随着工人状态的改变,相应的所改变工人的已工作时间以及相应工种的施工进度等相关状态变量也会随之改变。
实施例2
请参阅图4所示,本发明还提供一种基于机器学习的智慧工地智能排班系统,包括:处理器以及与所述处理器耦合的存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现实施例1所述基于机器学习的智慧工地智能排班方法的方法步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
1.基于机器学习的智慧工地智能排班方法,其特征在于,包括:
采集工地中工人的状态以及施工的完成进度数据;输入预先训练好的深度强化学习网络,获得工人排班方案。
2.根据权利要求1所述的基于机器学习的智慧工地智能排班方法,其特征在于,所述深度强化学习网络为基于a3c算法的深度强化学习网络;
基于a3c算法的深度强化学习网络包括:一个全局网络和连接全局网络的n个局部网络;每个局部网络结构和全局网络结构相同,每个局部网络能够独立的和环境进行交互得到经验数据,局部网络之间互不干扰,独立运行。
3.根据权利要求2所述的基于机器学习的智慧工地智能排班方法,其特征在于,局部网络负责与环境交互,局部网络得到的神经网络损失函数的梯度每隔第一设定时间传递给全局网络;n个局部网络能够按照各自的梯度更新全局网络的神经网络模型参数;每隔第二设定时间全局网络将全局网络的网络参数传递给各局部网络,完成各局部网络之间的信息共享。
4.根据权利要求2所述的基于机器学习的智慧工地智能排班方法,其特征在于,每个局部网络接收对应环境输入的工人需求状态和施工进度,输出对应的动作概率和得分值;局部网络得到动作概率的损失梯度和得到得分值的损失梯度由下式所示:
式中,s为当前状态,a为动作,θ为局部网络动作概率部分的网络参数,θv为局部网络得到得分值部分的网络参数;θ′和θv′为下一时刻动作概率部分和得分值部分的网络参数;(si;θv′)为局部网络的状态值函数,
5.根据权利要求2所述的基于机器学习的智慧工地智能排班方法,其特征在于,基于a3c算法的深度强化学习网络的训练方法包括:
定义深度强化学习网络训练中的奖励函数r(t)为:
其中,
深度强化学习网络训练中的约束条件包括:
若安排某工人的连续工作时间大于国家标准:
r(t)=r(t)-x
由于存在工序,设工序a理应先于工序b,若b先于a完工:
r(t)=r(t)-y
其中,x和y均为一个惩罚值;
利用训练集对建立的基于a3c算法的深度强化学习网络进行训练,获得基于a3c算法的深度强化学习网络的初始的网络权重参数。
6.根据权利要求5所述的基于机器学习的智慧工地智能排班方法,其特征在于,采集工地中工人的状态以及施工的完成进度数据;输入预先训练好的深度强化学习网络,获得工人排班方案的具体步骤包括:
采集工地中工人的状态以及施工的完成进度;
将网络权重参数赋值给基于a3c算法的深度强化学习网络;
采用粒子群算法对a3c算法动作选择的初始概率进行优化;
改变工人的状态,a3c算法的动作为每次改变1个工种的排班状态;
结合约束获得得分值r(t);每执行一次动作进行一步约束处理;
对作出的动作进行约束处理后判断已进行的动作是否能满足当下各工种的需求量,若能满足则将迭代次数 1;否则更新网络权重参数以及工人状态和施工进度并继续返回改变工人的状态的步骤;
记录能满足当下各工种的需求的那组工人排班状态的值以及其相应的累加奖励值;
若迭代次数小于最大迭代次数,将工人状态和施工进度初始化为一开始的状态,并返回改变工人的状态的步骤;
若已达到最大迭代次数就输出使奖励值最高的那组工人状态的值。
7.根据权利要求1所述的基于机器学习的智慧工地智能排班方法,其特征在于,还包括可视化输出工人排班方案的步骤。
8.根据权利要求7所述的基于机器学习的智慧工地智能排班方法,其特征在于,所述可视化指显示器显示或打印。
9.基于机器学习的智慧工地智能排班系统,其特征在于,所述系统包括:处理器以及与所述处理器耦合的存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-8任一项所述方法的方法步骤。
技术总结