日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习匈牙利算法解决指派问题

發(fā)布時間:2024/5/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习匈牙利算法解决指派问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

指派問題

指派問題的標準形式

指派問題的數(shù)學模型

非標準形式的指派問題

指派問題的匈牙利解法的一般步驟





以上步驟并不好理解下面進行一些實例展示方便理解

匈牙利解法的實例





這是一個比較友好的例子,一切按照步驟來就可以了
再舉一個有點繞的例子



指派問題的計算機解法

整數(shù)規(guī)劃問題的求解可以使用Lingo等專用軟件。對于一般的整數(shù)規(guī)劃問題,無法直接利用Matlab的函數(shù),必須利用Matlab編程實現(xiàn)分枝定界解法和割平面解法。但對于指派問題等特殊的整數(shù)規(guī)劃問題有時可以直接利用Matlab的函數(shù)linprog。
利用MATLAB求解下列指派矩陣

c=[3 8 2 10 3;8 7 2 9 7;6 4 2 7 5; 8 4 2 3 5;9 10 6 9 10]; c=c(:);%把矩陣c轉化為25維列向量 a=zeros(10,25); %10表示有5行5列的共10個約束(行列xij的和=1)25表示有25種xij類型 for i=1:5a(i,(i-1)*5+1:5*i)=1;a(5+i,i:5:25)=1;%每行每列相加等于一 end %此循環(huán)把指派問題轉化為線性規(guī)劃問題 b=ones(10,1); [x,y]=linprog(c,[],[],a,b,zeros(25,1),ones(25,1)); %zeros(25,1),ones(25,1)指的是取值要么是0要么去1 X=reshape(x,5,5) %把x變成5*5的矩陣 opt=y

運行結果

為了更好的理解代碼給出矩陣a的具體元素分布

總結

以上是生活随笔為你收集整理的学习匈牙利算法解决指派问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。