最小成本强连通有向图

2024-02-06

我有一个强连接的有向图(即图 G 中的每对节点 (i, j) 都有一条从 i 到 j 和 j 到 i 的路径)。我希望从该图中找到一个强连通图,使得所有边的总和最小。

换句话说,我需要以这样的方式删除边,即删除它们后,图仍然是强连接的,并且边总和的成本最小。

我认为这是一个NP难题。我正在为 20 个节点等一小组数据寻找最佳解决方案,而不是近似值。

Edit

更一般的描述:给定一个图 G(V,E) 找到一个图 G'(V,E'),如果 G 中存在从 v1 到 v2 的路径,则 G 中也存在 v1 和 v2 之间的路径' 并且 E' 中每个 ei 的总和是最小可能的。所以它类似于寻找最小等效图,只是在这里我们想要最小化边权重的总和而不是边的总和。

Edit:

到目前为止我的方法: 我想过使用多次访问的TSP来解决它,但这是不正确的。我的目标是使用成本最低的路径覆盖每个城市。所以,我猜这更像是封面设置问题,但我不太确定。我需要使用总成本最小的路径覆盖每个城市,因此多次访问已经访问过的路径不会增加成本。


你的问题被称为最小跨度强子(di)图(MSSS),或者更一般地说,跨越子(di)图的最小成本,并且是。另见另一本书: and .

我首先删除所有不满足三角形不等式的边 - 如果 a -> b -> c 更便宜,则可以删除边 a -> c 。这让我想起了 TSP,但不知道这是否会导致任何结果。

