📄 tprob.m
字号:
%------------------------------------------------------------------------
% SWARM SIMULATION PROGRAM
% DESIGNED BY Jun Lu
% Intelligent and Complex Systems Lab
% HuaZhong University of Science and Technology
%------------------------------------------------------------------------
function Probability_Matrix=TProb(Distance_Matrix,x);
Dis_Mat=Distance_Matrix;
Rob_num=length(Dis_Mat);
Probability_Matrix=zeros(Rob_num);
yl=x(1,2);%leader的y轴值
L=[];%记录满足大于yl的agent的id号和个数,调用方式x(L(1,i))
R=[];%记录满足小于yl的agent的id号和个数
L1=[];
R1=[];
%-----------------------判断左子数和右子树的集合L,R矩阵,“整体上”划分为两个区域
lid=1;
rid=1;
for i=2:Rob_num;
if x(i,2)>=yl %判断leader的左子树
L(1,lid)=i;
L(2,lid)=Dis_Mat(1,i);
lid=lid+1;
else%判断leader的右子树
R(1,rid)=i;
R(2,rid)=Dis_Mat(1,i);
rid=rid+1;
end
end
%-------------------------------------------------------------------------------------------------------如果有左区域,进行判断
if length(L)~=0
num_LL=0;%和leader相连的左区间agent数
for i=1:length(L(1,:))
if L(2,i)~=0
num_LL=num_LL+1;
break
end
end
%%--------------------------------------------------------leader和左区域agent相连的情况,确定l
if(num_LL~=0)
l1id=1;
for i=2:Rob_num;
if Dis_Mat(1,i)~=0
if x(i,2)>=yl %判断leader的左子树
L1(1,l1id)=i;
L1(2,l1id)=Dis_Mat(1,i);
l1id=l1id+1;
end
end
end
%确定leader的左节点
ltemp=min(L1(2,:));
for j=1:length(L1(1,:))%最小值对应的agent的id
if ltemp==L1(2,j)
l=L1(1,j);
Probability_Matrix(L1(1,j),1)=1;%找到了与leader相连的左节点
break
end
end
%%---------------------------------------------------------------leader不和左区域agent相连的情况,确定l
else
Temp=[];
k=1;
for i=1:length(L(1,:))
Temp(1,k)=L(1,i);
Temp(2,k)=x(L(1,i),1);
k=k+1;
end
ltemp=max(Temp(2,:));
for j=1:length(Temp(1,:))
if ltemp==Temp(2,j)
l=Temp(1,j);
Probability_Matrix(l,1)=0;
break
end
end
end
end
%--------------------------L区域-----------------------------------
if length(L)~=0
[Probability_Matrix,L11,l11,L12,l12]=Choice(L,l,Probability_Matrix,Dis_Mat,x);
if length(L11)~=0
[Probability_Matrix,L21,l21,L22,l22]=Choice(L11,l11,Probability_Matrix,Dis_Mat,x)
if length(L21)~=0
[Probability_Matrix,L31,l31,L32,l32]=Choice(L21,l21,Probability_Matrix,Dis_Mat,x)
if length(L31)~=0
[Probability_Matrix,L41,l41,L42,l42]=Choice(L31,l31,Probability_Matrix,Dis_Mat,x)
if length(L41)~=0
[Probability_Matrix,L51,l51,L52,l52]=Choice(L41,l41,Probability_Matrix,Dis_Mat,x)
if length(L51)~=0
[Probability_Matrix,L61,l61,L62,l62]=Choice(L51,l51,Probability_Matrix,Dis_Mat,x)
if length(L61)~=0
[Probability_Matrix,L71,l71,L72,l72]=Choice(L61,l61,Probability_Matrix,Dis_Mat,x)
end
if length(L62)~=0
[Probability_Matrix,L73,l73,L74,l74]=Choice(L62,l62,Probability_Matrix,Dis_Mat,x)
end
end
if length(L52)~=0
[Probability_Matrix,L63,l63,L64,l64]=Choice(L52,l52,Probability_Matrix,Dis_Mat,x)
if length(L63)~=0
[Probability_Matrix,L75,l75,L76,l76]=Choice(L63,l63,Probability_Matrix,Dis_Mat,x)
end
if length(L64)~=0
[Probability_Matrix,L77,l77,L78,l78]=Choice(L64,l64,Probability_Matrix,Dis_Mat,x)
end
end
end
if length(L42)~=0
[Probability_Matrix,L53,l53,L54,l54]=Choice(L42,l42,Probability_Matrix,Dis_Mat,x)
if length(L53)~=0
[Probability_Matrix,L65,l65,L66,l66]=Choice(L53,l53,Probability_Matrix,Dis_Mat,x)
if length(L65)~=0
[Probability_Matrix,L79,l79,L710,l710]=Choice(L65,l65,Probability_Matrix,Dis_Mat,x)
end
if length(L66)~=0
[Probability_Matrix,L711,l711,L712,l712]=Choice(L66,l66,Probability_Matrix,Dis_Mat,x)
end
end
if length(L54)~=0
[Probability_Matrix,L67,l67,L68,l68]=Choice(L54,l54,Probability_Matrix,Dis_Mat,x)
if length(L67)~=0
[Probability_Matrix,L713,l713,L714,l714]=Choice(L67,l67,Probability_Matrix,Dis_Mat,x)
end
if length(L68)~=0
[Probability_Matrix,L715,l715,L716,l716]=Choice(L68,l68,Probability_Matrix,Dis_Mat,x)
end
end
end
end
if length(L32)~=0
[Probability_Matrix,L43,l43,L44,l44]=Choice(L32,l32,Probability_Matrix,Dis_Mat,x)
if length(L43)~=0
[Probability_Matrix,L55,l55,L56,l56]=Choice(L43,l43,Probability_Matrix,Dis_Mat,x)
if length(L55)~=0
[Probability_Matrix,L69,l69,L610,l610]=Choice(L55,l55,Probability_Matrix,Dis_Mat,x)
if length(L69)~=0
[Probability_Matrix,L717,l717,L718,l718]=Choice(L69,l69,Probability_Matrix,Dis_Mat,x)
end
if length(L610)~=0
[Probability_Matrix,L719,l719,L720,l720]=Choice(L610,l610,Probability_Matrix,Dis_Mat,x)
end
end
if length(L56)~=0
[Probability_Matrix,L611,l611,L612,l612]=Choice(L56,l56,Probability_Matrix,Dis_Mat,x)
if length(L611)~=0
[Probability_Matrix,L721,l721,L722,l722]=Choice(L611,l611,Probability_Matrix,Dis_Mat,x)
end
if length(L612)~=0
[Probability_Matrix,L723,l723,L724,l724]=Choice(L612,l612,Probability_Matrix,Dis_Mat,x)
end
end
end
if length(L44)~=0
[Probability_Matrix,L57,l57,L58,l58]=Choice(L44,l44,Probability_Matrix,Dis_Mat,x)
if length(L57)~=0
[Probability_Matrix,L613,l613,L614,l614]=Choice(L57,l57,Probability_Matrix,Dis_Mat,x)
if length(L613)~=0
[Probability_Matrix,L725,l725,L726,l726]=Choice(L613,l613,Probability_Matrix,Dis_Mat,x)
end
if length(L614)~=0
[Probability_Matrix,L727,l727,L728,l728]=Choice(L614,l614,Probability_Matrix,Dis_Mat,x)
end
end
if length(L58)~=0
[Probability_Matrix,L615,l615,L616,l616]=Choice(L58,l58,Probability_Matrix,Dis_Mat,x)
if length(L615)~=0
[Probability_Matrix,L729,l729,L730,l730]=Choice(L615,l615,Probability_Matrix,Dis_Mat,x)
end
if length(L616)~=0
[Probability_Matrix,L731,l731,L732,l732]=Choice(L616,l616,Probability_Matrix,Dis_Mat,x)
end
end
end
end
end
if length(L22)~=0
[Probability_Matrix,L33,l33,L34,l34]=Choice(L22,l22,Probability_Matrix,Dis_Mat,x)
if length(L33)~=0
[Probability_Matrix,L45,l45,L46,l46]=Choice(L33,l33,Probability_Matrix,Dis_Mat,x)
if length(L45)~=0
[Probability_Matrix,L59,l59,L510,l510]=Choice(L45,l45,Probability_Matrix,Dis_Mat,x)
if length(L59)~=0
[Probability_Matrix,L617,l617,L618,l618]=Choice(L59,l59,Probability_Matrix,Dis_Mat,x)
if length(L617)~=0
[Probability_Matrix,L733,l733,L734,l734]=Choice(L617,l617,Probability_Matrix,Dis_Mat,x)
end
if length(L618)~=0
[Probability_Matrix,L735,l735,L736,l736]=Choice(L618,l618,Probability_Matrix,Dis_Mat,x)
end
end
if length(L510)~=0
[Probability_Matrix,L619,l619,L620,l620]=Choice(L510,l510,Probability_Matrix,Dis_Mat,x)
if length(L619)~=0
[Probability_Matrix,L737,l737,L738,l738]=Choice(L619,l619,Probability_Matrix,Dis_Mat,x)
end
if length(L620)~=0
[Probability_Matrix,L739,l739,L740,l740]=Choice(L620,l620,Probability_Matrix,Dis_Mat,x)
end
end
end
if length(L46)~=0
[Probability_Matrix,L511,l511,L512,l512]=Choice(L46,l46,Probability_Matrix,Dis_Mat,x)
if length(L511)~=0
[Probability_Matrix,L621,l621,L622,l622]=Choice(L511,l511,Probability_Matrix,Dis_Mat,x)
if length(L621)~=0
[Probability_Matrix,L741,l741,L742,l742]=Choice(L621,l621,Probability_Matrix,Dis_Mat,x)
end
if length(L622)~=0
[Probability_Matrix,L743,l743,L744,l744]=Choice(L622,l622,Probability_Matrix,Dis_Mat,x)
end
end
if length(L512)~=0
[Probability_Matrix,L623,l623,L624,l624]=Choice(L512,l512,Probability_Matrix,Dis_Mat,x)
if length(L623)~=0
[Probability_Matrix,L745,l745,L746,l746]=Choice(L623,l623,Probability_Matrix,Dis_Mat,x)
end
if length(L624)~=0
[Probability_Matrix,L747,l747,L748,l748]=Choice(L624,l624,Probability_Matrix,Dis_Mat,x)
end
end
end
end
if length(L34)~=0
[Probability_Matrix,L47,l47,L48,l48]=Choice(L34,l34,Probability_Matrix,Dis_Mat,x)
if length(L47)~=0
[Probability_Matrix,L513,l513,L514,l514]=Choice(L47,l47,Probability_Matrix,Dis_Mat,x)
if length(L513)~=0
[Probability_Matrix,L625,l625,L626,l626]=Choice(L513,l513,Probability_Matrix,Dis_Mat,x)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -