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

📄 u0.m

📁 无线传感器网络的可靠路由算法
💻 M
字号:
clear;
N=100;
M=100;
for i=1:N
    x(i)=rand(1)*M;
    y(i)=rand(1)*M;
end
x(1)=M*0.95;y(1)=M*0.95;
plot(x,y,'o',x(1),y(1),'p');
%for i=1:N
%    str=num2str(i);
%    text(x(i)-2,y(i)-2,str);
%end
for i=1:N
    k=i;
    for j=1:N
        if (x(i)-x(j))^2+(y(i)-y(j))^2<M^2*0.04 & i~=j & ((x(j)-M*0.95)^2+(y(j)-M*0.95)^2<(x(k)-M*0.95)^2+(y(k)-M*0.95)^2 | k==i)
            k=j;
        end
    end
if k~=i
    parent(i)=k;
end
  a(1)=x(i);a(2)=x(k);b(1)=y(i);b(2)=y(k);
  line(a,b);
end
child=zeros(N,N*0.1);
for i=1:N
    m(i)=1;
   for j=1:N
        if  parent(j)==i
            child(i,m(i))=j;
            m(i)=m(i)+1;
        end
   end
end
neighbour=zeros(N,N*0.2);
for i=1:N
    n(i)=1;
   for j=1:N
      if (x(i)-x(j))^2+(y(i)-y(j))^2<M^2*0.04 & i~=j
          neighbour(i,n(i))=j;
          n(i)=n(i)+1;
      end
   end
end
t=zeros(N,N*0.15);
f=zeros(N,N*0.15);
u=1;v=1;
t(u)=1;f(u)=1;
k=1;d=1;
visited=zeros(N,1);visited(1)=1;
max_t=1;max_f=1;
while k<N & d<20*N
    if  child(u,v)~=0 & visited(child(u,v),1)==0 
        u=child(u,v);
        p=1;q=1;i=1;
    while i~=n(u)
        i=1;
        while i<n(u)
            if   p==t(neighbour(u,i))
               p=p+1;
               break;
            end
            i=i+1;
        end
    end
    i=1;
    while i~=n(u)
        i=1;
        while i<n(u)
            if  q==f(neighbour(u,i))
               q=q+1; 
               break;
            end
            i=i+1;
        end
    end
        t(u)=p;f(u)=q;
        if t(u)>max_t
            max_t=t(u);
        end
        if f(u)>max_f
            max_f=f(u);
        end
        visited(u,1)=1; 
        k=k+1;
%        text(x(u)+2,y(u)+2,num2str(t(u)));
        text(x(u)-2,y(u)-2,num2str(f(u)));
        v=1;
    else
        if child(u,v)==0
           u=parent(u);
           v=1;
        else
           v=v+1;
        end
    end
    d=d+1;
end
max_t
max_f
        
        
     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -