跳转至

Lec 6. Backtracing

约 20 个字 29 行代码 预计阅读时间不到 1 分钟

Turnpike Reconstruction Problem

WIP

Alpha-beta Pruning

推荐阅读

Example
int alphabeta(Node* node, int alpha, int beta, int is_max) {
    if(node->is_leaf) return node->value;

    if(is_max) {
        // max node
        for(int i = 0; i < node->child_amount; i ++) {
            Node* child = node->children[i];
            alpha = max(alpha, alphabeta(child, alpha, beta, !is_max));
            if(alpha >= beta) break;
        }
        return alpha;
    } else {
        // min node
        for(int i = 0; i < node->child_amount; i ++) {
            Node* child = node->children[i];
            beta = min(beta, alphabeta(child, alpha, beta, !is_max));
            if(alpha >= beta) break;
        }
        return beta;
    }
}

int main() {
    Node *root = read_tree();
    int result = alphabeta(root, INT_MIN, INT_MAX, 1);
    printf("%d\n", result);

    return 0;
}

评论区