Another solution might be the following:
Step 1. Find the minimum section containing the minimum number of vertices (call its vertices Vmin).
Step 2. Find the minimum section containing the maximum number of vertices (let's call it the vertices Vmax).
Step3. Find all the edges that connect Vmin and V \ Vmax but are not part of E.
Why does it work? (I) Adding a new uv-edge is good if it is contained in each minimal section (more precisely: if it connects the various components of the minimal section) and (II) the "group" of minimal sections is close to the union and intersection.
Complexity:
For Step1,2, I found the following nice algorithm: How to find the minimum cut in the graph using the maximum flow algorithm? . This can be used to find the minimum cut with minimum and maximum vertices. This is apparently done at h (| E || V |) + O (| V | ^ 3), where O (| V | ^ 3) comes from the BFS when you check if the BFS is complete (i.e. e. residual neighboring exists).
For step 3, we have O (| Vmin | * | V \ Vmax |) such that O (| V | ^ 2).
Therefore, Step1,2,3 = h (| E || V |) + O (| V | ^ 3)
Please note that this is just a quick sketch :)
Gyula Nov 07 2018-11-11T00: 00Z
source share