In many systems such as computer network, fuel distribution, and transportation system, it is necessary to change the capacity of some arcs in order to increase maximum flow value from source s to sink t, while the capacity change incurs minimum cost. In real-time networks, some factors cause loss of arc’s flow. For example, in some flow distribution systems, evaporation, erosion or sediment in pipes waste the flow. Here we define a real capacity, or the so-called functional capacity, which is the operational capacity of an arc. In other words, the functional capacity of an arc equals the possible maximum flow that may pass through the arc. Increasing the functional arcs capacities incurs some cost. There is a certain resource available to cover the costs. First, we construct a mathematical model to minimize the total cost of expanding the functional capacities to the required levels. Then, we consider the loss of flow on each arc as a stochastic variable and compute the system reliability.

1. Introduction

Given a directed network flow with unique source and unique sink , one of the common problems is the maximum flow problem where the value of flow from to should be maximized. Various algorithms have been presented to solve this problem. The first algorithm developed by Ford and Fulkerson [1] was called Augmenting Path Algorithm. Karzanov [2] introduced the first preflow-push algorithm on layered networks. He obtained an algorithm. Capacity scaling is another polynomial algorithm developed by Ahuja and Orlin [3]. It seems that the best available time bounds algorithms to solve this problem are based on Alon [4] and Ahuja and Orlin [5].

The budgeted capacity expansion problem has been investigated for different systems. One of them is flow expansion on transportation networks with budget constraints. This problem was studied by Elalouf et al. [6]. The general budget-restricted max flow problem was first discussed by Eiselt and Frajer [7]. Also, another algorithm for optimal expansion problems was provided by Ahuja et al. [8].

Many physical flow systems are regarded as stochastic network flows. In such a system, the system reliability is an important criterion for system performance. Several studies have evaluated network reliability of maximum flow. Yeh evaluated the reliability factor of a network, where arc capacities are stochastic. He defined a simple approach to evaluate reliability of a multistate network [9]. Xiao et al. [10] presented a model for reliability computation in power distribution system. Later, the presented approach in [9] was considerably improved by Salehi Fathabadi and Forghani-elahabadi [11]. In another paper, Yeh [12] designed a survivable network under cost constraints and computed its reliability. For this case, Salehi Fathabadi and Khodaei [13] presented a different method to find the optimal system parameters and computed its reliability. Lin and Yeh [14] proposed a genetic algorithm to find maximal reliability of networks. Also Lin studied stochastic flow network with two commodities [15] and network reliability with budget constraint [16]. In all of the above studies the probability function of the arcs’ capacity was assumed to be discrete. However, in many real-life systems, where the flow is liquid, this assumption is not applicable.

In this paper, we consider network flow systems in which the functional capacities of the arcs are continuous random variables. The investigated problem is to expand the nominal capacities of arcs so that the system would be capable of securing the demands, while the expansion cost is minimal. Then, we evaluate the reliability of the systems as the probability that the network can transfer a desired amount of flow from the source, , to the sink, . The former goal is achieved by running the algorithm CEA, which is explained in Section 3 and the later goal is accomplished in Section 4.

Regarding the previous studies [17, 18], our contribution has been compiled based on the following. (i) We define and use the arcs’ functional capacities which are quite different from arcs’ nominal capacities in real-life systems. (ii) The probability functions of the stochastic functional capacities are continuous. (iii) The capacity expansion cost is minimum. The capacity expansion takes place in a discrete manner until the maximum flow reaches the required level. This paper has been arranged as follows. Section 2 defines notations, primary assumptions, and the related theorems. Also, the mathematical model of the problem is constructed in Section 2. Section 3 explains the capacity expansion algorithm. System reliability is computed in Section 4 and eventually a numerical example will be considered in Section 5.

2. Notations and Assumptions

We use the following definitions and assumptions throughout this paper.: A directed network flow with a unique source and a unique sink , where is the set of nodes and is the set of arcs.: Nominal capacity of (the initial built-in capacity of ).: Functional capacity of , (the current operational capacity of ).: Amount of capacity expansion on .: Maximum capacity expansion for .: Expansion cost per unit of capacity on .: Loss factor on . The fraction of arc’s capacity is lost due to some stochastic events. Then is fraction of arc’s capacity that is able to transmit the flow. We call them transmission factor.: The th simple path from to . A simple path does not include repeated arcs and/or nodes.: The th category . Each category includes several subsets of transmission factors. In addition, each category is related to set of simple paths that are capable of sending maximum flow from to .The network flow satisfies the following assumption.(i)Each node is perfectly reliable. This means that the amount of flow passing through a node does not change.(ii)The loss factors and transmission factors of different arcs are statistically independent random variable.

3. Problem Statement

Assume is a network flow with node set, ; arc set, ; source node ; and sink node . We assume includes nodes and arcs. Each arc, , has a nominal capacity of . There are some factors in this network that cause loss of flow on each arc. For example, in a water distribution system, evaporation, erosion, or sediment in pipes waste the flow in some parts. For each arc we define a real capacity or the so-called functional capacity and denote it by . equals the real amount of maximum flow that can pass along the . According to the current functional capacities, the real maximum flow value from to is . This value is equal to the functional capacity of the current minimum cut, [19]. We are going to expand the nominal capacity, , such that the real maximum flow value is increased by and the total expansion cost is minimized. We know that the expansion cost on arc, for each unit of capacity, is and the maximum capacity expansion is units. For each arc, say, , there is a loss factor, , which is a continuous random variable in interval and shows the fraction of nominal capacity that is wasted. Thus transmission factor (, for all ) is computable for any arc. Note that this factor is a continuous random number in interval as well. Therefore, the functional capacity of is computed as . satisfy , .

Now using the above notations and assuming is the current minimum cut, the mathematical model of the problem is constructed as Constraints (2) show the flows are balanced at each node other than the source and sink; for the source and sink nodes the amount of out-flow from equals the amount of in-flow to and equals . Constraint (3) shows that the maximum flow, before changing the arcs’ capacities, is equal to . The constraints (4) guaranty the arc flows do not exceed the functional arcs’ capacities. Finally, continuity of , and therefore continuity of are the impact of constraints (5).

3.1. The Capacity Expansion Algorithm (CEA)

It should be noted that, according to the current functional capacities, the value of the maximum flow is and is equal to the capacity of the minimum cut, . Using the functional capacity, we assume that the current maximum flow is denoted by and generates the residual network . Suppose is a path from to in . The current amount of flow passing through this path is equal to . For some arcs, say, it may be . In this case, has some residual (free) capacity that may be used, without any cost, to increase the flow on . If , for an , there is no free capacity left on and the capacity of this arc must be increased incurring some cost. According to this point, we define capacity expanding cost for each arc and find the cheapest path from the source node to the sink node. For this purpose the residual network and an auxiliary network called expansion-cost-network are constructed. We denote the later one by and it is constructed as follows.

include all nodes of . For every two directed arcs in opposite directions between and are drawn in . Note that, if there already are two arcs between and with opposite directions, no more arcs are drawn between these nodes. The shows the possibility of expanding capacity with cost on . The artificial represents the possibility of reducing the expanded capacity on . It is important to note that, when there is a positive amount of flow going from node to node through the , we may decrease it by assuming an artificial arc from to with some positive flow and cost . Each arc in is labeled by , which is the expansion or narrowing cost per unit of capacity. If the flow on arc is smaller than the functional capacity, namely, , then this arc steel has room to increase the flow. Hence there is no need to increase the current capacity. The labels for this case are set as . Otherwise, the capacity of should be expanded. At this stage of the algorithm, if the capacity of this arc has not been expanded so far, namely, , then increasing the capacity is possible. Hence we set and . If , then, for a better solution, we may increase the capacity or reduce the increased capacity. Therefore the labels are set as , . Eventually, if the expanded capacity value on is equal to the capacity expansion is not possible and we can only reduce it. So, the costs are set as and [6].

After setting the labels in , the cheapest simple path from the source to the sink is found; the capacities are extended on this path as much as possible and the current iteration is ended with computing the maximum flow. This process is repeated until the value of the maximum flow becomes equal to .

3.2. Pseudocode of CEA

For more details see Pseudocode 1.

Read the nominal capacities,  s, and subset of the transmission factors,   s, of the original network, .
Calculate functional capacity,   s, of each arc.
Find the maximum flow, MAX.
While  MAX <   Do
 Define the residual graph and (cost) as follow
and let a label for each arc which show the cost of arc expansion as following:
For  each   Do
if   and   then
set and
if   and
if     then
  set and
  else if     then
  set and
  else if     then
  set and
end if
end if
end if
Find the shortest path in (cost) regarding value
if   (sum of the costs on the shortest path < +∞)
replace the new capacity in as follow:
if   and then
set and
else  if   and or and then
set and
end if
end if
end For
Calculate functional capacity using new capacity
Find maximum flow, MAX.
end while

3.3. Algorithm’s Complexity

We now consider the complexity of CEA. We might compute the computational time of this algorithm as allocated to the following four basic operations.(1)Construction of and : concerning residual network, the algorithm allocates costs to the arcs of . If the network contains arcs, costs of arcs would be calculated and assigned to the arcs. Thus the algorithm performs this operation in time.(2)Finding the shortest path: the algorithm finds the cheapest (shortest) path from the source to the sink according to the cost vector . FIFO implementation of the modified label correcting algorithm is the best known algorithm for this purpose. The runtime of this algorithm is , [19].(3)Capacity expansions: for each arc belonging to the cheapest path, it would be examined whether capacity expansions are required or not. This operation would be implemented in time.(4)Computing the maximum flow: at this stage, the maximum flow algorithm is run. The order of the best known algorithm (highest label preflow push) is [19].

The above steps are repeated until the maximum flow for the first time becomes equal to or greater than . Suppose is the maximum number overall repetition needed to reach this threshold. Finally we have the following result.

Theorem 1. The capacity expansion algorithm (CEA) runs in time.

4. System Reliability

In order to increase the maximum flow value to the required value, the above algorithm computes the optimal capacity expansion while assuming deterministic transmission factors. But, in case of randomness the algorithm may be used only for observation values of these factors. System reliability is defined as the probability that the maximum flow value satisfies a certain condition, such as appraising some demands [3, 13]. Since the loss factors, transmission factors, and, therefore, the functional capacities are stochastic, the final value of maximum flow is also stochastic. In order to establish an approach for evaluating the system reliability of such systems, we assume the loss factors are continuous uniform random variables and generate uniformly distributed pseudo-random numbers in the interval . The method to generate these numbers is multiplication congruent [20]. Then we calculate the transmission factors for any arc using loss factors. Note these factors are continuous uniform random numbers in the interval as well. We denote them by . We consider several subsets of these numbers and denote them by , . Each subset includes members. At the beginning of each run of CEA, we take one of these subsets as the arcs’ transmission factors and run the algorithm. At the end of CEA a set of paths that transfer at least unit of flow from to is generated. It is clear that the generated paths and their number depend on the given subset of transmission factors. Furthermore, there may be subsets of transmission factors that generate similar set of paths. We consider the subsets of transmission factors that generate the same set of paths as a category and assume that the number of categories is (). We denote the categories by ,  . Also we assume that the number of paths associated to the th category is .

Now we consider as the final value of maximum flow in each category and compute the density function of . Since ,  are continuous uniform random variables on interval with density function of . The number of paths generated at each run of CEA depends on the applied subset of transmission factors. For each path associated with the th category, the flow value on is computed as The total flow value is equal to the sum of all flow values on the generated paths. That is, . The distribution functions of may be computed according to the following theorem. Then we determine density function of .

