資源簡介
單純形算法的matlab實現,有詳細的注釋

代碼片段和文件信息
function?[xf]=danchunxing(Abcbase_index)
[mn]=size(A);
if(nargin==3)???????%若沒有指明基矩陣的坐標,則默認為最后m列
????base_index=(n-m+1):n;
end
index=1:n;
[~non_base_index]=union(indexbase_index);
x=zeros(n1);
threshold=1e-5;
while(1)
%?for?i=1:20?
base=A(:base_index);???????%尋找基矩陣
B_inv=inv(base);????????
xb=B_inv*b;?????????????????%基本可行解
f=c(base_index)*xb;?????????%計算當前目標函數值
w=c(base_index)*B_inv;??????%
dis=w*A(:non_base_index)-c(non_base_index);%計算判別數
[dis_valdis_position]=max(dis);????????????%計算最大的判別數
if(dis_val<=threshold)
????break
end
y=B_inv*A(:dis_position);
if(max(y)<=0)
????fprintf(‘該問題不存在有限最優解\n‘)
????break
end
temp=xb./y;?????????????%保證新的x的分量大于0
temp(temp<=0)=inf;
[r_valr]=min(temp);????%根據最小值確定進基操作????
base_index(r)=non_base_index(dis_position);?%進基操作
non_base_index(dis_position)=base_index(r);?%退基操作
end
x(base_index)=xb;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????984??2015-03-31?13:33??單純形\danchunxing.m
?????文件????????312??2015-03-31?12:25??單純形\test.m
?????目錄??????????0??2015-04-02?17:01??單純形
-----------?---------??----------?-----??----
?????????????????1296????????????????????3
評論
共有 條評論