图染色软件系统的制作方法

文档序号:11775098阅读:643来源:国知局
图染色软件系统的制作方法与工艺

本发明属于图染色技术领域,更具体地说,尤其涉及一种图染色软件系统。



背景技术:

图论(graphtheory)是数学领域的一个重要研究分支,它起源于18世纪柯尼斯堡七桥问题的提出。图论是以图为研究对象,研究的是由若干顶点,以及连接任意两顶点的边组成的图形的数学理论和方法。图通常用来描述某些事物间的某种特定关系:顶点来代表事物,用边来代表相关联的两个事物之间具有的某种特定的关系。

随着信息科学与网络技术的快速发展,图论因其具有直观的图形和严密的逻辑,其在广大的专家学者中受到了越来越多的关注和研究。许多问题都可以找到与其相匹配的图的模型,例如大规模信息通讯问题、社交网络问题、大数据采集及分析问题、物联网问题等,都有着复杂的网络化结构化的特点,而图论具有把复杂结构问题抽象转化成以顶点和边表示的清晰结构的特性,以图为工具成为解决这些领域问题的新型且有效的解决方案,并采用图染色的方法予以解决。因此,对图染色问题的研究与创新是非常有意义的。

图染色问题(graphcoloringproblem,gcp),又称图的着色问题,是图论领域的一个重要且活跃的研究课题,对它的研究具有一定的理论意义和现实背景。图染色问题诞生于1872年英国数学家凯丽提出的著名的“四色猜想”问题。“四色问题”指:如何只用四种颜色对任意一个平面地图的不同区域进行染色,最终还要保证地图中所有相邻区域的染色不同。在20世纪初,随着更多的数学工作者开始专注于研究图染色问题,使得图染色问题的研究变得更为规范化,随后,点染色、边染色和全染色等几个古典染色的概念相继被提出。针对图染色问题,人们把组合数学和数据证明相结合,通过不断的证明论证,得出了一系列具有很高价值的研究成果,并基于已有的科学论证,提出了许多著名的图染色猜想。其中1965年vizing和m.behzad独立地提出了著名的全染色猜想:每个简单图的全色数至多为最大度加2。并在发表的文献中对全染色猜想进行了大量的研究,并给出了很多成果。随着对图染色研究的逐步深入,更复杂的染色概念相继被提出。

1973年,w.meyer提出了图的均匀染色和均匀色数的概念,并由此揭开了图的均匀染色的序幕。hilton和dewerra给出了均匀边染色的引理。fuhung-lin,张忠辅独立地提出了图的均匀全染色和均匀全色数的概念,并提出了均匀全染色猜想。随后王维凡、马刚、张忠铺等人对一些特殊图的均匀全染色进行了研究,并给出了相关结果与猜想。1997年,a.c.burris和r.h.schelp提出了点可区别边染色的概念和相关猜想,并由此揭开了图的可区别染色的序幕。随后对它进行了大量的研究,已发表的文献对一些特殊图进行了研究并得到了相应的结论。随后,邻点可区别边染色、邻点可区别全染色、点可区别全染色、点可区别均匀边染色、点可区别全染色、邻点可区别均匀边染色等一系列的概念和猜想相继被提出来,并得到了国内外这一领域科研工作者的广泛关注。

随着信息技术和计算机科学的迅速发展,1976年美国数学家k.appel和w.haken利用三台电子计算机运行1200小时证明了“四色猜想”,这是历史上首次利用计算机对图染色猜想进行证明,它显示了计算机在解决图染色np难问题上的优势。随后,国内外学者开始研究如何利用计算机来解决图染色领域中的其它问题。2014年李敬文等人首次提出了随机图的点可区别边染色算法。随后,随机图的点可区别全染色算法,图的邻点可区别边染色算法和图的邻点可区别全染色算法等一系列的随机图的多约束条件的图染色算法相继被提出,得到了很多有价值的图论研究数据。

目前,国内外还没有一款供图论研究者或爱好者使用的图染色软件系统,用户只需选择染色方法、图的点数、边密度等参数,软件平台就能够正确给出有限点数以内所有简单联通图的8种可区别染色结果。



技术实现要素:

本发明的目的在于提供一种图染色软件系统,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种图染色软件系统,包括存储装置,

该存储装置内设有图染色介绍模块、图的显示模块、图的生成模块、图染色验证模块、图染色算法模块和图染色猜想证明模块;

所述图染色介绍模块,对图染色领域的相关知识进行介绍,本模块将实现对图染色领域的绝大多数的图染色定义与示例图进行介绍,共囊括了十三种图染色;

