这个库提供了构造图及其着色图的支持。着色图是表示图的所有有效着色的元图。着色图的每个顶点表示基图的着色。

libcolgraph的Python项目详细描述


着色图

pipeline status

一个用C++编写的着色图库,用于快速计算和封装 易于开发和扩展的python!

什么

这个库支持构造图、它们的着色图和 双连通分量元图。 着色图是表示图的所有有效着色的图。 着色图的每个顶点表示基图的着色。 如果两种颜色仅在一个顶点的颜色上不同,则认为它们是相邻的。

在这个项目中,我们将颜色表示为整数,当转换为 基k(对于k-着色)是长度v的一个数,表示顶点方向 每个顶点的颜色[0,k)。

图书馆正在开发中,使用Python和C/C++编写。 web应用程序使用库为快速绘制和 图形构造。 在未来,我们计划开发一个图书馆的补充部分,包含 有用的图算法和运行模拟以测试结构图论的能力 关于图着色和图着色的猜想。 对于文档,请随意查看libcolgraph/内部并阅读docstrings。 如果有问题,请联系我们。

web gui的屏幕截图

[顺时针方向] 一种七顶点基图,它是一个六边形,有一个中心顶点和一个丢失的“辐条” 导致一个非常复杂的k=4颜色的着色图。你可以看到 边缘有息肉。结果着色图的结构如 一组改进的双连通tarjan算法产生的元着色图 组件.可以看到中央的“母舰”,旁边有一个切口 顶点,最后是息肉尖端的奇异着色点。

对于静态演示,请转到项目的gitlab pages

使用量

  • 作为一个模块

    绘制一个基图,它的着色图,和元 由tarjans生成的着色图。你需要 将图形格式化为邻接矩阵文件。 在新的浏览器窗口中打开绘图。

    基本用法:

      colgraphplot [INPUT_GRAPH]
      ---
        usage: colgraphplot [-h] [-k COLORS] [-v] [--no-bg] [--no-cg] [--no-mbg]
                       [--no-mcg]
                       INPUT_GRAPH
    
        positional arguments:
          INPUT_GRAPH           read in BaseGraph from adjacency matrix file
    
        optional arguments:
          -h, --help            show this help message and exit
          -k COLORS, --colors COLORS
                                number of colors to use to create ColoringGraph [default: 3]
          -v, --verbosity       set output verbosity
          --no-bg               hide BaseGraph?
          --no-cg               hide ColoringGraph?
          --no-mbg              hide meta BaseGraph?
          --no-mcg              hide meta ColoringGraph?
    

    启动Web图形用户界面:

      colgraphweb
      ---
        usage: colgraphweb [-h] [-i INPUT_FILE] [-k COLORS] [-n] [-v] [-p PORT]
    
        optional arguments:
        -h, --help            show this help message and exit
        -i INPUT_FILE, --input-file INPUT_FILE
                              read in BaseGraph from adjacency matrix file
        -k COLORS, --colors COLORS
                              number of colors to use to create ColoringGraph [default: 3]
        -n, --new             open a blank canvas?
        -v, --verbosity       set output verbosity
        -p PORT, --port PORT  port on localhost to launch GUI on [default: 5000]
    
  • 作为库

    importlibcolgraphbg=libcolgraph.BaseGraph()bg.load_txt('./in/hexmod.in')cg=bg.build_coloring_graph(4)print('bg {} led to a cg {}'.format(bg,cg))forvincg.get_vertices():# do somethingpass

安装

  • 从源安装 请参阅detailed install instructions

  • pypi

    python3 -m pip install libcolgraph [--user][--upgrade]

    注意事项:

    • 当前只有^{}可以使用二进制控制盘 分布,如centos、debian系列、redhat系列等。
    • 如果您的发行版不支持manylinux,那么pip 需要使用swigsetuptools本地编译。 在这种情况下,确保有setuptoolsswig安装时 将需要编译。
    • 在未来,我们还将发布MacOS的轮子。这些 但可能不会经常维护,所以 bet将使用swig在本地编译。

贡献

contributing guide

帮助

即将提供完整的文档

里士满大学着色图实验室。多个贡献者。 (c)2017-2019年

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ArrayList中实体对象上的JAVA泛型   带Redis的爪哇芹菜vs单用Redis   java在设备面向横向时隐藏标题栏/通知栏   java JXTreeTable:如何使用ComponentProvider为一列设置渲染器   java创建异常的成本与记录异常的成本相比   java在方法参数中使用setter传递新对象   java在一个类中的方法与另一个类中的方法交互时遇到问题   java如何迭代2个大小相等的ArrayList   Java getDesktop()。open在Windows中工作,但在Mac中不工作   从tomcat切换到jetty后的java“无法启动嵌入式容器”,Spring引导   java如何使用void方法   java如何在解组时在JAXB的ValidationEventHandler中获取节点值?   如何使用Akka Java API创建不响应的TCP接收器   JavaScriptjQuery在java中将记录上传到数据库时的进度条   如何在重新绘制时在java小程序中显示上一个图像