下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用修正单纯形法解线性规划问题软件示意:二 代码说明:Dim A(1 To 3, 1 To 6) As Double ' 矩阵 ADim a1(1 To 3) As Double Dim a2(1 To 3) As Double Dim a3(1 To 3) As DoubleDim a4(1 To 3) As Double Dim a5(1 To 3) As DoubleDim a6(1 To 3) As Double矩阵 A 的第一列向量 矩阵 A 的第二列向量 矩阵 A 的第三列向量 矩阵 A 的第四列向量 矩阵 A 的第五列向量 矩阵 A 的第六列向量Dim B_(1 To 3
2、, 1 To 3) As Double '基矩阵 B 的逆矩阵Dim XB(1 To 3) As Double ' 基本可行解Dim b(1 To 3) As Double ' 右端向量 bDim C(1 To 6) As Double 'Dim CB(1 To 3) As Double检验数基本可行解对应的检验数Dim (1 To 3) As Double ' 单纯形乘子矢量Dim r(1 To 6) As Double ' 检验矢量 rDim r_min As Double ' 检验矢量最小值Dim k_sign As Integer
3、 '检验矢量最小值对应的位置Dim Y(1 To 3, 0 To 6) As Double ' 矩阵 yDim just_vector(1 To 3) As DoubleDim liji_min As Double ' 用于判断离基变量所用值Dim r_sign As Integer ' 用于记录离基变量对应的位置Dim main_yuan As Double ' 用于存放主元Dim Erk(1 To 3, 1 To 3) As DoubleDim Exchange_B(1 To 3, 1 To 3) '在矩阵 Erk 与矩阵 B_进行乘法运算时
4、,作为矩阵 B_的替换矩阵Dim Exchange_XB(1 To 3) ' 在矩阵 Erk 与 XB_进行乘法运算时,作为 XB_的替 换矩阵Dim iterative_time As Integer ' 定义迭代的次数窗口 1开始了迭代循环Dim XB_optimization(1 To 6) As Double '最优解Private Sub Command1_Click()'For iterative_time = 1 To 1000 ' Select Case k_signCase 1If (r_sign - 3) = 3 ThenCB(1)
5、= C(2) ' 付值给基本可行解对应的检验数CB(2) = C(3)CB(3) = C(6)XB_optimization(1) = 0XB_optimization(2) = XB(1)XB_optimization(3) = XB(2)XB_optimization(4) = 0XB_optimization(5) = 0XB_optimization(6) = XB(3) End IfCase 2If (r_sign - 3) = 1 ThenCB(1) = C(2) ' 付值给基本可行解对应的检验数CB(2) = C(5)CB(3) = C(6)XB_optimiza
6、tion(1) = 0XB_optimization(2) = XB(1)XB_optimization(3) = 0XB_optimization(4) = 0XB_optimization(5) = XB(2)XB_optimization(6) = XB(3)End IfCase 3If (r_sign - 3) = 2 ThenCB(1) = C(2) ' 付值给基本可行解对应的检验数CB(2) = C(3)CB(3) = C(6)XB_optimization(1) = 0XB_optimization(2) = XB(1)XB_optimization(3) = XB(2)
7、XB_optimization(4) = 0XB_optimization(5) = 0XB_optimization(6) = XB(3)End IfEnd SelectFor i = 1 To 3 ' 计算单纯形乘子矢量(i) = CB(1) * B_(1, i) + CB(2) * B_(2, i) + CB(3) * B_(3, i) Next iFor j = 1 To 6 ' r(j) = C(j) - ( j)Next j计算检验矢量 r(1) * A(1, j) +(2) * A(2, j) +(3) * A(3,r_min = r(1) '预先给定一个
8、值k_sign = 1For i = 1 To 6 '找出最小检验值If (r(i) < r_min) Thenr_min = r(i) '最小检验值k_sign = i '最小检验值所在位置 , 对应进基矢量位置End IfNext iIf r_min < 0 ThenFor i = 1 To 3 'Y(i, k_sign)+ B_(i, 3) * A(3, k_sign) Next i对应进基矢量所得的 y 值= B_(i, 1) * A(1, k_sign) + B_(i, 2) * A(2, k_sign)For i = 1 To 3
9、9; 确定离基变量If Y(i, k_sign) <> 0 Then just_vector(i) = Y(i, 0) / Y(i, k_sign)End IfNext iFor i = 1 To 3If (just_vector(i) > 0 Then liji_min = just_vector(i) ' Exit ForEnd IfNext i预先给定一个值r_sign = 4 For i = 1 To 3 ' 找出最小检验值If (just_vector(i) <= liji_min) And (just_vector(i) > 0)The
10、nliji_min = just_vector(i) r_sign = i + 3 'End IfNext i最小检验值最小检验值所在位置 , 对应进基矢量位置main_yuan = Y(r_sign - 3, k_sign) If main_yuan <> 0 ThenSelect Case (r_sign - 3) '计算矩阵 ErkCase 1Erk(1, 1) = 1 / main_yuanErk(2, 1) = -Y(2, k_sign) / main_yuanErk(3, 1) = -Y(3, k_sign) / main_yuan For i = 2
11、To 3For j = 1 To 3 Erk(j, i) = A(j, i + 3)Next jNext iCase 2Erk(1, 2) = -Y(1, k_sign) / main_yuanErk(2, 2) = 1 / main_yuanErk(3, 2) = -Y(3, k_sign) / main_yuan For j = 1 To 3Erk(j, 1) = A(j, 4) Next j For j = 1 To 3Erk(j, 3) = A(j, 6) Next jCase 3Erk(1, 3) = -Y(1, k_sign) / main_yuanErk(2, 3) = -Y(2
12、, k_sign) / main_yuanErk(3, 3) = 1 / main_yuanFor i = 1 To 2For j = 1 To 3 Erk(j, i) = A(j, i + 4)Next jNext iEnd SelectEnd IfFor i = 1 To 3 '给矩阵 Exchange_B(i, j) 付值For j = 1 To 3Exchange_B(i, j) = B_(i, j)Next jNext iFor i = 1 To 3 '计算 B 的新可逆矩阵 B_For j = 1 To 3B_(i, j) = Erk(i, 1) * Exchang
13、e_B(1, j) + Erk(i, 2) Exchange_B(2, j) + Erk(i, 3) * Exchange_B(3, j)Next jNext iFor i = 1 To 3 '给 Exchange_XB(i) 付值Exchange_XB(i) = XB(i)Next iFor i = 1 To 3 ' 计算基本可行解XB(i) = Erk(i, 1) * Exchange_XB(1) + Erk(i, 2) Exchange_XB(2) + Erk(i, 3) * Exchange_XB(3)Y(i, 0) = XB(i)Next iElseMsgBox (&
14、quot; 优化完毕 !")Exit ForEnd IfNext iterative_timeCommand2.Enabled = True ' 使能按钮Command3.Enabled = True ' 使能按钮Form1.Text1(1).Text =XB_optimization(1) '显示最优解x1Form1.Text1(2).Text =XB_optimization(2) '显示最优解x2Form1.Text1(3).Text =XB_optimization(3) '显示最优解x3Form1.Text1(4).Text =XB_
15、optimization(4) '显示最优解x4Form1.Text1(5).Text =XB_optimization(5) '显示最优解x5Form1.Text1(6).Text =XB_optimization(6) '显示最优解x6Form1.Text1(0).Text= C(1) *XB_optimization(1)+C(2) *XB_optimization(2)+ C(3) *XB_optimization(3)+C(4) *XB_optimization(4)+ C(5) *XB_optimization(5)+C(6) *XB_optimizatio
16、n(6) '显示最优值 ZForm1.Text1(7) = iterative_time - 1 '显示迭代次数End SubPrivate Sub Command2_Click()End ' 结束程序End SubPrivate Sub Command3_Click()Form1.Show ' 调用优化结果显示窗口 End SubPrivate Sub Form_Load()Dim i, j As IntegerFor i = 1 To 3 '付值给系数矩阵 A付值给系数矩阵 AFor j = 1 To 6A(i, j) = Quotiety_A(j
17、+ 6 * (i - 1).Text 'Next jNext iFor i = 1 To 6 '将矩阵 A 列分块( a1,a2,a3,a4,a5,a6For j = 1 To 3 Select Case iCase 1 a1(j) = A(j, i)Case 2 a2(j) = A(j, i)Case 3 a3(j) = A(j, i)Case 4 a4(j) = A(j, i)Case 5 a5(j) = A(j, i)Case 6 a6(j) = A(j, i)End SelectNext jNext iFor i = 1 To 3 ' 付值给基矩阵 B的逆矩阵
18、B_For j = 1 To 3 Select Case iCase 1 B_(j, i) = a4(j)Case 2 B_(j, i) = a5(j)Case 3 B_(j, i) = a6(j)End SelectNext jNext iFor i = 1 To 6 '付值给检验数Select Case iCase 1C(1) = C_quotiety(0).TextCase 2C(2) = C_quotiety(1).TextCase 3C(3) = C_quotiety(2).TextCase 4C(4) = C_quotiety(3).TextCase 5C(5) = C_quotiety(4).TextCase 6C(6) = C_quotiety(5).TextEnd Select付值给右端向量 bNext i b(1) = b_quotiety(0).Textb(2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店客房设备采购与供应商管理制度
- 酒店财务预算管理制度
- 济宁线下培训班
- 枪支培训工作汇报
- 松花粉培训课件
- 2024-2025学年山东省聊城市高一下学期期中考试历史试题 (解析版)
- 2026年网络系统管理与维护实操指南安全与管理试题集
- 2026年金融投资顾问招聘考试模拟题
- 2026年化学工程安全与环保知识试题集
- 2026年环境心理学与人力资源管理压力管理与激励机制测试题
- 2026四川凉山州雷波县粮油贸易总公司面向社会招聘6人备考题库及答案详解一套
- 四川省攀枝花市2025-2026学年八年级上学期期末数学检测(含答案)
- 劳动人事法律培训课件
- 2026中国电信四川公用信息产业有限责任公司社会成熟人才招聘备考题库参考答案详解
- 清真生产过程管控制度
- 途虎养车安全培训课件
- 2025-2026学年人教版(新教材)小学数学二年级下册(全册)教学设计(附教材目录P161)
- 物业小区春节前安全培训课件
- 刷单协议书合同范本
- 内科学总论小儿遗传代谢病课件
- 2026小红书平台营销通案
评论
0/150
提交评论