本发明涉及作业车间调度领域,具体地涉及用算法求解作业车间调度问题。
背景技术:
:作业车间调度问题(Job-ShopSchedulingProblem,JSP)是制造执行系统研究的核心和重点之一,它的研究不仅具有重大的现实意义,而且具有深远的理论意义。JSP就是根据产品制造需求合理分配资源,进而达到合理利用产品制造资源、提高企业经济效益的目的。JSP是产品制造行业中共存的问题,它与计算机集成制造系统(ComputerIntegratedManufacturingSystems,CIMS)的工厂管理、产品制造层次紧密相关,是CIMS领域中研究的重要课题。JSP是一个典型的NP-hard问题,它的研究必然会对NP问题的研究起到有意义的影响。在过去的几十年,各种算法被应用来解决作业车间调度问题。传统的,一般都采用最优化方法和近似方法来解决作业车间调度方案的自动生成问题。最优化方法包括枚举法和数学规划技术。近似法通常使用分支定界法、优先规则、启发式方法、迭代局部搜索算法和进化算法。粒子群算法(PSO)是一种智能算法,该算法最初是受到鸟群活动规律的启发,利用群体对个体信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。但是,粒子群算法对离散的优化问题处理不佳,且容易陷入局部最优。技术实现要素:针对现有技术中存在的上述不足,本发明要解决的技术问题是提供一种基于均值偏移算法和禁忌搜索算法的改进粒子群算法。本发明的目的则是克服现有技术中存在的:粒子群算法容易陷入局部最优;粒子群算法仅对当前粒子群信息进行处理,没有处理一些粒子信息变动的异常情况;粒子群算法仅对当前最优解进行扰动,缩小了搜索范围的问题。本发明为实现上述目的所采用的技术方案是:一种改进的粒子群算法求解作业车间调度问题,该算法的步骤如下:步骤1:初始化算法参数:包括PSO粒子的数目、位置和速度等信息。步骤2:获得初始最优解:采用加权法平均法设置初始粒子的优先级,得到初始最优解。步骤2.1:给每个粒子编号;步骤2.2:统计所有粒子的速度的和,用每个粒子的速度除速度和,得到每个粒子的优先权值;步骤2.3:按照优先权大小决定粒子的先后顺序,优先权值大的工件优先执行。步骤3:获得传统当前最优解:用粒子群算法更新粒子信息,得到当前传统粒子群算法当前最优解。步骤4:预测当前最优解:加入一种改进的均值偏移算法,用均值偏移算法在初始最优解的基础上对每个粒子的位置和整体位置进行预测。步骤4.1:初始化粒子位置信息。步骤4.2:确定当前粒子群中心。步骤4.3:计算粒子群权值矩阵。步骤4.4:计算粒子权值。步骤4.5:用高低点法预测下一步粒子的位置和速度。步骤4.6:计算相似函数。步骤4.7:计算均值偏移向量,由均值偏移向量确定粒子群最优预测位置和速度。步骤4.8:循环执行步骤4.2到步骤4.7,直到满足退出条件。步骤5:初选当前最优解:用粒子群算法的评判标准,将预测的最优位置和速度与群体以往最好位置和速度做比较,将更好的位置信息作为当前最好的位置信息。步骤6:确定当前最优解:执行禁忌搜索算法,找到当前最优解。步骤6.1:给定一个当前解和一种领域结构,然后在当前领域结构内确定若干候选解。步骤6.2:若其最佳候选解对应的目标函数优于已保留的最好解,则忽视其禁忌特性,用其代表当前解和最好解,并将相应的特性加入到禁忌表中,同时对禁忌表进行修改;步骤6.3:若不存在上述候选解,则在候选解中选择非禁忌的最好解作为新的当前解,而无视它与当前解的优劣,同时将解的响应特性加入禁忌表中,同时修改禁忌表;步骤6.4:循环步骤6.1到6.3,直到满足停止准则;步骤7:循环执行步骤2到步骤6,直到达到停止条件。本发明的有益效果是:1.利用加权值的方式设置粒子优先级,避免了随机产生初始解带来的不确定性推理,减少盲目搜索时间。2.对均值偏移算法做一点改进,然后利用一种改进的均值偏移算法对粒子位置信息预测,降低了部分异常变动粒子对整个算法的干扰。3.增加禁忌搜索算法避免搜索陷入局部最优;附图说明图1为本发明的算法基本流程图。图2为改进的均值偏移算法流程图。图3为禁忌搜索算法流程图。图4为基本粒子群算法流程图。具体实施方式由于传统的粒子群算法搜索速度快,效率高,算法简单,适合实时处理。但是对离散的优化问题处理不佳,容易陷入局部最优。所以本算法为了解决这些问题,首先,在传统PSO随机产生初始解的方法上进行了改进:引进加权平均法设置粒子的初始解;其次,对均值偏移算法做改进:运用改进的均值偏移算法对初始解进行下一步状态的预测,将预测解与当前最优解做比较,将其中更好的解作为当前最优解,解决了粒子群算法中没有考虑到的粒子信息异常变动的情况;再次,引入禁忌搜索算法对粒子信息进行进一步更新,正好解决了粒子群算法容易陷入局部最优的问题。为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图1到4对本发明进一步详细说明。一、作业车间调度一个JSP可以描述如下:假设存在n个作业需要在m台机器上调度。首先确定每个工件的具体操作和给出每个序列的数据。本发明预先建立了一些假设:(1)每个作业的处理序列已被确定;(2)各机器至多在同一时刻处理一个作业,并且一旦开始工作就不能被终止(3)作业相互独立,即每个作业可以以任何顺序进行处理;(4)所有作业都是在时刻0开始等待被处理。为了说明本发明提出的解决JSP问题的算法,设计了以下数学模型来展现其具体实现过程(表1为JSP模型符号定义):n作业数量m机器数量j作业索引p作业操作索引k机器索引l机器操作索引Mk第k台机器Nj第j个作业Ojpkl第j个作业操作p/第k台机器操作lSjpklOjpkl开始时间CjpklOjpkl完成时间PjpklOjpkl处理时间Boperation相邻操作缓冲时间表1(1)建立0-1规划模型:(2)约束函数:Sj(p+1)k(l+1)=Max(Cjpk'l',Cj'p'kl)(3)Pjpkl=Cjpkl-Sjpkl(4)Pjpkl≥0(5)Cjpkl≥Sjpkl(6)Sj(p+1)kl-Cjpk'l'=BjBj∈(0,∞)(7)Sjpk(l+1)-Cj'p'kl=BkBk∈(0,∞)(8)目标函数:MakeSpan=Min(Max(Cjpkl))(9)约束(1)和(2)总结了在所有情况下同一时刻机器数量以及处理作业满足的限制。约束(3)意味着作业开始操作之前有可能存在等待时间。在这种情况下,机器Mk上Nj的开始时间不超过作业Nj的完成时间。约束(4)、(5)和(6)确保处理时间的准确度。约束(7)和(8)表明,同一台机器上两个操作之间的等待时间可以是任何长度。二、算法的关键步骤说明假设在一个D维搜索空间和N个粒子组成的粒子群中寻找空间最优解。每个粒子都有其独特的速度和位置信息。在第t次迭代中,粒子的速度记为粒子的位置记为局部最佳位置和全局最佳位置分别记为和算法具体流程如图1所示,结合图1,以下是算法的具体实现过程和相应算法模型。1、所述步骤2获得初始最优解:采用加权法平均法设置初始粒子的优先级,得到初始最优解,加权平均法模型如下:(1)给每个粒子随机编号。(2)计算粒子初始解的优先级:(3)获得初始最优解:按照优先级大小进行排序,然后按排好序的序列先后顺序执行作业。2、所述步骤3获得传统当前最优解,结合图4,描述如下:在每一步中粒子根据下述公式更新:t代表迭代数量,ω,c1,c2是常量,影响最优解的质量和速度。r1,r2是(0,1)之间均匀分布的随机数。终止迭代的标准由是否到达最大迭代次数或设计的Pg适应度值决定。3、所述步骤4改进的均值偏移算法,结合图2,其各步骤的具体计算方式如下:(1)粒子的速度记为粒子的位置记为预测局部最佳位置和预测全局最佳位置分别记为和(2)确定当前中心粒子:规定速度最密点为速度中心粒子,位置最密点为位置中心粒子,速度中心和位置中心分别记为和(3)计算权值矩阵:通过迭代的方式计算每个粒子到中心点的距离则权值函数wij=1-dij/h,其中,h=tmax,tmax为时间期限。归一化系数(4)计算粒子权值:粒子权值直方图是为了统计每个粒子点占的权重。具体计算过程如下:首先将车间生产调度空间抽象为RGB颜色空间,将RGB颜色空间量化为16×16×16的区间bins,然后通过式子T=256×r+16×g+b计算每个粒子红色、绿色、蓝色分量所占比重,再次由式子计算直方图统计中粒子总的权重。最后将权重值归一化既可以得到目标权值。(5)利用高低点法来预测粒子速度和位置的走向:计算公式为:其中,b代表上一次迭代得到的位置信息参数依一定比率位置信息参数变动的部分,即:(6)用上述(2)的方法确定预测粒子群中心点(7)计算相似函数值:本发明使用hattachyarya系数作为相似性函数,其定义为:它的值在0—1之间。两个模型的相似度跟的值成正比,即的值越大,表示两个模型越相似,在JSP中则表示预测值与实际值越相近。(8)均值偏移向量的计算:目标定位,就是寻找使得相似度函数值达到最大的点。从这前一帧的中心位置y0开始寻找最优匹配的目标。相似度函数为:其中,令由此,可以得到:Mh,G(v)是目标中心从起始点v0向v移动的向量。(9)比较由高低点法和均值偏移向量预测出来的值,将更好的那组值作为最优预测值。4、所述步骤5将预测的最优位置和速度与群体以往最好位置和速度做比较,将更好的位置信息作为当前最好的位置信息,具体表述为:如果预测的最优解比原来的最优解更好,则把预测的最优解当作最优解;否则,最优解不变。上述结合附图只是对该算法的描述,并不因此限定本发明,本发明的保护范围依据权利要求书的内容确定。当前第1页1 2 3