MATLAB实现构造Euler环游图的算法——数学建模
2010-04-30 21:02
656 查看
我们专业课(数学建模)讲的东西由七桥堡问题而来的Euler环游。
如下图,要将其变为Euler环游图。
%首先给出一个矩阵(相邻表示1,不相邻表示0),用来表示图1。
v =
0 1 0 0 0 0 0 1
1 0 1 0 0 0 1 0
0 1 0 1 0 1 0 0
0 0 1 0 1 0 0 0
0 0 0 1 0 1 0 0
0 0 1 0 1 0 1 0
0 1 0 0 0 1 0 1
1 0 0 0 0 0 1 0
Euler1(v)%调用写好的函数
Euler1函数如下:
function f=Euler1(v)
%定义数组用来存放该行是否为奇数。如果为1则表示奇数
count=size(v);
rows=zero(1,count(1));
%第一步是找出奇数行,然后找遍历为1的坐标,准备为该坐标加1
%在此之前先判断该坐标的列标所对应的行是否为奇数,如果是则加1
%如果不是再判断下一个,如果直到完成也没有结果,输出提示。
%说明该图不能变成Euler图。如果可以直到的最后得到结果将结果输出。
%遍历所有行,找出和为奇数的行
for i=1:6
if rem(sum(v(i,:)),2 )~=0 %不等于0
%找到奇数行标记
rows(i)=1;
end
end
%按照原先的标记开始变为Euler图。
for i=1:6
if rows(i)==1
for j=1:6
if v(i,j)==1
if rows(j)==1
v(i,j)=2;
rows(i)=0; %再次赋值为0
break
end
end
end
continue
end
end
v%输出结果
最后得到的图为:
这个是没有考虑到权重的,如果要考虑权重的话,就要稍微复杂点了。
PS:恶补什么是Euler图:http://blog.sina.com.cn/s/blog_49c240bb0100icgp.html
如下图,要将其变为Euler环游图。
%首先给出一个矩阵(相邻表示1,不相邻表示0),用来表示图1。
v =
0 1 0 0 0 0 0 1
1 0 1 0 0 0 1 0
0 1 0 1 0 1 0 0
0 0 1 0 1 0 0 0
0 0 0 1 0 1 0 0
0 0 1 0 1 0 1 0
0 1 0 0 0 1 0 1
1 0 0 0 0 0 1 0
Euler1(v)%调用写好的函数
Euler1函数如下:
function f=Euler1(v)
%定义数组用来存放该行是否为奇数。如果为1则表示奇数
count=size(v);
rows=zero(1,count(1));
%第一步是找出奇数行,然后找遍历为1的坐标,准备为该坐标加1
%在此之前先判断该坐标的列标所对应的行是否为奇数,如果是则加1
%如果不是再判断下一个,如果直到完成也没有结果,输出提示。
%说明该图不能变成Euler图。如果可以直到的最后得到结果将结果输出。
%遍历所有行,找出和为奇数的行
for i=1:6
if rem(sum(v(i,:)),2 )~=0 %不等于0
%找到奇数行标记
rows(i)=1;
end
end
%按照原先的标记开始变为Euler图。
for i=1:6
if rows(i)==1
for j=1:6
if v(i,j)==1
if rows(j)==1
v(i,j)=2;
rows(i)=0; %再次赋值为0
break
end
end
end
continue
end
end
v%输出结果
最后得到的图为:
这个是没有考虑到权重的,如果要考虑权重的话,就要稍微复杂点了。
PS:恶补什么是Euler图:http://blog.sina.com.cn/s/blog_49c240bb0100icgp.html
相关文章推荐
- 【转】MATLAB实现构造Euler环游图的算法——数学建模
- 【数学建模集训系列】公交查询系统的matlab实现-公交与地铁换乘
- 留学生作业代写 编程代写 有偿代写 python matlab数学建模 机器学习 深度学习 c# c++ 数学 算法 论文程序代写
- Matlab 数学建模之算法笔记(1)--蒙特卡洛算法
- 数学建模中十大算法实现步骤与代码
- 【数学建模集训系列】公交查询系统的matlab实现-运行截图和结果
- 【数学建模集训系列】公交查询系统的matlab实现-问题重述
- 【数学建模集训系列】公交查询系统的matlab实现-价格计算
- 多级树集合分裂(SPIHT)算法的过程详解和Matlab实现(2)数学表述
- 【数学建模集训系列】公交查询系统的matlab实现-公交站点和线路对应矩阵
- 【数学建模集训系列】公交查询系统的matlab实现-站点和站点之间直达矩阵
- 【数学建模集训系列】公交查询系统的matlab实现-加入地铁线T1
- 2007数学建模B题算法与实现源程序
- 数学建模(14)——MATLAB实现最小生成树(Prim与Kruskal算法)
- 【数学建模集训系列】公交查询系统的matlab实现-加入地铁线T2
- 【数学建模集训系列】公交查询系统的matlab实现-只含公交的查询
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- 近邻法的快速算法-matlab实现
- 数字图像去噪典型算法及matlab实现
- 数学建模中常用十大算法