[发明专利]非对称问题拍卖算法的GPU实现方法在审

专利信息
申请号: 202210485454.7 申请日: 2022-05-06
公开(公告)号: CN114996521A 公开(公告)日: 2022-09-02
发明(设计)人: 刘崇威;李豪杰;王智慧 申请(专利权)人: 大连理工大学
主分类号: G06F16/901 分类号: G06F16/901;G06F17/16;G06Q30/08
代理公司: 辽宁鸿文知识产权代理有限公司 21102 代理人: 许明章;王海波
地址: 116024 辽*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 对称 问题 拍卖 算法 gpu 实现 方法
【权利要求书】:

1.一种非对称问题拍卖算法的GPU实现方法,其特征在于,所述的方法包括步骤:

1)建立非对称问题拍卖算法的GPU实现方法;具体来讲,输入N×M的成本矩阵C1,如果N大于M,则对这个矩阵进行转置操作,此时将N与M的值互换,C1仍为N×M大小的矩阵,否则维持原状;初始化一个(N+1)×M的竞价矩阵B1;一个人/物分配表person2item1,包含N个元素,每个元素均初始化为-1;一个物/人分配表item2person1,包含M个元素,每个元素均初始化为-1;一个价格表prices1,包含M个元素,每个元素均初始化为0;然后做如下循环操作:

竞价矩阵B1中所有元素均设为0;

执行竞价步骤后,竞价矩阵B1得到更新;

执行分配步骤后,person2item1、prices1和item2person1得到更新;

在每次循环开始前判断person2item1中-1元素的个数,如果个数不为0则开始循环,否则结束循环;如果成本矩阵C1执行过转置操作,则最终结果为item2person1,否则为person2item1

2)建立竞价步骤;输入一个N×M的成本矩阵C2,C2中所有元素均大于等于0;一个(N+1)×M的竞价矩阵B2,B2中所有元素均为0;一个人/物分配表person2item2,包含N个元素,每个元素均为大于-2且小于M的整数;一个价格表prices2,包含M个元素,每个元素均不为负数;GPU并行地计算出成本矩阵C2中的person2item2中数值为-1的索引所表示的行的最大值x2、第二大值y2、以及最大值x2在成本矩阵C2中的索引[n2,m2],n2为当前行索引,m2大于等于0且小于M;之后GPU并行地对B2进行如下更新:

B2[n2][m2]=x2–y2+1/N;

B2[N][m2]=1;

在计算某一行即行索引已知且为n2的M个元素中的x2,y2,[n2,m2]时,GPU首先生成一个M×3个元素的新数列t2并进行如下初始化:

t2[i2×3]=C2[n2][i2]–prices2[i2];

t2[i2×3+1]=0;

t2[i2×3+2]=i2

其中,i2大于等于0且小于M;t2[i2×3]、t2[i2×3+1]和t2[i2×3+2]构成一组基本单位,基本单位的索引值为i2,三者分别表示单位内最大值、单位内第二大值、单位内最大值在成本矩阵C2中的列索引;初始化完成之后,计算小于M的2的幂中的最大值f2,对于索引值大于等于f2的单位,如果t2[i2×3]大于等于t2[(i2–f2)×3],则依次计算:

t2[(i2–f2)×3+1]=t2[(i2–f2)×3];

t2[(i2–f2)×3]=t2[i2×3];

t2[(i2–f2)×3+2]=t2[i2×3+2];

否则计算:

t2[(i2–f2)×3+1]=t2[i2×3];

之后在数列t2前f2×3个元素的基础上进行规约操作,即令j2为f2/2,对于索引值小于j2的单位,如果t2[i2×3]小于等于t2[(i2+j2)×3],则依次计算:

t2[i2×3+1]=max(t2[i2×3],t2[(i2+j2)×3+1]);

t2[i2×3]=t2[(i2+j2)×3];

t2[i2×3+2]=t2[(i2+j2)×3+2];

否则当t2[i2×3+1]小于t2[(i2+j2)×3]时计算:

t2[i2×3+1]=t2[(i2+j2)×3];

之后令j2为j2/2继续执行上述操作直到j2为0为止,则t2[0],t2[1],t2[2]即为所求x2,y2,m2

3)建立分配步骤;输入一个(N+1)×M的竞价矩阵B3,B3中所有元素均不为负数;一个人/物分配表person2item3,包含N个元素,每个元素均为大于-2且小于M的整数;一个物/人分配表item2person3,包含M个元素,每个元素均为大于-2且小于N的整数;一个价格表prices3,包含M个元素,每个元素均不为负数;GPU并行地计算出竞价矩阵B3中的最后一行中数值为1的列索引的最大值x3、以及最大值x3在竞价矩阵B3中的索引[n3,m3],n3大于等于0且小于N,m3为当前列索引;之后GPU并行地对person2item3,prices3,和item2person3进行如下更新:

person3=item2person3[m3];

if(person3=0)

person2item3[person3]=-1;

prices3[m3]+=x3

person2item3[n3]=m3

item2person3[m3]=n3

在计算某一列即列索引已知且为m3的前N个元素中的x3,[n3,m3]时,GPU首先生成一个N×2个元素的新数列t3并进行如下初始化:

t3[i3×2]=B3[i3][m3];

t3[i3×2+1]=i3

其中,i3大于等于0且小于N;t3[i3×2]和t3[i3×2+1]构成一组基本单位,基本单位的索引值为i3,二者分别表示单位内最大值和单位内最大值在矩阵B3中的行索引;初始化完成之后,计算小于N的2的幂中的最大值f3,对于索引值大于等于f3的单位,如果t3[i3×2]大于t3[(i3–f3)×2],则计算:

t3[(i3–f3)×2]=t3[i3×2];

t3[(i3–f3)×2+1]=t3[i3×2+1];

之后在数列t3前f3×2个元素的基础上进行规约操作,即令j3为f3/2,对于索引值小于j3的单位,如果t3[i3×2]小于等于t3[(i3+j3)×2],则计算:

t3[i3×3]=t3[(i3+j3)×3];

t3[i3×3+1]=t3[(i3+j3)×3+1];

之后令j3为j3/2继续执行上述操作直到j3为0为止,则t3[0]和t3[1]即为所求x3和n3

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210485454.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top