所述图的显示模块,实现根据图的邻接矩阵进行图的可视化操作功能,为了在研究图染色的过程中更加直观的显示研究结果,实现未染色与染色后图的显示,其中染色后的图,对于无向图又分为边染色后和全染色后;对于有向图,染色后的图就是指弧染色后;

所述图的生成模块,实现根据不同要求进行图的生成功能,为了对特定要求的图有一个直观的了解,本模块将实现随机无向图与随机有向图的生成;

所述图染色验证模块,实现对具体图染色后的邻接矩阵进行染色成功验证功能;

所述图染色算法模块,实现八种图染色的算法功能;

所述图染色猜想证明模块,主要实现偶阶完全图除去子图爪图边集后的图的点可区别边色数猜想证明功能。

优选的,所述存储装置内还设有用于收集用户反馈意见的模块。

与现有技术相比,本发明的有益效果是:本发明利用jni技术与jgraph技术,把图染色研究的特点与java平台结合起来,设计并实现一个基于java平台的图染色软件系统,它囊括了目前图染色领域绝大多数的图染色概念,可以为图论研究者或爱好者提供一个开放的、全面的图染色研究平台。基于该平台,实现从手工染色到计算机染色,并为使用者提供大量的基础研究数据。

附图说明

图1为本发明的系统功能结构图;

图2为本发明的generateg.java的代码;

图3为本发明的specialg.java代码;

图4为本发明的pec.java代码;

图5为本发明的ptc.java代码;

图6为本发明的avdec.java代码;

图7为本发明的avdtc.java代码;

图8为本发明的vdec.java代码;

图9为本发明的vdtc.java代码;

图10为本发明的vdetc.java代码;

图11为本发明的dpac.java代码;

图12为本发明的gcverify.java代码;

图13为本发明的vdecconjprove.java代码;

图14为本发明的图染色算法模块处理流程图;

图15为本发明的图染色算法代码;

图16为本发明的后台线程执行过程代码;

图17为本发明的jtree节点的单击事件处理代码;

图18为本发明的无向图代码;

图19为本发明的有向图代码。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

如图1所示的一种图染色软件系统,包括存储装置,

该存储装置内设有图染色介绍模块、图的显示模块、图的生成模块、图染色验证模块、图染色算法模块和图染色猜想证明模块。所述存储装置内还设有用于收集用户反馈意见的模块。

所述图染色介绍模块,对图染色领域的相关知识进行介绍,本模块将实现对图染色领域的绝大多数的图染色定义与示例图进行介绍,共囊括了十三种图染色。

该模块的实现主要涉及的是jtree节点的单击事件处理,具体实现的关键代码如图17。

所述图的显示模块,实现根据图的邻接矩阵进行图的可视化操作功能,为了在研究图染色的过程中更加直观的显示研究结果,实现未染色与染色后图的显示,其中染色后的图,对于无向图又分为边染色后和全染色后;对于有向图,染色后的图就是指弧染色后。

无向图的显示模块

对于无向图,主要有三种显示图类型:未染色、边染色与全染色,这三种图的类型与待显示图的邻接矩阵中的元素都有对应关联,具体对应关联如下:如果全是0与1,则对应未染色;如果存在大于1的元素且对角线的元素全为0,则对应边染色;如果存在大于1的元素且对角线的元素全大于0,则对应全染色。该模块的实现主要涉及的是单击执行画图按钮后开启后台线程调用画无向图的功能类,具体实现的关键代码如图18。

有向图的显示模块

对于有向图,主要有二种显示图类型:未染色与弧染色,这二种图的类型与待显示图的邻接矩阵中的元素都有对应关联,具体对应关联如下:如果全是0与1,则对应未染色;如果存在大于1的元素且对角线的元素全为0,则对应弧染色。其基本工作流程为:接收使用者的输入,调用图的显示方法进行图的显示。该模块的实现主要涉及的是单击执行画图按钮后开启后台线程调用画有向图的功能类,具体实现的关键代码如图19。

所述图的生成模块,实现根据不同要求进行图的生成功能,为了对特定要求的图有一个直观的了解,本模块将实现随机无向图与随机有向图的生成。

随机图的生成算法中包含随机无向图与随机有向图的生成功能,算法的输入:图的顶点数、边数、图的类型;算法输出:图的邻接矩阵。对该算法进行jni封装前的调整,调整后按步骤进行封装;创建generateg类,按照jni封装步骤对随机图的生成算法进行jni封装,得到jni-图的生成算法.dll库文件。其中generateg.java的具体代码如图2所示。

