Fix residual graph generation, minor algorithm refactorings
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
use egui_graphs::{DefaultNodeShape, Graph, default_edge_transform, default_node_transform, to_graph_custom};
|
||||
use petgraph::{stable_graph::{StableGraph, NodeIndex}, Directed};
|
||||
use petgraph::{stable_graph::{NodeIndex, StableGraph}, visit::{VisitMap, Visitable}, Directed};
|
||||
use egui::Pos2;
|
||||
use crate::layout::CustomEdgeShape;
|
||||
use egui::Color32;
|
||||
@@ -19,9 +19,10 @@ impl ResidualGraph for StableGraph<(f32, f32), (u64, u64)> {
|
||||
let (reverse_flow, reverse_capacity) = *res_graph.edge_weight(reverse_edge).expect("reverse edge not found");
|
||||
// update the forward edge
|
||||
// TODO: this seems to overflow in certain cases
|
||||
res_graph.update_edge(source, target, (flow, capacity + reverse_flow - flow));
|
||||
|
||||
res_graph.update_edge(source, target, (flow, capacity + reverse_flow));
|
||||
// update the reverse edge
|
||||
res_graph.update_edge(target, source, (reverse_flow, reverse_capacity + flow - reverse_flow));
|
||||
//res_graph.update_edge(target, source, (reverse_flow, reverse_capacity + flow));
|
||||
} else {
|
||||
// add a residual edge with a flow of 0 if the reverse edge doesn't exist
|
||||
res_graph.add_edge(target, source, (0, 0));
|
||||
|
||||
Reference in New Issue
Block a user