如何并行化negamax算法?

时间:2018-02-25 16:55:00

标签: algorithm parallel-processing artificial-intelligence negamax

有没有办法并行化以下的negamax算法?

DECLARE @RecepientID varchar(20)='1|2';
DECLARE @LocationID varchar(20)='7|8|9|10';
DECLARE @BranchID varchar(20)='1|5|9';

create table #t (col1 smallint,col2 smallint,col3 smallint)

INSERT INTO #t(col1, col2, col3)
SELECT s1.nvalue, s2.nvalue , s3.nvalue
FROM  dbo.insSplit(@RecepientID, '|') s1,
      dbo.insSplit(@LocationID, '|') s2 ,
      dbo.insSplit(@BranchID, '|') s3;

select * from #t

1 个答案:

答案 0 :(得分:0)

当这样配制时,作为单个递归函数,不容易。

最简单的方法是将它分成两个函数:一个专门用于树的根的第一次调用,然后调用另一个函数,并递归地继续调用自身。在根版本中,您可以通过子项并行化循环,并将不同的值存储在列表中。然后你只需要一个非并行化的循环来找到列表中的最大值,但这将立即完成。

请注意,如果您继续进行alpha-beta修剪等增强功能,这将变得更加复杂;像我在这里建议的那样天真地并行化第一个循环将显着减少可以通过alpha-beta修剪修剪的节点数量