运筹学从何学起?如何快速入门精确式算法?
相信各位小伙伴在看到运筹学时,第一反应肯定是:
前面我们聊过,如何学习启发式算法。那么今天就聊聊如何学习精确式算法吧。
和启发式算法不同的是,精确式算法不仅需要数学基础,还需要运筹基础,代码基础等。
所以相对来说精确式算法相对会难一些。但是当你学完整个知识体系,会发现,其实精确式算法也差不多是那些套路。而且比启发式算法更加固定。学习顺序可参照以下:
运筹学基础
首先需要学习的是运筹学基础,包括整数规划、单纯型法、混合整数规划、建模思想、常见的运筹学问题以及算法等。
推荐书籍:Operations Research Applications and Algorithms, Wayne L. Winston(书籍下载请在后台留言【运筹学书籍】不包括【】即可下载)。可参考的公众号文章(可按顺序学习)。
基础部分:
进阶部分:
求解器Solver
有了基础知识以后,就可以做更深入的学习。首先要熟悉至少一款商业求解器的使用以便能方便快速地对数学模型进行检验,包括后面学习更高级的精确算法,也要用到求解器。可参考的文章如下:
精确式算法-基础
有了运筹学的基础+求解器的熟悉使用,就可以开始精确式算法的学习了。这部分的算法包括最基础的branch and bound,column generation,branch and price,branch and cut,branch price and cut等等。可参考的文章如下:
精确式算法-进阶
学习了各种算法的原理和部分实现代码后,可以进一步学习这些算法如何应用到具体问题中的,以及一些更高级的技术,参考的文章如下:
Additional
此部分当作扫盲和了解:
目前该提纲是基于公众号已有文章进行整理的,可能还会有很多关于这方面知识没有涉及。也随时欢迎大家指正。毕竟小编也只是做了一个暑假这方面的研究而已。
最后的最后,祝大家学有所成。