对偶行法求解线性规划C#实现
线性规划的对偶行法实现,C#版本的,结构清晰、思路明了,适合刚接触线性规划算法或者需要动手做一版的朋友。代码主要是围绕对偶问题展开的,怎么初始化、怎么构造单纯形表、怎么选基、怎么迭代更新,全都写得蛮清楚。
源码放在了压缩包DuiOuXingLinprog
里,直接解压就能跑。用的是.NET 的System.Numerics
来搞矩阵运算,速度还挺快的,数值也比较稳定。建议你动手跑一跑,更容易理解背后的数学逻辑。
对偶问题其实有点像原问题的“镜子”,你从另一个角度去看问题,有时候反而更容易收敛,是原问题不好直接解的时候。代码里也考虑了这一点,加入了松弛变量和收敛判断。整体架构不复杂,逻辑挺通顺,调试也不难。
如果你正好在研究线性规划
或单纯形法
,不妨也看看这些资料:原始单纯形法、simplex-algorithm。顺带一提,遗传算法的线性规划实现也挺有意思,适合做算法对比。
哦对了,如果你打算在自己项目里用这套代码,记得先测一下数值边界,尤其是约束矩阵比较大的时候,稳定性还是得靠你自己多试几组数据。
27.03KB
文件大小:
评论区