一种并行变邻域搜索方法

文档序号:6377176阅读:344来源:国知局
专利名称:一种并行变邻域搜索方法
技术领域
本发明涉及启发式算法领域,具体涉及ー种并行变邻域捜索方法。
背景技术
变邻域搜索算法(Variable Neighborhood Search, VNS),是一种轨迹式元启发式算法,由Hansen和Mladenovic于1997年首次提出。变邻域搜索算法包含了动态变化的邻域结构,算法较通用,自由度大,可针对特殊问题设计多种变型,主要用于求解组合优化问题和全局优化问题。组合优化问题的求解方法可以分为两类ー类是精确算法,这类算法对解空间进行完整搜索,可以保证找到小規模问题的最优解;另ー类是启发式算法,这类算法放弃了对解空间搜索的完整性,因此不能保证最终解的全局最优性。由于组合优化问题中大量存在 着NP-Hard问题,因此精确捜索算法在问题规模较大时往往难以实现,而启发式算法尽管不能证明解的最优性,但在很多情况下却能够以合理的计算代价找出较好的近似最优解,因此变邻域捜索算法是解决组合优化问题的主要算法。变邻域捜索算法的基本思想是在搜索过程中,基于已找到的局部最优解,系统地改变其邻域结构,以此来拓展搜索范围,进而找到另ー个局部最优解。变邻域捜索算法包括了局部搜索(Local Search)、扰动(Shaking)和邻域变换三个过程,利用局部搜索寻■找局部最优解,提高搜索精度,采用扰动过程跳出局部最优解的范围,寻找新的局部最优解,使得局部最优解向全局最优解靠拢,邻域变换提供了一种迭代方式和停止准则。变邻域捜索算法的基本步骤步骤一、选定ー个初始解为Xtl,设定初始參数——邻域结构个数和算法总迭代次数,其中邻域结构个数为K_,算法总迭代次数为Tmax,设定邻域结构集合为Nk(k = 1,...,Kmax);设置当前最优解Xbest为Xbest = X0,当前解Xcm为Xcm = X0,选定的邻域结构编号k =I,迭代搜索次数t = O。步骤ニ、进行迭代运算,当t > Tfflax吋,输出计算结果,停止运算;否则,在Xcm的k邻域Nk中随机选取解Xshake,并对解Xshake进行局部捜索,得到局部最优解Xltrcal ;若f (Xlocal)<f (Xbest),则 X
best -^-Iocal -^cur -^-Iocal ^
1,即更新局部最优解;否则,设置k = k modK_+l,t = t+1,重复所述进行迭代运算的步骤。其中,函数f为实际应用中的评估函数。

发明内容
本发明要解决的技术问题是提供ー种并行变邻域搜索方法,该方法与目前的变邻域捜索算法相比,能够有效扩展求解空间,増大逃离局部最优的可能性,进而获得更好的全
局最优解。为了解决上述问题,本发明实施例提供了一种变邻域捜索方法,其特征在于,该变邻域搜索方法是并行变邻域搜索方法,包括如下步骤步骤101、配置多个实例及供多个所述实例共享的ー个数据集合,该数据集合中存储有多个历史局部最优解;步骤102、为多个所述实例设置相同的邻域结构个数、总迭代次数、邻域结构集合和迭代次数阈值;步骤103、针对每ー个实例,从所述邻域结构集合中为该实例选取ー个邻域结构作为当前邻域结构,该实例的当前解基于该当前邻域结构进行迭代搜索,得到局部最优解;判断该局部最优解是否优于该实例的当前最优解,若是,则将该实例的当前解和当前最优解均更新为该局部最优解,如果该实例的当前最优解优于所述数据集合中存储的最差的历史最优解,则用该实例的当前最优解代替该最差的历史最优解;若该局部最优解不优于该实例的当前最优解,判断该实例在其当前最优解未更新前已迭代次数达到所述迭代次数阈值后,从所述数据集合中随机选取一个历史最优解作为该实例的当前解,将该实例的迭代搜索次数加1,基于该当前邻域结构重新进行迭代捜索,直到迭代搜索次数达到所述总迭代次数;步骤104、所有实例的迭代搜索次数都达到所述总迭代次数后,选取所述数据集合中最优的解作为全局最优解。可选地,所述步骤101还包括对所述数据集合中的历史最优解按照大小进行排序。可选地,所述步骤103还包括为该实例设置ー个初始解、设置该实例的当前最优解和当前解均等于该初始解,并设置该实例的迭代搜索次数和该实例的当前最优解未更新前已迭代次数。可选地,所述步骤103还包括用该实例的当前最优解代替该最差的历史最优解之后,基于该当前邻域结构重新进行迭代捜索,将该实例的迭代搜索次数加1,直到迭代搜索次数达到所述总迭代次数。可选地,所述步骤103中还包括若该局部最优解不优于该实例的当前最优解,判断该实例在其当前最优解未更新前已迭代次数没有达到所述迭代次数阈值时,将该实例的当前最优解未更新前已迭代次数加1,迭代搜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索,直到迭代搜索次数达到所述总迭代次数。可选地,所述步骤103还包括当多个实例需要同时对所述数据集合中存储的最差的历史最优解进行更新吋,则从该多个实例的当前最优解中选择最优的ー个来代替该最差的历史最优解。可选地,多个所述实例中,至少有ー个实例是基于所述数据集合中存储的最优的历史最优解进行迭代搜索。本发明实施例还提供了一种变邻域捜索装置,包括配置模块、迭代捜索模块、判断模块、更新模块和全局最优解确定模块,其中所述配置模块设置成配置多个实例及供多个所述实例共享的ー个数据集合,该数据集合中存储有多个历史最优解;还为多个所述实例设置相同的邻域结构个数、总迭代次数、邻域结构集合和迭代次数阈值;所述迭代捜索模块设置成针对每ー个实例,从所述邻域结构集合中为该实例选取ー个邻域结构作为当前邻域结构,将该实例的当前解基于该当前邻域结构进行迭代搜索,得到局部最优解;还从所述数据集合中随机选取一个历史最优解作为该实例的当前解,将该实例的迭代搜索次数加1,基于该当前邻域结构重新进行迭代捜索;所述判断模块设置成针对每ー个实例,所述迭代捜索模块得到该实例的局部最优解后,判断该实例迭代搜索得到的局部最优解是否优于该实例的当前最优解,若是,则通知所述更新模块用该实例的局部最优解代替该当前最优解;还判断该实例的当前最优解是否优于所述数据集合中存储的最差的历史最优解,若是,则通知所述更新模块用该实例的当前最优解代替该最差的历史最优解;还判断该局部最优解不优于该实例的当前最优解后,判断该实例在其当前最优解未更新前已迭代次数达到所述迭代次数阈值后,通知所述迭代捜索模块从所述数据集合中随机选取一个历史最优解作为该实例的当前解,将该实例的迭代搜索次数加1,基于该当前邻域 结构重新进行迭代捜索;判断某ー实例的迭代搜索次数达到所述总迭代次数后,通知所述迭代捜索模块针对该实例停止捜索;判断所有实例的迭代搜索次数都达到所述总迭代次数后,通知所述全局最优解确定模块确定全局最优解;所述更新模块设置成用实例迭代捜索得到的局部最优解代替该实例的当前最优解;用该实例的当前最优解代替所述数据集合中存储的最差的历史最优解;所述全局最优解确定模块设置成选取所述数据集合中最优的解作为全局最优解。 可选地,所述配置模块还设置成为每个实例均设置ー个初始解、设置该实例的当前最优解和当前解均等于该初始解,并设置该实例的迭代搜索次数和该实例的当前最优解未更新前已迭代次数。可选地,所述配置模块为每个实例设置的初始解均不同。可选地,所述迭代搜索模块还设置成在所述更新模块用实例的当前最优解代替最差的历史最优解之后,基于该当前邻域结构重新进行迭代捜索,将该实例的迭代搜索次数加I。可选地,所述判断模块还设置成判断实例迭代捜索得到的局部最优解不优于该实例的当前最优解时,判断该实例在其当前最优解未更新前已迭代次数没有达到所述迭代次数阈值时,通知所述迭代捜索模块将该实例的当前最优解未更新前已迭代次数加1,迭代捜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索;所述迭代搜索模块还设置成将实例的当前最优解未更新前已迭代次数加1,迭代捜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索。可选地,所述判断模块还设置成当判断多个实例需要同时对所述数据集合中存储的最差的历史最优解进行更新时,通知所述更新模块从该多个实例的当前最优解中选择最优的ー个来代替所述数据集合中最差的历史最优解;所述更新模块还设置成从需要同时对所述数据集合中存储的最差的历史最优解进行更新的多个实例的当前最优解中选择最优的ー个来代替所述数据集合中最差的历史最优解。本发明实施例的并行变邻域搜索方法能够有效扩展求解空间,増大逃离局部最优的可能性,进而获得更好的全局最优解。


