我想总结一下从工厂日志数据创建的图形。
图的原始形式包含234个节点(机器人可以执行的动作)和约400万个边(日志数据中的流:机器人1在23:45:32处执行动作1->机器人23在23:45:33执行动作334)。
我已经在Networkx中将图形创建为加权DiGraph(权重是从操作1->操作334发生过渡的次数),并在Gephi中将其可视化,因此您可以看到它的外观喜欢(参见图片)。
我的第一个想法是将其作为有向无环图进行分析,因为大多数时间似乎都在发生一些关键事件(您可以看到这些事件在中间,并且是每个节点中最重要的节点过程最终结束)。
我想找到通向那些节点的路径:
但是,当我检查nx.is_tree(G),is_directed_acyclic_graph(G)或其他任何内容时,它们都返回false。因此,我的第一个问题是:我在这里看哪种图形?这是某种特殊情况的图吗?因为我似乎找不到合适的用语。
我的第二个问题是,有什么策略可以自动找到那些重要节点的路径。例如,某些终端节点是错误的。知道大部分时间哪个节点/边的链/路径/迹线导致这些错误,将是很棒的。
提前感谢您的建议!
答案 0 :(得分:0)
这是有向图。只要图形中存在一个从一个节点返回自身的路径,它就有循环。因此它不是非循环的。
在您的情况下,同一台机器人可以多次执行相同的操作,因此很明显有一个循环。即使一个机器人先执行动作1然后执行2,另一个机器人先执行动作2然后3,然后又执行另一个动作3然后2,您仍然会有一个循环。此外,如果没有周期,那么最终每个机器人都会用尽所有可能的任务(因为它们无法重复)。实际上,您的图形中会有某些动作,因此一旦任何机器人执行了这些动作,它就不会再执行任何操作。
您拥有的这张图只是加权有向图。
重要节点的最简单度量是它们的频率。在您的情况下,这将是权重的总和或权重的总和(应该相等,直到校正节点是数据集中机器人执行的第一个/最后一个动作)。
还存在其他“集中”措施。您可以在documentation上找到很多。图形被定向和加权的事实可能会影响是否针对网络实施了中心度度量(请查看文档的详细信息,并请注意,如果您未明确告知其使用边缘权重,它将处理该图为未加权)。
在盲目使用这些中心措施之一之前,您应该考虑一下它是否对您的环境有意义。