Opened 5 years ago
#13489 new Bugs
boykov_kolmogorov_max_flow produces incorrect residual edge capacity
| Reported by: | Owned by: | Jeremiah Willcock | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | graph | 
| Version: | Boost 1.67.0 | Severity: | Problem | 
| Keywords: | Cc: | 
Description
Greetings,
With some graphs, the boykov_kolmogorov_max_flow algorithm creates residual edge capacity maps with larger values than the graph edge capacities should allow.
I have attached code that creates a small graph to demonstrate this issue and the GraphViz plot of the automatically-generated .dot graph file for easy visual inspection of the results.
In the attached GraphViz plot, each edge is labeled with (residual capacity)/(capacity). The residual capacity should never be greater than the capacity. Thus, the labels "1/0" and "101/100" are in error.
I have run this test in Boost 1.54, 1.66, and 1.67.

cpp file that demonstrates problem