线性规划VB求解

Rem 定义动态数组
Dim a() As Single, c() As Single, b() As Single, cb() As Single
Dim aa() As Single, cba() As Single, xcb() As Integer, xb() As Integer
Dim m As Integer, n As Integer, l As Integer, k As Integer, cc As Integer, cm As Integer, ka As Integer
Dim qq As Single, tt As Single, z As Single Private Sub Command1_Click() Show
n = Val(InputBox("请输入线性规划典范型方程变量的个数 N=?", "输入数据", ))
m = Val(InputBox("请输入线性规划典范型方程约束条件的个数 M=?", "输入数据", )) Rem 给数组分配空间
ReDim a( To m + , To n + )
ReDim aa( To m + , To n + )
ReDim c(n)
ReDim b(m)
ReDim cb(m)
ReDim cba(n)
ReDim xcb(n)
ReDim xb(m) Rem 对线性规划约束方程增广矩阵A()进行归零计算
For i = To m +
For j = To n +
a(i, j) =
Next j
Next i Rem 输入线性规划约束方程系数矩阵A()
For i = To m
For j = To n
a(i, j) = Val(InputBox("请输入典范型方程约束条件矩阵的系数 a(" & Str(i) & "," & Str(j) & "):", "输入数据", ))
Next j
Next i Rem 输入线性规划约束方程右端常数B()
For i = To m
b(i) = Val(InputBox("请输入典范型方程约束条件右端的常数 b(" & Str(i) & "):", "输入数据", ))
Next i Rem 把右端常数写入增广矩阵A()中
For i = To m
a(i, n + ) = b(i)
Next i Rem 输入线性规划目标函数的系数C()
For i = To n
c(i) = Val(InputBox("请输入典范型方程目标函数的系数 c(" & Str(i) & "):", "输入数据", ))
Next i Rem 把目标函数的系数写入增广矩阵A()中
For i = To n
a(, i) = c(i)
Next i Rem 输入线性规划单纯形初始表中基变量在目标函数中的系数CB()
For i = To m
cb(i) = Val(InputBox("请输入线性规划单纯形初始表中基变量在目标函数中的系数CB(" & Str(i) & "):", "输入数据", ))
Next i Rem 把基变量目标函数的系数写入增广矩阵A()中
For i = To m
a(i, ) = cb(i)
Next i Rem 记录基变量下标值
For i = To m
xb(i) = Val(InputBox("请输入典范型方程第" & Str(i) & "行,基变量的下标:", "输入数据", ))
Next i Rem 检验数的累积数归零并计算检验数
For i = To n
cba(i) =
Next i
For i = To n
For j = To m
cba(i) = cba(i) + a(j, ) * a(j, i)
Next j
a(m + , i) = a(, i) - cba(i)
Next i Rem 计算目标函数值
z =
For i = To m
z = z + a(i, ) * a(i, n + )
Next i
a(m + , n + ) = z Rem 打印增广矩阵A()
For i = To m +
For j = To n +
Print a(i, j);
Next j
Print
Next i
Print Rem 判断所有检验数是否都小于等于零
cc =
For i = To n
If a(m + , i) <= Then
cc = cc +
End If
Next i Rem 统计检验数为零的个数
cm =
For i = To n
If a(m + , i) = Then
cm = cm +
End If
Next i Print "cc="; cc, "cm="; cm Rem 判断此单纯形表是否为最优单纯形表
Do While cc < n Rem 统计检验数最大值并确定进基列
qq = 0.00001
l =
For i = To n
If a(m + , i) > qq Then
qq = a(m + , i)
l = i
End If
Next i
Print
Print "l="; l, Rem 统计进基列上A(i,j)小于等于零的个数
ka =
For i = To m
If a(i, l) <= Then
ka = ka +
End If
Next i Rem 若各进基列上A(i,j)全都小于等于零,则本线性规划有无界解
If ka = m Then
Print "本线性规划有无界解!"
Print
Exit Do
End If Rem 计算比值θ并按最小比值准则确定出基行
For i = To m
If a(i, l) > Then
a(i, n + ) = a(i, n + ) / a(i, l)
End If
Next i tt =
k =
For i = To m
If a(i, l) > And a(i, n + ) < tt Then
tt = a(i, n + )
k = i
End If
Next i Print "k="; k
Print Rem 进行初等行变换时,对临时数组归零计算
For i = To m +
For j = To n +
aa(i, j) =
Next j
Next i Rem 确定枢轴元素,进行初等行变换
oo = a(k, l)
For i = To n +
aa(k, i) = a(k, i) / oo
Next i For i = To m
If i <> k Then
For j = To n +
aa(i, j) = a(i, j) + a(k, j) * (-a(i, l)) Next j
End If Next i Rem 把临时数组AA()的数据写到增广矩阵A()中去
For i = To m +
For j = To n +
a(i, j) = aa(i, j)
Next j
Next i a(k, ) = a(, l)
xb(k) = l Rem 检验数的累积数归零并计算检验数
For i = To n
cba(i) =
Next i
For i = To n
For j = To m
cba(i) = cba(i) + a(j, ) * a(j, i)
Next j
a(m + , i) = a(, i) - cba(i)
Next i Rem 计算目标函数值
z =
For i = To m
z = z + a(i, ) * a(i, n + )
Next i
a(m + , n + ) = z Rem 判断所有检验数是否都小于等于零
cc =
For i = To n
If a(m + , i) <= Then
cc = cc +
End If
Next i Rem 统计检验数为零的个数
cm =
For i = To n
If a(m + , i) = Then
cm = cm +
End If
Next i Rem 打印增广矩阵A()
For i = To m +
For j = To n + Print a(i, j); Next j
Print
Next i
Print Loop Rem 判断此单纯形表是否为最优单纯形表
If cc = n Then Rem 判断本线性规划有唯一最优解或者有多重最优解
If cm = m Then
Print "本线性规划有唯一最优解!"
Print "线性规划的最优解为:"
ElseIf cm > m Then
Print "本线性规划有多重最优解!"
Print "线性规划的最优值为:"
End If
End If Rem 打印线性规划的解和目标函数值
For i = To m Print "X(" & Str(xb(i)) & ")="; a(i, n + ), Next i
Print "其它变量为零。"
Print "Z="; a(m + , n + )
Print Rem 打印增广矩阵A()
For i = To m +
For j = To n + Print a(i, j); Next j
Print
Next i End Sub

