Collectively optimal routing for congested traffic limited by link capacity

Collectively optimal routing for congested traffic limited by link capacity

Bogdan Danila dbogdan@mail.uh.edu Department of Physics, University of Houston, Houston TX 77204-5005    Yudong Sun Department of Physics, University of Houston, Houston TX 77204-5005    Kevin E. Bassler bassler@uh.edu Department of Physics, University of Houston, Houston TX 77204-5005 Texas Center for Superconductivity, University of Houston, Houston TX 77204-5002
Abstract

We show that the capacity of a complex network that models a city street grid to support congested traffic can be optimized by using routes that collectively minimize the maximum ratio of betweenness to capacity in any link. Networks with a heterogeneous distribution of link capacities and with a heterogeneous transport load are considered. We find that overall traffic congestion and average travel times can be significantly reduced by a judicious use of slower, smaller capacity links.

pacs:
89.75.Hc, 89.75.Da, 05.60.-k

I I. Introduction

What are the best routes for us to use for driving home tonight in rush hour traffic? Choosing the best route is a task that many of us face everyday. Knowing the best choice is also important to urban planners who design city transportation networks. To answer this, and other important questions, a vast amount of research has been devoted in recent years to the analysis and optimization of transport on complex networks BarabScience ; Guimera ; NewmanSIAM ; Helbing ; TB ; Catanzaro ; EcheniquePRE ; EcheniqueEPL ; Korniss ; OurPRE2 ; YanPRE ; OurPRE1 ; Sreenivasan ; OurChaos ; OurEPL ; Woolf ; TKBHK ; Barthelemy ; Krause-last ; Danon ; Piontti ; Barrat ; Motter ; Helbing-diagram . If we would collectively choose to use the best routes, then the traffic congestion and our commute times could be reduced.

When traveling in a city, the best route to use is presumably the one that takes the least time to go from origin to destination. If there is little or no traffic, this route is simply the so-called shortest-path route. On the complex network that describes the city’s streets, the shortest-path route is defined as the path for which the sum of the weights of each of the links along the path is minimal. The weight of a link can be defined as the time it takes to travel from one end of the link to the other when traffic is light. Generally, these weights are inversely related to the transport capacities of the links (streets that can handle a lot of traffic are traveled faster). On the other hand, when traffic is heavy some links may become congested, and then the quickest route to the destination may be a longer one involving smaller capacity links. It is not obvious, however, exactly at what level of congestion the use of alternative routes becomes advantageous, or how much the improvements in network transport capacity and average travel time amount to. The optimal transport routes that we find is the collective optimum that occurs if everyone uses the best routes for collective results. As such, it describes an important limit of collective behavior. This contrasts with the goal of many traffic studies that seek to optimize results individually through a learning process within the framework of evolutionary game theory Helbing .

In this paper, we present methods to help answer these important questions and demonstrate the effectiveness of our results within the framework of a simple model Barthelemy . that captures important characteristics of urban street networks. This model has been shown to produce planar geometric networks with an exponential distribution of the node distances from the origin and with other topological characteristics similar to the actual street networks of various cities. We use this model to demonstrate the effectiveness of our methods, rather than a particular realistic example, in order to make a statistical analysis by taking ensemble averages over many example city networks. The networks generated using this model have only homogeneous links and are topologically more similar to the street networks of older cities rather than those of modern cities. To account for the possibility of links with different transport capacities, we will extend the model to include two types of streets. Nevertheless, it remains a relatively simple model of street networks, and is, thus, ideally suited for the purpose of this paper, which is to develop methods to determine optimal routes for congested flow. Note that our results are important not only for the study of vehicular traffic but also for other types of link capacity limited network transport, including information transport on the Internet.

Unlike previous studies of optimal routing for congested flow Guimera ; YanPRE ; OurPRE1 ; Sreenivasan ; OurChaos ; OurEPL , which assumed that traffic is limited by node congestion, here we assume that the capacity of the network is limited by the amount of traffic each link can support. This important and realistic difference requires a nontrivial variation in our methods. As we have shown previously OurPRE1 ; OurChaos ; OurEPL , when transport is limited by node congestion and all nodes have the same processing capacity, the transport capacity of the network is maximized by using a set of routes that minimize the maximum betweenness of the nodes. In OurPRE1 we introduced an algorithm for finding such a set of routes and demonstrated that, for a number of commonly studied network topologies, it finds routes for which the capacity, at least, scales optimally with system size. Here we show that when transport is limited by heterogeneous link capacities, the transport capacity of the network is maximized by minimizing the maximum betweenness to capacity ratio of links. We also consider the traffic optimization problem with uneven traffic demands between the various pairs of origin and destination nodes. In particular, we study the case of a rush hour traffic burst emanating from a central location. To obtain our results, we use a variant of our previous routing optimization algorithm. Furthermore, we prove a formula that allows the quick computation of the average of the sum along the path of any link-related quantities and use this formula to compute average travel times.

The rest of the paper is structured as follows. In Sec. II we present the model we use, including details about the network structure, the transport process, and our methods for determining the optimal routing. In Sec. III we prove a general formula for computing route averages on complex networks in terms of link betweennesses and apply that formula to compute the average travel time. In Sec. IV we present our results for network transport capacity and average travel time. In Sec. V we present our conclusions and suggest a few directions for possible future research.

Ii II. Model

In our network transport dynamics, particles are assumed to travel along the network according to static routing protocols. The number of nodes on the network is denoted by . We assume that each outgoing link of a node has a separate “first in, first out” (FIFO) particle queue. The capacity of link is defined as the average number of particles transported per time step assuming an infinite number of particles in its queue. Transport on the network proceeds in discrete time steps and is driven by inserting new particles at the nodes. The average number of new particles inserted per time step at node with destination at node is and we denote . Each new particle is inserted at the end of the appropriate queue at its node of origin, namely the queue corresponding to the first link it has to traverse on its way to destination. We use a stochastic sequential updating of the positions of particles that erases the correlations between particle arrival times and ensures that both the arrival and the delivery of particles are Poisson processes OurChaos . The load of the network is defined as the average over all nodes on the network of . The transport capacity of the network is the critical value of the load above which the average particle arrival flux exceeds the processing capacity at some link Guimera . When this happens, the number of particles in the system will continue to grow and the transport becomes jammed.

Note that this is not necessarily what happens in the real world, where when jamming begins to occur at some link traffic readjusts to avoid the link. Nevertheless, our goal here is to study the collective optimum that presumably would eventually result from this readjustment process. As we will see, when the optimal routing finally jams it does so simultaneously at a large number of links and there is no way to reroute traffic from a jammed link without causing jamming at other links.

To account for an uneven traffic demand pattern between the nodes while still using a single parameter to characterize the load of the network it is convenient to write , where is the average number of particles per node generated in the course of a time step and are nonnegative demand weights (). If the weights are normalized such that , where is the number of nodes, we find

(1)

ii.1 Network Model

For simplicity, we consider networks with a binary distribution of link capacities. Then, “streets” are low capacity links and “highways” are high capacity links. Each network realization consists of a network topology, generated using the algorithm introduced by Barthélemy and Flammini Barthelemy , and a set of capacities, generated by choosing any link to be a highway with probability . Our model neglects the correlations that one may expect in real world between the capacities of adjacent links. These correlations arise from the fact that the subset of links that are “highways” are typically planned to form a well connected subnetwork. Enforcing such correlations, however, would have substantially complicated the model. In addition, we note that, on one hand, connected sets of highways do form in our model and, on the other hand, isolated high capacity links do exist in real street networks.

The network model we use Barthelemy is based on the idea of links growing gradually towards population centers. In its original form, the model does not account for any difference in the capacities of the links. All links grow at the same constant rate towards the centroid of their adjacent population centers, and new population centers are generated at constant average rate. When a link reaches the centroid of its adjacent population centers it splits into separate links directed towards each center. At the end, the nodes of the network will be the population centers and the points where links have been split. This model has been shown to generate networks with characteristics similar to those of real-world street networks, particularly when the distances of the population centers with respect to the city center are exponentially distributed. These similar characteristics include the distribution of the node degrees, as well as size and shape distributions of the areas delimited by streets. Using this model rather than a particular real-world example allows the calculation of ensemble averages over thousands of model city networks.

An ensemble of network realizations is characterized by the number of centers generated per time step , the rate of growth of the links , the total number of centers , the ratio between the capacity of a highway and that of a street , and the probability for a link to be a highway. Note that the number of nodes on these networks can only be controlled on average, through and the ratio . Without loss of generality, the average distance of the population centers from the center of the city is assumed to be unity. All results presented below have been computed for , , and . Due to the high value of , shortest-path routing will typically forgo the use of lower capacity links unless they are strictly needed to achieve connectivity.

ii.2 Traffic Routing

The transport capacity of a network depends on the routing protocol used and on the processing capacities of the various links. To demonstrate the importance of our results, we consider two different types of routing. One is the “natural” shortest path (SP) routing computed with link weights in inverse proportion to their respective capacities. The other one is the “optimal” routing (OR) for congested traffic resulting from the application of a routing optimization algorithm which finds the set of routes that maximizes the transport capacity of the network.

Note that the problem of finding the absolute best set of optimal routes is mathematically related to the problem of finding the minimal sparsity vertex separator Sreenivasan , which has been shown to be an NP-hard problem Bui . In NP-hard problems the number of flops necessary for the computation of an exact solution can increase with the number of nodes faster than any polynomial. Thus, as for other problems that are known to be NP-hard NewmanSIAM ; NewmanPNAS ; Radicchi ; ArenasNJP ; OurEPL86 , it is useful to have an algorithm that finds, at least, nearly optimal routes and runs in only polynomial time. The following algorithm does just that. Its running time is [ for one iteration and requiring iterations].

Routing on a network is characterized by the set of probabilities for a particle with destination currently at node to be forwarded to node . The betweenness of a node with respect to a source node and a destination node is defined as the sum of the probabilities of all paths between and that pass through . Node betweenness can be computed in terms of the probabilities  Guimera ; NewmanPRE . The betweenness of link going from to is defined by NewmanPNAS

(2)

The average number of particles crossing link in the course of a time step is given by

(3)

Using Eq. 1, the flow of particles through link becomes

(4)

with the total weighted betweenness of link given by

(5)

Avoiding jamming requires for every link . Consequently, maximum transport capacity is achieved when the highest betweenness-to-capacity ratio on the network is minimized and is given by

(6)

The minimization of can be achieved by various methods including, but not limited to, simulated annealing and extremal optimization. The results presented here were obtained using a variant of extremal optimization Bak ; Boettcher . Specifically, we modified an earlier algorithm that has been shown to converge to near-optimal routing in the case of both geometric and small-world networks if traffic is limited by the processing capacities of the nodes OurPRE1 ; OurChaos ; OurEPL . The original algorithm aims at minimizing the maximum betweenness of any node on the network. The variant employed here minimizes the maximum betweenness-to-capacity ratio of any link on the network. It is, therefore, capable of maximizing the transport capacity of networks with traffic limited by arbitrary link capacities. The algorithm works as follows:

  1. Assign an initial weight equal to one to every link and compute the shortest paths between all pairs of nodes and the betweenness of every link.

  2. Find the link that has the highest betweenness-to-capacity ratio and increase its weight by one.

  3. Recompute the shortest paths and the betweennesses. Go back to step 2.

Note that this algorithm, like many other transport optimization algorithms, is essentially a shortest path algorithm with variable weights that are tuned in order to reduce congestion. The variable weights allow traffic to be routed around the locations in the network that are most likely to jam.

Figure 1: (Color online) Average travel time (in time steps) vs. network load (in particles per time step per node) for a typical network realization with nodes. Results are shown for shortest-path routing, SP (blue dashed lines), and for optimal routing, OR (red solid lines), at three different high capacity link densities, (a) , (b) , and (c) .
Figure 2: (Color online) (a) Ensemble averages of the network average and network maximum betweenness-to-capacity ratios, and respectively, vs. average number of nodes at for networks with an average of 250 nodes. Results are for (black solid), (red dotted), (green dashed), and (blue dot-dashed). (b) Exponents of the power law fits for the same quantities as functions of .

Iii III. Route averages

The average travel time can be computed from link betweennesses assuming the arrival and the delivery of particles at every node are Poisson processes. We will now prove a general formula for calculating averages over the entire set of routes considered on a network and then apply this formula to calculate the travel time. Let be any quantity associated with the links of a network. To calculate the average over all particle routes of the sum of along the route it is convenient to write the betweenness in terms of the probabilities for complete routes. Let be the ordered set of all nodes along the -th distinct route between and (including but excluding ) and be the probability for a particle to be routed along that route. The number of distinct routes between and is . Then,

(7)

where is the successor of node in . Let us now compute the quantity defined by

(8)

By substituting Eq. 7 into Eq. 8, we find

(9)

The inner sum on the right-hand side of Eq. 9 is the sum of along the -th route and is its average over all routes between and .

The network-wide average of weighted by the elements of the traffic demand matrix is then

(10)

where are defined in Eq. 5 and we used the fact that the sum of all equals . The derivation above parallels the one presented in OurChaos , but the difference in the way one accounts for the links along a route in Eqs. 7 and 9 as opposed to accounting for nodes is non-trivial.

The average time, measured in steps, required for a particle to traverse link is taken to be

(11)

where is the average length of the queue associated with this link and is the link capacity. The term accounts for the travel time in the limit of low traffic and is consistent with the idea that higher capacity links are covered faster. The additional travel time due to link congestion is accounted for by the second term. Note that this is a very simple model of the traffic flow along the link, which we use here for the purpose of illustrating our method. More complex (and more accurate) nonlinear empirical formulas could be used to connect traffic flow and link capacity to the average travel time along a link. Such formulas could also be used in conjunction with Eq. 10 to calculate network-wide route averages.

Since both the arrival and the delivery of particles at every queue are well approximated by Poisson processes, the average queue length is given by Allen

(12)

By using Eqs. 11 and 12 in 10 we obtain the average travel time as a function of load

(13)

Additional time delays associated with traveling along the links may also be included in the calculation of by using Eq. 10.

Iv IV. Results

iv.1 Average Travel Time

Figure 1 shows a comparison between the SP and OR average travel times as functions of network load for one network with uniform traffic demand at three different values of . The total travel time along a link is taken to be the waiting time in its queue plus an additional delay equal to the inverse of the link’s capacity. The waiting time in queues accounts for congestion, while the inverse of a link’s capacity accounts for its travel time in the limit of low traffic. Note that routing is explicitly optimized to maximize the transport capacity and not to minimize the average travel time. The results shown are typical for networks with an average number of nodes . This network was generated with a value of . The load above which OR outperforms SP is in this case about 80% of the critical load under SP routing. This may be regarded as the threshold for congestion when SP routing is used. Optimization increases the transport capacity of this network by a factor of about 1.7 if all routes have the same capacity, while for values of between 0.2 and 0.8 the factor of improvement increases to more than 2. Note also the decrease of the average travel time at low loads with increasing regardless of the type of routing. This is due to the increased average capacity of the links.

Figure 3: (Color online) Ensemble averages of the network average and network maximum betweenness-to-capacity ratios, and respectively, as functions of for networks with an average of 250 nodes. Results are for (black solid), (red dotted), (green dashed), and (blue dot-dashed).

iv.2 Network Transport Capacity

In Fig. 2 results are presented for the ensemble averages of and for networks with which were generated for . All error bars represent estimates. The subscripts and denote the average and respectively maximum over all links of a network with a given link capacity configuration. Averaging over an ensemble of network realizations is denoted by angular brackets. This is an average over an ensemble of network topologies and over an ensemble of link capacity configurations for each network topology. The averages shown in Fig. 2 were computed for 100 network topologies and 30 link capacity configurations. Each ensemble of network realizations is characterized by the average number of nodes and by the probability for a link to be a highway.

Figure 2(a) shows a log-log plot of and for both SP and OR at . Since the lines are nearly straight, the ensemble averages of these quantities scale with average network size as a power law. Similar power law dependence has been observed in other studies Sreenivasan ; OurChaos in the case of both the maximum and the average node betweenness and is discussed in Sreenivasan . Note that any decrease in can only be obtained at the expense of an increase in since avoiding congestion along the shortest path means taking longer routes that contribute to the betweenness of more links. With OR, the slopes of and are essentially the same. Thus, the capacity of the routes we find, at least, scales optimally with system size. This behavior is similar to that of the node betweenness when transport is limited by node processing capacity. However, the finite size effects are stronger in the current case and the error bars under estimate the true error, since they are calculated assuming that the values of and for the various network realizations are normally distributed while our simulations show they are not. Figure 2(b) shows the exponents of the power law scaling of the four quantities as functions of . Perhaps somewhat surprisingly, note that the exponents for and are essentially equal over the whole range of which, again, argues in favor of the optimality of routing. Note also that the exponent for exhibits a dip around . This is an interesting feature, indicating that the SP routing works unusually well when there is a small but nonzero concentration of low capacity links.

