通过一个顶点删除创建一个常规图形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过一个顶点删除创建一个常规图形相关的知识,希望对你有一定的参考价值。

问题:给定一个无向图,使用邻接列表实现。我正在寻找一种算法,通过一个顶点删除将其转换为规则图(每个顶点具有相同的度数)。

例如:

答案

迭代所有顶点,按度数对它们进行分区。

如果所有都具有相同的度数,则只有存在具有度数n - 1的顶点才有可能。

如果你可以将它们划分为2个不同的度数集:让我们用较低的度数调用X,用较高的度数调用Y.让我们调用dg(X)和dg(Y)这些顶点的程度

  • 如果其中一个分区只有1个顶点,并且其度数为0或另一个集合中的顶点数量,则将其删除
  • 如果dg(Y) - dg(X)> 1,则不可能
  • 如果dg(Y) - dg(X)= 1且| Y | = dg(X),检查X中的顶点是否连接到Y的所有顶点并将其删除。
  • 如果dg(Y) - dg(X)= 1且| X | = dg(Y),检查Y中的顶点是否连接到X的所有顶点并将其删除。
  • 任何其他情况都不可能有2个分区

如果你可以分成3组:

  • 其中一个顶点必须只有一个顶点,并且该顶点必须连接到另一个最高度集的所有顶点,并且不能连接到其余的顶点。其他最高学位集与剩余集之间的学位差也必须为1

任何其他情况,它是不可能的

以上是关于通过一个顶点删除创建一个常规图形的主要内容,如果未能解决你的问题,请参考以下文章

删除最小数量的顶点以使所有顶点都被隔离

WebGL着色器入门简介

如何删除R中图形中的顶点?

使用Igraph中的顶点标签删除边

如何从图中删除顶点并在其邻居之间创建边?

使用 GLM 库在 OpenGL 中绘制顶点时如何使用常规坐标系