旅行商问题变体:欧几里德平面中线段最小连接算法

news2024/11/24 9:08:23

问题描述

在这里插入图片描述

假设在欧几里德平面上有有限多条线段,如何将它们连接起来,形成一条最小长度的线段链?

首先,自然可以穷举所有情况,找到最优解。还可以采用动态规划、贪心算法找到局部最优解。

另外,则将其作为TSP问题的变体加以解决。每条线段都有两个顶点,并且线段的两端都可以用于连接。如果线段长度为零,则是典型的旅行商问题。

https://mathoverflow.net/questions/190968/algorithm-to-minimally-connect-line-segments-in-euclidean-plane

解决方案

解决这个问题的一种方法可能是将其简化为TSP的传统版本,然后使用像这样的免费现成的求解器。至少,这应该是一种相对简单的方法。

请注意,这个问题可以描述为TSP问题,其中解决方案必须穿过某些边(即“线段”)。对于图中的每条“强制”边,替换该边
o-----o
使用一个新节点和两条串联的边,如下所示:
o-o-o

考虑新图上的传统TSP解决方案。为了到达新节点,任何有效的TSP闭式遍历都必须穿过整个“o-o-o”结构。因此,新图上的最小闭合路径对应于原始图上穿过所有所需边的最小闭合路径。

对于你的一般问题,没有恒定的时间近似值(因为对于长度为零的链接,一般的TSP问题是你问题的特例)。然而,对于度量TSP有常数因子近似算法,甚至对于欧几里德平面中的TSP也有PTAS(Arora 1998),因此对于“连接平面中的分段”的特殊情况,可能有一种近似算法。我花了一段时间修补Christofides的算法,试图找到一个解决这个问题的算法,但没有成功;也许其他人会更幸运?

QuikGraph解决思路

参考TSP旅行商问题变体之不返回起点的思路,设置同一线段首尾两个端点之间边权重为0,将不同线段端点之间的距离作为边权重,再求解。

如果是折线段有多个顶点,则取首尾两个端点作为图的顶点,内部其他折点不作为图的顶点参与TSP的计算。

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

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

相关文章

定时器延时us(hal库)

目录 定时器延时us 配置cubemx ​编辑​编辑新建模块 代码实现 测试代码 定时器延时us 复制工程模板 配置cubemx 新建模块 新建文件HardWare 添加文件HardWare 添加文件路径 添加HardWare 或者直接输入/HardWare 添加.c和.h文件 .h文件 添加防重复定义代码 #ifnd…

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

系统版本: ky10.x86_64 下载安装包并上传 openssh下载地址 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable openssl下载地址 https://openssl-library.org/source/index.html zlib下载地址 https://zlib.net/fossils/ 上传安装包 备份配置文件 cp -r /etc/ssh /et…

DePT: Decoupled Prompt Tuning

当前的问题:Base-New Tradeoff(BNT)困境 现有的提示调优方法通常无法摆脱Base-New Tradeoff(BNT)困境,即调优/调整的模型对基本任务的泛化效果越好,对新任务的泛化效果就越差(包含不可见的类),反之新任务的泛化效果越好,所需要的…

北京城市图书馆-非遗文献馆:OLED透明拼接屏的璀璨应用

在数字化与传统文化深度融合的今天,北京城市图书馆的非遗文献馆以一场前所未有的视觉盛宴,向世人展示了OLED透明拼接屏的非凡魅力与无限可能。这座集阅读、展示、体验于一体的非遗文献馆,通过2*7布局的OLED透明拼接屏,不仅为传统非…

2024.8.15(python管理mysql、Mycat实现读写分离)

