Abstract
This paper investigates the Google machine reassignment problem (GMRP). GMRP is a real world optimisation problem which is to maximise the usage of cloud machines. Since GMRP is computationally challenging problem and exact methods are only advisable for small instances, meta-heuristic algorithms have been used to address medium and large instances. This paper proposes a cooperative evolutionary heterogeneous simulated annealing (CHSA) algorithm for GMRP. The proposed algorithm consists of several components devised to generate high quality solutions. Firstly, a population of solutions is used to effectively explore the solution space. Secondly, CHSA uses a pool of heterogeneous simulated annealing algorithms in which each one starts from a different initial solution and has its own configuration. Thirdly, a cooperative mechanism is designed to allow parallel searches to share their best solutions. Finally, a restart strategy based on mutation operators is proposed to improve the search performance and diversification. The evaluation on 30 diverse real-world instances shows that the proposed CHSA performs better compared to cooperative homogeneous SA and heterogeneous SA with no cooperation. In addition, CHSA outperformed the current state-of-the-art algorithms, providing new best solutions for eleven instances. The analysis on algorithm behaviour clearly shows the benefits of the cooperative heterogeneous approach on search performance.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Roadef/euro Challenge 2012: Machine Reassignment. http://challenge.roadef.org/2012/en/
H.M. Afsar, C. Artigues, E. Bourreau, S. Kedad-Sidhoum, Machine reassignment problem: the ROADEF/EURO challenge 2012. Ann. Oper. Res. 242, 1–17 (2016)
E. Alba, Parallel Metaheuristics: A New Class of Algorithms, vol. 47 (Wiley, New York, 2005)
E. Alba, G. Luque, S. Nesmachnow, Parallel metaheuristics: recent advances and new trends. Int. Trans. Oper. Res. 20(1), 1–48 (2013)
M. Armbrust, A. Fox, R. Griffith, A.D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica et al., A view of cloud computing. Commun. ACM 53(4), 50–58 (2010)
P. Badeau, F. Guertin, M. Gendreau, J.-Y. Potvin, E. Taillard, A parallel tabu search heuristic for the vehicle routing problem with time windows. Transp. Res. Part C Emerg. Technol. 5(2), 109–122 (1997)
R. Bellio, S. Ceschia, L. Di Gaspero, A. Schaerf, T. Urli, Feature-based tuning of simulated annealing applied to the curriculum-based course timetabling problem. Comput. Oper. Res. 65, 83–92 (2016)
F. Brandt, J. Speck, M. Völker, Constraint-based large neighborhood search for machine reassignment. Ann. Oper. Res. 242(1), 63–91 (2012)
R.N. Calheiros, R. Ranjan, A. Beloglazov, C.A. De Rose, R. Buyya, Cloudsim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms. Softw. Pract. Exp. 41(1), 23–50 (2011)
T.G. Crainic, M. Toulouse, Parallel meta-heuristics. in Handbook of Metaheuristics, 2nd edn, ed. by M. Gendreau, J.Y. Potvin (Springer, 2010), pp. 497–541
M. El-Abd, M. Kamel, A taxonomy of cooperative search algorithms. in International Workshop on Hybrid Metaheuristics (Springer, 2005), pp. 32–41
S. García, A. Fernández, J. Luengo, F. Herrera, Advanced nonparametric tests for multiple comparisons in the design of experiments in computational intelligence and data mining: experimental analysis of power. Inf. Sci. 180(10), 2044–2064 (2010)
H. Gavranović, M. Buljubašić, E. Demirović, Variable neighborhood search for google machine reassignment problem. Electron. Notes Discret. Math. 39, 209–216 (2012)
S. Huda, J. Yearwood, R. Togneri, Hybrid metaheuristic approaches to the expectation maximization for estimation of the hidden markov model for signal modeling. Cybern. IEEE Trans. 44(10), 1962–1977 (2014)
G. Kendall, R. Bai, J. Błazewicz, P. De Causmaecker, M. Gendreau, R. John, J. Li, B. McCollum, E. Pesch, R. Qu et al., Good laboratory practice for optimization research. J. Oper. Res. Soc. 67(4), 676–689 (2016)
S. Kirkpatrick, C.D. Gelatt, M.P. Vecchi et al., Optimization by simulated annealing. Science 220(4598), 671–680 (1983)
D. Landa-Silva, E.K. Burke, Asynchronous cooperative local search for the office-space-allocation problem. INFORMS J. Comput. 19(4), 575–587 (2007)
S.-W. Lin, F.Y. Vincent, A simulated annealing heuristic for the multiconstraint team orienteering problem with multiple time windows. Appl. Soft Comput. 37, 632–642 (2015)
R. Lopes, V.W. Morais, T.F. Noronha, V.A. Souza, Heuristics and matheuristics for a real-life machine reassignment problem. Int. Trans. Oper. Res. 22(1), 77–95 (2015)
Z. Lou, J. Reinitz, Parallel simulated annealing using an adaptive resampling interval. Parallel Comput. 53, 23–31 (2016)
Y. Malitsky, D. Mehta, B. O’Sullivan, H. Simonis, Tuning parameters of large neighborhood search for the machine reassignment problem. in Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems (Springer, 2013), pp. 176–192
R. Martí, M.G. Resende, C.C. Ribeiro, Multi-start methods for combinatorial optimization. Eur. J. Oper. Res. 226(1), 1–8 (2013)
R. Masson, T. Vidal, J. Michallet, P.H.V. Penna, V. Petrucci, A. Subramanian, H. Dubedout, An iterated local search heuristic for multi-capacity bin packing and machine reassignment problems. Expert Syst. Appl. 40(13), 5266–5275 (2013)
D. Mehta, B. O’Sullivan, H. Simonis, Comparing solution methods for the machine reassignment problem. in Principles and Practice of Constraint Programming. Lecture Notes in Computer Science, ed. by M. Milano (Springer, Berlin, Heidelberg, 2012), pp. 782–797
Y. Mei, K. Tang, X. Yao, Decomposition-based memetic algorithm for multiobjective capacitated arc routing problem. IEEE Trans. Evol. Comput. 15(2), 151–165 (2011)
Y. Mei, K. Tang, X. Yao, A memetic algorithm for periodic capacitated arc routing problem. IEEE Trans. Syst. Man Cybern. Part B (Cybern.) 41(6), 1654–1667 (2011)
M. Mrad, A. Gharbi, M. Haouari, M. Kharbeche, An optimization-based heuristic for the machine reassignment problem. Ann. Oper. Res. 242(1), 115–132 (2015)
D. Mu, C. Wang, F. Zhao, J.W. Sutherland, Solving vehicle routing problem with simultaneous pickup and delivery using parallel simulated annealing algorithm. Int. J. Ship. Transp. Logist. 8(1), 81–106 (2016)
F. Neri, C. Cotta, Memetic algorithms and memetic computing optimization: a literature review. Swarm Evol. Comput. 2, 1–14 (2012)
S. Pace, A. Turky, I. Moser, A. Aleti, Distributing fibre boards: a practical application of the heterogeneous fleet vehicle routing problem with time windows and three-dimensional loading constraints. Proced. Comput. Sci. 51, 2257–2266 (2015)
K. Peng, Y. Shen, J. Li, A multi-objective simulated annealing for bus driver rostering. in Bio-Inspired Computing—Theories and Applications. Communications in Computer and Information Science, vol. 562, ed. by M. Gong, L. Pan, T. Song, K. Tang, X. Zhang (Springer, Berlin, Heidelberg, 2015), pp. 315–330
G.M. Portal, M. Ritt, L. Borba, L.S. Buriol, Simulated annealing for the machine reassignment problem. Ann. Oper. Res. 242(1), 93–114 (2016)
M.R.P. Ritt, An Algorithmic Study of the Machine Reassignment Problem. PhD Thesis, Universidade Federal do Rio Grande do Sul (2012)
N. Sabar, J. Abawajy, J. Yearwood, Heterogeneous cooperative co-evolution memetic differential evolution algorithms for big data optimisation problems. IEEE Trans. Evol. Comput. 21(2), 315–327 (2017)
N.R. Sabar, A. Aleti, An adaptive memetic algorithm for the architecture optimisation problem. in Australasian Conference on Artificial Life and Computational Intelligence (Springer, 2017), pp. 254–265
N.R. Sabar, M. Ayob, G. Kendall, R. Qu, Grammatical evolution hyper-heuristic for combinatorial optimization problems. IEEE Trans. Evol. Comput. 17(6), 840–861 (2013)
N.R. Sabar, M. Ayob, G. Kendall, R. Qu, Automatic design of a hyper-heuristic framework with gene expression programming for combinatorial optimization problems. IEEE Trans. Evol. Comput. 19(3), 309–325 (2015)
N.R. Sabar, M. Ayob, G. Kendall, R. Qu, A dynamic multiarmed bandit-gene expression programming hyper-heuristic for combinatorial optimization problems. IEEE Trans. Cybern. 45(2), 217–228 (2015)
N.R. Sabar, G. Kendall, An iterated local search with multiple perturbation operators and time varying perturbation strength for the aircraft landing problem. Omega 56, 88–98 (2015)
N.R. Sabar, A. Song, Grammatical evolution enhancing simulated annealing for the load balancing problem in cloud computing. in Proceedings of the 2016 on Genetic and Evolutionary Computation Conference ACM (2016), pp. 997–1003
N.R. Sabar, A. Song, Z. Tari, X. Yi, A. Zomaya, A memetic algorithm for dynamic shortest path routing on mobile ad-hoc networks. in Parallel and Distributed Systems (ICPADS), 2015 IEEE 21st International Conference on IEEE (2015), pp. 60–67
N.R. Sabar, A. Song, M. Zhang, A variable local search based memetic algorithm for the load balancing problem in cloud computing. in European Conference on the Applications of Evolutionary Computation (Springer, 2016), pp. 267–282
N.R Sabar, A. Turky, A. Song, A multi-memory multi-population memetic algorithm for dynamic shortest path routing in mobile ad-hoc networks. in Pacific Rim International Conference on Artificial Intelligence (Springer, 2016), pp. 406–418
J. Sun, Q. Zhang, X. Yao, Meta-heuristic combining prior online and offline information for the quadratic assignment problem. Cybern. IEEE Trans. 44(3), 429–444 (2014)
A. Turky, N.R. Sabar, A. Sattar, A. Song, Parallel late acceptance hill-climbing algorithm for the google machine reassignment problem. in Australasian Joint Conference on Artificial Intelligence (Springer, 2016), pp. 163–174
A. Turky, N.R. Sabar, A. Song, A multi-population memetic algorithm for dynamic shortest path routing in mobile ad-hoc networks. in Evolutionary Computation (CEC), 2016 IEEE Congress on IEEE (2016), pp. 4119–4126
A. Turky, N.R. Sabar, A. Song, An evolutionary simulated annealing algorithm for google machine reassignment problem. in Intelligent and Evolutionary Systems: The 20th Asia Pacific Symposium, IES 2016, Canberra, Australia, November 2016, Proceedings (Springer, 2017), pp. 431–442
A. Turky, N.R. Sabar, A. Song, Neighbourhood analysis: a case study on google machine reassignment problem. in Australasian Conference on Artificial Life and Computational Intelligence (Springer, 2017), pp. 228–237
F.Y. Vincent, S.-Y. Lin, A simulated annealing heuristic for the open location-routing problem. Comput. Oper. Res. 62, 184–196 (2015)
J. Wang, W. Zhang, J. Zhang, Cooperative differential evolution with multiple populations for multiobjective optimization. IEEE Trans. Cybern. 46(12), 2848–2861 (2016)
Z. Wang, Z. Lü, T. Ye, Multi-neighborhood local search optimization for machine reassignment problem. Comput. Oper. Res. 68, 16–29 (2016)
S. Xavier-de Souza, J.A. Suykens, J. Vandewalle, D. Bollé, D. Bollé, Coupled simulated annealing. Syst. Man Cybern. Part B Cybern. IEEE Trans. 40(2), 320–335 (2010)
Author information
Authors and Affiliations
Corresponding author
Appendix: Problem formulation
Appendix: Problem formulation
The description of this problem is adopted from [1, 51]. Let M= \(\{m_{1},m_{2},\ldots ,m_{k}\}\) be the set of machines and P=\(\{p_{1},p_{2},\ldots ,p_{w}\}\) be the set of processes. The solution can represented by a vector Map with length equal to w, where Map(p) corresponds to the machine assigned to process p. The constant and variable symbols of the problem are:
-
M The set of machines, \(M=\{m_1,m_2,\dots ,m_k\}, |M|=k\).
-
P The set of processes, \(P=\{p_1,p_2,\dots ,p_w\}, |P|=w\).
-
R The set of resources, \(R=\{r_1,r_2,\dots ,r_d\}, |R|=d\).
-
TR: The subset of resources which need transient usage \(TR=\{tr_1,tr_2,\ldots ,tr_h\}, |TR|=h, TR \subseteq R\).
-
S The set of services, \(S=\{s_1,s_2,\dots ,s_f\}, |S|=f\). Processes are partitioned into services, all services are disjoint, i.e., \(\cup _{s\in S}s=P, \forall s_i,s_j \in S, s_i \ne s_j, s_i \cap s_j=\oslash\).
-
L The set of locations, \(L=\{l_1,l_2,\dots ,l_g\},|L|=g\). Machines are partitioned into locations, all locations are disjoint, i.e., \(\cup _{l\in L}l=M,\forall l_i,l_j \in L, l_i \ne l_j, l_i \cap l_j=\oslash\).
-
N The set of neighbourhoods, \(N=\{n_1,n_2,\dots ,n_v\},|N|=v\). Machines are partitioned into neighbourhoods, all neighbourhoods are disjoint, i.e., \(\cup _{n\in N}n=M,\forall n_i,n_j \in N, n_i \ne n_j, n_i \cap n_j=\oslash\).
-
SD The set of service dependencies defined in \(S^2. SD=\{sd_1,sd_2,\ldots ,sd_z\} |SD|=z\).
-
B The set of triples defined in \(R^2x N\), N is the set of natural numbers. \(B=\{b_1,b_2,\ldots ,b_e\},|B|=e\).
-
NE(m) The neighbourhood of machine \(m \in M\).
-
C(m, r) The capacity of resource \(r\in R\) on machine \(m \in M\).
-
R(p, r) The requirement of resource \(r\in R\) for process \(p \in P\).
-
\(S\_min(s)\) The minimum number of distinct locations where at least one process of service \(s\in S\) should run.
-
SC(m, r) The safety capacity of resource \(r\in R\) on machine \(m \in M\).
-
PMC(p) The cost of moving process \(p \in P\) from its original machine \(Map_0(p)\).
-
\(MMC(m,m')\) The cost of moving any process \(p \in P\) from machine \(m \in M\) to machine \(m' \in M\). \(\forall m \in M, MMC(m,m)=0\).
-
\(wt_1(r)\) The weight of load cost for resource \(r\in R\).
-
\(wt_2(b)\) The weight of balance cost for triple \(b\in B\).
-
\(wt_3,wt_4,wt_5\) The weights of process move cost, service move cost and machine move cost.
-
U(m, r) The usage of machine \(m\in M\) for resource \(r\in R\), i.e., \(\cup (m,r)=\sum _{p\in P}bool(Map(p)=m).R(p,r)\).
-
A(m, r) The available capacity of resource \(r\in R\) on machine \(m\in M\), i.e., \(A(m,r)=C(m,r)-\cup (m,r)\).
-
A(r) The total available capacity of resource \(r\in R\) over all machines, i.e., \(A(r)=\sum _{m\in M}A(m,r)\).
-
TU(m, r) The transient usage of machine \(m\in M\) for resource \(r\in R\), i.e., \({\left\{ \begin{array}{ll}\sum _{p\in P}bool(Map_0(p)=m \wedge Map(p)\ne m).R(p,r), r \in TR \\ 0, \quad r\in R-TR \end{array}\right. }\).
-
CO(m) The capacity overload on machine \(m\in M\), i.e., \(CO(m)=\sum _{r \in R} max(TU(m,r)-A(m,r),0)\).
where bool is the truth indicator function. It takes value 1 if the proposition is true and takes 0 if not. The allocation of processes must not violate the following five hard constraints:
-
Capacity constraints \(\forall m\in M, r\in R, \cup (m,r)\le C(m,r)\).
-
Conflict constraints \(\forall s \in S,(p_i,p_j) \in s^2, p_i\ne p_j\Rightarrow Map(p_i)\ne Map(p_j)\).
-
Transient usage constraints: \(\forall m \in M,tr \in TR, \cup (m,tr)+ TU(m,tr)\le C(m,tr)\).
-
Spread constraints \(\forall s\in S,\sum \limits _{l \in L}min(1,|\{p \in s|Map(p)\in l\}|)\ge S\_min(s)\).
-
Dependency constraints \(\forall (s^a,s^b) \in SD, \forall p^a \in s^a, \exists p^b \in s^b \Rightarrow NE(Map(p^a))= NE(Map(p^b))\).
A solution, which meets all the above hard constraints, is considered feasible. In comparison soft constraints do not affect the feasibility but the quality of a solution. Soft constraints violation is measurable and should be as low as possible. The soft constraints are summarised as follows:
-
Load cost. SC(m, r) represents the safety capacity of a resource \(r \in R\) on a machine \(m \in M\). The load cost is defined per resource and corresponds to the used capacity above the safety capacity; more formally:
$$\begin{aligned} f_1(r)=\sum \limits _{m \in M}max(0,U(m,r)-SC(m,r)) \end{aligned}$$ -
Balance cost In order to balance the availability of resources, let the set of triples is \(B \subseteq R^2 X N\) [1]. For a given triple \(b=(r^b_1,r^b_2, target^b) \in B\), the balance cost is:
$$\begin{aligned} f_2(b)=\sum \limits _{m \in M}max(0, target^b . A(m,r^b_1)-A(m,r^b_2)) \end{aligned}$$ -
Process move cost represents the cost of moving a process from its current machine to a new one which can be defined as follow:
$$\begin{aligned} f_3=\sum \limits _{p \in P}bool(Map_0(p)\not =Map(p))PMC(p) \end{aligned}$$ -
Service move cost represents the maximum number of moved processes over services which can be defined as follow:
$$\begin{aligned} f_4=\smash {\displaystyle \max _{s \in S}}(|\{p \in s |Map(p)\not =Map_0(p)\}|) \end{aligned}$$ -
Machine move cost represents the sum of all moves weighted by relevant machine cost which can be defined as follow:
$$\begin{aligned} f_5=\sum \limits _{p \in P}MMC(Map_0(p),Map(p)) \end{aligned}$$
The total objective cost is a weighted sum of all previous costs which is calculated as follows:
where \(wt_1(r)\), \(wt_2(b)\), \(wt_3\), \(wt_4\) and \(wt_5\) define the importance of each individual cost.
Rights and permissions
About this article
Cite this article
Turky, A., Sabar, N.R. & Song, A. Cooperative evolutionary heterogeneous simulated annealing algorithm for google machine reassignment problem. Genet Program Evolvable Mach 19, 183–210 (2018). https://doi.org/10.1007/s10710-017-9305-0
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10710-017-9305-0