标题:求助 实现两段单纯形表法
取消只看楼主
好孩子1874
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-12-29
 问题点数:0 回复次数:1 
求助 实现两段单纯形表法
在M环境下自己编写单纯形算法来求解下面的线性规划问题
min cx
s.t. Ax = b;
x > 0:
其中b > 0, A是m  n维的实矩阵,且A的秩是m. 特别的, A不包含单位矩阵。按要求编写下面的程
序。
主程序: 利用单纯形表法+两步法求解上述的线性规划问题
 要求:编写两个子程序,对应两步法里的两个步骤.
步骤一:通过(表格)单纯性法求解线性规划问题的一个初始基本可行解. 程序格式
function [istatus, ib, xb, Mtx]=simplex step1(A,b)
输入参数:A { 系数矩阵,b { 右端向量(非负).
输出参数:
{ istatus { 标记单纯形法的执行状态. 其中istatus=1 表示成功找到原问题的一个基本可行
解,且初始基本可行解中基变量的取值都不为零; istatus=4 表示通过判别后,得到原问题
的可行域是空集的结论; istatus=16 表示找到的初始基本可行解中包含人工变量,或者找
到的基本可行解中包含取值为零的基变量,初始化过程失败.
{ ib { 基变量对应的指标
{ xb { 基变量对应的取值
{ Mtx { 非人工变量,也就是原问题的变量所对应的系数矩阵.
步骤二:利用步骤一里得到的系数矩阵和初始基本可行解,利用(表格)单纯形法求解原问题的最优
解. 程序格式
function [istatus, iB, xB]=simplex step2(Mtx,ib,xb,c)
输入参数:Mtx { 第一步中得到的非人工变量所对应的系数矩阵,ib { 步骤一中基变量所对应
的指标,xb { 初始基本可行解中基变量的取值,c { 目标函数的系数向量.
输出参数:
{ istatus标记单纯形法的执行状态. 其中istatus=0 表示单纯形法正常执行,没有遭遇到退化
情形,但尚未求出最优基本可行解;istatus=1 表示找到一个退化的基本可行解(此时算
法退出);istatus=32 表示求解过程中得到原问题无界的结论;istatus=-1 表示成功找到
一个非退化的最优基本可行解.
{ iB { 基变量对应的指标
{ xB { 基变量对应的取值
步骤三:利用上述两个程序任意求解两个线性规划问题,并用MATLAB 内置的linprog函数验证程序
的输出是否正确.
搜索更多相关主题的帖子: function 主程序 子程序 
2014-12-29 20:41
好孩子1874
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-12-29
得分:0 
求助,希望大侠们回复,给分啊
2014-12-29 20:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440507-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019494 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved