Section 4. Information technology
Allamov Oybek Turabayevich, Software engineering of Tashkent University of information technologies, Uzbekistan
E-mail:
ALGORITHM TO THE METHOD OF PARTIAL SEARCH IN SOLVING THE PROBLEM OF ROUTING IN TELECOMMUNICATION NETWORKS
Abstract: the article proposes the method of partial search algorithm at the solution of routing tasks in telecommunication networks. Task solution completeness has been proved by the method of partial search. The task is solved real time system bathed on graph theory. Dynamic structure has been used in defining completeness of task solution.
Keywords: the problem of routing in telecommunication networks, Dynamic shortest path problem, multi parametric shortest path problem.
I. Introduction
Reliability and stable operation of telecommunication networks is ensured not only by the increase in technical capacity, it can also be implemented with software and optimal use of reserve paths.
It is known that for data exchange in the networks the routes are tabled and the data is transmitted on the selected route. It requires the effective use of algorithms, existing models, and as an example the following algorithms can be given: Dijkstra algorithm, Belman - Ford, Floyd - Varshal, as well as genetic neural algorithms of passing graph's points that determine the shortest path from one node to another; however the given algorithms fail in taking into account the reserve paths [1; 2; 3; 4].
The interception probability of found shortest paths between network nodes is very high at data transmission, and can result in network instability.
To prevent such situations, we use the paths which are close to the node of reserve paths instead of the shortest path taken out of the set of shortest ones, that proves to be one of the actual problems on network stability conservation.
An efficient algorithm for defining reserve paths for stability conservation in telecommunication networks in real-time mode has been proposed in this paper.
II. Problem statement
Assume that telecommunication networks are presented in the form of a graph. If each station on the graph is displayed as nodes, then there will be as many nodes on the graph as stations on the network.
Stations are interconnected, the connection coefficient is characterized by several parameters, such as: capacity, speed, cost, bandwidth etc. Taking into account these parameters, we encounter with the problem of multi-parameter or multicriteria optimization of reliability and network stability. The solution of the mul-tiparametric dynamic problem is an actual problem in telecommunications.
Task. To create an algorithm for defining the routes of shortest L-reserve paths between nodes with taking into consideration the graph parameters in a dynamic mode which provide network stability.
III. Algorithm of Partial search
Let the graph G = (v, A). There are two methods to describe the graph structure: the methods of square matrix and adjacency matrix. At small amount of connections between graph's nodes the adjacency matrix is used, which economizes storage capacity of technical equipment [5; 6].
Assume that L-reserve paths, which are necessary to determine the route, and M-statistical connection variables where v1, v2, C, V, t present the following:
1) v1 and v2 - nodes (endpoints), 2) C - coefficient of capacitance between nodes v1 and v2; 3) V - speed between nodes, and 4) t - time of data flow between nodes in the channel.
Let's enter the value for marking the resistance coefficient of internode communication:
K =
c-V ■
100%
e (vl,vj)
The smaller the coefficient K-j, the lower is the resistance for the data to flow between nodes i and j.
We mark another initial reference as a dynamic quantity nogM, which describes the amount of load between two nodes representing one of the initial parameters of the variable. Internode load is nog^ and duration of load - nogVaqti).
Considering given symbols, the partial search algorithm derived for can be represented as modular algorithms.
Figure 1. The module of
Shown in Figure 1, modules of partial search algorithm are the following:
A. Initial data input module - this module deals with the algorithm which forms initial data with adjacency matrix of the graph;
B. The module of memory distribution - in this module the variables are given the initial values and the inversion structure of renewed memory for strong dynamic structural variables is worked out as well. Thus, an operation of technical device memory is organized;
C. The module for L-paths choice - the method of alternative path routing and new value designation in a created dynamic structure has been developed in this module. The principle of Dijkstra algorithm has been used and its modification has been created. Dijkstra algorithm is designed to find only a "minimal" path, while
partial search algorithm.
the created modification can define another shortest reserved paths. Thus, L - paths are formed in this module;
D. Results (path, resistance, load, time) - in this module the following results are derived:
• The coefficient of interstation resistance is defined;
• L-paths are listed;
• Load and loading time is defined;
• Suitable or unsuitable paths are chosen;
• Geography of interstation data transmission is shaped.
A. Initial data input algorithm
Step 1. Value input. N, M, L. N - the number of graph nodes, M - the number of connections in the graph, L -the number of reserve paths to be found.
Step 2. Looping from 1 to M is established and vl, v2, C, V, t variables are entered. At each cycle K is to be
a resistance coefficient and stored as a point in the Ages structure. Here K =] (t/(CV)) * 100% is calculated according to the formula.Thus, the variables v1, v2, C, V, t are described by the coefficient K. Ages - adjacency matrix of connections.
Step 3. Input of load value in nogM connections.
Step 4. Looping 1 to nogM and input of variables x, y, PP, TT, where PP - the duration of load and the TT - the duration of load time in the direction of node x to node y. At each cycle values are loaded into matrix nog and vaqt. Here nog [x] [y] = PP, nog [y] [x] = PP and vaqt [x] [y] = TT, vaqt [y] [x] = TT are described this way.
B. Dynamic memory algorithm distribution
Step 1. D [1] [1] = 0 Initial value is given.
Step 2. inf=> maxNumber, - variable. inf is assigned the maximum value.
Step 3. Each element of D [N] [L] matrix is filled with inf variable. D is used for finding the path with minimal resistance.
Step 4. Each element of Used [N] [L] matrix is filled with the value false. Matrix used is necessary to determine if nodes were used or not for finding a minimal path. If a node has been used, then the node is assigned the appropriate value true to the variable used.
Step 5. List structure declaration. List structure is used to store the minimum and close to minimum L-paths from one node to another.
C. Algorithm of choice for L- optimal paths
The module L- optimal paths choice is considered
to be the main module to the algorithm. Then the module on the basis of Dijkstra algorithm has been derived, which maintains close to the minimum L-path, but not a minimum path of each node.
Step 1. Let's give to first line and first upper element of List matrix first element of List [1] [1] = 1 node respectively. We consider the node as an initial node.
Step 2. For browsing all of the items, starting with the first one, the cycle 1 to L is created.
for (i ->1, n*L) {
v -> 0, k -> 0 for (j -> 1, n)
{
for (j2 = 1, L) {
if (not used[j] [j2] and (v=0 or d[j][j2] < d[v][k])) {
v->j ;
k->j 2; }
}
}
Here are the values of v = 0, k = 0. Indices v and k are used to mark passage from selected point to the next unused point. Having created two cycles it is possible to check all the elements. If the path j j2 and v = 0 "not used [i] [j2]" was not checked from node to node, or d [j] [j2] <d [v] [k] distance is short from the selected point to a new transition point, then the found node is saved and the selected point is marked as tested, in other words: used [v] [k] = true;
Step 3. All adjacent paths for node v are stored in the input module. Here at v columns of ages matrix, when j = 1, L, a cycle is created. The purpose of this cycle is the follow:
If a new found path proves to be better than the path which was saved earlier (i. e., its resistance will be weaker than that of the other path out of L-set), this case a new found path is included into the L-set and to be resorted;
If a new path is not available in L-set of paths, this case, the new path is directly included into the L-set.
The distance is also taken into consideration while searching these paths. The search process will be completed after the L-paths have been defined, passing from this node to the next in increasing order. This process is performed for each node. for (Point to : ages[v]) {
for (j -> 1, L) {
if (d[v] [k]+to.y<
d[to.x][j] and !(to.x in List[v][k])) {
for (j2 ->L,j;) { d[to.x][j2]
-> d[to.x][j2-1];
List [to. x]
[j2] ->c1ear
List[to.x][j2] -> List[to.x]
[j2-1] all the found paths are added
}
d[to.x] [j] ->
d[v][k]+to.y;
Li st[to.x] [ j ] -
>c1ear
List [to.x][j] -> all the found paths are added
L i s t [ t o . x ] [ j ]
->to.x element is added
Complete the cycle
}
}
Step 4. In the result of operation of partial search algorithm's module B, the selected L-paths are stored in the structure of List.
D. Result module algoritm (path, resistance, load, time), algorithm modules
Step 1. A cycle 1 to L is created. Selected L-paths are entered, resistance coefficient is defined, Load duration and load time are calculated. for (i -> 1, L) {
Step 2. If the List [n] [i] element is free, it means that the paths are completed and the cycle stops. if (List[n][i]if blank) {
print in(i+"-there is no short path from it");
Completing the cycle;
}
print(i+"-short path : Coefficient load ="+d[n][i]+", Number of nodes=" + 1en(List[n][i])+", List: "); for (j -> 0,Len(List[n][i])-1) { pri nt(Len(Li st[n][i])+"->");
}
print(List[n][i].get(Len(List[n][i])-1)+" Loading: ");
Step 3. In this step the shortest path i, the resistance coefficient, the paths and the number of paths are resulted.
print(i+"- short path: resistance coefficient ="+d[n][i]+", Number of nodes ="+1en(List[n][i])+", List: "); for (j -> 0,Len(List[n][i])-1) { pri nt(Len(Li st[n][i])+"->");
}
print(List[n][i].get(Len(List[n][i])-1)+" Load: ");
Step 4. In this step the shortest path i and load coefficient are resulted. nogSum-> 0;
for (j = 0,Len(List[n][i])-2) { x-> List[n][i].get(j); y -> List[n][i].get(j+1); nogSum->nogSum +nog[x][y];
}
x-> List[n][i].get(Len(List[n][i])-2); y-> List[n][i].get((List[n][i])-1); nogSum->nogSum +nog[x][y]; print(nogSum+", Time: ");
Step 5. In this step the shortest path i, time duration of load are given. nogVaqt-> 0;
for (j -> 0,Len(List[n][i])-2) { x-> List[n][i].get(j); y-> List[n][i].get(j+1); nogVaqt->nogVaqt +vaqt[x][y];
}
x-> List[n][i].get(Len(List[n][i])-2); y-> List[n][i].get(Len(List[n][i])-1); nogVaqt->nogVaqt +vaqt[x][y]; println(nogVaqt); IV. Algorithm test
For example, suppose that there given a graph with 7 nodes and 9 intermodal communications. The parameters of graph connectivity can be divided into two types: statictical and dynamic.
Statistical parameters:
C - capacity coefficient; V - network transmission speed; t - time of transmission. Dynamic parameters:
Nog - load coefficient between any nodes; Vaqt -load duration between any nodes in time expression.
The statistical parameters are given above the lines of graph's nodes connections, and the dynamic parameters are shown below (Fig. 2).
Based on the initial data entered into the algorithm, the results are the following:
1-short path: Coefficient load = 16, Number of nodes = 5,
List: 1->3->5->4->7 Load: 5, Time: 4
2-short path: Coefficient load=17, Number of nodes = 4, List: 1->2->4->7 Load: 0, Time: 0
3-short path: Coefficient load = 17, Number of nodes 5-short path: Coefficient load = 22, Number of nodes = 5, = 6,
List: 1->2->5->4->7 Load: 4, Time: 2 List: 1->3->5->2->4->7 Load: 1, Time: 2
4-short path: Coefficient load = 21, Number of nodes 6-short path: Coefficient load = 24, Number of nodes = 4, = 6,
Figure 2. The graph structure for algorithm test. Table 1.
Statistical varia bles Dynamic variables
vi v2 C V t vi v2 Loading Time
1 2 10 6 3 3 5 1 2
1 3 10 5 3 3 6 2 7
2 5 10 10 3 4 5 4 2
2 4 10 10 7
4 5 5 5 1
3 5 10 10 1
3 6 10 10 7
6 7 5 5 2
4 7 5 4 1
Results: resistance coefficient between 1 and 2-paths is very low, but path 2 must be chosen. As path 2 is not loaded, it is free. The use of given reserve path for data transmission ensures network's stable operation.
Conclusion
The algorithm of partial search method as a modular algorithm for routing problem solving in telecommunica-
tion networks has been submitted. The completeness oftask solution by application of partial search method has been proved. In defining the completeness of task solution a dynamic structure has been used.
Algorithm for defining the route of shortest L-reserve paths that ensure network stability has been elaborated with taking into account graph's parameters in a dynamic mode.
References:
1. Dijkstra E. W. A note on two problems in connexion with graphs, Numerische Mathematik 1. - 1959. - P. 269-271.
2. Bellman R. E. On the theory of dynamic programming, Proceedings of the National Academy of Sciences, - vol. 38. - 1952. - P. 716-719.
3. Bellman R. E. Dynamic programming and a new formalism in the calculus of variations. Proceedings of the National Academy of Sciences, - vol. 39. - 1953. - P. 1077-1082.
4. Floyd R. W. Algorithm 97: Shortest path, Commun. ACM 5. - 1962. - No. 6. - 345 p.
5. Окулов С. М. Программирование в алгоритмах / - М.: БИНОМ. Лаборатория знаний, - 2002. - С. 141164: ил. ISBN 5-94774-010-9
6. Problems on Algorithms Second Edition, Ian Parberry and William Gasarch, July - 2002. - C. 109-119, 174-205 c.