#snark #图论 #无向图 #算法

bin+lib snark-tool

snark-tool 库包含用于(主要是)立方图分析的结构和算法

1 个不稳定版本

0.4.0 2021年10月26日

#1736解析器实现

MIT/Apache

545KB
11K SLoC

snark-tool

Snark tool 是一个用于 snarks 分析的简单工具。Snark 是一个至少有 5 个环和至少 4 个循环边连通性的立方图。

作为库使用

通过在 Cargo.toml 配置文件中将 snark-tool 添加为依赖项,将 snark-tool 包含在您的 Cargo 项目中。

[dependencies]
...
snark-tool = "0.4.0"

然后在您的代码中简单地使用所需的结构或函数。

use crate::graph::undirected::simple_graph::graph::SimpleGraph;
use crate::service::io::reader_g6::G6Reader;

pub fn read_graph(graph_g6: &String) {
    let graph: SimpleGraph = G6Reader::read_graph(graph_g6).unwrap();
}

有关更多示例,请参阅 示例 文件夹。

作为二进制文件使用

首先 安装 cargo。然后安装 snark-tool。

cargo install snark-tool

首先,我们需要使用 YAML 格式定义配置文件。在这里,我们可以指定我们想要做什么。

version: 0.1

procedures:
  - proc-type: read
    config:
      file: input-file.g6
      graph-format: g6

  # means regular 3-edge coloring
  - proc-type: colour
    config:
      colouriser-type: dfs

  - proc-type: write
    config:
      file: output.json
      graph-format: s6
      # if set to true, file format will be json for g6/s6 graph format
      with-properties: true # default true

  - proc-type: count

基本用法是 snark-tool 读取输入文件,从指定的格式中读取图。然后对图应用/执行指定的程序(在这种情况下为边着色),最后将图写入输出文件。

当指定了名为 snark-tool.yml 的配置文件后,我们可以使用终端命令启动 snark-tool。

snark-tool run snark-tool.yml

有关可用程序及其配置的完整说明,请参阅 procedures.md

许可证

根据您的选择,许可权属于以下之一

请注意

软件包及其所有部分均为 WIP。软件包的 API 可能会快速从版本到版本进行更改。

依赖关系

~12MB
~205K SLoC