Нужна помощь для реализации модифицированной BFS / Dijstra с одним узлом с несколькими весами и ребром с одним весом. У меня есть данные временных рядов со всех узлов. Я знаю, какой узел подключен к какому другому узлу. Вес узла указан в токе (единица измерения: ампера). Вес ребра - это расстояние (единица измерения: метры) между узлами. В каждом узле 4 порта. Края - это кабели в реальном мире.
Примечание: 4-й порт - это сумма остатков и индикатор того, потреблял ли этот узел энергию или нет. Энергия в 30 ампер перешла от A к B к E. Когда я вижу -30 на 4-м порту E, поток энергии определенно пошел по этому пути, а не A-B-D-E, даже если расстояние от кабеля здесь меньше.
Постановка задачи: Мне нужно выяснить, как значение 30 (желтый) прошло по короткому маршруту от А до Е в обход В.
Моя мотивация: Понимать поток энергии внутри ребер.
Мое ограничение: Я мог использовать только краевой вес, чтобы что-то вывести, но это мало помогает в решении этого. Пожалуйста, прокомментируйте для большей ясности.
G=nx.Graph()
G.add_edge('A','B', weight = 20)
G.add_edge('A','C', weight = 18)
G.add_edge('B','E', weight = 35)
G.add_edge('B','D', weight = 15)
G.add_edge('D','E', weight = 15)
elarge=[(u,v) for (u,v,d) in G.edges(data=True) if d['weight'] > 30]
esmall=[(u,v) for (u,v,d) in G.edges(data=True) if d['weight'] <= 30]