📄 num_neighbors.asv
字号:
%The Number of Neighbors Needed for Connectivity of Wireless Networks%
%%%%%%********Report research simulation***********%%%%%%%%%%%%%%%%%%%%%%%%
%************simulation of K-connectivity*************************
%********1000*1000m^2,n=500 nodes ,radio range r0,minimum node degree dmin*
%%%%%%%%%%%%%%%%%%Date 2006,6,13--By Liu FengWei%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function
Nodenum=[0:20:1000]; %number of nodes
c=1;%in paper
Len_nodenum=length(Nodenum);
P_connect=zeros(Len_nodenum,1);
%Ndeg=zeros(Nodenum,L); %record degree of every node
%%%%%%%%%%%%%%%%%%%%%%%%%Generate links%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%if the distance between two nodes smaller than r0, link is created%%%%%%
for n=2:Len_nodenum
C_connect=zeros((Nodenum(n)-1),Nodenum(n));
NodeXY=1000*rand(Nodenum(n),2);%coordinates of node
Neighbor=ceil(c*log(Nodenum(n)));
t_Links=zeros((Nodenum(n)-1),Nodenum(n));%temporarily links
Links=zeros(Nodenum(n), Neighbor);
for i=1:Nodenum(n)
for j=1:Nodenum(n)
if(i~=j)
t_Links(j,i)=sqrt((NodeXY(i,1)-NodeXY(j,1))^2+(NodeXY(i,2)-NodeXY(j,2))^2) ; %Euclidian distance
end
end
end
t_Links=sort(t_Links);
Links=t_Links(1:Neighbor,:);%choose c*log(Nodenum(n)) Neighbors
%%%%%%%%%%%%%%Calculate connectivity of every radio %%%%%%%%%%%%%%%
%temp=zeros(1,(Nodenum(n)-1)); %just for temp---no extra usness
for i=1:Nodenum(n) %From last node--for its simplicity
%%%%record the node connecting node i%%%%%%%%%
L_Neighbor=Neighbor;
C_connect(1:L_Neighbor,i)=Links(:,i);
k=1;
while(C_connect(k,i)) %find the node in Nconnect(i,:,m)
%CN_index=Links(:,k); %Connecting node of index(k)
temp=Links(:,k); %temporarily record the links of node CN_index
if(any(temp))
for d=1:L_Neighbor
D_index=find(temp==Links(d,i)); %find delete index of the dth node
temp(D_index)=[]; %delete overlap node
end
L_temp=sum(temp~=0); %the number of nodes in temp
%disp(L_Link)
C_start= L_Neighbor;
L_Neighbor=L_Neighbor+L_temp; %end length
C_connect((C_start+1):L_Neighbor,i)=temp(1:L_temp);
end
k=k+1;
end
end
sumlinks=Nodenum(n)*(Nodenum(n)-1)/2;
P_connect(n)=sum(sum(C_connect>0))/(2*sumlinks) ;
end
%%%%%%%%%%%%Calculate the prob of k connectivity%%%%%%
%for i=1:L
% s=sum(sum(Nconnect(:,:,i)>0));
; %prob P(dmin>=N0)
%Pdmin=min(Ndeg)/sum(:,i);
%end
%%%%%%%%%%%%%%%%%%%%%draw figure%%%%%%%%%%%%%%%%%%%%%%%
figure(1)
plot(Nodenum,P_connect,'ro-')
grid on;
%axis([0 Rlimit 0 1])
xlabel('range(in m)','color','b')
ylabel('prob for Connect_k','color','b')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -