unity数字地球
https://blog.csdn.net/qq_34593985/article/details/110633018
http://www.360doc.com/content/11/0522/13/6990087_118542269.shtml
https://blog.csdn.net/lin5165352/article/details/121977488
推一篇象棋AI的论文
《中国象棋计算机博弈数据结构与评估函数的研究和实现》
https://www.docin.com/p-902935944.html
minimax算法
中国象棋(Chinese Chess, 也称为Xiangqi)的AI算法中,Minimax算法是一个常用的方法。Minimax算法用于决定AI的下一步行动,通过递归地评估所有可能的移动,选择最佳的一步。下面是Minimax算法的基本伪代码: function minimax(node, depth, maximizingPlayer) is if depth == 0 or node is a terminal node then return the heuristic value of node if maximizingPlayer then value := -infinity for each child of node do value := max(value, minimax(child, depth - 1, false)) end for return value else value := +infinity for each child of node do value := min(value, minimax(child, depth - 1, true)) end for return value 在这个基本的伪代码中: - `node` 是当前的棋盘状态。 - `depth` 是搜索的深度,通常是预先设定的一个值。 - `maximizingPlayer` 是一个布尔值,如果为 `true`,则当前玩家是最大化玩家;如果为 `false`,则当前玩家是最小化玩家。 在实际的中国象棋AI中,你可能还会使用一些优化技术,比如alpha-beta剪枝,以减少搜索的节点数并加速算法。此外,你也需要一个启发式函数来评估棋盘状态的价值,这通常基于棋盘上的棋子类型和位置。
minimax加alpha-beta剪枝
当结合alpha-beta剪枝的时候,Minimax算法可以更高效地搜索决策树。alpha-beta剪枝通过跳过那些不可能影响最终决策的分支来减少搜索的节点数。以下是结合alpha-beta剪枝的Minimax算法的伪代码: function minimax(node, depth, alpha, beta, maximizingPlayer) is if depth == 0 or node is a terminal node then return the heuristic value of node if maximizingPlayer then value := -infinity for each child of node do value := max(value, minimax(child, depth - 1, alpha, beta, false)) alpha := max(alpha, value) if alpha >= beta then break // beta cut-off end if end for return value else value := +infinity for each child of node do value := min(value, minimax(child, depth - 1, alpha, beta, true)) beta := min(beta, value) if beta <= alpha then break // alpha cut-off end if end for return value 在这个伪代码中: - `alpha` 是当前已知的最好的最大化玩家的选项,开始时通常设置为负无穷大。 - `beta` 是当前已知的最好的最小化玩家的选项,开始时通常设置为正无穷大。 当你在搜索过程中发现一个分支的当前最小值(对于最小化玩家)已经小于或等于当前已知的最大值(对于最大化玩家),或者当前最大值(对于最大化玩家)已经大于或等于当前已知的最小值(对于最小化玩家),那么你可以停止进一步搜索这个分支,因为这个分支不会影响最终的决策。这就是alpha-beta剪枝的基本思想。
Alpha-Beta剪枝通常不与广度优先遍历结合使用,因为Alpha-Beta剪枝是一种深度优先搜索算法,它依赖于递归地探索游戏树的深度。广度优先遍历则是一种逐层遍历树的算法,通常不适用于Alpha-Beta剪枝的情况。
Alpha-Beta剪枝通常与深度优先搜索或迭代深化搜索结合使用,以便在有限的时间内搜索尽可能深的层次,并且在搜索过程中进行剪枝以减少不必要的计算。
@Data
https://blog.csdn.net/xsq123/article/details/125352796
@bean和@Component的区别
https://blog.csdn.net/CW_SZDX/article/details/106868298
@EnableAspectJAutoProxy(exposeProxy = true)
https://blog.csdn.net/u013720069/article/details/112025020
@ComponentScan(basePackages = {"com.xxxxx"})
https://blog.csdn.net/m0_45406092/article/details/115700557
maven从本地仓库读取jar包
https://blog.csdn.net/weixin_41849346/article/details/126484875
https://blog.csdn.net/fp_growth_disp/article/details/75832266
https://blog.csdn.net/fengqing5578/article/details/82854495
maven 打包到本地仓库install、package
https://blog.csdn.net/clarence_pang/article/details/89703633
maven报错输出stacktrace
@EnableFeignClients
https://blog.csdn.net/u012734441/article/details/78256256
@Slf4j
https://blog.csdn.net/jiapengcs/article/details/73359918
SpringFramework,SpringBoot,SpringCloud
https://blog.csdn.net/weixin_46486966/article/details/106993220
模块和构件的区别
https://bbs.csdn.net/topics/30137759
数据源
暂无关于此日志的评论。