繁体   English   中英

将图分成周期然后分成路径

[英]splitting of a graph into cycles and then into paths

首先,我应该说我不熟悉图论,而且我的数学知识也很差。 无论如何,我正在使用图概念进行分析。

基本上,我将无向图(例如G)分解为循环(封闭图)。 我的循环的特长是它们是一个可以在两个顶点之间移动的最短循环(因为它们是循环,因此开始和结束是相同的)。 根据我的示例图,我的周期是(1,4,5,1)(1,2,3,4,1)(7,9,8,7)(我忽略了长度小于3的周期) 。

编辑:我使用深度优先搜索来获取周期,然后得到最小的周期。

稍后,我进一步将这些循环制动为有向路径。 在这里,我打破了循环的边缘(图中的红线),以便为新的路径图插入起点和终点。 因此对于循环(7,9,8,7)=>新的有向路径为(a,9,c)(d,8,7,b)编辑:仅针对选定的循环进行进一步的断开。 它只是插入一个新的向量并更新元素。 任何与图论相关的算法都不在这里。

然后,我对数据进行一些分析。

我做了以上所有事情。 因此,我的问题是如何用数学符号描述整个事物(没有像我所说的例子)。 这对我来说很难,因为我什至没有基础知识。

我正在尝试和谷歌搜索,但仍然找不到描述我所做的方法。 我想,我所做的事情对您来说很清楚。

所以,请你帮我一下,如何形容

  1. 将无向图分解为周期(最短周期)
  2. 通过边缘循环断裂并制作有向路径图(如图所示)

具有数学符号(根据图论)

我已经看到许多作者使用不同的符号和符号来定义图形及其子图形,但是对我来说,我无法定义基本内容太差的东西。 因此,请帮助我以正式的数学方式讲这些事情。 提前致谢。

我还插入了样本图以了解想法。 在此处输入图片说明

注意:我添加了c ++标记,因为许多计算机科学家都使用图论,并且希望对此做出回应。

尝试将操作进行数学描述时可能遇到的第一个问题是“最短循环”的定义,因为循环通常定义为由边连接的一系列顶点,其中第一个也是最后一个。

数学速成班

在数学中, 图形通常由两个集合V(如顶点)和E(如边)描述。集合E由具有两个元素(每个元素都是一个顶点)的集合组成。

  • V = {v1,v2,....,vn}

  • E = {...,{vi,vk},...}

E中的每个集合都对应于图形中的一条边。

因此,(连接的) 路径通常定义为:

顶点序列v1 ,..., vn具有以下特性:对于序列vivi + 1中的每两个连续顶点,集合{vi,vi + 1}是集合E的元素。

(实际上:从顶点vi到顶点vi + i有一条边)

通常将循环定义为具有以下属性的路径: v1 = vn (因此第一个顶点也是最后一个顶点)

这个定义已经成为您的示例的序列了:1,4,1形成一个循环(在数学意义上)

因此,图形中的每条边都将视为“最短”周期,而给出的示例肯定更长!

你说过

...忽略长度小于3的循环

作为您描述的起点,这看起来不错。 不幸的是,我不完全了解您要执行的下一步。

忠告

我的建议,或者至少是我解决问题的方法,是将相当长的描述转换为某种较短的算法描述,同时精确地定义如何尝试执行任务。 通过这种方式到达您的最终描述并不难。 特别是不要忘记告诉您算法的确切输入是什么。 即使从您的描述来看,这似乎也不太清楚。

  • 您是从一组已知的“最短”周期开始的吗?
  • 还是只是给定一个图形作为输入并必须自己确定“最短”周期?
  • 如果您自己检测出它们是如何完成的? 特别是不要忘记讲述故事的这一部分是否适用,因为它似乎是解决问题的最关键的部分之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM