Innovating Multicast Tree and Artificial Algorithms for Service Based Routing

: In advance network we may use service Based Routing (SBR), so data is transmitted from a source node to destination nodes are not depended on destination addresses. So, it may be comfortable with new advanced technology as cloud computing and also flexible and reliable. Multicast routing is advanced technique to deliver data simultaneously from one source node to multiple destination nodes with QOS (quality of service). In this paper


Basical Concepts
In order to model a general network in common by a graph in discrete mathematics. In which denote V is the set of vertics that are nodes in the network, E is the set of the edges that are links to connect each pair of nodes in the graph. The routing problem is to make optimization routes from routing table. The inputs of the routing table are collected by routing process. The routing process consists of several minor detail processes: In the reactive or on-demand routing protocol: i) Broadcast packets over network to find routes; ii) Collecting reply packets to build optimal routes; in proactive protocol it usually collects network information through flooding HELLO messages. On receiving HELLO packets, network node updates the routing table to use to find routes as introducing in the next section. HELLO messages are effective to collect network information.

Fuzzy Logic
The fuzzy logic is a branch of logical field of mathematic [1] based on the probabilistic of the related factors. It uses inference regulation to make decision based on fuzzy inputs. It may also use some formulas to calculate fuzzy outputs based on weights assigned to fuzzy inputs. We all know that in reality every thing also has a level of true, especially in MANET, all nodes continuous move with changing velocity and very limited energy. So applying this kind of logic to assess the metrics of MANET is very comfortable. For example, GOOGLE are building many automatically system to coordinate vehicle system such as satellite system, planet, astronaut, so every thing can be apply this theory. So MANET routing is granted an important role in these systems. In the moving using GREEDY and ACO algorithms is very comfortable to assess the velocity and orbital motion of moving objects. In particular, the coordination of moving system can be tracked by GPS system and these can be put into artificial system to optimize. IOT is short for Internet of thing that is a trend to connect all the things of the Planet. So from living tools to astronaut all connected by Global Internet. For example, on the move we can connect to operate our work.

Greedy Algorithm
The greedy algorithm is very popular in vehicle routing. That may be effective in MANET routing because in this routing all nodes are usually to move randomly. So in this paper will focus on these algorithms to make multiple paths routing with quality of service [2]. The Greedy algorithm executes based on heuristic principle, that continuously find local optimal solution in each step of the total operation until global optimal solution found or a predefined processing steps.

Ant Colony Optimization
The ACO and Greedy algorithms are two artificial algorithms, which choose routes based on probability of each connection between each pair of nodes. The probability of each connection is assigned by fuzzy logic introduced above. When the detecting process operates, that assigns each connection found a weight. This weight is used to calculated probability for choosing the route. The probability may be calculates by some methods, for example using RREQ messages that emitting from a node and the replied RREP messages. RREP contains information to measure connection probability. Beside, in proactive routing, it is based on nodes' received HELLOs information to assess probability of connection: Prob(Connection(i, j))=F(M_1, M_2,…, M_n), M_1, M2, …, M_i are some metrics to assess connection.

Find Minimum Spanning Tree (MST)
Using three above algorithms [1][2] to find and assign weight for each edge of the graph.
Cost(E(v_1, v_2))= FZY|GRD|ACO(E(v_1, v_2)) (1) At first making minimum spanning tree, then regulating this tree to get multicast tree. Sorting the edges of the graph descending; Remove edge beginning from the first element of this sorted list individually with the condition that this process doesn't dividing this graph into two disjoint components; Check the number of edges of the graph, if it is equal to number of vertices minus one. If the condition is true then the algorithm ends to get the tree.