一、python管理mysql 1、搭建主mysql [rootmysql57 ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [rootmysql57 ~]# cp -r mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql [rootmysql57 ~]# rm -rf /etc/my.cnf [rootmysql57 ~]# mkdir /usr/local/mysql…

高数3.4 函数单调性和曲线的凹凸性

目录 1. 定义 2. 判断方法 3. 证明 4. 例子 1. 定义 2. 判断方法 3. 证明 4. 例子

高频焊机系统介绍及工作原理

一、高频焊机生产的工艺流程 将带钢卷成圆筒形,然后将接缝焊接起来这就形成了焊管。近些年来,随着焊接技术的进步以及社会工业化进程的加快,钢管的焊管技术也得到了较快的发展。其中直缝高频焊机应用广泛,其原理是利用高频电流的邻…

基于Java+SpringBoot+Vue的网上点餐系统

基于JavaSpringBootVue的网上点餐系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 哈喽…

大模型学习方法之——大模型技术学习路线

“ 技术学习无非涵盖三个方面,理论,实践和应用**”** 大模型技术爆火至今已经有两年的时间了,而且大模型技术的发展潜力也不言而喻。因此,很多人打算学习大模型,但又不知道该怎么入手,因此今天就来了解一下…

【探索Linux】P.48(高级IO —— I/O多路转接之 poll )

阅读导航 引言一、poll简介二、poll函数接口⭕参数说明 三、pollfd结构体⭕events和revents的取值 四、返回值五、工作原理六、优缺点✅优点✅缺点 七、 使用示例🚨注意事项 总结温馨提示 引言 在上一篇探讨了I/O多路转接之select方法的基础上,本文将深…

第131天:内网安全-横向移动Kerberos 攻击SPN扫描WinRMWinRSRDP

案例一:域横向移动-RDP-明文&NTLM RDP利用的三种方式 1.直接在当前被控主机上进行远程连接 2.建立节点进行连接 3.端口转发,(访问当前主机的2222端口等于访问目标的3389) 第一种方式(动静太大) 直接利用被控主机进行远程连接…

uniapp left right 的左右模态框

标题 这是组件 <template><div class"content-wrapper"><divv-for"(vla, i) in products":key"i":class"[content-page, getPageClass(i)]"><slot :data"vla"><!-- 用户自定义的内容 --><…

VUE2学习日记 路由

安装路由 路由安装命令&#xff1a; npm install --save vue-router3 创建router文件夹 在src下创建router文件夹 创建index.js 文件 在router文件夹下创建index.js 文件夹 .vue文件的创建 在components文件夹下创建.vue文件 实现 在router文件夹下的index.js中 导入Vu…

搭建内网开发环境(二)|Nexus安装及使用

引言 上一篇教程中按照了 docker 作为容器化工具&#xff0c;在本篇教程中将使用 docker-compose 安装 nexus。 搭建内网开发环境&#xff08;一&#xff09;&#xff5c;基于docker快速部署开发环境 什么是 Nexus Nexus是一个强大的仓库管理器&#xff0c;主要用于搭建和管…

ceph如何增删改查的管理文件

1.创建 Ceph 存储库文件 sudo tee /etc/yum.repos.d/ceph.repo <<EOF [ceph] nameCeph packages for $basearch baseurlhttps://download.ceph.com/rpm-pacific/el8/\$basearch/ enabled1 gpgcheck1 typerpm-md gpgkeyhttps://download.ceph.com/keys/release.asc[ceph-…

200T 数据库非归档无备份恢复---惜分飞

一套近200T的,6个节点的RAC,由于存储管线链路不稳定,导致服务器经常性掉盘,引起asm 磁盘组频繁dismount/mount,数据库集群节点不停的重启,修复好链路问题之后,数据库启动报ORA-01113,ORA-01110 通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)脚本检测,发…

TiDB-从0到1-DM工具

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇TiDB-从0到1-集群扩缩容TiDB-从0到1-数据导出导入TiDB-从0到1-BR工具 一、DM原理 支持全量抽取数据\检测新的数据变化同步到下游实例…

易基因:RNA修饰N4-乙酰胞苷(ac4C)的调控机制、检测方法及其在癌症中的作用最新研究进展|新方向

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 N4-乙酰胞苷&#xff08;ac4C&#xff09;是一种高度保守的化学修饰&#xff0c;广泛存在于真核和原核生物RNA中&#xff0c;如tRNA、rRNA和mRNA。这种修饰与多种人类疾病显著相关&#…

【计算机科学的数学基础】二分法查找

二分法查找 问题引入在有序数列中查找 问题引入 问&#xff1a;有15个犯罪嫌疑人排成一排&#xff0c;其中只有1个是真正的“犯人”。你要通过问他们“犯人在哪里&#xff1f;”来找出真正的犯人。没问一次问题都会得到以下3种答案&#xff1a; 我是犯人犯人在我左边犯人在我右…

MATLAB多项式拟合

订阅专栏或下载资源可以获得源代码:https://download.csdn.net/download/callmeup/89632160 拟合和插值 拟合和插值是两种常见的数学方法,用于以某种方式近似或估计实际数据。 拟合是在给定一组已知数据点的情况下,通过选择一个合适的数学模型来拟合数据。拟合的目标是找到…