This paper proposes two heuristic algorithms for finding fixed-length circuits and cycles in undirected edge-weighted graphs. It focusses particularly on a largely unresearched practical application where we are seeking attractive round trips for pedestrians and joggers in urban street networks. Our first method is based on identifying suitable pairs of paths that are combined to form a solution; our second is based on local search techniques. Both algorithms display high levels of accuracy, producing solutions within just a few meters of the target. Run times for the local search algorithm are also short, with solutions in large cities often being found in less than one second.
Note that this definition involves circuits as opposed to cycles. This means that a route can visit a vertex more than once but it cannot traverse an edge more than once. Due to our focus on street networks in this paper, here we choose to generalise this definition slightly. This is for two reasons. The first reason is that, in cases where circuits of length k cannot be found, it is desirable for two candidate solutions to be produced: , where is minimal; and \(\barC\), where \((L(\barC)-k)>0\) is minimal. The lengths of and \(\barC\) can therefore be seen as lower and upper bounds on solution quality. An example is shown in Fig. 1.
alternating current circuits corcoran solution pdf download
Download File: https://spirteclarzu.blogspot.com/?file=2vztQC
A single round of (ascending) local search is achieved by applying Algorithm 3 repeatedly until improvements are not available from any of the vertices . A similar (descending) local search is then carried out on \(\barC\). This is achieved in the same way except that occurrences of and \(\barC\) in the pseudocode are swapped, and the inequalities are reversed. These alternating phases of ascent and descent are repeated until neither solution is seen to improve, or until .
Note that when applying the above neighbourhood operator, if \(u_i'\) and \(u_j'\) refer to the same vertex in G, then a subcircuit of the circuit will be deleted. Similarly, applications of this neighbourhood operator can also introduce additional subcircuits, as demonstrated in Fig. 5a and b. On the other hand, there are also situations in which a solution will need to be lengthened through the addition of a subcircuit, but where this is not possible with the current operator due to the presence of articulation points in the graph. In Fig. 5a, for example, we see that the edges to the right of the articulation point u will never be added to the solution by this neighbourhood operator. An additional operator is therefore required.
Overall, our local search method operates by alternating between periods of ascending local search and descending local search as described above. Once neither of these is able to improve and \(\barC\), the second neighbourhood operator is applied. Here, this is achieved by examining each articulation point in in random order. If an improving move is found, this is then applied, and the algorithm returns to performing the alternating periods of local search. Otherwise, the process terminates, with and \(\barC\) giving the final solutions of the algorithm.
In this section, we now describe how our double path and local search heuristics can be adapted to produce cycles instead of circuits (refer to Definition 2). For the GKCP, recall that it is sometimes necessary to allow bridging edges to occur twice in a solution. Similarly, for cycles it is also necessary for articulation points to sometimes occur more than once in a solution. Mechanisms that allow this must therefore be built into our methods. 2ff7e9595c
Comments