线性规划VB求解的更多相关文章

  1. BZOJ3118 : Orz the MST

    对于树边显然只需要减少权值,对于非树边显然只需要增加权值 设i不为树边,j为树边 X[i]:i增加量 X[j]:j减少量 C[i]:修改1单位i的代价 对于每条非树边i(u,v),在树上u到v路径上的 ...

  2. 数值优化(Numerical Optimization)学习系列-文件夹

    概述 数值优化对于最优化问题提供了一种迭代算法思路,通过迭代逐渐接近最优解,分别对无约束最优化问题和带约束最优化问题进行求解. 该系列教程能够參考的资料有 1. <Numerical Optim ...

  3. Image Processing and Analysis_15_Image Registration:a survey of image registration techniques——1992

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  4. 数值优化(Numerical Optimization)学习系列-目录

    数值优化(Numerical Optimization)学习系列-目录 置顶 2015年12月27日 19:07:11 下一步 阅读数 12291更多 分类专栏: 数值优化   版权声明:本文为博主原 ...

  5. [转] 数值优化(Numerical Optimization)学习系列-目录

    from:https://blog.csdn.net/fangqingan_java/article/details/48951191 概述数值优化对于最优化问题提供了一种迭代算法思路,通过迭代逐渐接 ...

  6. Python小白的数学建模课-05.0-1规划

    0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...

  7. Python小白的数学建模课-06 固定费用问题

    Python 实例介绍固定费用问题的建模与求解. 学习 PuLP工具包中处理复杂问题的快捷使用方式. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达人. 前文讲到几种典型 ...

  8. [转]利用excel进行线性规划求解

                           利用线性回归方法求解生产计划 方法一: 1.建立数学模型: 设变量:设生产拉盖式书桌x台,普通式书桌y台,可得最大利润 ‚确定目标函数及约束条件 目标函 ...

  9. 使用python scipy.optimize linprog和lingo线性规划求解最大值,最小值(运筹学学习笔记)

    1.线性规划模型: 2.使用python scipy.optimize linprog求解模型最优解: 在这里我们用到scipy中的linprog进行求解,linprog的用法见https://doc ...

随机推荐

  1. C语言:互质

    今天遇到一道奇怪的程序题,和平常的不同.同样都是互质,但是一般的题目都是判断两个数字是否互质,但这道题则是给定一个数字n,要求输出所有小于等于n的与n互质的数,题目已经在下面给出: 质数与互质概念不是 ...

  2. java笔试面试第二天

    没想到第二次面试到了第二周,也是我在上海找工作的第二周,说实话,没有真本事找工作是真的难,虽然正在召开的十九大上,大大们纷纷表态国力正盛,经济稳步增长,就业压力逐渐缓解,但是社会终究是社会,要么靠实力 ...

  3. Jsp自学2

    Jsp简单来说就是java代码与Html代码的组合,类,方法,属性跟网页展示夹杂在一起.Jsp就是Servlet,但比Servle简单,不需要配置web.xml(当然也可以配置).Jsp由模板数据与元 ...

  4. PHP 面试官问:你说说Redis的几个过期策略?

    在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期.当设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的. 设置过期时间 expire ke ...

  5. 【最新发布】最新Python学习路线,值得收藏

    随着AI的发展,Python的薪资也在逐年增加,但是很多初学者会盲目乱学,连正确的学习路线都不清楚,踩很多坑,为此经过我多年开发经验以及对目前行业发展形式总结出一套最新python学习路线,帮助大家正 ...

  6. spring源码1

    1.beans核心类 1.DefaultListableBeanFactory xmlBeanFactory xmlBeanFactory继承自DefaultListableBeanFactory,D ...

  7. ESP8266 智能配网 断电重连

    ESP8266 智能配网 断电重连 #include <ESP8266WiFi.h> bool autoConfig() { WiFi.begin(); for (int i = 0; i ...

  8. .NET Core 获取数据库上下文实例的方法和配置连接字符串

    目录 .NET Core 获取数据库上下文实例的方法和配置连接字符串 ASP.NET Core 注入 .NET Core 注入 无签名上下文 OnConfigure 配置 有签名上下文构造函数和自己n ...

  9. Docker+Dubbo+Zookeeper实现RPC远程调用

    Docker+Dubbo+Zookeeper 1.安装Docker 1.1卸载旧版本的Docker //如果Docker处于与运行状态 未运行可跳过 [root@MrADiao ~]# systemc ...

  10. 力扣(LeetCode)寻找数组的中心索引 个人题解

    给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法. 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和. 如果数组不存在中心索引,那么我 ...