Use of Steiner Problem in Solving Practical Problems of Road Construction

Currently, the development of road networks is growing rapidly. There is a need in the accession of new sections to the existing roads. The present work sets the task of finding Steiner points for three points. While carrying out this work, there was learnt the basics of graph theory, the methods of finding shortest networks and defined the Steiner problem. There was also implemented an application in Delphi 2010 determining the Steiner point, the minimum path (section) length, and calculating travel time and approximate cost of construction for the resulting road section.


Introduction
Currently, due to the development of road networks, increasingly arises a necessity in acceding to them the new sections.One of such problems is to connect multiple settlements with a road system in such a way that these roads can lead from one point to any other, provided that the path length should be minimized.
This problem was first considered by Jacob Steiner, he was looking for a single point, from which the sum of distances to all points of a given set would be minimal (Bern, 1989).
In general form the Steiner problem was first formulated in the article written by Milos Koessler and Wojciech Jarnik, published in 1934.However, the problem itself did not become widely known until 1941, when Richard Courant and Herbert E. Robbins included it into their book "What is mathematics?".(1.64) Courant and Robbins linked this problem to the studies of Jacob Steiner, who worked at that time in the University of Berlin.However, as early as in 1640, for the first time there was a task being a special case for both of the tasks described -the one studied by Steiner, and the one that bears his name: to find a point T, the sum of distances from which to each of the three given points is minimal.Evangelista Torricelli and Bonaventura Cavalieri independently solved this problem.Torricelli and Cavalieri proved that the total distance is minimal when all conjugate angles in point T are greater than or equal to 120° (Lotarev, Ozdemir, 2002, pp. 114-124).

Methodology
The Steiner problem is to find the minimum Steiner tree, which is the shortest network connecting a given finite set of points in the plane.
To address this problem, it is necessary to turn to the theory of graphs.Graph theory is a division of discrete mathematics, considering sets with the given on them relations between the elements.Objects may be represented graphically by means of drawings, which consist of points connected by lines.By drawing a graph, one usually depicts each vertex by a point and connects with lines such pairs of points, which in the graph correspond to a pair of vertices forming an edge.The way these points and lines are drawn is considered to be insignificant, but important is, which pairs form an edge, and which do not.
The orientation of the graph should also take into account.A graph is called non-oriented if ordering of the two ends of each edge is insignificant (Gordeev, & Taraszow, 1993, pp. 3-28).
If the edge ordering is significant (an oriented arc), then the graph is called oriented.For an oriented edge, each vertex can be called both initial and final.There are also mixed graphs that have both oriented and non-oriented edges.An example may be the plan of the city in which the streets with roads are arcs and intersectionsvertices.Thus on some streets, there is only one-way traffic (oriented edge), and on the other, there is a two-way traffic (non-oriented arcs).
The number of vertices belonging to the graph G is called its order and is referred to as G .Depending on the number of vertices, the graph can be finite or infinite.But, except expressly stipulated cases, all graphs are finite.If there are no edges in the graph, it is called a degenerate graph.
We now define the notion of a route.The final sequence of not necessarily different edges is called a route of the length n, if there exists a sequence of not necessarily different vertices, such that .The route is called a chain if all its edges are different and a simple chain if all its vertices are different (in which no arc/edge occurs twice).Closed chain is called a cycle, and a simple closed chain is a simple cycle (Du, 1990, pp.76-85).
It is also necessary to highlight the notion of a connected graph.This is a graph if any two different vertices may be connected by at least one chain.Otherwise, the graph One of the most important concepts of graph theory, which is also often found in areas that, at first sight, are unrelated to graphs, is a tree.Tree (T) is a connected acyclic graph.The notion of the tree can be determined by the following conditions: • a connected graph having n vertices and n-1 edges; • a connected graph with no cycles; • graph in which every pair of vertices is connected by a single way.
Since T is connected and contains no cycles, it is a tree and is called a spanning or covering tree.There is also the notion of an oriented tree, which is a tree that has the following properties: • Is connected and has no cycles; • Each vertex has at most one incoming edge and up to n outgoing edges; • There is only one vertex, which does not have any incoming edges -this is the root of the tree (Discrete mathematics: algorithms, 2014).
It should be noted that a non-oriented tree can be converted into an oriented one: it is necessary to select any of its vertex as the root and specify to the edges such an orientation that each vertex is connected with a root by a single simple circuit.Conversely, if , where B -is the set of arcs of the tree T without regard to their orientation, is a non-oriented tree.
Extension of the tree concept is a forest -graph G, in which all connected components are trees.Leaves (a pendant vertex) are called vertices, the degree of which is equal to unity, if it is not considered as a root.
Tree is one of the convenient tools of various type data representation.Trees differ from simple graphs in that when traversing the tree, presence of cycles is impossible.This makes graphs a very convenient form of data management for different tasks solving, using algorithms.Thus, the concept of the tree is actively used in computer science and programming (Emelichev, 1990;Chornei, Daduna & Knopov, 2005).
At the moment, when finding the shortest path, there may be used two popular methods of algorithm: Dijkstra's algorithm and Floyd's algorithm.Algorithm of a Dutch scientist Edsger Dijkstra finds all the shortest paths from one initially given vertex of the graph to all other vertices.With its help, at presence of all necessary information, you can, for example, learn which sequence of roads it is better to use in order to get from one city to each of the many others, or to what countries it is more profitable to export oil, etc.The downside of this method is the impossibility of processing graphs, in which there are edges with negative weight, that is, if, for example, some systems provides company with unprofitable routes, then to work with such system, there should be used other than Dijkstra's algorithm methods.
The idea of algorithm is based on the following assertion.Suppose that, there is constructed the shortest path from vertex A to vertex B .And let the vertex B to be connected with a certain number of vertices i .Let us denote by i C -the price of path from vertex B to vertex i .We choose from i C the minimum value.Then the minimal extension of the path from vertex B goes through the selected value.The essence of the Dijkstra's algorithm lies in the process of adding another vertex to the plurality of dedicated ones.This procedure consists of the following two steps: 1. We construct a set of vertices incident to the dedicated ones, and among them we find the vertex with the lowest price.The found vertex is added to the set of allocated vertices.
2. We construct a set of vertices incident to the dedicated ones, and define for them the new prices.The new price of vertex is the minimum price of the path from the set of selected vertices to the given vertex.We construct the new price as follows: a.For the vertex unselected in the set selected ones, there is determined a subset of vertices incident to the given one.b.For each vertex of the selected subset there is determined the price of path to the given vertex.c.The minimum price is determined.This price becomes the vertex price (Lotarev, & Ozdemir, 2004, pp. 60-70).
The algorithm works with two types of prices: the edge price and the vertex price.Edge prices are a constant value.Prices of the vertices are constantly recalculated.The meaning of these prices is different.Edge price is the price of a transition from vertex to vertex connected by this edge.And the vertex price is the minimum price of the path.Another important point concerns the preliminary price recalculation.In fact, it makes sense to count the provisional prices for only those vertices that are associated with the vertex added in a number of selected in the last step, as for the other vertices there is no reason to change the preliminary price.
A completely different method of solution is the method proposed by Steiner.Unlike the above methods, Steiner suggested using additional points that connect the main vertices (Protasov, 2005).
Originally there was set a task of finding a Steiner point for three points.When connecting these points, a triangle is formed.
There are two ways to resolve this problem.
1) If each of the angles between the segments, joining the Steiner point with each of the given points -the vertices of the triangle, makes 120 degrees.
In this case, Steiner point lies inside any of the triangles or coincides with any of these vertices.
2) The angle formed by the segments, joining this point with the other given ones, is equal to or greater than 120 degrees.
If one of the triangle angles with vertices at these points is 120 ≥  , i.e. consists of 2 edges -sides of this angle.If all angles are 120 <  , i.e. the Steiner triangle consists of 3 edges connecting additional Steiner point with three vertices (Ilchenko, & Blasik, 2012).
Under the Steiner problem in the Euclidean plane is understood the problem of finding the plane with the Euclidean metric of the shortest tree connecting n of given points in the plane 1 , , n V V  .But in contrast to the problem of the shortest network on a graph, in the Steiner problem, there is allowed if necessary the introduction of new vertices of the tree, other than specified.These vertices are called Steiner points.The result of the solution is a tree and is called a minimum Steiner tree.Thus, Steiner tree is any tree that covers a set of points in the plane and possibly some Steiner points.We also know that for each set of points, there exists a finite number of Steiner networks.
The classical Steiner problem is formulated as follows: it is required to find the point m x R ∈ , the sum of distances from which to the given points 1 , , The Steiner problem in the Euclidean plane is the task of the theory of graphs, which consists in minimizing the length of the tree connecting in the plane the point of the given set , The problem of minimizing the tree that connects certain set of points in the plane can be solved in two ways.In the first method, the edges of the tree may be only the couples ( , ), , .i j i j I′ ∈ Solution to this problem is called the minimum spanning (connecting) tree ( 5).It has optimal solutions -Prim's algorithm and Kruskal's algorithm.
The second method allows to a set of selected points I ′ adding a certain number of additional points, so that the required set of vertices of the tree consists of the two subsets: (2) where I ′ − is a set of selected points, and I ′′ − is a set of additional points.

