CN110232446B - 一种基于基因遗传的共识节点选择方法和装置 - Google Patents
一种基于基因遗传的共识节点选择方法和装置 Download PDFInfo
- Publication number
- CN110232446B CN110232446B CN201910504968.0A CN201910504968A CN110232446B CN 110232446 B CN110232446 B CN 110232446B CN 201910504968 A CN201910504968 A CN 201910504968A CN 110232446 B CN110232446 B CN 110232446B
- Authority
- CN
- China
- Prior art keywords
- consensus
- chromosome
- gene
- population
- fitness value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于基因遗传的共识节点选择方法和装置。该方法以共识达成率、共识达成时间和经济性作为适应度值的因子,将各个共识节点是否候选编码成一个个染色体的遗传基因,根据遗传基因所确定的是否选中共识节点,对每个染色体选中的共识节点进行适应度值分析,然后根据适应度值的大小进行遗传基因的优选,优选后通过遗传基因的交叉运算和变异运算,得到下一代的群体,通过上述步骤的迭代最终得到适应度值最优的遗传基因,最后根据遗传基因所确定的是否选中共识节点从最优的遗传基因中挑选出共识节点作为优选的共识节点,从而得到联盟链的共识节点优化方案的最优解。
Description
技术领域
本发明涉及区块链性能分析,特别涉及联盟链共识性能优化。
背景技术
区块链也称为分布式账本技术,它是一个可以协同运转的数据库存储系统,参与者通过某种共识算法来使账本信息跟其他节点的账本信息保持一致。根据准入机制的不同,区块链可分为公有链、联盟链和私有链等三种类型。其中,联盟链只为某个特定群体的成员和有限的第三方服务,成员在获取权限后才可对区块链进行读写记账操作。拜占庭共识算法(ByzantineFaultTolerance,BFT)是联盟链的常用共识算法,它是一种状态机副本复制算法,状态机在分布式系统的不同节点进行副本复制。联盟链系统要求分布式网络中的若干共识节点参与共识,每个共识节点通过多次的消息确认来保证账本的一致性。
尽管拜占庭共识算法具有容错性、去币化等优势,但因性能太低而难以在具有较高性能需求的区块链系统中使用。因此,当前联盟链多选用部分节点参与共识,期望通过减少参与共识节点的数量来提高共识效率以及联盟链的性能。然而,当前区块链在共识节点选择方面还处于初步研究和试验阶段,理论依据和工程实践仍在探索中,尚不存在一种行之有效的共识节点选择方法,工程实践人员多依据自身经验通过主观推断进行节点选择,这为共识节点选择在各类联盟链实践中的有效应用带来了挑战。
发明内容
本发明所要解决的问题:对联盟链系统中共识节点选择进行优化,以提高共识节点执行共识算法的性能。
为解决上述问题,本发明采用的方案如下:
根据本发明的一种基于基因遗传的共识节点选择方法,包括如下步骤:
S1:提取各个共识节点的费用信息、运营时间信息和历史共识参与信息;所述共识参与信息包括:参与共识的次数、共识达成的次数、每次参与共识的耗费时间;
S2:初始化由m个染色体组成种群,初始化染色体基因,并根据各个共识节点的费用信息、运营时间信息和历史共识参与信息,根据每个染色体的基因计算适应度值:Pl0={{chr1,fv1},{chr2,fv2},…,{chrm,fvm}};其中,Pl0为第0代种群;chri,fvi分别为第i个染色体对应的基因和根据基因计算得到的适应度值;其中,基因chri={g1,g2,…,gN},用于表示共识节点的候选组;N为共识节点总数;gj表示第j个共识节点的选中标记,是为布尔量,初始化为随机值;m为预先设定的常数;
S3:根据染色体的适应度值大小作为挑选概率在第k代种群Plk中随机挑选出染色体组成下一代种群Plk+1;Plk+1为第k+1代种群;
S4:在新的种群Plk+1中随机选择染色体,对所选择的染色体进行基因随机变异,并根据变异后基因的适应度值,若变异后基因计算得到适应度值大于种群Plk+1中适应度值最小的染色体,则将变异后的基因替换种群Plk+1中适应度值最小的染色体的基因;
S5:对第k+1代种群Plk+1通过步骤S3至步骤S4进行迭代,直到种群中的适应度值差异收敛至预先设定值,或者迭代次数达到预先设定值;
S6:根据种群中染色体所对应的基因对应的选中标记选择对应的共识节点作为最终输出;
所述根据基因计算适应度值采用如下公式:
其中,P(X),C(X),T(X)分别定义为:
上述公式中,X表示基因,F(X)为基因X所选中的共识节点的适应度值,a,b,c为预先设定的权重系数,P(X)为基因X所选中的共识节点的共识达成率均值倒数,C(X)为基因X所选中的共识节点的总费用消耗,T(X)为基因X所选中的共识节点的参与共识所消耗的平均时间,NX为基因X所选中的共识节点个数,SX,j是基因X所选中第j个共识节点成功达成共识的次数,CX,j是基因X所选中第j个共识节点总共参与的共识次数,μX,j为基因X所选中第j个共识节点单位时间的费用消耗,tX,j是基因X所选中第j个共识节点运营时间,atx,j是基因X所选中第j个共识节点参与各次共识所消耗的平均时间。
进一步,根据本发明的基于基因遗传的共识节点选择方法,所述步骤S3包括以下步骤:
S31:将第k代种群Plk的染色体均分成三组;G1,G2,G3;其中,G1,G2,G3为染色体集合,G1中的各染色体适应度值小于G2中的各染色体适应度值,G2中的各染色体适应度值小于G3中的各染色体适应度值;
S32:在三组染色体G1,G2,G3中分别按挑选概率Pro1,Pro2,Pro3随机挑选染色体加入至种群Plk+1中。
进一步,根据本发明的基于基因遗传的共识节点选择方法,所述步骤S3还包括步骤S33:在三组染色体G1,G2,G3挑选后剩余的染色体中,各自取适应度值最高的染色体加入至种群Plk+1中。
进一步,根据本发明的基于基因遗传的共识节点选择方法,所述步骤S3还包括步骤S34:倘若新生成的种群Plk+1染色体个体数量不足m,则通过随机选取两个染色体对其基因进行随机交叉得到新的染色体加入至种群Plk+1直到种群Plk+1中染色体个数为m,并为每个新的染色体根据其基因计算适应度值。
进一步,根据本发明的基于基因遗传的共识节点选择方法,所述步骤S4中若变异后基因中计算得到适应度值最大值大于种群Plk+1中适应度值最小的染色体,则将适应度值最大值所对应的变异后的基因替换种群Plk+1中适应度值最小的染色体的基因。
根据本发明的一种基于基因遗传的共识节点选择装置,包括如下模块:
M1,用于:提取各个共识节点的费用信息、运营时间信息和历史共识参与信息;所述共识参与信息包括:参与共识的次数、共识达成的次数、每次参与共识的耗费时间;
M2,用于:初始化由m个染色体组成种群,初始化染色体基因,并根据各个共识节点的费用信息、运营时间信息和历史共识参与信息,根据每个染色体的基因计算适应度值:Pl0={{chr1,fv1},{chr2,fv2},…,{chrm,fvm}};其中,Pl0为第0代种群;chri,fvi分别为第i个染色体对应的基因和根据基因计算得到的适应度值;其中,基因chri={g1,g2,…,gN},用于表示共识节点的候选组;N为共识节点总数;gj表示第j个共识节点的选中标记,是为布尔量,初始化为随机值;m为预先设定的常数;
M3,用于:根据染色体的适应度值大小作为挑选概率在第k代种群Plk中随机挑选出染色体组成下一代种群Plk+1;Plk+1为第k+1代种群;
M4,用于:在新的种群Plk+1中随机选择染色体,对所选择的染色体进行基因随机变异,并根据变异后基因的适应度值,若变异后基因计算得到适应度值大于种群Plk+1中适应度值最小的染色体,则将变异后的基因替换种群Plk+1中适应度值最小的染色体的基因;
M5,用于:对第k+1代种群Plk+1通过模块M3至模块M4进行迭代,直到种群中的适应度值差异收敛至预先设定值,或者迭代次数达到预先设定值;
M6,用于:根据种群中染色体所对应的基因对应的选中标记选择对应的共识节点作为最终输出;
所述根据基因计算适应度值采用如下公式:
其中,P(X),C(X),T(X)分别定义为:
上述公式中,X表示基因,F(X)为基因X所选中的共识节点的适应度值,a,b,c为预先设定的权重系数,P(X)为基因X所选中的共识节点的共识达成率均值倒数,C(X)为基因X所选中的共识节点的总费用消耗,T(X)为基因X所选中的共识节点的参与共识所消耗的平均时间,NX为基因X所选中的共识节点个数,SX,j是基因X所选中第j个共识节点成功达成共识的次数,CX,j是基因X所选中第j个共识节点总共参与的共识次数,μX,j为基因X所选中第j个共识节点单位时间的费用消耗,tX,j是基因X所选中第j个共识节点运营时间,atX,j是基因X所选中第j个共识节点参与各次共识所消耗的平均时间。
进一步,根据本发明的基于基因遗传的共识节点选择装置,所述模块M3包括以下模块:
M31,用于:将第k代种群Plk的染色体均分成三组;G1,G2,G3;其中,G1,G2,G3为染色体集合,G1中的各染色体适应度值小于G2中的各染色体适应度值,G2中的各染色体适应度值小于G3中的各染色体适应度值;
M32,用于:在三组染色体G1,G2,G3中分别按挑选概率Pro1,Pro2,Pro3随机挑选染色体加入至种群Plk+1中。
进一步,根据本发明的基于基因遗传的共识节点选择装置,所述模块M3还包括模块M33,用于:在三组染色体G1,G2,G3挑选后剩余的染色体中,各自取适应度值最高的染色体加入至种群Plk+1中。
进一步,根据本发明的基于基因遗传的共识节点选择装置,所述模块M3还包括模块M34,用于:倘若新生成的种群Plk+1染色体个体数量不足m,则通过随机选取两个染色体对其基因进行随机交叉得到新的染色体加入至种群Plk+1直到种群Plk+1中染色体个数为m,并为每个新的染色体根据其基因计算适应度值。
进一步,根据本发明的基于基因遗传的共识节点选择装置,所述模块M4中若变异后基因中计算得到适应度值最大值大于种群Plk+1中适应度值最小的染色体,则将适应度值最大值所对应的变异后的基因替换种群Plk+1中适应度值最小的染色体的基因。
本发明的技术效果如下:本发明以共识达成率、共识达成时间和经济性作为适应度值的因子,将各个共识节点是否候选编码成一个个染色体的遗传基因,根据遗传基因所确定的是否选中共识节点,对每个染色体选中的共识节点进行适应度值分析,然后根据适应度值的大小进行遗传基因的优选,优选后通过遗传基因的交叉运算和变异运算,得到下一代的群体,通过上述步骤的迭代最终得到适应度值最优的遗传基因,最后根据遗传基因所确定的是否选中共识节点从最优的遗传基因中挑选出共识节点作为优选的共识节点,从而得到联盟链的共识节点优化方案的最优解。
具体实施方式
下面对本发明做进一步详细说明。
本实施例的基于基因遗传的共识节点选择方法,用于联盟链共识节点优化选择,主要包括三个步骤:第一个步骤是种群初始化;第二个步骤是根据适应度值对种群进行优选、交叉、变异的迭代过程;第三个步骤是根据迭代的结果选择优选的共识节点。
本发明适应度值的计算需要依赖于联盟链中各个共识节点的费用信息、运营时间信息和历史共识参与信息,其中,共识参与信息包括:参与共识的次数、共识达成的次数、每次参与共识的耗费时间。前述步骤S1中“提取各个共识节点的费用信息、运营时间信息和历史共识参与信息”表示“各个共识节点的费用信息、运营时间信息和历史共识参与信息”是本发明的输入,至于联盟链如何搭建、以上数据在联盟链中如何收集、以上数据收集后如何得到、收集得到的数据以何种数据结构进行表示,并不是本发明所讨论的范畴。各个共识节点的费用信息、运营时间信息和历史共识参与信息在本发明中如何计算适应度值参见适应度值计算公式。
种群初始化,也就是前述步骤S2,初始化由m个染色体组成种群,初始化染色体基因,并根据各个共识节点的费用信息、运营时间信息和历史共识参与信息,根据每个染色体对应的基因计算适应度值。该步骤的输出是种群Pl0。该种群需要用于第二个步骤的迭代过程,为便于区分,此处的种群定义为第0代种群,一轮迭代后的种群为第一代种群Pl1,k轮迭代后的种群定义Plk。种群是染色体的集合,可以表示为{{chr1,fv1},{chr2,fv2},…,{chrM,fvM}}。其中,{chr1,fv1},{chr2,fv2},…,{chrM,fvM}分别代表了种群中的各个染色体,M为种群中染色体的个数。对于第0代种群Pl0,种群中染色体个数为m。m为预先设定的常数。m在实际的具体应用中可人工配置。
每个染色体由基因和适应度值组成。chri为第i个染色体对应的基因,fvi为第i个染色体对应的适应度值。适应度值fvi根据基因chri计算得到。基因chri表示为:chri={g1,g2,…,gN},用于表示共识节点候选组。其中,N为联盟链中共识节点总数;gj表示第j个共识节点的选中标记,是为布尔量,真表示该共识节点属于该基因所表示的候选组,初始化为随机值。选中标记gj用于表示第j个共识节点是否候选,选中标记gj为真表示第j个共识节点是染色体的候选共识节点,反之为非候选的共识节点。也就是说,染色体的基因chri标记了联盟链中哪些共识节点属于染色体的候选,从而形成染色体对应的候选组,或者简单来说,每个染色体对应了联盟链中共识节点的某个候选组,也就是每个基因对应了一个候选组。至于联盟链中哪些共识节点形成候选组从而构成染色体的基因,在初始化时通过随机方式进行,也就是,选中标记gj初始化为随机值。需要强调指出的是,联盟链中每次参与共识的共识节点存在最少数量和最大数量的要求,因此每个染色体所对应的候选组所候选的共识节点个数不能少于Nmin,也不能大于Nmax。其中,Nmin为联盟链中每次参与共识的共识节点的最少数量;Nmax联盟链中每次参与共识的共识节点的最大数量。另外还需要强调的是,联盟链中任一共识节点至少需要被各个染色体所对应的候选组选中一次。显而易见地,共识节点可以被各个染色体所对应的候选组选中多次,也就是说,第j个共识节点可以被多个染色体候选。
适应度值根据基因计算得到,具体来说,适应度值根据基因选中标记计算得到,也就是说,适应度值是基因所对应候选组中的共识节点的统计值。适应度值用公式表示为:其中,X表示基因;F(X)为基因X所选中的共识节点的适应度值,或者F(X)为根据基因X所对应候选组中的共识节点计算得到的适应度值;P(X)为共识达成率均值倒数,C(X)为总费用消耗,T(X)为参与共识所消耗的平均时间。P(X),C(X),T(X)均以基因X为参数,表示P(X),C(X),T(X)分别为基因X所对应候选组中的共识节点计算得到的共识达成率均值倒数,总费用消耗,参与共识所消耗的平均时间,或者分别为基因X所选中的共识节点的共识达成率均值倒数,总费用消耗,参与共识所消耗的平均时间。a,b,c分别为P(X),C(X),T(X)的权重系数,预先设定。a,b,c在实际的具体应用中按具体工程需求配置,比如在某次共识节点优选方案中,费用消耗为主要考虑的因素,此时可以将总费用消耗C(X)所对应的权重系数b设置为大一些。
共识达成率均值倒数P(X)、总费用消耗C(X)、参与共识所消耗的平均时间T(X)的计算公式定义如下:
NX为基因X所选中的共识节点个数,或者为基因X所对应候选组中共识节点个数;SX,j是基因X所选中第j个共识节点成功达成共识的次数,或者为基因X所对应候选组中第j个共识节点成功达成共识的次数;CX,j是基因X所选中第j个共识节点总共参与的共识次数,或者为基因X所对应候选组中第j个共识节点总共参与的共识次数;为基因X所对应候选组中第j个共识节点的共识达成率;μX,j为基因X所选中第j个共识节点单位时间的费用消耗,或者为基因X所对应候选组中第j个共识节点单位时间的费用消耗;tX,j是基因X所选中第j个共识节点运营时间,或者为基因X所对应候选组中第j个共识节点的运营时间;μX,jtX,j为基因X所对应候选组中第j个共识节点的费用消耗;atX,j是基因X所选中第j个共识节点参与各次共识所消耗的平均时间,或者为基因X所对应候选组中第j个共识节点参与各次共识所消耗的平均时间。参与各次共识所消耗的平均时间atX,j可以用公式其中,teX,j,y为基因X所对应候选组中第j个共识节点第y次参与共识的结束时间;tsX,j,y为基因X所对应候选组中第j个共识节点第y次参与共识的开始时间;teX,j,y-tsX,j,y为基因X所对应候选组中第j个共识节点第y次参与共识所消耗的时间;NTX,j为基因X所对应候选组中第j个共识节点参与共识的次数,teX,j,y-tsX,j,y。
需要指出的是,共识节点单位时间的费用消耗μX,j即为前述的共识节点的费用信息;共识节点运营时间tX,j即为前述的共识节点的运营时间信息。本领域技术人员理解,共识节点的费用消耗μX,jtX,j也可以通过步骤S1直接输入。此时,共识节点的费用信息即为共识节点的费用消耗μX,jtX,j,同时无需共识节点的运营时间信息作为输入。此外,本领域技术人员理解,共识节点的共识达成率也可以通过步骤S1中的历史共识参与信息直接输入。同理,前述的参与共识所消耗的时间teX,j,y-tsX,j,y可以通过前述步骤S1输入,甚至,参与各次共识所消耗的平均时间atX,j可以通过前述步骤S1输入。
显而易见地,共识达成率均值倒数P(X)是共识达成率均值的倒数。由此当共识达成率均值越大,共识达成率均值倒数P(X)越小,适应度值F(X)越大。对于总费用消耗C(X)、参与共识所消耗的平均时间T(X),当总费用消耗C(X)、参与共识所消耗的平均时间T(X)越小时,适应度值F(X)越大。
第二个步骤的迭代过程由前述步骤S3、S4和S5组成。具体来说,步骤S3对应通用基因遗传算法中的优选运算步骤,步骤S4则对应变异运算步骤,而通用基因遗传算法中的交叉运算步骤在本发明中是可选步骤。步骤S3、S4的每轮迭代产生新一代的种群,或者也可以称之为种群进化,每一轮迭代种群进化一次,具体来说,第k代种群Plk经过步骤S3优选运算后生成优选后的第k+1代种群Plk+1,然后通过步骤S4对优选后的第k+1代种群Plk+1进行变异运算后得到每轮迭代最终的第k+1代种群Plk+1。可选的,在步骤S3和S4之间可插入对第k+1代种群Plk+1的交叉运算步骤。步骤S5定义了上述迭代过程的结束条件。迭代过程的结束条件有两个:种群中的适应度值差异收敛至预先设定值以及迭代次数达到预先设定值。通过步骤S3和步骤S4的迭代,第k+1代种群Plk+1中各个染色体的适应度值必然在整体上高于第k代种群Plk各个染色体的适应度值,而各个染色体的适应度值存在上限,因此,随着迭代,种群中的各个染色体的适应度值都向该适应度值上限靠近。种群中的各个染色体的适应度值足够接近适应度值上限时,种群中染色体最大适应度值和最小适应度值差异将会很小。也就是说,当种群中的适应度值差异很小时,种群中的各个染色体的适应度值接近适应度值上限。
步骤S3,根据染色体的适应度值大小作为挑选概率在第k代种群Plk中随机挑选出染色体组成下一代种群Plk+1。步骤S3前述的优选运算步骤用于淘汰适应度值低的染色体,留下适应度值高的染色体作为下一代种群的基础。根据染色体的适应度值大小作为挑选概率在第k代种群Plk中随机挑选的方法有多种,简单的,比如采用俄罗斯轮盘随机方式。本实施例采用如下步骤:
步骤S31:将第k代种群Plk的染色体均分成三组;G1,G2,G3;其中,G1,G2,G3为染色体集合,G1中的各染色体适应度值小于G2中的各染色体适应度值,G2中的各染色体适应度值小于G3中的各染色体适应度值。上述过程最为简单的将第k代种群Plk的染色体按照适应度从小到大,进行排序,选择排序后最前三分之一数量的染色体组成G1,中间三分之一数量的染色体组成G2,最后三分之一数量的染色体组成G3。
然后步骤S32,在三组染色体G1,G2,G3中分别按挑选概率Pro1,Pro2,Pro3随机挑选染色体加入至种群Plk+1中。也就是说,在第一组染色体G1中,每个染色体有Pro1的概率被选中加入至种群Plk+1中;在第二组染色体G2中,每个染色体有Pro2的概率被选中加入至种群Plk+1中;在第三组染色体G3中,每个染色体有Pro3的概率被选中加入至种群Plk+1中。本实施例中,挑选概率Pro1,Pro2,Pro3分别定义为0.6,0.8,1.0,或者60%,80%,100%。根据上述Pro1,Pro2,Pro3概率,适应度值最高的第三组染色体G3中的染色体必然会被选中加入至种群Plk+1中。而对于第一组染色体G1和第二组染色体G2,最为极端的情形是所有染色体均加入至种群Plk+1中,或者所有的染色体均不加入至种群Plk+1中。不加入至种群Plk+1中的染色体即为将被淘汰的染色体。正常情形下,第一组染色体G1将有60%数量的染色体加入至种群Plk+1,留下40%数量的染色体将被淘汰;第二组染色体G2将有80%数量的染色体加入至种群Plk+1,留下20%数量的染色体将被淘汰。
最后步骤S33,在三组染色体G1,G2,G3挑选后剩余的染色体中,各自取适应度值最高的染色体加入至种群Plk+1中。也就是说经过步骤S32后,如果第一组染色体G1中还有剩余的染色体,则将第一组染色体G1所剩余的染色体中挑选适应度值最高的加入至种群Plk+1中;如果第二组染色体G2中还有剩余的染色体,则将第二组染色体G2所剩余的染色体中挑选适应度值最高的加入至种群Plk+1中;如果第三组染色体G3中还有剩余的染色体,则将第三组染色体G3所剩余的染色体中挑选适应度值最高的加入至种群Plk+1中。
显而易见地,经过上述步骤S31、S32、S33处理后,可预见地,新的种群Plk+1中的染色体个数将少于第k代种群Plk中的染色体个数。为避免每轮迭代后种群缩小后导致无法进行迭代的问题,本实施例在步骤S31、S32、S33之后加入前述可选的交叉运算步骤。
交叉运算步骤,即为前述步骤S34,倘若新生成的种群Plk+1染色体个体数量不足m,则通过随机选取两个染色体对其基因进行随机交叉得到新的染色体加入至种群Plk+1直到种群Plk+1中染色体个数为m,并为每个新的染色体根据其基因计算适应度值。上述随机选取的两个染色体可分别定义为父染色体和母染色体。假设父染色体的基因为{ga,1,ga,2,…,ga,N},母染色体的基因为{gb,1,gb,2,…,gb,N},对两个基因进行随机交叉,本实施例具体方法如下;在1至N之间取随机数r,在父染色体的基因{ga,1,ga,2,…,ga,N}中选择前r个基因编码,在母染色体的基因{gb,1,gb,2,…,gb,N}取后N-r个基因编码组成交叉后的基因{ga,1,ga,2,…,ga,r,gb,r+1,gb,r+2,…,gb,N}。需要注意的是,交叉后所形成的基因应当满足其所对应的候选组所候选的共识节点个数不能少于Nmin,也不能大于Nmax。如若不满足上述条件直接放弃后重新随机选择父染色体和母染色体进行交叉。
步骤S4,也就是前述的变异运算步骤:在新的种群Plk+1中随机选择染色体,对所选择的染色体进行基因随机变异,并根据变异后基因的适应度值,若变异后基因计算得到适应度值大于种群Plk+1中适应度值最小的染色体,则将变异后的基因替换种群Plk+1中适应度值最小的染色体的基因。上述表述过程包含两种方式:
第一种是每一次随机选择染色体选择一个染色体,然后对该染色体进行基因随机变异,然后根据变异后的基因计算适应度值,变异后的基因和适应度值组成单个变异染色体,如果该变异染色体的适应度值大于种群Plk+1中适应度值最小的染色体,即以该变异染色体替换种群Plk+1中该适应度最小的染色体。
第二种是每次随机选择若干染色体,然后对这些染色体进行基因随机变异,并分别根据变异后的基因计算适应度值,从而得到变异后的染色体种群;然后在变异后的染色体种群中挑选适应度值最大的变异染色体,倘若该变异染色体的适应度值大于种群Plk+1中适应度值最小的染色体,即以该变异后的染色体种群中适应度值最大的变异染色体替换种群Plk+1中该适应度值最小的染色体。
基因随机变异简单来说,就是对基因中每个选中标记g1,g2,…,gN重新随机设定真假值。需要注意的是,变异后所形成的染色体应当满足其所对应的候选组所候选的共识节点个数不能少于Nmin,也不能大于Nmax,若不满足上述约束条件则需重新变异。
第三个步骤,根据迭代的结果选择优选的共识节点,也就是前述步骤S6,根据种群中染色体所对应的基因对应的选中标记选择对应的共识节点作为最终输出。具体来说,由于染色体的基因对应了共识节点的候选组,该候选组也就是最终的优选共识节点。需要指出的是,步骤S6有两种具体处理方式,第一种是在迭代结束后的种群中选择适应度值最大的染色体,然后根据该适应度值最大染色体对应的共识节点候选组确定优选的共识节点;第二种是考虑到迭代结束后,各个染色体基因的适应度值差异很小,可以将迭代结束后的种群中各个染色体的基因进行或操作,得到或操作后的基因,然后将该或操作后的基因所对应的共识节点候选组确定优选的共识节点。
Claims (10)
1.一种基于基因遗传的共识节点选择方法,其特征在于,包括如下步骤:
S1:提取各个共识节点的费用信息、运营时间信息和历史共识参与信息;所述共识参与信息包括:参与共识的次数、共识达成的次数、每次参与共识的耗费时间;
S2:初始化由m个染色体组成种群,初始化染色体基因,并根据各个共识节点的费用信息、运营时间信息和历史共识参与信息,根据每个染色体的基因计算适应度值:Pl0={{chr1,fv1},{chr2,fv2},...,{chrm,fvm}};其中,Pl0为第0代种群;chri,fvi分别为第i个染色体对应的基因和根据基因计算得到的适应度值;其中,基因chri={g1,g2,...,gN},用于表示共识节点的候选组;N为共识节点总数;gj表示第j个共识节点的选中标记,为布尔量,初始化为随机值;m为预先设定的常数;
S3:根据染色体的适应度值大小作为挑选概率在第k代种群Plk中随机挑选出染色体组成下一代种群Plk+1;Plk+1为第k+1代种群;
S4:在新的种群Plk+1中随机选择染色体,对所选择的染色体进行基因随机变异,并根据变异后基因的适应度值,若变异后基因计算得到适应度值大于种群Plk+1中适应度值最小的染色体,则将变异后的基因替换种群Plk+1中适应度值最小的染色体的基因;
S5:对第k+1代种群Plk+1通过步骤S3至步骤S4进行迭代,直到种群中的适应度值差异收敛至预先设定值,或者迭代次数达到预先设定值;
S6:根据种群中染色体所对应的基因对应的选中标记选择对应的共识节点作为最终输出;
所述根据基因计算适应度值采用如下公式:
其中,P(X),C(X),T(X)分别定义为:
上述公式中,X表示基因,F(X)为基因X所选中的共识节点的适应度值,a,b,c为预先设定的权重系数,P(X)为基因X所选中的共识节点的共识达成率均值倒数,C(X)为基因X所选中的共识节点的总费用消耗,T(X)为基因X所选中的共识节点的参与共识所消耗的平均时间,NX为基因X所选中的共识节点个数,SX,j是基因X所选中第j个共识节点成功达成共识的次数,CX,j是基因X所选中第j个共识节点总共参与的共识次数,μX,j为基因X所选中第j个共识节点单位时间的费用消耗,tX,j是基因X所选中第j个共识节点运营时间,atX,j是基因X所选中第j个共识节点参与各次共识所消耗的平均时间。
2.如权利要求1所述的基于基因遗传的共识节点选择方法,其特征在于,所述步骤S3包括以下步骤:
S31:将第k代种群Plk的染色体均分成三组;G1,G2,G3;其中,G1,G2,G3为染色体集合,G1中的各染色体适应度值小于G2中的各染色体适应度值,G2中的各染色体适应度值小于G3中的各染色体适应度值;
S32:在三组染色体G1,G2,G3中分别按挑选概率Pro1,Pro2,Pro3随机挑选染色体加入至种群Plk+1中。
3.如权利要求2所述的基于基因遗传的共识节点选择方法,其特征在于,所述步骤S3还包括步骤S33:在三组染色体基因G1,G2,G3挑选后剩余的染色体基因中,倘若新生成的种群Plk+1染色体个体数量不足m,各自取适应度值最高的染色体基因加入至种群Plk+1中。
4.如权利要求1所述的基于基因遗传的共识节点选择方法,其特征在于,所述步骤S3还包括步骤S34:倘若新生成的种群Plk+1染色体个体数量不足m,则通过随机选取两个染色体对其基因进行随机交叉得到新的染色体加入至种群Plk+1直到种群Plk+1中染色体个数为m,并为每个新的染色体根据其基因计算适应度值。
5.如权利要求1所述的基于基因遗传的共识节点选择方法,其特征在于,所述步骤S4中若变异后基因中计算得到适应度值最大值大于种群Plk+1中适应度值最小的染色体,则将适应度值最大值所对应的变异后的基因替换种群Plk+1中适应度值最小的染色体的基因。
6.一种基于基因遗传的共识节点选择装置,其特征在于,包括如下模块:
模块M1,用于:提取各个共识节点的费用信息、运营时间信息和历史共识参与信息;所述共识参与信息包括:参与共识的次数、共识达成的次数、每次参与共识的耗费时间;
模块M2,用于:初始化由m个染色体组成种群,初始化染色体基因,并根据各个共识节点的费用信息、运营时间信息和历史共识参与信息,根据每个染色体的基因计算适应度值:Pl0={{chr1,fv1},{chr2,fv2},...,{chrm,fvm}};其中,Pl0为第0代种群;chri,fvi分别为第i个染色体对应的基因和根据基因计算得到的适应度值;其中,基因chri={g1,g2,...,gN},用于表示共识节点的候选组;N为共识节点总数;gj表示第j个共识节点的选中标记,为布尔量,初始化为随机值;m为预先设定的常数;
模块M3,用于:根据染色体的适应度值大小作为挑选概率在第k代种群Plk中随机挑选出染色体组成下一代种群Plk+1;Plk+1为第k+1代种群;
模块M4,用于:在新的种群Plk+1中随机选择染色体,对所选择的染色体进行基因随机变异,并根据变异后基因的适应度值,若变异后基因计算得到适应度值大于种群Plk+1中适应度值最小的染色体,则将变异后的基因替换种群Plk+1中适应度值最小的染色体的基因;
模块M5,用于:对第k+1代种群Plk+1通过模块M3至模块M4进行迭代,直到种群中的适应度值差异收敛至预先设定值,或者迭代次数达到预先设定值;
模块M6,用于:根据种群中染色体所对应的基因对应的选中标记选择对应的共识节点作为最终输出;
所述根据基因计算适应度值采用如下公式:
其中,P(X),C(X),T(X)分别定义为:
上述公式中,X表示基因,F(X)为基因X所选中的共识节点的适应度值,a,b,c为预先设定的权重系数,P(X)为基因X所选中的共识节点的共识达成率均值倒数,C(X)为基因X所选中的共识节点的总费用消耗,T(X)为基因X所选中的共识节点的参与共识所消耗的平均时间,NX为基因X所选中的共识节点个数,SX,j是基因X所选中第j个共识节点成功达成共识的次数,CX,j是基因X所选中第j个共识节点总共参与的共识次数,μX,j为基因X所选中第j个共识节点单位时间的费用消耗,tX,j是基因X所选中第j个共识节点运营时间,atX,j是基因X所选中第j个共识节点参与各次共识所消耗的平均时间。
7.如权利要求6所述的基于基因遗传的共识节点选择装置,其特征在于,所述模块M3包括以下模块:
模块M31,用于:将第k代种群Plk的染色体均分成三组;G1,G2,G3;其中,G1,G2,G3为染色体集合,G1中的各染色体适应度值小于G2中的各染色体适应度值,G2中的各染色体适应度值小于G3中的各染色体适应度值;
模块M32,用于:在三组染色体G1,G2,G3中分别按挑选概率Pro1,Pro2,Pro3随机挑选染色体加入至种群Plk+1中。
8.如权利要求7所述的基于基因遗传的共识节点选择装置,其特征在于,所述模块M3还包括模块M33,用于:在三组染色体G1,G2,G3挑选后剩余的染色体中,各自取适应度值最高的染色体加入至种群Plk+1中。
9.如权利要求6所述的基于基因遗传的共识节点选择装置,其特征在于,所述模块M3还包括模块M34,用于:倘若新生成的种群Plk+1染色体个体数量不足m,则通过随机选取两个染色体对其基因进行随机交叉得到新的染色体加入至种群Plk+1直到种群Plk+1中染色体个数为m,并为每个新的染色体根据其基因计算适应度值。
10.如权利要求6所述的基于基因遗传的共识节点选择装置,其特征在于,所述模块M4中若变异后基因中计算得到适应度值最大值大于种群Plk+1中适应度值最小的染色体,则将适应度值最大值所对应的变异后的基因替换种群Plk+1中适应度值最小的染色体的基因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910504968.0A CN110232446B (zh) | 2019-06-12 | 2019-06-12 | 一种基于基因遗传的共识节点选择方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910504968.0A CN110232446B (zh) | 2019-06-12 | 2019-06-12 | 一种基于基因遗传的共识节点选择方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110232446A CN110232446A (zh) | 2019-09-13 |
CN110232446B true CN110232446B (zh) | 2023-07-21 |
Family
ID=67859023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910504968.0A Active CN110232446B (zh) | 2019-06-12 | 2019-06-12 | 一种基于基因遗传的共识节点选择方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110232446B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954009B (zh) * | 2021-01-27 | 2023-05-02 | 咪咕音乐有限公司 | 区块链共识方法、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015173803A2 (en) * | 2014-05-11 | 2015-11-19 | Ofek - Eshkolot Research And Development Ltd | A system and method for generating detection of hidden relatedness between proteins via a protein connectivity network |
CN104966243B (zh) * | 2015-07-21 | 2018-06-05 | 江苏省无线电科学研究所有限公司 | 基于改进遗传算法的农作物生育期自动识别方法 |
CN109829105A (zh) * | 2019-01-18 | 2019-05-31 | 王惟惟 | 一种可应用区块链技术的人工智能创作辅助系统 |
-
2019
- 2019-06-12 CN CN201910504968.0A patent/CN110232446B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110232446A (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590247B (zh) | 一种基于群体知识诊断的智能组卷方法 | |
CN106411896B (zh) | 基于apde-rbf神经网络的网络安全态势预测方法 | |
Cheng et al. | Air traffic control using genetic search techniques | |
CN110390548A (zh) | 优惠券派发策略的选择方法及装置 | |
CN108564117A (zh) | 一种基于svm的贫困生辅助认定方法 | |
CN111832101A (zh) | 一种水泥强度预测模型的构建方法及水泥强度预测方法 | |
CN112733273A (zh) | 一种基于遗传算法和最大似然估计确定贝叶斯网络参数的方法 | |
CN111832725A (zh) | 一种基于改进遗传算法的多机器人多任务分配方法及装置 | |
CN110232446B (zh) | 一种基于基因遗传的共识节点选择方法和装置 | |
CN114565239A (zh) | 用于产业园区的综合低碳能源调度方法及系统 | |
CN112163808A (zh) | 一种基于对立学习的自适应鲸鱼算法求解物流中心选址问题的方法 | |
Dioşan et al. | Evolving the structure of the particle swarm optimization algorithms | |
CN111666991A (zh) | 基于卷积神经网络的模式识别方法、装置和计算机设备 | |
CN114093426B (zh) | 基于基因调控网络构建的标志物筛选方法 | |
CN114943278A (zh) | 基于强化学习的持续在线群体激励方法、装置及存储介质 | |
Rolling et al. | Combining estimates of conditional treatment effects | |
Chen et al. | A combination genetic algorithm with applications on portfolio optimization | |
CN112132259B (zh) | 神经网络模型输入参量降维方法及计算机可读存储介质 | |
CN110533186B (zh) | 众包定价体系的评估方法、装置、设备及可读存储介质 | |
CN110297977B (zh) | 一种面向众筹平台的个性化推荐单目标进化方法 | |
CN114912518A (zh) | 基于用户群体典型特征的强化学习分组方法、装置及介质 | |
CN107437230A (zh) | 一种基于矩阵编码的多目标进化求解面试分组的方法 | |
CN114218502A (zh) | 基于稀疏进化算法的社交网络关键成员检测方法 | |
Ünal et al. | Genetic algorithm | |
Pencheva et al. | Generalized nets model of offspring reinsertion in genetic algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |