Analysis of the selective traveling salesman problem with time-dependent profits

We consider a generalization of the selective traveling salesman problem (STSP) in which the benefit of visiting a location changes over time. This new problem, called the selective travelling salesman problem with time-dependent profits (STSP-TDP), is defined on a graph with time-dependent profits associated with the vertices, and consists of determining a circuit of maximal total profit. In the STSP-TDP the tour length must not exceed a maximum value, and its starting and ending times must both lie within a prespecified planning horizon. This problem arises in planning tourist itineraries, mailbox collection, military surveillance, and water sampling, where the traveler accumulates different profits upon visiting the locations throughout the day. We focus on analyzing several variants of the problem depending on the shape of the time-dependent profit function. If this function is not monotonic, it may be worth visiting a site more than once. We propose formulations for the single-visit case and for when multiple visits are allowed, in which case the problem reduces to an STSP, which is adapted to be solved as a longest path problem. These formulations are then solved for piecewise-linear profit functions using a general-purpose solver, and tested on several artificially created instances and on four TSPLib instances involving up to 535 vertices. A detailed analysis of the problem and the solution is performed.


Introduction
In several contexts, a traveler holds a list of potential sites of interest, but it may not be possible nor desirable to visit all of them. Some sites will be selected and then visited by means of a single tour. With each solution is associated a profit derived from visiting the sites. One example of this setting occurs in the planning of tourist trips. An interesting application cited in Vansteenwegen et al. (2011) is the Mobile Tourist Guide of Souffriau et al. (2008). Similar tourist trip problems are mentioned by Wang et al. (2008); Schilde et al. (2009) , andda Silva et al. (2018) where the profit is measured in terms of the interest associated with visiting the sites. Another example arises in the collection of letters from mailboxes. Here the benefit can be measured by the mail volume accumulated in the mailbox at each visit. Other applications are encountered in the surveillance activities of submarines or unmanned aircraft (Wang et al. 2008), and in water sampling Zhang et al. (2020). A recent application arises in the context of a parking warden distributing fines for irregularly parked cars (Bruglieri (2020)), where the profit associated with an inspection depends on the time elapsed since the previous inspection.
This problem is known as the selective traveling salesman problem (STSP) Laporte and Martello (1990), sometimes called orienteering problem (Golden et al. 1987;Vansteenwegen et al. 2011), if the profits are time-independent. However, there also exist several settings where the profits are time-dependent. For example, the pleasure associated with a tourist attraction is often related to crowdiness and, therefore, to the time of the day. In postal applications it is clear that mail accumulation is time-dependent. In military applications the profit associated with surveillance activities may vary over time. Hence, we study an extension of the STSP with time-dependent profits (STSP-TDP).
We assume that the problem is defined over a given time horizon and that the sites are to be visited by a single uncapacitated vehicle during a work shift whose length does not exceed that of the planning horizon. Waiting before starting the tour is allowed, i.e., the shift does not necessarily start at the beginning of the planning horizon. Each site has a time window and a service time, and it may be beneficial for the vehicle to wait along its route to let the profit increase at some sites, as is the case of the mail collection application. As we will describe, in some versions of the problem it may be beneficial to visit the same site more than once.
For reviews of the STSP the interested reader is referred to Feillet et al. (2005), Vansteenwegen et al. (2011), Archetti et al. (2014) and Gunawan et al. (2016). Of interest in the context of the STSP-TDP is the survey of Gavalas et al. (2014) which presents a detailed description of the tourist trip design problem. These authors observe that this problem can be viewed as a bicriteria generalization of the TSP, i.e., maximizing the collected profit and minimizing the travel cost. Yu et al. (2019b) investigate the team orienteering problem with time windows and time-dependent scores. In this work, each vertex is associated with a basic score and several recommendation factors that vary depending on the time of visit. The authors propose a mathematical formulation and a hybrid artificial bee colony algorithm to compute optimal solutions for small instances and near-optimal solutions for larger instances.

3
Analysis of the selective traveling salesman problem with… There also exists a rich literature on several variants of the STSP-TDP studied in this paper, which is summarized in Table 1 but, to the best of our knowledge, our variant is unique and we are the first to provide a formulation solved by means of an exact branch-and-cut algorithm capable of solving instances much larger than was previously achievable. In our version of the STSP-TDP, the starting time of the route is also optimized within the planning horizon and waiting at the sites is allowed in order to arrive at a site when the profit to be collected is optimal. Here we introduce, model, and solve this problem exactly. We perform tests on artificial instances and on TSPLib instances, and we derive insights based on the problem characteristics and on the computational results.
The remainder of this paper is organized as follows. In Sect. 2, we formally describe the problem and a number of its variants, and we propose corresponding mathematical programming models. An analysis of some properties of the problem depending on the shape of the profit functions is presented in Sect. 3. This is followed by computational results in Sect. 4 and by conclusions in Sect. 5.

Formal definition and mathematical models
The STSP-TDP is defined on a directed graph G = (V, A) , where V is the vertex set, 0 ∈ V is the depot and V � = {1, … , n} is the set of sites. The arc set is defined as . The problem is defined over a planning horizon of length T, and time can be discretized into a set of moments t ∈ T = {1, … , T} . Each site i has an associated profit p i (t) that depends on t. A solution is a closed circuit not exceeding L time units ( L ≤ T ), leaving the depot at time t d 0 , returning to the depot at time t a 0 ≤ T and visiting a subset of the sites, where t a 0 − t d 0 ≤ L . The goal of the problem is to find a solution of maximal total profit for the selective traveling salesman problem with time-dependent profits (STSP-TDP). We assume that there are no vehicle capacity constraints and that one of the following two time-dependent profits is considered: 1. Profit is cumulative, i.e., the profit function is monotonically increasing. The later a vertex is visited, the higher is the collected profit. It follows that if a vertex is visited several times, one can achieve the total profit by performing only the last visit. An example of this setting is letter collection in mailboxes. 2. Profit depends just on the time the vertex is visited. The profit function is not necessarily monotonically increasing. Then it may be beneficial to visit a vertex more than once. Examples include parking tickets, publicity delivery, or fund collection by humanitarian organizations.
It follows from the second profit function type that a site may be visited more than once, and in both cases imposing a waiting time between successive visits to the same site may be appropriate since the collected profit is the one observed upon arrival.

3
Analysis of the selective traveling salesman problem with…

At most one visit per site allowed
We first model the case in which at most one visit to each site is allowed. The formulation we propose requires that the profit functions be linear or piecewise linear, with time as a dependent variable. In this case, a time discretization is not required. We define variables x ij equal to one if and only if arc (i, j) ∈ A is used in the solution, and variables t i equal to the time at which vertex i ∈ V � is visited. In what follows, M is a large positive number. The problem for the continuous single-visit case (SF) is then formulated as follows: subject to The objective function (1) represents the total collected profit to be maximized. Constraints (2) are the flow conservation conditions and ensure that there is at most one incoming and one outgoing arc for each site. Constraint (3) ensures that there is one incoming and one outgoing arc for the depot. Constraint (4) imposes a maximal route duration of L (time units). Constraints (5)-(7) ensure that travel times are respected and eliminate subtours. Finally, constraints (8) and (9) define the domains of the variables.
Note that the case of "exactly one visit" is a particular case arising in the traveling salesman problem with time-dependent profits (TSP-TDP), and hence, its formulation is obtained by just changing " ≤ 1 " with " = 1 " in constraints (2). (1) We can impose the following bounds on the timing variables, which indicate that one cannot arrive at vertex i earlier than 0i : A similar reasoning can be applied at the end of the planning horizon: one can compute the latest arrival time at vertex i such that one still arrives back at the depot at time T. The following upper bound on t i can be imposed:

Multiple visits to sites allowed
There are two main ways to model problems in which multiple visits to the same site are allowed. Some models do not replicate the sites and allow multiple visits by controlling the number of times a site is visited (see, e.g., Bruck and Iori 2017;Salazar-González and Santos-Hernández 2015;Erdoğan andLaporte 2013, andMunari andSavelsbergh 2022). The other approach is to make several copies of the same site (see, e.g., Gribkovskaia et al. 2007 andHoff et al. 2009).
Here we adopt the second modeling technique. More specifically, we make use of an auxiliary two-dimensional directed graph G = (V, A) (see Fig. 1) whose x-axis represents the periods of the planning horizon and whose y-axis represents the sites and the depot. The graph G extends the graph G = (V, A) , so that for every vertex v ∈ V and every period t ∈ T , there is one vertex v ∈ V identified with the pair (t, v) , which is labelled as v = t ⋅ |V| + v . It follows then that, for each given vertex v ∈ V we can obtain the corresponding period t and site v in graph G as follows: t(v) = ⌊v∕�V�⌋ and v(v) = v∕�V� − ⌊v∕�V�⌋ . We denote by t(i) and v(i) the time t ∈ T and the vertex v ∈ V corresponding to the vertex i ∈ V , Analysis of the selective traveling salesman problem with… respectively. Therefore, the profit function at vertex v is p v = p v (t) . Note that not all arcs are allowed in G and that the starting and ending vertices must correspond to the depot. After predefining the set A , we need to solve a selective TSP with profit on G , with a maximum route length L no larger than the duration T of the planning horizon. We have then no predefined starting and ending vertices, but these must be selected within a subset {t ⋅ |V| ∶ t = 0, 1, ..., T} ⊂ V representing the set of depot vertices (T copies of the depot). The set of site vertices is V The set of available arcs A is composed of the set A 1 of arcs linking vertices from the same site at consecutive periods (for waiting times), and the set A 2 of arcs linking vertices from different sites and whose difference between their periods equals the travel time between these sites. Therefore, Note that Fig. 1 shows a representation of the horizontal arcs from the set A 1 and a partial representation of the set A 2 (dashed arcs). For the sake of clarity, from the latter we only represent arcs departing from the depot.
Note that if L = T , the problem over G is very similar to the STSP with profits (see Martello 1990 andVansteenwegen et al. 2011). In the extended graph G = (V, A) , the problem is similar to the STSP, where we have a set of |V| = N ⋅ (T + 1) − 1 vertices, each with an associated profit.
The difference between our problem in the auxiliary graph and the STSP is that, in our case, the starting and end vertices are not fixed, but belong to the set of depot vertices with zero profit. In order to obtain the STSP, we add two artificial vertices B 1 and B 2 , which will be the starting and ending vertices of the Hamiltonian path, respectively. Accordingly, a set of zero length arcs joining B 1 and the depot vertices and the latter with B 2 is also added. So, from now on, the problem is defined on We use directed continuous variables y ij representing the flow over arc (i, j) and binary variables i equal one if the shift starts at vertex i ∈ {0, ..., T − L} . Note that the graph Ĝ is a time-ordered graph, which enables us (for fixed depot departure and arrival times t d 0 and t a 0 , being t a 0 − t d 0 = L ) to model the problem as a longest path problem. In doing so, we transfer the profit associated with a vertex j to its incoming arcs in A 2 . That is, each arc (i, j) ∈ A 2 has an associated profit p ij = p j . The profit associated with the remaining arcs in Â equals zero. The problem for the discretized multiple-visit case (MF) over Ĝ is formulated as follows: subject to The objective function (12) is the total collected profit. Recall that the profit is collected when the vehicle arrives at the vertex. Constraints (13), where + (i) and − (i) are the sets of successors and predecessors of vertex i in graph Ĝ , respectively, ensure that exactly one arc departs from the artificial vertex A to the set of depot vertices, that one unit of flow arrives at B from the same set, and enforce the flow conservation conditions for the remaining vertices, which are the site vertices. Constraints (14) and (15) impose a maximal route duration by means of the variables. There are as many y L variables as T − L time periods. By selecting only one of the y L variables, constraints (16) ensure that the route starts at one time instant and ends after exactly L periods. Finally, constraints (17) and (18) impose the binary condition of the variables and the non-negativity condition of the y variables, respectively.

Analysis of the problem and shapes of the profit function
As explained in Sect. 2, depending on the shape of the profit function, the problem possesses certain characteristics. These will not only be influenced by the monotonicity condition of the profit functions, but also by their specific shape.
Observation 1. Let p i ∶ T → ℝ represent the accumulated profit at vertex i ∈ V � arising from a positive non-cumulative profit function p � i ∶ T → ℝ + , that is, the accumulated profit at vertex i during the time interval [0, t] is calculated as Then, p i is a monotonically increasing function and the total profit collected visiting vertices i at time t 1 and t 2 ∈ T ( t 1 < t 2 ) equals the profit collected by visiting vertices i only once at time t 2 .
Proof If vertex i ∈ V � is visited at time units t 1 and t 2 ∈ T , the total collected profit equals ∫ If vertex V ′ is visited only once at time unit t 2 , the total collected profit equals , then the STSP-TDP when at most one visit per site is allowed obviously becomes the STSP. In this case, it does not matter whether L = T or L < T since the collected profit is not time dependent.
Observation 3. Let us assume that L is large enough to visit all vertices in any order and that each site can be visited at most once (following formulation (SF) presented in Sect. 2.1). If all profit functions are linear, i.e., That is, under the described conditions, if the vertices are labeled in increasing order with respect to the slope ( i ≤ i+1 ), the visiting order coincides with the labeling order.
Proof Given two vertices i and i + 1 ∈ V � satisfying the above mentioned conditions, it is always beneficial to first visit the one with the lower slope (in this case i since Let p(i, j, t) be the profit collected at vertices i and j if vertex i is visited at time t and vertex j at time t + ij . Then, starting from vertex 0, the collected profit obtained by visiting first vertex i and then vertex i + 1 is Let us demonstrate that the collected profit is larger if vertex i is visited before , the inequality can be written as follows: which is not respected given that i,i+1 , i+1 − i , and i+1 + i are positive values and 0,i+1 − 0,i ≤ 0 . Therefore, the left-hand side of the inequality is positive and the right-hand side is negative. ◻ Observation 4. The STSP-TDP can be viewed as a generalization of the STSP with time windows by setting the profit function as a stepwise function equal to a negative number outside the time window, and equal to a positive constant during the time window interval. That is, if Vertex i would not be visited outside the time window since this yields a negative profit and a corresponding decrease of the objective function (total collected profit).
Observation 5. A new problem called the STSP-TDP with time windows, [a i , b i ] for all i ∈ V � , can be considered if the profit function has the following shape: in which the vertex may be visited. Since the objective function is to maximize the total collected profit, negative values of this profit outside its time window [a i , b i ] ensure that vertex i ∈ V � will not be visited outside the time window.
Note that Observations 4 and 5 may apply for both the single-and multiple-visit cases.

Computational results
When the profit functions are linear or piecewise linear functions of time, the formulation (SF) presented in Sect. 2.1 can be directly applied and there is no need to discretize the time. In the following, we perform two main types of experiments to provide insights into the models: first for artificially created instances defined on a mesh network, and second for benchmark instances from the TSPLib, assigning time-dependent profits to each vertex. These experiments were performed on a machine equipped with an Intel i7-8700 3.20GHz CPU. The model of Sect. 2.1 was implemented in Python 3.8 and solved with Gurobi version 9.1.

Mesh instances
The first set of experiments is designed to illustrate the behavior of the models when changing the maximum length of routes L and the duration of the planning horizon T, as well as to assess the solver's performance for different instance sizes. We have considered three instances sizes of 15, 30, and 50 vertices. In all the experiments, the network is constructed following a concentric clockwise labelling procedure, starting from vertex number 1, which acts as the depot and increasing the vertex number consecutively (see Fig. 2 for an illustration of the 15-vertex network). The horizontal and vertical distances between vertices are set to 1 and the arcs travel times have been obtained considering a travel speed equal to a tenth of the total distance needed to visit in order all the vertices, plus the Euclidean distance from the last vertex to the depot, ensuring there is no time to visit all vertices in any of the considered instances. With respect to the piecewise linear profit functions, for each vertex we consider a non-cumulative one-peak profit function with the following shape (see Fig. 3): where a i ≥ 0 , b i ≤ 0 , and t * i are parameters associated to each vertex i ∈ V � . Regarding the shape of the profit function, we have divided the first set of experiments into two subsets. The first one (experiments 1 to 15) considers values of t * i following an increasing vertex label order, i.e. the peak of the profit function of each vertex is proportional to the vertex number. Specifically, t * i = 480∕n × (i − 1) , where n represents the number of vertices of each instance. Moreover, the slopes of the profit function ( a i , b i ) are also proportional to the vertex index: specifically a i = 3 × (i − 1) and b i = −3 × (i − 1) . The second subset of experiments (experiments 16 to 30) considers values of t * i following a decreasing order with the index of the vertex, i.e., t * i = 480∕n × (n − (i − 1)).

Fig. 3 Piecewise linear profit function
With these artificially created instances we can test the behavior and performance of the solver on the models. For the first subset of experiments, depending on the values of L and T, since the profit peaks increase with the vertex order it is expected that the optimal routes for the single-visit case will follow a clockwise direction. Alternatively, for the second subset, the optimal routes for the single-visit case should follow a counterclockwise direction. For each subset and for each size ( All instances are solved using the standard truncated branch-and-cut algorithm implemented in Gurobi, truncated after a predefined CPU time limit "Max. time". As expected, the collected profit is higher for the multiple-visit case and, for both the single-and multiple-visit cases, the collected profit increases with L and T. Moreover, for a given value of L the profit tends to increase with T. Note that all the instances are selective and that, for each instance and fixed values of T, the number of visited vertices in the single-visit case tends to increase with L. Fig. 4, since the profit peak vertices are disposed in increasing order, not all vertices can be visited and the visited ones are those with larger indices, i.e., larger profits. The visiting order follows a clockwise direction, except for some instances for which the optimal solution is not achieved within Max. time. The behavior in experiments 21 to 25, where profit peaks follow a decreasing order, is the opposite. In these experiments, the numbers over the vertices correspond to the profit collected and the visit time. As illustrated, regardless of the instance size, the higher the ratio T/L, the higher is the collected profit. When T is larger than L, the model can move the starting time of the route (column t d 0 in Table 2). Note that for the cases where T = L (240-240, 480-480), the departure from the depot occurs at time t = 0.00 , thus using the full route length to visit as many vertices as possible, arriving again to the depot at time t = L . In general, for a given size of the instance, the number of visited vertices tends to increase with T , but this is not always true. See, for instance, experiments 1, 2, and 3, with L = 240 : although the collected profit increases, the number of visited vertices decreases. Since the model can freely move the route duration interval along the planning horizon, a higher profit can be collected visiting fewer but more profitable vertices. This behavior can also be observed for experiments 4-5, 9-10, and 11-13 in the case As an illustration of the problem with time windows described in Sect. 3, we consider the 15 vertices mesh instances described above but whose vertices have negative profit function values outside predefined time windows. We have Analysis of the selective traveling salesman problem with… considered piecewise linear profit functions similar to those illustrated in Fig. 3, but with time windows around the profit function peaks (see Fig. 6). Table 4 shows the results obtained for the multiple-visit case. It can be observed that, as commented in Observations 4 and 5, the vertices that are visited are indeed visited within their corresponding time window. Recall that, for these experiments, the time windows do not need to be added to the formulation, but they are naturally respected by assigning negative profit function values outside their bounds.

TSPLib instances
In this section, we consider different TSTLib instances adapted to the characteristics of our problem, that is, assigning one-peak time-dependent profit functions see Eq.
(19) to vertices and considering different space measure scales.
Assuming that the TSPLib coordinates are given in km, we consider constant speed and different scales to study the problem resolution. In this way, e.g., a scale of 1/1000 means that the coordinates are taken in meters. Tables 5 and 6 illustrate the sensitivity of the single-and multiple-visit models, respectively, to different scales for instance eil51 and the following parameter values: L = 480 , T = 1440 , speed = 35.5 km/h. The CPU time limit has been set as Max. time=7200 seconds for these experiments. The table headings are defined as follows: -Scale: different values are considered to rescale the instance eil51. Scale 1 indicates that distance is taken in kilometers and 1/1000 in meters. -Profit: total profit obtained, which is the objective function value. Since we consider a constant speed, the smaller the scale, the smaller the distances and, therefore, the more time is available to visit the vertices. It can be observed that this effect influences the resulting solutions, mostly in terms of total collected profit and computation time. Observe that, for the single-visit case (Table 5), the higher the scale, the smaller the total profit obtained and the larger the computing times, being even not possible to obtain a feasible solution within the CPU time limit Max. time=7200 for scale 1/1. The starting time of the shift also changes with the scale, tending to start earlier when the scale is smaller. This is due to the fact that the considered speed is constant and, therefore, the smaller the scale, the larger the freedom to visit the vertices. Table 6, which shows the results obtained for the multiple-visit case, exhibits a similar behavior in terms of the objective function. Although, as expected, much higher values of the objective function are obtained for the multiplevisit case, these values also increase as the scale decreases. However, with respect to the computing times, for the multiple-visit case, the behavior of the computing times is not uniform. In this case, different scales lead to different travel times and, therefore, different arc set A 2 . Since the model allows to wait at the same site, shorter travel times enable to arrive with more flexibility at a site, thus leading to equal or better profits but not necessarily better computing times. Table 7 presents the results obtained for the single-and multiple-visit cases for TSPLib instances eil51, st70, a280, and ali535. For these experiments, the maximum length of the route L = 480 , the planning horizon T = 1440 , the threshold on the computing time is Max. time = 7200 s and the scale is 1/1000, which is As expected, for both cases, the larger the number of vertices, the larger the total collected profit and the computation time. For the multiple-visit case, only instances eil51 and st70 could be solved to optimality within Max. time. For these instances, although the number of visited nodes in the multiple-visit case is considerably lower than for the single-visit case, these nodes are visited several times obtaining more than ten times higher values of the objective function (collected profit). Figure 7 illustrates the resulting routes with Formulation (SF) for the instances presented in Table 7. Since the problem aims at maximizing the total collected profit, the resulting routes differ significantly from those obtained with the usual TSP, where the objective is to minimize the total distance traveled. As expected, when the objective function is to maximize the total collected profit, the total distance increases with respect to that obtained from a TSP solution. A trade-off analysis between the collected profit and the total distance may shed some light on these differences. To this end, it becomes appropriate to use a multi-objective approach.

Trade-off between the collected profit and the total distance. Multi-objective approach
Starting from formulation (SF), we consider the -constraints method proposed by Marglin (1967). That is, we include constraint (20) limiting the total distance of the route to a maximum of and the route is then obtained by maximizing the total collected profit and varying parametrically the maximum total distance :  Observe that, except for the first four rows, the value of the total distance tends to be similar to that of the upper threshold . This follows from the fact that the larger the total distance, the less constrained is the problem and, therefore, the larger is the total collected profit, which is the objective function. The first four rows stand for values of larger than 131.35, which is the total collected profit when no constraints on the total distance are imposed (see Table 5, third row). This explains the constant values for the first four rows of the third column.
The first and second columns of Table 8 are represented in Figure 8 in the form of a Pareto curve for a trade-off between collected profit and maximum total distance. It can be observed that, as expected, the total collected profit increases as the threshold on the total distance increases. However, the profit stabilizes when the threshold reaches 130. In fact, if no threshold is imposed and only the total collected profit is maximized, then the resulting total collected distance equals 131.35. Therefore, for values larger than 131.35, the total collected profit remains constant.  Table 7 with scale 1/1000 1 3 The routes associated with some of the solutions of Table 8 are depicted in Figure 9. As decreases, the route length decreases and tends to look like a usual TSP solution, in which the total distance is minimized and profit is not considered.  . 8 Trade-off between collected profit and total distance for instance eil51 at scale 1/10 1 3 Analysis of the selective traveling salesman problem with…

Conclusions
We have introduced, modeled, and solved the STSP-TDT. The STSP-TDT is a generalization of other well-known variants of the traveling salesman problems such as the TSP itself, the STSP, as well as the TSP and the STSP with time windows. Some interesting properties arise in the context of time-dependent profits. For example, it sometimes makes sense to visit the same vertex multiple times and to optimize the starting time of the tour. We have proposed and tested a formulation of the single-visit problem that can be used if the profit functions are linear or piecewise linear.
We have also proposed and tested an extended formulation for the case when multiple visits to the same vertex are allowed and desirable. In this case, we formulate the problem by means of an extended graph so that this variant reduces to an STSP, adapted to be solved as a longest path problem.
We have analyzed the problem by studying the shape of the time-dependent profit functions. We have also performed several experiments on artificially created instances and on some TSPLib instances considering the single-and multiple-visit cases. Our results on artificially created instances validate the model performance and highlight the importance of allowing a variable starting time of the route. We have considered several scale measures and optimally solved instances containing up to 535 vertices for the single-visit case. We have also compared the results obtained for the single-and multiple-visit cases and analyzed the results of our single-visit case experiments by means of a Pareto frontier representing the trade-off between the collected profit and the total distance traveled. We observe that these objectives are naturally opposed to one another. Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http:// creat iveco mmons. org/ licen ses/ by/4. 0/.