基于量子蛙跳算法的用户聚类方法及装置与流程

文档序号:18074038发布日期:2019-07-03 04:05阅读:166来源:国知局
基于量子蛙跳算法的用户聚类方法及装置与流程
本发明涉及计算机领域,尤其涉及一种基于量子蛙跳算法的聚类方法、装置及量子蛙跳算法。
背景技术
:量子蛙跳算法由于其能够解决多目标优化问题的特点被广泛使用。具体的,在现有的量子蛙跳算法向全局最优量子青蛙位置收敛时,通常会对分组后的量子青蛙族群中的最差量子青蛙位置进行位置更新,来实现向全局最优量子青蛙位置的收敛。但是,在对族群中最差量子青蛙位置进行更新时,有可能会出现族群内最差量子青蛙位置与族群中的最优量子青蛙位置和全局最优量子青蛙位置相等的这种情况,此时,若再对族群内的最差量子青蛙位置进行更新,由于族群中最差量子青蛙的量子旋转角不发生改变,进而族群中最差量子青蛙位置不发生改变,如果继续对族群内最差量子青蛙位置进行更新,就会陷入死循环。这样,族群中最差量子青蛙的迭代次数不能达到预先设置的族群内迭代次数,导致最终选取的全局最优量子青蛙位置陷入局部最优解,即可能达到族群内迭代次数时,全局最优量子青蛙位置才会出现。同时,在族群中最差量子青蛙位置不发生改变时,将在所有量子青蛙中随机选取的量子青蛙作为最差量子青蛙位置,这样便会导致现有的蛙跳算法的收敛精度不高。技术实现要素:本发明的实施例提供一种基于量子蛙跳算法的聚类方法、装置及量子蛙跳算法,已解决现有量子蛙跳算法易于陷入局部最优解与收敛精度不足的问题。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,提供一种量子蛙跳算法,包括:获取m个量子青蛙族群,每个量子青蛙族群是由n个量子青蛙组成;根据所述m个量子青蛙族群中每个量子青蛙的适应度值,确定全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置;根据所述全局最优量子青蛙位置、所述每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置以及族群内的本次迭代对应的随机数,对每个量子青蛙族群中的最差量子青蛙位置进行更新;重复上述步骤,重新对每个量子青蛙族群中的最差量子青蛙位置进行更新,直到达到族群内的预定最大迭代次数,完成族群内的更新,并向全局最优量子青蛙位置进行收敛。第二方面,提供一种计算机元件,该计算机元件用于实现上述第一方面提供的量子蛙跳算法对应的程序。第三方面,提供一种基于量子蛙跳算法的聚类方法,包括:获取用户的用户参数;根据所述用户的用户参数生成p个量子青蛙,每个量子青蛙包括k个聚类中心,p大于等于2;根据第一方面提供的一种量子蛙跳算法对所述量子青蛙进行收敛,得到全局最优量子青蛙;根据所述全局最优量子青蛙中的k个聚类中心对所述用户进行聚类,得到k个簇。第四方面,提供一种基于量子蛙跳算法的聚类装置,包括:获取模块,用于获取用户的用户参数;生成模块,用于根据所述获取模块获取的所述用户的用户参数生成p个量子青蛙,每个量子青蛙包括k个聚类中心;p大于等于2;处理模块,用于根据权利要求1-5任一项所述的量子蛙跳算法对所述生成模块生成的所述p个量子青蛙进行收敛,得到全局最优量子青蛙;聚类模块,用于根据所述处理模块得到的所述全局最优量子青蛙中的k个聚类中心对所述用户进行聚类,得到k个簇。本发明提供的基于量子蛙跳算法的聚类方法、装置及量子蛙跳算法,通过获取m个量子青蛙族群,每个量子青蛙族群是由n个量子青蛙组成,根据m个量子青蛙族群中每个量子青蛙的适应度值,确定全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置,利用全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置以及族群内的本次迭代对应的随机数,对每个量子青蛙族群中的最差量子青蛙位置进行更新,重复上述步骤,重新对每个量子青蛙族群中的最差量子青蛙位置进行更新,直到达到族群内的预定最大迭代次数,完成族群内的更新,并向全局最优量子青蛙位置进行收敛。本发明在对族群中最差量子青蛙量子旋转角进行更新时,通过增加不同族群内迭代次数对应的随机数,将该随机数作为变异算子,增加族群内最差量子青蛙的局部搜索范围,避免了出现族群内最差量子青蛙位置与族群中的最优量子青蛙位置和全局最优量子青蛙位置相等的这种情况,这样最终选取的全局最优量子青蛙就能跳出局部最优解,进而该算法的收敛精度得到提高。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种计算机元件的结构示意图;图2为本发明实施例提供的一种量子蛙跳算法示意图;图3为本发明实施例提供的一种基于量子蛙跳算法的聚类方法示意图;图4为本发明实施例提供的一种用户聚类算法的实施示意图;图5为本发明实施例提供的一种提供的基于量子蛙跳算法的聚类装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了使本领域的技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。需要说明的是,本发明实施例中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个数据包是指两个或两个以上的数据包。需要说明的是,本发明实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。下面将结合本发明实施例的说明书附图,对本发明实施例提供的技术方案进行说明。显然,所描述的是本发明的一部分实施例,而不是全部的实施例。需要说明的是,下文所提供的任意多个技术方案中的部分或全部技术特征在不冲突的情况下,可以结合使用,形成新的技术方案。本发明实施例所提供的改进的量子蛙跳算法的执行主体为计算机元件,该计算机元件用于实现本发明实施例提供的量子蛙跳算法对应的计算机程序。如图1所示的计算机元件的结构示意图。该计算机元件10可以包括:处理器101、存储器102、系统总线103和通信接口104。其中:存储器102用于存储计算机执行指令,处理器101与存储器102通过系统总线连接,当该计算机元件运行时,处理器101执行存储器102存储的需要计算机元件执行的量子蛙跳算法的执行指令,以使计算机元件执行本发明实施例提供的改进的量子蛙跳算法。具体的本发明实施例提供的改进的量子蛙跳算法可参考下文及附图中的相关描述,此处不再赘述。本发明实施例还提供一种存储介质,该存储介质可以包括存储器102。处理器101可以是一个处理器,也可以是多个处理元件的统称。例如,处理器101可以为中央处理器(centralprocessingunit,CPU)。处理器101也可以为其他通用处理器、数字信号处理器(digitalsignalprocessing,DSP)、专用集成电路(applicationspecificintegratedcircuit,ASIC)、现场可编程门阵列(field-programmablegatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。处理器101还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有计算机元件其他专用处理功能的芯片。存储器102可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,RAM);存储器102也可以包括非易失性存储器(non-volatilememory),例如只读存储器(英文全称:read-onlymemory,英文缩写:ROM),快闪存储器(flashmemory),硬盘(harddiskdrive,HDD)或固态硬盘(solid-statedrive,SSD);存储器102还可以包括上述种类的存储器的组合。系统总线103可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图1中将各种总线都示意为系统总线103。通信接口104具体可以是计算机元件上的收发单元,用于与外部其他设备进行数据交互。在具体实现过程中,下文中提供的任意一种量子蛙跳算法流程中的各步骤均可以通过硬件形式的处理器101执行存储器102中存储的软件形式的计算机执行指令实现。为避免重复,此处不再赘述。基于上述内容,本发明实施例提供一种量子蛙跳算法,如图2所示的量子蛙跳算法示意图,该算法包括如下步骤:201、获取m个量子青蛙族群。其中,上述m个量子青蛙族群中的每个量子青蛙族群均是由n个量子青蛙组成,每个量子青蛙中包括k个元素,而每个量子青蛙中的每个元素可以被表示为一个量子位置,即每个量子青蛙可以认为包含k个量子位置,k为大于等于1的自然数。例如,若采用量子蛙跳算法对多个用户进行聚类时,则每个量子青蛙是由多个用户的用户参数来表示的,每个用户对应的用户参数可以表示为一个青蛙量子位置。示例性的,假设在k维空间中有p只量子青蛙,第i个量子青蛙可以表示为:通常可以简化为:xi=(xi1,xi2,…,xik),其中,1≤i≤p,并分别表示k个元素信息,即k个量子位置,且αij、βij满足|αij|2+|βij|2=1,(j=1,2,…,k)。示例性的,本发明实施例提供的量子蛙跳算法在获取到所有量子青蛙后,需要对所有量子青蛙进行分组,得到m个量子青蛙族群。具体的,对量子青蛙的分组过程,即步骤201具体包括如下步骤:201a、根据p个量子青蛙中的每个量子青蛙的适应度值,将p个量子青蛙按照量子青蛙的适应度值降序排序,并按照降序排序结果将p个量子青蛙进行分组,得到m个量子青蛙族群,每个量子青蛙族群中包含n个量子青蛙,满足p=m*n。具体的,在上述步骤201a中的按照降序排序结果将p个量子青蛙进行分组得过程包括如下内容:按照降序排序结果将第一只量子青蛙分入第1组,第二只量子青蛙分入第2组,......,第m只量子青蛙分入第m组,再把第1+m只量子青蛙分入第1组,......,直到P个量子青蛙都划分完毕为止。202、根据m个量子青蛙族群中每个量子青蛙的适应度值,确定全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置。在本发明实施例所提供的量子青蛙算法中,获取每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置以及所有族群中的全局最优量子青蛙位置时,通常是根据每个量子青蛙族群中每个量子青蛙的适应度值来确定的。具体的,在步骤202之前,计算量子青蛙的适应度值的计算过程具体包括如下内容:202a、按照目标函数计算每只量子青蛙的适应度值。上述的目标函数为任意目标函数,这里不做具体说明。示例性的,目标函数值与量子青蛙的适应度值的关系为:目标函数值越大,表示量子青蛙的适应度最高,因此,上述的全局最优量子青蛙位置的适应度值最高,即目标函数值最大,上述的每个量子青蛙族群中的最优量子青蛙位置在该族群中适应度值最高,即在该族群内目标函数值最高,上述的每个量子青蛙族群中最差量子青蛙位置在该族群中适应度值最低,即在该族群内目标函数值最小。示例性的,在p个量子青蛙中,将适应度值最高的量子青蛙作为全局最优量子青蛙,即全局最优量子青蛙的目标函数值最高,全局最优量子青蛙位置可表示为:xg=[xg1,xg2,…,xgk];将每个族群中的适应度值最高的量子青蛙作为每个量子青蛙族群中的最优量子青蛙,即每个量子青蛙族群中的最优量子青蛙的目标函数值最大,每个量子青蛙族群中的最优量子青蛙位置可表示为:xb=[xb1,xb2,…,xbk];每个族群中的适应度值最低的量子青蛙作为每个量子青蛙族群中的最差量子青蛙,即每个量子青蛙族群中的最优量子青蛙的目标函数值最小,每个量子青蛙族群中的最优量子青蛙位置可表示为:xw=[xw1,xw2,…,xwk]。203、根据全局最优量子青蛙位置、每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置以及族群内的本次迭代对应的随机数,对每个量子青蛙族群中的最差量子青蛙位置进行更新。具体的,在对分组后的量子青蛙族群进行族群内更新之前,需要预先设置族群内最大迭代次数gen,该gen用于表示对每个量子青蛙族群内的最差量子青蛙进行位置更新的更新次数。示例性的,步骤203具体包括如下步骤:203a、根据全局最优量子青蛙位置、每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置、群内的本次迭代对应的随机数以及量子青蛙量子旋转角计算公式,计算族群内的本次迭代中每个量子青蛙族群内的最差量子青蛙位置对应的量子青蛙量子旋转角θ。203b、根据族群内的本次迭代中每个量子青蛙族群内的最差量子青蛙位置对应的量子旋转角θ,分别对每个量子青蛙族群中的最差量子青蛙位置进行更新。具体的,上述量子青蛙量子旋转角计算公式为:其中,t为族群内的本次迭代对应的次数,t≤gen,rand1和rand2为[0,1]之间的均匀随机数;M为所述第一随机数;为族群内的第t次迭代中每个量子青蛙族群内的最差量子青蛙位置w的第j个量子位置的量子旋转角;表示在族群内的第t次迭代中每个量子青蛙族群内最差青蛙位置w的第j个量子位置;表示在族群内的第t次迭代中每个量子青蛙族群内最优量子青蛙位置b的第j个量子位置;表示在族群内的第t次迭代中的全局最优量子青蛙位置g的第j个量子位置;其中,t∈1,2,……,T,j∈1,2,……,k,T为族群内的预定最大迭代次数,T=gen。示例性的,第一随机数M的确定公式如下:具体的,在迭代初期,即t≤T/4时,其中T为族群内的预定最大迭代次数,M为[-σ1,σ1]之间的随机数,M服从均匀分布;在迭代中期,即T/4≤t≤3T/4时,M为(0,σ2)之间的随机数,M服从柯西分布;当3T/4≤t≤T时,M为(0,σ3)之间的随机数,M服从高斯分布。可选的,步骤203b具体还包括如下步骤:A1、根据本次族群内迭代中每个量子青蛙族群内的最差量子青蛙位置对应的量子旋转角θ以及最差量子青蛙位置更新计算公式,计算出每个量子青蛙族群中的最差量子青蛙位置的更新后位置;A2、根据每个量子青蛙族群中的最差量子青蛙位置的更新后位置分别对每个量子青蛙族群中的最差量子青蛙位置进行更新。其中,上述的最差量子青蛙位置更新公式为:上述的为每个量子青蛙族群中的最差量子青蛙位置的更新后位置;为族群内的第t次迭代中每个量子青蛙族群内的最差量子青蛙位置w的第j个量子位置的量子旋转角;表示在族群内的第t次迭代中每个量子青蛙族群内最差青蛙位置w的第j个量子位置。为防止进一步其陷入局部最优解,当时,引入变异概率η与随机数r,η为变异概率,表示为:其中0<μ<1,0<k<1,r为均匀分布于(0,1)的随机数。但是,由于上述公式三中的为量子青蛙的量子旋转门计算公式,即其中,上述的为对应的量子旋转门。因此,上述的公式三也可以表示为:204、重复上述步骤,重新对每个量子青蛙族群中的最差量子青蛙位置进行更新,直到达到族群内的预定最大迭代次数,完成族群内的更新,并向全局最优量子青蛙位置进行收敛。具体的,上述步骤204具体包括如下步骤:B1、在完成最差量子青蛙的族群内迭代次数之后,将p个量子青蛙进行混合,并且进行上述的按照适应度值的分组,重新确定新的全局最优量子青蛙位置和新的每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置,并对重新确定出的新的最差量子青蛙位置进行上述最差量子青蛙位置更新,直到完成最差量子青蛙的族群内的预定最大迭代次数gen,此时完成一次全局迭代过程。B2、重复上述步骤201-203以及步骤B1,直到达到预先设置的全局最大迭代次数GEN,完成对全局最优量子青蛙位置的收敛。B3、选取完成全局迭代的p个量子青蛙中全局最优量子青蛙作为最终结果。具体的,在步骤B1之前还包括:预先设置全局最大迭代次数GEN,表示将完成族群内的迭代次数的最差量子青蛙进行混合、上述分组以及更新最差量子青蛙位置的次数。本发明提供的量子蛙跳算法,通过获取m个量子青蛙族群,每个量子青蛙族群是由n个量子青蛙组成,根据m个量子青蛙族群中每个量子青蛙的适应度值,确定全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置,利用全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置以及族群内的本次迭代对应的随机数,对每个量子青蛙族群中的最差量子青蛙位置进行更新,重复上述步骤,重新对每个量子青蛙族群中的最差量子青蛙位置进行更新,直到达到族群内的预定最大迭代次数,完成族群内的更新,并向全局最优量子青蛙位置进行收敛。本发明在对族群中最差量子青蛙量子旋转角进行更新时,通过增加不同族群内迭代次数对应的随机数,将该随机数作为变异算子,增加族群内最差量子青蛙的局部搜索范围,避免了出现族群内最差量子青蛙位置与族群中的最优量子青蛙位置和全局最优量子青蛙位置相等的这种情况,这样最终选取的全局最优量子青蛙就能跳出局部最优解,进而该算法的收敛精度得到提高。本发明实施例提供一种基于量子蛙跳算法的聚类方法,如图3所示的一种基于量子蛙跳算法的聚类方法示意图,该方法包括如下步骤:301、获取用户的用户参数。示例性的,上述用户的用户参数包括至少一个用户的属性信息,属性信息包括用户基本信息、用户行为信息以及用户所使用终端的设备信息。其中,用户基本信息包括:用户年龄、入网时长以及用户价值信息,该用户价值信息包括用户月均收入、用户月通话时长、该用户月上网流量;上述的用户行为信息包括:用户移动性(例如,用户每日所经过的TAList)、用户活跃时长、用户活跃时间点等;上述的用户所使用终端的设备信息包括该终端是否为合约机、终端价位、终端操作系统、终端使用时长以及终端型号等设备参数。示例性的,在获取到用户的用户参数后,为了便于后续计算,通常会对该用户的用属性信息进行归一化处理。具体的,对该用户的用属性信息进行归一化处理的处理流程包括如下步骤:C1、将获取到的用户的属性信息中的离散变量处理为连续变量。例如,离散变量与连续变量间的映射可以参照表1所示的终端操作系统、终端是否为合约机等离散变量转化为连续变量对应的映射关系。变量名映射关系终端操作系统安卓:0.5;苹果:1;其他:0是否合约机是:0;否:1表1需要说明的是,以上的实例取值只是一个参考值,只是对以上数据的简单更改仍然在本发明的保护范围之内。C2、对所有用户的用户参数进行归一化处理。示例性的,将获取到的用户的用户参数中异常数据过滤后,采用分段赋值法,对每一类信息取值划分区间,各区间取值为0-1(具体区间划分可自行配置,本实施例只是提供一种方案),对各类用户信息进行归一化处理。表2为部分用户的属性参数的处理结果示意。表2需要说明的是,以上的实例取值只是一个参考值,只是对以上数据的简单更改仍然在本发明的保护范围之内。302、根据用户的用户参数生成p个量子青蛙,每个量子青蛙包括k个聚类中心,p大于等于2。示例性的,若需要聚类的用户的总数为Q,用户划分后的群体数(即聚类后形成的簇的个数)为k,则根据Q个用户的用户参数生成p个量子青蛙的流程如下所示:在Q个用户中,随机选择k个用户作为k个聚类的初始聚类中心,把这k个用户组成二维向量xi,其中二维向量xi中的每一列代表一个用户,即每个用户是一个纵向量,纵向量的每个维度表示用户的一个属性信息,每个量子青蛙可以表示为:重复p次,得到p个量子青蛙。其中,1≤i≤p,xi表示第i个量子青蛙,每个量子青蛙可以由随机选的k用户的用户参数组成,每个用户的用户参数由h个属性信息组成。303、根据上述步骤201-步骤204提供的量子蛙跳算法对量子青蛙进行收敛,得到全局最优量子青蛙。示例性的,如图4所示,步骤303包括如下步骤:步骤1:设定族群内的预定最大迭代次数gen、全局最大迭代次数GEN、量子青蛙的族群数m、每个量子青蛙族群包括的量子青蛙数目n,满足p=m*n。例如,上述的k、p、m、n、gen、GEN的设置可以参照下表3的实例。需要说明的是,表3中对该量子蛙跳算法中各参数的设置仅仅是一种实例,在实际使用时可以按照实际需要按需设置。参数取值群体数k10量子青蛙总数p200族群个数m10族群内量子青蛙个数n20族群最大迭代次数gen50全局迭代次数GEN50表3步骤2:根据下述的聚类算法对应的目标函数公式,计算每个量子青蛙的适应度值。其中,C表示所有的聚类中心组成的集合;ci表示第i个聚类中心;Si表示以ci为聚类中心的聚类,x表示聚类Si中的每个成员。每个量子青蛙表示了一种初始聚类的选择方案,按照k-means算法,把每个电信用户划入以ci为聚类中心的聚类中。上述的k-means算法为一种聚类方法,首先随机选取初始聚类中心,然后将剩余的需要聚类的用户分配给聚类中心,使得划分的结果中,每个簇的个体间距离最小。步骤3:按照量子蛙跳算法中的族群划分方式,把p个量子青蛙分成m组,得到全局最优量子青蛙xg、每个族群内最优量子青蛙xb、每个族群内最差量子青蛙xw。具体的操作参见上述步骤201与步骤202,这里不再赘述。步骤4:令im=0,igen=0。其中,im表示量子青蛙族群数,im=0表示将量子青蛙族群数初始化为0,igen表示族群内迭代次数,igen=0表示将族群内迭代次数初始化为0。步骤5:令im=im+1.步骤6:igen=igen+1;步骤7:根据上述步骤203更新族群内最差量子青蛙位置xw。步骤8:如果igen<gen,返回步骤6;步骤9:如果im<m,返回步骤5;步骤10:如果iGEN<GEN,返回步骤2;步骤11、输出最优量子青蛙作为选取的聚类中心;示例性的,上述步骤204是对上述步骤8、步骤9以及步骤10的具体解释。304、根据全局最优量子青蛙中的k个聚类中心对用户进行聚类,得到k个簇。示例性的,全局最优量子青蛙作为最合适的聚类中心选取,按照K-means的聚类划分方法,就近划分,完成以最优量子青蛙作为聚类中心的用户聚类。示例性的,上述完成用户聚类之后,每个用户可以如下表4所示:用户ID所属聚类:Si(si∈s1,s2,...sk)表4其中,用户ID表示一个用户。本发明提供的基于量子蛙跳算法的聚类方法,通过获取m个量子青蛙族群,每个量子青蛙族群是由n个量子青蛙组成,根据m个量子青蛙族群中每个量子青蛙的适应度值,确定全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置,利用全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置以及族群内的本次迭代对应的随机数,对每个量子青蛙族群中的最差量子青蛙位置进行更新,重复上述步骤,重新对每个量子青蛙族群中的最差量子青蛙位置进行更新,直到达到族群内的预定最大迭代次数,完成族群内的更新,并向全局最优量子青蛙位置进行收敛。本发明在对族群中最差量子青蛙量子旋转角进行更新时,通过增加不同族群内迭代次数对应的随机数,将该随机数作为变异算子,增加族群内最差量子青蛙的局部搜索范围,避免了出现族群内最差量子青蛙位置与族群中的最优量子青蛙位置和全局最优量子青蛙位置相等的这种情况,这样最终选取的全局最优量子青蛙就能跳出局部最优解,进而该算法的收敛精度得到提高。本发明的实施例提供一种基于量子蛙跳算法的聚类装置,如图5所示,该装置包括如下模块:获取模块41、生成模块42、处理模块43以及聚类模块44,其中:获取模块41,用于获取用户的用户参数。生成模块42,用于根据获取模块41获取的用户的用户参数生成p个量子青蛙,每个量子青蛙包括k个聚类中心,p大于等于2。处理模块43,用于根据第一方面提供的量子蛙跳算法对生成模块42生成的p个量子青蛙进行收敛,得到全局最优量子青蛙。聚类模块44,用于根据处理模块43得到的全局最优量子青蛙中的k个聚类中心对用户进行聚类,得到k个簇。示例性的,上述获取模块41获取的用户的用户参数包括至少一个用户的属性信息,属性信息包括用户基本信息、用户行为信息、用户价值信息以及用户所使用终端的设备信息。本发明提供的基于量子蛙跳算法的聚类装置,通过获取m个量子青蛙族群,每个量子青蛙族群是由n个量子青蛙组成,根据m个量子青蛙族群中每个量子青蛙的适应度值,确定全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置,利用全局最优量子青蛙位置和每个量子青蛙族群中的最优量子青蛙位置和最差量子青蛙位置以及族群内的本次迭代对应的随机数,对每个量子青蛙族群中的最差量子青蛙位置进行更新,重复上述步骤,重新对每个量子青蛙族群中的最差量子青蛙位置进行更新,直到达到族群内的预定最大迭代次数,完成族群内的更新,并向全局最优量子青蛙位置进行收敛。本发明在对族群中最差量子青蛙量子旋转角进行更新时,通过增加不同族群内迭代次数对应的随机数,将该随机数作为变异算子,避免了出现族群内最差量子青蛙位置与族群中的最优量子青蛙位置和全局最优量子青蛙位置相等的这种情况,这样最终选取的全局最优量子青蛙就能跳出局部最优解,进而该算法的收敛精度得到提高。需要说明的是,在具体实现过程中,上述如图2、如图3和图4所示的量子蛙跳算法、基于量子蛙跳算法的聚类方法和实施所执行的各步骤均可以通过硬件形式的处理器执行存储器中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。而上述量子蛙跳算法、基于量子蛙跳算法的聚类方法和实施所执行的动作所对应的程序均可以以软件形式存储于该量子蛙跳算法、基于量子蛙跳算法的聚类方法和实施的存储器中,以便于处理器调用执行以上各个模块对应的操作。上文中的存储器可以包括易失性存储器,例如RAM;也可以包括非易失性存储器,例如ROM,快闪存储器,硬盘或固态硬盘;还可以包括上述种类的存储器的组合。上文所提供的量子蛙跳算法、基于量子蛙跳算法的聚类方法和实施的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为CPU;也可以为其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的空调的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1