Как превратить мультиграф в простой ориентированный граф
Предположим, что существует сеть с несколькими ребрами, для любой пары вершин (u, v) граф содержит несколько направленных ребер от u до v и от v до u, каждый со своей емкостью и весом.
Как я могу уменьшить этот мультиграф до простого ориентированного графа с одним ребром между u и v?
Примечание *: Не уверен, что этот подход верен, я суммировал емкости и веса отдельных ребер между u и v и объединил их в один супер-ребро от u до v и одно от v до u. Но как мне далее объединить эти два в один край между u и v и в каком направлении он должен указывать?
1 ответ
Должен работать следующий код: G=nx.Graph(G) # удалить повторяющиеся ребра G.remove_edges_from(G.selfloop_edges()) # удалить собственные циклы remove = [узел для узла, степень в G.degree (). Items () если степень< 1] G.remove_nodes_from(удалить) # эти две последние строки кода удаляют узлы, имеющие степень 0, и не # запрашиваются, если все, что вам нужно, - это преобразовать мультиграф в простой граф