两个指定顶点之间的最短两条不相交路径

2023-11-29

给定一个加权无向图G和两个顶点a, b,我们想要找到两条路径一个 -> 乙 and b -> a使得它们不共享任何边,并且两条路径中边的权重之和最小。最多可以有1,000顶点,直到10,000 edges.

我最初尝试提出一种动态编程方法,但找不到这样的方法。任何想法/建议将不胜感激。


This is 最小成本流问题。您可以为每条边分配等于 1 的流容量,然后搜索之间的最小成本流a and b流量=2。


有人可能认为可以使用简单的算法来找到最短路径a to b,从图中删除其边,然后找到另一条最短路径。

这种方法并不总是最佳的。对于某些图表,它给出了很好的近似值。对于其他人来说,它可能会给出一个非常糟糕的解决方案:

enter image description here

在移除第一条最短路径(绿色)的边缘后,唯一剩下的路径(红色)非常重。该方案的成本为1+1+10+1+1+2+90+2=108。而最优成本是1+15+1+2+1+10+1+2=32。

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

两个指定顶点之间的最短两条不相交路径 的相关文章

  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • 快速求解子集和

    考虑这种解决子集和问题的方法 def subset summing to zero activities subsets 0 for activity cost in activities iteritems old subsets sub
  • 确定解决迷宫问题的最小线段数

    我有一个问题 我需要定义一个具有最少数量的顶点的多边形 该多边形与不透明的图像中的每个像素相交或包含每个像素 令 N 为图像中的像素数 我唯一的假设是图像的边界 孔 内不能包含透明像素 并且至少有两个像素是不透明的 举个例子 假设我有以下图
  • 点集子集的最小周长凸包

    给定平面上的 n 个点 没有 3 个共线 给定数字 k 找到 k 个点的子集 使得 k 个点的凸包在 k 个点的子集的任何凸包中具有最小周长 我可以想到一个简单的方法 运行时间为 O n k k log k 找到大小为 k 的每个子集的凸包
  • 由周期表元素形成的最大单词的算法

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • 无需构建树即可预测霍夫曼压缩比

    我有一个二进制文件 我知道其中每个符号出现的次数 如果我要使用霍夫曼算法压缩它 我需要预测压缩文件的长度 我只对假设的输出长度感兴趣 而不对单个符号的代码感兴趣 因此构建霍夫曼树似乎是多余的 作为一个例子 我需要得到类似的东西 包含 4 个
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 分而治之策略来确定列表中是否有超过 1/3 的相同元素

    我正在使用分治算法来确定列表中是否有超过 1 3 的元素相同 例如 1 2 3 4 不 所有元素都是唯一的 1 1 2 4 5 是的 其中 2 个是相同的 没有排序 是否有分而治之的策略 我陷入了如何划分的困境 def is valid i
  • C 埃及分数

    古埃及人仅使用以下形式的分数1 n因此任何其他分数都必须表示为这些单位分数的总和 而且 所有单位分数都是不同的 在C或Java中使任何分数成为埃及分数 总和越少越好 的好方法是什么 可以使用什么算法 分支定界 a 例如 3 4 1 2 1
  • 带路径压缩算法的加权 Quick-Union

    有一种 带路径压缩的加权快速联合 算法 代码 public class WeightedQU private int id private int iz public WeightedQU int N id new int N iz new
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 优化 LATERAL join 中的慢速聚合

    在我的 PostgreSQL 9 6 2 数据库中 我有一个查询 该查询根据一些股票数据构建计算字段表 它为表中的每一行计算 1 到 10 年的移动平均窗口 并将其用于周期性调整 具体来说 CAPE CAPB CAPC CAPS 和 CAP
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • make_shared<>() 中的 WKWYL 优化是否会给某些多线程应用程序带来惩罚?

    前几天我偶然看到这个非常有趣的演示 http channel9 msdn com Events GoingNative GoingNative 2012 STL11 Magic Secrets作者 Stephan T Lavavej 其中提
  • 迭代任意大小的子集

    我可以迭代大小为 1 的子集 for int a 0 a lt size a 或大小为 2 的子集 for int a1 0 a1 lt size a1 for int a2 a1 1 a2 lt size a2 or 3 for int
  • 如何修复 TypeError: G 必须是 'd' 矩阵?

    目标 尝试通过优化过程运行玩具数据集 我遇到以下错误 TypeError Traceback most recent call last
  • 如何从迭代器推导连续内存

    不知何故 本土stl copy VC Dinkumware 上的算法表明它可以使用memcpy 可以轻松复制的数据 一个凡人能做到这一点吗 假设每个元素都是普通可复制的 random access iterator 是否意味着连续内存 标准
  • 归并排序中递归树的高度log(n)+1是怎么来的

    我按照 stackoveflow 的建议阅读了一些问题和答案 我正在遵循 cormen 的 算法简介 一书进行自学 那本书里已经解释得很清楚了 但唯一没有解释的是如何在合并排序分析中计算树的高度 如果在后面的章节中对此进行解释的话 我仍然在
  • 在 O(n) 时间内排序?

    我被这个问题困扰了 2周 知道如何处理它吗 令 L 为 n 个不同整数的列表 假设 L 的 x 的元素在 1 750 范围内 设计线性排序算法对 L 的元素进行排序 我已经尝试过插入排序 但我不确定我的方法是否正确 Construct an
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析

