我在調用以下函數時不斷收到錯誤。錯誤是輸出參數bestboard
(也可能是其他人)在調用searchTree.m期間未分配。Alpha beta修剪在matlab中的實現
function [alpha,bestboard] = searchTree(board,depth,alpha,beta,turn)
if(depth<=0)
alpha=calculateHeuristic(board,changeTurn(turn));
bestboard=board;
return
else
child=GenerateChild(board,turn);
a=size(child,3);
if(turn==2)
turn=changeTurn(turn);
for i=1:a
[score,aboard]=searchTree(child(:,:,i),depth-1,alpha,beta,turn);
if(score>alpha)
alpha=score;
bestboard=child(:,:,i);
end
end
return
else
for j=1:a
turn=changeTurn(turn);
[scor,bboard]=searchTree(child(:,:,j),depth-1,alpha,beta,turn);
if(scor<beta)
beta=scor;
bestboard=child(:,:,j);
alpha=beta;
end
end
return
end
end
錯誤總是在遞歸調用函數... – user1747975 2013-04-11 11:48:35