資源描述:
《單純形法程序說明》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、線性規(guī)劃問題的單純形法程序程序設(shè)計(jì)人員:閆保(20010674010)專業(yè):應(yīng)用數(shù)學(xué)數(shù)學(xué)模型:maxz=£cjXj戶1St.若知''(i=l,..,m)(j=l,.???,n)X.>0丄一、dnm標(biāo)準(zhǔn)形:maxz二工0內(nèi)+工0忌=工5小>1/=!;=1St.Im(i=1,,m)(j=l,,n+m)Xj>02、注的代碼段(聲明A)。程序不適用于求解需用大M法解的規(guī)劃問題(=,乙)b/o若要求解帶有人工變量的線性規(guī)劃問題還有待修改。程序應(yīng)用實(shí)例:maxz=2x,+x25x2<15S.T6x}+2x2<24%!+x2<5xpx2>0n=5m=3c[n]二{2丄0,0,0}b[m]={15,24,5}a[m][n]={{0,5丄0,0},{620丄0},{1丄0Q1},}程序流程圖:(單純形法計(jì)算步驟的框圖)程序#include#include#defineN10/*定義最大列維數(shù)*/#d
3、efineM10/*定義最大行維數(shù)*/typedefstructXappearance{intbase;/*base=-l:代表變量x不是基。Base=0,l...m-l:代表變量x是基,且第base個(gè)分量是1*/intman;代變量x是否是人工變量。取1代表是人工變量,取0代表是松弛變量或決策變量*/floatcz;/*變量x的檢驗(yàn)數(shù)*/}Xapp;/*定義白變量Xi的狀態(tài)*/intn,m;/*定義實(shí)際列和行維數(shù)。*/intcb[M];代整型數(shù)組Cb[M]用來保存基有哪些決策變量Xi組成,第行的基是那一列的xfl
4、oatbfM];floata[M][N];floatc[N];Xappx[NJ;/*約束向量*//*系數(shù)矩陣*//*目標(biāo)函數(shù)向量或價(jià)值系數(shù)勺/*決策變量*/voidinit(){inti,j;printf("inputn=");scanf(u%d",&n);/*輸入實(shí)際列數(shù)*/printf(Hinputm=");scanf("%d”,&m);/*輸入實(shí)際行數(shù)*/for(i=0;i5、{printf(Hinputb%d=”,i);scanf(H%f&b[i]);}for(i=0;i0.0){t=0;break;}嚴(yán)輸入價(jià)值系數(shù)*//*輸入約束向量*//*輸入系數(shù)矩陣*//*判斷所有5是否小于0*/returnt;voidstart(){inti,
6、j,k,pj,pi;for(i=0;i=2)break;}elseif(a[j][i]==O)pj++;/*確定Xi是否是基*//*初始基可行解*/if(pj==m-1&&pi==1&&x[i].cz==0)xlij.base=k;}for(i=();i7、for(i=0;i8、j]];/*聲明A:此處未對x是人工變量加以標(biāo)注。*//*計(jì)算檢驗(yàn)數(shù)勺/*計(jì)算檢驗(yàn)數(shù)*/voidptable(){inti,j;printf("Cj->for(i=0;i9、base
10、bfor(i=0;i11、",i
12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]
15、j]);}printf(MCj-Zj
16、“);for(i=0;i