特殊图的生成算法中包含路图、圈图、星图、轮图、扇图、完全图等共6种特殊图的生成功能,算法的输入:图的顶点数、图的类型,算法输出:图的邻接矩阵。对该算法进行jni封装前的调整,调整后按步骤进行封装;创建specialg类,按照jni封装步骤对特殊图的生成算法进行jni封装,得到jni-特殊图的生成算法.dll库文件。其中specialg.java的具体代码如图3所示。

正常边染色算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建pec类,按照jni封装步骤对正常边染色算法进行jni封装,得到jni-正常边染色.dll库文件。其中pec.java的具体代码如图4所示。

正常全染色算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建ptc类,按照jni封装步骤对正常全染色算法进行jni封装,得到jni-正常全染色.dll库文件。其中ptc.java的具体代码如图5所示。

邻点可区别边染色算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建avdec类,按照jni封装步骤对邻点可区别边染色算法进行jni封装,得到jni-邻点可区别边染色.dll库文件。其中avdec.java的具体代码如图6所示。

邻点可区别全染色算法,算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建avdtc类,按照jni封装步骤对邻点可区别全染色算法进行jni封装,得到jni-邻点可区别全染色.dll库文件。其中avdtc.java的具体代码如图7所示。

点可区别边染色算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建vdec类,按照jni封装步骤对点可区别边染色算法进行jni封装,得到jni-点可区别边染色算法.dll库文件。其中vdec.java的具体代码如图8所示。

点可区别全染色算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建vdtc类,按照jni封装步骤对点可区别全染色算法进行jni封装,得到jni-vdtc.dll库文件。其中vdtc.java的具体代码如图9所示。

点可区别均匀全染色算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建vdetc类,按照jni封装步骤对点可区别均匀全染色算法进行jni封装,得到jni-vdetc.dll库文件。其中vdetc.java的具体代码如图10所示。

有向图正常弧染色算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待染色图的邻接矩阵,算法输出:染色后的邻接矩阵;创建dpac类,按照jni封装步骤对有向图正常弧染色算法进行jni封装,得到jni-有向图正常弧染色.dll库文件。其中dpac.java的具体代码如图11所示。

所述图染色验证模块,实现对具体图染色后的邻接矩阵进行染色成功验证功能。

根据图染色的定义,得到该染色成功的约束条件。根据具体图染色的约束条件设计并实现图染色验证算法,对该算法进行jni封装前的调整,调整后算法的输入:图的顶点数、待验证图的邻接矩阵、待验证的图染色类型,算法输出:验证是否成功的标识符;创建gcverify类,按照jni封装步骤对图染色验证算法进行jni封装,得到jni-图染色验证算法.dll库文件。其中gcverify.java的具体代码如图12所示。

所述图染色算法模块,实现八种图染色的算法功能。

对任意给定的图进行染色,本模块根据待染色图的信息,调用相应的图染色算法进行染色,并显示染色前与染色成功后的图,具体的处理流程如图14所示。图染色算法模块主要包括:无向图染色算法模块与有向图染色算法模块,共2个子模块。

无向图染色算法模块

该模块界面主要包括待染色图的信息输入、图染色算法选择、染色前和染色成功后的文本输出、染色前和染色成功后的图像输出共四部分。其中对于无向图的图染色算法选择,本模块主要包括:正常边染色、正常全染色、邻点可区别边染色、邻点可区别全染色、点可区别边染色、点可区别全染色、点可区别均匀全染色,共七种图染色算法。

该模块的实现主要是单击执行染色算法按钮后根据用户选择的图染色算法,开启后台线程调用已封装的对应的图染色算法,下面以点可区别全染色算法为例,具体实现的关键代码如图15和图16所示。

所述图染色猜想证明模块,主要实现偶阶完全图除去子图爪图边集后的图的点可区别边色数猜想证明功能。

偶阶完全图取出子图爪图边集后的图的点可区别边色数猜想证明算法,对该算法进行jni封装前的调整,调整后算法的输入:子图爪图的m、图的顶点数,算法输出:染色后的邻接矩阵;创建vdecconjprove类,按照jni封装步骤对图的点可区别边色数猜想证明算法进行jni封装,得到jni-1猜想证明算法.dll库文件。其中vdecconjprove.java的具体代码如图13所示。

本发明利用jni技术与jgraph技术,把图染色研究的特点与java平台结合起来,设计并实现一个基于java平台的图染色软件系统,它囊括了目前图染色领域绝大多数的图染色概念,可以为图论研究者或爱好者提供一个开放的、全面的图染色研究平台。基于该平台,实现从手工染色到计算机染色,并为使用者提供大量的基础研究数据。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1