Abstract
A mobile ad hoc network is a kind of popular self-configuring network, in which multicast routing under the quality of service constraints, is a significant challenge. Many researchers have proved that such problem can be formulated as a NP-complete problem and proposed some swarm-based intelligent algorithms to solve the optimal solution, such as the genetic algorithm (GA), bees algorithm. However, a lower efficiency of local search ability and weak robustness still limit the computational effectiveness. Aiming to those shortcomings, a new hybrid algorithm inspired by the self-organization of Physarum, is proposed in this paper. In our algorithm, an updating scheme based on Physarum network model (PM) is used for improving the crossover operator of traditional GAs, in which the same parts of parent chromosomes are reserved and the new offspring by the PM is generated. In order to estimate the effectiveness of our proposed optimized scheme, some typical genetic algorithms and their updating algorithms (PMGAs) are compared for solving the multicast routing on four different datasets. The simulation experiments show that PMGAs are more efficient than original GAs. More importantly, the PMGAs are more robustness that is very important for solving the multicast routing problem. Moreover, a series of parameter analyses is used to find a set of better setting for realizing the maximal efficiency of our algorithm.
Similar content being viewed by others
Notes
References
Abbass HA (2001) A single queen single worker honey-bees approach to 3-SAT. In: The genetic and evolutionary computation conference, pp 807–814
Adamatzky A (2009) Developing proximity graphs by Physarum polycephalum: does the plasmodium follow the Toussaint hierarchy? Parallel Process Lett 19(1):105–127
Chow CH (1991) On multicast path finding algorithms. In: 10th Annual joint conference of the IEEE computer and communications societies, pp 1274–1283
Huang TL, Lee DT (2007) A distributed multicast routing algorithm for real-time applications in wide area networks. J Parallel Distrib Comput 67(5):516–530
Hwang RH, Do WY, Yang SC (2000) Multicast routing based on genetic algorithms. J Inf Sci Eng 16(6):885–901
Karthikeyan P, Baskar S (2015) Genetic algorithm with ensemble of immigrant strategies for multicast routing in ad hoc networks. Soft Comput 19(2):489–498
Liu YX, Gao C, Wu YH, Tao L, Lu YX, Zhang ZL (2014) A Physarum-inspired multi-agent system to solve maze. In: The fifth international conference on Swarm intelligence, pp 424–430
Liu YX, Zhang ZL, Gao C, Wu YH, Qian T (2013) A Physarum network evolution model based on IBTM. In: The fourth international conference on Swarm intelligence, pp 19–26
Liu L, Song Y, Ma H, Zhang X (2015) Physarum optimization: a biology-inspired algorithm for minimal exposure path problem in wireless sensor networks. IEEE Trans Comput 64(3):819–832
Lu T, Zhu J (2013) Genetic algorithm for energy-efficient QoS multicast routing. Commun Lett 17(1):31–34
Mahmoud TM, El Nashar AI, Eman M (2014) An efficient genetic algorithm based clonal selection and hill climbing for solving QoS multicast routing problem. Int J Comput Sci Issues. 11(3):83–88
Nakagaki T, Yamada H, Tóth Á (2000) Intelligence: Maze-solving by an amoeboid organism. Nature 407(6803):470–470
Oliveira CA, Pardalos PM (2005) A survey of combinatorial optimization problems in multicast routing. Comput Oper Res 32(8):1953–1981
Peng B, Li L (2013) Combination of genetic algorithm and ant colony optimization for QoS multicast routing. In: 14th International symposium on advanced intelligent systems, pp 49–56
Pham DT, Kog E, Ghanbarzadeh A, Otri S, Rahim S, Zaidi M (2006) The bees algorithm—a novel tool for complex optimisation problems. In: The 2nd international virtual conference on intelligent production machines and systems, p 454
Ratnasamy S, Ermolinskiy A, Shenker S (2006) Revisiting IP multicast. ACM SIGCOMM Comput Commun Rev 36(4):15–16
Salama HF (1996) Multicast routing for real-time communication of high-speed networks. Ph.D. Thesis. North Carolina State University
Salama HF, Reeves DS, Viniotis Y (1997) Evaluation of multicast routing algorithms for real-time communication on high-speed networks. IEEE J Sel Areas Commun 15(3):32–45
Salim B, Abdelhamid M (2013) Bee life-based multi constraints multicast routing optimization for vehicular ad hoc networks. J Netw Comput Appl 36(3):981–991
Sesay S, Yang ZK, He JH (2004) A survey on mobile ad hoc wireless network. Inf Technol J 3(2):168–175
Tero A, Kobayashi R, Nakagaki T (2007) A mathematical model for adaptive transport network in path finding by true slime mold. J Theor Biol 244(4):553–564
Tero A, Takagi S, Saigusa T, Ito K, Bebber DP, Fricker MD, Yumiki K, Kobayashi R, Nakagaki T (2010) Rules for biologically inspired adaptive network design. Sci Signal 327(5964):439
Wang ZY, Shi BX, Zhao E (2001) Bandwidth-delay-constrained least-cost multicast routing based on heuristic genetic algorithm. Comput Commun 24(7):685–692
Wang Z, Szolnoki A, Perc M (2012) If players are sparse social dilemmas are too: importance of percolation for evolution of cooperation. Sci Rep 2:369
Wang Z, Crowcroft J (1996) Quality-of-service routing for supporting multimedia applications. IEEE J Sel Areas Commun 14(7):1228–1234
Watanabe S, Tero A, Takamatsu A, Nakagaki T (2011) Traffic optimization in railroad networks using an algorithm mimicking an amoeba-like organism. Physarum plasmodium. Biosystems 105(3):225–232
Yen Y, Chao H, Chang R, Vasilakos A (2011) Flooding-limited and multi-constrained QoS multicast routing based on the genetic algroithms. Math Comput Model 53(11):2238–2250
Yin P, Chang R, Chao C, Chu Y (2014) Niched ant colony optimization with colony guides for QoS multicast routing. J Netw Comput Appl 40:61–72
Yu Z, Wong H, Wang D, Wei M (2011) Neighborhood knowledge-based evolutionary algorithm for multiobjective optimization problems. IEEE Trans Evol Comput 15(6):812–831
Yu Z, Chen H, You J, Wong H, Liu J, Li L, Han G (2014) Double selection based semi-supervised clustering ensemble for tumor clustering from gene expression profiles. IEEE/ACM Trans Comput Biol Bioinfor 11(4):727–740
Yu Z, Chen H, You J, Wong H, Liu J, Han G, Li L (2015) Adaptive fuzzy consensus clustering framework for clustering analysis of cancer data. IEEE/ACM Trans Comput Biol Bioinform 12(3):568–582
Zhang L, Cai L, Li M, Wang F (2009) A method for least-cost QoS multicast routing based on genetic simulated annealing algorithm. Comput Commun 32(1):105–110
Zhang ZL, Gao C, Liu YX, Qian T (2014) A universal optimization strategy for ant colony optimization algorithms based on the Physarum-inspired mathematical model. Bioinspir Biomim 9(3):036006
Acknowledgments
Prof. Z.L. Zhang and Dr. Chao Gao are the corresponding authors. This work is supported by the National High Technology Research and Development Program of China (No. 2013AA013801), National Natural Science Foundation of China (Nos. 61402379, 61403315), and Natural Science Foundation of Chongqing (No. cstc2013jcyjA40022), Fundamental Research Funds for the Central Universities (No. XDJK2016A008) and Research Fund for the Doctoral Program of Higher Education (RFDP) (No. 20120182120016).
Author information
Authors and Affiliations
Corresponding authors
Appendix
Appendix
D1 = {(number of endpoint, number of endpoint, cost, delay)| (8, 1, 0.682, 0.853) (10, 1, 0.975, 0.547) (15, 1, 0.860, 0.0305) (17, 1, 0.595, 0.173) (7, 2, 0.820, 0.961) (15, 2, 0.367, 0.744) (4, 3, 0.856, 0.505) (13, 3, 0.758, 0.801) (14, 3, 0.413, 0.913) (16, 3, 0.648, 0.042) (20, 3, 0.456, 0.617) (5, 4, 0.923, 0.549) (9, 4, 0.404, 0.403) (10, 4, 0.480, 0.188) (19, 5, 0.308, 0.190) (7, 6, 0.484, 0.868) (8, 6, 0.757, 0.075) (16, 6, 0.878, 0.096) (8, 7, 0.579, 0.239) (19, 7, 0.684, 0.460) (10, 8, 0.467, 0.625) (12, 8, 0.334, 0.111) (11, 9, 0.464, 0.622) (13, 9, 0.874, 0.237) (14, 9, 0.310, 0.136) (20, 9, 0.615, 0.584) (11, 10, 0.950, 0.587) (12, 10, 0.843, 0.408) (13, 10, 0.640, 0.458) (17, 10, 0.655, 0.627) (20, 11, 0.604, 0.906) (13, 12, 0.721, 0.546) (14, 12, 0.797, 0.653) (19, 12, 0.596, 0.376) (14, 13, 0.462, 0.494) (15, 14, 0.800, 0.028) (18, 15, 0.798, 0.698) (19, 18, 0.999, 0.226)}, \({\varDelta _d}=5.\)
D2 = {(number of endpoint, number of endpoint, cost, delay)| (2, 1, 11, 4) (3, 1, 7, 6) (8, 1, 21, 3) (4, 2, 4, 4) (5, 2, 2, 5) (11, 2, 5, 3) (4, 3, 24, 3) (6, 4, 7, 11) (6, 5, 39, 1) (12, 5, 3, 5) (7, 6, 22, 3) (14, 6, 35, 4) (12, 7, 15, 4) (13, 7, 2, 3) (9, 8, 21, 3) (10, 8, 14, 6) (10, 9, 10, 7) (12, 9, 13, 1) (12, 10, 20, 3) (12, 11, 21, 3) (15, 13, 5, 3) (15, 14, 6, 4)}, \({\varDelta _d}=18.\)
D3 = {(number of endpoint, number of endpoint, cost, delay)| (1, 6, 8.197, 0.307) (1, 7, 7.549, 0.367) (1, 11, 4.214, 0.642) (1, 12, 9.743, 0.518) (1, 15, 7.722, 0.655) (2, 5, 5.654, 0.312) (2, 6, 7.986, 0.451) (2, 9, 3.002, 0.3662) (2, 11, 3.935, 0.490) (2, 13, 3.155, 0.583) (3, 4, 9.337, 0.539) (3, 7, 6.643, 0.421) (3, 8, 4.057, 0.360) (3, 10, 5.365, 0.441) (4, 8, 7.970, 0.647) (4, 10, 3.572, 0.413) (4, 14, 8.306, 0.398) (5, 9, 9.688, 0.374) (5, 11, 4.029, 0.610) (5, 13, 8.719, 0.387) (6, 7, 7.679, 0.562) (6, 9, 9.061, 0.490) (6, 11, 6.316, 0.346) (6, 12, 6.882, 0.522) (6, 15, 7.190, 0.502) (6, 16, 3.485, 0.612) (7, 8, 6.436, 0.352) (7, 10, 7.347, 0.631) (7, 12, 7.551, 0.329) (7, 15, 9.843, 0.601) (8, 10, 8.144, 0.291) (8, 12, 6.567, 0.479) (8, 14, 5.807, 0.622) (8, 19, 8.837, 0.631) (8, 22, 8.636, 0.660) (9, 11, 7.803, 0.252) (9, 13, 5.529, 0.315) (9, 15, 5.862, 0.651) (9, 16, 6.463, 0.435) (9, 18, 5.801, 0.461) (9, 20, 6.337, 0.622) (9, 21, 5.509, 0.645) (10, 14, 7.929, 0.336) (10, 17, 9.245, 0.455) (11, 12, 6.445, 0.608) (11, 13, 9.912, 0.531) (11, 15, 4.762, 0.403) (11, 16, 4.007, 0.295) (11, 18, 9.952, 0.503) (11, 21, 5.329, 0.470) (11, 23, 9.146, 0.622) (12, 15, 4.351, 0.295) (12, 19, 9.411, 0.373) (12, 21, 4.566, 0.616) (13, 16, 9.953, 0.572) (13, 18, 6.545, 0.379) (13, 20, 3.090, 0.387) (13, 23, 6.023, 0.638) (14, 17, 9.680, 0.303) (14, 25, 3.959, 0.594) (15, 16, 5.267, 0.371) (15, 19, 9.173, 0.385) (15, 21, 7.194, 0.329) (15, 27, 5.202, 0.584) (15, 29, 7.961, 0.634) (16, 18, 3.80, 0.332) (16, 20, 8.485, 0.606) (16, 21, 4.405, 0.211) (16, 23, 8.201, 0.348) (16, 27, 4.002, 0.470) (16, 30, 7.739, 0.582) (17, 22, 9.816, 0.523) (17, 24, 8.302, 0.398) (17, 25, 6.715, 0.334) (17, 32, 4.940, 0.590) (18, 20, 7.453, 0.274) (18, 21, 8.467, 0.471) (18, 23, 9.232, 0.259) (18, 27, 7.068, 0.589) (18, 28, 8.130, 0.441) (18, 30, 8.697, 0.500) (19, 21, 7.585, 0.531) (19, 22, 7.701, 0.455) (19, 24, 3.276, 0.640) (19, 26, 8.093, 0.360) (19, 27, 3.893, 0.622) (19, 29, 3.688, 0.431) (19, 31, 7.232, 0.494) (20, 23, 4.357, 0.441) (20, 28, 7.091, 0.345) (20, 30, 9.546, 0.596) (21, 23, 3.220, 0.352) (21, 27, 5.448, 0.293) (21, 29, 5.166, 0.515) (21, 30, 6.833, 0.507) (21, 33, 8.709, 0.553) (22, 24, 5.198, 0.185) (22, 25, 7.572, 0.602) (22, 26, 6.844, 0.219) (22, 29, 9.269, 0.629) (22, 31, 6.252, 0.445) (22, 32, 3.272, 0.392) (23, 27, 9.829, 0.352) (23, 28, 6.379, 0.385) (23, 30, 5.975, 0.259) (23, 33, 6.377, 0.500) (23, 35, 7.838, 0.663) (23, 36, 7.603, 0.600) (23, 37, 9.731, 0.613) (24, 25, 3.208, 0.417) (24, 26, 6.701, 0.376) (24, 31, 7.755, 0.564) (24, 32, 9.647, 0.274) (24, 38, 8.590, 0.638) (25, 32, 5.922, 0.428) (25, 34, 7.025, 0.442) (26, 29, 7.727, 0.413) (26, 31, 5.885, 0.241) (26, 32, 3.088, 0.473) (26, 40, 9.290, 0.615) (27, 28, 6.010, 0.661) (27, 29, 9.107, 0.370) (27, 30, 3.222, 0.324) (27, 31, 4.900, 0.651) (27, 33, 9.154, 0.261) (27, 36, 3.054, 0.496) (27, 37, 8.970, 0.656) (27, 39, 5.462, 0.615) (28, 30, 9.940, 0.363) (28, 35, 5.724, 0.349) (28, 36, 6.793, 0.601) (28, 37, 7.897, 0.445) (28, 41, 8.896, 0.631) (29, 31, 3.070, 0.281) (29, 33, 8.962, 0.434) (29, 36, 8.669, 0.692) (29, 39, 6.361, 0.491) (29, 40, 6.408, 0.590) (30, 33, 3.811, 0.313) (30, 35, 3.595, 0.498) (30, 36, 9.168, 0.343) (30, 37, 6.422, 0.376) (30, 41, 8.374, 0.637) (30, 42, 5.428, 0.648) (30, 44, 4.848, 0.694) (31, 32, 8.768, 0.551) (31, 33, 5.957, 0.667) (31, 38, 6.297, 0.617) (31, 39, 3.348, 0.537) (31, 40, 6.643, 0.410) (32, 34, 7.376, 0.464) (32, 38, 6.803, 0.374) (32, 40, 4.431, 0.637) (32, 43, 5.908, 0.668) (33, 36, 5.626, 0.266) (33, 37, 7.402, 0.491) (33, 39, 7.982, 0.417) (33, 42, 8.390, 0.450) (33, 44, 8.534, 0.627) (34, 38, 3.360, 0.499) (34, 43, 4.324, 0.456) (35, 36, 5.521, 0.510) (35, 37, 4.452, 0.251) (35, 41, 9.006, 0.305) (35, 44, 9.669, 0.579) (35, 46, 8.093, 0.655) (36, 37, 7.797, 0.263) (36, 39, 5.230, 0.500) (36, 41, 7.476, 0.458) (36, 42, 3.0563, 0.313) (36, 44, 8.227, 0.379) (36, 49, 4.107, 0.668) (37, 41, 7.264, 0.260) (37, 42, 3.519, 0.507) (37, 44, 6.914, 0.391) (37, 46, 3.308, 0.631) (38, 40, 6.990, 0.435) (38, 43, 5.081, 0.386) (38, 47, 6.347, 0.561) (38, 48, 7.744, 0.681) (39, 40, 4.309, 0.419) (39, 42, 5.630, 0.355) (39, 44, 3.077, 0.654) (39, 45, 7.530, 0.497) (39, 50, 8.132, 0.601) (40, 45, 9.557, 0.526) (40, 47, 9.185, 0.574) (41, 42, 6.132, 0.572) (41, 44, 3.230, 0.319) (41, 46, 6.869, 0.378) (41, 49, 4.788, 0.511) (42, 44, 5.267, 0.300) (42, 45, 6.418, 0.575) (42, 49, 4.340, 0.493) (42, 50, 9.512, 0.429) (43, 47, 3.246, 0.528) (43, 48, 8.404, 0.316) (44, 46, 7.936, 0.438) (44, 49, 8.298, 0.294) (44, 50, 6.236, 0.513) (45, 47, 3.476, 0.530) (45, 50, 4.900, 0.372) (46, 49, 7.593, 0.364) (47, 48, 7.700, 0.553) (49, 50, 8.928, 0.423)}, \({\varDelta _d}=5.\)
D4 = {(number of endpoint, number of endpoint, cost, delay, jitter, bandwidth)| (1, 2, 229.2, 123.27, 1.751, 797.457) (1, 5, 277.884, 123.312, 1.7516, 797.403) (1, 16, 153.24, 123.205, 1.75, 797.539) (1, 17, 132.163, 123.187, 1.7497, 797.562) (1, 18, 53.8145, 123.12, 1.7487, 797.648) (1, 19, 168.808, 123.219, 1.7502, 797.522) (2, 3, 215.969, 123.259, 1.7508, 797.471) (2, 4, 267.247, 123.303, 1.7515, 797.415) (2, 5, 63.7104, 123.129, 1.7488, 797.637) (2, 6, 176.894, 123.226, 1.7503, 797.513) (2, 8, 152.6, 123.205, 1.75, 797.54) (2, 9, 239.438, 123.279, 1.7511, 797.446) (2, 11, 202.107, 123.247, 1.7506, 797.486) (2, 12, 266.533, 123.302, 1.7515, 797.416) (2, 16, 126.895, 123.183, 1.7496, 797.568) (2, 18, 197.297, 123.243, 1.7506, 797.491) (3, 5, 260.038, 123.297, 1.7514, 797.423) (3, 6, 63.0259, 123.128, 1.7488, 797.638) (3, 8, 248.496, 123.287, 1.7513, 797.435) (3, 9, 80, 123.143, 1.749, 797.62) (4, 5, 221.549, 123.264, 1.7509, 797.465) (4, 8, 294.157, 123.326, 1.7519, 797.386) (4, 11, 244.492, 123.283, 1.7512, 797.44) (4, 12, 82.8908, 123.145, 1.7491, 797.616) (4, 13, 52.5624, 123.119, 1.7487, 797.65) (4, 16, 224.185, 123.266, 1.7509, 797.462) (5, 6, 210.481, 123.254, 1.7508, 797.477) (5, 8, 116.669, 123.174, 1.7495, 797.579) (5, 9, 266.66, 123.302, 1.7515, 797.416) (5, 11, 144.867, 123.198, 1.7499, 797.549) (5, 12, 208.471, 123.253, 1.7507, 797.479) (5, 13, 255.831, 123.293, 1.7514, 797.427) (5, 16, 147.683, 123.2, 1.7499, 797.545) (5, 18, 238.255, 123.278, 1.7511, 797.447) (6, 8, 186.141, 123.233, 1.7504, 797.504) (6, 9, 64.9019, 123.13, 1.7488, 797.636) (6, 11, 272.403, 123.307, 1.7516, 797.409) (6, 16, 294.214, 123.326, 1.7519, 797.386) (7, 8, 239.9, 123.279, 1.7511, 797.445) (7, 10, 84.9586, 123.147, 1.7491, 797.614) (7, 11, 221.828, 123.264, 1.7509, 797.464) (8, 9, 219.14, 123.262, 1.7509, 797.468) (8, 10, 280.165, 123.314, 1.7517, 797.401) (8, 11, 86.539, 123.148, 1.7491, 797.612) (8, 12, 248.458, 123.287, 1.7513, 797.435) (8, 16, 263.536, 123.3, 1.7515, 797.419) (10, 11, 235.5, 123.276, 1.7511, 797.449) (11, 12, 182.129, 123.23, 1.7504, 797.508) (11, 13, 250.027, 123.288, 1.7513, 797.434) (11, 16, 284.1, 123.317, 1.7517, 797.397) (12, 13, 68.656, 123.133, 1.7489, 797.632) (12, 16, 262.887, 123.299, 1.7515, 797.419) (13, 14, 264.3, 123.3, 1.7515, 797.418) (13, 16, 275.18, 123.31, 1.7516, 797.406) (14, 15, 199, 123.244, 1.7506, 797.489) (16, 17, 235.9, 123.276, 1.7511, 797.449) (16, 18, 102.801, 123.162, 1.7493, 797.595) (16, 19, 297.402, 123.329, 1.7519, 797.382) (17, 18, 146.756, 123.2, 1.7499, 797.547) (17, 19, 71.1157, 123.135, 1.7489, 797.629) (17, 20, 261.873, 123.298, 1.7514, 797.421) (18, 19, 200, 123.245, 1.7506, 797.489) (19, 20, 200, 123.245, 1.7506, 797.489)}, \({\varDelta _d}=1200, {\varDelta _b}=797.4, {\varDelta _j}=17.\)
Rights and permissions
About this article
Cite this article
Liang, M., Gao, C. & Zhang, Z. A new genetic algorithm based on modified Physarum network model for bandwidth-delay constrained least-cost multicast routing. Nat Comput 16, 85–98 (2017). https://doi.org/10.1007/s11047-016-9545-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11047-016-9545-6