版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上%中國(guó)郵遞員問題:%step1;%求出奇點(diǎn)之間的距離;%求各個(gè)點(diǎn)之間的最短距離;%floyd算法;clear all;clc;A=zeros(9);A(1,2)=3; A(1,4)=1; A(2,4)=7; A(2,5)=4;A(2,6)=9;A(2,3)=2; A(3,6)=2A(4,7)=2; A(4,8)=3;A(4,5)=5;A(5,6)=8; A(6,9)=1;A(6,8)=6;A(7,8)=2;A(8,9)=2;c=A+A'c(find(c=0)=inf;m=length(c);Path=zeros(m);for k=1:m for i=1:m f
2、or j=1:m if c(i,j)>c(i,k)+c(k,j) c(i,j)=c(i,k)+c(k,j); Path(i,j)=k; end end endendc, Pathh1=c(2,4);h2=c(2,6);h3=c(2,5);h4=c(4,6);h5=c(4,5);h6=c(6,5);h=h1,h2,h3,h4,h5,h6%step2;%找出以奇點(diǎn)為頂點(diǎn)的完全圖的最優(yōu)匹配;%算法函數(shù)Hung_Al.mfunction Matching,Cost = Hung_Al(Matrix) Matching = zeros(size(Matrix); % 找出每行和每列相鄰的點(diǎn)數(shù) nu
3、m_y = sum(isinf(Matrix),1); num_x = sum(isinf(Matrix),2); % 找出每行和每列的孤立點(diǎn)數(shù) x_con = find(num_x=0); y_con = find(num_y=0); %將矩陣壓縮、重組 P_size = max(length(x_con),length(y_con); P_cond = zeros(P_size); P_cond(1:length(x_con),1:length(y_con) = Matrix(x_con,y_con); if isempty(P_cond) Cost = 0; return end% 確保
4、存在完美匹配,計(jì)算矩陣邊集 Edge = P_cond; Edge(P_cond=Inf) = 0; cnum = min_line_cover(Edge); Pmax = max(max(P_cond(P_cond=Inf); P_size = length(P_cond)+cnum; P_cond = ones(P_size)*Pmax; P_cond(1:length(x_con),1:length(y_con) = Matrix(x_con,y_con);%主函數(shù)程序,此處將每個(gè)步驟用switch命令進(jìn)行控制調(diào)用步驟函數(shù) exit_flag = 1; stepnum = 1; whil
5、e exit_flag switch stepnum case 1 P_cond,stepnum = step1(P_cond); case 2 r_cov,c_cov,M,stepnum = step2(P_cond); case 3 c_cov,stepnum = step3(M,P_size); case 4 M,r_cov,c_cov,Z_r,Z_c,stepnum = step4(P_cond,r_cov,c_cov,M); case 5 M,r_cov,c_cov,stepnum = step5(M,Z_r,Z_c,r_cov,c_cov); case 6 P_cond,stepn
6、um = step6(P_cond,r_cov,c_cov); case 7 exit_flag = 0; end endMatching(x_con,y_con) = M(1:length(x_con),1:length(y_con);Cost = sum(sum(Matrix(Matching=1);%下面是6個(gè)步驟函數(shù)step1step6%步驟1:找到包含0最多的行,從該行減去最小值function P_cond,stepnum = step1(P_cond) P_size = length(P_cond); for ii = 1:P_size rmin = min(P_cond(ii,
7、:); P_cond(ii,:) = P_cond(ii,:)-rmin; end stepnum = 2;%步驟2:在P-cond中找一個(gè)0,并找出一個(gè)以該數(shù)0為星型的覆蓋function r_cov,c_cov,M,stepnum = step2(P_cond)%定義變量 r-cov,c-cov分別表示行或列是否被覆蓋 P_size = length(P_cond); r_cov = zeros(P_size,1); c_cov = zeros(P_size,1); M = zeros(P_size); for ii = 1:P_size for jj = 1:P_size if P_co
8、nd(ii,jj) = 0 && r_cov(ii) = 0 && c_cov(jj) = 0 M(ii,jj) = 1; r_cov(ii) = 1; c_cov(jj) = 1; end end end % 重初始化變量 r_cov = zeros(P_size,1); c_cov = zeros(P_size,1); stepnum = 3;%步驟3:每列都用一個(gè)0構(gòu)成的星型覆蓋,如果每列都存在這樣的覆蓋,則M為最大匹配function c_cov,stepnum = step3(M,P_size) c_cov = sum(M,1); if sum(c_c
9、ov) = P_size stepnum = 7; else stepnum = 4; end%步驟4:找一個(gè)未被覆蓋的0且從這出發(fā)點(diǎn)搜尋星型0覆蓋。如果不存在,轉(zhuǎn)步驟5,否%則轉(zhuǎn)步驟6function M,r_cov,c_cov,Z_r,Z_c,stepnum = step4(P_cond,r_cov,c_cov,M)P_size = length(P_cond);zflag = 1;while zflag row = 0; col = 0; exit_flag = 1; ii = 1; jj = 1; while exit_flag if P_cond(ii,jj) = 0 &&a
10、mp; r_cov(ii) = 0 && c_cov(jj) = 0 row = ii; col = jj; exit_flag = 0; end jj = jj + 1; if jj > P_size; jj = 1; ii = ii+1; end if ii > P_size; exit_flag = 0; end end if row = 0 stepnum = 6; zflag = 0; Z_r = 0; Z_c = 0; else M(row,col) = 2; if sum(find(M(row,:)=1) = 0 r_cov(row) = 1; zco
11、l = find(M(row,:)=1); c_cov(zcol) = 0; else stepnum = 5; zflag = 0; Z_r = row; Z_c = col; end endend%步驟5:function M,r_cov,c_cov,stepnum = step5(M,Z_r,Z_c,r_cov,c_cov) zflag = 1; ii = 1; while zflag rindex = find(M(:,Z_c(ii)=1); if rindex > 0 ii = ii+1; Z_r(ii,1) = rindex; Z_c(ii,1) = Z_c(ii-1); e
12、lse zflag = 0; end if zflag = 1; cindex = find(M(Z_r(ii),:)=2); ii = ii+1; Z_r(ii,1) = Z_r(ii-1); Z_c(ii,1) = cindex; end end for ii = 1:length(Z_r) if M(Z_r(ii),Z_c(ii) = 1 M(Z_r(ii),Z_c(ii) = 0; else M(Z_r(ii),Z_c(ii) = 1; end end r_cov = r_cov.*0; c_cov = c_cov.*0; M(M=2) = 0;stepnum = 3;% 步驟6:fu
13、nction P_cond,stepnum = step6(P_cond,r_cov,c_cov)a = find(r_cov = 0);b = find(c_cov = 0);minval = min(min(P_cond(a,b);P_cond(find(r_cov = 1),:) = P_cond(find(r_cov = 1),:) + minval;P_cond(:,find(c_cov = 0) = P_cond(:,find(c_cov = 0) - minval;stepnum = 4;function cnum = min_line_cover(Edge) r_cov,c_cov,M,stepnum = step2(Edge); c_cov,stepnum = step3(M,length(Edge); M,r_cov,c_cov,Z_r,Z_c,stepnum = step4(Edge,r_cov,c_cov,M);cnum = le
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版城市照明電氣設(shè)備采購(gòu)及運(yùn)維合同
- 二零二五年度米面糧油倉(cāng)儲(chǔ)物流服務(wù)采購(gòu)合同2篇
- 2025年度水泥產(chǎn)品銷售渠道建設(shè)承包合同3篇
- 2025殘疾人冰雪項(xiàng)目財(cái)務(wù)管理與審計(jì)合同3篇
- 2025年度木門銷售合同書標(biāo)準(zhǔn)版4篇
- 二零二五版牛只運(yùn)輸途中疫病防控與應(yīng)急處理合同4篇
- 2025年度美容美發(fā)行業(yè)技師技能認(rèn)證合同3篇
- 2025年度二零二五年度民辦學(xué)校教師心理健康輔導(dǎo)合同4篇
- 承包宅基地合同(2篇)
- 2025年度農(nóng)產(chǎn)品電商平臺(tái)傭金結(jié)算合同4篇
- 【京東倉(cāng)庫(kù)出庫(kù)作業(yè)優(yōu)化設(shè)計(jì)13000字(論文)】
- 保安春節(jié)安全生產(chǎn)培訓(xùn)
- 初一語(yǔ)文上冊(cè)基礎(chǔ)知識(shí)訓(xùn)練及答案(5篇)
- 初中班級(jí)成績(jī)分析課件
- 勞務(wù)合同樣本下載
- 血液透析水處理系統(tǒng)演示
- GB/T 27030-2006合格評(píng)定第三方符合性標(biāo)志的通用要求
- GB/T 13663.2-2018給水用聚乙烯(PE)管道系統(tǒng)第2部分:管材
- 同角三角函數(shù)的基本關(guān)系式同步練習(xí)
- 固定污染源自動(dòng)監(jiān)控監(jiān)測(cè)系統(tǒng)現(xiàn)場(chǎng)端建設(shè)技術(shù)規(guī)范
- 教科版六年級(jí)科學(xué)下冊(cè)第一單元《小小工程師》背背默默知識(shí)點(diǎn)
評(píng)論
0/150
提交評(píng)論