例:有乙份中文說明書,需譯成英、日、德、俄四種文字,分別記作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...