 Research
 Open access
 Published:
Inner approximation algorithm for generalized linear multiplicative programming problems
Journal of Inequalities and Applications volumeÂ 2018, ArticleÂ number:Â 354 (2018)
Abstract
An efficient inner approximation algorithm is presented for solving the generalized linear multiplicative programming problem with generalized linear multiplicative constraints. The problem is firstly converted into an equivalent generalized geometric programming problem, then some magnifyingshrinking skills and approximation strategies are used to convert the equivalent generalized geometric programming problem into a series of posynomial geometric programming problems that can be solved globally. Finally, we prove the convergence property and some practical application examples in optimal design domain, and arithmetic examples taken from recent literatures and GLOBALLib are carried out to validate the performance of the proposed algorithm.
1 Introduction
In this paper, we focus on the following generalized linear multiplicative programming problem:
where \(c_{ij}\), \(\gamma _{ijt}\), \(i=0,1,\ldots,M\), \(j=1,2,\ldots,p_{i}\), \(t=1,2,\ldots,T_{ij}\) are all arbitrary real numbers; \(p_{i}\), \(T_{ij}\), \(i=0,1,\ldots,M\), \(j=1,2,\ldots,p_{i}\) are all positive integers and \(f_{ijt}(y)\), \(i=0,1,\ldots,M\), \(j=1,2,\ldots,p_{i}\), \(t=1,2,\ldots,T_{ij}\) are all affine functions defined on \(R^{N}\) such that \(f_{ijt}(y)>0\) for all \(y\in Y^{0}\). Furthermore, we suppose that the interior of the feasible region for (GLMP) is not empty. Problem (GLMP) and its special cases are ubiquitous in optimal design applications, including power control, optimal doping profile, production planning, chemical equilibrium, heat exchanger network, digital circuit gate sizing, VLSI chip design, truss design, and so on [1,2,3,4,5,6,7,8]. And on the other hand, problem (GLMP) which corresponds to a nonlinear optimization problem with generalized linear multiplicative objective and constraint functions includes a large class of mathematical programs such as generalized geometric programming, multiplicative programming, sum of linear ratios problems, quadratic programming et al. [9,10,11,12]. Thus in this context, an algorithmic study of problem (GLMP) makes some theoretical and practical significance.
Algorithms for solving the special form of problem (GLMP) emerged endlessly. They are mainly classified as primalbased algorithms that directly solve the primal problem, dualbased algorithms that solve the dual problem, and adapted general nonlinear programming methods [13,14,15]. Recently, many works aimed at globally solving special forms of (GLMP) are presented, for example, global algorithms for signomial geometric programming problems, branch and bound algorithms for multiplicative programming with linear constraints, branch and reduction methods for quadratic programming problems, and sum of ratios problems are all in this category [16,17,18,19,20,21]. Despite these various contributions to their special forms, however, optimization algorithms for solving the general case of (GLMP) are still scarce. As far as we know, only [9] consider this general case, but only for (GLMP) with geometric constraints.
In this paper, we present an inner approximation algorithm for solving generalized linear multiplicative programming problem described as (GLMP). The (GLMP) is first converted into a generalized geometric programming problem, then the inner approximation algorithm relying on arithmeticgeometric mean inequality and magnifyingshrinking techniques is established. The algorithm works by solving a series of posynomial geometric programming problems. This strategy can be realized owing to the fact that recently developed solution methods can solve even largescale posynomial geometric programming problems extremely efficiently and reliably [22]. The convergence property is proved and some examples taken from practical applications and recent literatures are performed to verify the efficiency of the presented algorithm. The experimental results show that the presented algorithm has a better capability to solve the (GLMP).
The remainder of this paper is organized in the following way. In Sect.Â 2, the equivalent generalized geometric programming problem is established and the inner approximation algorithm for solving (GLMP) is designed by utilizing arithmeticgeometric mean inequality and condensation techniques. The convergence property and error analysis of the algorithm are discussed in Sect.Â 3. SectionÂ 4 computationally investigates the performance of the inner approximation algorithm by solving some selective test examples. Some concluding remarks are proposed in the last section.
2 Equivalent problem and algorithm development
In this section, the original problem (GLMP) is first transformed into an equivalent generalized geometric programming problem (EGGP) through variable substitution. And for convenience, problem (EGGP) will be further converted into generalized geometric programming with standard form described as formulationÂ (Q). Then our focus will be shifted to solving the equivalent problemÂ (Q). By utilizing the arithmeticgeometric mean inequality and condense techniques based on first order Taylor expansion, we can construct a posynomial geometric programming auxiliary problem (AQ) of the reformulated problem (Q) at each iterative point. Based on this, the proposed algorithm will be developed. The proposed algorithm works by solving a sequence of posynomial geometric programming problems.
2.1 Equivalent problem
To solve the problem, we will first transform the (GLMP) into an equivalent problem (EGGP), where the objective and constraint functions are all generalized polynomial functions. To explain how such a reformulation is possible, we first compute \(\underline{z}_{ijt}= \min_{y\in Y^{0}}f_{ijt}(y)\), \(\overline{z}_{ijt}=\max_{y\in Y^{0}}f_{ijt}(y)\), then introduce some auxiliary variables \(z_{ijt}\) such that \(0<\underline{z}_{ijt} \le z_{ijt} \le \overline{z}_{ijt}\) for each \(i=0,1,\ldots,M\), \(j=1,2,\ldots,p_{i}\), \(t=1,2,\ldots,T_{ij}\), and define vector z and an initial box \(Z^{0}\) as follows:
where \(s=\sum_{i=0}^{m}\sum_{j=1}^{p_{i}}T_{ij}\).
For convenience in exposition, we reintroduce some new notations as follows:
With these new notations, problem (GLMP) can be further equivalently reformulated as the following problem:
Upon the monotonicity of the function in problem (EP), it is not too hard to find that problems (GLMP) and (EP) have the same optimal solutions in the sense of the following theorem.
Theorem 1
\(y^{*}\) is an optimal solution for the (GLMP) if and only if \((y^{*} ,z^{*})\) is an optimal solution of (EP), where \(z^{*}_{ijt}=f_{ijt}(y^{*})\), \(i=0,1,\ldots,M\), \(j=1,2,\ldots,p_{i}\), \(t=1,2,\ldots,T_{ip_{j}}\).
Proof
This theorem is quite easy to verify from the constructing process of problem (EP), thus the proof is omitted here.â€ƒâ–¡
For convenience and without loss of generality, we can reformulate problem (EP) as the following generalized geometric programming problem (EGGP) by performing notation substitution.
where \(x=(y,z)\in Y^{0}\times Z^{0}=X^{0}\subseteq R^{n}\), \(n=N+s\), \(m=M+s\), all of functions \(\psi _{i}(x)\) have the generalized polynomial form, that is to say, it can be described as \(\psi _{i}(x)=\sum_{t=1}^{r_{i}}\delta _{it}\prod_{j=1}^{n} (x_{j})^{ \theta _{itj}}\), and thus we only consider how to solve problem (EGGP) from now on.
2.2 Implementable algorithm
In this part, we concentrate on how to design the inner approximation algorithm for solving the (EGGP). For this, we will perform some transformation and condensation strategies so that problem (EGGP) can be converted into a series of posynomial geometric programming problems which can be easily solved by using computer tools (such as CVX, GPLab).
To this end, we first denote all generalized polynomial functions in (EGGP) as
where
Note that the objective function can be rewritten as
where \(\eta _{0j}=\min \{0,\theta _{0tj}\mid t=1,2,\ldots,r_{0}\}\), \(j=1,2,\ldots,n\). If we denote
and
then we have
This will imply from \(\psi _{0}^{l}\) that there exists a constant \(\tau =\psi _{0}^{l}+\epsilon \) with sufficiently small value \(\epsilon >0\) such that \(\psi _{0}(x)+\tau >0\), \(\forall x \in X^{0}\). The reason for constructing the constant Ï„ is that it will force the succedaneous objective function \(\psi _{0}(x)+\tau >0\), and it is convenient for reformulating the following equivalent optimization problem:
In this representation, the objective function of problem (Q) is a positive linear function, and the constraints involve a special structure in the form of a ratio between two posynomials. Given that constraints in the form of a ratio between posynomials are not allowable in standard geometric programming [22], we attempt to approximate every posynomial denominator in constraints with monomial functions. This can be realized by utilizing the following arithmeticgeometric mean inequality:
where \(v_{i}(x)\), \(i=1,2,\ldots,l\), are monomial terms, and the parameter \(\lambda _{i}(y)\) is obtained by computing \(\lambda _{i}(y)=\frac{v _{i}(y)}{\varPhi (y)}\) so that \(\hat{\varPhi }(x)\) is a best local monomial approximation of \(\varPhi (x)\) near each fixed point y [22]. Based on this, the unallowable constraints of posynomial ratios form \(\frac{\varPsi (x)}{\varPhi (x)}\le 1\) can be approximated with \(\frac{ \varPsi (x)}{\hat{\varPhi }(x)}\le 1\). Applying this skill into all inapposite constraints of problem (Q), we can obtain the following auxiliary problem (AQ) which can be efficiently solved globally [22]:
where \(\tilde{\psi }_{0}(x,x_{0})\) equals \(\psi _{0}^{}(x)+x_{0}\) if \(\psi _{0}^{}(x)+x_{0}\) is monomial, and \(\tilde{\psi }_{0}(x,x_{0})\) is the monomial approximation of \(\psi _{0}^{}(x)+x_{0}\) if \(\psi _{0}^{}(x)+x_{0}\) is posynomial; \(\tilde{\psi }_{i}(x)\) equals \(\psi _{i}^{}(x)\) if \(\psi _{i}^{}(x)\) is monomial, and \(\tilde{\psi }_{i}(x)\) is the monomial approximation of \(\psi _{i}^{}(x)\) if \(\psi _{i}^{}(x)\) is posynomial.
Based on the discussion above, now we can summarize the proposed algorithm for solving the (GLMP) as follows:

StepÂ 1.
(Initialization) Reformulate the initial problem as the equivalent form described in problem (Q), then choose a feasible point \(x^{(0)}\) and \(x_{0}^{(0)}\) (if necessary) as the starting point, give out the solution accuracy \(\vartheta \ge 0\), and set iteration counter \(k:=0\).

StepÂ 2.
(Inner approximation) At the \(k_{th}\) iteration, replace each constraint with its inner approximation by computing the value of \(\lambda _{i}(y)\) at \((x_{0}^{(k1)},x^{(k1)})\), if necessary.

StepÂ 3.
(Posynomial condensation) Construct the auxiliary problem (AQ) and solve it to obtain \((x_{0}^{(k)},x^{(k)})\).

StepÂ 4.
(Termination) If \(\Vert x_{0}^{k}x_{0}^{k1} \Vert \le \vartheta \), then the algorithm can be terminated. Otherwise, set \(k:=k+1\) and return to StepÂ 2.
Remark 1
When performing the algorithm described above, one should choose a feasible interior point as the starting point. However, in the practical implementation, we often select an arbitrary point as the starting point when it is difficult to find a feasible interior point for some largescale (GLMP) problems. This is mainly because the tool (GGPLab) we used for solving (AQ) can quickly produce a feasible interior point of problem (Q) [22].
3 Convergence property analysis
In this section, we will briefly take into account the convergence properties of the above algorithm and evaluate the errors in objective and constraint functions produced by monomial approximation.
Theorem 2
The proposed algorithm either terminates within finite iterations with an KKT point for problem (GLMP) to be found, or the limit of any convergent sequence is a KKT point of the (GLMP).
Proof
First, according to the construction process of monomial approximation, we can easily verify that
and
Second, we can also prove that
Finally, we know the interior of the feasible region is not empty and all constraints in problem (AQ) are geometricconvex. This will suggest that the feasible region of problem (AQ) satisfies Slaterâ€™s constraint qualification condition. Thus based on (1)â€“(3) and according to TheoremÂ 1 in [23], we conclude that the sequent solutions of problem (AQ) converge to the KKT point for problem (Q), thus for problem (GLMP).â€ƒâ–¡
Remark 2
Although the above algorithm can only obtain a KKT point for problem (Q), according to the special structure of the objective function of problem (Q) and the distinctive characteristics described in [23], we find that the KKT point found by the proposed algorithm is always a global optimal solution for problemÂ (Q).
Remark 3
Suppose \((x^{*}, x_{0}^{*})\) is the final solution obtained by the presented algorithm, we can evaluate the errors in objective and constraint functions produced by monomial approximation by the following formulas:
4 Computational experiments
To test the proposed algorithm in terms of efficiency and solution quality, we performed some computational examples on a personal computer with Intel Xeon(R) CPU 2.40Â Ghz and 4Â GB memory. The code base is written in matlab 2014a and interfaces GGPLab for the standard geometric programming problems.
We consider some instances of problem (MIQQP) from some recent literature [9, 24,25,26,27] and MINLPLib [28]. Among them, ExamplesÂ 1, 3, andÂ 4 are three practical applications of (GLMP). ExamplesÂ 2, 5, 6, 7, 8, andÂ 9 are taken from recent literature for comparison analysis. ExampleÂ 10 is an example for testing the influence of the numerical experiments for different initial points. ExamplesÂ 11â€“13 are three examples from GLOBALLib [29], a collection of nonlinear programming models. The last example is a generalized linear multiplicative programming problem with randomized objective and constraint functions.
Example 1
(see [24])
This special instance of (GLMP) is first proposed to deal with the optimal design of heat exchanger networks [30]. When performing the algorithm for solving this instance, we choose \((500, 500, 4200, 500, 400, 340, 300, 600)\) as the starting point, the termination error was set to be \(\vartheta =1\times 10^{6}\). The proposed algorithm terminates after 3.74 seconds (CPU time) with solution \((579.326059, 1359.9445, 5109.977472, 182.019317, 295.600901, 217.980682, 286.418416, 395.600901)\) and optimal value 6944.248031 to be found, and the number of iterations is 21. While the method of Tsai and Lin [24] takes nearly one hour and forty minutes for solving this example, and they obtain a solution \((578.973143, 1359.572730, 5110.701048, 181.9898, 295.5719,218.0101, 286.4179, 395.5719)\) with the optimal value 7049.24682.
Example 2
(see [9])
In this example, both the objective function and the constraint function are generalized linear multiplicative functions. This example is taken from Jiao, Liu, and Zhao [9]. For solving this problem with the branch and bound algorithm, quite a lot of CPU times need to be consumed; however, we only expend less than two seconds for solving it to global optimality. In the iteration process, we select \((1.5,1.5)\) as the starting point, the termination error was also set to be \(\vartheta =1\times 10^{6}\).
Example 3
(see [25])
This example is a signomial geometric programming problem (special case of (GLMP)) which is used to optimize the design of a membrane separation process [25]. Lin and Tsai solved it with a range reduction method and obtained an optimal solution with optimal value âˆ’83.249728. For obtaining this solution, the range reduction method spend about 22 second (CPU time). Here, our algorithm terminated after 11 iterations and obtained the optimal solution \((87.614446,8.754375,1.413643,19.311410)\) with optimal value âˆ’85.68859, the algorithm implementation took about 0.942 seconds. In the algorithm implementation, we choose the initial upper bound \((100,100,100)\) as the starting point, the termination error was set to be \(\vartheta =1\times 10^{6}\).
Example 4
(see [24])
This example is a mathematical model born from optimal design of a reactor. For solving it, we select \((7,7,7,7,7,7,7,7)\) as the starting point, the termination error was set to be \(\vartheta =1\times 10^{6}\). The proposed algorithm terminates after 7.123 seconds (CPU time) with solution \((6.350802, 2.365111, 0.670723, 0.597563, 5.951950, 5.537204,1.042703,0.415594)\) and optimal value 3.908619 to be found, and the number of iterations is 44. While Tsai and Lin [24] spent nearly 56 minutes and 312 seconds for solving this example and obtained a solution \((6.473164, 2.238234, 0.664955, 0.591012, 5.930263,5.523595,1.011611,0.397171)\) with the optimal value 3.95109.
Example 5
(see [9])
Example 6
(see [9])
Example 7
(see [27])
Example 8
(see [26])
Example 9
Example 10
When solving this example, by selecting \(x^{0}=(0.1,0.4)\) and \(y^{0}=(2,2)\) as starting points and applying the algorithm presented above, we obtained two different solutions \(x_{\mathrm{opt}}=(4.5,4.5)\) and \(y_{\mathrm{opt}}=(1.175957,0.1)\) with optimal objective values 9.625 and âˆ’24.641098, respectively. However, both of these two solutions are not the global optimal solution for ExampleÂ 11. Actually, the only global optimal solution for ExampleÂ 11 is \((0.1,4.5)\) with optimal value âˆ’58.905. Thus solutions \(x_{\mathrm{opt}}=(4.5,4.5)\) and \(y_{\mathrm{opt}}=(1.175957 0.1)\) just are two local solutions. The distribution of these three solutions for ExampleÂ 11 are drawn in Figs.Â 1â€“2.
Example 11
(stqpk1)
Example 12
(ex817)
Example 13
(ex419)
Example 14
(Small random test)
where \(c^{1}\), \(c^{2}\), \(d^{1}\), \(d^{2}\), \(a^{1}\), \(a^{2}\), \(b^{1}\), \(b^{2}\) are ndimensional row vectors randomly generated in \([0,1]\), \(m_{1}\), \(m_{2}\), \(r_{1}\), \(r_{2}\), \(s_{1}\), \(s_{2}\), \(t_{1}\), \(t_{2}\) are all random real numbers between 0.001 and 1.001, \(\alpha _{1}\), \(\alpha _{2}\), \(\beta _{1}\), \(\beta _{2}\), \(\gamma _{1}\), \(\gamma _{2}\), \(\theta _{1}\), \(\theta _{2}\) are real numbers randomly generated in \([0,1]\), and we choose ndimensional vector \((0.5,0.5,\ldots,0.5)\) as the starting point in each instance. The computational results of this problem are listed in TableÂ 3.
Actually, the examples we chose in this section can be classified into four groups: ExamplesÂ 1, 3, andÂ 4 are taken from applications in optimal design; ExamplesÂ 2, 5, 6, 7,Â 9 are numerical tests selected from some recent literature; ExampleÂ 8 is computed to illustrate that the proposed algorithm can find just a local solution; and ExampleÂ 14 is an example randomly generated with a relative large scale. Computational results are demonstrated in TablesÂ 1â€“4 and Figs.Â 1â€“2. The computational results listed in the tables and figures show that our algorithm can perfectly solve problem (GLMP), and for most cases it can even attain a global optimal solution.
5 Concluding remarks
In this paper, an inner approximation algorithm is presented for solving the generalized linear multiplicative programming problem. Local convergence property is proved and some numerical examples taken from application domain and recent literature are performed to verify the efficiency of the algorithm and quality of the solutions obtained. Results of the numerical tests show that this algorithm can effectively solve most generalized linear multiplicative problems to global optimality although it just has local convergence property.
References
Seido, A.A., Nowak, B., Chu, C.: Fitted Elmore delay: a simple and accurate interconnect delay model. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 12(7), 691â€“696 (2004)
AbuoElAta, M., Fergany, H., ElWakeel, M.: Probabilistic multiitem inventory model with varying order cost under two restrictions: a geometric programming approach. Int. J. Prod. Econ. 83(3), 223â€“231 (2003)
Boche, H., Stanczak, S.: Optimal QoS tradeoff and power control in CDMA systems. In: Proceedings of the 23rd IEEE Iinfocom, pp.Â 477â€“486 (2004)
Boyd, S., Kim, S.J., Patil, D., Horowitz, M.: Digital circuit optimization via geometric programming. Oper. Res. 53(6), 899â€“932 (2005)
Chiang, M.: Balancing transport and physical layers in wireless multihop networks: jointly optimal congestion control and power control. IEEE J. Sel. Areas Commun. 23(1), 104â€“116 (2005)
Dorneich, M.C., Sahinidis, N.V.: Global optimization algorithms for chip design and compaction. Eng. Optim. 25, 131â€“154 (1995)
Ciric, A.R., Floudas, C.A.: AÂ retrofit approach for heat exchanger networks. Comput. Chem. Eng. 13(6), 703â€“715 (1989)
Greenberg, H.: Mathematical programming models for environmental quality control. Oper. Res. 43(4), 578â€“622 (1995)
Jiao, H.W., Liu, S.Y., Zhao, Y.F.: Effective algorithm for solving the generalized linear multiplicative problem with generalized polynomial constraints. Appl. Math. Model. 39, 7568â€“7582 (2015)
Zhou, X.G., Wu, K.: AÂ method of acceleration for a class of multiplicative programming problems with exponent. J.Â Comput. Appl. Math. 223, 975â€“982 (2009)
Wang, C.F., Liu, S.Y., Shen, P.P.: Global minimization of a generalized linear multiplicative programming. Appl. Math. Model. 36, 2446â€“2451 (2012)
Shen, P.P., Li, X.A.: Branchreductionbound algorithm for generalized geometric programming. J.Â Glob. Optim. 56, 1123â€“1142 (2013)
Ecker, J.G.: Geometric programming: methods, computations and applications. SIAM Rev. 22(3), 338â€“362 (1980)
Kortanek, K.O., Xu, X.J., Ye, Y.Y.: An infeasible interiorpoint algorithm for solving primal and dual geometric programs. Math. Program. 76, 155â€“181 (1996)
Passy, U.: Generalized weighted mean programming. SIAM J. Appl. Math. 20, 763â€“778 (1971)
Xu, G.X.: Global optimization of signomial geometric programming problems. Eur. J. Oper. Res. 233, 500â€“510 (2014)
Jiao, H.W., Liu, S.Y.: AÂ practicable branch and bound algorithm for sum of linear ratios problem. Eur. J. Oper. Res. 243, 723â€“730 (2015)
Shen, P.P., Wang, C.F.: Global optimization for sum of linear ratios problem with coefficients. Appl. Math. Comput. 176, 219â€“229 (2006)
Wang, Y.J., Shen, P.P., Liang, Z.A.: AÂ branchandbound algorithm to globally solve the sum of several linear ratios. Appl. Math. Comput. 168, 89â€“101 (2005)
Jiao, H.W.: AÂ branch and bound algorithm for globally solving a class of nonconvex programming problems. Nonlinear Anal. 70, 1113â€“1123 (2009)
Phuong, N.T.H., Tuy, H.: AÂ unified monotonic approach to generalized linear fractional programming. J.Â Glob. Optim. 26, 229â€“259 (2003)
Boyd, S., Kim, S.J., Vandenberghe, L., Hassibi, A.: AÂ tutorial on geometric programming. Optim. Eng. 8, 67â€“127 (2007)
Marks, B.R., Wright, G.P.: AÂ general inner approximation algorithm for nonconvex mathematical programs. Oper. Res. 26(4), 681â€“683 (1978)
Lin, M.H., Tsai, J.F.: Range reduction techniques for improving computational efficiency in global optimization of signomial geometric programming problems. Eur. J. Oper. Res. 216(1), 17â€“25 (2012)
Dembo, R.S., Avriel, M.: Optimal design of a membrane separation process using signomial programming. Math. Program. 15(1), 12â€“25 (1978)
Shen, P.P., Duan, Y.P., Ma, Y.: AÂ robust solution approach for nonconvex quadratic programs with additional multiplicative constraints. Appl. Math. Comput. 201, 514â€“526 (2008)
Shen, P.P., Zhang, K.C.: Global optimization of signomial geometric programming using linear relaxation. Appl. Math. Comput. 150(1), 99â€“114 (2004)
MINLP, http://www.minlplib.org
GLOBALLib, http://www.gamsworld.org/global/globallib.htm (2016). Vision: 334
Avriel, M., Williams, A.C.: An extension of geometric programming with applications in engineering optimization. J.Â Eng. Math. 5(3), 187â€“194 (1971)
Acknowledgements
Thanks for all the referenced authors.
Funding
This paper is supported by the Science and Technology Key Project of Education Department of Henan Province (14A110024).
Author information
Authors and Affiliations
Contributions
Both authors contributed equally to the manuscript, and they read and approved the final manuscript.
Corresponding author
Ethics declarations
Competing interests
The authors declare that there is no conflict of interest regarding the publication of this paper.
Additional information
Publisherâ€™s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
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
Zhao, Y., Yang, J. Inner approximation algorithm for generalized linear multiplicative programming problems. J Inequal Appl 2018, 354 (2018). https://doi.org/10.1186/s1366001819479
Received:
Accepted:
Published:
DOI: https://doi.org/10.1186/s1366001819479