随机推荐

  • Firebase 在大数据集上的性能

    我正在为一个项目测试 firebase 该项目可能有相当多的密钥 可能有数百万个 我已经测试过使用节点加载几万条记录 加载性能看起来不错 然而 如果我展开根节点 FORGE Web UI 会变得极其缓慢 并且会渲染每条记录 Firebase
  • 将属性注册为 DependencyProperty

    我有一个名为 ChartView 的用户控件 我有一个 ObservableCollection 类型的属性 我已经在 ChartView 中实现了 INotifyPropertyChanged ChartEntry 的代码是 public
  • 获取 popover 的 data-content 内 HTML 标签的元素

    我正在 Bootstrap3 的 popover 中工作 我在这里放置了如下 HTML 内容 a href class btn title Test Click Here a 我无法引用 data content 属性中存在的 html 元
  • boost binary_oarchive 对于不同的编译器的工作方式不同

    我需要在客户端和服务器之间传输数据 当我将服务器从 Windows msvc140 移动到 Debian gcc 64 位 时 我的字节流类出现了问题boost 他们的档案是不同的 include
  • 如何使用 iText 将图形绘制为 PDF?

    我正在尝试完成一个绘制图形并将其写入 PDF 的示例 但我不断收到 PDF 没有页面的错误 如果我在打开后使用 document add 添加一些简单的东西 它工作正常 我只是永远看不到图形 这是我的代码 Document document
  • 用contentResolver删除短信太慢

    我想删除手机上的所有短信 除了每次对话的最后 500 条短信 这是我的代码 但速度非常慢 删除一条短信大约需要 10 秒 我如何加速这段代码 ContentResolver cr getContentResolver Uri uriConv
  • 简单的 ImageView 颜色动画

    您好 我对 Android 比较陌生 如果可能的话 我希望获得一些关于在哪里搜索以解决我的问题的指南或建议 显然 我不具备发布图像的声誉 因此我会尽力解释它 假设我有一个空瓶子 一旦调用这个片段 活动 我想引入一个动画 它将逐渐垂直地 从下
  • 从列表中获取 min() 和 max() 的有效方法? [复制]

    这个问题在这里已经有答案了 我的问题来自发布到的答案如何在python 3中找到任意列表中缺失的数字 大多数解决方案建议使用类似的东西 a 10 12 13 8 get set of full numbers allNums set x f
  • HTML5 中样式元素的“scoped”属性当前状态如何?

    这里说明了http www w3 org TR html markup style html style 允许的父元素 任何可以包含元数据元素 div noscript 的元素 节 文章 旁白 that
  • 来自用户空间的 int 指令

    我的印象是 x86 上的 int 指令没有特权 所以 我认为我们应该能够从用户空间应用程序执行这条指令 但似乎并非如此 我正在尝试从 Windows 上的用户应用程序执行 int 我知道这样做可能不对 但我想找点乐子 但 Windows 正
  • 使用 java 进行 Flyway 迁移

    我学习了使用java进行flywaydb迁移 可以使用JDBC连接 还可以通过SpringTemplate进行spring支持 但是flyway不能与DAO一起使用 对于具有更多关系的表 实体 使用 DAO 而不是 sql 进行迁移要容易得
  • 如何使MySQL表的某一列不可见

    我正在 ID 列上运行查询 但我不希望它在我的框架 窗格中可见 我怎样才能实现这个目标 我应该再创建一个表吗 sql mysql 中有一个可以隐藏列的函数吗 我尝试用谷歌搜索 但还没有找到任何东西 这是代码 public void tabl
  • 带有延迟加载的自定义列表

    I have successfully implemented like this for lazy loading in custom list 我为此使用的代码在这里 黑莓中带有图像的自定义列表在链接的问题中 我定位了心形图标的 y 坐
  • 从 ggplot2 中删除顶部和右侧边框[重复]

    这个问题在这里已经有答案了 是否可以从 ggplot2 图表中删除顶部和右侧边框 即 我想保留 x 轴和 y 轴 但删除图形周围的其余黑框 M 看到这个线程 它专门处理这里的问题 http groups google com group g
  • plot.window(...) 中的 R 错误需要有限的“xlim”值

    我想绘制一个 data frame 我的问题是出现以下错误 Error in plot window need finite xlim values In addition Warning messages 1 In xy coords x
  • 在 chrome://settings 和类似的 url 上运行用户脚本

    为什么 tampermonkey 对以下网址不起作用chrome history or chrome settings 有什么方法可以在此页面上运行用户脚本吗 不幸的是 这是不可能的 因为chrome方案 chrome 不支持 match的
  • 即使执行 IF 语句的 Else 语句也是 TRUE

    我有一个问题Python标题中描述的语言 for slovo in slova if pygame mouse get pressed 0 and slovo rect collidepoint pygame mouse get pos f
  • XCode Bots API 配置编辑失败

    我想通过 XCode Bots API 更改机器人的方案名称 像这样的请求 curl XPATCH H Content Type application json H x xcsclientversion 8 https localhost
  • 在部署时无需 Regsrv32 即可将 TLB 转换为托管 .NET 程序集

    我有一个作为第三方 API 的一部分提供的 TLB 我使用 TLBIMP exe 生成 DLL 程序集包装器 然而 在开发时 该程序集似乎需要使用 regsvr32 注册才能使用 然而 这在开发时不是问题 我在生产中使用托管实例 并且在部署
  • 两个指定顶点之间的最短两条不相交路径

    给定一个加权无向图G和两个顶点a b 我们想要找到两条路径一个 gt 乙 and b gt a使得它们不共享任何边 并且两条路径中边的权重之和最小 最多可以有1 000顶点 直到10 000 edges 我最初尝试提出一种动态编程方法 但找