Find Multicast Tree
We denote multicast tree by: (S, {D_1, D_2, …, D_n}), s is source node, D={D_1, D_2, …, D_n} is destination set. Choose the root of the tree, which is the source node to the tree, D={Ø}, edges scanned set SC={Ø}. Tracing the tree from this source node to the destination nodes individually by all directions following the edges that are not in SC: S {C_1, C_2, …, C_n}. For each C_i: i) check whether C_i is in SC, if not: ii) check whether C_i is destination node, if true: D=D ∪ C_i; iii) SC=SC ∪ (S, C_i); iv) scan C_i by above i), ii), iii) steps. To each destination node, if it continues connecting to another nodes, using GEN/ BEE/ ACO algorithms to find optimal path for remaining nodes. Otherwise using the next steps to get the optimal solution. The alg. ends when all destination nodes are added to the tree. All branches of the tree that don't end with a destination node are being cut.

Use Kruskal Algorithm
This algorithm picks edges for MST depends on the principle: Sort the edge set in ascending order: {E_1, E_2, …, E_n}. Make for each vertex v a set of vertices V that are all connected to V. At first assign: V={v}. Assume i is the current edge picked, E_i=(v_k, v_h), if v_k and v_h are belonged to two disjoint sets of vertices (that have no common vertices: V_k ∩ V_h = ∅), add E_i to the MST, We update: MST = MST ∪ E_i, merge V_k and V_h into V_k: Until the number of elements of MST equal to |V| -1. At that time all vertices are in common one connected graph with total minimum distance between these vertices. That also means all disjoint vertices sets are merged into one component. The complexity of this algorithm is less than above introduced algorithm. Because the complexity of this algorithms is reduced after each round. The number of disjoint sets is reduced by one after a edge is added to the MST. Only when number of element of MST is equal to number of vertices minus one then the algorithm ends: So it is very good for the network with number of nodes is not large.

Make QOS Routes from Multiple Multicast Tree
We continuously apply the above algorithm to find some multicast trees. After finding out one tree, in the next step of finding using the edges minus all the edges of the found trees. So this algorithm converses fast. Until the remaining set of edges contains number of edges less than |Vertices|-1 then ending. Combining all found trees to get multiple path of each branch of the tree to make QOS routes.
So each route is multiplied by combining some gradients paths from these MST trees. So the bandwidth of route is easily to increase to meet the demand.

Build Hierachical Multiple Multicast Routing
In the papers [1-2-6-7] we have mentioned some strategies to make hierarchical routing. In the global network, applying the R + tree to manage the network. Assume, at a level in this tree, R is the vertex at this level, this vertex has n child vertices {C_1, C_2, …, C_n}, which are R + tree children of their parent. So we have: (6) In which, C_i is root of a child R + tree, in each child R + tree, we use the introduced algorithms to make multiple multicast trees to route in this cluster of whole network. In each multicast tree, it may be used an optimal algorithm such as GEN or BEE or ACO [1-2-3-7-8] to find optimal routes for data transmission.

Algorithms Simulations
In order to simulate above analyzed algorithms, we have to setup data structures to store the sets of vertices and edges of the graph of the network.
a) The This class uses the MST finding algorithm by the principles of KrusKal Alg. to accept properly vertices to the result set. This algorithm is effective when the number of vertices of the graph is not large. By the above analysis the number of the edges is more than the number of vertices one. This Alg. finds more than one MST tree until the number of remaining vertices is not enough for one properly MST or there is no founded MST.
The next is the diagram to test the performance of the MST making Alg. that the given graph has less than or equal to 10000 nodes. The number of times to simulate is 1000. The time to execute from 100 up to 170 mili seconds. The cost of each edge is generated randomly with the given graph is full connected, the number of edges is: |V|*(|V|-1)/2 = 500000. This diagram finds MST when number of nodes of the given graph is changed. The Alg. to find the multicast tree is rather simple as above introduction. Sometimes the time to execute the Alg. is not increased when the number of nodes of the graph is increasing.

Conclusions
Normal network node can use proactive or reactive or on-demand routing protocol based on network situation and mobile rate of nodes. So applying above algorithms to find multiple paths routes with QOS guaranteed is very effectively and the capability to scale to large networks. When the number of nodes increases, we may use the above-introduced R + tree to make hierarchical multicast routing. The purpose of hierarchical multicast routing is mainly aimed to reduce overhead in large network routing. The algorithms that are used for finding multiple multicast trees are both very comfortable for from small to large networks with guaranteed QOS.