simulation_minimum_internal_node_spanning_tree

advertisement
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_nodeboolean
)
global information:
rangeinteger
radiusinteger
//group_member or not
//dominating_set or not (global)
//multicast transmission node
//range of nodes distributed
//microwave radius of each node
node_numberinteger
//number of nodes in the graph
neighbor_listmatrix 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_nodeboolean
//multicast transmission node
neighbor_listarray(1,node_number) //Boolean array to adjust neighbor
route_tablearray(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︰
rangeinteger
//range of nodes distributed
radiusinteger
//microwave radius of each node
node_numberinteger
//number of nodes in the graph
neighbor_listmatrix with index [0..node_number, 0..node_number]
//list of nodes neighbor each node can
Probabilityinteger
Arbitrary integer
Messagestring
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.
Download