【问题标题】:splitting of a graph into cycles and then into paths将图拆分为循环,然后拆分为路径
【发布时间】:2013-03-01 14:56:40
【问题描述】:

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

基本上,我将无向图(例如 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++ 标签,因为许多计算机科学家使用图论并希望得到回应。

【问题讨论】:

  • 您也许会收到更好的答案@@math.stackexchange.com
  • 感谢 cmets。我在 math.stackexchange 中发布了相同的内容,但还没有回复...
  • 但这并没有成为这里的主题。

标签: c++ math graph-theory discrete-mathematics notation


【解决方案1】:

在尝试将运算置于数学描述中时,您可能遇到的第一个问题是您对“最短循环”的定义,因为循环通常定义为由边连接的顶点序列,其中第一个也是最后一个。

数学速成课

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

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

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

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

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

一个顶点序列v1, ...., vn,其属性是对于序列vi中的每两个连续顶点和vi+1 集合{ vi, vi+1 } 是集合E 的一个元素。

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

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

有了这个定义,你的例子已经是序列:1、4、1 形成一个循环(在数学意义上)

因此,您图中的每条边都将算作“最短”循环,而给出的示例肯定更长!

你说过你

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

作为您描述的起点,这看起来不错。不幸的是,我没有完全理解您要执行的后续步骤。

建议

我的建议,或者至少我会解决问题的方法是将相当长的描述转换为某种更短的算法描述,同时精确地改进你尝试执行任务的方式。这样得到你的最终描述应该不会太难完成。特别是不要忘记告诉算法的输入到底是什么。从您的描述中,这似乎也不太清楚。

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

【讨论】:

  • 欢迎您解释(如果可能)如何将图分解为其子循环图、将循环拆分为几个路径图、合并所有子循环图、选择边也是。 (因为这个数学符号对我来说相当复杂)
  • 很抱歉给您带来了困惑。我所拥有的是我的左图。我首先提到了使用深度的较短周期。其余的都只是在玩 c++ 向量。
  • 定义:将图分解为其子循环图(较短的循环),将循环拆分为几个路径图,合并所有子循环图,同时删除不需要的边是主要的我正在寻找的东西。 (我的问题是,我不知道如何用数学方式来表达这些一般性的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多