一种基于量子聚类的社区发现方法及相关装置
文献发布时间:2024-04-18 19:59:31
技术领域
本发明属于量子计算技术领域,特别是一种基于量子聚类的社区发现方法及相关装置。
背景技术
近年来,社区结构发现已成为复杂网络研究中的一个热点问题,受到了计算机、数学、生物和社会学等领域研究者的广泛关注。复杂网络中的社区结构发现对于网络拓扑结构分析、功能分析和行为预测具有重要的理论意义及实用价值。例如,在常见的社交网络中,用户相当于网络节点,用户间互相关注、点赞、私信等形式的互动形成了节点间的连接关系;其中,连接较为紧密的部分节点可以被看成是一个社区,从而可以根据社区划分更有针对性地向每一社区内的用户提供价值评估、内容推荐、风险管控等业务。
社区发现算法是一种在网络中识别出紧密连接的节点群体的方法,大致可以被分为三类:基于网络图结构的层次分割方法,基于聚类的方法和基于优化的方法。其中,聚类是探测网络社区结构的传统方法,聚类算法可以基于各个节点间的相似性或连接强度将网络划分成若干子群;如在数据挖掘和机器学习领域应用十分广泛的k-means聚类算法,作为一种典型的无监督学习算法,k-means聚类算法可以基于节点中数据样本间的相似性度量进行聚类。但是在当前的复杂网络环境中,网络节点的数量极大并且正在快速增加,对每一节点的数据进行处理给经典计算机的算力带来了极大的挑战。
而量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置,具有相对经典计算机更高效的处理数学问题的能力。因此,为了提高在网络中发现社区结构的效率,有必要设计基于量子聚类的社区发现方法。
发明内容
本发明的目的是提供一种基于量子聚类的社区发现方法及相关装置,旨在提高在网络中发现社区结构的效率。
本发明的一个实施例提供了一种基于量子聚类的社区发现方法,所述方法包括:
获取包含多个节点的目标网络,并基于所述目标网络中的节点分布特征,从所述多个节点中选择n个初始中心节点;
利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度;其中,所述待分类节点为所述目标网络中除所述初始中心节点之外的节点;
将每一所述待分类节点聚类至以对应的目标节点为中心的集合,得到n个节点集合;其中,所述目标节点为与该待分类节点的第一相似度最大的初始中心节点;
将得到的n个节点集合中的每一节点集合作为所述目标网络中的一个社区。
可选的,所述第一预设量子线路包括特征编码子线路和相似度计算子线路;
所述利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度,包括:
针对任一待分类节点和任一初始中心节点,利用所述特征编码子线路对该待分类节点的特征数据进行编码得到第一量子态,对该初始中心节点的特征数据进行编码得到第二量子态;利用所述相似度计算子线路,对所述第一量子态和所述第二量子态进行纠缠演化,测量演化后的量子态,计算得到该待分类节点与该初始中心节点之间的第一相似度。
可选的,所述特征编码子线路包括作用于第一量子比特的第一组RX门和RY门,和,作用于第二量子比特的第二组RX门和RY门;其中,所述第一组RX门和RY门的旋转参数由编码的待分类节点的特征数据确定,所述第二组RX门和RY门的旋转参数由编码的初始中心节点的特征数据确定;
所述相似度计算子线路依次包括作用于辅助比特的第一H门、控制比特为所述辅助比特的受控SWAP门、作用于所述辅助比特的第二H门,所述受控SWAP门的目标比特为所述第一量子比特和所述第二量子比特。
可选的,在所述将每一所述待分类节点聚类至以对应的目标节点为中心的集合,得到n个节点集合的步骤之后,所述方法还包括:
针对每一节点集合,利用第二预设量子线路计算该节点集合内的任一节点与该节点集合内的每一其它节点之间的第二相似度,并计算该节点对应的所有第二相似度之和;
针对每一节点集合,从该节点集合中选择所述第二相似度之和最大的节点,作为新的初始中心节点,得到n个新的初始中心节点;
返回执行所述利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度的步骤,直至所述n个新的初始中心节点不发生改变。
可选的,所述目标网络中的节点分布特征包括所述多个节点之间的连接关系;
在所述将得到的n个节点集合中的每一节点集合作为所述目标网络中的一个社区的步骤之后,所述方法还包括:
基于同一社区内部的节点的连接关系,和,不同社区间的节点的连接关系,计算得到当前所有社区对应的第一模块度;
若所述第一模块度在预设区间外,将所述目标网络中的一组社区进行合并,并计算合并后的所有社区对应的第二模块度;其中,所述一组社区包括所述目标网络中的n个节点集合中的至少2个;
若所述第二模块度仍在所述预设区间外,对所述目标网络中的当前的社区进行合并操作,并计算每次合并后的所有社区对应的模块度,直至计算得到的模块度在所述预设区间内;
将计算得到的模块度在所述预设区间内时对应的社区,作为所述目标网络中的社区。
可选的,所述目标网络中的节点分布特征包括所述多个节点之间的连接关系和相邻节点之间的距离;
所述基于所述目标网络中的节点分布特征,从所述多个节点中选择n个初始中心节点,包括:
基于多个节点之间的连接关系计算得到每一节点的中心度,并将中心度最高的节点作为第一初始中心节点;
基于多个节点之间的连接关系和相邻节点之间的距离,计算得到所述目标网络中的任一节点与所述第一初始中心节点的最短路径的距离值;
从中心度大于预设阈值的节点中,依次选择所述距离值最大的节点,作为初始中心节点,直至初始中心节点的数量为n。
可选的,所述最短路径的距离值与所述最短路径包括的节点之间的距离正相关;
每一最短路径的距离值与目标相邻节点的数量负相关;其中,所述目标相邻节点为与该最短路径对应的节点和所述第一初始中心节点的均相邻的节点。
本发明的又一实施例提供了一种基于量子聚类的社区发现装置,所述装置包括:
初始模块,用于获取包含多个节点的目标网络,并基于所述目标网络中的节点分布特征,从所述多个节点中选择n个初始中心节点;
相似度计算模块,用于利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度;其中,所述待分类节点为所述目标网络中除所述初始中心节点之外的节点;
聚类模块,用于将每一所述待分类节点聚类至以对应的目标节点为中心的集合,得到n个节点集合;其中,所述目标节点为与该待分类节点的第一相似度最大的初始中心节点;
社区发现模块,用于将得到的n个节点集合中的每一节点集合作为所述目标网络中的一个社区。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
本发明的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。
与现有技术相比,本发明提供的一种基于量子聚类的社区发现方法及相关装置,方法包括:获取包含多个节点的目标网络,并基于目标网络中的节点分布特征,从多个节点中选择n个初始中心节点;利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度;其中,待分类节点为目标网络中除初始中心节点之外的节点;将每一待分类节点聚类至以对应的目标节点为中心的集合,得到n个节点集合;其中,目标节点为与该待分类节点的第一相似度最大的初始中心节点;将得到的n个节点集合中的每一节点集合作为目标网络中的一个社区。
本实施例提供的方案中,通过计算和比较节点之间的量子态相似度,利用量子聚类的方式,将目标网络中的节点聚类至以初始中心节点为中心的节点集合中,从而确定目标网络中的社区结构。利用量子态的叠加纠缠特性和量子计算的并行特性,从而可以快速地发现目标网络中的社区结构,提高了网络中的社区发现效率。
附图说明
图1为本发明实施例提供的一种基于量子聚类的社区发现系统的网络框图;
图2为本发明实施例提供的一种基于量子聚类的社区发现方法的流程示意图;
图3为本发明实施例提供的一种选择初始中心节点的具体流程示意图;
图4为本发明实施例提供的一种第一预设量子线路的具体结构示意图;
图5为本发明实施例提供的一种更新中心节点的流程示意图;
图6为本发明实施例提供的一种基于模块度优化社区发现结果的流程示意图;
图7为本发明实施例提供的一种基于量子聚类的社区发现装置的结构示意图;
图8为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
图1是本发明实施例提供的一种基于量子聚类的社区发现系统的网络框图。基于量子聚类的社区发现系统可以包括网络110、服务器120、无线设备130、客户机140、存储150、经典计算单元160、量子计算单元170,还可以包括未示出的附加存储器、经典处理器、量子处理器和其他设备。
网络110是用于为基于量子聚类的社区发现系统内连接在一起的各种设备和计算机之间提供通信链路的介质,包括但不限于互联网、企业内部网、局域网、移动通信网及其组合,连接方式可以采用有线、无线通信链路或光纤电缆等。
服务器120、无线设备130和客户机140是常规的数据处理系统,可包含数据和具有执行常规计算过程的应用程序或软件工具。客户机140可以是个人计算机或网络计算机,故数据也可以是服务器120提供的。无线设备130可以是智能手机、平板、笔记本电脑、智能可穿戴设备等。存储单元150可以包括数据库151,其可以被配置为存储量子比特参数、量子逻辑门参数、量子线路、量子程序等数据。
经典计算单元160(量子计算单元170)可以包括用于处理经典数据(量子数据)的经典处理器161(量子处理器171)和用于存储经典数据(量子数据)的存储器162(存储器172),经典数据(量子数据)可以是引导文件、操作系统镜像、以及应用程序163(应用程序173),应用程序163(应用程序173)可以用于实现根据本发明实施例提供的基于量子聚类的社区发现方法编译的量子算法。
经典计算单元160(量子计算单元170)中存储或产生的任何数据或信息也可以被配置成以类似的方式在另一个经典(量子)处理系统中存储或产生,同样其执行的任何应用程序也可以被配置成以类似的方式在另一个经典(量子)处理系统中执行。
需要说明的是,真正的量子计算机是混合结构的,它至少包括图1中的两大部分:经典计算单元160,负责执行经典计算与控制;量子计算单元170,负责运行量子程序进而实现量子计算。
上述经典计算单元160和量子计算单元170可以是集成在一台设备中,也可以是分布在两台不同的设备之中。例如包括经典计算单元160的第一设备运行经典计算机操作系统,其上提供了量子应用程序开发工具和服务,以及还提供了量子应用程序所需的存储和网络服务。用户通过其上的量子应用程序开发工具和服务开发量子程序,以及通过其上的网络服务将量子程序发送至包括量子计算单元170的第二设备。第二设备运行量子计算机操作系统,通过量子计算机操作系统对该量子程序的代码进行解析编译成量子处理器170可以识别和执行的指令,量子处理器170根据该指令实现量子程序对应的量子算法。
经典计算单元160中的经典处理器161的计算单元是基于硅芯片的CMOS管,这种计算单元不受时间和相干性的限制,即,这种计算单元是不受使用时长限制,随时可用。此外,在硅芯片中,这种计算单元的数量也是充足的,目前一个经典处理器161中的计算单元的数量是成千上万的,计算单元数量的充足且CMOS管可选择的计算逻辑是固定的,例如:与逻辑。借助CMOS管运算时,通过大量的CMOS管结合有限的逻辑功能,以实现运算效果。
量子计算单元170中量子处理器171的基本计算单元是量子比特,量子比特的输入受相干性的限制,也受相干时间的限制,即,量子比特是受使用时长限制的,并不是随时可用的。在量子比特的可用使用时长内充分使用量子比特是量子计算的关键性难题。此外,量子计算机中量子比特的数量是量子计算机性能的代表指标之一,每个量子比特通过按需配置的逻辑功能实现计算功能,鉴于量子比特数量受限,而量子计算领域的逻辑功能是多样化的,例如:哈德玛门(Hadamard门,H门)、泡利-X门(X门)、泡利-Y门(Y门)、泡利-Z门(Z门)、X门、RY门、RZ门、CNOT门、CR门、iSWAP门、Toffoli门等等。量子计算时,需借助有限的量子比特结合多样的逻辑功能组合实现运算效果。
基于这些不同,经典逻辑功能作用在CMOS管的设计和量子逻辑功能作用在量子比特的设计是显著和本质不同的;经典逻辑功能作用在CMOS管的设计是不需要考虑CMOS管的个体性,如CMOS管在硅芯片中的表示是第几个CMOS管的个体标识、位置、每个CMOS管的可使用时长,故而经典逻辑功能组成的经典算法只表达算法的运算关系,不表达算法对CMOS管个体的依赖。
而量子逻辑功能作用在量子比特需要考虑量子比特的个体性,如量子比特在量子芯片中是第几个量子比特的个体标识、位置以及和周围量子比特的关系、以及每个量子比特可使用时长。故而量子逻辑功能组成的量子算法不仅表达算法的运算关系,更表达算法对量子比特个体的依赖。
量子芯片可以包括量子比特和对量子比特进行调控的通道,量子逻辑门通过模拟信号实现,不同组合的模拟信号通过对量子比特进行调控的通道施加在量子比特上,从而实现不同功能的量子电路,完成对数据的处理。所以,量子逻辑功能作用在量子比特的设计(包括量子比特使用与否的设计以及每个量子比特使用效率的设计)是提升量子计算机的运算性能的关键,且需要进行特殊的设计,这也是基于量子逻辑功能实现的量子算法的独特性,是和基于经典逻辑功能实现的经典算法的本质和显著不同。而上述针对量子比特的设计是普通计算设备所不需要考虑的、也不需要面对的技术问题。
社区即网络中带有相似属性的一组节点的集合,它具有社区内节点关系紧密、社区间节点关系松散的特点。社区反映的是网络中的个体行为的局部性特征以及其相互之间的关联关系,研究网络中的社区对理解整个网络的结构和功能起到非常重要的作用。而传统的社区发现算法往往时间复杂度较高,随着当前的社会进步与发展,网络环境正越来越复杂,网络中的节点数量也在快速增加,传统的社区发现算法在发现网络中的社区结构时逐渐难以满足使用需求。因此本发明提出了一种基于量子聚类的社区发现方法及相关装置,旨在提高在网络中发现社区结构的效率。
参见图2,图2为本发明实施例提供的一种提高在网络中发现社区结构的效率方法,包括以下步骤:
步骤201,获取包含多个节点的目标网络,并基于所述目标网络中的节点分布特征,从所述多个节点中选择n个初始中心节点。
在本发明实施例提供的方案中,目标网络既可以是真实的网络环境中的部分网络的模型,如网络社交平台中的社交网络模型;也可以是由用户间的交互关系构建的虚拟的图网络模型,如基于消费者和商家之间的消费信息构建的消费网络模型等。目标网络中可以包含多个节点,例如,社交网络中的每一节点可以表示每一个用户,消费网络模型中的每一节点可以表示一个消费者或一个商家等。
目标网络中的多个节点之间通常存在连接关系,并且在一些情况下,这种连接关系还可以通过预设的权重进行衡量和比较。例如,目标网络中的节点表示消费者和书籍出版厂商时,节点间的连接关系可以表示消费者在该书籍出版厂商购买了书籍,权重则可以表示该用户购买的书籍的数量;那么通过分析书籍出版厂商销售的某一类型书籍中各个用户的购买数量,可以确定每一用户对该类型书籍的感兴趣程度,从而可以确定多个阅读爱好非常接近的用户,作为该目标网络中的一个社区。同理,当目标网络为社交网络模型时,连接关系可以为用户间互相关注、点赞、私信等操作,并可以将这些操作按照预设的量化指标转换为连接关系的权重,从而可以分析得到关系紧密、互动频繁的一些用户,作为该社交网络中的一个社区。
因而在本实施例中,可以基于目标网络中的节点之间的连接关系、权重等节点分布特征,从多个节点中选择n个初始中心节点。初始中心节点表示的是具有较高影响力的节点,可以充当“领导人”吸引其它影响力较低的节点,形成一个“簇”结构,即目标网络中的一个社区划分;相应的,每一个“簇”之间的数据应当差别较大,也即初始中心节点之间的距离相对较远。上述n个初始中心节点的具体选择方式将在下文进行说明,在此不再进行赘述。
步骤202,利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度;其中,所述待分类节点为所述目标网络中除所述初始中心节点之外的节点。
具体的,首先将目标网络中除上述n个初始中心节点之外的节点作为待分类节点,下一步则是要将每一待分类节点划分到以一个初始中心节点为中心的节点集合中,从而得到n个节点集合,作为该目标网络中的n个社区。第一预设量子线路是一种量子态相似度比较线路,可以比较两个量子态之间的相似度。因此,针对每一个待分类节点,可以计算该待分类节点和一个初始中心节点之间的相似度,得到一个第一相似度;那么分别计算该待分类节点和n个初始中心节点之间的相似度,便可以得到n个第一相似度。
步骤203,将每一所述待分类节点聚类至以对应的目标节点为中心的集合,得到n个节点集合;其中,所述目标节点为与该待分类节点的第一相似度最大的初始中心节点。
步骤204,将得到的n个节点集合中的每一节点集合作为所述目标网络中的一个社区。
进一步的,通过比较上述n个第一相似度,可以将与该待分类节点的第一相似度最大的初始中心节点作为目标节点,并将该待分类节点聚类至以该目标节点为中心的集合中。那么对每一待分类节点依次进行上述量子态相似度计算、比较和聚类操作后,可以得到分别以n个初始中心节点为中心的n个节点集合。将得到的n个节点集合中的每一节点集合作为目标网络中的一个社区,即可确定目标网络中社区结构。
在本示例中,通过基于量子聚类的社区发现算法,可以将社区发现算法的计算复杂度降为O(log(N)Mk),其中M为目标网络中节点的数量,N为节点的特征数据的维度,k为初始中心节点的数量,相比于传统的社区发现算法,达到了指数级的加速效果。通过计算和比较节点之间的量子态相似度,可以利用量子聚类的方式,将目标网络中的节点聚类至以初始中心节点为中心的节点集合中,从而确定目标网络中的社区结构。利用量子态的叠加纠缠特性和量子计算的并行特性,从而可以快速地发现目标网络中的社区结构,提高了网络中的社区发现效率。
作为本发明实施例的一种实施方式,如图3所示,上述目标网络中的节点分布特征可以包括所述多个节点之间的连接关系和相邻节点之间的距离,上述基于所述目标网络中的节点分布特征,从所述多个节点中选择n个初始中心节点,可以包括以下步骤:
步骤2011,基于多个节点之间的连接关系计算得到每一节点的中心度,并将中心度最高的节点作为第一初始中心节点。
具体的,节点的中心度是网络分析中的一个重要概念,可以用于衡量节点在网络中的重要性或中心性,中心度度量可以帮助理解节点在网络中的位置,以及节点对网络结构的贡献程度。由于可以使用节点的中心度衡量节点的影响力,那么一个节点的中心度越大,其被选作初始中心节点的概率也就应当越大。
在本实施例中,目标网络中的节点分布特征可以包括多个节点之间的连接关系,作为一种具体的实施方式,节点的中心度可以记为与该节点直接相连的节点的数量。因此可以基于多个节点之间的连接关系计算得到每一节点的中心度,并将中心度最高的节点作为第一初始中心节点。
在另一种实施方式中,可以使用Pagerank算法(网页排名算法,一种通过分析网页之间的链接关系来给网页赋予权重,从而衡量网页的重要性的链接分析算法)对每一节点的中心度进行计算。节点的Pagerank值越大表示中心度越高。然而,如果所有节点的Pagerank值几乎相等,则很难选取重要性较高的节点。为了解决这个问题,还可以考虑节点间的距离信息,改进中心性度量准则Pagerank-D,定义为:
其中,P
步骤2012,基于多个节点之间的连接关系和相邻节点之间的距离,计算得到所述目标网络中的任一节点与所述第一初始中心节点的最短路径的距离值。
相应的,在选择初始中心节点时,不仅需要考虑节点的“中心度高”,也要考虑节点的“分布离散”,即目标网络中的类间数据的距离较远,也即待发现的每一社区的中心之间的距离应当尽可能大。因此,选择的初始中心节点之间的距离应当相对较远,使得类中心尽可能均匀分布在目标网络的每个类中。
目标网络中的节点分布特征还可以包括相邻节点之间的距离,那么基于目标网络中多个节点之间的连接关系和相邻节点之间的距离,可以确定每一个节点与已选择的第一初始中心节点之间的最短路径。通过计算该最短路径包括的相邻节点之间的距离之和,可以得到该最短路径的距离值。
作为本发明实施例的一种实施方式,上述最短路径的距离值与该最短路径包括的节点之间的距离正相关;每一最短路径的距离值与目标相邻节点的数量负相关;其中,所述目标相邻节点为与该最短路径对应的节点和所述第一初始中心节点的均相邻的节点。
举例来说,如果节点A与初始中心节点B直接相连,节点C与初始中心节点B也直接相连,且节点A与初始中心节点B之间的距离和节点C与初始中心节点B之间的距离相等,但节点C和初始中心节点B均与节点D直接相连。节点D则为节点C与初始中心节点B的目标相邻节点,那么相比于节点A,节点C与初始中心节点B之间存在联系的可能性更大。在已选择节点B作为初始中心节点的情况下,节点A比节点C更适合选择作为初始中心节点。
那么上述最短路径的距离值还可以考虑:与一个节点和第一初始中心节点的均相邻的节点(即目标相邻节点)的数量,目标相邻节点越多,节点之间的关系也就更紧密,相应的,节点之间的最短路径距离值应当越小。因此在衡量上述最短路径的距离值时,可以使该距离值与最短路径包括的节点之间的距离正相关,并且每一最短路径的距离值需要与目标相邻节点的数量负相关。例如,在一种实施方式中,可以通过以下公式计算得到节点A与节点B之间的最短路径的距离值:
其中,Dis(A,B)表示节点A与节点B之间的最短路径的距离值,min Dis(A,B)表示该最短路径包括的节点之间的距离,comNeighbor(A,B)表示节点A与节点B的目标相邻节点的数量,C为预设常数,在此不做具体限定。
在本实施方式中,综合考虑了最短路径包括的节点之间的距离和目标相邻节点的数量,可以更好得衡量目标网络中两个节点之间的最短路径的距离值,从而选择与第一初始中心节点距离值较大的其它初始中心节点,进而提高目标网络中的社区发现结果的划分准确度。
步骤2013,从中心度大于预设阈值的节点中,依次选择所述距离值最大的节点,作为初始中心节点,直至初始中心节点的数量为n。
进而,首先可以挑选中心度大于预设阈值的节点,所述预设阈值可以综合考虑目标网络中的多个节点的中心度设置,在此不做具体限定;再从上述挑选得到的节点中,依次选择与第一初始中心节点之间的最短路径的距离值最大的节点,作为初始中心节点,直至初始中心节点的数量为n。
在本实施方式中,选择初始中心节点时,既考虑到了每一节点的中心度的影响,选择了中心度高的节点;又通过计算最短路径的距离值的方式使得初始中心节点之间相互离散分布,从而进一步提高了目标网络中的社区发现效果。
作为本发明实施例的一种实施方式,上述第一预设量子线路可以包括特征编码子线路和相似度计算子线路;上述利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度,可以包括:
针对任一待分类节点和任一初始中心节点,利用所述特征编码子线路对该待分类节点的特征数据进行编码得到第一量子态,对该初始中心节点的特征数据进行编码得到第二量子态;利用所述相似度计算子线路,对所述第一量子态和所述第二量子态进行纠缠演化,测量演化后的量子态,计算得到该待分类节点与该初始中心节点之间的第一相似度。
具体的,作为一种实施方式,上述特征编码子线路可以包括作用于第一量子比特的第一组RX门和RY门,和,作用于第二量子比特的第二组RX门和RY门;其中,所述第一组RX门和RY门的旋转参数由编码的待分类节点的特征数据确定,所述第二组RX门和RY门的旋转参数由编码的初始中心节点的特征数据确定。
上述相似度计算子线路可以依次包括作用于辅助比特的第一H门、控制比特为所述辅助比特的受控SWAP门、作用于所述辅助比特的第二H门,所述受控SWAP门的目标比特为所述第一量子比特和所述第二量子比特。
具体的,上述第一预设量子线路的具体结构可以如图4所示,图中的第一个量子比特为所述辅助比特;第二个量子比特为所述第一量子比特,作用在其上的量子逻辑门包括第一组RX门和RY门;第三个量子比特为所述第二量子比特,作用在其上的量子逻辑门也包括第二组RX门和RY门。
参见图4,在上述特征编码子线路中,第一组RX门和RY门的旋转参数由编码的待分类节点的特征数据确定,第二组RX门和RY门的旋转参数由编码的初始中心节点的特征数据确定。例如,待分类节点和初始中心节点的特征数据为二维数据,可以以二维向量的形式分别表示为
通过上述特征编码子线路编码得到的待分类节点对应的第一量子态记为|φ>,存储于所述第一量子比特上;编码得到的初始中心节点对应的第二量子态记为
进一步的,如图4所示,上述相似度计算子线路包括两个H门和Controlled-SWAP(受控SWAP)线路对第一量子态|φ)和第二量子态
在上述第一预设量子线路中,所述辅助比特的初始状态为|0>,第一H门将辅助比特的量子态由|0>转换为叠加态
那么对上述辅助比特进行测量,通过多次测量的方式,可以得到其量子态为|0>的概率为:
进而,可以通过计算得到第一量子态|φ>和第二量子态
在本实施例中,相比于经典KNN算法,本发明实施例提供的量子聚类方法有效的降低了计算复杂度,提高了计算效率,对于大规模数据具有极高的分类效率。并且将目标网络中节点的特征数据之间的相似度比较转换为量子态的相似度比较,可利用量子计算的并行特性和量子态的叠加纠缠特性来提高计算效率、准确度和灵敏度。
作为本发明实施例的一种实施方式,如图5所示,在所述将每一所述待分类节点聚类至以对应的目标节点为中心的集合,得到n个节点集合的步骤之后,所述方法还可以包括以下步骤:
步骤501,针对每一节点集合,利用第二预设量子线路计算该节点集合内的任一节点与该节点集合内的每一其它节点之间的第二相似度,并计算该节点对应的所有第二相似度之和。
步骤502,针对每一节点集合,从该节点集合中选择所述第二相似度之和最大的节点,作为新的初始中心节点,得到n个新的初始中心节点。
具体的,第二预设量子线路可以与上述第一预设量子线路的结构和功能类似,该第二预设量子线路也包括特征编码子线路部分和相似度计算子线路部分,可以利用特征编码子线路对该节点集合内的任一节点的特征数据进行编码得到第三量子态,对该节点集合内的一个其它节点的特征数据进行编码得到第四量子态;并利用相似度计算子线路,对第三量子态和第四量子态进行纠缠演化,测量演化后的量子态,计算得到该任一节点与该其它节点之间的第二相似度。
进一步的,可以计算该节点对应的所有第二相似度之和,第二相似度之和越大,表示该节点与所在节点集合内的所有其它节点越相似,更合适作为新的初始中心节点,以便进行下一轮的量子聚类。因此在该节点集合内,可以比较每一节点对应的第二相似度之和,并从中选择第二相似度之和最大的节点,作为新的初始中心节点,可以得到n个新的初始中心节点。
步骤503,判断所述n个新的初始中心节点是否发生改变,若所述n个新的初始中心节点发生改变,返回执行所述步骤202;若所述n个新的初始中心节点不发生改变,执行所述步骤204。
将上述n个新的初始中心节点与最初选择的n个初始中心节点进行比较,判断上述n个新的初始中心节点是否发生改变;若发生改变,说明初始中心节点选择不够合理,上一轮量子聚类仍存在优化空间,可以返回执行上述步骤202,以上述n个新的初始中心节点作为节点集合的中心,再进行一轮量子聚类;若不发生改变,说明初始中心节点选择较为合理,社区发现效果已达到最优,可以执行上述步骤204,将得到的n个节点集合中的每一节点集合作为目标网络中的一个社区。
在本实施例中,通过计算每一节点集合中的任一节点与该节点集合内的每一其它节点之间的第二相似度,并计算该节点对应的所有第二相似度之和,从而选择第二相似度之和最大的节点,作为新的初始中心节点,可以对初始中心节点进行更新,通过循环迭代的方式更新初始中心节点,使得聚类得到的目标网络中社区划分更加准确。
作为本发明实施例的一种实施方式,如图6所示,上述目标网络中的节点分布特征可以包括所述多个节点之间的连接关系;在上述将得到的n个节点集合中的每一节点集合作为所述目标网络中的一个社区的步骤之后,所述方法还可以包括以下步骤:
步骤601,基于同一社区内部的节点的连接关系,和,不同社区间的节点的连接关系,计算得到当前所有社区对应的第一模块度。
若所述第一模块度在预设区间内,执行步骤604;若所述第一模块度在预设区间外,执行步骤602。
具体的,在各类网络中会存在一些紧密连接的区域,这些区域(节点集和)通常有各自的属性,称为社区,社区内部连接紧密,而社区外部的连接则相对稀疏,即“内紧外松”,根据这个特点,设计了社区发现算法来探测网络中的社区结构,从而更好地理解网络中蕴含的丰富信息。而模块度是一种常用的衡量节点分组质量的标准,模块度越高说明所检测到的社区越符合“内紧外松”的特征,分组质量越好。模块度作为评估一个社区网络划分好坏的度量方法,可以看出,它是一种相对性的指标,其取值范围是[-1,1],一般认为模块度在0.3~0.7之间属于较为合适的社区划分结果。
在本实施例中,由于无法事先确定目标网络中的社区的数目,为了衡量社区发现算法输出的结果是不是最佳的结果,可以预先定义社区划分结果较为合理时的模块度区间为预设区间,进而通过计算得到模块度Q,并基于模块度Q与预设区间的大小关系,评价社区划分的效果。具体的,上述模块度Q可以通过以下公式计算得到:
其中,
从而通过上述方法可以计算得到当前所有社区对应的第一模块度,若第一模块度在预设区间内,说明此时的社区是合适的社区划分结果,可以作为目标网络中的社区;若在预设区间外,说明此时的社区划分效果较差,需要通过其它方式对上述社区划分结果进行进一步优化。
步骤602,将所述目标网络中的一组社区进行合并,并计算合并后的所有社区对应的第二模块度;其中,所述一组社区包括所述目标网络中的n个节点集合中的至少2个。
若所述第二模块度在所述预设区间内,执行步骤604;若所述第二模块度仍在所述预设区间外,执行步骤603。
具体的,在本实施例中,对上述社区划分结果的优化方式可以包括对目标网络中的一组社区进行合并。可以理解的是,对目标网络中的n个节点集合中的至少2个进行合并后,模块度可能发生多种变化:模块度不变,说明合并未对社区划分结果产生优化;模块度远离预设区间,说明合并对社区划分结果产生负优化;模块度趋近预设区间,说明合并对社区划分结果产生正优化。
那么,在一种实施方式中,可以通过多次模拟合并,并计算模块度增益的方式,确定最优的社区合并方案。模块度增益可以理解为对一组社区执行模拟合并后,在上述预设区间外的模块度接近预设区间的程度。具体的,在不同的社区合并方案中,可以改变每次合并操作参与的节点集合,和/或,合并的节点集合的数量。例如,可以为合并第一个节点集合和第二个节点集合、合并第一个节点集合和第三个节点集合、同时合并第一个节点集合、第二个节点集合和第三个节点集合等,进而将对应的模块度增益最大的社区合并方案确定其中最优的社区合并方案。
相应的,计算合并后的所有社区对应的第二模块度若在预设区间内,可以将合并后的所有社区作为目标网络中的社区;若仍在预设区间外,说明此时的社区划分效果仍未满足需求,可以通过进一步合并的方式对社区划分结果进行优化。可以理解的是,社区合并可能存在未使模块度产生增益甚至使得合并后的模块度更加远离预设区间,此时可以将最初的社区划分结果对应的所有社区作为目标网络中的社区。
步骤603,对所述目标网络中的当前的社区进行合并操作,并计算每次合并后的所有社区对应的模块度,直至计算得到的模块度在所述预设区间内。
步骤604,将计算得到的模块度在所述预设区间内时对应的社区,作为所述目标网络中的社区。
进一步的,可以对目标网络中的当前的社区再次进行合并操作,合并操作的具体方式可以如上述方案所示,每次合并后计算所有社区对应的模块度,直至计算得到的模块度在预设区间内。并将计算得到的模块度在预设区间内时对应的社区,作为该目标网络中的社区。
在本事实施例中,通过计算模块度的方式衡量了社区发现算法得到的社区划分结果是否满足需求,若不满足需求,可以通过多次的社区合并的方式进一步改善其模块度,直至计算得到的模块度在预设区间内。从而将社区划分方式持续向着模块度增益最大的方向进行优化,更进一步地提高了在目标网络中发现社区结构的准确性。
参见图7,图7为本发明实施例提供的一种基于量子聚类的社区发现装置,所述装置包括:
初始模块701,用于获取包含多个节点的目标网络,并基于所述目标网络中的节点分布特征,从所述多个节点中选择n个初始中心节点。
相似度计算模块702,用于利用第一预设量子线路计算任一待分类节点与每一初始中心节点之间的第一相似度;其中,所述待分类节点为所述目标网络中除所述初始中心节点之外的节点。
聚类模块703,用于将每一所述待分类节点聚类至以对应的目标节点为中心的集合,得到n个节点集合;其中,所述目标节点为与该待分类节点的第一相似度最大的初始中心节点。
社区发现模块704,用于将得到的n个节点集合中的每一节点集合作为所述目标网络中的一个社区。
关于基于量子聚类的社区发现装置实现的具体功能和效果,可以参照本说明书其他实施方式对照解释,在此不再赘述。所述基于量子聚类的社区发现装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。所述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图8。本说明书实施方式还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式中的基于量子聚类的社区发现方法。请参阅图8,所述计算机设备可以是经典计算机。所述计算机设备也可以是量子计算机。
本说明书实施方式还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得,该计算机执行上述任一实施方式中的基于量子聚类的社区发现方法。
本说明书实施方式还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述任一实施方式中的基于量子聚类的社区发现方法。
可以理解,本说明书中的具体的示例只是为了帮助本领域技术人员更好地理解本说明书实施方式,而非限制本发明的范围。
可以理解,在本说明书中的各种实施方式中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施方式的实施过程组成任何限定。
可以理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本说明书实施方式对此并不限定。
除非另有说明,本说明书实施方式所使用的所有技术和科学术语与本说明书的技术领域的技术人员通常理解的含义相同。本说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在限制本说明书的范围。本说明书所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。在本说明书实施方式和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
可以理解,本说明书实施方式的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施方式的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本说明书实施方式中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasablePROM,EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施方式描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本说明书所提供的几个实施方式中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本说明书各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本说明书的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
- 电动机器的定子和电动机器
- 电池组以及使用电池组的电动机器、电动机器系统