AI算法 每日算法 — 使用java实现六角棋:虚拟连接扩展与H-search威胁树求解 六角棋(Hex)的棋盘是菱形排列的六边形格,双方各自连接自己的两条对边,谁先连成通路谁赢。规则简单到可以用一句话说完,但它的求解难度极高——甚至被证明是 PSPACE...
AI算法 每日算法 — 使用java实现字母骰子Boggle:邻接图DFS与字典前缀剪枝 一、Boggle 的搜索空间到底有多大 Boggle(字母骰子)的玩法极其简单:把 16 颗骰子摇进 4×4 的格子,玩家在 3...
AI算法 每日算法 — 使用java实现铁路大亨:最小费用最大流与列车冲突消解 一、经营类游戏真正的算法内核 铁路大亨(Railroad Tycoon)这类运输经营游戏,表面的玩法是"铺轨道、买车头、看列车跑",但决定胜负的其实是三个数学问题:...
AI算法 每日算法 — 使用java实现七大奇迹:轮抽期望估值与支配剪枝 一、轮抽类桌游为什么需要"搜索 + 估值" 七大奇迹(7 Wonders)是典型的轮抽(drafting)游戏:每人开局 7 张牌,取 1 张传给左手边,同时从右手边接过对方传出的 7...
AI算法 每日算法 — 使用java实现生命游戏:HashLife四叉树记忆化与亚线性时间推演 一、一个反直觉的问题 康威生命游戏(Conway's Game of Life)的规则只有四条,一个初中生能在五分钟内完全掌握。但如果你要让它在 30×30 的有限棋盘上跑 10...
AI算法 每日算法 — 使用java实现黑白棋:Gumbel-Top-k采样与PUCT策略引导搜索 一、MCTS 的老问题:探索得太"笨" 黑白棋(Reversi / Othello)是搜索算法的经典练兵场:8×8 棋盘、规则五分钟学会、但分支因子在开局高达...
AI算法 每日算法 — 使用java实现推箱子:SMA星内存受限搜索与节点选择性遗忘 一、一个被忽视的维度:内存 谈到搜索算法,我们习惯只盯着两个指标:时间和解的质量。但真实项目里往往还有第三个硬约束——内存。...