Matlab 列舉法求解指派問題

2021-09-24 00:08:52 字數 1087 閱讀 1915

例:有乙份中文說明書,需譯成英、日、德、俄四種文字,分別記作e,j,g,r,現有甲、乙、丙、丁四人,他們將中文說明書翻譯成不同語種的說明書所需時間如下表所示。問應指派何人去完成何工作,使所需時間最少?

人員任    務ej

gr甲2

15134乙

1041415丙9

141613丁

78119

指派問題是0-1規劃的特例,也是運輸問題的特例,可以用0-1規劃或運輸問題的解法求解。

本題的數學模型為:

本題採用列舉法求解,遍歷全部可行解,比較目標函式的值,找出最優解。

程式**:

m檔案:

c=[2 15 13 4;10 4 14 15;9 14 16 13;7 8 11 9];

min=1000;

fori=1:4

forj=1:4

form=1:4

forn=1:4 if

i == j||i == n||i == m||j == m||j==n||m==n

continue;

end

y = zeros(4,4);

y(1, i) = 1;

y(2, j) = 1;

y(3, m) = 1;

y(4, n) = 1;

z=c.*y; if

sum(sum(z))

x=y;

min=sum(sum(z));

endend

endend

end x

min執行結果:

>> yunchou523(相應的m檔名)

x =0     0     0     1

0     1     0     0

1     0     0     0

0     0     1     0

min =

28此題採用列舉法,通過四層迴圈遍歷全部可行解,比較目標函式的值,找出最優解。雖然思路簡單,但在資料量較大時,多層循壞提高了時間複雜度,效率較低。

指派問題 MATLAB實現

適用於任意n階係數矩陣 clear all c 2 1513 4 10414 15 9 1416 13 7811 9 效率矩陣c n size c,1 計算c的行列數n c c 計算目標函式係數,將矩陣c按列排成乙個列向量即可。a b 沒有不等式約束 ae zeros 2 n,n 2 計算等約束的係...

Matlab 列舉法求解0 1型整數規劃

例 利用列舉法求解下面的0 1型整數規劃 0 1型整數規劃是整數規劃中的特殊情形,變數僅取0或1。本題的求解方法為列舉法,檢查變數取值為0或1的每一種組合,比較目標函式值以求最優解。另外,本題也可用linprog 命令來求解。1 列舉法 m檔案 a 1,2,1 1,4,1 1,1,0 4,0,1 x...

暴力求解 列舉法

0 9全排列 輸入正整數n,按從小到大的順序輸出所有形如abcde fghij n的表示式,其中a j恰好為數字0 9的乙個排列,n為2到79 樣例輸入 62 樣例輸出 79546 01283 62 94736 01528 62剛開始想用堆疊來實現0到9全排列,還有五個for迴圈也可以,但是想到st...