Research Article  Open Access
Liang Shen, Hu Shao, Long Zhang, Jian Zhao, "The Global Optimal Algorithm of Reliable Path Finding Problem Based on Backtracking Method", Mathematical Problems in Engineering, vol. 2017, Article ID 4586471, 10 pages, 2017. https://doi.org/10.1155/2017/4586471
The Global Optimal Algorithm of Reliable Path Finding Problem Based on Backtracking Method
Abstract
There is a growing interest in finding a global optimal path in transportation networks particularly when the network suffers from unexpected disturbance. This paper studies the problem of finding a global optimal path to guarantee a given probability of arriving on time in a network with uncertainty, in which the travel time is stochastic instead of deterministic. Traditional path finding methods based on least expected travel time cannot capture the network user’s risktaking behaviors in path finding. To overcome such limitation, the reliable path finding algorithms have been proposed but the convergence of global optimum is seldom addressed in the literature. This paper integrates the shortest path algorithm into Backtracking method to propose a new path finding algorithm under uncertainty. The global optimum of the proposed method can be guaranteed. Numerical examples are conducted to demonstrate the correctness and efficiency of the proposed algorithm.
1. Introduction
Finding a global optimal path in networks is a practical problem among communication and transportation. It has attracted much attention from researchers in numerous fields owing to its broad applications. The traditional path finding algorithms usually used the shortest average travel time as selection criteria. But in real networks, traffic condition is affected by many uncertain factors and the travel time is stochastic. Under such circumstances, the network users may face the risk of being late. For example, when scheduling significant issues (e.g., taking a flight), a network user needs to budget an extra travel time to guarantee a higher reliability of arriving on time. Then, it is very important for researchers to take travel time reliability into consideration for path finding. Thus, the travel time reliabilitybased path finding problem has attracted much attention by some recently proposed algorithms. However, few of them can guarantee the global optimum of the solution. In view of this, the problem of finding a global optimal path based on time reliability is studied in this paper.
2. Literature Review
The problem of finding optimal path in a transportation network has been investigated for a long time in the field of algorithm design and operation research. Most of these path finding algorithms were usually investigated under an ideal traffic condition; that is, the travel times are deterministic. For example, Andreatta and Romeo [1] considered Stochastic Shortest Path (SSP) problems in probabilistic networks. Polychronopoulos and Tsitsiklis [2] considered shortest path problems defined on graphs with random arc costs. And it assumed that information on arc cost values is accumulated as the graph is being traversed. MillerHooks and Mahmassani [3] addressed the problem of determining least expected time paths in stochastic, timevarying networks. Gao and Chabini [4] studied optimal routing policy problems in stochastic timedependent networks, where link travel times are modeled as random variables with timedependent distributions. Minh and Pumwa [5] addressed the problem of finding feasible path planning algorithms for nonholonomic vehicles. Most of all these existing path finding algorithms have been investigated under various conditions, but the reliability of ontime arrival or the risk of being late in path finding problems has not received much attention.
The unreliability (or uncertainty) issue has been considered in some recently developed algorithms (Andreatta and Romeo [1], Polychronopoulos and Tsitsiklis [2], Fu and Rilett [6], and Zhang et al. [7]). When scheduling important issues (e.g., attending a conference), a network user considers a shorter travel time, as well as a higher reliability of ontime arrival. Based on the above discussion, the definition of travel time reliability is defined as the probability that a network user can arrive at the destination within a given travel time threshold. To account for this issue, Frank [8] developed an efficient method of hypothesis testing to solve the problem of finding shortest path probability distributions in graphs. Shao et al. [9] proposed a heuristic algorithm to search for the highest reliability path. Chen and Ji [10] developed a simulationbased genetic algorithm procedure to solve these path finding models under uncertainties. Ying [11] presented a reliable routing algorithm with real time and historical information. Nie and Wu [12] studied the problem of finding a prior shortest path to guarantee a given likelihood of arriving on time in a stochastic network. Chen et al. [13] proposed an efficient algorithm for finding a riskaverse path for users in autonomous vehicle navigation systems. By making use of information computed at the start of the trip, the authors presented a responsive version of the constrained search, which reduced the ondemand response time. Khani and Boyles [14] studied the reliable path problem in the form of minimizing the sum of mean and standard deviation of path travel time. Chen et al. [15] investigated the problem of finding the reliable shortest paths (KRSP) in stochastic networks under travel time uncertainty. In such study, a deviation path algorithm was proposed to exactly solve the KRSP problem in largescale networks. However, all these studies cannot guarantee the global optimum of the solution for path finding.
The main difficulty of finding the optimum of the reliable path is due to the nonadditive property of the travel time reliability. The path travel time reliability cannot be expressed as the sum of some terms corresponding to the links. Thus, the reliable path finding problem has been regarded as one of the nonadditive path cost problems. There is no simple way of converting the nonadditive route cost to equivalent link costs (Chen et al. [16]). Therefore, to search the reliable path needs to enumerate all the alternative paths between each OD pair. This is of great difficulty for largescale transportation networks. In this paper, the shortest finding algorithm is adopted so as to find the global optimum of the reliable path.
Some methods have been proposed to solve the shortest finding problem during the past two decades. Eppstein [17] gave algorithms for finding the shortest paths connecting a pair of vertices in a digraph, and cycles of repeated vertices are allowed. Hershberger et al. [18] described a new algorithm to enumerate the shortest simple (loopless) paths in a directed graph and reported on its implementation. It was based on a replacement paths algorithm. Carlyle and Wood [19] proposed a new algorithm for solving the problem of enumerating all nearshortest simple (loopless) paths in a graph with nonnegative edge lengths. Liu and Ramakrishnan [20] presented a new algorithm, Prune, to list the first MultiConstrainedShortest Path (KMCSP) between a given pair of nodes in a digraph. Although there exist a lot of shortest algorithms, few of them have been used for solving the reliabilitybased path finding problem.
In this paper, the shortest algorithm is integrated into the Backtracking algorithm for proposing a new reliabilitybased path finding algorithm. The Backtracking algorithm is widely used for finding solutions in some problem with high computational cost. It can find the optimum of the concerned problem. The efficiency of the Backtracking algorithm is based on the pruning function. An efficient pruning function is capable of saving the computational time for the implementation of Backtracking algorithm. In this paper, the results of the shortest algorithm are used as the threshold for the pruning function to improve the computational efficiency of the Backtracking algorithm. The main contributions of the proposed algorithm are given as follows.
() The new reliabilitybased path finding algorithm under uncertainty is presented based on the Backtracking algorithm. In this new algorithm, the global optimum solution of the proposed problems can be guaranteed.
() An efficient pruning function is capable of saving the computational time. Moreover, the shortest path finding algorithm is employed to further reduce the computational time of the proposed algorithm.
In the next section, the definition of reliable path will be introduced first, and then the detailed steps of the algorithm are presented. In Section 4, numerical examples are carried out to demonstrate the applications of the proposed method. Finally, Section 5 concludes the paper with possible directions for future research.
3. Global Optimal Path Finding Algorithm under Uncertainty
The optimal path is defined to find the path with minimum travel time budget (or effective travel time) in this paper (Chen et al. [21–25]). As aforementioned, it is difficult to find the path with minimum effective travel time unless enumerating all the paths. In order to avoid path enumeration while finding the reliable path, Wang et al. [26] proposed a heuristic solution algorithm using the shortest paths algorithm. However, the proposed algorithm in Wang et al. [26] cannot find out the global optimal solution. Thus, the Backtracking method is adopted in order to find the reliabilitybased global optimal path in this section.
To facilitate the presentation of the essential ideas without loss of generality, the following basic assumptions are made in this paper.
(A1) Due to network uncertainties, the travel time on each link is assumed to follow the normal distribution. The travel time on path between each OD pair is the summation of the link travel times on that path. For simplicity, it is assumed that the path travel time also follows the Normal distribution (Chang et al. [27]).
(A2) The link travel times are nonnegative and all link travel times are statistically independent.
(A3) Following the assumptions in Chen et al. [21–25], the reliable path is defined as the path with minimum effective travel time in this paper.
(A4) The travel time budget (or effective travel time) is defined as the sum of mean travel time and safe margin.
3.1. The Definition of Reliable Path
According to assumption (A1), it is assumed that expected travel time (or mean travel time) on path between OD pair is expressed as follows:where is the set of all paths between OD pair and OD is the set of all OD pairs. It follows from assumption (A2) that the travel time variance on path between OD pair can be written as Following assumption (A1), the travel time on path between OD pair follows Normal distribution as follows:where and are the mean and standard deviation of the travel time on link , respectively; is the pathlink incidence parameter; and if path uses link and otherwise.
According to Lo et al. [28], the travel time budget (or effective travel time) associated with path can be written aswhere is a parameter related to the risktaking behaviors of the travelers. According to assumption (A4), in order to avoid late arrival penalty, an additional travel time budget named safety margin, that is, , is proposed to ensure a more certain ontime arrival probability by the travelers. Mathematically, the additional travel time budget can be determined by the following chance constraint model:where is a given confidence level. If the network user wants the probability of arriving at the destination to be not less than 95%, then set the probability . By a simple manipulation, can be determined as the total travel time budget in minimization (5); then the parameter can be expressed as follows:where is the cumulative distribution function (CDF) of standard normal distribution.
The definition of travel time budget ensures the ontime arrival reliability to be greater than or equal to , while minimizing the travel time budget. Then, according to assumption (A3), the reliable path can be defined as follows: among all the paths between OD pair , the reliable path between OD pair is the path with minimum travel time budget. Mathematically, path is the reliable path between OD pair if and only if Then, the candidate path set consists of the two path sets; that is,where includes all pshortest paths in terms of minimum mean travel time and includes all shortest paths in terms of minimum variance. Due to the additive property of the mean travel time and the variance, the conventional shortest methods can be utilized to generate and without generating all the paths between OD pair . It is known that if p is large enough, then covers all the paths between OD pair . Then, the reliable path can be found by calculating the travel time budgets of all the paths in set . Therefore, the reliable path can be obtained in set and it can be expressed as follows:
3.2. The Algorithm Description
Backtracking method adapted herein is a widely used algorithm for integer programming. If an appropriate/effective pruning function is defined in Backtracking method, the algorithm may quickly converge to the global optimum. The pruning function is adopted to avoid searching the feasible solutions which are not optimal solutions so as to save the computational time. The advantage of this algorithm is that it can guarantee finding out the global optimal solution. The proposed heuristic algorithm is shown as follows.
Firstly, we need to define two kinds of data structures: Stack and List. The Stack has the property of LIFO (Last in First out) and it is used to store the nodes which have not been visited. The List is used to store the nodes which have been visited before.
Step 1. Put initial node into Stack and carry out the local optimal searching algorithm within the set using heuristic algorithm in Carlyle and Wood [19]. Then, the effective travel time of the local optimal reliable path is defined as UB (upper bound). The upper bound of the effective travel time is selected as initial pruning function. Denote the corresponding reliable path as .
Step 2. If the Stack is empty, then stop. Otherwise, go to Step 3.
Step 3. Select the first node from the Stack and move the node to the List which is connected to node .
Step 4. Denote the current path as . If node is the destination node, then calculate the effective travel time of path and denote it as ET. If , then go to Step 2. Otherwise, update and ; then go to Step 2. If node is not the destination node, then go to Step 5.
Step 5. Extend the subsequent nodes of and put all the subsequent nodes into Stack.
Step 6. Select the first node from the Stack. (i)If , then move the node from the Stack to the List and go to Step 6. Otherwise, calculate the effective travel time of the reliable path and denote it as ET.(ii)If is the destination node and , then move from the Stack to the List and go to Step 6. If , update and and then move node from the Stack to the List and go to Step 6.(iii)If is not the destination node and , then move node from the Stack to the List and go to Step 6. If , then move node from the Stack to the List and go to Step 2.
Based on the algorithm steps, the flow chart of the algorithm is shown in Figure 1.
4. Numerical Examples
Numerical examples are carried out to demonstrate the applications of the proposed algorithm using a smallsized network and a mediumsized network.
4.1. Validation of the Proposed Algorithm
A smallsized network is adopted to verify the proposed algorithm. The network used in this example is shown in Figure 2. The mean and standard deviation of link travel time are shown near each link in this figure with the format “mean/standard deviation” in minute. In this example, the confidence level is assumed to and .
The results of the proposed algorithm are given in Table 1. It can be seen that the reliable path from node 1 to node 9 is and the effective travel time is 31.41 minutes. The enumeration method is adopted to validate this solution and the corresponding results of the proposed algorithm are also shown in Table 1. It is clear that the solution of the heuristic solution algorithm is the same as the enumeration result and this demonstrates that the proposed heuristic algorithm in this paper is correct.

4.2. Comparisons with Existing ReliabilityBased Path Finding Algorithms
The network used in this example is shown in Figure 3. The mean and standard deviations of link travel time are shown in Table 2. In this example, the confidence level is assumed to % and .

For comparison purpose, a heuristic solution algorithm for travel time reliabilitybased (Wang et al. [26]) has been employed. The results of such algorithm and the proposed algorithm are shown in Table 3. It can be seen that the proposed method outperformed the algorithm of Wang et al. [26]. For example, for OD pair , the proposed method can find the global reliable path (with effective travel time of 45.3438 minutes) but the algorithm of Wang et al. [26] can only find the local reliable path (with effective travel time of 53.0493 minutes). It can be seen from this example that the proposed algorithm can find more reliable path than the algorithm of Wang et al. [26].

5. Conclusion and Future Studies
This paper proposed a global optimal algorithm for travel time reliabilitybased path finding problem using Backtracking method. The traditional path finding algorithms usually used the shortest average travel time as selection criteria. But traffic condition is realistically affected by many uncertain factors and the travel time is stochastic in reality. Under such circumstances, the travelers suffer from the risk of being late. In view of this, researchers take travel time reliability into consideration while making path choice decisions. Due to the nonadditive property of the travel time reliability, finding the reliabilitybased path needs to enumerate all the paths between the OD pair, which is very time consuming for largescale network. To address this issue, a new path finding algorithm was proposed in this paper by integrating the shortest paths algorithm into Backtracking method. This proposed method can guarantee the global optimum of the solution. Numerical studies illustrated that the proposed algorithm is capable of finding the globally reliable path and outperforming the existing algorithm.
On the basis of the solution algorithm proposed in this paper, some further extensions can be envisaged as follows:(i)Some new techniques, such as the multicriteria algorithm (Chen at al. [21]), the multicriteria labelsetting algorithm (Chen at al. [23]), and the Lagrangian substitution algorithm (Xing and Zhou [29]), could be employed in the proposed algorithm to provide a more efficient pruning function so as to further accelerate the convergence of the algorithm.(ii)How to incorporate the proposed algorithm into the reliabilitybased traffic assignment problem reveals significant investigations in further studies.(iii)Different travelers may have different attitudes toward risk of being late. Such kind of multiple risktaking behaviors could be formulated as multiclass path choice criteria. How to modify the proposed algorithm to account for multiclass path choice criteria deserves extensions.(iv)The proposed algorithm is designed for static path finding problem and as such this method is different from the algorithm of the dynamic path finding problem. How to extend such method to the dynamic reliable path finding problems (e.g., Li et al. [30]) is worthy of further investigation.(v)The proposed algorithm can be combined with some stochastic travel time estimation methods (Tam and Lam [31, 32]; Chang et al. [33]; Shao et al. [34, 35]) so as to provide a reliable route guidance system in reality.
Conflicts of Interest
The authors declare that there are no conflicts of interest of the received funding, mentioned in Acknowledgments, regarding the publication of this paper.
Acknowledgments
The work described in this paper was jointly supported by grants from National Natural Science Foundation of China (Project nos. 71671184 and 71271205) and a discipline construction project from China University of Mining and Technology (Reconstruction of the Disciplinary Echelon for Teachers in Statistics, Project no. 04170116/10250301).
References
 G. Andreatta and L. Romeo, “Stochastic shortest paths with recourse,” Networks. An International Journal, vol. 18, no. 3, pp. 193–204, 1988. View at: Publisher Site  Google Scholar  MathSciNet
 G. H. Polychronopoulos and J. N. Tsitsiklis, “Stochastic shortest path problems with recourse,” Networks, vol. 27, no. 2, pp. 133–143, 1996. View at: Publisher Site  Google Scholar
 E. D. MillerHooks and H. S. Mahmassani, “Least expected time paths in stochastic, timevarying transportation networks,” Transportation Science, vol. 34, no. 2, pp. 198–215, 2000. View at: Publisher Site  Google Scholar
 S. Gao and I. Chabini, “Optimal routing policy problems in stochastic timedependent networks,” Transportation Research Part B: Methodological, vol. 40, no. 2, pp. 93–122, 2006. View at: Publisher Site  Google Scholar
 V. T. Minh and J. Pumwa, “Feasible path planning for autonomous vehicles,” Mathematical Problems in Engineering, vol. 2014, Article ID 317494, 2014. View at: Publisher Site  Google Scholar
 L. Fu and L. R. Rilett, “Expected shortest paths in dynamic and stochastic traffic networks,” Transportation Research Part B: Methodological, vol. 32, no. 7, pp. 499–516, 1998. View at: Publisher Site  Google Scholar
 X. Zhang, H. Li, J. Peng, and W. Liu, “A Cooperative QLearning Path Planning Algorithm for OriginDestination Pairs in Urban Road Networks,” Mathematical Problems in Engineering, vol. 2015, Article ID 146070, 2015. View at: Publisher Site  Google Scholar
 H. Frank, “Shortest paths in probabilistic graphs,” Operations Research, vol. 17, pp. 583–599, 1969. View at: Publisher Site  Google Scholar  MathSciNet
 H. Shao, W. H. K. Lam, and K. S. Chan, “The problem of searching the reliable path for transportation networks with uncertainty,” in Proceedings of the 9th Conference of Hong Kong Society for Transportation Studies, pp. 226–234, China, 2004. View at: Google Scholar
 A. Chen and Z. Ji, “Path finding under uncertainty,” Journal of Advanced Transportation, vol. 39, no. 1, pp. 19–37, 2005. View at: Publisher Site  Google Scholar
 J. Q. Ying, “A reliable routing algorithm with real time and historical information,” Journal of Transportation Systems Engineering and Information Technology, vol. 5, pp. 113–119, 2005. View at: Google Scholar
 Y. Nie and X. Wu, “Shortest path problem considering ontime arrival probability,” Transportation Research Part B: Methodological, vol. 43, no. 6, pp. 597–613, 2009. View at: Publisher Site  Google Scholar
 Y. Chen, M. G. H. Bell, and K. Bogenberger, “Riskaverse autonomous route guidance by a constrained A* search,” Journal of Intelligent Transportation Systems: Technology, Planning, and Operations, vol. 14, no. 3, pp. 188–196, 2010. View at: Publisher Site  Google Scholar
 A. Khani and S. D. Boyles, “An exact algorithm for the mean–standard deviation shortest path problem,” Transportation Research Part B: Methodological, vol. 81, part 1, pp. 252–266, 2015. View at: Publisher Site  Google Scholar
 B. Y. Chen, Q. Li, and W. H. K. Lam, “Finding the k reliable shortest paths under travel time uncertainty,” Transportation Research Part B: Methodological, vol. 94, pp. 189–203, 2016. View at: Publisher Site  Google Scholar
 A. Chen, Z. Ji, and W. Recker, “Travel time reliability with risksensitive travelers,” Transportation Research Record, vol. 1783, pp. 27–33, 2002. View at: Google Scholar
 D. Eppstein, “Finding the k shortest paths,” SIAM Journal on Computing, vol. 28, no. 2, pp. 652–673, 1999. View at: Publisher Site  Google Scholar  MathSciNet
 J. Hershberger, M. Maxel, and S. Suri, “Finding the k shortest simple paths: a new algorithm and its implementation,” ACM Transactions on Algorithms (TALG), vol. 3, no. 4, Article ID 1290682, Art. 45, 19 pages, 2007. View at: Publisher Site  Google Scholar  MathSciNet
 W. M. Carlyle and R. K. Wood, “Nearshortest and Kshortest simple paths,” Networks. An International Journal, vol. 46, no. 2, pp. 98–109, 2005. View at: Publisher Site  Google Scholar  MathSciNet
 G. Liu and K. G. Ramakrishnan, “ Prune: an algorithm for finding K shortest paths subject to multiple constraints,” in Proceeding of the 20th Annual Joint Conference IEEE Computer Society, vol. 2, pp. 743–749, Anchorage, Alaska, USA, 2001. View at: Publisher Site  Google Scholar
 B. Y. Chen, W. H. K. Lam, A. Sumalee, and Z.L. Li, “Reliable shortest path finding in stochastic networks with spatial correlated link travel times,” International Journal of Geographical Information Science, vol. 26, no. 2, pp. 365–386, 2012. View at: Publisher Site  Google Scholar
 B. Y. Chen, W. H. K. Lam, Q. Li, A. Sumalee, and K. Yan, “Shortest path finding problem in stochastic timedependent road networks with stochastic firstinfirstout property,” IEEE Transactions on Intelligent Transportation Systems, vol. 14, no. 4, pp. 1907–1917, 2013. View at: Publisher Site  Google Scholar
 B. Y. Chen, W. H. Lam, A. Sumalee, Q. Li, H. Shao, and Z. Fang, “Finding reliable shortest paths in road networks under uncertainty,” Networks and Spatial Economics, vol. 13, no. 2, pp. 123–148, 2013. View at: Publisher Site  Google Scholar  MathSciNet
 B. Y. Chen, W. H. K. Lam, A. Sumalee, Q. Li, and M. L. Tam, “Reliable shortest path problems in stochastic timedependent networks,” Journal of Intelligent Transportation Systems: Technology, Planning, and Operations, vol. 18, no. 2, pp. 177–189, 2014. View at: Publisher Site  Google Scholar
 B. Y. Chen, C. Shi, J. Zhang, W. H. K. Lam, Q. Li, and S. Xiang, “Most reliable pathfinding algorithm for maximizing ontime arrival probability,” Transportmetrica B, vol. 5, no. 3, pp. 253–269, 2017. View at: Publisher Site  Google Scholar
 S. Wang, H. Shao, L. Tao, and Q. Ni, “Travel time reliabilitybased optimal path finding,” in Proceedings of the 3rd International Joint Conference on Computational Sciences and Optimization, CSO 2010: Theoretical Development and Engineering Practice, pp. 531–534, chn, May 2010. View at: Publisher Site  Google Scholar
 T.S. Chang, L. K. Nozick, and M. A. Turnquist, “Multiobjective path finding in stochastic dynamic networks, with application to routing hazardous materials shipments,” Transportation Science, vol. 39, no. 3, pp. 383–399, 2005. View at: Publisher Site  Google Scholar
 H. K. Lo, X. W. Luo, and B. W. Y. Siu, “Degradable transport network: travel time budget of travelers with heterogeneous risk aversion,” Transportation Research Part B: Methodological, vol. 40, no. 9, pp. 792–806, 2006. View at: Publisher Site  Google Scholar
 T. Xing and X. Zhou, “Reformulation and solution algorithms for absolute and percentile robust shortest path problems,” IEEE Transactions on Intelligent Transportation Systems, vol. 14, no. 2, pp. 943–954, 2013. View at: Publisher Site  Google Scholar
 F. Li, Z. Gao, K. Li, and D. Z. W. Wang, “Train routing model and algorithm combined with train scheduling,” Journal of Transportation Engineering, vol. 139, no. 1, pp. 81–91, 2013. View at: Publisher Site  Google Scholar
 M. L. Tam and W. H. K. Lam, “Using automatic vehicle identification data for travel time estimation in Hong Kong,” Transportmetrica, vol. 4, no. 3, pp. 179–194, 2008. View at: Publisher Site  Google Scholar
 M. L. Tam and W. H. K. Lam, “Application of automatic vehicle identification technology for realtime journey time estimation,” Information Fusion, vol. 12, no. 1, pp. 11–19, 2011. View at: Publisher Site  Google Scholar
 X. Chang, B. Y. Chen, Q. Li, X. Cui, L. Tang, and C. Liu, “Estimating realtime traffic carbon dioxide emissions based on intelligent transportation system technologies,” IEEE Transactions on Intelligent Transportation Systems, vol. 14, no. 1, pp. 469–479, 2013. View at: Publisher Site  Google Scholar
 H. Shao, W. H. K. Lam, A. Sumalee, and A. Chen, “Journey time estimator for assessment of road network performance under demand uncertainty,” Transportation Research Part C: Emerging Technologies, vol. 35, pp. 244–262, 2013. View at: Publisher Site  Google Scholar
 H. Shao, W. H. Lam, A. Sumalee, and A. Chen, “Networkwide online travel time estimation with inconsistent data from multiple sensor systems under network uncertainty,” Transportmetrica A: Transport Science, pp. 1–20, 2017. View at: Publisher Site  Google Scholar
Copyright
Copyright © 2017 Liang Shen et al. 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.