在本程式中預設該現行規劃問題有最優解
針對此問題:
#include
using namespace std;
int check(float *sigema, int m)
} return 1;
}//此程式已經化為標準型的線性規劃問題中,且預設有最優解
int main(int argc, char* ar**)
float *cj = new float[m + 1];
float *cb = new float[n + 1]; //基變數係數
int *xb = new int[n + 1]; //用來標註基變數x的下標
float *b = new float[n + 1];
float *sigema = new float[n + 1];
float *sita = new float[n + 1];
//初始化
for (int i = 0; i <= m; i++)
for (int i = 0; i <= n; i++)
cout www.cppcns.comt; "請輸入目標函式係數(用空格間開):" << endl;
for (int i = 1; i <= m; i++)
cout << "請輸入各不等式的係數和常量(用空格間開):" << endl;
for (int i = 1; i <= n; i++)
} cout << "請輸入目標函式中基變數下標:" << endl;
for (int i = 1; i <= n; i++)
//計算檢驗數
for (int i = 1; i <= m; i++)
} while (check(sigema, m) == 0)
} //計算sita
for (int i = 1; i <= n; i++)
else
} //尋找出基變數
float minn = sita[1];
int sita_xindex = 0;
for (int i = 1; i <= n; i++)
} //入基出基變換,先入基再出基
//入基操作
for (int i = 1; i <= n; i++)
} //出基計算
//化1
//cout << endl << "此處為化1的結果------" << endl;
float mul1 = matrix[sita_xindex][sigema_xindex];
for (int i = 1; i <= m; i++)
b[sita_xindex] /= mul1;
//化0
//cout << endl << "此處為化0的結果------" << endl;
for (int i = 1; i <= n; i++)
float mul2 = matrix[i][sigema_xindex] / matrix[sita_xindex][sigema_xindex];
for (int j = 1; j <= m; j++)
b[i] -= (b[sita_xindex] * mul2);
} for (int i = 1; i <= n; i++)
} for (int i = 1; i <= m; i++)
} }
float maxz = 0;
float *result = new float[m + 1];
for (int i = 0; i <= m; i++)
for (int i = 1; i <= n; i++)
cout << "最優解為:x = (";
for (int i = 1; i < m; i++)
cout << result[m] << ")" << endl;
for (int i = 1; i <= m; i++)
cout << "最優值為:mzxz = " << maxz;
return 0;
}程式執行結果:
總結
C語言實現單純形法與對偶單純形法
某次為了完成課程要求所做 單純形法 如下,使用方法修改二位陣列a ip jp include define ip 3 define jp 7 int i,j,m,n,flag 1 float max 1 min 1000 guiyi float c jp 1 float a ip jp float ...
單純形法python實現
coding utf 8 單純形法的實現,只支援最簡單的實現方法 且我們假設約束矩陣a的最後m列是可逆的 這樣就必須滿足a是行滿秩的 m n的矩陣 import numpy as np class x object def init self,c,a,b 形式 minf x c.tx s.t.ax ...
線性規劃 單純形法
線性規劃是求乙個線性多項式的最值。線性規劃有兩種形式 1.標準型 不等式型 2.鬆弛型 除了非負約束,其他都是等式變數名稱 在res x y z中。1.基本變數,基本變數是res。2.非基本變數,如x,y,z。單純形法 適用於鬆弛型。單純形法是不斷通過迭代來增大最大值。達到無法更新時,就是最大值。這...