Abstract
In network virtualization, one of its core challenges lies in how to map the virtual networks (VNs) to the shared substrate network (SN) that is managed by an infrastructure provider, termed as the virtual network embedding problem. Prior studies on this problem only consider one objective, e.g., maximizing the revenues by mapping more VNs or minimizing the energy cost. In this paper, we addressed the virtual network embedding problem with these two objectives. We leverage niche particle swarm optimization technique to design a meta-heuristic algorithm to solve this problem. Extensive simulations illustrate that the efficiency of our proposed algorithm is better than the state-of-the-art algorithms in terms of both revenue and energy cost.
Similar content being viewed by others
1 Introduction
Up to now, network virtualization has been put forward as a fundamental attribute of diversification for the future Internet by decoupling the service providers (SPs) from the roles of infrastructure providers (InPs). SPs rent some resources of the substrate network (SN) from InPs and provided services to the end users. Embedding a sequence of virtual networks (VNs) to the shared SN is defined as the VN embedding problem, which has been extensively studied [1–12].
In these previous works, the main goal is to design more efficient approaches to maximize the revenue through accommodating more virtual network requests (VNRs). Recently, in [13, 14], they proposed to minimize the energy consumption for the SPs by leveraging meta-heuristics, i.e., particle swarm optimization. Nevertheless, the particle swarm optimization (PSO) model has a high opportunity to converge to local optima. To further optimize and improve the VN embedding issues, in our works, we put forward an approach of niche particle swarm optimization algorithm (MO-NPSO) based on the multi-objectives. The originality of this algorithm is as follows. We first apply a discrete approach, which encodes the virtual node mapping solution as the position of a particle to leverage PSO. We then apply an aggregation strategy for the fitness function to transform the multi-objective problem to a uni-objective problem. To further improve the performance of this algorithm, we leverage the niche technique for the enhanced algorithm. By leveraging Niche PSO in our context, we can avoid local optima and achieve a more revenue and energy-efficient VN embedding solution in the evolution process, which is the critical contribution of this thesis. Through extensive simulations, the performance of our algorithm is better than the state-of-the-art algorithm in terms of revenue and energy cost.
The main contributions of this paper are as follows. (i) Unlike most of the prior studies, we address the virtual network embedding problem with these two objectives. (ii) We leverage niche particle swarm optimization technique to design a meta-heuristic algorithm to solve this problem. The niche technology can avoid PSO from local optima. (iii) We perform extensive simulations to prove that our proposed algorithm is better than the state-of-the-art algorithms in terms of both revenue and energy cost.
The roadmap of this thesis is as follows. In Section 2, we revisit the related works. The network model and performance metrics are presented in Section 3. In Section 4, we give details of our proposed meta-heuristic algorithm-based VN embedding which known as MO-NPSO. In Section 5, we compare our MO-NPSO algorithm with other state-of-the-art algorithms. Finally, conclusions are drawn in the last section.
2 Related works
The virtual network embedding (VNE) problem, which is proved to be NP hard problem, is very hot and has been extensively studied. The primary goal earlier is to increase the long-term average revenues with certain substrate network resources. Yu et al. [1] assumed that supporting path splitting and reconfiguration can increase the opportunity of acceptance ratio of VNR. Chowdhury et al. [2] translated the VNE problem into the mixed-integer programming (MIP) problems and took advantage of classical integer programming solution to address the issue. However, this approach incurs a very high time complexity and also suffers from poor performance. Cheng et al. [10] leveraged Markov random walk theory and proposed NodeRank, similar to PageRank which serves as the core algorithm of Google’s web searching. The benefit of this algorithm lies in that it incorporates the topology attribute into the VN embedding algorithm.
Another line to solve this NP hard problem is leveraging meta-heuristic. For example, Cheng and Zhang [11, 15] proposed to leverage the particle swarm optimization technique to achieve a better and better solution by iteratively searching. The difference between these two studies lies in that they did not consider the energy. Recently, due to the importance of the energy issue, energy-aware VN embedding problem also attracts several researchers. Su et al. [13, 14] and Botero et al. [16] proposed two different solutions for energy-efficient VN embedding algorithm. The former focused on the heuristics while the latter focused on the exact algorithm. However, for the heuristic algorithm, it is easy while the quality of the solution is not good; for the exact algorithm, it can achieve the optimal solution while incurring a very high time complexity. We bridge this gap in this paper and leverage the Niche PSO to address these the limitations of these two branches of algorithms.
3 The description of network model and performance metrics
3.1 The introduction of network model
We model a substrate network (SN) to a weighted graph which denoted as G s=(N s,L s), in which N s stands for the collection of substrate nodes and L s stands for the collection of substrate links.
With regard to the attributes on the nodes and links, following most of the previous studies [1, 10–13], we take the nodes’ CPU capacity and location and the links’ bandwidth capacity into considerations. Similar to previous studies, we model a VN to a weighted graph represented by G v=(N v,L v), in which N v stands for the collection of virtual nodes and L v stands for the collection of virtual links.
In Fig. 1, virtual network is presented on the left of diagram which is marked by (a), and substrate network is presented on the right of diagram which marked by (b). For estimating the energy consumption of the SN, the power state (with a value of on or off) of the substrate nodes is also considered. As shown in Fig. 1 b, we draw such substrate nodes in the on state in transparent and such nodes in the off state in gray.
A VNR can be modeled as VNR(G v,T a,T d), in which T a stands for the arrival time and T d stands for the duration of the VN request hosting in the SN. The VNE problem can be described as a process which maps a VN to a SN, meanwhile satisfying the resource constraints of node and link. Naturally, the mapping process can be broken into two sub-phrases: one is the node mapping phrase denoted by M n and the other is the link mapping phrase denoted by M l. The part of (b) in Fig. 1 gives a VNE solution for the VNR denoted by the part of Fig. 1 a. From Fig. 1, we can easily know that mapping solutions.
3.2 The performance metrics
From the InP’s prospective, there are two goals: (i) maximizing the revenue for serving the VN requests and (ii) minimizing the corresponding energy cost.
3.2.1 Revenue
Similar to most prior work, we take the CPU capacity revenue and bandwidth capacity of VNR as its revenue:
For embedding a sequence of VNRs, we can calculate the long-term average revenue by using the following formula:
where N stands for the number of accepted VNRs in time T and R i(G v) stands for the derived revenue for accepting the ith VNR. We quantify the resource cost for mapping G v, denoted by C(G v) in the following ways. C(G v) consists of two parts: the first part is the total consumed CPU resource, denoted by C(N v), and the total consumed bandwidth resource, denoted by C(L v).
3.2.2 Energy cost
As reported in previous works [13, 14], the energy cost for mapping the ith VNR can be defined as:
where P l denotes a linear parameter, P b represents the baseline energy cost, and N stands for how many substrate nodes have been powered up. Through the equation above, it is of critical importance to consolidate the VNs into substrate nodes as little as possible. To compute the energy cost for embedding a sequence of VN requests, we quantify the long-term average energy cost as follows:
where G stands for the number of accepted VNRs in time T and E i(G v) stands for ith VNR’s energy cost. In our approach, we consider not only its long-term average revenue but also its long-term average energy cost and take both as our performance metrics.
4 Proposed solution
In particular, compared to other methods, the algorithm of PSO can produce better optimal solution with less computational time but stable convergence [17]. Furthermore, it is easy to use fewer parameters to tune. The originality of our work is to leverage these PSO benefits to construct a revenue and energy-aware VNE solution. Before that, we will give a brief introduction of particle swarm optimization basics.
4.1 Particle swarm optimization basics
In 1995, particle swarm optimization technology is first proposed by Kennedy and Eberhart, which is an emerging approach based on population optimization [18]. The basic idea of PSO borrows from the birds’ flocking behavior in the process of their hunting food. In the algorithm of PSO, the problem of optimization can correspond to the process of food hunting, and the solution of optimal mapping correspond to the food’s position. Each solution, which is termed as a particle in PSO, corresponds to a bird. We denote the position of ith particle by \(X_{i}=({x_{i}^{1}},{x_{i}^{2}},\ldots,{x_{i}^{D}})\), in which D denotes the dimensionality. Each particle has a position. The quality of its position is better or worse, which can be determined by a fitness function. The ith particle interacts with other particles in a certain manner and adjusts its forward direction using the velocity \(V_{i}=({v_{i}^{1}},{v_{i}^{2}},\ldots,{v_{i}^{D}})\) iteratively. The ith particle’s velocity is determined by three factors: its current position (X i ), its best obtained experience (pBest i ), and the best obtained group experience (gBest). During the process of the iteration, their velocity and positions are updated by the following formula:
where P i stands for the inertia weight, P c stands for the cognition weight, P s stands for the social weight, and \({r_{1}^{d}}\) and \({r_{2}^{d}}\) stand for the two random variables which are uniformly distributed in [0, 1]. In such an iterative way, the optional solution may be finally found.
It seems that we can leverage PSO to solve the VNE problem. However, for the multi-objective optimization, there still exist the following technical challenges.
1. Basic PSO only deals with the problems in continuous space. However, the VN embedding problem is discretized.
2. Basic PSO only deals with single objective optimization problem. However, this thesis can solve the multi-objective VNE problems, i.e., minimizing the resource cost and the energy consumption at the same time.
3. Basic PSO is easy to be trapped into local optima, which significantly affects the performance of our algorithm.
In the following three subsections, we will address these challenges one by one.
4.2 Discrete PSO for VNE problems
The basic PSO cannot be directly applicable to the VNE problems, since the space of VNE problem is discrete. Through analyzing the characteristics of our problem, we have put forward a discrete approach for the node mapping stage in [11, 14]. The main idea of this approach is as follows.
Node mapping : We marked the virtual nodes and substrate nodes; and then, we take the position of a particle denoted by \(X_{i}=({x_{i}^{1}},{x_{i}^{2}},\ldots,{x_{i}^{D}})\) as the solution of node mapping. The ith position of X i can be assumed as the solution of the virtual node v i mapping. That is, in this node mapping solution, the substrate node marked \({x_{i}^{1}}\) is the mapping result of the first virtual node, the substrate node marked \({x_{i}^{2}}\) is the mapping result of the second virtual node, and the substrate node marked \({x_{i}^{D}}\) is the mapping result of the Dth virtual node.
Link mapping: We can also perform the link mapping in [11, 14] to compute C(G v) and E(G v). Then we take advantage of the fitness function which denoted by C(G v) and E(G v) for evaluating the quality of a particle. We also redefine the velocity and three operations for discrete PSO, including subtraction (⊖), addition (⊕), and multiplication (⊗). Please see details in [11, 14].
Iteration process: After that, we renew the particle’s velocity and its position with the help of the following equations.
where P i stands for the inertia weight, P c stands for the cognition weight, and P s stands for the social weight. Generally, P i, P c, and P s meet the following constraints: 0<P i≤P c≤P s<1 and P i+P c+P s=1.
4.3 Aggregation strategy for fitness function
Basic PSO only deals with single objective optimization problem. The main reason lies in that, in basic PSO, the fitness function f, which is used to evaluate the quality of a particle, is usually a simple uni-objective function. To solve the multi-objective optimization problem, the most common approach is aggregation. In this approach, the core idea is that all the objectives are summed to a combination. The benefit of the aggregation is that the multi-objective optimization problem can be easily transformed into uni-objective optimization problem, which helps reduce the complexity of this problem. However, this approach cannot be directly applied in our context, since C(G v) and E(G v) denotes different performance metrics and they cannot be summed directly together. Towards this end, we first normalize these two metrics as follows.
Based on Eqs. 9 and 10, we then define our goal as follows:
Minimize f(G v)=α C(G v)n+(1−α)E(G v)n.
Here, α∈[0,1]. Note that, if this solution is infeasible, C(G v)n, E(G v)n and f(G v) will be set to +∞ directly.
4.4 Niche PSO
In this subsection, we will introduce how to use niche PSO into our virtual network embedding problem. Firstly, we will discuss niche technology. As well as we know, basic PSO is suffering from local optimum. To avoid this problem to some extent, Brits et al. proposed niche PSO [19]. Generally speaking, niche PSO divides the whole searching space into several small subspaces. In each subspace, we use basic PSO algorithm concurrently and independently. Besides, the niche includes absorption and merge strategy. In virtual network embedding problems, some definitions need to be discussed firstly.
The center of a niche is the best solution within that niche.
The radius R i of a niche I is defined as:
where X ib is the best solution in ith niche, and X is is another common solution where b≠s. ||X ib −X is || denotes the Euclidean distance between the two solutions which should be calculated as \(\sqrt {\sum \limits _{k = 1}^{n} {{{({X_{i{b_{k}}}} - {X_{i{s_{k}}}})}^{2}}} }\). Here, \(X_{ib_{k}}\) is the kth dimension of X ib . The same rule holds for \(X_{is_{k}}\).
Absorption of a particle into a niche is performed when:
where X ib is the best solution in niche i, X js is another solution which comes from niche j, and R i is the radius of niche i, which means when a particle move into the space of another niche, it will belong to the new niche.
Merging niche is performed when the following condition is satisfied:
where X ib and X jb are the best solutions of niche i and j, respectively, and ||X ib −X jb || is the Euclidean distance between the two solutions. Here, R i and R j are radius of niche i and j, which means when two niche get close enough, they will become one niche.
4.5 Description of niche PSO
In the niche PSO algorithm (Algorithm 1), the inputs are the SN, G s and a VN request G v , and the output is the corresponding revenue- and energy-aware VN embedding solution. We first initialize M particles as main particles. Then, we use basic PSO to train main particles. We hope to construct initial niches in this step. main particles, whose degree of change of fitness is smaller than S will be regarded as the center of a niche. And the radius is the distance between the center and another closest solution. Then in each niche, we use basic PSO concurrently and independently with on iteration to train each particle. We update the fitness and radius of each niche and allow a niche to absorb particles into and different niches merge together. If the end criteria is met, output the VN embedding solution and stop. The details of this algorithm are presented in Algorithm 1 and Fig. 2. The Algorithm 2 gives the details of the basic PSO algorithm.
5 Performance evaluation
In this section, we compare our proposed algorithm known as MO-NPSO to the prior algorithms. In Subsection 5.1, we describe our simulation settings and present our evaluation results in Subsection 5.2.
5.1 Evaluation settings
Network topology: Similar to most of previous studies [1, 10–13, 15], we use the GT-ITM tool to generate the topologies of substrate network and virtual network. Similar to [12, 13], the SN topology contains 50 nodes and we initialize each of them to inactive state. For the capacity settings, the CPU capacity is uniformly distributed between 50 and 100, and the bandwidth is also uniformly distributed between 50 and 100. Between each pair of the substrate nodes, it have a probability of 0.5 to connect each other. The number of nodes in a VNR has the uniform distribution of U[2,10]. The average probability of link connectivity is also set to 0.5. We follow the literature [12], and each of virtual node’s CPU capacity requirement obeys to the uniform distribution of U[0,20], and each of virtual node’s bandwidth capacity requirement obeys the uniform distribution of U[0,50]. The process of VNR’s arrival can be simulated as a Poisson process, and its average arrival rate is set to 4 VNRs per 100 time units, and its residence time obeys to the exponential distribution with its average value to be 500 time units. To map a sequence of 2000 VN requests, our simulation may last for about 50,000 time units.
Parameter settings: The values of P b and P l are assigned to 165 and 1.5 W per CPU unit, respectively, following the previous work [20, 21]. The initial value of α is set to 0.5. Following the literature [11], the value of M is set to 5, and the threshold of maximum count of iteration is set to 30. According to our experiences, the initial values of P i, P c, and P s are set to 0.1, 0.2, and 0.7, respectively.
Performance metrics: We adopt the long-term average revenue and long-average energy cost as our main performance metrics. We also calculate the resource cost of SN and the quantity of active substrate nodes, aim to explain the reason of revenue and energy cost. In addition, the running time is also another important metric in the online VN embedding.
Comparison: We evaluate three algorithms as shown in Table 1. We compare our algorithm to two prior algorithms, D-ViNE-LP and EA-PSO. Note that we assume that our proposed algorithm does not support path splitting; hence, we did not compare the algorithm of MO-NPSO which supports the path splitting [12]. We also want to compare our solutions to the optimal one achieved by exact algorithm (e.g., GLPK [22]). Nevertheless, our experimental results have proved that GLPK will take several hours to calculate the global optimal solution when a VNR contains a few of nodes. It is not practical, and thus, we also exclude this comparison. The whole of our simulation experiments are conducted on the server, and its configuration is dual-core CPU with Intel 3 GHz, the memory and disk space are 2 GB and 160 GB, respectively, and the operation system is Linux 2.6.
5.2 Experimental results
We summarize our experimental results in terms of revenue comparison, energy comparison, and running time comparison.
Revenue comparison: The results of average revenue comparison are shown is Fig. 3. We can observe that from the point views of long-term average revenue, our algorithm (MO-NPSO) is much better than other algorithms (The Algorithm of D-ViNE-SP and EA-PSO). From the results, we can see that the average revenues of EA-PSO and D-ViNE-SP are 4000 and 3592, respectively; the average revenue of our algorithm known as MO-NPSO is 4670. That means that our algorithm can obtain up to 30 % more revenue than the algorithm of D-ViNE-SP and can obtain up to 17 % more revenue than the algorithm of EA-PSO. The reason lies in that: (i) the technique of VN consolidation can improve the efficiency of substrate resources utilization, and can increase the number of VNRs. (ii) In the evolutionary process of PSO, MO-NPSO can achieve a better and better embedding solution with the help of other particles’ experiences. (iii) The niche technique effectively avoids the local optima of PSO. MO-NPSO can save huge amounts of resources for the SN, accommodate more VNRs, and thus the revenues of InP will naturally increase. Comparatively speaking, the techniques of linear programming relaxation and rounding which D-ViNE-SP adopted are likely to some impractical VNE solutions, the revenues of InP will naturally decrease.
Demonstrated by Fig. 4, MO-NPSO achieves 33 % higher R/C ratio than D-ViNE-SP. Consequently, MO-NPSO generates much higher long-term average revenues than D-ViNE-SP.
Energy comparison: We report the energy comparison result in Fig. 5. We can observe that while generating much more revenues, the algorithm MO-NPSO still conserves up to 17 % energy consumption than D-ViNE-SP, which ignores the energy issue and 5 % than EA-PSO, by avoiding powering up inactive substrate nodes. From Fig. 6, we can also note that MO-NPSO uses less number of substrate nodes than D-ViNE-SP. This helps demonstrate why MO-NPSO achieves more energy-efficient VN embedding solution.
Running time comparison: The average running time of compared algorithms for mapping a VNR is shown in Table 2. From this table, we see that, the time that D-ViNE-SP algorithm consumes is more than EA-PSO algorithm and MO-NPSO algorithm due to its solving linear programming [12]. The running time of MO-NPSO algorithm is a little more than EA-PSO algorithm, while it is worth for the revenue gain and energy saving.
6 Conclusions
Network virtualization is a promising technique with the purpose of overcoming the ossification of the Internet by means of supporting multiple VNs to cohabit on a shared substrate infrastructure. In the environment of network virtualization, VNE issue is proposed as one of the most important issues. In this paper, we put forward MO-NPSO algorithm to solve the multi-objective VNE problem by means of trading off the revenue and the energy cost. To be specific, we design an enhanced revenue and energy-aware VNE algorithm termed as MO-NPSO, by leveraging niche particle swarm optimization. Through extensive simulations, we prove the efficiency of our proposed algorithm.
In the future, we plan to focus on how to use path division to optimize the revenue and energy cost, and optimize energy cost while considering a variety of node types.
References
M Yu, Y Yi, J Rexford, M Chiang, Rethinking virtual network embedding: substrate support for path splitting and migration. Acm Sigcomm Comput. Commun. Rev. 38(2), 17–29 (2008).
NMMK Chowdhury, MR Rahman, R Boutaba, in INFOCOM. Virtual network embedding with coordinated node and link mapping (IEEERio de Janeiro, 2009), pp. 783–791.
I Houidi, W Louati, D Zeghlache, in IEEE International Conference on Communications. A distributed virtual network mapping algorithm (IEEEBeijing, 2008), pp. 5634–5640.
J Lischka, H Karl, in ACM Workshop on Virtualized Infrastructure Systems and Architectures. A virtual network mapping algorithm based on subgraph isomorphism detection (ACMNew York, NY, USA, 2009), pp. 81–88.
Y Zhu, M Ammar, in Infocom IEEE International Conference on Computer Communications. Algorithms for Assigning Substrate Network Resources to Virtual Network Components (IEEEBarcelona, Spain, 2006), pp. 1–12.
J Lu, J Turner, Efficient Mapping of Virtual Networks onto a Shared Substrate. Washington University in St Louis. 35: (2006).
J Fan, M Ammar, Dynamic topology configuration in service overlay networks: a study of reconfiguration policies. INFOCOM. 2(9), 1–12 (2006).
C Fang, FR Yu, T Huang, J Liu, Y Liu, A survey of green information-centric networking: research issues and challenges. Commun. Surveys Tuts. 17(3), 1455–1472 (2015).
C Fang, FR Yu, T Huang, J Liu, Y Liu, A survey of energy-efficient caching in information-centric networking. IEEE Commun. Mag. 52(11), 122–129 (2014).
X Cheng, S Su, Z Zhang, H Wang, F Yang, Y Luo, J Wang, Virtual network embedding through topology-aware node ranking. ACM SIGCOMM Comput. Commun. Rev. 41(2), 39–47 (2011).
X Cheng, S Su, Z Zhang, K Shuang, F Yang, Y Luo, J Wang, Virtual network embedding through topology awareness and optimization. Comput. Netw. 56(6), 1797–1813 (2012).
NMMK Chowdhury, MR Rahman, R Boutaba, ViNEYard: Virtual network embedding algorithms with coordinated node and link mapping. IEEE/ACM Trans. Netw. 20(1), 206–219 (2012).
S Su, Z Zhang, X Cheng, Y Wang, Y Luo, J Wang, in Computer Communications Workshops (INFOCOM WKSHPS), 2012 IEEE Conference on. Energy-aware virtual network embedding through consolidation (IEEEOrlando, FL, 2012), pp. 127–132.
S Su, Z Zhang, AX Liu, X Cheng, Y Wang, X Zhao, Energy-aware virtual network embedding. IEEE Trans. Netw. 22(5), 1607–1620 (2014).
Z Zhang, X Cheng, S Su, Y Wang, K Shuang, Y Luo, A unified enhanced particle swarm optimization-based virtual network embedding algorithm. Int. J. Commun. Syst. 26(8), 1054–1073 (2013).
JF Botero, X Hesselbach, M Duelli, D Schlosser, A Fischer, H de Meer, Energy efficient virtual network embedding. IEEE Commun. Lett. 16(5), 756–759 (2012).
P Bajpai, SN Singh, Fuzzy adaptive particle swarm optimization for bidding strategy in uniform price spot market. Power Syst. IEEE Trans. 22(4), 2152–2160 (2007).
J Kennedy, RC Eberhart, et al, in Proceedings of IEEE international conference on neural networks, volume 4. Particle swarm optimization (PerthAustralia, 1995), pp. 1942–1948.
R Brits, AP Engelbrecht, F Van den Bergh, in Proceedings of the 4th Asia-Pacific conference on simulated evolution and learning, volume 2. A niching particle swarm optimizer (SingaporeOrchid Country Club, 2002), pp. 692–696.
LA Barroso, U Hölzle, The datacenter as a computer: an introduction to the design of warehouse-scale machines. Synth. Lectures Comput. Arch. 4(1), 1–108 (2009).
G Lu, C Guo, Y Li, Z Zhou, T Yuan, H Wu, Y Xiong, R Gao, Y Zhang, in Proceedings of the 8th USENIX conference on Networked systems design and implementation. Serverswitch: A programmable and high performance platform for data center networks (USENIX AssociationCA, USA, 2011).
GNU Linear Programming Kit, http://www.gnu.org/software/glpk/.
Acknowledgements
This work was supported by the Shandong Provincial Natural Science Foundation, China (Grant No. ZR2014FQ018), the National Natural Science Foundation of China (Grant No. 61471056), China Jiangsu Future Internet Research Fund (Grant No. BY2013095-3-1), and BUPT Youth Research and Innovation Plan (Grant No. 2014RC0103).
Competing interests
The authors declare that they have no competing interests.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License(http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Cite this article
Zhang, P., Yao, H., Fang, C. et al. Multi-objective enhanced particle swarm optimization in virtual network embedding. J Wireless Com Network 2016, 167 (2016). https://doi.org/10.1186/s13638-016-0669-2
Received:
Accepted:
Published:
DOI: https://doi.org/10.1186/s13638-016-0669-2