最小化二分图中的交叉数

2024-01-19

在为不相关的东西绘制图表时,我遇到了以下算法问题:

我们有一个二部图的平面图,其中不相交的集合按列排列,如图所示。我们如何重新排列每列内的节点以使边缘交叉的数量最小化?我知道这个问题对于一般图来说是 NP 困难的(link http://en.wikipedia.org/wiki/Crossing_number_%28graph_theory%29#Complexity),但是考虑到该图是二分图,是否有一些技巧?

作为后续,如果有第三列怎么办w,它只有边v?或者更进一步?


论文关于二分图中的单边交叉最小化 Hiroshi 的大学位 长持 http://www.sciencedirect.com/science/article/pii/S0304397504007911提到加里(Garey)关于交叉数的原始论文和 约翰逊还证明了最小化边缘交叉的数量 对于二分图来说是 NP 困难的。事实上,它仍然是NP困难的 即使您被告知一列的最佳顺序:

给定一个二部图,一个 2 层绘图由放置节点组成 在直线 L1 上的第一个节点集 V 中并将节点放置在 平行线L2上的第二节点集W。最小化问题 2层绘图中圆弧之间的交叉数为第一个 由 Harary 和 Schwenk 提出。单边交叉最小化 问题要求找到 V 中要放置在 L1 上的节点的顺序,因此 弧交叉的数量被最小化(同时 L2 上 W 中的节点是给定并固定的)。问题的应用 可以在 VLSI 布局和分层绘图中找到。

然而,双面和单面问题被证明是 NP 困难的 分别由 Garey 和 Johnson 以及 Eades 和 Wormald 撰写。

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

最小化二分图中的交叉数 的相关文章

  • 在鼠标光标位置添加 cytoscape 节点

    我想在画布上的单击事件上的鼠标箭头位置添加一个 cytoscape 节点 我怎样才能做到这一点 我的方法 效果不太好 我可以通过单击创建一个节点 但无法确保创建的节点的位置位于我单击的位置 使用这样的东西 cy click function
  • 在 O(n) 时间内排序?

    我被这个问题困扰了 2周 知道如何处理它吗 令 L 为 n 个不同整数的列表 假设 L 的 x 的元素在 1 750 范围内 设计线性排序算法对 L 的元素进行排序 我已经尝试过插入排序 但我不确定我的方法是否正确 Construct an
  • 以 O(1) 计算汉明权重 [重复]

    这个问题在这里已经有答案了 在二进制表示中 汉明权重是 1 的数量 我偶然发现了网络并找到了一个 O 1 的答案 v v v gt gt 1 0x55555555 v v 0x33333333 v gt gt 2 0x33333333 in
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 有没有时间复杂度为O(N)的排序算法?

    大多数排序算法的复杂度为 O NN 或 O NlogN 来实现结果 但是 对于特定的输入集 有些算法的复杂度为 O N 我想知道是否有一种排序算法在所有情况下都具有 O N 的复杂度 如果您只能比较 检查两个项目是否为 正在排序的值 那么您
  • 平铺单纯形噪声?

    我 作为业余爱好者 对伪随机噪声生成很感兴趣 特别是 Perlin 和 Simplex 算法 Simplex 的优点是速度 尤其是在更高的维度上 但 Perlin 可以相对容易地平铺 我想知道是否有人知道平铺单纯形算法 固定维度就好 泛型更
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 如何优化分割重叠范围?

    我编写的这个 Python 脚本用于将重叠范围拆分为唯一范围 最后一次迭代 https codereview stackexchange com questions 285932 python script to split overlap
  • 使用到达时间差对信号进行三边测量

    我在寻找或实现寻找信号源的算法时遇到一些麻烦 我的工作目标是找到声音发射器的位置 为了实现这一点 我使用了三个麦克风 我正在使用的技术是多点定位这是基于到达时间差 The 到达时间差使用发现每个麦克风之间互相关接收到的信号 我已经实现了算法
  • 用于计算有向图上非循环路径数量的快速算法

    简而言之 我需要一个fast计算简单有向图中有多少条非循环路径的算法 By simple我的意思是没有自环或多重边的图 Apath可以从任何节点开始 并且必须在没有传出边的节点上结束 一条路径是acyclic如果没有边出现两次 我的图 经验
  • 通过排列四个给定数字找到最大可能时间 HH:MM

    我最近为了工作晋升而参加了编码测试 这是我真正遇到的任务之一 我想知道什么是最好的方法来做到这一点 我使用了大量的 if 和 if else 这不是最干净的解决方案 但完成了工作 我被问到的问题是 将 4 个数字格式化为 24 小时时间 0
  • 比 BMH (Boyer–Moore–Horspool) 更快的算法

    您会使用哪种算法来搜索短文本中的短子字符串 简而言之 我的意思是子字符串有 5 10 个字符 字符串有 255 个字符 我正在考虑根据输入数据长度选择算法 哪种算法对于较长的输入更好 Try Turbo BM http www igm un
  • 融合元组以查找等价类

    假设我们有一个包含 k 个元素的有限域 D d1 dk 我们认为 S 是 D n 的子集 即一组 形式的元组 其中 ai 在 D 中 我们希望使用 S 2 D n 的子集 即一组 形式的元组 其中 Ai 是 D 的子集 来 紧凑地 表示它
  • 如何提高洪水填充例程的性能?

    我正在我的应用程序中实现四路洪水填充 伪代码如下 Flood fill node target color replacement color 1 If the color of node is not equal to target co
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 数字求和的算法?

    我正在寻找一种数字求和的算法 让我概述一下基本原则 假设你有一个号码 18268 1 8 2 6 8 25 2 5 7 7 是我们的最终数字 它基本上是将整个数字中的每个数字相加 直到我们得到一个 也称为 核心 数字 它经常被命理学家使用
  • 如何跳过财务图中的空日期(周末)

    ax plot date dates dates highs lows 我目前正在使用此命令来绘制财务高点和低点Matplotlib http en wikipedia org wiki Matplotlib 效果很好 但如何删除 x 轴上
  • 在Python中确定句子中2个单词之间的邻近度

    我需要确定 Python 句子中两个单词之间的接近度 例如 在下面的句子中 the foo and the bar is foo bar 我想确定单词之间的距离foo and bar 确定之间出现的单词数foo and bar 请注意 该词
  • 从对列表创建邻接列表类型结构

    在 C 中 我有 class Pair int val1 int val2 我有一个来自以下来源的配对列表 List

随机推荐

  • libVLC 函数 media_player_new() 抛出分段错误

    media player new 抛出分段错误 import vlc ins vlc Instance player ins media player new 这是它崩溃的地方 Thread 0 Crashed Dispatch queue
  • scala:为什么 1/0 是算术异常但 1.0/0.0 = Double.Infinity

    在 Scala 中 整数算术除以零会抛出 a 这似乎不一致java lang ArithmeticException by zero 但是浮点运算 1 0 0 0 返回Double Infinity 我知道从类型的角度来看 同时拥有 Dou
  • 默认函数参数的有效表达式

    函数或成员函数中默认参数的有效表达式有哪些可能类型 在对函数参数类型的变量进行赋值的上下文中任何正确的内容 Edit编译期间的默认参数根据类型正确性等进行评估 但不会计算它们 并且直到运行时才会进行赋值 您可以将尚未定义的类的构造函数指定为
  • 如何根据方法名称动态调用方法? [复制]

    这个问题在这里已经有答案了 当方法的名称包含在字符串变量中时 如何动态调用该方法 例如 class MyClass def foo end def bar end end obj MyClass new str get data from
  • Forth 中的内存管理

    所以我刚刚学习 Forth 很好奇是否有人可以帮助我了解内存管理通常是如何工作的 目前我只有 一些 C 堆栈与堆范例的经验 据我了解 可以在字典中分配 也可以在堆上分配 字典是否像 C 中的堆栈更快 更受欢迎 但与 C 不同的是 它没有作用
  • Excel,将一个范围附加到一列中另一个范围的末尾

    我的 Excel 中有两列数据 我想添加结合第一列和第二列的第三列 如何使用公式执行此操作 以便可以在 A 列和 B 列中添加或删除数据 而无需接触 C 列 Column A Column B Column C Bob Mary Bob J
  • 是否可以使用一行将流收集到两个不同的集合?

    我有以下代码 为了勇敢而简化 public void search Predicate
  • Jenkins 使用 Git 和 Deploy Key 进行构建

    我将 git 插件添加到 Jenkins 中 我已经作为构建服务器上的 jenkins 用户生成了一个公钥 我将此密钥作为部署密钥添加到 github 我添加了带有 jenkins 名称和电子邮件的全局 git 属性 并且电子邮件与公钥末尾
  • 在 Rails 模型中;保存到数据库时,符号会自动转换为 YAML。正确的做法是什么?

    在我的模型示例游戏中 有一个状态列 但我通常通过使用符号来设置状态 例子 self status active MATCH STATUS betting on gt Betting is on home team won gt Home t
  • Firefox 的 execCommand 复制异步替代方案

    document execCommand copy 可以在 Promise 的解析函数中使用 Firefox 除外 Chrome Opera 甚至 Safari 等所有现代浏览器都允许最多 1 秒的异步复制 我想改善用户体验并在剪贴板中计算
  • 使用 HDFS 更改更新 Hive 外部表

    可以说 我从文件 myFile csv 位于 HDFS 中 创建了 Hive 外部表 myTable myFile csv 每天都会更改 那么我也有兴趣每天更新一次 myTable 是否有任何 HiveQL 查询告诉每天更新表 谢谢 P S
  • AddEntityFrameworkStores 只能由派生自 IdentityUser 的用户调用

    我正在尝试为我的网络应用程序创建一些角色 但由于以下原因它并没有真正起作用Tkey exception 如果您投赞成票 我很高兴 这样其他需要帮助的人就可以更多地看到它 我不知道如何解决它 我认为我的 Startup cs 有问题 无论我尝
  • 将其他计费注册字段与 WooCommerce 中的默认 Wordpress 字段同步

    我已将以下代码添加到 Woocommerce 用户注册表中 以获取注册页面上的账单详细信息 现在当新用户注册时会发生什么 名字和姓氏将在账单详细信息数据库以及默认 WordPress 用户帐户中注册 如果用户更新其帐户 wordpress
  • Git 强制覆盖本地跟踪文件,但不覆盖本地未跟踪文件

    我正在一个名为的本地目录中工作p1其中包含一个 git 存储库 添加分支并对添加的分支进行提交后 我制作了目录的副本p1并称之为p2 我的目的是在目录中尝试合并和变基 只是为了学习 p2 同时从p1当我决定如何合并 重新调整我的更改时 但是
  • 插入符号交叉验证中的预处理

    我有一个关于数据预处理的问题需要澄清 据我了解 当我们通过交叉验证调整超参数并估计模型性能时 我们需要在交叉验证中进行 而不是预处理整个数据集 换句话说 在交叉验证中 我们对训练折叠进行预处理 然后使用相同的预处理参数来处理测试折叠并进行预
  • .NET 示例 VCF 阅读器

    有谁知道使用 C NET 从 VCF 文件中提取数据的好示例 内联回复或网络教程 现在还有人用VCF文件吗 对于联系人管理系统来说 这值得吗 让我有点惊讶的是 它没有内置到 NET Framework 的任何地方 但我确实找到了本教程 我计
  • 将 ExpandoObject 持久保存到 MongoDB

    我有一个具有任意数量属性的 ExpandoObject 我想将这些属性作为 BsonDocument 保存到 MongoDB 数据库 我尝试使用以下代码来执行此操作 private BsonDocument GetPlayerDocumen
  • 如何在 onStart() 方法中从 Firebase 远程配置实现 fetch() ?

    我正在尝试实现调用 Firebase 远程配置fetch 中的方法onStart 我以为这会很容易 但经过几次尝试后却发现并非如此 首先 我想尽快检查新的配置值用户打开应用程序 and 超出缓存过期时间 这就是我选择的原因onStart 方
  • 如何禁用/关闭/刷新 couchdb 缓存

    我有一个列表 其中对文档进行了一些基本身份验证 我遇到的问题是列表正在缓存 因此除非我更新修订 ID 否则用户将看不到他们具有访问权限 如何显示非缓存列表 if req userCtx name doc permissions owner
  • 最小化二分图中的交叉数

    在为不相关的东西绘制图表时 我遇到了以下算法问题 我们有一个二部图的平面图 其中不相交的集合按列排列 如图所示 我们如何重新排列每列内的节点以使边缘交叉的数量最小化 我知道这个问题对于一般图来说是 NP 困难的 link http en w