Theorem 2 (see [21]). If are independent random variables with distribution function and , then , [21].

Now, we apply the following procedure to compute the network reliability.

4.1. Computing the Network Reliability

After running CEA times with input of , , and determining the categories , , the following procedure is performed to compute the network reliability.

Step 1. From each category, , , select one subset of transmission factors, say.

Step 2. For each and , compute

Step 3. Find the probability function of , where and .

Step 4. Calculate and its probability functions [21].

Step 5. Compute the conditional probability; that is, (), .

Now the system’s reliability is computed using the following equation:

5. Numerical Example

In order to illustrate how the algorithm works, we apply it to the network flow shown in Figure 1. In this example, we assume and . We generate the following sequence of pseudo-random numbers, transmission factor, and its subsequences: Note that , , has been arranged as .

We use , , as transmission factors and run CEA to find the related paths from node to node . For example, we consider and run algorithm CEA. For more explanation, we describe one stage of implementing this algorithm using in Figure 2.

Note that we show the shortest (cheapest) path in Figure 2(b) by solid line and other arcs by dotted line. The result of running CEA using is shown in Figure 3.

Also note that the dotted lines in networks Figures 3(a) and 3(b) from note 1 to node 2 in the last stage indicate that no increase has taken place on this arc and that no flow passes through this arc. We see that generates the same set of paths with ; that is, and . Therefore we put and in category 1, . Also, and generate the same paths: , , and . Hence we put and in category 2, . The result of running CAE using is shown in Figure 4.

We discard the factor , because this subset of the transmission factors reduces the functional capacity of the arcs originating from source to the extent that these arcs are unable to carry at least unit of flow. For more explanation, the result of running CEA using is shown in Figure 5.

Now, we apply the following steps to compute the network reliability.

Step 1. We choose the subset from .

Step 2. Let and where are random variables that have uniform distribution on ; that is, , , , and .

Step 3. Density functions of and are computed as and . Also . .

Step 4. Let and

Step 5. Now we can calculate the following conditional probability: Also we implement the above steps for from and get the following probability: Finally, we can calculate the system reliability: Although the reliability network in this example was equal to 0.33, yet this is an effective algorithm which presents a new method for calculating the reliability in networks with continuous components. Although previous algorithms [1114] also have presented methods for calculating the reliability in the network, but in all of these methods, components, including arcs’ capacity, have been assumed to be discrete, while this assumption is not true for all networks. By presenting this algorithm, we have created an innovation in regard with reliability of networks with continuous capacities. Finally, we would give another example and calculate the reliability of a network in order to elucidate efficiency of these algorithms.

5.1. Another Example

In order to elucidate efficiency of CEA, we consider the network flow shown in Figure 6. Also we assume and . We generate the following pseudo-random numbers and transmission factors: We consider several subsets of these numbers that each subset includes members. Note that has been arranged as . Also, we implement CEA using . In order to classify the result, we place the result of implementing CEA and reliability algorithm in Table 1.

We discard the subset or because these subsets of transmission factors reduce the functional capacity of the arcs which originate from the source or reach the sink, to the extent that these arcs are unable to carry at least unit of flow.

Finally we can calculate the system reliability as follows:

6. Conclusion

In this study, first, we proposed an algorithm to change the arcs capacities so that the maximum flow value exceeds a predefined value and the total cost of change is minimum. In the algorithm (CEA), arc capacities were expanded on the cheapest paths from the source node to the sink node. Then, system reliability was evaluated when the arcs’ functional capacities were stochastic with continuous probability function. There are several different methods in the literature for evaluating of network reliability, when the random components are mostly discrete. In contrast, we studied that system which has continuous random components. For each arc, a functional capacity was defined that had continuous uniform distribution on and then, the network reliability is calculated.

Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.


The authors are pleased to appreciate the respectful referee(s) for their valuable comments and guidance that made this paper more accurate and credible.