Я хочу обобщить график, который я создал из данных заводского журнала.
В необработанном виде график содержит 234 узла (действие, которое может выполнить робот) и около 4 миллионов ребер (поток данных журнала: робот 1 выполняет действие 1 в 23:45:32 -> Робот 23 выполняет действие 334 в 23:45:33).
Я создал график в Networkx как Weighted DiGraph (вес - это число раз, когда произошел переход, например, из действия 1 -> действие 334) и визуализировал его в Gephi, чтобы вы могли видетькак это выглядит (см. изображение).
Моей первой мыслью было проанализировать это как направленный ациклический граф, поскольку есть несколько ключевых событий, которые, по-видимому, происходят большую часть времени (вы можете видеть, что эти события находятся посередине и служат наиболее важнымиузлы, где каждый процесс в конечном итоге заканчивается).
Я хочу найти пути, которые ведут к этим узлам:
Однако, когдая проверяю nx.is_tree (G), is_directed_acyclic_graph (G) или что-то еще, все они возвращают false.Поэтому мой первый вопрос: какой график я здесь смотрю?Это какой-то особый случай?Потому что я не могу найти правильный термин для этого.
Мой второй вопрос: каковы некоторые стратегии автоматического поиска путей к этим важным узлам.Например, некоторые из конечных узлов являются ошибками.Было бы здорово узнать, какая цепочка / путь / трасса узлов / ребер чаще всего приводит к этим ошибкам.
Заранее спасибо за ваши предложения!