User:Andrupik

This new scaling algorithm (Fathabadi scaling algorithm) solve the feasibility problem of a network flow. It determines whether a network feasible or not using conservation and boundedness constraints. If the network is infeasible then algorithm finds a positive cut. It also repair an infeasibile network and estimate the maximum cost of repairing. For a network with n nodes and m arcs, the algorithm running time O(m2log(nU)). Where U is the largest absolute arc bounds. This algorithm was published in 2007 Elsevier Inc by Hassan Salehi Fathabadi and Mehdi Ghiyasvand.

Algorithm description
For this algorithm,we assume that the lower and upper capacity bounds are integer. In each iteration, the algorithm call a procedure of searching a δ feasible flow. Suppose that D =(N, A) is a network with node set N, arc set A, lower bounds l, upper bounds u. Then we can say the network D is feasible if there exists a flow x satisfying following constraints (1) and (2):

∑ xji - ∑ xij = 0   for all i ∈ N       (conservation)             (1) jєN    jєN lij ≤ xij ≤ uij  for all i ∈ N         (boundedness)              (2)

Algorithm relaxes the capacity bound by δ of the network; that means, it takes (lij - δ , uij + δ) instead of (lij , uij ) for each arc i → j. Such network is called a δ network. By Hoffman's theorem "A network with conservation and boundedness constrains is feasible if and only if for every cut (S, T), we have V (S,T)≤ 0". A cut (S, T) with V (S,T) > 0 is called a positive cut. Let x be input to the procedure of searching a δ-feasible flow, thus it is a 2δ-feasible flow. Let G = G+ U G-

such that:

G+ = {i → j ∈ A | uij + δ < xij ≤ uij + 2δ },

G- = {i → j ∈ A | uij < xij ≤ uij + δ }.

Let B = B+ U B-

such that:

B+ = {i → j ∈ A | lij - 2δ < xij ≤ lij - δ },

B- = {i → j ∈ A | lij -  δ < xij ≤ lij }.

also let

R = {i → j ∈ A | lij  ≤ xij ≤ uij  },

Theorem 1: Let D=(N, A) be a graph whose arcs are divided into three sets B, G and R. Assume that a0 ∈ B(resp. a0 ∈ G) then one of the following cases applies:

(a) A simple cycle C containing a0 exists such that all arcs of C that are in the set B have the same (resp. opposite)direction as a0 and all arcs of C that are in G have a opposite (resp. same) direction to a0. (Call C a colored-cycle)

(b) A cut (W, Z), which contains arc a0 and does not contain the arcs of R, exists such that all arcs of (W, Z) are in the set G and all arcs of (W, Z)are in the set B, i.e. if i → j ∈ (W, Z) then i → j ∈ G and if i → j ∈  (W, Z) then i → j ∈  B (call (W, Z) a colored-cut).

Lemma 1 Removing arc w → v from the set B+ U G+

Assume that we have a colored cycle C containing an arc w → v ∈ B+ U G+. We augment the flow along C by δ units as follows. First consider the following cases which are true. Case (a): i → j ∈ B-, if we let x'ij = xij + δ then i → j ∉  B+ U G+

Case (b): i → j ∈ G-, if we let x'ij = xij - δ then i → j ∉  B+ U G+

Case (c):i → j ∈ R-, if we let x'ij = xij + δ or x'ij = xij -  δ then i → j ∉  B+ U G+

Case (d): i → j ∈ B+, if we let x'ij = xij + δ then i → j ∉  B+ U G+

Case (e): i → j ∈ G+, if we let x'ij = xij - δ then i → j ∉  B+ U G+

by cases (a, b, c), any arc i → j ∈ B- U G- U R of the colored-cycle C will not enter into B+ U G+. Also by cases (d, e) the arc w → v will be entered into the set B- U G- U R (i.e. w → v ∉ B+ U G+). because flow is changed along a cycle, Eq. (1) are maintained.

Algorithm
Scaling algorithm to solve the feasibility problem:

begin

let x = 0 and δ = U;

do until δ < 1/m;

begin

let δ := δ/2;

Searching a δ-feasible flow (δ,x);

end

end

Pseudocode Of Searching A δ-Feasible Flow
begin

Define B+, B-, G+, G- and R as above

1    do until B+ U G+ ≠ Φ

begin

select arc w → v ∈ B+U G+;

do the labeling procedure of the theorem 1;

if we have a colored-cycle containing w → v;

then

begin

adjust x by the Lemma 1;

update B, R and G;

goto 1;

end;

else goto 2;

2   let (W, Z)be the colored-cut containing w → v;

write (W, Z) "is a positive cut and the network is infeasible";

break;

end;

end;

Complexity
The running time of the procedure of searching a δ-feasible flow is O(m2). As an arc moves out from B+ U G+ it will never come back to this set in the next iterations, and |B+ U G+| ≤ m, therefore the number of iterations is at most m. In each iteration, the searching procedure identify an arc as colored-cycle or colored-cut. This process takes O(m) times (by a breadth-first search). Thus the time order of the procedure is O(m2). The number of overall iterations is O(log(nU)). But in each iteration, the algorithm call the procedure of searching a δ-feasible flow. Therefore, the running time of the algorithm is O(m2log(nU)).

Proof of correctness
By the algorithm, we can convert an infeasible network to a feasible network. Suppose δ-network is feasible but δ/2 network is infeasible. If we increase uij and decrease lij by δ then the new network will be feasible. Thus for repairing a network maximum changes will be 2mδ. Assume that a network with demand d = 0. But we have di ≠ 0 for some node i. Then we have to add a new node with do = 0. Now for each node i with di > 0, add an arc i→o and also add an arc o→i for each node i with di < 0 such that lio = uio = di and loi = uoi = - di respectively. Then reset all di =0. As a result, we will get a new feasible network if and only the original network is feasible. Now we can apply our algorithm on new feasible network.

Applications
This scaling algorithm can be used to solve the following problems, among others


 * Bipartite matching


 * Transportation problem


 * Network connectivity