do for Eij as all the edges mark Eij as candidate (green) if t(Eij)0 mark 'Source' as active while ('s'=first active node) and if this 's' is not 'Target' do for 't' as all the unmarked nodes if exists edge 'Est' and its a candidate one add 't' end of active nodes record 's' to 't' for backtrace mark node 's' as passed if 's' is empty (no 'Target' reachable) finish the algorithm clean the backtraces not on 't'->'s' path 'd'=+infinity start at 's' and... while still backtracable for 'j' backwards to 'i' do if 'Eij' is a candidate 'd'=min('d',c('Eij')-t('Eij')) if 'Eji' is a candidate 'd'=min('d',t('Eji')) start at 's' and... while still backtracable for 'j' backwards to 'i' do if 'Eij' is a candidate t('Eij')+='d' if 'Eji' is a candidate t('Eji')-='d' network and variable cleanup (only 't()' remains) forever (until line 15 finishes) - 0 Algorithm is currently stopped. You may use the control buttons to clear the state and restart whole simulation. - 1 31 The cycle will run as long as there are some paths to improve. Exit check is done on the line 15. - 2-3 In this cycle we're marking the directions and edges which would be eventually usable during next processing... - 4 In forward direction such path must have some capacity left [t(E)0. - 6-13 We're searching any existing path from source 's' to the target 't' which uses only marked (green) edges in correctly marked directions. In fact it is a wide-search with recording of back-path into each node. After reaching the target we can track the recorded path back to the source 's'. - 14-15 If no target 't' was found that means that: |1) Target is separated completely from the source or |2) There's no (other) paths which can be improved and which are connecting the source and target nodes. - 16 A little tidy up to clear the diagram. - 17-23 We're trying to find maximum 'd' which is improvable on ALL the edges used in the path found. Such 'd' must be >0 as otherwise one of such edges wouldn't be marked on the algorithm lines 1-5. - 24-29 We have the final value of 'd' so we can now on all the same edges contained in the path found apply appropriate improvements. - 30 All the temporary variables and data structures are no longer needed and may be freed now. The only result from this one pass of algorithm is the improvement in values of function 't()' - - 0 0 0 1 0 2 0 3 1 0 1 1 1 2 2 3 - 1 5 2 5 4 3 2 3 1 4 7 5 7 4 7 7 2 1 5 6 2 5 0 4 0 6 9 - 5 3 -