_{1}

^{*}

This research presents an approach based upon ant-colony optimization to address the system reliability problem. For each component of a system, the number of units in parallel needs to be chosen to maximize the reliability for the entire system. As more parallel units are selected, costs increase in a proportional fashion. For this effort, quantity discounts for additional parallel units are considered, and the budget for purchase of parallel units is limited. Ant colony optimization methodology is employed to find an optimal system reliability that satisfies the budget constraint. The methodology is employed for several test problems, and near-optimal solutions are found.

In the pursuit of system design and system engineering, it is important to construct a reliable system. One general way to do this is to include redundancies for each component. This is done to overcome failures of individual components. Each redundancy can be thought of as a backup unit. When one unit fails, a backup unit is activated, so that the component does not fail. The more redundancies, or backups a component has, the less likely the component is to fail. At the same time, however, the cost increases for each redundancy, or backup unit that is added to the component. As such, it is desired to construct a reliability system that maximizes system reliability while simultaneously adheres to a limited budget.

Unfortunately, problems of this nature are difficult to solve for a couple of reasons: they are combinatorial in nature, making it difficult to enumerate all possible solutions. Additionally, these problems are highly nonlinear, with a polynomial order equal to the number of decision variables, thereby preventing the use of traditional mathematical programming approaches.

Because of the challenging mathematics associated with these types of problems, heuristic approaches can be employed to find reasonable, if not optimal solutions. Additionally, if the heuristic approach is well thought out, the approach can find near-optimal solutions with a reasonable computational effort. For this research effort, an ant-colony optimization approach is employed as a sort of traversal through each system component with the intent of finding a “traversal” that provides, for each component, a high overall-system reliability that meets a specified budget.

The subsequent sections of the paper present the details of the problem at hand, describe the heuristic methodology used, present a simple example problem, discuss applying the heuristic to some test problems, and compare these results to the optimal solution. General observations, and opportunities for subsequent research are then offered.

The reliability of a system is the mathematical product of the effective reliability for each individual component. The effective reliability of an individual component is a function of the number of backup or parallel units. With more parallel units, the component’s effective reliability increases. This principle is well-do- cumented [

For this example, we assume the reliability for a single parallel unit for component j is R_{j}, where 0 < R j < 1 . We also assume the cost for a single parallel unit for component j is C_{j}. The effective reliability for component j is 1 − ( 1 − R j ) i , where i is the number of units in parallel. The effective cost for component j is C j ∑ h = 0 i = 1 D h , where D is the quantity discount factor ( 0 < D ≤ 1 ), with i units in parallel. The boxes in orange show the number of parallel units used for each component: three units for component (1), two units for component (2), and four units for component (3). The system reliability and system cost

are shown as follows:

SystemReliability = [ 1 − ( 1 − R 1 ) 3 ] [ 1 − ( 1 − R 2 ) 2 ] [ 1 − ( 1 − R 3 ) 4 ]

SystemCost = [ C 1 ( 1 + D + D 2 ) ] + [ C 2 ( 1 + D ) ] + [ C 3 ( 1 + D + D 2 + D 3 ) ]

Selection of the number of units to employ for each component is the difficult part of this problem. Of course, we’d like to have as many parallel units as possible, as that increases the system reliability. Unfortunately, it also increases the system cost, and in reality, we are likely to have a limited budget. As such, we need to maximize reliability while staying within some specified budget.

Optimization via mainstream mathematical programming approaches is not possible here, due to the highly nonlinear property of the problem. Additionally, the problem has an enormous search space, rendering enumeration impractical. In order to address this problem, we need to select a search heuristic to find a desirable solution requiring a reasonable computational effort. While there are many heuristic search approaches possible, ant-colony optimization is the search approach for this particular research effort.

Ant-colony optimization is based on the concept of ants foraging for food. Ants essentially communicate with each other via secreting a substance called “pheromone.” Pheromone attracts other ants. A trail rife with pheromone will likely induce other ants to follow its path, while at the same time, there is a relatively small probability for subsequent ants to deviate from this established path. This concept is illustrated by

For this research effort, we will simulate the behavior of the ants so that they traverse the individual components of a system with the intent of maximizing system reliability within budget-that is, having ants finding the “best” path during their traversals. Dealing with a limited budget and quantity discounts is a unique feature of this effort [

Here, we first formulate the general problem, detail the search heuristic, and offer a simple example to illustrate the methodology.

Before presenting the formulation, the following terms in

For this problem, our objective is to maximize the system reliability-the pro- duct of all component reliabilities. Our individual component reliabilities are dependent on the number of parallel units used for each component, which is a decision variable (x_{j}). The number of parallel units used for each component determines the cost of each individual component. More units used in parallel for each component increases the cost for the component, subsequently increasing the total cost. The total cost is limited by the budget, B. From a mathematical standpoint, we can represent our model in mathematical programming form via the following objective function and constraint, where decision variables are specified as integer, and in the range [1, n]:

Max : R s = ∏ j = 1 m ( 1 − ( 1 − R j ) ) x j (1)

Subjectto : ∑ j = 1 m ( C j ∑ h = 1 x j D ( h − 1 ) ) ≤ B (2)

x j integer , ∀ j (3)

x j ≥ 1 , ∀ j (4)

x j ≤ n , ∀ j (5)

Term | Definition |
---|---|

x_{j} | number of backup units for component j (decision variable) |

n | number of possible backup units for any component |

m | number of components in system |

R_{j} | base reliability of component j |

C_{j} | base cost of component j |

R_{s} | system reliability |

D | discount factor |

B | budget |

From inspection of the above model it is clear that our objective function is highly nonlinear, with a polynomial order of m. Additionally, our budget constraint is not continuous. Because of this, traditional mathematical programming approaches do not guarantee optimality. As such, we need to pursue a heuristic to provide a reasonable optimal solution via a reasonable computational effort.

Several heuristic approaches are available to address this type of problem. A genetic algorithm can be used to address this problem. Genetic Algorithms have proven effective in solving difficult optimization problems. The down side of Genetic Algorithms is computational inefficiency. A Genetic Algorithm generates binary solutions, performs analyses, manipulates the binary characteristics of the problem, converts binary solutions back into decimal solutions, and repeats this process until some pre-specified stopping criterion is met. This puts a lot of strain on the processor, resulting in a protracted search.

For this research effort, an artificial agent approach is used-something similar to ant colony optimization. An “ant” will traverse each component, starting with component 1 and concluding with component m. The choice of how many parallel units to select for each component during the traversal is probabilistic in nature, and proportional to the relative desirability of component i for each component j. For each unique traversal, the system reliability is computed, and if feasible, the system reliability is compared to the best system reliability found thus far. If the new solution is found to be the best so far, it becomes the new best solution, and the attractiveness of the solution components are enhanced accordingly. If the new solution is not the best found thus far, the attractiveness of the solution is diluted accordingly.

Prior to detailing the optimization algorithm, the following terms in

Term | Definition |
---|---|

x_{j} | number of backup units for component j (decision variable) |

n | number of possible backup units for any component |

m | number of components in system |

i | backup unit index |

j | component index |

r_{ij} | reliability of i parallel units for component j |

c_{ij} | cost of i parallel units for component j |

pher_{ij} | pheromone associated with i parallel units for component j |

imp_{ij} | number of times i parallel units for component j has been in the best solution |

prob_{ij} | probability of selecting i parallel units for component j |

r_{s} | system reliability |

c_{s} | system cost |

maxR | highest obtained value of system reliability |

A | pheromone amplifier |

D | discount factor |

B | budget |

are defined:

First of all, the reliability and cost matrices are determined. The reliability of associated with employing i parallel units for component j is determined as follows:

r i j = ( 1 − ( 1 − R i ) ) i , ∀ j (6)

The cost associated with employing i parallel units for component j is determined as follows:

c i j = C j ∑ h = 1 i D ( h − 1 ) , ∀ i , j (7)

Because we desire high values of reliability and low values of cost when choosing the number of parallel units for each component, pheromone is a function of the ratio of reliability to cost for each parallel unit/component combination. As such, pheromone is as follows:

pher i j = r i j / c i j , ∀ i , j (8)

imp i j = 1 , ∀ i , j (9)

Our level of pheromone, along with the initialized improvement matrix, is then used to determine the probability of selecting i parallel units for component j. This is determined as follows:

prob i j = ( pher i j a ) ( imp i j β ) ∑ i = 1 n ( ( pher i j a ) ( imp i j β ) ) , ∀ j (10)

The probability calculation above combines both pheromone and the number of overall best-solution improvements associated with selecting i parallel units for component j. The values of α and β are amplifiers, or weights for pheromone and improvements, respectively. MaxR is initialized to zero. Thus concludes the initialization process. The traversal process is now described.

An artificial agent, or “ant” traverses all m components, and at each component, a number of backup units are selected. We use the decision variable x_{j} to represent the number of backup units selected for component j. This selection is done via Monte-Carlo simulation using the probabilities shown in Equation (10). A uniformly-distributed random number on the [0, 1] interval is generated and the appropriate value of x_{j} is determined by where this random number lies in accordance with Equation (10). At the completion of the traversal, we have a solution.

Our traversal of the m components provides us with a solution, where x_{j} represents the number of parallel units employed for component j. We need to determine the system reliability and system cost of our recently-obtained solution. System reliability is obtained as follows:

r s = ∏ j = 1 m r x j , j , ∀ j (11)

System cost is defined as follows:

c s = ∑ j = 1 m c x j , j , ∀ j (12)

If the system reliability obtained via Equation (11) exceeds MaxR, and the system cost obtained via Equation (12) is less than the budgeted amount (B), the solution is the best one found thus far, and this solution becomes the best solution thus far:

Max R = r s (13)

If the recently found solution is the best thus far as defined above, the pheromone is updated accordingly:

pher x j j = pher x j j + A , ∀ j (14)

Additionally, the number of improvements associated with this new best solution is incremented as follows:

imp x j j = imp x j j + 1 , ∀ j (15)

Otherwise-that is, if the new solution is not an improvement over the best- found solution thus far, the pheromone is updated accordingly.

pher x j j = pher x j j − A , ∀ j (16)

Equations (14) and (15) enhance a solution that was found to be desirable-the characteristics of this solution are made more likely to occur in future traversals. Equation (16) dilutes a solution that was not found to be desirable―the characteristics of this solution are made less likely to occur in future traversals. Regardless of the type of pheromone adjustment made above, probabilities must be re-adjusted for the next traversal. This is done via Equation (10).

Steps 2, 3 and 4 are repeated until some stopping condition is reached, which is typically a user-defined condition. The last reported “best solution” reported is considered the best solution.

To illustrate the presented methodology, we present a small example. Consider a problem with eight components (m = 8) and up to six units in parallel (n = 6) are permitted for each component. _{j} and C_{j} values.

_{ij} values) for up to six units in parallel for each of the eight components. Equation (6) was used to determine these values. Please note that for each individual component, the reliability increases with

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

R_{j} | 0.885 | 0.90 | 0.92 | 0.89 | 0.93 | 0.925 | 0.92 | 0.97 |

C_{j} | $ 7.50 | $3.50 | $6.00 | $4.00 | $9.00 | $6.00 | $5.50 | $8.00 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

1 | 0.885000 | 0.900000 | 0.920000 | 0.890000 | 0.930000 | 0.925000 | 0.920000 | 0.970000 |

2 | 0.986775 | 0.990000 | 0.993600 | 0.987900 | 0.995100 | 0.994375 | 0.993600 | 0.999100 |

3 | 0.998479 | 0.999000 | 0.999488 | 0.998669 | 0.999657 | 0.999578 | 0.999488 | 0.999973 |

4 | 0.999825 | 0.999900 | 0.999959 | 0.999854 | 0.999976 | 0.999968 | 0.999959 | 0.999999 |

5 | 0.999980 | 0.999990 | 0.999997 | 0.999984 | 0.999999 | 0.999999 | 0.999997 | 1.000000 |

6 | 0.999998 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |

each additional unit in parallel. That is, the more units used in parallel, the higher the component’s reliability. As an example, if three parallel units are used for component six, the component reliability is 0.999578 (r_{36} = 0.999578).

_{ij} values). These values are determined by Equation (7), along with a discount factor (D) of 0.97. Note that for each component, using more units in parallel increases the component cost by a factor of D. As such, there is a tradeoff with using more units in parallel―the more units used in parallel, the higher the cost. Because of this, one must carefully choose the number of parallel units to optimize the system reliability with a limited budget, B. As an example, if we use three parallel units for component two, our cost is $10.19 (r_{32} = 10.19).

As an agent or “ant” traverses the m components of the system, they must make a decision on how many parallel components to employ for the next component. This is a stochastic process, and the level of pheromone is influential in the selection process. For this research effort, the level of pheromone is determined via Equation (8), which is the ratio of r_{ij} to c_{ij} for all i,j combinations. It should be noted that since the imp_{ij} values are initialized to one, they do not affect the probabilities at this point in the search.

For this example, for three parallel units being used for component one is 0.0 457 ( [ pher i j ] [ imp i j ] = 0.0 457 ) . Additionally, the values of and α and β and both assumed to equal one. These values are shown in _{ij})(imp_{ij}) is summed on the bottom line.

These values are converted to probabilities via Equation (10), and are shown in _{48} = 0.1057).

For the purpose of our example, let us assume that we have a discount factor

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

1 | $7.50 | $3.50 | $6.00 | $4.00 | $9.00 | $6.00 | $5.50 | $8.00 |

2 | $14.78 | $6.90 | $11.82 | $7.88 | $17.73 | $11.82 | $10.84 | $15.76 |

3 | $21.83 | $10.19 | $17.47 | $11.64 | $26.20 | $17.47 | $16.01 | $23.29 |

4 | $28.68 | $13.38 | $22.94 | $15.29 | $34.41 | $22.94 | $21.03 | $30.59 |

5 | $35.32 | $16.48 | $28.25 | $18.84 | $42.38 | $28.25 | $25.90 | $37.67 |

6 | $41.76 | $19.49 | $33.41 | $22.27 | $50.11 | $33.41 | $30.62 | $44.54 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

1 | 0.1180 | 0.2571 | 0.1533 | 0.2225 | 0.1033 | 0.1542 | 0.1673 | 0.1213 |

2 | 0.0668 | 0.1436 | 0.0841 | 0.1254 | 0.0561 | 0.0841 | 0.0917 | 0.0634 |

3 | 0.0457 | 0.0981 | 0.0572 | 0.0858 | 0.0382 | 0.0572 | 0.0624 | 0.0429 |

4 | 0.0349 | 0.0747 | 0.0436 | 0.0654 | 0.0291 | 0.0436 | 0.0475 | 0.0327 |

5 | 0.0283 | 0.0607 | 0.0354 | 0.0531 | 0.0236 | 0.0354 | 0.0386 | 0.0265 |

6 | 0.0239 | 0.0513 | 0.0299 | 0.0449 | 0.0200 | 0.0299 | 0.0327 | 0.0225 |

Sum | 0.3177 | 0.6855 | 0.4035 | 0.5970 | 0.2702 | 0.4044 | 0.4402 | 0.3093 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

1 | 0.3715 | 0.3751 | 0.3800 | 0.3727 | 0.3824 | 0.3812 | 0.3800 | 0.3920 |

2 | 0.2103 | 0.2095 | 0.2083 | 0.2100 | 0.2077 | 0.2080 | 0.2083 | 0.2050 |

3 | 0.1440 | 0.1430 | 0.1418 | 0.1437 | 0.1412 | 0.1415 | 0.1418 | 0.1388 |

4 | 0.1098 | 0.1090 | 0.1080 | 0.1095 | 0.1075 | 0.1078 | 0.1080 | 0.1057 |

5 | 0.0891 | 0.0885 | 0.0877 | 0.0889 | 0.0873 | 0.0875 | 0.0877 | 0.0858 |

6 | 0.0754 | 0.0749 | 0.0742 | 0.0752 | 0.0739 | 0.0740 | 0.0742 | 0.0726 |

Sum | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 |

of D = 0.97, with a budget of B = $200. We also assume Monte Carlo simulation resulted in a solution of x = [3, 4, 3, 3, 2, 3, 2, 2]. That is three parallel units for component one, four parallel units for component two, etc. Tables 4-6 are enhanced to show the associated component reliabilities and costs associated with this solution-these values are shaded. With this solution, we compute the system reliability as follows:

r s = ( 0.998479 ) ( 0.999900 ) ( 0.999488 ) ( 0.998669 ) ( 0.995100 ) ( 0.999578 ) ( 0.993600 ) ( 0.999100 ) = 0.984008.

The system cost is determined as follows:

c s = $ 21.83 + $ 13.38 + $ 17.47 + $ 11.64 + $ 17.73 + $ 17.47 + $ 10.84 + $ 15.76 = $ 126.11

Given that this is our first solution, it provides us with the maximum system reliability (maxR) thus far. Our system cost is also within our budget of $200 (c_{s}_{ }< B). As such, this is our best solution thus far. The value of MaxR is replaced with r_{s}. Because this solution is an improvement over the previous best solution, the pheromone must be updated accordingly.

Because this solution is the best found thus far, our improvement matrix is also updated in accordance with Equation (15).

Because the pheromone and improvement matrices have been adjusted, the corresponding probability matrix must also be adjusted. All probability values will change. Probabilities associated with the recently-obtained best solution will increase, while the other probabilities will decrease―this is the result of enhancing the pheromone and improvement values for the recently found best solution.

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

1 | 0.1180 | 0.2571 | 0.1533 | 0.2225 | 0.1033 | 0.1542 | 0.1673 | 0.1213 |

2 | 0.0668 | 0.1436 | 0.0841 | 0.1254 | 0.0661 | 0.0841 | 0.1017 | 0.0734 |

3 | 0.0557 | 0.0981 | 0.0672 | 0.0958 | 0.0382 | 0.0672 | 0.0624 | 0.0429 |

4 | 0.0349 | 0.0847 | 0.0436 | 0.0654 | 0.0291 | 0.0436 | 0.0475 | 0.0327 |

5 | 0.0283 | 0.0607 | 0.0354 | 0.0531 | 0.0236 | 0.0354 | 0.0386 | 0.0265 |

6 | 0.0239 | 0.0513 | 0.0299 | 0.0449 | 0.0200 | 0.0299 | 0.0327 | 0.0225 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |

2 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 2 |

3 | 2 | 1 | 2 | 2 | 1 | 2 | 1 | 1 |

4 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 |

5 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |

6 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|

1 | 0.3079 | 0.3295 | 0.3189 | 0.3165 | 0.2982 | 0.3202 | 0.3031 | 0.3089 |

2 | 0.1743 | 0.1841 | 0.1750 | 0.1784 | 0.3816 | 0.1746 | 0.3685 | 0.3738 |

3 | 0.2906 | 0.1257 | 0.2796 | 0.2726 | 0.1103 | 0.2791 | 0.1131 | 0.1092 |

4 | 0.0911 | 0.2171 | 0.0907 | 0.0930 | 0.0840 | 0.0905 | 0.0861 | 0.0833 |

5 | 0.0738 | 0.0778 | 0.0736 | 0.0755 | 0.0681 | 0.0735 | 0.0699 | 0.0675 |

6 | 0.0624 | 0.0658 | 0.0622 | 0.0639 | 0.0577 | 0.0621 | 0.0592 | 0.0573 |

Sum | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 |

The iterative process: traversal, assessment, and updating of pheromone, improvements and probabilities continues until some stopping criterion is met. For this simple example, 1000 iterations are used, resulting in the solution x = [5, 5, 4, 6, 4, 4, 4, 3], with a system reliability of r_{s} = 0.999804, and a system cost of c_{s} = $198.68. This solution was also determined to be optimal via enumeration of all solutions.

The presented methodology is used on four test problems. Details of these test problems are shown in

Solutions = m n = Backups Components

It should be noted that using more than eight parallel units (backups) for each component results in diminishing utility-system reliability gains become negligible, and only the cost increases, leading to suboptimal solutions.

For each of the test problems, the R_{j} and C_{j} values are provided in Tables 12-15. This information enables us to pursue the presented heuristic, in our effort to find good solutions for these test problems.

Problem | Backups | Components | Budget (B) | Discount (D) | Solutions |
---|---|---|---|---|---|

ACO-1 | 8 | 10 | 275 | 0.95 | 1,073,741,824 |

ACO-2 | 8 | 12 | 450 | 0.99 | 68,719,476,736 |