我之前的回答是使用Chu-Liu/Edmonds 算法 http://en.wikipedia.org/wiki/Edmonds%27s_algorithm这解决了树状 http://en.wikipedia.org/wiki/Arborescence_%28graph_theory%29问题;正如 Kazoom 和 ShreevatsaR 指出的那样,这没有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最小成本强连通有向图 的相关文章

  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • 如何跳过财务图中的空日期(周末)

    ax plot date dates dates highs lows 我目前正在使用此命令来绘制财务高点和低点Matplotlib http en wikipedia org wiki Matplotlib 效果很好 但如何删除 x 轴上
  • iOS 上有像 JUNG 这样的可视化框架吗?

    有没有类似的可视化框架JUNG http jung sourceforge net applet index html对于iOS 我想实现类似的东西this http prefuse org gallery graphview iOS 上最
  • 生成和保存 ZedGraph 绘图而不在表单上显示

    是否可以将数据绘制到 ZedGraph 图表上并将其保存为文件 而不显示 生成用户可见的图表 我希望处理大量数据集并生成图表并将其保存到文件中以便在应用程序外部查看 如果无法做到这一点 是否可以在隐藏 最小化表单上显示图形 保存图形 关闭窗
  • 查找重叠事件/时间的算法

    在处理自定义日历时 我不知道如何找到与任何其他时间段重叠的时间段 时段从 0 点至 720 点 上午 9 点至晚上 9 点 每个像素代表一分钟 var events id 1 start 0 end 40 an event from 9 0
  • 为什么我们需要检测链表中的循环

    我看到很多关于如何检测链表中的循环的问答 但我想了解的是我们为什么要这样做 换句话说 检测链表中的循环的实际用例是什么 在现实生活中 您可能永远不需要检测链表中的循环 但是执行此操作的算法很重要 我在现实生活中多次使用它们 例如 我经常会递
  • 比较两棵树的伪代码

    这是我遇到过几次的问题 并且不确信我使用了最有效的逻辑 例如 假设我有两棵树 一棵是文件夹结构 另一棵是该文件夹结构的内存 模型 我希望比较两棵树 并生成一棵树中存在的节点列表 而不是另一棵树中存在的节点列表 反之亦然 是否有公认的算法来处
  • 算法:找到圆中的峰值

    Given n排列成圆圈的整数显示了一种可以找到一个峰值的有效算法 峰值是不小于它旁边的两个数字的数字 一种方法是遍历所有整数并检查每个整数以查看它是否是峰值 这产生O n 时间 似乎应该有某种方法来分而治之 以提高效率 EDIT 好吧 基
  • 对列表中的相邻元素进行分组

    假设我想编写一个函数来执行此操作 输入 1 1 3 3 4 2 2 5 6 6 输出 1 1 3 3 4 2 2 5 6 6 它将相同的相邻元素分组 这个方法的名称应该是什么 此操作有标准名称吗 In 1 1 3 3 4 2 2 5 6 6
  • java中的Anagram算法

    我想做字谜算法但是 这段代码不起作用 我的错在哪里 例如 des 和 sed 是字谜 但输出不是字谜 同时我必须使用字符串方法 不是数组 public static boolean isAnagram String s1 String s2
  • 查找数组中的重叠数据

    我们正在编写一个 C 应用程序 它将有助于删除不必要的数据重复器 只有在以下情况下才可以移除中继器 all它接收到的数据被其他中继器接收 我们第一步需要做的事情解释如下 例如 我有 int 数组的集合 A 1 2 3 4 5 b 2 4 6
  • 为什么使用 no-op 来填补 paxos 事件之间的空白是合法的?

    我正在学习Paxos算法 http research microsoft com en us um people lamport pubs paxos simple pdf http research microsoft com en us
  • 递归:n项级数之和

    需要递归函数 系列是 1 2 3 3 4 5 4 5 6 7 递归求 n 的级数之和 我无法想到应该在函数中传递哪些参数 我的方法 我认为我应该传递 n 要相乘的项数 但我无法想到的是我应该如何在同一个函数中 和 以及我的 return 语
  • RNG 技术的可移植性和可重复性

    我可以使用两种方法之一来创建一个伪随机数序列 该序列具有两个重要特征 1 它可以在不同的机器上重现 2 该序列永远不会重复范围内的数字 直到所有数字都被发出 我的问题是 这两种方法在可移植性 操作系统 Python 版本等 方面是否存在潜在
  • 如何以最小化每个分区总和的最大值的方式对整数数组进行分区?

    输入是正整数或空整数的数组 A 和另一个整数 K 我们应该将 A 划分为 K 个连续元素块 我所说的 划分 是指 A 的每个元素都属于某个块 并且 2 个不同的块不包含任何共同元素 我们将块的总和定义为该块的元素的总和 目标是在 K 个块中
  • 找到将一个数字转换为另一个数字的最小移动次数的算法

    假设我们有两个正整数 a 和 b 每次移动我们都可以将 a 除以 2 但前提是 a 是偶数 将 a 乘以 2 或者将 a 加 1 将a变为b需要多少步 找到一个直接公式或一种有效的算法 即以对数时间运行的算法 我取得的一些进展 我们可以把它
  • 使用 matplotlib.animation 从 CSV 文件实时绘图 - 数据绘制到第一个输入错误

    我正在尝试绘制来自不断写入 CSV 文件的传感器的数据 虽然成功创建实时绘图 但每个新数据条目都会创建一条延伸到第一个数据条目的附加线 见下文 Python 3 4 脚本 import matplotlib pyplot as plt im
  • 为每个英文单词生成唯一序列号的算法

    对于应用程序 我需要为每个英语单词生成唯一的序列号 最好的方法是什么 一个限制是序列号生成算法应该在普通台式计算机中非常有效 Thanks 你有所有可能的单词的列表吗 如果是 则从第一个字的 0 开始 每个字将序列号加 1 如果不是 那么保
  • 在 O(n) 时间内对列表中的数字方块进行排序?

    给定一个按排序顺序排列的整数列表 例如 9 2 0 2 3 我们必须对每个元素进行平方并按排序顺序返回结果 所以 输出将是 0 4 4 9 81 我可以找出两种方法 O NlogN 方法 我们将每个元素的平方插入哈希集中 然后将元素复制到列
  • 竞争性编码 - 以最低成本清除所有级别:未通过所有测试用例

    当我遇到这个问题时 我正在一个竞争性编码网站上解决问题 问题指出 游戏中有 N 个关卡和 M 种可用武器 等级编号从 0 到 N 1 武器编号从 0 到 M 1 您可以按任意顺序清除这些级别 在每个关卡中 需要这些 M 武器的某些子集才能通

随机推荐

  • 尽管设置了精度,MSSQL 表中的小数仍会四舍五入

    我的 c 对象有一个小数属性 public decimal LastPrice get set 在处理我的对象时 设置了十进制值 例如 LastPrice 0 091354 我修改了 DbContext 以提高小数精度 如另一篇 stack
  • 在 iPhone Objective C 中禁用 UIDatePicker 中的过去日期

    我是 Objective C 和 iPhone 开发的新手 我在 iPhone 应用程序中使用 UIDatePicker 我的要求是允许用户仅从 DatePicker 中选择未来日期 为此 我想仅在 DatePicker 中禁用过去的日期和
  • 相机或图库意图会破坏某些设备上的旧活动

    我正在开发使用 WebView 来显示其内容的应用程序 不过 需要打开相机或图库才能选择图片 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE C
  • Windows 7 中未加载 PHP 7 FTP 扩展

    我最近在 Windows 7 操作系统 32 位 中安装了 PHP 7 我使用 FTP 库 nicolab php ftp client 来实现 FTP 功能 但出现异常 致命错误 未捕获 FtpClient FtpException FT
  • SBT 未找到 scala 2.10.1 的 scalatest

    我正在尝试学习如何使用 SBT 但我发现以下简单示例无法找到 scalatest 的版本 name DoingItWrong version 0 0 1 scalaVersion 2 10 1 libraryDependencies Seq
  • 如何使用 Code First Entity Framework 4.1 获取完整对象

    我试图以 JSON 形式返回完全深层的对象 填充了所有外键关系 但我得到的所有引用对象均为空值 这是获取对象的调用 public ActionResult GetAll return Json ppEFContext Orders Json
  • 每个时间步更新 ODE 求解器中的初始条件

    我想要求解一个 ODE 系统 在前 30 000 秒内 我希望状态变量之一从相同的初始值开始 30 000 秒之后 我想将该状态变量的初始值更改为不同的值 并在其余时间模拟系统 这是我的代码 def ode rhs y t ydot 0 p
  • 数据库中的动态站点地图不显示节点

    我已经实现了这个https github com maartenba MvcSiteMapProvider wiki Defining sitemap nodes using IDynamicNodeProvider https githu
  • 为什么在本地 k8s 环境中使用 nginx-ingress 控制器和资源时有时需要编辑 /etc/hosts?

    不确定这是否特定于操作系统 但在我的 M1 Mac 上 我正在安装位于官方的 Nginx 控制器和资源示例控制器快速入门指南 https kubernetes github io ingress nginx deploy quick sta
  • jQuery DOM 操作效率 - 使用 JavaScript 构建整个页面

    我将从一个完全空白的页面开始 除了 html head 和 body 之外没有任何元素 然后使用 jQuery 构建页面 页面内容将采用来自 AJAX 请求的 JSON 形式 JSON 中的内容不会有任何 HTML 将根据 JSON 对象的
  • 使用 TypeScript 将箭头函数编译为常规函数

    这是一个非常简单的问题 但我还没有在任何地方找到答案 是否有一些开关可以使 TypeScript 将箭头函数编译为纯 JavaScript 函数 我在代码中经常使用它们 并且不想重写所有内容 但我最近意识到 IE 不支持它们 我已经尝试将脚
  • 创建一个全局类 Objective-c?

    我想在 Objective C 中创建一个具有已存储数据的类 以便访问数据时我不想实例化该类 我该怎么做 您可以使用单例 也可以使用仅由类方法组成并允许您访问静态数据的类 这是 ObjC 中的基本单例实现 interface MySingl
  • 如何修改此脚本以获取参数?

    我有一个结合了电源点的电源 shell 脚本 问题是它仅适用于当前目录 脚本所在的目录 中的电源点并将组合的电源点保存到文档中 如何更改脚本以从作为参数给出的任何目录运行 我像这样运行 power shell 脚本 Merge Presen
  • z 索引无法正常工作

    所以我正在制作一个网站 我有一个带有一些盒子阴影的顶部栏 然后我的正下方有一个描述框 因此 我设置了 z 索引以确保顶部栏 box shadow 会使用以下 css 覆盖描述框 topbar z index 9999 important d
  • 如何在汇编中实现 mod 运算符

    我正在学习汇编语言中的除法 根据我正在学习的书 idiv运算的结果放在eax中 余数放在edx中 书中的一个练习是实现number result divisor在装配中 我本以为这相当于正常的除法运算 除了 edx 是结果 然而这并没有起作
  • jQuery UI 可排序 - 对图像进行排序

    我刚刚为一组图像实现了 jQuery UI 可排序插件 我的标记如下 ul class ui sortable li img src images member 4698568 7884029 t jpg alt li li img src
  • WebBrowser 控件不会从 C# 打印

    我在 WinForms 应用程序上有一个 WebBrowser 控件 它正在加载转换为 HTML CSS 的 XML 如果我只想在那里或在常规浏览器中查看它 看起来很漂亮 当表单加载时 它应该导航到该文件 然后当 OnDocumentCom
  • 如何使用ssr在nuxt中添加ckeditor插件

    我正在尝试在我的通用 nuxt 应用程序中添加 ckeditor 5 的对齐插件 SSR 我在插件中尝试过这样 import Vue from vue import ClassicEditor from ckeditor ckeditor5
  • Jekyll编码类别特殊字符名称

    我的 Jekyll 安装曾经可以工作 自更新以来 我遇到了 URL 包含带有一些特殊字符的标签名称的问题 现在 当我尝试访问包含特殊字符的 URL 时 会收到一条错误消息 例如http 127 0 0 1 4000 tag Actualit
  • 最小成本强连通有向图

    我有一个强连接的有向图 即图 G 中的每对节点 i j 都有一条从 i 到 j 和 j 到 i 的路径 我希望从该图中找到一个强连通图 使得所有边的总和最小 换句话说 我需要以这样的方式删除边 即删除它们后 图仍然是强连接的 并且边总和的成