本程序使用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$时间内找到最优解,随机重启爬山法由于在达到迭代次数后随机重启,在时间上,似乎要优于最小冲突法。