The tree ( ),
T I I I I ′ ′′ = ∪ , which connects all the vertices i I ∈ , is called the Steiner tree and the vertices i I′′ ∈ are the Steiner points.The length D of the Steiner tree is equal to the sum of the lengths ,, , i j d i j I ∈ of its constituent edges ( , )  i j : (3) The length D depends on the number of newly added points n I ′′ ′′ = and their location on the specified plane.
Not every Steiner tree is shorter than the minimum spanning tree.The minimum Steiner tree s T for the set I ′ − is the shortest spanning tree o T for the set 2. In the general case, a minimum Steiner tree is no longer than the shortest spanning tree for the set I ′ .Shortening the length is less than 3 2 or 13% .The problem of finding such a tree is the Steiner problem (Sharipov and Faizullina, 2014, pp.101-104).

So, the network of Steiner points 1 , , , k
, is called a simply connected graph, having among all its vertices all specified points (these vertices are called real, and the rest are optional).

Results
The idea of an algorithm for solving the Steiner problem, which is implemented in this work, is to connect the nearest two points with the selected one.Then the next point is selected, the nearest to it two points are determined, and so on.The algorithm can be divided into two parts.In its first part, the set of initial points is simply divided into various subsets.In the second part, there is created a number of possible trees for each such subset (Marcelo, 2013.).
Once for these three points there is found a Steiner point, algorithm runs in the opposite direction, attempting to determine the Steiner point corresponding to each point of substitution.
An attempt can fail, but a successful attempt leads to a Steiner tree connecting each initial point of the subset with the tree by one edge.Thus, having considered all replacing sequences, the algorithm chooses the shortest of these Steiner trees for a subset.Combining together in all possible ways the shortest Steiner trees for subsets so as to cover the initial set of points, we can construct all kinds of locally minimal Steiner trees and determine the geometry of the shortest network (Gardner, 1982), (Lisin, & Faizullin, 2013, pp. 503-507).
Initially, we consider the rational use of this method, in comparison with other methods under consideration -Dijkstra's algorithm and Floyd's algorithm.These methods are intended for finding the shortest path among the available points.In contrast to the method of Steiner, these algorithms do not involve finding the new points.In this connection, obvious is the superiority of the Steiner problem solution over the specified algorithms.
Let us consider this problem in the example of a company's practical activity -the construction of the road network in the real section of a motor road.Our challenge is to connect the three settlements with one minimal road network: Pokrovskoe settlement, Staraya Murziha settlement, and Novaya Murziha settlement.We solve the task by using an application created in the Delphi software environment.
These settlements have their own coordinates (latitude, longitude):  The application also allows determining the length of the path from the obtained by us Steiner point to the settlements:

•
from Pokrovskoe settlement to the Steiner point -6.2 km; • from Staraya Murziha settlement to the Steiner point -1.9 km; • from Novaya Murziha settlement to the Steiner point -0 km (as the point has coincided).
The total length of the route from Pokrovskoe settlement to the Staraya Murziha settlement is 8.1 km.Now let us consider the cost of constructing the resulting new section of road.At the "Cost" tab, we can calculate the cost of the road construction.To do this, you must specify the price for 1 km of road.
In this case, we chose the average price specified in the contracts of various road construction companies for this type of work (Panyukov, & Pelzwerger, 1991, pp. 291-296) The cost is equal to 55 091 401.2 rubles.
As a result, we obtain: • from Pokrovskoe settlement to the Steiner point -341 566 687.44 rubles; • from Staraya Murziha settlement to the Steiner point -104 673 662.28 rubles; • from Novaya Murziha settlement to the Steiner point -0 rubles (as the point has coincided).
In total, there should be spent 446 240 349.72 rubles.The given cost and the length of the path are the smallest among the other offered variants of reconstruction by the company's project management.So, we build the shortest road network to connect the three settlements, using the three-point Steiner problem.
Approximate location of the road we obtained is shown in Figure 2. The point P demonstrates the place of departure from the highway М-7 "Volga" to the specified settlements.

Discussion
Performing the calculations, we obtained the following values for the new road section (Table1).Given that that the resulting new section of road from the Staraya Murziha settlement to the intersection P on highway M-7 crosses the same path as that of from the Novaya Murziha settlement to P, and then we separately calculate the section length from the Staraya Murziha settlement to the Novaya Murziha settlement.Let us compare these figures with the already existing road.The cost is calculated by taking into account the average price of the new road -55 091 401.20 rubles.This price is based on the calculation of the road construction with asphalt surface.And given the current state and the road surface (gravel, asphalt grit) repair on this section is equivalent to new construction.
Let us highlight the totals from the Table 2 and Table 3 in the new table.According to this table, the following conclusions may be made.
The length of the route found using the Steiner problem is 4 km less than the already existing road, thereby reducing the average travel time by 13.6%.Due to the decrease in the length of the section, we have reduced the cost of its construction, with 482 049 760.50 to 424 203 789.20 rubles (~ 13.6% or 57 845 971.30rubles).Given the reconstruction of the motor road M-7, and the need to create new sections for vehicles turning, the selected point P (51.72784, 51.68961) is the most optimal for the creation of exit roads from these settlements: Pokrovskoe settlement, Staraya Murziha settlement, and Novaya Murziha settlement.
Thus, we have constructed a prospective new road section with a minimum length of 7.7 km and a necessary cost of construction -424203789.20 rubles.

Conclusion
Steiner problem cannot be solved by a simple graphical method, which is drawing a line between the specified points.To find the solution you need to add new points -the Steiner points.They mediate the desired shortest network.To determine the coordinates of the Steiner points, programmers and mathematicians have developed special algorithms, but despite the fact that the knowledge of the implementation of algorithms has widened, the task of finding the shortest network remains relevant (Grigoreva, & Basyrov, 2014, pp. 81-83).
The formulation of this problem is very simple, but its solution is difficult to analyze.Even a small change in the geometry of the problem, which seems insignificant, can radically change the shortest network is its solution.This sensitivity to the initial data makes even peripheral issues, concerning the shortest networks, rather than simple.The Steiner problem belongs to a class of problems for which, in the opinion of many contemporary researchers, efficient algorithms, apparently, never to be found.Even using the best known algorithms for constructing Steiner tree for n points, the time spent on the solution, with n increasing, grows exponentially (Maculan, & Souza, 1991, pp.471-480).
The most realistic seems to be the creation of a program, which would find a network, a bit longer if compared to the shortest path network.Approximate methods of solution are often used in various applications, the problems of searching the shortest networks.They include the design of integrated electronic circuits, the construction of an evolutionary tree for a group of species and minimization of the materials t consumption to create a network of telephone lines, pipelines and highways (Ivanov, & Zyablov, 2013, pp. 41-56).
Finding the shortest path is an important task in the design and reconstruction of roads and railways.System of roads in areas with homogeneous topography (e.g., in the desert) are built on the Steiner networks.Oil and gas pipelines in the Russian and Canadian tundra are also built on the Steiner networks (Courant, 1996, 556p.), (Yang, 2013, pp. 1-10).
During the work performance there was learnt the basics of graph theory, the methods of finding shortest networks and defined Steiner problem.It was also implemented an application in Delphi 2010 defining the Steiner point, the minimum path length (section), and calculated the approximate travel time and cost of construction resulting road section.
In future, it is necessary to consider the possibility of using the three-point algorithm for the problem of the shortest network for connecting more points; to implement a software product that allows solving the problem for more than three points.So, having considered these values, we can draw the following conclusions.Using Steiner network to solve this practical problem, it was possible to reduce the length of the path, thus saving funds budget of the Russian Federation subject -Republic of Tatarstan and the municipality of Yelabuga district, as well as the companies engaged in the construction of this section.
Deciding the task, we determined the expected coordinates of the location of entrance to the specified settlements on the federal highway M-7 "Volga".
Figure 1.Construction of the Steiner point

Figure 3 .
Figure 3. Location of all the points on the map (Google maps, 2014)

Table 1 .
Obtained values for the new section

Table 2 .
Figures of the old section

Table 4 .
Comparison of the old section