不记得 theory 能给出的 result 有多强,但印象中应该不是 PRAS (polynomial-time randomized approximation scheme),所以老实说的确是没有很强的保证,不好好调参数效果也许还不如一个 log(n) 的 approximation algorithm。
其实用来用去人们似乎用得最多的还是最老的 Simulated annealing,其他新发明的只是 yet another (meta) heuristic,框架是差不多的: random search in a large (probably infinite solution space) and iteratively improve, hopefully find a good enough solution。他们跟普通搜索方法的最重要区别在于,都有一定的机制跳出 local optima。
“In general, all metaheuristic design should return to a situation in which methods are developed based on insight into the structure of the problem.”出自Metaheuristics - the Metaphor Exposed。
能肯定的是:脱离问题而设计的算法都是没有存在意义的。不管是群智能、进化算法甚至是数学规划领域的方法。
只是群智能算法“偏离问题”的程度有点过了。
一个逼格满满的比喻就可以标榜为创新,加上这类算法实现框架大同小异,coding难度低,发文章又全靠最后的实验数据,而且代码还可以不用贴出来,可想而知灌水是有多容易了。找些benchmark问题跑跑,对比一下自己写出的“别人的算法”,这里面的猫腻可想而知。
当然如果有类问题确实可以用蟑螂算法解出来比其它算法都好的,那么这样的发现还是有一定价值的,只是这种文章真的很少,有这样的发现也很难。
话虽这么说,但是Metaheuristics在OR圈还是非常重要且很有存在价值的领域。这个领域的创始者Fred Glover拿过冯诺依曼理论奖。他Informs上的简介:Fred W. Glover