graph6 格式如何工作?

2024-03-29

我一直在到处寻找 .g6 或 graph6 格式的工作原理,但我不知道它是如何工作的,我发誓它就像魔法一样。

F?B~w

这是一个以 ASCII 形式表示的图表。它可以由 Wolfram Mathematica、Sage 和 Maple 等进行解释,并为我们提供视觉效果。然而,在深入研究 Sage 的开源代码几个小时后,我无法弄清楚他们如何将其视为图表。

我想知道是否可以在上图中搜索哈密顿循环而不必将它们转换为邻接矩阵?或者,如果这是不可能的,我们如何将其转换为邻接矩阵?

任何帮助,将不胜感激。


The 参考格式说明 http://users.cecs.anu.edu.au/~bdm/data/formats.txtOliver Charlesworth 已经提供了,但简而言之,基本思想是将图大小和邻接矩阵的上三角形编码为 ASCII 可打印字符。

  1. 根据原始无向图,计算邻接矩阵。 这保证是对称的,所以我们关心的是上部 该矩阵的三角形,不包括对角线 同样为零。

  2. 接下来,构建一个大小为的位向量n*(n-1)/2通过遍历上层 逐行矩阵的三角形。例如,对于 4x4 矩阵 遍历将是(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)。

  3. 在位向量前面添加图形大小 n(作为二进制字),并将生成的位向量分成每个 6 位的块。

  4. 将每个 6 位块转换为 63 到 126 范围内的整数,然后将每个块转换为相应的 ASCII 字符并将它们连接起来。

请注意,graph6 格式不支持有向图或加权图。我相信它是由 Brendan McKay 创建的(在航海来源 http://pallini.di.uniroma1.it/)并且有两种相关格式:sparse6(用于稀疏图)和 digraph6(用于有向图)。

digraph6 格式似乎相当新(在 nauty 2.6 中添加),与 graph6 类似,只是为了处理有向图,该格式编码减去对角线的整个邻接矩阵,而不仅仅是上三角形。

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

graph6 格式如何工作? 的相关文章

  • 如何在 gnuplot 中设置网格间距

    我的 yaxis 从 0 到 100 我想要每 10 个单位后有一条网格线 我怎样才能做到这一点 即如何在每10个单位之后绘制网格线 看看 帮助网格 你可能想做类似的事情 set yrange 0 100 set xrange 0 10 s
  • 在 ggplot 或lattice 中利用 Surv 对象

    有人知道如何利用 ggplot 或lattice 进行生存分析吗 制作网格或类似面的生存图会很好 所以最后我尝试了一下 找到了卡普兰 迈耶图的解决方案 对于将列表元素放入数据框中的混乱代码 我深表歉意 但我无法找到其他方法 注意 它仅适用于
  • 如何使用 haskell graphViz 绘制图表

    我计划使用 Haskell graphViz 绘制图表 我是 Haskell 的新手 所以这对我来说相当困难 有人可以给我看一个简单的例子吗 实际上我需要一个非常简单的示例 以便我可以理解它并在我正在处理的场景中使用它 我在尝试安装 Cha
  • 收缩networkx中的节点列表

    我有一本带有节点的字典 supernodes list nx connected components G1 的结果print supernodes is 1 2 3 5 8 6 7 9 10 12 13 4 11 14 15 如何将每个列
  • 检测图中的所有圆圈

    我有一个存储在 Map 数据结构中的有向图 其中键是节点的 ID value 是key节点所指向的节点的nodeId数组 Map
  • 如何构建增量有向非循环词图来存储和搜索字符串?

    我试图以简洁的方式存储大量字符串列表 以便可以非常快速地分析 搜索它们 有向非循环词图 DAWG 非常适合这个目的 但是 我首先没有要包含的字符串列表 因此它必须是可增量构建的 此外 当我在其中搜索字符串时 我需要带回与结果相关的数据 而不
  • QSTK 的事件分析器函数无法正确绘制

    在佐治亚理工学院的 Coursera 计算投资课程中使用 QSTK 时 Examples EventProfiler tutorial py 末尾的 eventprofiler 函数不会输出视频中显示的图表 见下图 为第 4 周的练习生成的
  • 在 R 中使用 igraph 获取连接组件

    我想找到一张图的所有连接组件 其中组件具有多个元素 使用clusters给出不同集群的成员资格并使用cliques不给出连通分量 这是后续 R中列表的多重交集 https stackoverflow com questions 304065
  • 给定最大成本,找到具有最小成本和最大长度的路径

    我正在寻找一种算法 以在无向加权完整图中给定最大成本的情况下找到具有最小成本和最大长度的两个节点之间的路径 权重非负 就我现在而言 我正在使用 DFS 而且它非常慢 节点数量较多 长度也最大 我已经在 DFS 的每次迭代中丢弃了所有不可能的
  • 如何将共现矩阵转换为 networkx 图

    我正在使用以下代码将列表列表转换为共现矩阵 lst a b b c d e a d b e u pd get dummies pd DataFrame lst prefix prefix sep groupby level 0 axis 1
  • 匈牙利算法的最少行数

    我想知道匈牙利算法覆盖所有零的最少行数 我已经关注了这个链接 但是那里的代码是一个贪婪的代码 匈牙利算法 如何用最少的行数覆盖0个元素 https stackoverflow com questions 14795111 hungarian
  • 如何创建行列总和为 1 和 0 的对称矩阵

    我试图找到一种优雅的算法来创建 1 和 0 的 N x N 矩阵 但有以下限制 每行每列之和必须为Q 可自由选择 对角线必须是 0 矩阵必须是对称的 矩阵不一定是随机的 然而 随机和非随机解都很有趣 因此对于 Q 偶数 只需使每一行成为向量
  • ggplot2:将面/条文本分割成两行

    考虑以下带有长面 条带文本的 ggplot2 图 断成两行 该文本超出了专门用于分面标题的区域 library ggplot2 x lt c 1 3 1 3 y lt c 3 1 1 3 grp lt c 0 0 0 1 1 1 p lt
  • 用于生成交互式图的 Java 库

    我想将我们的 SOA 服务可视化为图表 我们有商业服务和领域服务 gt domain service 1 e g business service 1 gt domain service 2 gt domain service 3 我目前使
  • 通过 DFS 查找图中的强连通分量

    我正在阅读有关 BFS 和 DFS 的图算法 当我分析通过DFS在图中查找强连通分量的算法时 我想到了一个疑问 为了找到强连通分量 书 Coremen 做了什么 首先它在图上运行 DFS 以获得顶点的完成时间 然后再次以完成时间的降序在图的
  • 在 Python 中使用邻接表构建节点图

    我有一个Node类如下 class Node def init self val 0 neighbors None self val val self neighbors neighbors if neighbors is not None
  • 在 Haskell 中阅读 GraphML

    我正在尝试将包含单个有向图的 GraphML 文件读入 HaskellData Graph http hackage haskell org package containers 0 2 0 1 docs Data Graph html为了
  • Bellman-Ford 算法检测什么?负重还是负循环?

    如果给定一个图 现在我们要从源头计算最短路径 现在 如果一条边具有负权重 但在到达目的地时有边到后边返回到该边 我的意思是如果没有循环 那么我们就没有负循环 但是here http en wikipedia org wiki Bellman
  • 在无向图中查找强连通分量

    我想在无向图中找到强连接的组件 即如果我从节点开始A然后我会回到节点A并且每条边都被恰好访问一次 对于有向图可以使用Tarjan算法来寻找强连通分量 但是对于无向图怎么办 我认为您错过了强连通分量的含义 强连接组件 如果所有顶点对之间都存在
  • Gremlin 中的广度优先枚举

    我正在尝试使用 Gremlin 进行广度优先枚举 但是我无法找到一种方法来输出枚举期间观察到的所有步骤 我只能打印出最后一次迭代的结果 我的问题是 给定这样的起始节点 我如何使用 Gremlin 跟踪所有路径 不知道整体深度 并打印出我沿途

随机推荐

  • 通过克隆/推/拉传播远程位置

    我们的项目使用了几个第三方开源库 其中一些需要自定义修改 对于每个库 我们创建了自己的本地 git 存储库 并将原始源位置添加为vendor远程 从那里克隆 根据需要修改它并将其推送到内部远程存储库 我们称之为origin 然后 这些存储库
  • 从数组公式返回单个单元格

    我想从这个公式中获得一个值 即收盘价 GoogleFinance NASDAQ AAPL close 12 13 2012 1 1 相反 此公式填充 2 个标题行 日期 收盘价 然后填充两个值 日期和收盘价 529 69 有没有办法只返回收
  • android.hardware.camera2.CaptureRequest 可以与 OpenCV 一起使用吗?

    我已经为此工作好几天了 我有一个基于 OpenCV JavaCameraView 的项目 我正在尝试与 Android 集成android hardware camera2 CaptureRequest我用来控制相机对光的敏感度的对象 Th
  • 当尝试将重复对象插入集合时,正确的 .NET 异常抛出是什么?

    我有一个 Asset 对象 它有一个属性 AssignedSoftware 它是一个集合 我想确保同一个软件不会多次分配给资产 在 Add 方法中 我检查软件是否已存在 如果存在 我想抛出异常 是否有我应该抛出的标准 NET 异常 或者最佳
  • 将 pandas 0.13.0“打印数据帧”更改为像早期版本中那样打印数据帧

    在 pandas 的新版本 0 13 0 中 数据帧 df 使用以下命令打印在一长串数字中 df or print df 而不是像以前那样进行概述 现在只能使用 df info 是否可以更改默认的 df 或 print df 命令以显示 I
  • 将 youtube url 转换为 iframe 嵌入代码

    我一直在尝试找到一个正则表达式模式来用 iframe 嵌入代码 C 替换字符串中的所有 youtube URL 显然必须提取视频 ID 以下是应匹配的 url 模式 http www youtube com watch v bSiDLCf5
  • 调用异步任务

    我正在播放广播流 我想在流中的歌曲发生变化时生成通知 我正在使用streamscraper http code google com p streamscraper 来获取当前流的元数据 并且我尝试在元数据更改时生成通知 这是我为实现此目的
  • Firebase 存储同步上传

    我正在尝试上传到 GcmTaskService 内的 Firebase 存储 我想同步上传 但所有上传方法 putBytes putFile 都是异步的 我没有找到任何方法来等待上传完成 有什么办法可以同步上传吗 是的 如果您不在 UI 线
  • 返回关联 PHP 数组的前 n 个值?

    我有一个 PHP 数组 排序后如下所示 Array 542 gt 30 588 gt 29 77 409 gt 19 9 237 gt 19 47 457 gt 17 73 410 gt 15 86 实际的数组相当长 最初 按键按顺序设置
  • 用于分割 .csv 文件的批处理文件

    我有一个非常大的 csv 文件 gt 500mb 我希望在命令提示符下将其分解为较小的 csv 文件 基本上是试图在Windows中找到Linux 分割 功能 这必须是一个批处理脚本 因为我的机器只安装了 Windows 并且请求软件很痛苦
  • 确定扑克中的获胜金额而不创建边池

    我正在尝试运行扑克模拟并拥有有关扑克桌的以下数据 每个玩家为底池贡献了多少 每个玩家的 手牌得分 翻牌后 即 如果player 0 score player 1 score 他们并列 我一直在计算每个玩家应该赢得多少 而不需要创建边池并将玩
  • 使用 Vue.Js / Inertia.js 和 Laravel 对结果进行分页

    我正在尝试在 Vue Js 中对来自 Laravel 的数据进行分页 我也在使用 Inertia js 在我的 Laravel 控制器中 我有 data participants User with groups gt select id
  • Javascript:将值返回给回调函数外部的变量[重复]

    这个问题在这里已经有答案了 我有一个非常具体的问题 希望有人可以帮助我 我对 Javascript 很陌生 对 NodeJS 则更陌生 我在用lodash s forIn遍历并添加到数组内的对象的功能 整个事情看起来是这样的 id 20 k
  • Visual Studio 2022 无法构建任何项目

    每次我在 Visual Studio 2022 中构建任何项目时 我在构建输出中得到的都是 Build started 1 gt Build started Project ConsoleApp7 Configuration Debug A
  • 使用 socket.io 处理超大消息

    我有一个 nodejs 项目 它生成多个与套接字 io 通信的进程 该进程既发送数据又接收数据 有时在功能开发过程中 其他程序员可能会犯错误 导致我的套接字基础结构代码发送超过大小 X 例如 超过 500MB 的大消息 我正在寻找一种方法来
  • 如果超过一组特定的行发生更改,如何让 git 仅识别文件已更改?

    在我当前的项目中 我尝试使用 git 来版本控制文本文件 这些文件由生成代码的软件使用 这本身不是问题 问题是每次我生成代码时 它都会自动更新此文件的属性 例如代码生成的日期以及我的名字 你可以想象它看起来像这样 SomeHeader So
  • 将列引导至相同高度并让子列匹配高度

    正如标题所暗示的 我正在努力获得正常的均匀性和干净的线条 table 提供 但具有 Bootstrap 网格系统的响应能力 我用过部分解决方案在这里找到 http www minimit com articles solutions tut
  • Facebook Connect 使用 ASP.NET 会员提供程序与网站集成

    是否有任何最佳实践或示例来说明如何使用会员提供程序 或类似的东西 将 Facebook connect 与现有 ASP NET 应用程序最好地集成 我确信我可以做一些事情 但是 如果有一些关于这方面的信息和最佳实践来减轻任何安全问题 那就太
  • SourceTree 将拉取的文件视为未提交的更改

    在某些未知的情况下 当我使用 SourceTree 拉取时 它会将所有拉取的文件视为未提交的更改 并且不允许再拉 推 除非重新提交或放弃这些更改 如果我丢弃未提交的文件 它将丢弃我的队友应用的所有更改 这有什么问题吗 是否存在已知的错误或其
  • graph6 格式如何工作?

    我一直在到处寻找 g6 或 graph6 格式的工作原理 但我不知道它是如何工作的 我发誓它就像魔法一样 F B w 这是一个以 ASCII 形式表示的图表 它可以由 Wolfram Mathematica Sage 和 Maple 等进行