我在这里显示了一个图表。节点B_0,B_1属于节点B,C_0,C_1的节点。 C_2,C_3属于C类节点,依此类推。 现在,我想找到多个子图,这些子图可以满足这个例子所定义的标准 -
标准 -
现在这个描述应该给出结果 -
我想知道,如果有任何算法,我可以通过它找到这样的子图? 我尝试通过制作所有可能的组合来找出算法。但是,这将是子图中节点数量的指数。因此,我想知道是否存在一种有效的计算方法。或者如果图论中存在类似性质的问题?
答案 0 :(得分:2)
您可以从访问类型A的所有节点开始。对于每个A节点,查看连接到它的所有类型为B的节点。从那里查看C类型的所有节点,依此类推,跟踪节点从最后一个A节点访问过。然后,只要您到达完成搜索条件的子节点,就可以从A节点添加所有节点列表,直到您所在的位置。基本上你正在进行深度优先搜索,只要节点满足应该遵循的标准,并且只要没有更多有效节点(即产生有效子图)从那里出来,就会继续遍历图形。你当前的节点。