最优闭回路问题

news2024/11/17 9:28:58

目录

一、欧拉回路与道路

1、欧拉回路与道路

2、欧拉图存在的条件

二、中国邮路问题

1、中国邮路问题

2、中国邮路问题求解

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

 例1

【问题分析】

(1)先求图1中任意两点之间的距离矩阵d1如表1(Floyd算法)。

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

(3)规划邮路

三、旅行商问题

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

【符号设置】

 【模型假设】

【建立模型】

【数学模型】

【模型求解】


一、欧拉回路与道路

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

行程网络图如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1113373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试肖sir__python之ui自动化定位方法(2)

Selenium中元素定位方法 一、定位方法 要实现UI自动化&#xff0c;就必须学会定位web页面元素&#xff0c;Selenium核心 webdriver模块提供了9种定位元素方法&#xff1a; 定位方式 提供方法 id定位 find_element_by_id() name定位 find_element_by_name() class定位 find_elem…

Three.js + Tensorflow.js 构建实时人脸点云

本文重点介绍使用 Three.js 和 Tensorflow.js 实现实时人脸网格点云所需的步骤。 它假设你之前了解异步 javascript 和 Three.js 基础知识&#xff0c;因此不会涵盖基础知识。 该项目的源代码可以在此 Git 存储库中找到。 在阅读本文时查看该代码将会很有帮助&#xff0c;因为…

nginx配置download模块

