摘要:{最近向 我不容易 学习了遗传算法他是专门研究这智能搜索这一方面的 水平很高在我用ID算法解决"十滴水"小游戏时他用遗传算法也写了 很强大我用从他那所学的遗传算法 写了一个01背包问题的程序}01背包问题 大家应该很熟悉是背包问题的一种不过值得注意的是背包问题是NPH问题(如果容量和体积是整数且有范围的话 自然用DP可以很好的解决)对于此类没有多项式复杂度算法的问题我们一般用搜索解决对于01背包问...
阅读全文
摘要:{承上篇介绍一下对于bloxorz的程序解决方法Bloxorz果然是这几个游戏中最奇妙 最有趣 最复杂的这几天净绕着这个程序转了不堪回首}//建议玩一玩之后再行阅读本文BloxOrz据某神解释 Blox就是方块 Orz就是你玩不出来的状态这名字好邪恶刚推出的时候号称全世界就4个人玩的过我下载手动通关也就3个小时左右相当自豪啊 不过当时好像Orz了几次 都撑过去了当时没想过去用程序做现在想到了 就试...
阅读全文
摘要:{Bloxorz的程序突然出现了bug调试得郁闷不过这也算是好事吧先做了几道计算几何学了2个基本的计算几何方法}计算几何有一个基本的问题就是判断线段相交这里介绍2种方法一种是“外积”法 另一种是求交点先讲"外积"法这里的叉积好像有点不伦不类 说是外积吧 求出来却是一个纯量说不是吧 又好像有外积求模的影子 似乎是外积的简化吧不扯了 我就用*号代替×号好了(本来计算...
阅读全文
摘要:{我们用BFS解决了华容道事实上也有比较难搜的puzzle比如十滴水 Drops我们需要选用其他方法}十滴水是一个相当简约耐玩的小游戏建议写程序之前好好玩玩争取发现一个牛B的启发函数(至少我没找到好的 只能裸搜之 有了牛B的启发函数会很爽 下面会提到)状态空间相当巨大如果把加入一滴水算作一步每个状态可以生成36种子状态 当dep=4时 节点数是160w 当dep=5时 节点数是6000w 当...
阅读全文
摘要:{本文结合几个puzzle小游戏的解答浅述几种搜索思想的具体应用程序可能有不完善之处请指出第一部分 谈一下华容道的搜索}华容道大家应该不会陌生游戏取材于历史 题材很好 设计得也很巧妙我很弱 玩不过几关就想到的用搜索来暴力暴力也不能硬搞要先好好分析 再下手由于这是一个具体的实际问题先考虑用什么搜索方法 我用的是BFS 这样方便得出最优解 每次的选择也就2种左右 多数只有1种走法 而且步骤最多的...
阅读全文
摘要:{其实 能用BFS和A*解决的搜索问题很多比如有一个很simple的骑士巡游问题就可以这么做本文只是贴个代码 狗尾续貂 扩充一下以后有类似的问题也会在这篇文章里补充}原题 http://acm.pku.edu.cn/JudgeOnline/problem?id=1915 //2243与这个题基本类似 注意读入输出的细节用裸BFS 双向BFS A*皆可如果用A*应该自己试着去构造一些启发函数多多尝...
阅读全文
摘要:{这一节继续对Pku1077进行讨论附带在Zju1217上的测试Zju1217数据更强 还是多测 比较能反映问题}8数码问题另一种比较优秀的算法是A*算法A*算法是一种基于贪心思想的搜索算法A*算法总能在访问较少的节点的同时找到一组较优解我们搜索总是在遍历一颗搜索树譬如BFS就是进行层次遍历 DFS是先序遍历BFS优先选择深度低的节点扩展 DFS优先选择深度高的扩展我们运用BFS解决8数码问题是因...
阅读全文
摘要:{最近在搞搜索学习了一些技巧还重写了以前一个8数码问题写了一个裸搜 一个双向宽搜 还有一个A*这一部分先讨论BFS的内容}原题 http://acm.pku.edu.cn/JudgeOnline/problem?id=1077题意 8数码问题 很经典 读入是一行一个串 忽略空格 1 2 3 1 2 3 x 4 6 7 5 8 <=> x 4 6 ...
阅读全文