最优闭回路问题

简介: 最优闭回路问题

一、欧拉回路与道路

1、欧拉回路与道路

连通图G中,若存在一条道路,经过每一边一次且仅一次,则称这条路为欧拉道路。若存在一条回路经过每边一次仅一次,称这条回路为欧拉回路。

具有欧拉回路的图称为欧拉图,简称E图。

2、欧拉图存在的条件

(1)无向连通图G是欧拉图当且仅当G中无奇点(出入次和为奇数)。

(2)连通有向图G是欧拉图,当且仅当它的每个顶点的出次等于入次。

二、中国邮路问题

1、中国邮路问题

一个邮递员,负责某一地区邮件投递,他每天从邮局出发,走遍该地区所有街道在返回邮局,问应如何安排送信的路线,可以使他所走的路线总路程最短(1962,管谷梅)。

给定一个连通图G,每边有权L(e),要求一条回路经过每边至少一次,且满足总权和最小。

2、中国邮路问题求解

(1)若连通图G没有奇点,则是一个欧拉图,显然按照欧拉回路走就满足要求:每边一次仅一次,且权和最小;

(2)若G中有奇点,则有些边走过不止一次,这相当于对图G增加一些重复边E1,得到新的图G1=G+E1,使得G1没有奇点,且满足路程最短。

3、有奇点的G的中国邮路问题等价问题

连通图G=(V,E)中,求一个边集E1(E的子集),将E1的边均变成重复边得到G1=G+E1,使得G1无奇点,且

E1*存在的充分必要条件:

(1)每条边最多重复一次;

(2)对图G中每个初等圈来说,重复边的长度不超过圈长的一半。

例1

求图1所示网络的中国邮路问题

【问题分析】

图1中,点v2,v4,v6,v8为奇点,为了使得所有的点为偶点,需要构造辅助边.如果增加(v6,v3)和(v3,v2),等价于直接增加边(v6,v2)(距离由最短距离决定)。

