मेरे पास अल्फा-बीटा छंटनी का मूल कार्यान्वयन है लेकिन मुझे नहीं पता कि चाल आदेश में सुधार कैसे किया जाए। मैंने पढ़ा है कि इसे एक उथली खोज, पुनरावृत्ति गहराई या संक्रमण तालिका में सबसे अच्छा बनाने के साथ किया जा सकता है।अल्फा-बीटा स्थानांतरण
कोई सुझाव है कि इस एल्गोरिदम में इन सुधारों में से किसी एक को कैसे कार्यान्वित किया जाए?
public double alphaBetaPruning(Board board, int depth, double alpha, double beta, int player) {
if (depth == 0) {
return board.evaluateBoard();
}
Collection<Move> children = board.generatePossibleMoves(player);
if (player == 0) {
for (Move move : children) {
Board tempBoard = new Board(board);
tempBoard.makeMove(move);
int nextPlayer = next(player);
double result = alphaBetaPruning(tempBoard, depth - 1, alpha,beta,nextPlayer);
if ((result > alpha)) {
alpha = result;
if (depth == this.origDepth) {
this.bestMove = move;
}
}
if (alpha >= beta) {
break;
}
}
return alpha;
} else {
for (Move move : children) {
Board tempBoard = new Board(board);
tempBoard.makeMove(move);
int nextPlayer = next(player);
double result = alphaBetaPruning(tempBoard, depth - 1, alpha,beta,nextPlayer);
if ((result < beta)) {
beta = result;
if (depth == this.origDepth) {
this.bestMove = move;
}
}
if (beta <= alpha) {
break;
}
}
return beta;
}
}
public int next(int player) {
if (player == 0) {
return 4;
} else {
return 0;
}
}
प्रश्न में कोड नमूना दिया गया है, तो क्या आप कृपया एक संभावित कार्यान्वयन या सॉर्टिंग प्रदान कर सकते हैं (इसलिए सॉर्टिंग सूची पर क्रमबद्ध रूप से क्रमबद्ध और कॉलिंग दोनों)? मैं इसे लागू करने के तरीके पर उलझन में हूं। – FedericoCapaldo