三九宝宝网宝宝百科宝宝知识

那位大神帮我用matlab写个运筹学单纯性算法的程序最好带注释急

01月04日 编辑 39baobao.com

[康奈尔大学运筹学与信息工程工学硕士介绍与申请要求]康奈尔大学(Cornell University)建立于1865年,是一所位于美国纽约州伊萨卡的世界顶级私立研究型大学(另有两所分校位于纽约市和卡塔尔教育城),是著名的常春藤联盟成员。康奈尔...+阅读

下面是我多年前学习最优化课程时编写的单纯形法程序,100%原创。单纯形算法的基本思想是,从多面体的某个顶点出发,移动到使得目标函数有所改进的相邻顶点;然后,从相邻顶点出发,移动到另一个更好的顶点,直至到达最优的顶点。从代数的观点看,也就是从一个基本可行解出发,求出使目标函数得到改进的相邻的基本可行解,循环往复,直至求得最优的基本可行解,或者判断最优解不可能存在。

从一个基本可行解得到另一个与之相邻的基本可行解的过程称为转轴过程(pivoting process,简称转轴),就是以某个非基变量代替另一个基变量。如何确定换入和换出变量(即所谓的转轴法则)是不同单纯形方法的主要差别。我所编写程序的主要特色在于,不仅能够给出最优解,而且还能够给出迭代过程中各步的单纯形表(simplex tableau),这对于理解单纯形法的求解过程非常有帮助。

程序自带调用实例,使用了符号数学工具箱,所以显得有点繁琐,好好读一读对你会有帮助。function [G, BasisSet] = simplex_table(A, b, c, idxB)if ~nargin A=[ 3 3 1 0 0; 4 -4 0 1 0; 2 -1 0 0 1 ]; b=[30 16 12]'; c=[-3 -1 0 0 0]; idxB = 3 : 5; simplex_table(A, b, c, idxB) returnendif nargin == 2 G = A; BasisSet = b; m = size(G, 1) - 1; n = size(G, 2) - 1;else m = size(A,1); n = size(A,2); BasisSet = idxB; idxN = true(1, n); idxN(idxB) = ~idxN(idxB); idxB = ~idxN; B = sym( A(:, BasisSet) ); cB = c(BasisSet); w = cB * B^-1; G = sym( zeros( size(A)+1 ) ); G(1:end-1, 1:end-1) = B^-1 * A; G(1:end-1, end) = B^-1 * b; G(end, 1:end-1) = w * A -c; G(end, end) = w * b;endoutput_stars(n*16);count = 0;fprintf('\n initial table:\n');output_table(G, BasisSet);while count

以下为关联文档:

单纯性下肢静脉曲张病因与病理单纯性下肢静脉曲张的发病原因,为静脉瓣膜功能不全、静脉壁薄弱和静脉内压力持久增高。静脉瓣膜功能不全的原因,主要是静脉瓣膜缺陷。静脉瓣膜缺陷与静脉壁薄弱,是全身支持组织...

单纯性下肢静脉曲张诊断(一)临床表现 单纯性下肢静脉曲张的发生,常与职业因素有关,多见于纺织工、理发员、售货员、交通警及警卫员等经常从事站立工作者。早期轻度下肢静脉曲张,可无明显症状。静脉曲张...

单纯性甲状腺肿的病因及病理环境缺碘是单纯性甲状腺肿主要的发病原因。多发生于水土流失的山区、高原地区,因饮水和食物中含碘量低,发病者较多,故又称“地方性甲状腺肿。在缺乏碘而甲状腺功能仍维持身体需...

单纯性结肠梗阻概述[病因病理] 单纯性结肠梗阻原因多为肿瘤与炎症狭窄,少数可为老年性粪便梗阻。梗阻部位多数是乙状结肠与直肠区域。 [临床表现] 腹胀、腹痛及便秘是临床的主要症状,恶心呕吐则...

急求运筹学单纯型法的matlab程序代码!来自搜索function [opt_X,opt_S]=Simplexe2(fhandle,X_0,n,lambda,mu,h,epsiro,K)%:单纯形加速法(教学版)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 参考文献:% 林明芳,张宝生等.汽车...

推荐阅读
图文推荐