连通图之前的几个补充讨论

说“之前”的,是因为传统图论中,讨论连通图前,需要讨论路,链,回路 等诸多名词。而从边的方式讨论,如我前面的内容。已经通过递归定义邻接边一次性获得。

我不想说我是在投机的使用一种代码化的方式来描述图论中的连通。既然可以在符合公理化集合论的基础上,采用一种简单的方式描述图论的连通定义,为什么不能采用。反驳我哦,希望给出错误点的指出。

当然我们不能遗漏了一些传统图论的定义,我说了,要在兼容公理化集合论的基础上,能与传统图论的所有理论有对应。否则就是自说一套了。

关于图论的链,标准图论的书籍基本如下:

在顶边交错链 W=v0,e1,v1,e2...ekvk 中,

且,ei = vi-1 vi,则成W是图G的一条道路,其中允许 vi = vj, 或 ei = ej ,i!=j. 称 v0 为W的起点,vk为W的终点,K为路长, 称为 W的内点。

这个版本论述有几个不妥的地方,先看下另一个版本,我手上非电子档的书《图论导引》

。。更正式地,G中一条 u-v链(walk)W,即为G的一个顶点序列,满足从U出发,到V结束,且连续的顶点是相邻的。”

老外的定义确实不错。哪怕是翻译成引文的。明显后者比前者好。好在;

1、描述的内容,约束更少。没有约束边是否重复,没有约束顶点是否重复。只说了相邻约束。

但后面的定义还存在一些问题。

1、链本身是不存在方向性的。这个定义很模糊,没有明确指出来,至于第一个版本,就更别提了。还冒出了起点种点的概念。对于抽象的无向图,方向从何来?内点外点看似有些意义,但在定义中的作用域也很混乱。

2、在该书的后续符号化描述中,虽然比第一个版本强,但还是缺乏对无限图的试用性。因为对W的定义,包含了一个

W:V0,V1,V2.。。VK,而有用的部分是V0,VK,同时认定W是有序的,而已知V0,VK时,则无法将V1.。。VK-1在无限图中做扩展,否则你的K不具备确定值的意义。

这里重要说明一下,为什么我总要(纠结,吹毛求疵,反复抓小辫子,写大字报,搞批判,无论你怎么说,)对目前图论(基础图论理论成书的,更高级的我暂时没看)有限图这个约束。当然存在 claude berge 出版过《无限图理论及其应用》,但我没有机会拜读,同时根据该牛人,其他文献关于图的定义仍然是先顶点,后边,所以我只能当无视,但不带有任何对claude berge的任何不尊敬。同时这里我谈论的无限图,并不和代数拓朴有太多重叠关系,后者我没仔细学习,但多少还知道他们在研究什么。

因为,如果我们没有一定的理论,去描述,无限图和有限图之间适用性的理论,那么我们很难在大规模图计算中,进行理论可保证的高并发,分布式计算。

一个什么样的理论可以在已知集合的特性中保持,无论未知部分何如,而一个什么样的理论无法这样操作,都需要考虑无限图和有限图的差异性。

例如:假设我们的所有犯罪嫌疑人的信息,被存储在N个不同的地区的服务器上。我们需要找到某个犯罪嫌疑距离为6以内的人群(距离为1表示两个人有直接关联,2为两个人同时和另一个人有关联)。那么我们假设,从每个服务器开始查找。那么对于任意一个服务器,如果已经找到距离为6,这很简单。如果每个服务器,都至少距离小于6的。那么这些信息该怎么汇总?对于有限图的理论,只能适用在单服务器上,而需要存在有限图,和无限图关联的理论,来联合多个服务器的操作。否则,你始终需要一个集中式的服务器,作为对所有分布资源的总集中。

而通常,大规模系统,更关注的指标是健壮性,可以只获取80%的信息,但不能因为存在某一个结点坍塌,导致全网失效。

回到整体,对于链W,此处我的定义,则和con完全等同。就是连通图的定义。只不过加上,va,vb 属于V的限制。

需要注意,此处的W实际等同标准图论中的trail 迹 此和W的唯一区别就是,W中允许存在重复的边,而只允许存在重复的顶点。在我暂时没想到W的存在价值或别人提示前,我表示不支持标准图论的W 这是到目前为止,第一个不支持标准图论的地方。即,当存在一个连通图,且同一条边,需要反复描述的必要性,无论是证明还是现实问题。可能有人说,全顶点遍历路径的问题需要有W,重复边的概念。我们到这个问题出现时在详细讨论,其实可以通过拆分图的方式求解。

由此,对于一个va,vb的W的获取,算法则为:

1、从va ,vb任意顶点开始,设为初始点,另一点设为检测点,寻找全网连通。

2、任意新顶点加入时,判断是否等于检测点,如果不等于重复2,等于则退出。

关于 路(PATH)

算是的一个约束。即,W中任意顶点不重复。由此我们要重新定义,在定义path之前,需要增加个定义如下:

 这里的PATH和传统的定义不同。和CON也不同。要求至少包含两个不同的边。同时如果在E中存在一个边,和A中任意两个边有交集为空,且,和任意一个边,有交集不为空,则该边也属于A。同时最后一句,补上了,该集合中,必须全部是真正的边。而不能是不包含有效边的边集合(也即顶点)。e1,e2除外

这里对上述描述做几个说明:

1、path需要两个基本参数。包含至少两个有效边。由此,path至少包含3个顶点。两条不同的边。对于单边,不认为是path。

2、无法通过两个顶点,在算法中求路径。由此使得实际算法,如果是重顶点开始,需要针对该顶点的某条具体边进行处理。但这不影响path的逻辑和有效性。对于实际两个顶点是否存在路径,可以先判断是否存在对应边,再从两个顶点的相邻边,做遍历,尝试寻找路径。

3、关于三个交操作为空,简单的图例就是,在path中,不可能出现,三条边有同一个顶点的情况。而同时,也不可能有不相连的情况。

回路(circuit),放一边,先看下cycle ,

基于路的定义,进行如下约束

这里的描述表示,实际上已经说明了。一个圈,至少要3个不相同的边。e,e1,e2。同时还可以看到。要想说明唯一一条圈,光凭一个边,是不可能的。其实光凭两个边,也不能证明这个圈是唯一的。此后面讨论。

回到 回路(circuit) 的定义。回路是可以包含重复顶点,但不能包含重复边的。由此,我们可以通过连通和cycle来确定circuit的定义。

 文字描述: 回路是一个边集合A。任意一条e属于回路的边,根据p(e)其端点,总存在一个连通图con(p(e))属于A集合,使得该边不属于该连通图。你可以等同认为,是先去掉该边,再在图中寻找,该边两端点的连通方式。由于是对应任意一条边,都成立,所以就不存在,那种不成圈的分支。

距离 这里的距离,是抽象图的距离,不包含边的权重。权重是另一会事,如果一个边表示一个铁轨,那么铁轨多长,我们不用距离来描述,使用权重 。因此求图的最短距离,是说两个顶点之间,连通时,最小的边数。而最小权重,是两个顶点连通,任意一个path中所有顶点,或所有边的权重总和。

距离的定义离不开||运算。其实很简单。先定义min,gmin。

 

 

文字描述, gmin(A)=b,此时b是A的一个元素。 任意A的元素,根据一个谓词,或转移函数,有不小于 b的情况。之所以加上 f(x),因为实际此处的min抽象,而元素本身的标号可能并不具备比较意义,由此实际是最值操作,并不是最小操作。甚至可以是最大操作。

那么距离的定义就比较简单,按照标准的图论d(u,v)则如下

 

就是图中,任意两个顶点的路径集合中,最小的值,另一种定义如下

 

此时并不限定,e1,e2为顶点描述。也没有限定e1不能等于e2。限定越小,对我们的代码逻辑约束越小,代码逻辑越清晰。而且并没有增加计算量。

这里对标准图论的 测地线(geodesic)进行对应定义。其实也超级简单,雷同上面的方式。

 

gd的缩写是 GeoDesic, 而gmin的意思是,get node which is min by f(x)。

 

 

你可能感兴趣的:(连通图之前的几个补充讨论)