科学网

 找回密码
  注册

tag 标签: 图同构

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

构造一种新数据结构也许就能解决一个系列难题
热度 2 accsys 2017-1-8 11:52
姜咏江 计算机科学的一些题目长期得不到很好地解决,问题可能出现在数据结构上。依据 SAT 子句的概念,我构造了图的 0 和 1 表示方法。进而使一些图的难题解答起来十分容易。例如图的最小顶点覆盖问题,容易得连我自己都无法相信了。反复考证,我确信是对的。今天写了个英文 paper 放到 arXiv 上,让那些所谓的内行去评价吧。 顶点覆盖的中心思想非常简单:由高到低删除关联度高的顶点和它连接的边,当剩下的顶点都无边相连的时侯,删去的那些顶点就是最小顶点覆盖。 我把这一切都变成了对二维表操作,每一个元素对二维表的访问时间复杂度为 O( n 2 ) , n 个元素的访问自然不超过 O( n 3 ) 。 对图用 0 和 1 的表示,一般只有所谓邻接矩阵,怎么就没想到关联度表示方法呢?我构造的关联度表示的图数据结构,极易实现对顶点覆盖、图同构等问题的求解。还有团之类的一些问题我有时间整理一下,再告诉朋友们。 SAT 问题、顶点覆盖问题、图同构问题、哈密顿回路问题、 TSP 等我相信都可以在多项式时间内求出准确解。让我们一起努力吧。 2017-1-8
个人分类: P/NP问题|2386 次阅读|2 个评论
图01表示的性质及在同构中的应用
accsys 2016-4-11 10:58
姜咏江 将图的每个顶点用 1 表示,而与其相邻的顶点用 0 表示,这样形成的表就表示了一个顶点与周围顶点的相邻关系。全部顶点相邻关系的 01 表示就形成了一张行列数相同的表。 1. 图 01标准表 例如,图 1 的两个图直观来看,它们根本不相同。其实按照图的定义来看,除了对顶点标注的名称不同,根本就是同一个图。如果我们能够将 H 图的顶点名称用 G 图的对应名称一一替换,就说明 G 和 H 是一个图。这就是图同构的意思。 图 1 同构图 如何找到同构图顶点所有顶点的一一对应关系?这就是判断图同构要解决的问题。据说直观问题的处理十分复杂,被许多人认为是一个 NP 问题。 图的 01 表示可以将同构图用一张表来表示。也就是说,不同构的图不能够表示成同一张表。这里说的同一张表不包括表头文字。 G 图的 01 表示如表 1 所示。 表 1 图 G 的 01 表示 1 2 3 4 5 6 7 8 1 0   0   0     0 1 0   0         0 1 0       0 0   0 1     0     0     1 0   0 0       0 1 0         0   0 1 0     0   0   0 1 不改变表 1 的内容,可以将表头用 H 的顶点标识替换,且使图 H 顶点的相邻关系不变。若替换后恰是表达了图H的各顶点相邻关系 ,则找到了图 G 和图 H 的同构对应,说明它们是同一个数学定义的图。 下面的表2,就是将表 1 的表头用对应的 H 顶点标识替换,且满足顶点的相邻关系 。这说明图 G 和图 H 是同构图。 表 2 图 H 与 G 同构的 01 表示 c a b d g e f h 1 0   0   0     0 1 0   0         0 1 0       0 0   0 1     0     0     1 0   0 0       0 1   0       0   0 1 0     0   0   0 1 任何一个有 n 个顶点的图都可以表达成对角线对称的 n × n 表。其中左上右下的对角线上全是 1 ,其它位置是 0 或空格。其中与 1 同行或同列的 0 表示这两点相邻,空格表示不相邻。 我们将左上右下对角线全是 1 的图 01 表叫标准表。显然,同构图一定有相同的标准表。 2. 标准表的性质 我们将一个顶点相邻的顶点数称为关联度。首先,同构图对应顶点的关联度一定相同。其次,每个对应顶点的相邻关系必然相同。在标准表上找到满足这两点是用标准表确定图同构的关键。 容易想到,如果两个图同构,那么就应该有相同的标准表。如此,我们只要先作出一个图的标准表,并将其复制一个,去掉表头标识,就可以用该表来安排了另一个图的顶点对应位置。 一般来说,安排n个顶点的排列,这是一个 n 个标识的排列问题,是一个 n !的问题。但实际上在这里并非如此。 图的标准表有如下的性质: ( 1 )标准表是一个对角线对称表。 ( 2 )只有对角线上有“ 1 ”,其余数码只有“ 0 ”。 ( 3 )每个“ 1 ”的第 i 行和第 i 列如果有一个是“ 0 ”,那么另一个也是“ 0 ”,这种 0 和 1 都表示的对应,都表示着图顶点的相邻关系。 3. 利用标准表的性质确定图的对应关系 表 G 和 H 的顶点关联度都是 3 ,当我们将 c 放到第一个位置时,从图 H 看,我们只要确定 a 、 d 、 e 的位置即可。因而这最多有 3 !的排列。其实我们并不会这样做。我们可以先试着将 a 、 d 、 e 的位置方在第 1 行 0 的上方,然后看它们是否满足各自相邻的关系。 由图 H 可见 a 与 d 共同和 c 或 b 相邻, c 已经确定,故在表 2 的 a 与 d 之间添 b 。之后,通过 a 的邻点,将 g 写在 d 的右面。余下的通过 d 和 e 的相邻关系,确定出 f 和 h 的位置。 为了确保对应的正确性,要一一对每个顶点的相邻关系检查,确定无误,就证明了图 G 和图 H 是同构图。 4. 图不同构检验 并不是具有顶点数相同和顶点关联度相同的图就是同构图。下面图 2 所示的两个图就因为找不到相同的标准表,因而不是同构图。 图 2 不同构图 由于图 T 的每个顶点属性相同,故用图 G 的标准表来选择图 T 任意一个顶点开始的排列,结果的关系应是相同的。我们不妨就从 a 顶点开始(见表 3 )。 表 3 复制的 G 标准表对T求对应 a e ( d ) f b ( f ) d h g 1 0   0   0     0 1 0   0         0 1 0       0 0   0 1     0     0     1 0   0 0       0 1   0       0   0 1 0     0   0   0 1 从图 T 可见,和 e 相邻的另外两个点是 d 和 f 。可以试着将 d 放在 e 和 b 之间,那么 f 就自然要放到 b 和 h 之间。如此一来,从表 3 可见 e 和 b 都是 d 的邻点,但由图 T 可知这是否定的。为此,将 d 与 f 的位置进行交换,那么由图 T 的 f 点可见表 3 的最后一列应是 g ,但从 d 点的相邻关系可见这一列应标注 c ,如此产生的矛盾说明图 G 和图 T 没有共同的标准表。由图 T 各顶点关联属性的一样性,可知图 G 与 T 不可能产生相同的标准表,因而不可能同构。 2016-04-11
个人分类: P/NP问题|4443 次阅读|0 个评论
你知道这些哈密顿图哪几个同构吗?
accsys 2016-4-10 08:11
你知道这些哈密顿图哪几个同构吗? 姜咏江 顶点数相同,每个顶点的关联度(相邻顶点数)相同,都是哈密顿图,它们是否同构?下面的 8 个图,有哪几个同构? 2016-4-10
个人分类: P/NP问题|5529 次阅读|0 个评论
图同构01表示的多项式时间证明方法
accsys 2016-4-7 21:05
图同构01表示的多项式时间证明方法 姜咏江 人们一直认为图同构的证明是一个 NP 类问题(见附录),果真如此吗?运用本人发明的图 0 和 1 表示法(参阅 http://blog.sciencenet.cn/blog-340399-958453.html ),通过对一个图顶点的排列,就能够证明两个顶点和边数都相同的图是否同构。 下面给个例子说明证明方法。 例题 ,证明下面图( 1 )和图( 2 )同构。 图 1 同构图 1. 表格式图同构的证明要点 要点 :图 1 ( 1 )的 0 和 1 表示如表 1 所示。图 1 ( 2 )的 0 和 1 表示如 表 2 所示。表 1 和表 2 看上去不相同。如果不改变图的顶点与边的相互关系,能够将表 1 的转换成表 2 ,或者将表 2 转换成表 1 ,那么就说明这两个图是同构图。 表 1 图( 1 )的 0 和 1 表示 x1 x2 x3 x4 X5 x6 x7 x8 1 0   0   0     0 1 0   0         0 1 0       0 0   0 1   0       0     1 0 0 0 0       0 1 0       0   0 0 1 0     0   0   0 1 由图的定义可知,只改变顶点的位置,而不改变它们之间相邻的关系,那么不论如何移动顶点,所得到的图都是同一个图。这种图与视觉无关的属性自然成为了证明图同构的依据。反过来说,如果我们能够将视觉上不同的图,在顶点数量和边的关联关系不变的条件下,转化成视觉一致的图,就说明这两个图同构。 图的 0 和 1 表示法将图固定在了二维的表中,因而可以做到视觉上的统一。对于视觉上不同的图,我们可以在图的 0 和 1 表示的二维表中,适当地移动顶点,那么同构的图一定会转换成相同视觉的二维表,而不同构的图一定不会有完全相同的表格式的表示。 表 2 图( 2 )的 0 和 1 表示 a b c d e f g h 1 0   0 0     0 0 1 0       0     0 1 0   0     0   0 1 0       0     0 1 0   0     0   0 1 0     0       0 1 0 0       0   0 1 2. 表格式图同构证明 根据表格式并试图的定义,表中每一行都是一个顶点与其相邻的顶点的关联关系。显然,左右移动顶点的相对位置或上下移动各顶点关联关系的相对位置,并不会改变图的定义。依据这一原理,以及顶点关联的边数,对照表 1 来左右变动表 2 的顶点,并上下移动编排顶点关联行,最终可以得到的结果如表 3 所示。 表 3 图( 2 )转换成了图( 1 )的视觉 c f g b a d e h 1 0   0   0     0 1 0       0     0 1 0       0 0   0 1 0             0 1 0 0 0 0       0 1 0     0     0 0 1 0     0   0   0 1 由于表 3 是对照表 1 变动得到的,而且 0 和 1 表示完全相同,如此就建立起来的图( 1 )和图( 2 )顶点的一一对应,结果如表 4 所示。 表 4 图( 1 )和图( 2 )顶点的一一对应关系 x1 x2 x3 x4 x5 x6 x7 x8 c f g b a d e h 3. 多项式时间讨论 我们可以看到由表 2 通过移动行和列得到表 1 的过程并不是一个多项式时间复杂度的算法。两图如果同构,那么图 1 ( 2 )最终要能够成为与表 1 完全一样的一个表。所以,我们就可以将表 1 复制一个,然后将表头清空( 表 5 )。如果我们能够选择图 1 ( 2 )的顶点按照顶点相邻的关系,刚好将表头添写好,那么即是说,图 1 ( 2 )就可以表达成表 1 ,进而也就说明了图 1 ( 1 )和图 1 ( 2 )同构。 我们先选择边数最多的顶点 e 和顶点 x7 对应,根据相邻顶点,我们可以找到表 5 的 badeh 的选择。然后根据与 e 相邻的 d 点,可以确定 c 点的位置;在依据 b 点确定出 g 点,再依据 a 点确定出 f 点的位置,这样就证明了例题的两个图同构。 表 5 未确定顶点的情况 c f g b a d e h 1 0   0   0     0 1 0   0         0 1 0       0 0   0 1   0       0     1 0 0 0 0       0 1 0       0   0 0 1 0     0   0   0 1 为了具有一般性,我们设图顶点的关联度(通过边相邻的顶点数)最大为常数 k n 。那么每次选择相邻顶点时不超过 k !次。图若有 n 个顶点,那么选择排列的次数不超过 (k!) n 次。 k 是常数, n 是变量数, n 增大的过程中,计算次数不会超过 (k!) n 。 4. 结论 通过表 1 、表 2 和表 5 的对照,你一定会理解表格式表示的图,证明图同构的方便简单的特点。如果我们不能够用排列图顶点的方法,使具有相同顶点和边的图得到一样的 0 和 1 表示表,那么它们就不是同构图,反之,它们一定都是同构图。 2016-4-7 修改 附录:见蒋迅 - 《数学都知道》 http://blog.sciencenet.cn/blog-420554-967358.html
个人分类: P/NP问题|5279 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-12 22:58

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部