一. 单纯形法学习的参考资料:
运筹学教学|十分钟快速掌握单纯形法(附C++代码及算例) (qq.com)
运筹说 第16期 | 线性规划硬核知识点梳理—单纯形法 - 知乎 (zhihu.com)
史上最详细单纯形法—从理解到计算(带约束规划问题) - 知乎 (zhihu.com)
主要理解其思想应该是对暴力求解法的改进
首先若一个线性规划存在最优解,则该解一定存在一个顶点上,图解法就是计算每一个顶点再判断
而单纯形法通过初始化一个基可行解(即确定一个顶点),判断该顶点是否是最优,不是的话则按照一定方向从该顶点移动到相邻的顶点再判断
所以整体的求解步骤应该是:
1. 先将问题化为线性规划标准型,如果系数矩阵中不直接存在单位矩阵,可以通过大M法和两阶段法构造;
2. 通过单位矩阵确定基可行解,并判断该可行解是否最优,若是则直接跳出,否则步骤3;
3. 按照一定的方向出基,入基,也就是从该顶点移动到相邻顶点
4. 再次判断该顶点是否是最优,并重复迭代
也就是说,暴力法不一定保证接下来探索的顶点比之前的好,但单纯形法可以做到以后的一定比之前好!(但仍然不是多项式时间的)
单纯形法的重点在于,如何判断可行解是否最优,如何确定顶点移动的方向,这两个都是通过矩阵相关来证明的,我没看懂。。。
等补一补矩阵论再回头来看证明吧
二. 迭代局部搜索:
这个启发式算法的思想其实就是局部搜索+扰动
核心代码如下
标签:判断,迭代,单纯形法,搜索,顶点,最优,com From: https://www.cnblogs.com/sun-secretbase/p/17552963.html