整个系列课的最后一周讲的是local search paradigm。local search基本上是一种随机算法,大体思路是随机找出一种解法,然后发现如果不够好的话,就微调一下现有的解法,得到一个微调后的解法(neighbor),然后重复这个过程,直到找到足够好甚至是最好的解法为止。
讲道理,这种思路挺容易让人想到bogo sort的——就是不停的试嘛。不过local search中比较重要的就是neighbor的选取了,bogo sort是没有这一步的。很显然local search不能保证得到最优解法,甚至很多时候连解法正确率都保证不了。所以很多时候用local search的话都需要手动设置中止条件,比如说你这程序都运行了24个小时了还没结束,那就赶紧把现有的已算好最优解法拿出来凑数吧,就当丑媳妇见公婆了。
举的采用local sort算法的例子是max cut和2-sat problem,老实说我都没怎么细听。
最后热烈庆祝算法课结束!可喜可贺可喜可贺。