寻找C++编程高手,用单纯型法解决运筹学问题

问题描述:

寻找C++编程高手,用单纯型法解决运筹学问题
就是输入矩阵A,B使得AX≤B,使得目标函数z=XY取得最大值.Y是已知的
矩阵是三维的就行,matlabw我没学过,只学过mathmatics和C++,用mathmatics编也行.也行,现在是语言就行.用单纯形法解决LP问题,就是线性规划问题 ,
1个回答 分类:综合 2014-10-01

问题解答:

我来补答
function [x,fval,flag,iteration]=originalsimple(C,A,b,XB)
%原始单纯形法(需直接给出初始的基变量)
%Programmed by Liyang(faruto's Studio~!) BNU MATH
%Email:liyangbnu@mail.bnu.edu.cn QQ:516667408
%last modified 2008.4.27
%求解标准型线性规划:max C*X;s.t.A*X=b (b>=0);X>=0;
%输入:C是n维行向量,A是m*n的系数矩阵,b是m维列向量,XB承装初始基变量的下标
%输出:x最优解(如果有的话),fval最优值,flag解的状态说明,interation求解时的循环次数
%flag 最终解的状态说明:
%flag = 0 LP converged to a solution x
%flag = 1 Inf feasible solutions
%flag = 2 LP is unbounded
%flag = 3 No feasible point was found
[m,n] = size(A);
iteration = 0;
pflag = 1;
while pflag
iteration = iteration +1;
flag = 0;
%%
sigma = zeros(1,n);
for col = 1:n
temp = 0;
for row = 1:m
temp = temp+C(XB(row))*A(row,col);
end
sigma(col) = C(col)-temp;
end
%%
if sigma
 
 
展开全文阅读
剩余:2000
下一页:fx的解析式