Table of Contents Author Guidelines Submit a Manuscript
Discrete Dynamics in Nature and Society
Volume 2014, Article ID 835071, 13 pages
http://dx.doi.org/10.1155/2014/835071
Research Article

A Hybrid Artificial Bee Colony Algorithm for the Service Selection Problem

College of Information Science & Engineering, Northeastern University, Shenyang 110819, China

Received 14 June 2014; Revised 11 October 2014; Accepted 19 October 2014; Published 17 December 2014

Academic Editor: Beatrice Paternoster

Copyright © 2014 Changsheng Zhang and Bin Zhang. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

To tackle the QoS-based service selection problem, a hybrid artificial bee colony algorithm called -ABC is proposed, which incorporates the ant colony optimization mechanism into the artificial bee colony optimization process. In this algorithm, a skyline query process is used to filter the candidates related to each service class, which can greatly shrink the search space in case of not losing good candidates, and a flexible self-adaptive varying construct graph is designed to model the search space based on a clustering process. Then, based on this construct graph, different foraging strategies are designed for different groups of bees in the swarm. Finally, this approach is evaluated experimentally using different standard real datasets and synthetically generated datasets and compared with some recently proposed related service selection algorithms. It reveals very encouraging results in terms of the quality of solutions.

1. Introduction

With the proliferation of the cloud computing and software as a service (SaaS) concepts, more and more web services will be offered on the web at different levels of quality [1]. There may be multiple service providers competing to offer the same functionality with different quality of service. Quality of service (QoS) has become a central criterion for differentiating these competing service providers and plays a major role in determining the success or failure of the composed application. Therefore, a service level agreement (SLA) is often used as a contractual basis between service consumers and service providers on the expected QoS level. The QoS-based service selection problem aims at finding the best combination of web services that satisfies a set of end-to-end QoS constraints in order to fulfill a given SLA, which is an NP-hard problem [2].

This problem becomes especially important and challenging as the number of functionally equivalent services offered on the web at different QoS levels increases exponentially [3]. As the number of possible combinations can be very huge, based on the number of subtasks comprising the composite process and the number of alternative services for each subtask, using the proposed exact search algorithms [4, 5] to perform an exhaustive search to find the best combination that satisfies a certain composition level, SLA is impractical. So, the most researches are concentrated on heuristic-based algorithms especially the metaheuristic approaches aiming at finding near-optimal compositions. In [5], the authors propose heuristic algorithms that can be used to find a near-optimal solution more efficiently than exact solutions. The authors propose two models for the QoS-based service composition problem and introduce a heuristic for each model. In [6], a memetic algorithm is used for the service selection problem. In [7], the authors present a genetic algorithm for this problem, including the design of a special relation matrix coding scheme of chromosomes, evolution function of population, and population diversity handling with simulated annealing. In [8], a new cooperative evolution (coevolution) algorithm consists of stochastic particle swarm optimization (SPSO) and simulated annealing (SA) is presented to solve this problem. In [9], the basic principle of ACO is expounded and the service selection problem based on the QoS is transformed into the problem of finding the optimization path. In [10], a services composition graph is applied to model this problem and an extended ant colony system using a novel ant clone rule is applied to solve it. In [11], an algorithm named as multipheromone and dynamically updating ant colony optimization algorithm (MPDACO) are put forward to solve this problem which includes one global optimization process and a local optimizing process. But the performance of these existing service selection algorithms is not satisfying when the number of candidates becomes large. This is mainly because many redundant candidates exist. If they are not filtered beforehand, lots of search efforts will be wasted at running. Moreover, the used construction graphs of the existing ACO based service selection algorithms are static and their information granularities for this problem are too coarse, which make these algorithms excessively rely on their local search processes. Furthermore, as a novel metaheuristic approach, the artificial bee colony (ABC) algorithm is defined by Karaboga and Basturk [12], motivated by the intelligent foraging behavior of honey bees. It has been applied to solve many problems and obtained satisfying results [13]. But no research of its applications for service selection has been done.

To tackle these problems, a hybrid artificial bee colony algorithm called -ABC is proposed in this paper. In this algorithm, an unsupervised clustering process based on IS [14] algorithm is used for building a directed dynamic construct graph to guide the employed bees making exploration. A strategy inspired from the ants search mechanism of ACO is designed and used for the employed bees to forage, and an efficient greedy local search strategy is designed for the onlookers to make exploitation for the promising area identified by the obtained current global information. Then a self-adaptive reflecting process is used to adjust the construct graph based on the obtained local search information. To further improve the solving efficiency, a skyline query process based on the multicriteria dominance relationships [15] is used to filter the candidates of each service class, which can greatly shrink the search space without losing any good candidate. This approach is evaluated experimentally using different standard real datasets and synthetically generated datasets, and the best one is compared with some recently proposed service selection algorithms, DiGA [7], SPSO [8], MA [6], and MPDACO [11]. The computational results demonstrate the effectiveness of our approach in comparison to these algorithms. This paper is organized as follows. In Section 2, we give the definition of the QoS-based service selection problem and the basic artificial bee colony algorithm. The details of the hybrid artificial bee colony algorithm for service selection including search space representation and searching strategies are provided in Section 3. The evaluations of this approach including its parameters tuning and comparative studies based on different standard real datasets and synthetically generated datasets are given in Section 4. Finally, Section 5 summarizes the contribution of this paper along with some future research directions.

2. Problem Definition and Ant Colony Algorithm

2.1. The QoS-Based Service Selection Problem

For a composite application that is specified as abstract workflow composed of a set of abstract services , each abstract service, , , consists of all services that deliver the same functionality but potentially differ in terms of QoS values. The QoS attributes which are published by the service provider may be positive or negative. We use the vector to represent the QoS values of service , and denotes the published value of the th attribute of the service . Then, the QoS vector, for a composite service consisting of , , service components , is defined as , where the is the estimated end-to-end value of the th QoS attribute. Although many different service composition structures may exist in the workflow, we only focus on the sequential structure, since the other structures can be reduced or transformed to the sequential structure, using, for example, techniques for handling multiple execution paths and unfolding loops [16]. So the can be computed by aggregating the corresponding values of component services.

Definition 1 (abstract metaworkflow). For an abstract workflow , it is an abstract metaworkflow if all its contained abstract services need to bind with a candidate service.

Definition 2 (abstract subworkflow). For an abstract metaworkflow , it is an abstract subworkflow of if the solution of composite application corresponding to is also a solution of composite application corresponding to .

Definition 3 (feasible selection). For a given abstract workflow and a vector of global QoS constraints, , , which refer to the user’s requirements and are expressed in terms of a vector of upper (or lower) bounds for different QoS criteria, we consider a selection of concrete services CS to be a feasible selection, if and only if it contains exactly one service for each service class of a subworkflow of and its aggregated QoS values satisfy the global QoS constraints.

In order to evaluate the overall quality of a given feasible selection CS, a utility function is used which maps the quality vector into a single real value and is defined as follows: with , being the weight of to represent user’s priorities, being the minimum and maximum aggregated values of the th QoS attribute for composite service CS, and denotes an aggregation function that depends on QoS criteria as shown in Table 1.

Table 1: The considered attributes, their priorities, and aggregation functions.

Definition 4 (service selection). For a given abstract process and a vector of global QoS constraints, , , the service selection is to find the feasible selection that maximizes the overall utility function value.

2.2. The Artificial Bee Colony Optimization Algorithm

Artificial bee colony (ABC) is one of the most recently defined algorithms by Karaboga and Basturk [12], motivated by the intelligent forage behavior of honey bees. In ABC algorithm, the colony of artificial bees consists of three groups of bees: employed bees, onlookers, and scouts. A food source represents a possible solution to the problem to be optimized. The nectar amount of a food source corresponds to the quality of the solution represented by that food source. For every food source, there is only one employed bee. In other words, the number of employed bees is equal to the number of food sources around the hive. The employed bee whose food source has been abandoned by the bees becomes a scout.

As other social foragers, bees search for food sources in a way that maximizes the ration where is the energy obtained and is the time spent for foraging. In the case of artificial bee swarms, is proportional to the nectar amount of food sources discovered by bees. In a maximization problem, the goal is to find the maximum of the objective function , . Assume that is the position of the th food source; represents the nectar amount of the food source located at and is proportional to the energy . Let (: cycle, : number of food sources being visited by bees) represent the population of food sources being visited by bees.

As mentioned before, the preference of a food source by an onlooker bee depends on the nectar amount of that food source. As the nectar amount of the food source increases, the probability with the preferred source by an onlooker bee increases proportionally. Therefore, the probability with the food source located at will be chosen by an onlooker and can be expressed as

After watching the dances of employed bees, an onlooker bee goes to the region of food source located at by this probability and determines a neighbor food source to take its nectar depending on some visual information, such as signs existing on the patches. In other words, the onlooker bee selects one of the food sources after making a comparison among the food sources around . The position of the selected neighbor food source can be calculated as . is a randomly produced step to find a food source with more nectar around . is calculated by taking the difference of the same parts of and ( is a randomly produced index) food positions. If the nectar amount at is higher than that at , then the bee goes to the hive and shares its information with others and the position of the food source is changed to be ; otherwise is kept as it is.

Every food source has only one employed bee. Therefore, the number of employed bees is equal to the number of food sources. If the position of the food source cannot be improved through the predetermined number of trials “limit,” then that food source is abandoned by its employed bee and then the employed bee becomes a scout. The scout starts to search a new food source, and, after finding a new source, the new position is accepted to be . Every bee colony has scouts that are the colony’s explorers. The explorers do not have any guidance while looking for food. They are primarily concerned with finding any kind of food source. As a result of such behavior, the scouts are characterized by low search costs and a low average in food source quality. Occasionally, the scouts can accidentally discover rich, entirely unknown food sources. In the case of artificial bees, the artificial scouts could have the fast discovery of the group of feasible solutions as a task.

It is clear from the above explanation that there are four control parameters used in the ABC algorithm: the number of food sources which is equal to the number of employed bees (), the value of limit, and the maximum cycle number (MCN). The main steps of the algorithm can be described as follows.

Step 1. Initialize the population of solutions , , and evaluate them.

Step 2. Produce new solutions for the employed bees, evaluate them, and apply the greedy selection process.

Step 3. Calculate the probabilities of the current sources with which they are preferred by the onlookers.

Step 4. Assign onlooker bees to employed bees according to probabilities, produce new solutions, and apply the greedy selection process.

Step 5. Stop the exploitation process of the sources abandoned by bees and send the scouts in the search area for discovering new food sources randomly.

Step 6. Memorize the best food source found so far.

Step 7. If the termination condition is not satisfied, go to Step 2; otherwise stop the algorithm.

After each candidate source position being produced and evaluated by the artificial bee, its performance is compared with that of its old one. If the new food has an equal or better nectar amount than the old one, it is replaced with the old one in the memory. Otherwise, the old one is retained in the memory. In other words, a greedy selection mechanism is employed as the selection operation between the old one and the candidate one.

3. The -ABC Algorithm

When the number of functionally equivalent services offered becomes large, how to effectively shrink the solution space and make the search quickly go towards the right direction is very important. So, in this hybrid algorithm, a skyline query process is used to filter the candidates related to each service class, and an unsupervised clustering process is introduced to partition the skyline services per service class. Then a directed clustering graph is constructed based on clustering result to abstract the search space and is used to guide the bees global searching.

Definition 5 (skyline services). The skyline of a service class , denoted by SLS, comprises the set of those services in that are not dominated by any other service; that is, . We regard these services as the skyline services of .

Definition 6 (dominance). Consider a service class , and two services, , characterized by a set of of QoS attributes. dominates , denoted by , if is as good as or better than in all parameters in and better in at least one parameter in ; that is, and .

Since not all services are potential candidates for the solution, a skyline query can be performed on the services in each class to distinguish between those services that are potential candidates for the composition and those that cannot possibly be the part of the composition. In the proposed -ABC algorithm, the skyline query process is implemented using the sequential online archiving process in [17] which is a hypervolume based archiving process and can update the skylines online. This makes it able to be extended and used to tackle the candidate changes. If the candidate services number in the skyline of a service class is more than , which is a predefined threshold value, an unsupervised clustering process based on IS [14] is used to discover the similar candidate services, is used to represent the th cluster center, and use is used to represent the service candidates in this cluster. Then a directed clustering graph is formed as , , and , , , , , where , represent the start point and end point and and are the in-degree and out-degree of node . When binding each vertex except the and in CG with a candidate service, , a binding mode of the clustering graph is generated. Based on this binding mode, the following definition can be given.

Definition 7 (feasible path). Given a path from the vertex to of a clustering graph with a specified binding mode, it is a feasible path if and only if the composite service CS formed by the current services binding with the vertexes between and in this path satisfies all the global QoS constraints, , . That is, , . The fitness of a path is computed as follows: where denotes the number of the constraints violated by CS. By this way, the more constraints a path violates, the bigger its fitness value will be. We can see that the evaluation does not only depend on its utility but also depend on how many constraints have been violated. Based on this fitness definition, for the current obtained paths (food sources), , the attractive probability for is computed as follows:

To cover all possible service combinations, a dynamic construction graph is used in this framework, which can self-adaptively vary from one binding mode to another through dynamically changing the binding relationship of candidate services and vertex. In the -ABC algorithm, the employed bees and scouts are responsible for searching in the current binding mode CBM, and its transition to the next binding mode NBM is incorporated into the send_onlooker process and determined by the obtained paths and the exploitation results of onlookers. If the onlookers number is num_onlooker, then the process of sending onlookers can be detailed as shown in Procedure 1.

Procedure 1: Send onlookers.

By this process, the binding mode will be self-adaptively converted to another containing a feasible path with smaller fitness value. Obviously, the information granularities are fractionized further by the dynamic construction graph. Furthermore, since all binding modes of a dynamic construction graph have the same topology and scale, which are determined by the built clustering graph, the mechanism of ACO algorithm can be introduced and used by employed bees to make exploration, and the pheromone information needed to store is controllable. In the -ABC algorithm, the employed bees communicate by laying pheromone on graph vertices like the ants in ACO. The amount of pheromone on vertex is denoted by . Intuitively, this amount of pheromone represents the learnt desirability moving towards the service class binding with its th service instance. The way by which an employed bee discovers a food source (path) in the current binding mode is outlined in Procedure 2.

Procedure 2: Construct a path by an employed bee .

For a given employed bee that is building a path and is currently at the vertex , its feasible neighborhood in the current binding mode is defined as . In this paper, the roulette wheel selection (RS) rule is used for an employed bee selecting a vertex in its feasible neighborhood. In this rule, the probability of this employed bee to select the vertex in its feasible neighborhood is computed as follows: where is the pheromone factor of vertex , is its heuristic factor, and and are the parameters that determine their relative weights. In this paper, the heuristic factor depends on the whole current set of visited vertices in . It is inversely proportional to the number of new violated constraints when adding to and is computed as follows: The details of sending the employed bees for making exploration are given in Procedure 3.

Procedure 3: Send employed bees.

In order to simulate evaporation and allow employed bees to forget bad assignments, all pheromone trails are decreased uniformly, and the chosen employed bees of the cycle deposit pheromones. More formally, after sending the employed bees and onlookers in each cycle, the quantity of pheromone on each vertex is updated as in Procedure 4.

Procedure 4: Update the pheromone trails.

In Procedure 4 is the evaporation rate, . The set ElitistsofCycle contains all the paths remembered by the employed bees in the current iteration. The is the quantity of pheromone that should be deposited on vertex and is defined as follows:

If a food source has not been improved when its trial number is bigger than the predefined threshold value “limit,” the employed bee related to it will be search as a scout. Different from the onlookers and employed bees, the scouts search in the current binding mode randomly. When constructing path, a scout randomly selects a next vertex to move. Furthermore, to clear up the effects of the abandoned food sources, the phonemes of related vertexes are reset as their initial values. The details of the employed bees search as scouts are given in Procedure 5.

Procedure 5: Send scouts.

In Procedure 5, the and are the explicitly imposed lower and upper bounds of pheromone trails and their values are set as 1.0 and 4.0, respectively. The goal is to favor a larger exploration of the search space by preventing the relative differences between pheromone trails from becoming two extremes during processing. Furthermore, the pheromone trails are set to for all vertexes at the beginning of the proposed -ABC algorithm for balancing the exploitation and exploration ability during the first cycle. Based on the above definitions and descriptions, the -ABC algorithm for service selection can be formulated as shown in Algorithm 1.

Algorithm 1: -ABC.

In Algorithm 1, we can see that the binding mode scale of the dynamic construction graph can be controlled by the parameters Max_cluster_number and Min_cluster_number. After building the clustering graph, the candidate service nearest to the center of cluster is chosen to be bound with the vertex to form the initialized binding mode. At each generation, a promising area is located by the employed bees, and then the onlookers are used to make further exploitation for this area and switch the binding mode. Moreover, the numbers of employed bees and onlookers are both set as half of the colony size in this algorithm.

4. Experimental Evaluations

In this part, we present an experimental evaluation of our approaches, focusing on the solving quality in terms of the obtained best solution utility values, and compare the proposed -ABC algorithm with the recently proposed related algorithms DiGA [7], and SPSO [8], MA [6], and MPDACO [11] on 12 different scale test cases. All algorithms are implemented in C++ language and executed on a Core(i7), 2.93 GHZ, 2 GB RAM computer.

4.1. Test Cases

In our evaluation, we experimented with four datasets. The first is the publicly available updated data set called QWS (http://www.uoguelph.ca/~qmahmoud/qws/index.html), which comprises measurements of nine QoS attributes for 2507 real-world web services. These attributes, priorities, and their aggregation functions are shown in Table 1. These services were collected from public sources on the web, including UDDI registries, search engines, and service portals, and their QoS values were measured using commercial benchmark tools. More details about this dataset can be found in [3]. We also experimented with other three synthetically generated datasets in order to test our approach with larger number of services and different distributions through a publicly available synthetic generator (http://randdataset.projects.postgresql.org/): (a) a correlated data set (cQoS), in which the values of QoS parameters are positively correlated, (b) an anticorrelated (aQoS) data set, in which the values of the QoS parameters are negatively correlated, and (c) an independent dataset, in which the QoS values are randomly set. Each dataset contains 40000 QoS vectors, and each vector represents the nine QoS attributes of a web service. Based on these datasets, twelve test cases are created, which are shown in Table 2. In this table, the composition scale is defined as the number of the abstract services included, and the candidate scale is defined as the number of the candidate services related to each abstract service. Since all other models can be reduced or transformed to the sequential model using the techniques for handling multiple execution paths and unfolding loops [18], the sequential composition models are focused on in this paper. We then created several QoS vectors of up to 9 random values to represent the user end-to-end QoS constraints. Each QoS vector corresponds to one QoS-based composition request, for which one concrete service needs to be selected from each class, such that the overall utility value is maximized, while all end-to-end constraints are satisfied.

Table 2: The used test cases.
4.2. Parameter Tuning

In order to set an appropriate terminate condition for this algorithm on each test case, this algorithm is run ten times on the test selected cases 5, 8, and 11. Since they have different composition scale and candidate scale, they are considered as being representative. Each run is terminated when the obtained best fitness value is not updated during 100 consecutive time intervals. Each time interval is set as 1000 milliseconds. The colony size C_Size is set as 50 and the other parameters are set as the default value in Table 3. We found that all the obtained best solutions of these runs do not change after milliseconds. So, for a test case, the termination condition for a run of an algorithm is set as milliseconds during the following experiments conveniently, where Co and Ca denote the composition scale and candidate scale, respectively.

Table 3: The tuned parameters.

In the proposed algorithm, since the the Max_cluster_number, Min_cluster_number are used to control the binding mode scale of the dynamic construction graph, their value settings mainly depend on the running platform configurations. If the parameter Max_cluster_number is set too big and the Min_cluster_number is set too small, large space will be needed to store the phoneme trial information for some problem. Based on our used running environments, we let the Min_cluster_number = 50 and Max_cluster_number = Ca/min_culster_number. The influence of parameter C-Size to the algorithms’ performance is obvious if not taking the complexity into account; the larger the problem scale is, the bigger its value is. So we set it as 50 for convenience. Except for the above parameters, there are some other more complex and sensitive parameters in this algorithm. Their ranges are shown in Table 3.

In order to perform parameter exploration studies, we select three representative test cases 5, 8, and 11, which are characterized by the correlated, anticorrelated, and independent property, respectively. To set appropriate values for these parameters, we tuned them in the sequential order limit, , , and . For the parameter limit, we vary its value one at a time, while setting the values of the other parameters to their default values. For the next untuned parameter , we vary its value one at a time while setting the values of tuned parameters to the obtained most appropriate ones and the values of the other untuned parameters to their default values. Then the other two parameters are tuned in the same way as the parameter . During this process, the -ABC algorithm with each parameter configuration is run ten times on each used test case and the results are shown as in Figure 1. From Figure 1(a), we can see that the maximum average utility values for case 8 and case 11 are obtained when . From Figure 1(b), we can see that the maximum average utility values for instance 5 and case 11 are obtained when . From Figure 1(c), we can see that the maximum average utility values for case 5 and instance 8 are obtained when . The maximum average utility values for instance 8 and case 11 are obtained when as shown in Figure 1(d). So, the comparatively better settings for these parameters are , , , and for the proposed algorithm.

Figure 1: The effects of different parameter configurations.
4.3. Compared with the Recently Proposed Related Algorithms

In this part, we compare the -ABC algorithm with the recently proposed related algorithms DiGA [7], SPSO [8], MA [6], and MPDACO [11] on the 12 different scale test cases in Table 2. The parameters of the -ABC and the termination condition for all these algorithms are set as in Section 4.2. The parameters of other compared algorithms except the termination condition are set as in their original researches. We run each algorithm twenty times on each test case. The maximum utility, minimum utility, mean value, and the standard deviation obtained by each compared algorithm in the twenty runs on each case are given in Table 4. We can see that the maximum utility, minimum utility, and mean value obtained by the -ABC algorithm for each test case are larger than those obtained by compared other algorithms. Moreover, the results on the cases based on QWS dataset are generally higher. This is mainly because the constraints used by the test cases related to QWS dataset are less restrictive than others. Tightening the constraints can make the test case more difficult to some extent. So, we make the constraints more and more restrictive in the experiments. It also has achieved the smallest deviation values for the case 1, case 2, case 3, case 4, case 8, and case 10. The MPDACO algorithm obtained the smallest deviation values for the other test cases. It may be because a local search process is combined with the ant colony optimization process in the MPDACO algorithm, and the performance of the used ant colony process for global search is limited for these test cases. The deviation values obtained by the DiGA, SPSO, and MA for all test cases are all bigger than the values obtained by the -ABC. Therefore, we can clearly get that the -ABC is more stable than the other compared algorithms except the MPDACO algorithm and can perform better than all the compared other algorithms. This can be further proved by Figure 2, which explicitly shows the statistical results using the boxplot based on the utilities obtained by the compared algorithms on each test instance. It gives the distribution of the utilities obtained by each algorithm, including the smallest observation, lower quartile, median, mean, upper quartile, and the largest observation. We can see that the minimum utility obtained by the -ABC on each case is still larger than the biggest utility obtained by other compared algorithms. Furthermore, the superiority of the -ABC is more obvious for the test cases generated from the data set QWS2 and _data. This is mainly because these two datasets are not correlated or anticorrelated, and many candidate services can be filtered by the skyline query process included in the defined framework. So, we can conclude that the -ABC outperforms the compared methods in terms of the utility score and possesses competitive performance for the large scale service selection problem.

Table 4: The utilities obtained by the compared algorithms max/min/ave (std.).
Figure 2: The statistical results of the obtained utilities by the compared algorithms on different cases.

5. Conclusions

To tackle the large scale service problem, a hybrid artificial bee colony algorithm is proposed. In this algorithm, a self-adaptive dynamic cluster graph is constructed which provides insight into the large scale service selection problem and is exploited to predict the subspace crucial to search. It provides a useful way to solve the service selection problem and can give a reference for solving other optimization problems. There are a number of research directions that can be considered as useful extensions of this research. We can combine it with some local search strategy or hybrid it with other metaheuristic algorithms. Furthermore, how to tackle the QoS uncertainty during service selection in this designed framework is our next studying problem.

Conflict of Interests

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

Acknowledgments

This work was supported by NSFC Major Research Program (61100090, 61100027) and the Special Fund for Fundamental Research of Central Universities of Northeastern University (N110204006, N120804001, N110604002, and N120604003).

References

  1. M. Alrifai, D. Skoutas, and T. Risse, “Selecting skyline services for QoS-based web service composition,” in Proceedings of the 19th International World Wide Web Conference (WWW '10), pp. 11–20, Raleigh, NC, USA, April 2010. View at Publisher · View at Google Scholar · View at Scopus
  2. A. Michlmayr, F. Rosenberg, P. Leitner, and S. Dustdar, “End-to-end support for QoS-aware service selection, binding, and mediation in VRESCo,” IEEE Transactions on Services Computing, vol. 3, no. 3, pp. 193–205, 2010. View at Publisher · View at Google Scholar · View at Scopus
  3. E. Al-Masri and Q. H. Mahmoud, “Investigating web services on the world wide web,” in Proceedings of the 17th International Conference on World Wide Web (WWW '08), pp. 795–804, Beijing, China, April 2008. View at Publisher · View at Google Scholar · View at Scopus
  4. D. Ardagna and B. Pernici, “Adaptive service composition in flexible processes,” IEEE Transactions on Software Engineering, vol. 33, no. 6, pp. 369–384, 2007. View at Publisher · View at Google Scholar · View at Scopus
  5. T. Yu, Y. Zhang, and K. J. Lin, “Efficient algorithms for Web services selection with end-to-end QoS constraints,” ACM Transactions on the Web, vol. 1, no. 1, article 6, 2007. View at Publisher · View at Google Scholar · View at Scopus
  6. A. Simone Ludwig, “Memetic algorithm for web service selection,” in Proceedings of the 3rd Workshop on Biologically Inspired Algorithms for Distributed Systems (BADS '11), pp. 1–8, ACM, Karlsruhe, Germany, 2011.
  7. C. Zhang, S. Su, and J. Chen, “DiGA: Population diversity handling genetic algorithm for QoS-aware web services selection,” Computer Communications, vol. 30, no. 5, pp. 1082–1090, 2007. View at Publisher · View at Google Scholar · View at Scopus
  8. X.-Q. Fan, X.-W. Fang, and C.-J. Jiang, “Research on web service selection based on cooperative evolution,” Expert Systems with Applications, vol. 38, no. 8, pp. 9736–9743, 2011. View at Publisher · View at Google Scholar · View at Scopus
  9. R. Wang, L. Ma, and Y. Chen, “The research of Web service selection based on the Ant Colony Algorithm,” in Proceedings of the International Conference on Artificial Intelligence and Computational Intelligence (AICI '10), pp. 551–555, Sanya, China, October 2010. View at Publisher · View at Google Scholar · View at Scopus
  10. X. Zheng, J. Z. Luo, and A. B. Song, “Ant colony system based algorithm for QoS -aware web service selection,” in Proceedings of the 4th International Conference on Grid Service Engineering and Management (GSEM '07), pp. 39–50, Leipzig, Germany, September 2007. View at Scopus
  11. Y.-M. Xia, B. Cheng, J.-L. Chen, X.-W. Meng, and D. Liu, “Optimizing services composition based on improved ant colony algorithm,” Chinese Journal of Computers, vol. 35, no. 2, pp. 270–281, 2012. View at Publisher · View at Google Scholar · View at Scopus
  12. D. Karaboga and B. Basturk, “On the performance of artificial bee colony (ABC) algorithm,” Applied Soft Computing Journal, vol. 8, no. 1, pp. 687–697, 2008. View at Publisher · View at Google Scholar · View at Scopus
  13. D. Karaboga, B. Gorkemli, C. Ozturk, and N. Karaboga, “A comprehensive survey: artificial bee colony (ABC) algorithm and applications,” Artificial Intelligence Review, vol. 42, no. 1, pp. 21–57, 2014. View at Publisher · View at Google Scholar · View at Scopus
  14. P. Fränti and O. Virmajoki, “Iterative shrinking method for clustering problems,” Pattern Recognition, vol. 39, no. 5, pp. 761–775, 2006. View at Publisher · View at Google Scholar · View at Scopus
  15. D. Skoutas, D. Sacharidis, A. Simitsis, and T. Sellis, “Ranking and clustering web services using multicriteria dominance relationships,” IEEE Transactions on Services Computing, vol. 3, no. 3, pp. 163–177, 2010. View at Publisher · View at Google Scholar · View at Scopus
  16. J. Handl, J. Knowles, and M. Dorigo, “Ant-based clustering and topographic mapping,” Artificial Life, vol. 12, no. 1, pp. 35–61, 2006. View at Publisher · View at Google Scholar · View at Scopus
  17. M. López -Ibáñez, J. Knowles, and M. Laumanns, “On sequential online archiving of objective vectors,” in Evolutionary Multi-Criterion Optimization, vol. 6576 of Lecture Notes in Computer Science, pp. 46–60, 2011. View at Google Scholar
  18. J. Cardoso, A. Sheth, J. Miller, J. Arnold, and K. Kochut, “Quality of service for workflows and web service processes,” Web Semantics, vol. 1, no. 3, pp. 281–308, 2004. View at Publisher · View at Google Scholar · View at Scopus