⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 num_neighbors.asv

📁 无线ADHOC网络中
💻 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 + -