nginx.conf配置 location /download{alias /usr/local/webapp/download/;sendfile on;autoindex on; # 开启目录文件列表autoindex_exact_size on; # 显示出文件的确切大小&#xff0c;单位是bytesautoindex_localtime on; # 显示的文件时间为文件的服务器时间charset utf…

hexo发生错误 Error: Spawn failed

错误描述 仓库中有东西&#xff0c;运行如下命令后报错 hexo d报错提示: 原因分析: 看别人的博客是用git进行push或hexo d的时候改变了一些.deploy_git文件下的内容&#xff0c;这个.deploy_git的内容对于hexo来说可能是系统文件&#xff0c;这里挖坑 解决办法 一个个的…

如何在不恢复出厂设置的情况下解锁 Android 手机密码?

如何在不恢复出厂设置的情况下解锁 Android 手机密码&#xff1f; 当您忘记 Android 手机的密码时&#xff0c;可能会有压力&#xff0c;尤其是当您不想恢复出厂设置并删除所有数据时。但是&#xff0c;有一些方法可以在不诉诸如此激烈的步骤的情况下解锁手机。我们将在这篇文…

平板有必要买触控笔吗?推荐的ipad手写笔

iPad之所以能吸引这么多人&#xff0c;主要是因为它的功能出色。用来画画、做笔记&#xff0c;也是一种不错的体验。但如果只是用来看电视和打游戏的话&#xff0c;那就真的有点大材小用了。如果你不需要昂贵的苹果电容笔&#xff0c;也不需要用来专业的绘图&#xff0c;那你可…

SSM+SpringBoot重点

SSM+SpringBoot重点 0、VO DTO DO PO介绍 VO ​ vo(view object)视图对象 ​ 用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来,一般由后端传输给前端。 DTO ​ DTO(data transfer object)数据传输对象 ​ 用于展示层和逻辑层之间的数据传输。 …

视频监控这样做,简单又高效!

随着技术的不断进步&#xff0c;视频监控系统已经变得更加高效和智能&#xff0c;可以提供更全面的监控和分析功能&#xff0c;有助于提高安全性、管理效率和决策支持。 客户案例 超市连锁店 福建某全国性超市连锁店面临高额商品损失、偷窃问题&#xff0c;以及对客户安全和员工…

(论文翻译)UFO: Unified Feature Optimization——UFO:统一特性优化

作者&#xff1a; Teng Xi 论文总结&#xff1a;总结 Code: https://github.com/PaddlePaddle/VIMER/tree/main/UFO 摘要&#xff1a; 本文提出了一种新的统一特征优化(Unified Feature Optimization, UFO)范式&#xff0c;用于在现实世界和大规模场景下训练和部署深度模型…

Python学习基础笔记七十六——Python装饰器2

装饰器&#xff0c;英文名字decorator。 我们开发Python代码的时候&#xff0c;经常碰到装饰器。 通常被装饰后的函数&#xff0c;会在原来的函数的基础上&#xff0c;增加一些功能。 通常装饰器本事也是一个函数&#xff0c;那么装饰器是怎么装饰另外一个函数的呢&#xff1f…

Unity 镜面反射

放置地板和模型 首先&#xff0c;让我们放置地板和将放置在其上的 3D 模型。这次&#xff0c;我使用 Plane 作为地板。从层次视图中选择“创建”→“3D 对象”→“平面”。我们还在地板上放置了 Unity-chan、Cube 和 Sphere。 接下来&#xff0c;创建地板的材质。在项目视图中…

安装 Dispatch 库

首先&#xff0c;我们需要安装 Dispatch 库。在命令行中运行以下命令来安装 Dispatch&#xff1a; $ sbt console然后&#xff0c;在 Scala 控制台中&#xff0c;导入所需的库&#xff1a; import dispatch._接下来&#xff0c;我们需要设置代理服务器。在 Dispatch 中&#…

个性联邦学习

Towards Personalized Federated Learning 一、背景二、解决策略 2.1 策略一.全局模型个性化2.2 策略二.学习个性化模型 三、具体方案 3.1 全局模型个性化 3.1.1 基于数据&#xff1a;减少客户端数据统计异构性3.1.2 基于模型&#xff1a;在学习一个强大的全局模型&#xff0c;…

014 - ARM64上的GIC-400(GICv2)

本章节涉及到的参考文档有三个&#xff1a; BCM2711 ARM Peripherals.pdfARM Generic Interrupt Controller Architecture Specification.pdf (简称gic_v2)CoreLink GIC-400 Generic Interrupt Controller Technical Reference Manual.pdf 1. GIC 发展历史 在早期的 ARM 系统…

睿趣科技:抖音小店新手运营攻略

随着短视频平台的兴起&#xff0c;抖音已经成为了一个炙手可热的营销工具。越来越多的商家选择在抖音上开设小店&#xff0c;以此来拓展自己的业务。那么&#xff0c;作为新手&#xff0c;如何运营好自己的抖音小店呢?本文将为您提供一些实用的建议。 首先&#xff0c;要明确自…

python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频

1、将视频保存为图片 1.1 完整代码 # -*- coding: utf-8 -*- import cv2 import os cap cv2.VideoCapture(TestFiles/2.mp4) index 0 prop cv2.CAP_PROP_FRAME_COUNT total int(cap.get(prop)) # 获取视频总帧数 while(cap.isOpened()):# ret返回布尔值ret, frame cap.r…

竹云荣膺2023十大数字化转型创新企业

10月14日上午&#xff0c;“2023DTWORLD国际数字科技领袖峰会/ IDI Award 数创奖颁奖盛典”在深圳会展中心&#xff08;福田&#xff09;2号馆成功举办。本届峰会由深圳市科学技术协会等相关政府部门指导&#xff0c;由深圳市科技交流服务中心、深圳市人工智能行业协会、湾盟产…

医疗终端札记

文章目录 一、打印Windows 下打印 PDF打印 Word转换格式 一、打印 Windows 下打印 PDF 从 Windows 命令行打印 PDF AcroRd32.exe /t "C:\Path\To\Your\File.pdf" "PrinterName" # 其中&#xff0c;“C:\Path\To\Your\File.pdf”是您要打印的PDF文件的完…

嵌入式软件开发笔试面试

C语言部分&#xff1a; 1.gcc的四步编译过程 1.预处理 展开头文件&#xff0c;删除注释、空行等无用内容&#xff0c;替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误&#xff0c;如果有错则报错&#xff0c;没有错误则生成汇编文件。 gcc -S hello.i -o h…

在线录音工具分享,总有一款适合你!

“有人知道怎么在线录音吗&#xff1f;在网页上播放了一首民谣&#xff0c;觉得旋律很好听&#xff0c;但是不能下载&#xff0c;就想用录音的方式记录下来&#xff0c;可是完全不会操作&#xff0c;真的很急&#xff01;有没有好心人教教我&#xff0c;谢谢&#xff01;” 随…