回溯法
回溯虽然能解决这类问题,但这实际上是一种非常暴力的算法,我们必须对比所有可行方案,从而找到最优解。在物流算法中,我们将这类求解算法称之为精确算法。除此之外的精确算法还有割平面法、分支定界法、动态规划法等。
在实际应用中,由于精确算法的计算量会跟随问题规模的增大呈指数级增长,导致这类算法在现有计算设备中无法用于复杂的组合优化问题的求解。

长久以来,人们一直在寻找一种这类问题的通用解,使得我们不需要穷举所有的情况,就能直接找出问题的答案。比如:
如果一个人告诉你 13,717,421 可以写成两个较小的数的乘积,你想要知道这个说法是否正确的话,必须枚举出所有的情况,挨个数字尝试。但如果他告诉你,这个数可以写成 3607 乘上 3803,你只需要计算一次便可以知道他说的是对的。
在求质数时,我们可以用 2~√n 与 n 依次相除来判断 n 是否是质数,或者用筛掉质数的倍数的方式来过滤出质数,但我们并不能找到一个通用的公式,能直接计算出下一个质数是多少。
这类问题都属于不确定问题,由此引申出一个重要的数学难题------NP完全问题。这个我们下篇文章再与大家来介绍,小伙伴们可以先思考一下。