- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中国邮递员问题matlab
%中国邮递员问题:
%step1;
%求出奇点之间的距离;
%求各个点之间的最短距离;
%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)=2
A(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
for 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
end
end
c, Path
h1=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;
%找出以奇点为顶点的完全图的最优匹配;
%算法函数Hung_Al.m
function [Matching,Cost] = Hung_Al(Matrix)
Matching = zeros(size(Matrix));
% 找出每行和每列相邻的点数
num_y = sum(~isinf(Matrix),1);
num_x = sum(~isinf(Matrix),2);
% 找出每行和每列的孤立点数
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
% 确保存在完美匹配,计算矩阵边集
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);
%主函数程序,此处将每个步骤用switch命令进行控制调用步骤函数
exit_flag = 1;
stepnum = 1;
while 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,stepnum] = step6(P_cond,r_cov,c_cov);
case 7
exit_flag = 0;
end
end
Matching(x_con,y_con) = M(1:length(x_con),1:length(y_con));
Cost = sum(sum(Matrix(Matching==1)));
%下面是6个步骤函数step1~step6
%步骤1:找
您可能关注的文档
最近下载
- 苏轼定风波课件PPT.ppt
- 医院智慧能源解决方案-.ppt
- 初中英语新外研版七年级上册Unit 5 Fantastic friends课文讲解(2024秋).doc
- 中国居民膳食指南2024版 .pdf VIP
- 大学军事理论课教程第二章国家安全第三节 国际战略形势.pptx
- 儿童幽门螺杆菌感染诊治专家共识.pptx VIP
- 怡安翰威特-泰康在线人力资源管理优化项目建议书_20170816.pdf VIP
- 初中英语新外研版七年级上册Unit 6课文解析(2024秋).doc
- 认真学习和领会《中国章程》-公需课:课后答案(全).docx
- 2024“学宪法、讲宪法”法治知识竞赛第八届全国中小学法治知识竞赛题库及答案.doc
文档评论(0)