1.枚举法
枚举出可行解集合内的所有可行解,以求出精确最优解。
对于连续函数,该方法要求先对其进行离散化处理,这样就可能因离散处理而永远达不到最优解。
当枚举空间比较大时,该方法的求解效率比较低,有时甚至在目前先进计算工具上无法求解。
2.启发式算法
寻求能产生可行解的启发式规则以找到一个最优解或近似最优解。
该方法求解效率较高,但对每一个需求解的问题必须找出其特有的启发式规则,这个启发式规则一般无通用性,不适合于其他问题。
现阶段,启发式算法以仿自然体算法为主,主要有蚁群算法、模拟退火法、神经网络等。
3.搜索算法
寻求一种搜索算法,该算法在可行解集合的一个子集内进行搜索操作,以找到问题的最优解或者近似最优解。
该方法虽然保证不了一定能够得到问题的最优解,但若适当地利用一些启发知识,就可在近似解的质量和效率上达到一种较好的平衡。主要有广度优先搜索(BFS), 深度优先搜索(DFS), 爬山法(Hill Climbing), 最佳优先算法(Best-first search strategy) , 回溯法 (Backtracking), 分支限界算法(Branch-and-bound Search Algorithm), A*算法