c 實現單純形法現行規劃問題的求解 推薦

2022-10-03 23:15:23 字數 2085 閱讀 3381

在本程式中預設該現行規劃問題有最優解

針對此問題:

#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。單純形法 適用於鬆弛型。單純形法是不斷通過迭代來增大最大值。達到無法更新時,就是最大值。這...