非对称问题拍卖算法的GPU实现方法

文档序号:31392652发布日期:2022-09-03 02:43阅读:69来源:国知局
非对称问题拍卖算法的gpu实现方法
技术领域
1.本发明属于计算机技术领域,涉及一种非对称问题拍卖算法的gpu实现方法。


背景技术:

2.拍卖算法(auction algorithm,d.p.bertsekas,“auctionalgorithms for networkflow problems:a tutorial introduction,”computational optimization and applications, vol.1,no.1,pp.7

66,1992.)是求解线性分配问题的经典算法,原始的拍卖算法以拍卖会为原型来进行建模,即有n个人和n个拍卖物,要求必须一对一地进行匹配。算法的输入为一个n
×
n成本矩阵,矩阵中所有元素均不为负;矩阵中的任意元素a
ij
代表了第i个人对第j个物的出价。算法的目的是将人与物进行配对并使总收益(n
×
n成本矩阵中的对应数值之和)最大化。本发明提供一种非对称问题(即人和物的数量不要求一定相同)拍卖算法的gpu实现方法。


技术实现要素:

3.本发明的目的是提供一种非对称问题拍卖算法的gpu实现方法,以满足线性分配问题的快速求解需求。
4.本发明采用的技术方案如下:
5.一种非对称问题拍卖算法的gpu实现方法,包括步骤如下:
6.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;然后做如下循环操作:
7.竞价矩阵b1中所有元素均设为0;
8.执行竞价步骤后,竞价矩阵b1得到更新;
9.执行分配步骤后,person2item1、prices1和item2person1得到更新;
10.在每次循环开始前判断person2item1中-1元素的个数,如果个数不为0则开始循环,否则结束循环;如果成本矩阵c1执行过转置操作,则最终结果为 item2person1,否则为person2item1;
11.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进行如下更新:
[0012]
b2[n2][m2]=x2–
y2+1/n;
[0013]
b2[n][m2]=1;
[0014]
在计算某一行即行索引已知且为n2的m个元素中的x2,y2,[n2,m2]时, gpu首先生成一个m
×
3个元素的新数列t2并进行如下初始化:
[0015]
t2[i2×
3]=c2[n2][i2]

prices2[i2];
[0016]
t2[i2×
3+1]=0;
[0017]
t2[i2×
3+2]=i2;
[0018]
其中,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],则依次计算:
[0019]
t2[(i2–
f2)
×
3+1]=t2[(i2–
f2)
×
3];
[0020]
t2[(i2–
f2)
×
3]=t2[i2×
3];
[0021]
t2[(i2–
f2)
×
3+2]=t2[i2×
3+2];
[0022]
否则计算:
[0023]
t2[(i2–
f2)
×
3+1]=t2[i2×
3];
[0024]
之后在数列t2前f2×
3个元素的基础上进行规约操作,即令j2为f2/2,对于索引值小于j2的单位,如果t2[i2×
3]小于等于t2[(i2+j2)
×
3],则依次计算:
[0025]
t2[i2×
3+1]=max(t2[i2×
3],t2[(i2+j2)
×
3+1]);
[0026]
t2[i2×
3]=t2[(i2+j2)
×
3];
[0027]
t2[i2×
3+2]=t2[(i2+j2)
×
3+2];
[0028]
否则当t2[i2×
3+1]小于t2[(i2+j2)
×
3]时计算:
[0029]
t2[i2×
3+1]=t2[(i2+j2)
×
3];
[0030]
之后令j2为j2/2继续执行上述操作直到j2为0为止,则t2[0],t2[1],t2[2]即为所求x2,y2,m2;
[0031]
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进行如下更新:
[0032]
person3=item2person3[m3];
[0033]
if(person3》=0)
[0034]
person2item3[person3]=-1;
[0035]
prices3[m3]+=x3;
[0036]
person2item3[n3]=m3;
[0037]
item2person3[m3]=n3;
[0038]
在计算某一列即列索引已知且为m3的前n个元素中的x3,[n3,m3]时,gpu 首先生成
一个n
×
2个元素的新数列t3并进行如下初始化:
[0039]
t3[i3×
2]=b3[i3][m3];
[0040]
t3[i3×
2+1]=i3;
[0041]
其中,i3大于等于0且小于n;t3[i3×
2]和t3[i3×
2+1]构成一组基本单位,基本单位的索引值为i3,二者分别表示单位内最大值和单位内最大值在矩阵b3中的行索引;初始化完成之后,计算小于n的2的幂中的最大值f3,对于索引值大于等于f3的单位,如果t3[i3×
2]大于t3[(i3–
f3)
×
2],则计算:
[0042]
t3[(i3–
f3)
×
2]=t3[i3×
2];
[0043]
t3[(i3–
f3)
×
2+1]=t3[i3×
2+1];
[0044]
之后在数列t3前f3×
2个元素的基础上进行规约操作,即令j3为f3/2,对于索引值小于j3的单位,如果t3[i3×
2]小于等于t3[(i3+j3)
×
2],则计算:
[0045]
t3[i3×
3]=t3[(i3+j3)
×
3];
[0046]
t3[i3×
3+1]=t3[(i3+j3)
×
3+1];
[0047]
之后令j3为j3/2继续执行上述操作直到j3为0为止,则t3[0]和t3[1]即为所求x3和n3。
[0048]
本发明的有益效果:本发明可以使得非对称问题拍卖算法利用gpu进行加速运算,在解决大规模线性分配问题时大幅缩短求解时间。
具体实施方式
[0049]
为了使本发明的目的、技术方案和优点更加清楚,下面对本发明的具体实施方式作进一步的详细描述。
[0050]
有如下3
×
4的成本矩阵c:
[0051][0052]
对其进行本发明的操作。首先n和m分别为3和4且满足n小于m,因此无需对c进行转置操作;初始化一个4
×
4的竞价矩阵b(b中所有元素均初始化为0)、一个人/物分配表person2item(包含3个元素,每个元素均初始化为-1)、一个物/人分配表item2person(包含4个元素,每个元素均初始化为-1)、一个价格表prices(包含4个元素,每个元素均初始化为0)。
[0053]
由于person2item中-1元素的个数为3(大于0),所以进行如下操作:
[0054]
将矩阵b中所有元素设为0;
[0055]
执行竞价步骤后,竞价矩阵b得到更新;
[0056]
执行分配步骤后,person2item、prices和item2person得到更新;
[0057]
以上操作完成后矩阵b的值为:
[0058]
[0059]
prices为[0,2.33,2.33,2.33];person2item为[3,1,2];item2person为[-1,1,2,0]。
[0060]
由于person2item中-1元素的个数为0,所以结束循环。又因为矩阵c没有进行过转置操作,所以则最终结果为person2item,算法结束运行。
[0061]
以上所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书所涵盖的精神时,仍应属本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1