“十滴水”游戏——求解算法挑战赛:模拟退火,用Javascript跑

过节了,大家都出去玩,也没人写文章了,我来发个刺激的:在浏览器里用 Javascript 跑十滴水游戏的求解计算。够刺激吧?进来试试!

前面有人用过启发式搜索、遗传算法等,我尝试了一下模拟退火算法,性能还真是不错。只要你让机器一直跑下去,总能找到全局最优。这里为了节省时间,我设定了一个上限,达到上限后就退出,返回当前得到的最优解,大部分情况下都能得到全局最优解。

 

一、数据格式:

空位置用 0 代表

最小的水珠用 1 代表

以此类推

最大的水珠用 4 代表

声明:为本文为原创文章,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处博客园

 

按照从左到右,从上倒下的顺序,每六个数字用空格分隔开,例如:

024020 210202 313220 114323 444022 033343

 

二、水滴数

默认10,可以不设置,设置后可以正确计算剩余水滴数

 

三、性能

建议在 Chrome 里面跑,不是特别麻烦的局面一般一分钟内都能求解。

因为在浏览器来显示了实时计算信息,所以影响了一些性能,否则速度还可以在提高不少,但是那样的话就会出现浏览器假死的状态,界面不太友好。

一分钟不到的时间不算长,我想大家应该能接受吧。

对不起IE用户:不知道为什么,用 IE 跑会立即出错,可能 IE9 可以跑起来,但是没试过

数据:
水滴数:

 

声明:为本文为原创文章,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处博客园 

//==================================================

你可能感兴趣的:(“十滴水”游戏——求解算法挑战赛:模拟退火,用Javascript跑)