蛮力算法究竟是什么? (仅限于方法)
什么时候问题可以使用蛮力方法,何时不能?
当算法使用暴力法时,算法有哪些特征?
答案 0 :(得分:47)
1和3:蛮力意味着您将广泛地通过所有可能的解决方案。例如,在国际象棋比赛中,如果你知道你可以在两个动作中获胜,那么蛮力将通过所有可能的动作组合,而不考虑任何事情。因此,仍然可以考虑背后不能影响结果的小兵。
2:当你考虑一切时,问题很快就会失控。由于组合爆炸(太多情况需要考虑),国际象棋中的15次蛮力是不可能的。然而,考虑到“关于问题的知识”的更聪明的算法可以更进一步(提前20-30步)
编辑:澄清一下,蛮力是最简单(最愚蠢?)探索解决方案空间的方式。如果你有一个问题设置在countable空间(国际象棋移动是可数的,密码是可数的,连续的东西是不可数的)蛮力将探索这个空间考虑所有解决方案平等。在国际象棋的例子中,你想要对抗你的对手。这是通过一系列可移动的动作完成的。蛮力将经历所有一系列动作,但不太可能。不太可能这个词很重要,因为这意味着如果你对你的问题有所了解(你知道什么是不可能的解决方案,比如牺牲你的女王),你可以做得比蛮力更好。