Simulation digest and development note for Minimum internal node (spanning tree) multicast scheme. 20031129 updated Data structure: For each node in the topology; Structure node (id, integer //identification of every node degree, integer x, double y, double //degree of each node //x axis value //y axis value group_member,boolean dominating_member,boolean internal_nodeboolean ) global information: rangeinteger radiusinteger //group_member or not //dominating_set or not (global) //multicast transmission node //range of nodes distributed //microwave radius of each node node_numberinteger //number of nodes in the graph neighbor_listmatrix with index [0..node_number, 0..node_number] //list of nodes neighbor each node can access merely its own list My Idea:Hierarchy dominating set with leafy tree [1] property 1. 2. 3. 4. find dominating set with paper [2]. find those nodes which dominates multicast member and in the dominating set combine these nodes with leafy tree property count internal node numbers to find cost Simulation:Matlab programming in .m files Nodes quantity should be no more than 50. Radius would be no more than 100. (20031117) Using Distance Vector Algorithm to compute shortest path for each node. Try to eliminate using of global information for every node. Structure node ( id, integer //identification of every node degree, integer //degree of each node x, double //x axis value y, double //y axis value group_member,boolean //group_member or not dominating_member,boolean //dominating_set or not (global) internal_nodeboolean //multicast transmission node neighbor_listarray(1,node_number) //Boolean array to adjust neighbor route_tablearray(2,node_number) //(next_hop, cost) pair, index is destination ) routing_table for each nodes maintains a one-dimensional array, and it can be read like this︰ for each pair ( a, b) in route_table of node i with index k a route from node “i” to node “k” with next hop as “a” and cost “b” … Route_table example Index k Node i Next hop a … Cost b … Global information︰ rangeinteger //range of nodes distributed radiusinteger //microwave radius of each node node_numberinteger //number of nodes in the graph neighbor_listmatrix with index [0..node_number, 0..node_number] //list of nodes neighbor each node can Probabilityinteger Arbitrary integer Messagestring access merely its own list //used to determine whether it is multicast member //number of arbitrary nodes just spread on the graph //show message temp variable Global view of network︰ We assume that each message transmission in the network is synchronize and double-direction. Old routing information EX︰ New routing information not yet be computed And we assume that each node starts its own distance vector algorithm whenever it gets all information from its neighbor. For worst case, it takes node_number-1 times to transmit routing information. EX︰ 4 (5-1) times transmission Use tables to record the message passing on the network︰ cost_box ( node_number, node_number); For each element (i, j) in cost_box, it represents the cost from i to j Next_box( node_number, node_number); For each element (i, j) in next_box, it represents the next hop from i to j Simulation at 2003/11/29 is done by these steps︰ First, pick a multicast group member randomly as source to initiate the multicast process. Second, construct a shortest path tree from the source to all destinations. Using route_table in the node-structure, constructed by distance vector algorithm, we show the shortest-path-tree in blue lines and multicast member as blue points, others are black. Third, after doing this, we spread arbitrary number of nodes on the graph and connect these nodes with their neighbors. All these are shown in red. Now we can observe some small example. Remember the notation︰ Multicast member blue circle Not multicast member black diamond Arbitrary node red square 模擬1 100 90 80 70 m 60 50 m 40 m 30 20 m 10 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 100 m 90 m 80 m 70 60 50 40 30 20 10 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 100 m 90 m m m 80 70 60 50 40 30 20 10 0 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 100 90 80 70 60 m 50 m 40 30 20 m 10 0 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 100 90 80 70 60 m 50 40 30 m 20 mm 10 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 90 80 70 60 m 50 m m 40 m 30 20 10 0 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 100 90 m 80 m 70 m 60 50 40 30 20 10 0 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 90 m 80 m 70 m 60 m 50 m 40 30 20 10 0 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 模擬1 100 90 80 m 70 60 m 50 40 30 m 20 10 0 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 90 100 90 100 模擬1 90 m 80 70 60 50 m 40 30 m 20 m 10 0 0 (20031129) 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 50 Today, received mail from partner. First he wants the nodes to be more and each nodes in the graph will have less degree. (number of multicast member , number of graph nodes) = ( 5~10, 10~20) or (10~15, 20~30) So I modified node_number to 20 and range to 30. By reducing range, I can reduce the degree of nodes in dense part of graph. By increasing node_number, I keep the most part of connectivity and generate more situation. But there is a programming problem. I got an NaN during computing lines in the graph, even if I take a comparison function (if ( next_hop ~= NaN ))to prevent it from doing this step, it still happen, I can’t realize why it got into the program. Here are today’s simulation model: simulation 1 m7 100 m12 16 90 m6 80 m2 13 1 70 m4 14 10 60 11 9 50 m18 3 m19 40 30 17 20 5 10 0 15 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 20 8 90 100 simulation 1 100 8 90 m11 9 m7 1 3 80 m4 70 15 60 m2 20 19 50 m10 5 m14 40 16 30 m1812 20 10 13 m6 0 10 m17 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 90 100 simulation 1 100 7 16 15 9 90 m19 m17 80 m4 13 m8 70 60 m6 m5 50 2 18 m1 40 m12 m20 m3 30 m14 m10 20 11 10 0 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 90 100 simulation 1 18 100 16 90 5 m4 m1 80 11 20 m9 70 60 8 7 m14 10 12 m15 m6 19 50 m2 40 3 30 13 20 10 0 17 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 90 100 simulation 1 100 20 90 80 m6 70 m12 m1 60 m9 18 50 16 2 11 40 13 10 30 15 4 20 17 7 m19 3 5 14 10 0 8 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 90 100 simulation 1 90 2 80 m13 70 4 60 m19 1 50 17 40 3 11 m9 14 12 m16 18 7 8 30 20 m10 m20 m15 5 10 6 0 0 10 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 simulation 1 m4 12 100 m1 90 m11 90 100 90 100 m17 16 2 8 10 3 80 18 70 60 20 m5 50 m19 15 m14 40 30 m6 20 m9 10 m13 0 0 10 7 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 simulation 1 100 12 17 14 90 m10 80 7 m1 m11 m3 70 60 m18 19 50 5 m4 40 6 20 30 m9 20 8 m13 16 10 2 0 0 10 15 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 90 100 simulation 1 9 100 10 90 15 m7 17 80 70 11 5 13 60 3 m18 2 50 8 1 40 20 4 m19 12 30 m6 20 10 16 0 0 10 m14 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 90 100 simulation 1 100 3 20 4 90 11 16 80 m9 70 7 60 m18 50 m15 19 2 40 5 14 30 20 m1 13 10 6 17 10 8 0 0 10 m12 20 30 40 50 60 70 80 range of x-axis and y-axis is 0 to 100, radius of each node is 30 90 100 After handing out the simulation graph, I attach the counting of internal nodes at the end of program. (20031201) Reference: [1] A Near-linear-time Approximation Algorithm for Maximum-leaf Spanning Tree. [2] A Dominating-Set-Based Routing Scheme in Ad Hoc Wireless Networks.