C++ 随机约束图的生成
我需要生成一个顶点数目固定的随机图。每次我都很难找到解决办法 图形规则C++ 随机约束图的生成,c++,algorithm,random,graph,C++,Algorithm,Random,Graph,我需要生成一个顶点数目固定的随机图。每次我都很难找到解决办法 图形规则 每个顶点将有一个随机数目的连接,最多为N-1,其中N是顶点总数 顶点不能包含与其自身的直接连接 顶点不能包含与其他顶点的重复连接 如果顶点a连接到顶点B,则顶点B必须连接到顶点a 每个顶点必须连接到至少3个其他顶点。因此每个顶点将有[3,N-1]条边 我得到了一个正确的解决方案,大约70%的时间,但其他时候,我相当深入的图形,然后没有有效的顶点留下。要保证解决方案,顶点连接上需要哪些约束 到目前为止我在做什么 将[3,N-1
“图形不能包含与自身的直接连接”。您可能想说顶点不能包含与自身的直接连接?编辑,oops。是的,顶点不能有直接连接到自身的循环。但是,如果线下有2个连接,则没有问题,因为有一个由3个或更多顶点组成的循环。我不明白如何在最后1个或2个顶点上耗尽有效连接,因为您的要求允许连接到其他每个顶点?配对连接的需要似乎不会产生问题,因为您可以同时添加两个方向(或者用一个数据点构造数据以暗示两个方向)。没有办法耗尽有效值。是否有未列出的约束,例如如何选择顶点是否具有N-2、N-3、N-4等连接;或者,是否存在需要指向所有顶点的路径的约束?对于第4个列表项,您是指直接连接(边)还是通过其他顶点的连接(路线)?你的图表应该有多密集;顶点和边的数量是多少?你对连接号码有限制吗?马特:当我把一个连接添加到a时,我也会把它添加到B,这样他们都知道两者之间有连接。问题是,当我到达最低级别时,出于某种原因,可能有时所有顶点都已满或已连接到已连接到仍有打开连接的顶点。所以当它失败时,我通常有两个顶点,每个顶点有一个打开的连接,但是它们已经连接在一起,所以它们不再是有效的连接。