国际象棋马走全盘(骑士周游))的C++搜索

来源:互联网 发布:一些网络用语的意思 编辑:程序博客网 时间:2024/05/04 10:11

 


成功的方案
  1. 每步8种移动方案进行系统扫描,每步可行,则去下一步。总共可能的扫描估计超过10的100次方天文数字。永远算不完。

  2. 8种移动方案先后探测排序对出结果的时间极为有影响力,有些排序最快不到1秒,有些排序在可能的己酸时间内,永远不能出现结果。或者据按照我目前的2GHz单芯片电脑,要超过2千多年才把全部可能的解找到。

  3. 搜索过程进行优化,比如死角超过2个,或者某个出口连接超过一个的死角即停止继续。节省很多搜索时间。可能还有其他节省方案,但未成功

  4. 任何起始点都可以找到答案。终结点以边角居多,但是不知道同时规定起始和终结之后,是否找到答案。

  5. 一旦某种排序帮助得到结果,得到的结果至少上千万,总共可能的方案是未知数。

  6. 对于所有排序的组合方案检查,大约32%的排序不到3秒钟即可得到结果。

  7. 用随机排序调查,

    40.7%的排序30秒内可获得答案。29%是不到1秒之内获得;2.1%是2秒钟内获得。2.1是2-3秒钟内获得。1.2%是3-4秒内获得。0.4%为4-5秒内,0.5%为4-6秒内,0.52%为6-7秒内,0.58%为7-8秒内,
    0.58%为8-9秒内,0.32%为9-10秒内,0.525%为10-11秒内,0.05%为11-12秒内,0.16%为12-13秒内,0.05%为13-14秒内,0.16%为14-15秒内,0.16%为15-16秒内,0%为16-17秒内,0.16%17-18秒内,0%为18-19秒内,0%为19-20秒内,0.21%为20-21秒内,0.05%为21-22秒内,0.10%为22-23秒内,0.26%为23-24秒内,0.05%为25-26秒内,0.05%为26-27秒内,0.21%为27-28秒内,0.10%为28-29秒内,0.05%为29-30秒内,

  8. 最快速度的方案:就是尝试某种随机排序方案,当CPU超过2秒钟时,则停止,并且换一种搜索,知道能找到答案。目前最多45次,0-88秒即可找到答案

  9. 如果每步用不同的随机搜索排序,则失败的机会明显增多

  10. 以半分钟为限作统计,在成功的搜索中,约68%的排序需要少于1秒钟即可找到答案

  11. 更换排序次数和成功规律的分布,已经成功所需要的CPU时间,待查


当第一个棋子放在5行4列时,对于随即寻找的答案,最后一步的分布如下(%)

对于某个特殊的搜寻,经过发现1千万个解之后,分布如下面第二张

下面是在每次尝试不超过1s的情况下,尝试次数的分布

 

成功的尝试次数分布

原创粉丝点击