利索能及
我要发布
收藏
专利号: 201910635156X
申请人: 电子科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-17
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于遗传算法的区块链交易输入选择方法,其特征在于,包括以下步骤:S1、输入一个账户的UTXO的金额的集合UTXOs,以及目标值target;

S2、遍历UTXOs,计算当前余额total;

S3、当total

S4、当total=target,或者total>target且total‑target<min(UTXOs),则把所有的UTXO作为交易输入,交易输入选择结果result=UTXOs,跳转至步骤S9,否则继续执行步骤S5;

S5、当total>target并且在UTXOs中存在比target大的UTXO,则把比target大且最接近target的UTXO作为交易输入选择结果result,跳转至步骤S9,否则继续执行步骤S6;

S6、当total>target并且在UTXOs中不存在比target大的UTXO,则继续执行步骤S7,否则跳转至步骤S9;

S7、使用贪心算法思想,将UTXOs中的数从大到小依次相加,直到总和sum>=target,停止相加,记录相加因子的个数num,把相加因子的组合作为初始种群的一个个体以及best的初始值,再随机生成另外M‑1个个体,形成初始种群,M为种群大小;

S8、利用遗传算法,从初始种群开始,对种群不断的逐代进行遗传、交叉、变异,生成新一代种群,并使用best记录历代种群中表现最好的个体,直到种群代数等于终止代数T或者是best已经是最优结果,然后将best作为交易输入选择结果result;

S9、交易输入选择程序结束。

2.根据权利要求1所述基于遗传算法的区块链交易输入选择方法,其特征在于,UTXOs中的各UTXO按照从小到大或者从大到小顺序排列。

3.根据权利要求1所述基于遗传算法的区块链交易输入选择方法,其特征在于,步骤S8的具体操作方法包括:

S80、对UTXOs中各个UTXO进行编码,每个UTXO的编码用该UTXO在UTXOs中所在位置的二进制表示,编码从0开始;

S81、把由贪心算法得到的UTXO的集合作为best的初始值,并把best作为初始种群中的一个个体,并随机产生其它M‑1个个体,把种群代数置为0;

S82、判断种群代数是否小于终止代数T,如果小于T,则继续执行步骤S83,否则将best作为交易输入选择结果result,并跳转至步骤S9;

S83、根据适应度函数

f(x)=x1+x2+…+xnum,其中x1,x2,…,xnum∈UTXOs计算当前种群中各个体的适应度;

S84、更新best,如果某个体x的适应度f(x)≥target并且f(x)

S85、如果f(best)=target,则认为找到了最合适的UTXO的组合,终止算法,将best作为交易输入选择结果result,跳转至步骤S9,否则继续执行步骤S86;

S86、使用轮盘赌法则选择个体遗传到下一代,首先计算出当前全体的适应度总和f_total,i表示当代种群中的第i个个体,i≤M,ratio_i表示种群中第i个个体的适应度与f_total的比值,sum_ratio(i)=sum_ratio(i‑1)+ratio_i,其中,sum_ratio(0)=0,然后进行M次选择,每进行一次选择生成一个新的个体,一次选择的具体过程为:(1)生成一个[0,1)之间的随机数rand;

(2)i=0;

(3)计算sum_ratio(i),如果sum_ratio(i)≥rand,转入步骤(5),否则转至步骤(4);

(4)把i的值加1,转入步骤(3);

(5)把i选入下一代种群;

S87、交叉,在步骤S86中得到的新的M个个体中,每两个个体作为父母,确定交叉位置,然后将对应位置上的父母的染色体进行交叉,得到两个新的个体;

S88、对由步骤S87中得到的每个个体,随机产生一个[0,1)之间的随机数,如果该随机数小于变异概率,那么就认为该个体会产生变异,再通过随机选择变异位置,后将变异位置上的[0,1]序列进行取反,即在种群中产生了新个体;

S89、种群代数加一,跳转至步骤S82。

4.根据权利要求3所述基于遗传算法的区块链交易输入选择方法,其特征在于,步骤S83的具体做法为:在遗传算法中,x1,x2,…,xnum是使用二进制编码表示的,获得其对应的十进制表示作为位置索引,使用位置索引找到在UTXOs中对应的UTXO,然后将其对应数值进行相加,得到的结果作为适应度。