/n-queens

Primary LanguageC++

n-queens

本程序使用C++编写,分别运用随机重启爬山法、CSP最小冲突法和遗传算法对n - queens问题进行求解

10 50 100 1000 10000
随机重启爬山法 0ms 0ms 1ms 15ms 5181ms
最小冲突法 0ms 0ms 0ms 12ms 6128ms
遗传算法 41ms 7601ms 17001ms \ \

该结果表明,在问题规模逐渐增大时,随机重启爬山法和最小冲突法表现良好,而遗传算法在规模大于100时会因非常容易陷入局部最优解。

随机重启爬山法和最小冲突法虽然也会陷入局部最优解,但是由于其算法的完备性,导致其可以在$n^2$时间内找到最优解,随机重启爬山法由于在达到迭代次数后随机重启,在时间上,似乎要优于最小冲突法。