(1)先求图1中任意两点之间的距离矩阵d1如表1(Floyd算法)。
sets:
dian/1..10/:L; 
link(dian,dian):d,x;
endsets
data:
d=@ole('d:\lianxian','d_1');
enddata
n=@size(dian);
min=@sum(link(i,j)|i#ne#j:d(i,j)*x(i,j));
@for(dian(i):@sum(dian(j)|j#ne#i:x(i,j))=1);
@for(dian(i):@sum(dian(j)|j#ne#i:x(j,i))=1);
@for(dian(i):@for(dian(j)|j#ne#i#and#j#gt#1:
L(j)>L(i)+x(i,j)-(n-2)*(1-x(i,j))+(n-3)*x(j,i)));
@for(dian(i):L(i)<n-1-(n-2)*x(1,i));
@for(dian(i):L(i)>-1+(n-2)*x(i,1));
@for(link:@bin(x));

表1 图1中各点间最短距离

vi\vj

v1

v2

v3

v4

v5

v6

v7

v8

v9

v1

0

5

10

9

11

12

13

15

16

v2

5

0

5

10

6

7

14

10

11

v3

10

5

0

9

5

2

13

9

6

v4

9

10

9

0

4

7

4

8

11

v5

11

6

5

4

0

3

8

4

7

v6

12

7

2

7

3

0

11

7

4

v7

13

14

13

4

8

11

0

4

7

v8

15

10

9

8

4

7

4

0

3

v9

16

11

6

11

7

4

7

3

0

根据表1,奇点间最短距离为

d1(v2,v6)=7;

d1(v2,v4)=10;

d1(v2,v8)=10;

d1(v4,v6)=7;

d1(v4,v8)=8;

d1(v6,v8)=7;

(2)确定奇点之间的连线方案

  1.  如图2所示,若增加(v2,v6),(v4,v8)边,所有点为偶数点,增加长度为15;
  2.  如图3所示,若增加(v6,v8),(v2,v4)边,所有点为偶点,增加长度为17;
  3. 如图4所示,若增加重复边(v4,v6),(v2,v8),所有点为偶点,增加长度为17;

三种方案比较,选择图2所示方案。

(3)规划邮路

从v1出发,经过图2中所有边一次,仅一次回到v1的路径,见图5箭头所示。

v1-v4-v7-v8-v9-v6-v3-v2-v6-v5-v8-v4-v5-v2-v1(不止一种线路)

三、旅行商问题

Hamilton图: 包含图G中每个顶点的路,称为Hamilton路,包含G中每个顶点的圈,称为Hamilton圈(回路)。

例2 旅行商路线问题(算法:tsp问题)

某公司计划在某地区的1-10这10个城镇做广告宣传,推销从城市1出发,再回到1,已知这个10个城镇之间的距离如表2所示。为节约开支,公司希望推销员走过这10个城镇的总距离最少。

表2 各城镇之间的距离

i/j

1

2

3

4

5

6

7

8

9

10

1

0

8

5

9

12

14

12

16

17

22

2

8

0

9

15

16

8

11

18

14

22

3

5

9

0

7

9

11

7

12

12

17

4

9

15

7

0

3

17

10

7

15

15

5

12

16

9

3

0

8

10

6

15

15

6

14

8

11

17

8

0

9

14

8

16

7

12

11

7

10

10

9

0

8

6

11

8

16

18

12

7

6

14

8

0

11

11

9

17

14

12

15

15

8

6

11

0

10

10

22

22

17

15

15

16

11

11

10

0

【符号设置】

  • G=(V,E)  各城镇连接生产的图;
  • dij   两点i与j的距离;
  • L(i) 点i到根1的距离(水平变量);(用来防止提前生成圈)

【模型假设】

(1)经过各城镇一次仅一次;

【建立模型】

(1)连接的各城镇之间的总距离的最小值

(2)每个点只有一个出次

(3)每个点只有一个入次

(4)点i与j的前行后继关系(除1外)

(5)节点i与节点1的距离

(6)变量限制

【数学模型】

【模型求解】

最小路程为73(单位),点与点的连接关系为x(1,2)=1,x(2,6)=1,x(6,5)=1,x(5,4)=1,x(4,8)=1 x(8,10)=1,x(10,9)=1,x(9,7)=1,x(7,3)=1,x(3,1)=1

行程网络图如下


相关文章
|
Linux 开发工具 C语言
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
1901 3
|
关系型数据库 MySQL Windows
mysql彻底卸载干净的5个步骤,超多图超详细保姆级教程最新教程新手小白轻松上手
mysql彻底卸载干净的5个步骤,超多图超详细保姆级教程最新教程新手小白轻松上手
26805 2
|
Web App开发 安全 Java
开源漏洞扫描工具(OWASP-Dependency-Check)探索
背景 随着公司逐渐发展壮大,网络信息安全变得越来越重要。由此激发了我们成立兴趣小组(凯京爆破小组)研究网络信息安全的欲望。然而信息安全的防范,还得从底层编码开始做起。这样依赖性扫描工具(OWASP-Dependency-Check)就进入了我们的视线,既符合我们当前的需求又使用方便简单,自然而然的成为了我们探索的对象。
19316 0
|
7月前
|
人工智能 供应链 安全
MCP Server的五种主流架构与Nacos的选择
本文深入探讨了Model Context Protocol (MCP) 在企业级环境中的部署与管理挑战,详细解析了五种主流MCP架构模式(直连远程、代理连接远程、直连本地、本地代理连接本地、混合模式)的优缺点及适用场景,并结合Nacos服务治理框架,提供了实用的企业级MCP部署指南。通过Nacos MCP Router,实现MCP服务的统一管理和智能路由,助力金融、互联网、制造等行业根据数据安全、性能需求和扩展性要求选择合适架构。文章还展望了MCP在企业落地的关键方向,包括中心化注册、软件供应链控制和安全访问等完整解决方案。
3208 158
MCP Server的五种主流架构与Nacos的选择
|
7月前
|
索引
鸿蒙开发:dialog库做了一些优化
除了代码上的优化之外,针对功能和文档也做了同步更新,目前把dialog拆分了八大功能模块,几乎涵盖各个业务需求,分别是:1、自定义形式,2、时间弹窗,3、城市选择,4、确认&信息,5、底部列表&网格,6、toast,7、popup形式,8、loading形式。
127 8
鸿蒙开发:dialog库做了一些优化
|
IDE Java 开发工具
python缩进错误(IndentationError)
【7月更文挑战第12天】
2630 10
|
10月前
|
存储 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 8 数据库生态
PolarDB是一款开源的云原生分布式数据库,源自阿里云商业产品。为降低使用门槛,PolarDB携手伙伴打造了完整的开源生态,涵盖操作系统、芯片、存储、集成管控、监控、审计、开发者工具、数据同步、超融合计算、ISV软件、开源插件、人才培养、社区合作及大型用户合作等领域。通过这些合作伙伴,PolarDB提供了丰富的功能和服务,支持多种硬件和软件环境,满足不同用户的需求。更多信息请访问[PolarDB开源官方网站](https://openpolardb.com/home)。
498 4
|
11月前
|
人工智能 运维 自动驾驶
回顾与展望,SOMA年终工作会议暨Meet Up圆满举办!
委员们齐聚复旦复盘联盟工作,展望规划联盟发展。
|
监控 NoSQL 测试技术
MongoDB性能最佳实践:如何制定更有效的基准测试?
感谢你与我们一起走过这段MongoDB性能最佳实践之旅,希望你能从中获取一些有用的信息
2250 3
|
机器学习/深度学习 人工智能 自然语言处理
AI初探:人工智能的定义、历史与未来展望
【7月更文第15天】在科技飞速发展的今天,人工智能(Artificial Intelligence, AI)已经成为推动社会进步的关键力量,渗透到我们生活的方方面面,从智能家居到自动驾驶汽车,从精准医疗到智能金融,无不展现出其深远的影响。本文旨在为读者揭开人工智能的神秘面纱,从基本概念出发,回顾其发展历程,并探索未来的无限可能。
1892 2