图I为本发明实施例的方法流程示意图;图2为本发明实施例的变邻域搜索装置示意图。
具体实施例方式下面将结合附图及实施例对本发明的技术方案进行更详细的说明。需要说明的是,如果不冲突,本发明实施例以及实施例中的·各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明实施例的一种并行变邻域捜索方法,如图I所示,主要包括如下步骤步骤101、配置多个实例及供多个所述实例共享的ー个数据集合,该数据集合中存储有多个历史最优解。其中,历史最优解是多个所述实例在迭代搜索过程中找到的。步骤102、为多个所述实例设置相同的邻域结构个数、总迭代次数、邻域结构集合和迭代次数阈值;其中,所述迭代次数阈值为方法允许最优解不更新的最大迭代次数。步骤103、针对每ー个实例,从所述邻域结构集合中为该实例选取ー个邻域结构作为当前邻域结构,该实例的当前解基于该当前邻域结构进行迭代搜索,得到局部最优解;判断该局部最优解是否优于该实例的当前最优解,若是,则将该实例的当前解和当前最优解更新为该局部最优解,如果该实例的当前最优解优于所述数据集合中存储的最差的历史最优解,则用该实例的当前最优解代替该最差的历史最优解;若该局部最优解不优于该实例的当前最优解,判断该实例在其当前最优解未更新前已迭代次数达到所述迭代次数阈值后,从所述数据集合中随机选取一个历史最优解作为该实例的当前解,基于该当前邻域结构重新进行迭代捜索,将该实例的迭代搜索次数加I,直到该实例的迭代搜索次数达到所述总迭代次数;各个实例都具备单独的求解能力,而当单个实例陷入局部时,通过与共享的数据集合的信息交換,实现了实例间的交互,从而能够有效扩展求解空间,增大实例逃离局部最优的可能性。步骤104、所有实例的迭代搜索次数都达到所述总迭代次数后,选取所述数据集合中最优的解作为全局最优解。可选地,所述步骤101还包括对所述数据集合中的历史最优解按照大小进行排序;可选地,所述步骤103还包括为每个实例均设置ー个初始解、设置该实例的当前最优解和当前解均等于该初始解,并设置该实例的迭代搜索次数和该实例的当前最优解未更新前已迭代次数。可选地,每个实例的初始解均不同。可选地,设置该实例的迭代搜索次数为1,设置该实例的当前最优解未更新前已迭代次数为O。可选地,所述步骤103还包括用该实例的当前最优解代替该最差的历史最优解之后,基于该当前邻域结构重新进行迭代捜索,将该实例的迭代搜索次数加1,直到迭代搜索次数达到所述总迭代次数。可选地,所述步骤103还包括若该局部最优解不优于该实例的当前最优解,判断该实例在其当前最优解未更新前已迭代次数没有达到所述迭代次数阈值时,将该实例的当前最优解未更新前已迭代次数加1,迭代搜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索,直到迭代搜索次数达到所述总迭代次数。可选地,所述步骤103还包括当多个实例需要同时对所述数据集合中存储的最差的历史最优解进行更新吋,则从该多个实例的当前最优解中选择最优的ー个来代替该最差的历史最优解。可选地,多个所述实例中,至少有ー个实例是基于所述数据集合中存储的最优的历史最优解进行迭代搜索。上述实例中为多个实例设置相同的邻域结构个数、总迭代次数和邻域结构集合, 基于所设置的邻域结构个数、总迭代次数和邻域结构集合进行并行迭代搜索,并在各自的迭代搜索过程中对数据进行更新,并通过共享的数据集合完成各实例间信息的交互,从而能够有效扩展求解空间,増大逃离局部最优的可能性,进而获得更好的全局最优解。本发明实施例的一种变邻域捜索装置,如图2所示,包括配置模块201、迭代搜索模块202、判断模块203、更新模块204和全局最优解确定模块205,其中所述配置模块201设置成配置多个实例及供多个所述实例共享的ー个数据集合,该数据集合中存储有多个历史最优解;还为多个所述实例设置相同的邻域结构个数、总迭代次数、邻域结构集合和迭代次数阈值;其中,历史最优解是多个所述实例在迭代搜索过程中找到的。所述迭代捜索模块202设置成针对每ー个实例,从所述邻域结构集合中为该实例选取ー个邻域结构作为当前邻域结构,将该实例的当前解基于该当前邻域结构进行迭代捜索,得到局部最优解;从所述数据集合中随机选取一个历史最优解作为该实例的当前解,将该实例的迭代搜索次数加1,基于该当前邻域结构重新进行迭代捜索。所述判断模块203设置成针对每ー个实例,所述迭代捜索模块202得到该实例的局部最优解后,判断该实例迭代搜索得到的局部最优解是否优于该实例的当前最优解,若是,则通知所述更新模块204用该实例的局部最优解代替该当前最优解;还判断该实例的当前最优解是否优于所述数据集合中存储的最差的历史最优解,若是,则通知所述更新模块204用该实例的当前最优解代替该最差的历史最优解;还判断该局部最优解不优于该实例的当前最优解后,判断该实例在其当前最优解未更新前已迭代次数达到所述迭代次数阈值后,通知所述迭代捜索模块202从所述数据集合中随机选取一个历史最优解作为该实例的当前解,基于该当前邻域结构重新进行迭代捜索,将该实例的迭代搜索次数加I ;判断某一实例的迭代搜索次数达到所述总迭代次数后,通知所述迭代捜索模块202针对该实例停止迭代搜索;判断所有实例的迭代搜索次数都达到所述总迭代次数后,通知所述全局最优解确定模块205确定全局最优解。其中,迭代次数阈值为允许最优解不更新的最大迭代次数。所述更新模块204设置成用实例迭代捜索得到的局部最优解代替该实例的当前最优解;用该实例的当前最优解代替所述数据集合中存储的最差的历史最优解;
所述全局最优解确定模块205设置成选取所述数据集合中最优的解作为全局最优解。可选地,所述配置模块201还设置成为每个实例均设置ー个初始解、设置该实例的当前最优解和当前解均等于该初始解,并设置该实例的迭代搜索次数和该实例的当前最优解未更新前已迭代次数。可选地,所述配置模块201将该实例的迭代搜索次数设置为1,将该实例的当前最优解未更新前已迭代次数设置为O。可选地,所述配置模块201为每个实例设置的初始解均不同。可选地,所述迭代捜索模块202还设置成在所述更新模块204用实例的当前最优解代替最差的历史最优解之后,基于该当前邻域结构重新进行迭代捜索,将该实例的迭代搜索次数加I。 可选地,所述判断模块203还设置成判断实例迭代捜索得到的局部最优解不优于该实例的当前最优解时,判断该实例在其当前最优解未更新前已迭代次数没有达到所述迭代次数阈值时,通知所述迭代捜索模块202将该实例的当前最优解未更新前已迭代次数加1,迭代搜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索;所述迭代捜索模块202还设置成将实例的当前最优解未更新前已迭代次数加1,迭代搜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索。可选地,所述判断模块203还设置成当判断多个实例需要同时对所述数据集合中存储的最差的历史最优解进行更新时,通知所述更新模块204从该多个实例的当前最优解中选择最优的ー个来代替所述数据集合中最差的历史最优解;所述更新模块204还设置成从需要同时对所述数据集合中存储的最差的历史最优解进行更新的多个实例的当前最优解中选择最优的ー个来代替所述数据集合中最差的历史最优解。可选地,多个所述实例中,至少有ー个实例是基于所述数据集合中存储的最优的历史最优解进行迭代搜索。下面用本发明的一个应用示例进ー步加以说明。步骤一、配置多个实例及供多个所述实例共享的ー个数据集合D ;设定实例个数、为所有的实例设定相同的邻域结构个数、总迭代次数、邻域结构集合等初始參数。其中,数据集合中存储有多个历史最优解;实例个数为M,邻域结构个数为K_,总迭代次数为Tniax,邻域结构集合为Nk(k =
I, ,Kmaxノ ;步骤ニ、为每个实例均设置ー个初始解、设置该实例的当前最优解和当前解均等于该初始解,并为每个实例均从所述邻域结构集合中选定ー个邻域结构,还为每个实例均设置迭代捜索次数和该实例的当前最优解未更新前已迭代次数。假设m为多个实例中的任意ー个,为实例m(m = 1,. . .,M)设定的初始解为气设该实例的当前最优解)4est为x#st = Xgit,当前解父『为xぽr =X^ic ,为实例m选定的邻域结构编号为km= 1,实例m的迭代搜索次数为tm= 1,实例m在其当前最优解未更新前已迭代次数im = O。迭代搜索次数即已经迭代过的总次数。
步骤三、初始化数据集合D及迭代次数阈值Iter。其中,迭代次数阈值Iter为算法允许最优解不更新的最大迭代次数。步骤四、对于实例m(m = I,. . .,M),执行以下操作当tm > Tmax时,实例m停止运算;当t.不大于Tmax吋,在X,的km邻域Nkm中随机选取解X^iake,并对解X$ake
进行局部迭代搜索,得到局部最优解Xgcal;若f(x#al) < /(X^est),fjX^est = Xjfal,=X1rScal,如果Xiest优于集合D中的最差解,则将集合D中的最差解更新为x#st,km =Lim = O ;若办ぽ3丨)不小于f(Xばst),且im > Iter,则从集合D中随机选择ー个历史最优解,赋予XT * km = I, im = 0 ;否则,k = k mod Kmax+1, im = im+l, t = t+1,重复步骤四;对其他实例均执行与实例m相同的操作,在此不再赘述。步骤五、所有实例的迭代搜索次数都达到所述总迭代次数后,数据集合D中的最优解即为算法找到的全局最优解。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用ー个或多个集成电路来实现。相应地,上述实施例中的各模块/単元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
权利要求
1.一种变邻域搜索方法,其特征在于,该变邻域搜索方法是并行变邻域搜索方法,包括如下步骤 步骤101、配置多个实例及供多个所述实例共享的ー个数据集合,该数据集合中存储有多个历史局部最优解; 步骤102、为多个所述实例设置相同的邻域结构个数、总迭代次数、邻域结构集合和迭代次数阈值; 步骤103、针对每ー个实例,从所述邻域结构集合中为该实例选取ー个邻域结构作为当前邻域结构,该实例的当前解基于该当前邻域结构进行迭代搜索,得到局部最优解;判断该局部最优解是否优于该实例的当前最优解,若是,则将该实例的当前解和当前最优解均更 新为该局部最优解,如果该实例的当前最优解优于所述数据集合中存储的最差的历史最优解,则用该实例的当前最优解代替该最差的历史最优解;若该局部最优解不优于该实例的当前最优解,判断该实例在其当前最优解未更新前已迭代次数达到所述迭代次数阈值后,从所述数据集合中随机选取一个历史最优解作为该实例的当前解,将该实例的迭代搜索次数加1,基于该当前邻域结构重新进行迭代捜索,直到迭代搜索次数达到所述总迭代次数;步骤104、所有实例的迭代搜索次数都达到所述总迭代次数后,选取所述数据集合中最优的解作为全局最优解。
2.如权利要求I所述的变邻域搜索方法,其特征在于,所述步骤101还包括 对所述数据集合中的历史最优解按照大小进行排序。
3.如权利要求I所述的变邻域搜索方法,其特征在于,所述步骤103还包括 为该实例设置ー个初始解、设置该实例的当前最优解和当前解均等于该初始解,并设置该实例的迭代搜索次数和该实例的当前最优解未更新前已迭代次数。
4.如权利要求I所述的变邻域搜索方法,其特征在于,所述步骤103还包括 用该实例的当前最优解代替该最差的历史最优解之后,基于该当前邻域结构重新进行迭代搜索,将该实例的迭代搜索次数加1,直到迭代搜索次数达到所述总迭代次数。
5.如权利要求1-4中任一项所述的变邻域捜索方法,其特征在干,所述步骤103中还包括 若该局部最优解不优于该实例的当前最优解,判断该实例在其当前最优解未更新前已迭代次数没有达到所述迭代次数阈值时,将该实例的当前最优解未更新前已迭代次数加1,迭代搜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索,直到迭代搜索次数达到所述总迭代次数。
6.如权利要求5所述的变邻域搜索方法,其特征在于,所述步骤103还包括 当多个实例需要同时对所述数据集合中存储的最差的历史最优解进行更新吋,则从该多个实例的当前最优解中选择最优的ー个来代替该最差的历史最优解。
7.如权利要求I所述的变邻域搜索方法,其特征在于,多个所述实例中,至少有ー个实例是基于所述数据集合中存储的最优的历史最优解进行迭代搜索。
8.一种变邻域捜索装置,其特征在于,包括配置模块、迭代捜索模块、判断模块、更新模块和全局最优解确定模块,其中 所述配置模块设置成配置多个实例及供多个所述实例共享的ー个数据集合,该数据集合中存储有多个历史最优解;还为多个所述实例设置相同的邻域结构个数、总迭代次数、邻域结构集合和迭代次数阈值; 所述迭代捜索模块设置成针对每ー个实例,从所述邻域结构集合中为该实例选取ー个邻域结构作为当前邻域结构,将该实例的当前解基于该当前邻域结构进行迭代搜索,得到局部最优解;还从所述数据集合中随机选取一个历史最优解作为该实例的当前解,将该实例的迭代搜索次数加1,基于该当前邻域结构重新进行迭代捜索; 所述判断模块设置成针对每ー个实例,所述迭代捜索模块得到该实例的局部最优解后,判断该实例迭代搜索得到的局部最优解是否优于该实例的当前最优解,若是,则通知所述更新模块用该实例的局部最优解代替该当前最优解;还判断该实例的当前最优解是否优于所述数据集合中存储的最差的历史最优 解 ,若是,则通知所述更新模块用该实例的当前最优解代替该最差的历史最优解;还判断该局部最优解不优于该实例的当前最优解后,判断该实例在其当前最优解未更新前已迭代次数达到所述迭代次数阈值后,通知所述迭代搜索模块从所述数据集合中随机选取一个历史最优解作为该实例的当前解,将该实例的迭代捜索次数加1,基于该当前邻域结构重新进行迭代捜索;判断某ー实例的迭代搜索次数达到所述总迭代次数后,通知所述迭代捜索模块针对该实例停止捜索;判断所有实例的迭代捜索次数都达到所述总迭代次数后,通知所述全局最优解确定模块确定全局最优解; 所述更新模块设置成用实例迭代捜索得到的局部最优解代替该实例的当前最优解;用该实例的当前最优解代替所述数据集合中存储的最差的历史最优解; 所述全局最优解确定模块设置成选取所述数据集合中最优的解作为全局最优解。
9.如权利要求8所述的变邻域搜索装置,其特征在于,所述配置模块还设置成 为每个实例均设置ー个初始解、设置该实例的当前最优解和当前解均等于该初始解,并设置该实例的迭代搜索次数和该实例的当前最优解未更新前已迭代次数。
10.如权利要求9所述的变邻域搜索装置,其特征在于,所述配置模块为每个实例设置的初始解均不同。
11.如权利要求8中任一项所述的变邻域捜索装置,其特征在于 所述迭代搜索模块还设置成在所述更新模块用实例的当前最优解代替最差的历史最优解之后,基于该当前邻域结构重新进行迭代捜索,将该实例的迭代搜索次数加I。
12.如权利要求8-11中任一项所述的变邻域捜索装置,其特征在于 所述判断模块还设置成判断实例迭代捜索得到的局部最优解不优于该实例的当前最优解时,判断该实例在其当前最优解未更新前已迭代次数没有达到所述迭代次数阈值吋,通知所述迭代捜索模块将该实例的当前最优解未更新前已迭代次数加1,迭代搜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索; 所述迭代搜索模块还设置成将实例的当前最优解未更新前已迭代次数加1,迭代搜索次数加I后,从所述邻域结构集合中选取新的邻域结构继续进行迭代捜索。
13.如权利要求8-11中任一项所述的变邻域捜索装置,其特征在于 所述判断模块还设置成当判断多个实例需要同时对所述数据集合中存储的最差的历史最优解进行更新时,通知所述更新模块从该多个实例的当前最优解中选择最优的ー个来代替所述数据集合中最差的历史最优解; 所述更新模块还设置成从需要同时对所述数据集合中存储的最差的历史最优解进行更新的多个实例的当前最优解中选择最优的ー个来代替所述数据集合中最差的历史最优解。
全文摘要
一种变邻域搜索方法和装置,方法包括,配置多个实例及多个实例共享的数据集合;针对每一个实例,从邻域结构集合中为该实例选取一个邻域结构,该实例的当前解基于当前邻域结构进行迭代搜索,得到局部最优解;判断该局部最优解是否优于该实例的当前最优解,若是,则将该实例的当前解和当前最优解更新为该局部最优解,如果该实例的当前最优解优于所述数据集合中存储的最差的历史最优解,则用该实例的当前最优解代替该最差的历史最优解;否则判断该实例在其当前最优解未更新前已迭代次数达到迭代次数阈值后,从数据集合中随机选取历史最优解作为该实例的当前解;所有实例的迭代搜索次数都达到总迭代次数后,选取数据集合中最优的解作为全局最优解。
文档编号G06F17/30GK102855328SQ20121034824
公开日2013年1月2日 申请日期2012年9月18日 优先权日2012年9月18日
发明者张俊, 颜秉珩, 崔赢, 张现忠 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1