📄 readme.txt
字号:
程序实现为两阶段法,解矩阵没有才用改进单纯形法,只是每次使用O(k*n*m)复杂度的朴素算法实现,nm为矩阵长宽.k为迭代次数.使用bland法则克服退化.
可以解决变量个数<=10,约束条件<=10下的线性规划问题(规模较小),输入比较复杂,不支持文件输入,支持文件输出.
具体关于编写单纯形法的思想等这里不做累述.
程序为MFC编写 IDE为VC7.0.net
/debug/*.exe为执行文件 也可重新编译生成
.sln文件为工程文件 infocalDlg.cpp为程序内核所在程序,其中CinfocalDlg::cal_max()为实现单纯形法函数
程序结束在其路径下有out.txt为数据输出文件.
使用程序注意:
程序有个MFC方面的问题,输入负数时,在敲入负号时不要管去弹出的提示框,确定后敲一下→键继续输入数字部分.造成的不便日后会得到改进.
多行约束条件要注意每行都要LineConfirm一次,最后一次之后便激活ReadyToCalculate键,点击即得到结果.
简单测试数据:
1:
Min Z = -3.00000*X1 + 1.00000*X2 + 1.00000*X3
1.00000*X1 + -2.00000*X2 + 1.00000*X3 <= 11.00000
-4.00000*X1 + 1.00000*X2 + 2.00000*X3 >= 3.00000
-2.00000*X1 + 1.00000*X3 == 1.00000
When
X1 = 4.00000 X2 = 1.00000 X3 = 9.00000
The target varible get Z = -2.00000
2:
Max Z = 2.00000*X1 + 3.00000*X2
1.00000*X1 + 2.00000*X2 <= 8.00000
4.00000*X1 <= 16.00000
4.00000*X2 <= 12.00000
When
X1 = 4.00000 X5 = 4.00000 X2 = 2.00000
The target varible get Z = 14.00000
张钊宁 200305018014
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -