| Previous | Table of Contents | Next |
Problem #4: Service Isolation
As discussed above, there are a wide variety of issues which must be considered by the service provisioner. Maximizing service benefits and minimizing resource costs are generally important. However, other issues are also important. Here we consider the problem of service isolation.
In order to model this problem using a genetic algorithm, a modification to the fitness function was made. In addition to the row and column penalties assessed as described above, an additional section was added to the parameters file as the following shows.
Parameters File
Population Fitness
nrow 10 rowsum 55 55 55 55 55 55 55 55 55 55
ncol 10 rowfact 10 10 10 10 10 10 10 10 10 10
npop 100 rowexp 1 1 1 1 1 1 1 1 1 1
Random Seed colsum 50 50 50 40 40 40 40 40 40 40
seed 0 colfact 50 50 50 10 10 10 10 10 10 10
colexp 1 1 1 1 1 1 1 1 1 1
Stopping
stopgen 4000 Isolation Factor
stopfit 0 1 1 1 1 1 1 1 1 1 1
stopfitalt 0 1 1 1 1 1 1 1 1 1 1
Mutation 1 1 1 1 1 1 1 1 1 1
muprob 0.05 0 0 0 0 0 0 0 0 0 0
murng 5 0 0 0 0 0 0 0 0 0 0
mugenlarge 20 0 0 0 0 0 0 0 0 0 0
muproblarge 0.2 0 0 0 0 0 0 0 0 0 0
murnglarge 2 0 0 0 0 0 0 0 0 0 0
Tournament 0 0 0 0 0 0 0 0 0 0
dotour 1
toursize 3
tourwin 1
Crossover
xprob 0.2
Here, an array, isofact, captures the inter-service isolation factors desired. These factors act as multipliers and are applied whenever two services share a common resource. For the example shown, all factors are 1 for Services #1 .. #3 and 0 otherwise. This causes a penalty to be assessed whenever any of these services share resources with any other services.
This problem is studied here both because it is an important real world constraint, and because it adds an interesting epistasis to the problem domain. In addition to competing for resources, certain (high priority) services are forced to be separated from each other.
This example took 1,288 generations to arrive a zero penalty solution, shown here.
| Sv #1 | Sv #2 | Sv #3 | Sv #4 | Sv #5 | Sv #6 | Sv #7 | Sv #8 | Sv #9 | Sv #10 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Res #1 | 0 | 0 | 0 | 1 | 4 | 19 | 8 | 3 | 14 | 2 |
| Res #2 | 0 | 0 | 0 | 22 | 0 | 0 | 5 | 6 | 2 | 9 |
| Res #3 | 0 | 0 | 0 | 9 | 14 | 7 | 2 | 7 | 10 | 1 |
| Res #4 | 0 | 0 | 0 | 0 | 15 | 0 | 3 | 23 | 6 | 6 |
| Res #5 | 0 | 0 | 0 | 8 | 5 | 9 | 15 | 1 | 8 | 0 |
| Res #6 | 0 | 0 | 0 | 13 | 9 | 5 | 3 | 0 | 7 | 7 |
| Res #7 | 50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Res #8 | 0 | 0 | 0 | 13 | 3 | 0 | 8 | 2 | 2 | 15 |
| Res #9 | 0 | 0 | 50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Res #10 | 0 | 54 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
The solution found by the genetic algorithm shows that the isolation strategy has been achieved: Service #1 uses only Resource #7, Service #2 uses only Resource #10, and Service #3 uses only Resource #9.
CONCLUSION
A genetic algorithm approach to an industrial decision problem, resource provisioning, has been considered. A flexibly parametrized program has been developed to investigate the problem for small-to-medium size examples. The genetic algorithm approach is shown to be feasible and matches human intuition for small examples. The genetic algorithm always found a reasonable solution in a reasonable number of generations. It did not always find an optimal solution in problems where an optimal solution was known to exist.
The algorithm was applied in two basic cases. Two different extensions of the algorithm were also studied. One extension showed that simultaneously considering multiple cost and benefit factors is feasible within the same problem approach. A separate extension showed that adding a highly non-linear component to the fitness (penalty) function could also be handled easily within the same framework.
REFERENCES
| Previous | Table of Contents | Next |