Input: graph , sink |
Output: subproblem set |
(1) return if is a tree; |
(2) let be the minimum directed cycle found by the DICIRCUIT algorithm in [13]; |
(3) if then // no cycle |
(4)find any vertex with out degree larger than 1, and |
insert its out edges into ; |
(5) ; |
(6) foreach do |
(7); |
(8)reverse the direction of edges in , and perform a breadth-first search from the sink; |
(9)if all vertices are visited then |
(10); |
(11)construct subproblem with as the network; |
(12) if then |
(13) graph of subproblem ; |
(14)return ; |
(15) else |
(16)return ; |