【问题标题】:Which algorithm should match this specific Graph哪个算法应该匹配这个特定的图
【发布时间】:2016-03-29 17:09:42
【问题描述】:

这里的具体问题。假设您有一个图,其中每个顶点指定它们必须与另一个顶点有多少连接,并且适用以下规则/属性:

1- 图形可能不完整(不需要每个顶点都相互连接)

2-只有两个顶点之间可以有两个连接,如果它们在相反的方向(例如:A 点做 B,B 点到 A)。

3- 假设它们位于 2D 平面,则不可能有交叉连接(甚至连切线)。

4- 对最短路径没有兴趣,只需尊重属性并知道解决方案是否唯一。

5- 不可能有解决办法

编辑:好的,抱歉没有具体说明。我将尝试在这里澄清我的观点:我想要做的是给定一些顶点,知道一个图形是否连接(如果所有点都至少与图形有一个连接)。给定的顶点可能无法绘制它的图表,所以我想知道是否有解决方案,解决方案是否唯一,或者(最坏的情况)是否没有可能的解决方案。我认为这阐明了第 4 点和第 5 点。图形是无向的,连接不能弯曲,只有直线。节点(顶点)是固定的,我们有它们的位置或 W/E 输入。我想知道最好的方法,我一直在研究,这是一个连接问题,尽管也许一些特定的算法可能更有效地完成这项任务。就这些了,抱歉回复晚了

EDIT2:好吧,如果我们认为每个顶点都在平面矩阵的行和列上并且它们只能与同一列上的其他顶点连接,那么问题会有所不同还是行?所以它只是 90/180/270/360 直接连接。这会大大缩短可能性,对吧?

【问题讨论】:

  • 不清楚你的问题是什么。这个算法应该解决什么问题? “匹配”是什么意思?这里的输入输出是什么?
  • 基本上我想知道的是什么算法可以在遵循这些属性的顶点之间建立连接并找到解决方案
  • 好的,你要生成一个图。我仍然不明白你在问什么,尤其是在第 2、4 和 5 点。
  • 您将需要添加一些示例或更多详细信息来解释您正在尝试做什么,即使在澄清之后您也需要缩小问题的范围,因为一般“什么算法做什么我需要”的问题往往过于宽泛和开放式
  • 边缘必须是直的,还是可以弯曲?

标签: algorithm graph-theory graph-algorithm directed-graph planar-graph


【解决方案1】:

我将假设问题是:给定每个顶点的度数,计算出一个通过所有给定约束的图。

我认为您可以将其简化为一个非常大的整数规划问题 - 线性约束,但变量必须是整数(实际上是 0 或 1),这使得该问题比普通的线性规划要困难得多。

令未知数的形式为Xij,如果从节点i 到节点j 有一条边,则Xij 为1,否则为0。然后,对连接数的要求相当于 SUM_{all i}Xij = K 形式的要求,其中一些 K 取决于要求。图是平面的要求减少到图不包含两个已知图作为子图的要求 - https://en.wikipedia.org/wiki/Graph_minor。然后,每个可能的子图都会产生一个约束,例如 X01 + X02 + ...

【讨论】:

    【解决方案2】:

    假设您要求我们:

    找出是否可以生成一个或多个有向平面图,使得每个顶点具有给定的出度(不一定每个顶点具有相同的出度)。

    我们还假设您希望连接图表。

    如果有n 顶点并且顶点的度数为d_1 ... d_n,那么对于顶点i,则有C(n-1,d_i) = (n-1)!/((d_i)!*(n-1-d_i)!) 从该顶点的出边的可能组合。对所有顶点进行所有这些组合的乘积将为您提供可能图形数量的上限。

    天真的方法是:

    • 生成所有可能的图表。
    • 过滤图表以仅包含连接的图表。
    • 在图上运行planarity test判断是否是平面的(这一步可以认为图是无向的);如果不是,则丢弃。
    • 利润!

    【讨论】:

    • 这是一种有趣的方法,但我想生成一个已经连接的图,或者只是承认它不可行。虽然我认为我的方法有点幼稚,因为我们通常会生成图表,然后应用搜索算法来了解它是否符合我们的规范,对吗?编辑:哇,这篇论文是巨大的,这么多算法和定理。聪明人!
    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多