算法 – 各种图形类型的意义

有很多
named graph types.我想知道这种分类背后的标准是什么.不同的类型适用于不同的背景吗?此外,业务应用程序(从设计和编程的角度来看)可以从这些分类中获益吗?这类似于设计模式吗? 最佳答案 我们已经为常见的图表族命名,原因如下:

>某些图形族具有良好,简单的特性.例如,trees有许多有用的属性(在任何一对节点之间只有一条路径,它们是最大的非循环,它们是最小连接的,等等),它们不包含任意图形. Directed acyclic graphs可以是topologically sorted,其中法线图不能.如果您可以根据这些类型的图形之一对问题建模,则可以对它们使用专门的算法来提取不一定从任意图形中获取的属性.
>某些算法在某些类型的图表上运行得更快.图上的许多NP难问题,如现在没有任何多项式时间算法,可以在某些类型的图上很容易地解决.例如,maximum independent set problem(选择最大的节点集合,其中没有两个节点通过边连接)是NP难的,但可以在树的多项式时间和bipartite graphs求解.4染色问题(确定是否为节点图形可以是四种不同颜色中的一种,而不是为相邻节点指定相同的颜色)一般来说是NP难的,但是对于planar graphs来说是立即成立的(这是着名的四色定理).
>某些类型的图表上的某些算法更容易.图中的matching是图中边的集合,其中没有两条边共享端点.最大匹配可用于表示将人员组合成组的方式.在二分图中,最大匹配可用于表示将人员分配给任务的方式,使得没有人被分配两个任务并且没有任务被分配给两个人.有许多快速算法可以在二分图中找到最大匹配,这些算法工作快速且易于理解.一般图的相应算法明显更复杂并且效率稍差.
>某些图表具有历史意义.许多命名图是以使用该图来反驳关于任意图的属性的猜想的人命名的.例如,Petersen graph是许多定理的反例,这些定理对于图表似乎是正确的但实际上并非如此.
>某些图表在理论计算机科学中很有用. expander graph是一个图表,直观地说,任何节点集合必须连接到图中比例较大的节点集合.并非所有图形都是扩展图形.扩展器图用于理论计算机科学中的许多结果,例如PCP定理的一个证明和SL = L的证明.

这并不是我们关心不同图族的原因的详尽清单,但希望它有助于激发他们的使用和学习.

希望这可以帮助!

点赞