ACO-3 | 8 | 13 | 400 | 0.97 | 549,755,813,888 |

ACO-4 | 8 | 14 | 650 | 0.95 | 4,398,046,511,104 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
---|---|---|---|---|---|---|---|---|---|---|

R_{j} | 0.7516 | 0.7195 | 0.8059 | 0.6875 | 0.7751 | 0.8373 | 0.9081 | 0.7877 | 0.7275 | 0.8236 |

C_{j} | 6.34 | 6.00 | 7.10 | 5.54 | 6.81 | 4.91 | 5.38 | 6.75 | 5.73 | 6.44 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|

R_{j} | 0.681 | 0.7896 | 0.8488 | 0.8860 | 0.7652 | 0.6293 | 0.7834 | 0.7526 | 0.8239 | 0.9543 | 0.7427 | 0.8465 |

C_{j} | 8.30 | 6.30 | 9.70 | 7.55 | 9.74 | 4.85 | 4.50 | 6.80 | 9.74 | 4.00 | 7.13 | 7.80 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|

R_{j} | 0.885 | 0.900 | 0.920 | 0.890 | 0.930 | 0.925 | 0.920 | 0.970 | 0.925 | 0.900 | 0.750 | 0.780 | 0.912 |

C_{j} | 7.50 | 3.50 | 6.00 | 4.00 | 9.00 | 6.00 | 5.50 | 8.00 | 4.50 | 7.50 | 6.50 | 7.90 | 8.30 |

1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|

R_{j} | 0.827 | 0.842 | 0.865 | 0.861 | 0.885 | 0.898 | 0.829 |

C_{j} | 4.28 | 5.25 | 11.03 | 13.34 | 9.49 | 9.68 | 16.31 |

8 | 9 | 10 | 11 | 12 | 13 | 14 | |
---|---|---|---|---|---|---|---|

R_{j} | 0.839 | 0.853 | 0.927 | 0.828 | 0.838 | 0.823 | 0.871 |

C_{j} | 8.36 | 9.37 | 4.93 | 11.64 | 11.16 | 11.93 | 13.28 |

We have presented an ant-colony optimization approach to address a system reliability problem with quantity discounts and a constrained budget. Because conventional optimization approaches are not feasible for such large, nonlinear problems, we must pursue search heuristics. Of course, ant-colony optimization is one of many options. Tabu Search, Simulated Annealing and Genetic Algorithms are possible search candidates. For this type of problem, however, ant- colony optimization serves us well due to the fact that we are able to model our desire for a solution by simulating an ant traversing the search space in a logical fashion. This would be more difficult with the aforementioned approaches. Furthermore, these other search approaches can be computationally expensive due to the management details associated with these approaches.

Of course, there are always opportunities for additional research, and this effort

Optimal Solution | Heuristic Solution | ||||
---|---|---|---|---|---|

Problem | Solution (x_{j}) | Reliability | Iterations | Reliability ( | Reliability (s) |

ACO-1 | [5, 6, 4, 7, 5, 4, 3, 5, 6, 5] | 99.380807% | 25,000 | 99.351834% | 0.166855% |

ACO-2 | [7, 5, 4, 4, 6, 8, 6, 6, 5, 3, 6, 4] | 99.659840% | 50,000 | 99.638339% | 0.046367% |

ACO-3 | [5, 5, 5, 5, 4, 4, 5, 3, 5, 5, 8, 7, 5] | 99.980674% | 100,000 | 99.974600% | 0.006069% |

ACO-4 | [6, 5, 5, 5, 5, 4, 5, 6, 5, 4, 6, 5, 6, 5] | 99.918462% | 250,000 | 99.906818% | 0.007980% |

is no exception. The largest problem addressed has 4.4 trillion possible solutions. Comparing our best solution found via the heuristic to the optimal solution with 4.4 trillion possibilities required some work, but with today’s computational resources, it was surprisingly possible. In fact, the size of the experimental problems is considered one of the unique features associated with this effort―other efforts work with are unable to provide solutions to problems of this practical size [

McMullen, P.R. (2017) Ant-Colony Optimization for the System Reliability Problem with Quantity Discounts. American Journal of Operations Research, 7, 99-112. https://doi.org/10.4236/ajor.2017.72007