Figure 3 shows versus for generated for . The averages shown in this figure were also computed for 100 network topologies and 30 link capacity configurations. The error bars represent estimates. Note that varies monotonically between and corresponding to all streets and all highways, respectively, while exhibits a midrange maximum in the case of SP routing that corresponds to a dip of the network transport capacity. This type of behavior is due to the fact that SP routing forgoes the use of low capacity links as long as they are not strictly needed to achieve connectivity (just as we tend to do in real life), which increases congestion on highways. On the other hand, by optimally using all links, it is possible to avoid this phenomenon.

Figure 4: (Color online) Average travel time (in time steps) vs. network load (in particles per time step per node) for a “rush hour traffic burst” with particles originating from the innermost 10% of the nodes on a typical network realization with nodes. Results are shown for shortest-path routing, SP (blue dashed lines), and for optimal routing, OR (red solid lines), at three different high capacity link densities, (a) , (b) , and (c) .

iv.3 Uneven Traffic Demand

A comparison between the SP and OR average travel times for one network with uneven traffic demand is presented in Fig. 4. Specifically, we look at a “rush hour traffic burst” with particles originating from the innermost 10% of the nodes that we use to model a “downtown”. Their destinations are chosen uniformly from among all nodes with the only constraint being that the node of origin must be different from the destination. This is the same network that was used for Fig. 1 and again the results are representative for networks with an average of about 200 nodes. Note the lower maximum capacity of the network, which is due to the uneven distribution of traffic. Nevertheless, a judicious use of the low capacity links again results in a significant increase of the transport capacity. The factor by which transport capacity is increased may be even higher than in the case of uniform traffic demand. This result is particularly important since traffic congestion usually develops is situations of uneven traffic demand.

V V. Conclusions

In summary, we have presented a quantitative study of collective transport optimization on planar networks that model a city street grid. Traffic on these networks is limited by link congestion. The network model accounts for many topological features seen in real life urban street networks and allows for heterogeneous link capacities and uneven traffic demands. The question posed in the title is answered in statistical terms, as we show that a judicious use of all links, including low capacity ones, can significantly alleviate traffic congestion. The results we present show that the average factor by which transport capacity can be increased varies with network size as a power law, and that the routes we found are ones that allow the capacity to, at least, scale optimally with system size. Moreover, the average travel times on congested networks can be significantly decreased. We determine the network load at which using the low capacity links becomes advantageous from the point of view of the average travel time. Most importantly, we show that significant improvements in traffic routing can be achieved not only in the case of uniform traffic demand, but also in situations of extremely uneven traffic. Our results are important not only for quantifying the routing improvements that can be achieved on existing networks, but also for the design of future street networks. For example, numerical experimentation with optimal traffic routing on a model of a real city street network can pinpoint the links for which an increase in capacity will result in the highest network transport capacity.

It would be interesting to extend this study to empirical city road networks, and to more realistic models that would include the correlations between the capacities of adjacent links corresponding to highway structures. A more realistic model could also incorporate traffic fluctuations Motter . In addition, recent work Helbing-diagram has led to better understanding of the observed nonlinear relationship between the average travel time on a link and the load to capacity ratio. A more theoretical understanding of why the power law behavior of and is exhibited even by networks that are not scale-free and of the relative independence of the exponents on are also interesting and important open questions.

Acknowledgements.
This work was supported by the NSF through grants Nos. DMR-0427538 and DMR-0908286 and by the Texas Advanced Research Program through grant No. 95921.

References

  • (1) A.-L. Barabási and R. Albert, Science 286, 509 (1999).
  • (2) R. Guimerà, A. Díaz-Guilera, F. Vega-Redondo, A. Cabrales, and A. Arenas, Phys. Rev. Lett. 89, 248701 (2002).
  • (3) M. E. J. Newman, SIAM Review 45, 167 (2003).
  • (4) D. Helbing and K. Nagel, Contemp. Phys. 45 (5), 405 (2004).
  • (5) Z. Toroczkai and K. E. Bassler, Nature 428, 716 (2004).
  • (6) M. Catanzaro, M. Boguñá, and R. Pastor-Satorras, Phys. Rev. E 71, 056104 (2005).
  • (7) P. Echenique, J. Gómez-Gardeñes, and Y. Moreno, Phys. Rev. E 70, 056105 (2004).
  • (8) P. Echenique, J. Gómez-Gardeñes, and Y. Moreno, Europhys. Lett. 71, 325 (2005).
  • (9) G. Korniss, M. B. Hastings, K. E. Bassler, M. J. Berryman, B. Kozma, D. Abbott, Phys. Lett. A 350 (5-6), 324 (2006).
  • (10) B. Danila, Y. Yu, S. Earl, J. A. Marsh, Z. Toroczkai, and K. E. Bassler, Phys. Rev. E 74, 046114 (2006).
  • (11) G. Yan, T. Zhou, B. Hu, Z.-Q. Fu, and B.-H. Wang, Phys. Rev. E 73, 046108 (2006).
  • (12) B. Danila, Y. Yu, J. A. Marsh, and K. E. Bassler, Phys. Rev. E 74, 046106 (2006).
  • (13) S. Sreenivasan, R. Cohen, E. López, Z. Toroczkai, and H. E. Stanley, Phys. Rev. E 75, 036105 (2007).
  • (14) B. Danila, Y. Yu, J. A. Marsh, and K. E. Bassler, Chaos 17, 026102 (2007).
  • (15) Y. Yu, B. Danila, J. A. Marsh, and K. E. Bassler, EPL 79, 48004 (2007).
  • (16) M. Woolf, Z. Huang, and R. J. Mondragon, New J. Phys. 9, 174 (2007).
  • (17) Z. Toroczkai, B. Kozma, K. E. Bassler, N. W. Hengartner, and G. Korniss, J. Phys. A 41, 155103 (2008).
  • (18) M. Barthélemy and A. Flammini, Phys. Rev. Lett. 100, 138702 (2008).
  • (19) J. Scholz, W. Krause, and M. Greiner, Physica A 387, 2987 (2008).
  • (20) L. Danon, A. Arenas, and A. Díaz-Guilera, Phys. Rev. E 77, 036103 (2008).
  • (21) A. L. Pastore y Piontti, C. E. La Rocca, Z. Toroczkai, L. A. Braunstein, P. A. Macri, and E. Lopez, New J. Phys. 10, 093007 (2008).
  • (22) A. Barrat, M. Barthélemy, and A. Vespignani, Dynamical Processes on Complex Networks, (Cambridge University Press, 2008).
  • (23) D.-H. Kim and A. E. Motter, New J. Phys. 10, 053022 (2008).
  • (24) D. Helbing, Eur. Phys. J. B 7, 00093 (2009).
  • (25) T. N. Bui and C. Jones, Inf. Proc. Lett. 42, 153 (1992).
  • (26) M. Girvan and M. E. J. Newman, PNAS 99 (12), 7821 (2002).
  • (27) F. Radicchi, C. Castellano, F. Cecconi, V. Loreto, and D. Parisi, PNAS 101, 2658 (2004).
  • (28) A. Arenas, A. Fernandez, and S. Gómez, New J. Phys. 10, 053039 (2008).
  • (29) Y. Sun, B. Danila, K. Josic, and K. E. Bassler, Europhys. Lett. 86, 28004 (2009).
  • (30) M. E. J. Newman, Phys. Rev. E 64, 016132 (2001).
  • (31) P. Bak and K. Sneppen, Phys. Rev. Lett. 71 (24), 4083 (1993).
  • (32) S. Boettcher and A. G. Percus, Phys. Rev. Lett. 86 (23), 5211 (2001).
  • (33) A. O. Allen, Probability, Statistics and Queuing Theory with Computer Science Application, 2nd ed. (Academic Press, New York, 1990).
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
""
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
   
Add comment
Cancel
Loading ...
290121
This is a comment super asjknd jkasnjk adsnkj
Upvote
Downvote
""
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters
Submit
Cancel

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test
Test description