inferring the optimum uav's trajectories configuration over definite intruder paths with...

47
Genetic Trial #1 Inferring the Optimum UAV's Trajectories Configuration Over Definite Intruder Paths with Multiple Random Starting Points Via Genetic Algorithm.

Upload: ahmed-momtaz-hosny-phd

Post on 14-Jan-2017

69 views

Category:

Design


0 download

TRANSCRIPT

Genetic Trial #1

Inferring the Optimum UAV's Trajectories Configuration Over Definite Intruder Paths with Multiple Random Starting Points Via Genetic Algorithm.

Genetic Trial #2

Genetic Trial #3

Genetic Trial #4

Genetic Trial #5

%Generic Algorithm for function f(x1,x2,x3,........) optimum UAV Trajectories Allocation over Different Intruder Paths with Random Starting Points. Dx_Time=0; Dx10_Time=0; Dx20_Time=0; Dx30_Time=0; Dx4_Time=0; Dx0_Time=0; Dx11_Time=0; Dx21_Time=0; Dx31_Time=0; Dx41_Time=0; Dx1_Time=0; Dx12_Time=0; Dx22_Time=0; Dx32_Time=0; Dx42_Time=0; Dx2_Time=0; Dx13_Time=0; Dx23_Time=0; Dx33_Time=0; Dx43_Time=0; Dx3_Time=0; Dx14_Time=0; Dx24_Time=0; Dx34_Time=0; Dx44_Time=0; %Parameters mar=40; mar1=50; mar2=50; Size=40; G=5; CodeL=10; W0_max=20000/2; W0_min=10000/2; W1_max=20000/2; W1_min=10000/2; W2_max=20000/2; W2_min=10000/2; W3_max=20000/2; W3_min=10000/2; W4_max=20000/2; W4_min=10000/2; L0_max=100000/2; L0_min=20000/2;

L1_max=100000/2; L1_min=20000/2; L2_max=100000/2; L2_min=20000/2; L3_max=100000/2; L3_min=20000/2; L4_max=100000/2; L4_min=20000/2; th0_max=pi/3; th0_min=-pi/3; th1_max=pi/3; th1_min=-pi/3; th2_max=pi/3; th2_min=-pi/3; th3_max=pi/3; th3_min=-pi/3; th4_max=pi/3; th4_min=-pi/3; lat0_max=80000; lat0_min=0; lat1_max=80000; lat1_min=0; lat2_max=80000; lat2_min=0; lat3_max=80000; lat3_min=0; lat4_max=80000; lat4_min=0; long0_max=30000; long0_min=10000; long1_max=30000; long1_min=10000; long2_max=30000; long2_min=10000; long3_max=30000; long3_min=10000; long4_max=30000; long4_min=10000; E=round(rand(Size,25*CodeL)); %Initial Code %Main Program

for k=1:1:G hhh=k time(k)=k; for s=1:1:Size ssss=s clear RTG RTYG RTG1 RTYG1 RTG2 RTYG2 RTG3 RTYG3 RTG4 RTYG4 clear y1=0 y2=0 y3=0 y4=0 y5=0 y6=0 y7=0 y8=0 y9=0 y10=0 y11=0 y12=0 y13=0 y14=0 y15=0 y16=0 y17=0 y18=0 y19=0 y20=0 y21=0 y22=0 y23=0 y24=0 y25=0 m=E(s,:); y1=0;y2=0;y3=0;y4=0;y5=0;y6=0;y7=0;y8=0;y9=0;y10=0;y11=0;y12=0;y13=0;y14=0;y15=0;y16=0;y17=0;y18=0;y19=0;y20=0;y21=0;y22=0;y23=0;y24=0;y25=0; %Uncoding m1=m(1:1:CodeL); for i=1:1:CodeL y1=y1+m1(i)*2^(i-1); end W0=2*round((W0_max-W0_min)*y1/1023+W0_min); m2=m(CodeL+1:1:2*CodeL); for i=1:1:CodeL y2=y2+m2(i)*2^(i-1); end W1=2*round((W1_max-W1_min)*y2/1023+W1_min); m3=m(2*CodeL+1:1:3*CodeL); for i=1:1:CodeL y3=y3+m3(i)*2^(i-1); end W2=2*round((W2_max-W2_min)*y3/1023+W2_min); m4=m(3*CodeL+1:1:4*CodeL); for i=1:1:CodeL y4=y4+m4(i)*2^(i-1); end W3=2*round((W3_max-W3_min)*y4/1023+W3_min); m5=m(4*CodeL+1:1:5*CodeL); for i=1:1:CodeL y5=y5+m5(i)*2^(i-1); end W4=2*round((W4_max-W4_min)*y5/1023+W4_min);

m6=m(5*CodeL+1:1:6*CodeL); for i=1:1:CodeL y6=y6+m6(i)*2^(i-1); end L0=2*round((L0_max-L0_min)*y6/1023+L0_min); m7=m(6*CodeL+1:1:7*CodeL); for i=1:1:CodeL y7=y7+m7(i)*2^(i-1); end L1=2*round((L1_max-L1_min)*y7/1023+L1_min); m8=m(7*CodeL+1:1:8*CodeL); for i=1:1:CodeL y8=y8+m8(i)*2^(i-1); end L2=2*round((L2_max-L2_min)*y8/1023+L2_min); m9=m(8*CodeL+1:1:9*CodeL); for i=1:1:CodeL y9=y9+m9(i)*2^(i-1); end L3=2*round((L3_max-L3_min)*y9/1023+L3_min); m10=m(9*CodeL+1:1:10*CodeL); for i=1:1:CodeL y10=y10+m10(i)*2^(i-1); end L4=2*round((L4_max-L4_min)*y10/1023+L4_min); m11=m(10*CodeL+1:1:11*CodeL); for i=1:1:CodeL y11=y11+m11(i)*2^(i-1); end th0=(th0_max-th0_min)*y11/1023+th0_min; m12=m(11*CodeL+1:1:12*CodeL); for i=1:1:CodeL y12=y12+m12(i)*2^(i-1); end th1=(th1_max-th1_min)*y12/1023+th1_min; m13=m(12*CodeL+1:1:13*CodeL); for i=1:1:CodeL y13=y13+m13(i)*2^(i-1); end

th2=(th2_max-th2_min)*y13/1023+th2_min; m14=m(13*CodeL+1:1:14*CodeL); for i=1:1:CodeL y14=y14+m14(i)*2^(i-1); end th3=(th3_max-th3_min)*y14/1023+th3_min; m15=m(14*CodeL+1:1:15*CodeL); for i=1:1:CodeL y15=y15+m15(i)*2^(i-1); end th4=(th4_max-th4_min)*y15/1023+th4_min; m16=m(15*CodeL+1:1:16*CodeL); for i=1:1:CodeL y16=y16+m16(i)*2^(i-1); end lat0=(lat0_max-lat0_min)*y16/1023+lat0_min; m17=m(16*CodeL+1:1:17*CodeL); for i=1:1:CodeL y17=y17+m17(i)*2^(i-1); end lat1=(lat1_max-lat1_min)*y17/1023+lat1_min; m18=m(17*CodeL+1:1:18*CodeL); for i=1:1:CodeL y18=y18+m18(i)*2^(i-1); end lat2=(lat2_max-lat2_min)*y18/1023+lat2_min; m19=m(18*CodeL+1:1:19*CodeL); for i=1:1:CodeL y19=y19+m19(i)*2^(i-1); end lat3=(lat3_max-lat3_min)*y19/1023+lat3_min; m20=m(19*CodeL+1:1:20*CodeL); for i=1:1:CodeL y20=y20+m20(i)*2^(i-1); end lat4=(lat4_max-lat4_min)*y20/1023+lat4_min; m21=m(20*CodeL+1:1:21*CodeL); for i=1:1:CodeL y21=y21+m21(i)*2^(i-1); end long0=(long0_max-long0_min)*y21/1023+long0_min; m22=m(21*CodeL+1:1:22*CodeL);

for i=1:1:CodeL y22=y22+m22(i)*2^(i-1); end long1=(long1_max-long1_min)*y22/1023+long1_min; m23=m(22*CodeL+1:1:23*CodeL); for i=1:1:CodeL y23=y23+m23(i)*2^(i-1); end long2=(long2_max-long2_min)*y23/1023+long2_min; m24=m(23*CodeL+1:1:24*CodeL); for i=1:1:CodeL y24=y24+m24(i)*2^(i-1); end long3=(long3_max-long3_min)*y24/1023+long3_min; m25=m(24*CodeL+1:1:25*CodeL); for i=1:1:CodeL y25=y25+m25(i)*2^(i-1); end long4=(long4_max-long4_min)*y25/1023+long4_min; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% P=0; F_P=0; for P=1:1:50 P=P+1; %%%%%Intruder trajectory determination Ts=1; IT_v=15; ds=Ts*IT_v; shift_x=rand(1)*20000; shift_x1=rand(1)*20000; shift_x2=rand(1)*20000; shift_x3=rand(1)*20000; shift_x4=rand(1)*20000; shift_x5=rand(1)*20000; shift_y=5000; shift_y1=20000; shift_y2=45000; shift_y3=55000; shift_y4=80000; shift_y5=93000; a=0.0001; b=0.0001; c=0.0001;

d=4000; e=4000; g=4000; x0=0; y0=0; f0=0; x(1)=rand(1)*20000; f(1)=d*sin(a*x(1))+shift_y; f1(1)=d*sin(a*x(1))+shift_y; x01=0; y01=0; f01=0; x1(1)=rand(1)*20000; f01(1)=e*sin(b*x1(1))+shift_y1; f11(1)=e*sin(b*x1(1))+shift_y1; x02=0; y02=0; f02=0; x2(1)=rand(1)*20000; f02(1)=g*sin(c*x2(1))+shift_y2; f12(1)=g*sin(c*x2(1))+shift_y2; x03=0; y03=0; f03=0; x3(1)=rand(1)*20000; f03(1)=d*cos(a*x3(1))+shift_y3; f13(1)=d*cos(a*x3(1))+shift_y3; x04=0; y04=0; f04=0; x4(1)=rand(1)*20000; f04(1)=e*cos(b*x4(1))+shift_y4; f14(1)=e*cos(b*x4(1))+shift_y4; x05=0; y05=0; f05=0; x5(1)=rand(1)*20000; f05(1)=g*cos(c*x5(1))+shift_y5; f15(1)=g*cos(c*x5(1))+shift_y5;

for i=1:1:4000 df=a*d*cos(a*x(i)); dx=cos(atan(df))*ds; x(i+1)=x(i)+dx; f(i+1)=d*sin(a*(i)); f1(i+1)=d*sin(a*x(i+1))+shift_y; df1=b*e*cos(b*x1(i)); dx1=cos(atan(df1))*ds; x1(i+1)=x1(i)+dx1; f01(i+1)=e*sin(b*(i)); f11(i+1)=e*sin(b*x1(i+1))+shift_y1; df2=c*g*cos(c*x2(i)); dx2=cos(atan(df2))*ds; x2(i+1)=x2(i)+dx2; f02(i+1)=g*sin(c*(i)); f12(i+1)=g*sin(c*x2(i+1))+shift_y2; df3=-a*d*sin(a*x3(i)); dx3=cos(atan(df3))*ds; x3(i+1)=x3(i)+dx3; f03(i+1)=d*cos(a*(i)); f13(i+1)=d*cos((a*x3(i+1)))+shift_y3; df4=-b*e*sin(b*x4(i)); dx4=cos(atan(df4))*ds; x4(i+1)=x4(i)+dx4; f04(i+1)=e*cos(b*(i)); f14(i+1)=e*cos((b*x1(i+1)))+shift_y4; df5=-c*g*sin(c*x5(i)); dx5=cos(atan(df5))*ds; x5(i+1)=x5(i)+dx5; f05(i+1)=g*cos(c*(i)); f15(i+1)=g*cos((c*x5(i+1)))+shift_y5; end u=0:1:99;

%plot(x+shift_x,f1+shift_y,x1+shift_x1,f11+shift_y1,x2+shift_x2,f12+shift_y2,x3+shift_x3,f13+shift_y3,x4+shift_x4,f14+shift_y4,x5+shift_x5,f15+shift_y5) %plot(x,f1,x1,f11,x2,f12,x3,f13,x4,f14,x5,f15) %plot(u,f,x,f1) RT0_x0=0; RT1_x0=0; RT2_x0=0; RT3_x0=0; RT4_x0=0; RT5_x0=0; RT0_y0=0; RT1_y0=0; RT2_y0=0; RT3_y0=0; RT4_y0=0; RT5_y0=0; RT0_v=35; RT1_v=35; RT2_v=35; RT3_v=35; RT4_v=35; RT5_v=35; RT0_D=RT0_v*Ts; RT1_D=RT1_v*Ts; RT2_D=RT2_v*Ts; RT3_D=RT3_v*Ts; RT4_D=RT4_v*Ts; RT5_D=RT5_v*Ts; R0=W0/2;R1=W1/2;R2=W2/2;R3=W3/2;R4=W4/2; Q0=L0/2;Q1=L1/2;Q2=L2/2;Q3=L3/2;Q4=L4/2; RTG=0; RTG1=0; RTG2=0; RTG3=0; RTG4=0; for W=1:1:4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Next location on the first flight path if RT0_y0>=0

KK=0; T=length(RTG); while Q0-RT0_x0>0.1 && RT0_x0+Q0>0.1|| -RT0_x0+Q0<0.1 KK=KK+1; if RT0_x0>=0 && RT0_x0<=(Q0-R0) RT0_xn=RT0_x0-RT0_D; RT0_yn=R0; else if RT0_x0<0 && RT0_x0>(Q0-R0)*(-1) if (RT0_x0+(Q0-R0))<=mar RT0_xn=-1*(Q0-R0); RT0_yn=R0; else RT0_xn=RT0_x0-RT0_D; RT0_yn=R0; end else if RT0_x0>(Q0-R0) && RT0_x0<Q0 if (RT0_x0-(Q0-R0))<=mar1 RT0_xn=(Q0-R0); RT0_yn=R0; else RT0_xn= R0*cos((RT0_D/R0)+acos(((RT0_x0)-(Q0-R0))/R0))+(Q0-R0); RT0_yn=((R0)^2-(RT0_xn-(Q0-R0))^2)^0.5; end else if RT0_x0<=(-1)*(Q0-R0) && RT0_x0>-Q0 RT0_xn= -R0*cos(((-1)*RT0_D/R0)+acos((((-1)*RT0_x0)-(Q0-R0))/R0))-(Q0-R0); RT0_yn=((R0)^2-((-RT0_xn)-(Q0-R0))^2)^0.5; else end end

end end RT0_x0=RT0_xn; RT(KK)=RT0_xn; RTY(KK)=RT0_yn; RTG(T+KK-1)=RT(KK); RTYG(T+KK-1)=RTY(KK); RTG(T+KK-1)=(RTG(T+KK-1)*cos(th0)-RTYG(T+KK-1)*tan(th0)*cos(th0))+long0; RTYG(T+KK-1)=(RTG(T+KK-1)*cos(th0)-RTYG(T+KK-1)*tan(th0)*cos(th0))*tan(th0)+RTYG(T+KK-1)/cos(th0)+lat0; if RT0_yn<mar RT0_y0=-1; else end end elseif RT0_y0<0 T=length(RTG); KK=0; while (Q0-RT0_x0>0.1 && RT0_x0+Q0>0.1)|| RT0_x0+Q0<0.1 % for KK=1:1:2928 KK=KK+1; if RT0_x0>=0 && RT0_x0<=(Q0-R0) if (RT0_x0+(Q0-R0))<=mar RT0_xn=(Q0-R0); RT0_yn=-R0; else RT0_xn=RT0_x0+RT0_D; RT0_yn=-R0; end else

if RT0_x0<0 && RT0_x0>=(Q0-R0)*(-1) RT0_xn=RT0_x0+RT0_D; RT0_yn=-R0; else if RT0_x0>=(Q0-R0) && RT0_x0<Q0 RT0_xn= R0*cos((-RT0_D/R0)+acos(((RT0_x0)-(Q0-R0))/R0))+(Q0-R0); RT0_yn=-((R0)^2-(RT0_xn-(Q0-R0))^2)^0.5; else if RT0_x0<=(-1)*(Q0-R0) && RT0_x0>-Q0 if (RT0_x0+(Q0-R0))>=-mar1 RT0_xn=-(Q0-R0); RT0_yn=-R0; else RT0_xn= -R0*cos((RT0_D/R0)+acos((((-1)*RT0_x0)-(Q0-R0))/R0))-(Q0-R0); RT0_yn=-((R0)^2-((-RT0_xn)-(Q0-R0))^2)^0.5; end else end end end end

RT0_x0=RT0_xn; RT1(KK)=RT0_xn; RTY1(KK)=RT0_yn; RTG(T+KK-1)=RT1(KK); RTYG(T+KK-1)=RTY1(KK); RTG(T+KK-1)=(RTG(T+KK-1)*cos(th0)-RTYG(T+KK-1)*tan(th0)*cos(th0))+long0; RTYG(T+KK-1)=(RTG(T+KK-1)*cos(th0)-RTYG(T+KK-1)*tan(th0)*cos(th0))*tan(th0)+RTYG(T+KK-1)/cos(th0)+lat0; if RT0_yn>-mar2 RT0_y0=1; else end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Next location on the second flight path if RT1_y0>=0 KK=0; T1=length(RTG1); while Q1-RT1_x0>0.1 && RT1_x0+Q1>0.1|| -RT1_x0+Q1<0.1 % for KK=1:1:2928 KK=KK+1; if RT1_x0>=0 && RT1_x0<=(Q1-R1) RT1_xn=RT1_x0-RT1_D; RT1_yn=R1; else if RT1_x0<0 && RT1_x0>(Q1-R1)*(-1) if (RT1_x0+(Q1-R1))<=mar

RT1_xn=-1*(Q1-R1); RT1_yn=R1; else RT1_xn=RT1_x0-RT1_D; RT1_yn=R1; end else if RT1_x0>(Q1-R1) && RT1_x0<Q1 if (RT1_x0-(Q1-R1))<=mar1 RT1_xn=(Q1-R1); RT1_yn=R1; else RT1_xn= R1*cos((RT1_D/R1)+acos(((RT1_x0)-(Q1-R1))/R1))+(Q1-R1); RT1_yn=((R1)^2-(RT1_xn-(Q1-R1))^2)^0.5; end else if RT1_x0<=(-1)*(Q1-R1) && RT1_x0>-Q1 RT1_xn= -R1*cos(((-1)*RT1_D/R1)+acos((((-1)*RT1_x0)-(Q1-R1))/R1))-(Q1-R1); RT1_yn=((R1)^2-((-RT1_xn)-(Q1-R1))^2)^0.5; else end end end end RT1_x0=RT1_xn; RT2(KK)=RT1_xn; RTY2(KK)=RT1_yn; RTG1(T1+KK-1)=RT2(KK); RTYG1(T1+KK-1)=RTY2(KK); RTG1(T1+KK-1)=(RTG1(T1+KK-1)*cos(th1)-RTYG1(T1+KK-1)*tan(th1)*cos(th1))+long1;

RTYG1(T1+KK-1)=(RTG1(T1+KK-1)*cos(th1)-RTYG1(T1+KK-1)*tan(th1)*cos(th1))*tan(th1)+RTYG1(T1+KK-1)/cos(th1)+lat1; if RT1_yn<mar2 RT1_y0=-1; else end end elseif RT1_y0<0 T1=length(RTG1); KK=0; while (Q1-RT1_x0>0.1 && RT1_x0+Q1>0.1)|| RT1_x0+Q1<0.1 % for KK=1:1:2928 KK=KK+1; if RT1_x0>=0 && RT1_x0<=(Q1-R1) if (RT1_x0+(Q1-R1))<=mar RT1_xn=(Q1-R1); RT1_yn=-R1; else RT1_xn=RT1_x0+RT1_D; RT1_yn=-R1; end else if RT1_x0<0 && RT1_x0>=(Q1-R1)*(-1) RT1_xn=RT1_x0+RT1_D; RT1_yn=-R1; else if RT1_x0>=(Q1-R1) && RT1_x0<Q1 RT1_xn= R1*cos((-RT1_D/R1)+acos(((RT1_x0)-(Q1-R1))/R1))+(Q1-R1); RT1_yn=-((R1)^2-(RT1_xn-(Q1-R1))^2)^0.5; else

if RT1_x0<=(-1)*(Q1-R1) && RT1_x0>-Q1 if (RT1_x0+(Q1-R1))>=-mar1 RT1_xn=-(Q1-R1); RT1_yn=-R1; else RT1_xn= -R1*cos((RT1_D/R1)+acos((((-1)*RT1_x0)-(Q1-R1))/R1))-(Q1-R1); RT1_yn=-((R1)^2-((-RT1_xn)-(Q1-R1))^2)^0.5; end else end end end end RT1_x0=RT1_xn; RT3(KK)=RT1_xn; RTY3(KK)=RT1_yn; RTG1(T1+KK-1)=RT3(KK); RTYG1(T1+KK-1)=RTY3(KK); RTG1(T1+KK-1)=(RTG1(T1+KK-1)*cos(th1)-RTYG1(T1+KK-1)*tan(th1)*cos(th1))+long1; RTYG1(T1+KK-1)=(RTG1(T1+KK-1)*cos(th1)-RTYG1(T1+KK-1)*tan(th1)*cos(th1))*tan(th1)+RTYG1(T1+KK-1)/cos(th1)+lat1; if RT1_yn>-mar2 RT1_y0=1; else end end

end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Next location on the third flight path if RT2_y0>=0 KK=0; T2=length(RTG2); while Q2-RT2_x0>0.1 && RT2_x0+Q2>0.1|| -RT2_x0+Q2<0.1 % for KK=1:1:2928 KK=KK+1; if RT2_x0>=0 && RT2_x0<=(Q2-R2) RT2_xn=RT2_x0-RT2_D; RT2_yn=R2; else if RT2_x0<0 && RT2_x0>(Q2-R2)*(-1) if (RT2_x0+(Q2-R2))<=mar RT2_xn=-1*(Q2-R2); RT2_yn=R2; else RT2_xn=RT2_x0-RT2_D; RT2_yn=R2; end else if RT2_x0>(Q2-R2) && RT2_x0<Q2 if (RT2_x0-(Q2-R2))<=mar1 RT2_xn=(Q2-R2); RT2_yn=R2; else RT2_xn= R2*cos((RT2_D/R2)+acos(((RT2_x0)-(Q2-R2))/R2))+(Q2-R2); RT2_yn=((R2)^2-(RT2_xn-(Q2-R2))^2)^0.5; end else

if RT2_x0<=(-1)*(Q2-R2) && RT2_x0>-Q2 RT2_xn= -R2*cos(((-1)*RT2_D/R2)+acos((((-1)*RT2_x0)-(Q2-R2))/R2))-(Q2-R2); RT2_yn=((R2)^2-((-RT2_xn)-(Q2-R2))^2)^0.5; else end end end end RT2_x0=RT2_xn; RT4(KK)=RT2_xn; RTY4(KK)=RT2_yn; RTG2(T2+KK-1)=RT4(KK); RTYG2(T2+KK-1)=RTY4(KK); RTG2(T2+KK-1)=(RTG2(T2+KK-1)*cos(th2)-RTYG2(T2+KK-1)*tan(th2)*cos(th2))+long2; RTYG2(T2+KK-1)=(RTG2(T2+KK-1)*cos(th2)-RTYG2(T2+KK-1)*tan(th2)*cos(th2))*tan(th2)+RTYG2(T2+KK-1)/cos(th2)+lat2; if RT2_yn<mar2 RT2_y0=-1; else end end elseif RT2_y0<0 T2=length(RTG2); KK=0; while (Q2-RT2_x0>0.1 && RT2_x0+Q2>0.1)|| RT2_x0+Q2<0.1

% for KK=1:1:2928 KK=KK+1; if RT2_x0>=0 && RT2_x0<=(Q2-R2) if (RT2_x0+(Q2-R2))<=mar1 RT2_xn=(Q2-R2); RT2_yn=-R2; else RT2_xn=RT2_x0+RT2_D; RT2_yn=-R2; end else if RT2_x0<0 && RT2_x0>=(Q2-R2)*(-1) RT2_xn=RT2_x0+RT2_D; RT2_yn=-R2; else if RT2_x0>=(Q2-R2) && RT2_x0<Q2 RT2_xn= R2*cos((-RT2_D/R2)+acos(((RT2_x0)-(Q2-R2))/R2))+(Q2-R2); RT2_yn=-((R2)^2-(RT2_xn-(Q2-R2))^2)^0.5; else if RT2_x0<=(-1)*(Q2-R2) && RT2_x0>-Q2 if (RT2_x0+(Q2-R2))>=-mar1 RT2_xn=-(Q2-R2); RT2_yn=-R2; else RT2_xn= -R2*cos((RT2_D/R2)+acos((((-1)*RT2_x0)-(Q2-R2))/R2))-(Q2-R2); RT2_yn=-((R2)^2-((-RT2_xn)-(Q2-R2))^2)^0.5; end else

end end end end RT2_x0=RT2_xn; RT5(KK)=RT2_xn; RTY5(KK)=RT2_yn; RTG2(T2+KK-1)=RT5(KK); RTYG2(T2+KK-1)=RTY5(KK); RTG2(T2+KK-1)=(RTG2(T2+KK-1)*cos(th2)-RTYG2(T2+KK-1)*tan(th2)*cos(th2))+long2; RTYG2(T2+KK-1)=(RTG2(T2+KK-1)*cos(th2)-RTYG2(T2+KK-1)*tan(th2)*cos(th2))*tan(th2)+RTYG2(T2+KK-1)/cos(th2)+lat2; if RT2_yn>-mar2 RT2_y0=1; else end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Next location on the fourth flight path if RT3_y0>=0 T3=length(RTG3);

KK=0; while Q3-RT3_x0>0.1 && RT3_x0+Q3>0.1|| -RT3_x0+Q3<0.1 % for KK=1:1:2928 KK=KK+1; if RT3_x0>=0 && RT3_x0<=(Q3-R3) RT3_xn=RT3_x0-RT3_D; RT3_yn=R3; else if RT3_x0<0 && RT3_x0>(Q3-R3)*(-1) if (RT3_x0+(Q3-R3))<=mar RT3_xn=-1*(Q3-R3); RT3_yn=R3; else RT3_xn=RT3_x0-RT3_D; RT3_yn=R3; end else if RT3_x0>(Q3-R3) && RT3_x0<Q3 if (RT3_x0-(Q3-R3))<=mar1 RT3_xn=(Q3-R3); RT3_yn=R3; else RT3_xn= R3*cos((RT3_D/R3)+acos(((RT3_x0)-(Q3-R3))/R3))+(Q3-R3); RT3_yn=((R3)^2-(RT3_xn-(Q3-R3))^2)^0.5; end else if RT3_x0<=(-1)*(Q3-R3) && RT3_x0>-Q3 RT3_xn= -R3*cos(((-1)*RT3_D/R3)+acos((((-1)*RT3_x0)-(Q3-R3))/R3))-(Q3-R3); RT3_yn=((R3)^2-((-RT3_xn)-(Q3-R3))^2)^0.5; else end end

end end RT3_x0=RT3_xn; RT6(KK)=RT3_xn; RTY6(KK)=RT3_yn; RTG3(T3+KK-1)=RT6(KK); RTYG3(T3+KK-1)=RTY6(KK); RTG3(T3+KK-1)=(RTG3(T3+KK-1)*cos(th3)-RTYG3(T3+KK-1)*tan(th3)*cos(th3))+long3; RTYG3(T3+KK-1)=(RTG3(T3+KK-1)*cos(th3)-RTYG3(T3+KK-1)*tan(th3)*cos(th3))*tan(th3)+RTYG3(T3+KK-1)/cos(th3)+lat3; if RT3_yn<mar2 RT3_y0=-1; else end end elseif RT3_y0<0 T3=length(RTG3); KK=0; while (Q3-RT3_x0>0.1 && RT3_x0+Q3>0.1)|| RT3_x0+Q3<0.1 % for KK=1:1:2928 KK=KK+1; if RT3_x0>=0 && RT3_x0<=(Q3-R3) if (RT3_x0+(Q3-R3))<=mar RT3_xn=(Q3-R3); RT3_yn=-R3; else RT3_xn=RT3_x0+RT3_D; RT3_yn=-R3; end else

if RT3_x0<0 && RT3_x0>=(Q3-R3)*(-1) RT3_xn=RT3_x0+RT3_D; RT3_yn=-R3; else if RT3_x0>=(Q3-R3) && RT3_x0<Q3 RT3_xn= R3*cos((-RT3_D/R3)+acos(((RT3_x0)-(Q3-R3))/R3))+(Q3-R3); RT3_yn=-((R3)^2-(RT3_xn-(Q3-R3))^2)^0.5; else if RT3_x0<=(-1)*(Q3-R3) && RT3_x0>-Q3 if (RT3_x0+(Q3-R3))>=-mar1 RT3_xn=-(Q3-R3); RT3_yn=-R3; else RT3_xn= -R3*cos((RT3_D/R3)+acos((((-1)*RT3_x0)-(Q3-R3))/R3))-(Q3-R3); RT3_yn=-((R3)^2-((-RT3_xn)-(Q3-R3))^2)^0.5; end else end end end end

RT3_x0=RT3_xn; RT7(KK)=RT3_xn; RTY7(KK)=RT3_yn; RTG3(T3+KK-1)=RT7(KK); RTYG3(T3+KK-1)=RTY7(KK); RTG3(T3+KK-1)=(RTG3(T3+KK-1)*cos(th3)-RTYG3(T3+KK-1)*tan(th3)*cos(th3))+long3; RTYG3(T3+KK-1)=(RTG3(T3+KK-1)*cos(th3)-RTYG3(T3+KK-1)*tan(th3)*cos(th3))*tan(th3)+RTYG3(T3+KK-1)/cos(th3)+lat3; if RT3_yn>-mar2 RT3_y0=1; else end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Next location on the fifth flight path if RT4_y0>=0 T4=length(RTG4); KK=0; while Q4-RT4_x0>0.1 && RT4_x0+Q4>0.1|| -RT4_x0+Q4<0.1 % for KK=1:1:2928 KK=KK+1; if RT4_x0>=0 && RT4_x0<=(Q4-R4) RT4_xn=RT4_x0-RT4_D; RT4_yn=R4; else

if RT4_x0<0 && RT4_x0>(Q4-R4)*(-1) if (RT4_x0+(Q4-R4))<=mar RT4_xn=-1*(Q4-R4); RT4_yn=R4; else RT4_xn=RT4_x0-RT4_D; RT4_yn=R4; end else if RT4_x0>(Q4-R4) && RT4_x0<Q4 if (RT4_x0-(Q4-R4))<=mar1 RT4_xn=(Q4-R4); RT4_yn=R4; else RT4_xn= R4*cos((RT4_D/R4)+acos(((RT4_x0)-(Q4-R4))/R4))+(Q4-R4); RT4_yn=((R4)^2-(RT4_xn-(Q4-R4))^2)^0.5; end else if RT4_x0<=(-1)*(Q4-R4) && RT4_x0>-Q4 RT4_xn= -R4*cos(((-1)*RT4_D/R4)+acos((((-1)*RT4_x0)-(Q4-R4))/R4))-(Q4-R4); RT4_yn=((R4)^2-((-RT4_xn)-(Q4-R4))^2)^0.5; else end end end end RT4_x0=RT4_xn; RT8(KK)=RT4_xn; RTY8(KK)=RT4_yn;

RTG4(T4+KK-1)=RT8(KK); RTYG4(T4+KK-1)=RTY8(KK); RTG4(T4+KK-1)=(RTG4(T4+KK-1)*cos(th4)-RTYG4(T4+KK-1)*tan(th4)*cos(th4))+long4; RTYG4(T4+KK-1)=(RTG4(T4+KK-1)*cos(th4)-RTYG4(T4+KK-1)*tan(th4)*cos(th4))*tan(th4)+RTYG4(T4+KK-1)/cos(th4)+lat4; if RT4_yn<mar2 RT4_y0=-1; else end end elseif RT4_y0<0 T4=length(RTG4); KK=0; while (Q4-RT4_x0>0.1 && RT4_x0+Q4>0.1)|| RT4_x0+Q4<0.1 % for KK=1:1:2928 KK=KK+1; if RT4_x0>=0 && RT4_x0<=(Q4-R4) if (RT4_x0+(Q4-R4))<=mar RT4_xn=(Q4-R4); RT4_yn=-R4; else RT4_xn=RT4_x0+RT4_D; RT4_yn=-R4; end else if RT4_x0<0 && RT4_x0>=(Q4-R4)*(-1) RT4_xn=RT4_x0+RT4_D; RT4_yn=-R4; else if RT4_x0>=(Q4-R4) && RT4_x0<Q4 RT4_xn= R4*cos((-RT4_D/R4)+acos(((RT4_x0)-(Q4-R4))/R4))+(Q4-R4); RT4_yn=-((R4)^2-(RT4_xn-(Q4-R4))^2)^0.5;

else if RT4_x0<=(-1)*(Q4-R4) && RT4_x0>-Q4 if (RT4_x0+(Q4-R4))>=-mar1 RT4_xn=-(Q4-R4); RT4_yn=-R4; else RT4_xn= -R4*cos((RT4_D/R4)+acos((((-1)*RT4_x0)-(Q4-R4))/R4))-(Q4-R4); RT4_yn=-((R4)^2-((-RT4_xn)-(Q4-R4))^2)^0.5; end else end end end end RT4_x0=RT4_xn; RT9(KK)=RT4_xn; RTY9(KK)=RT4_yn; RTG4(T4+KK-1)=RT9(KK); RTYG4(T4+KK-1)=RTY9(KK); RTG4(T4+KK-1)=(RTG4(T4+KK-1)*cos(th4)-RTYG4(T4+KK-1)*tan(th4)*cos(th4))+long4; RTYG4(T4+KK-1)=(RTG4(T4+KK-1)*cos(th4)-RTYG4(T4+KK-1)*tan(th4)*cos(th4))*tan(th4)+RTYG4(T4+KK-1)/cos(th4)+lat4; if RT4_yn>-mar2 RT4_y0=1; else

end end end end %plot(RT,RTY,RT1,RTY1,RT2,RTY2,RT3,RTY3,RT4,RTY4,RT5,RTY5,RT6,RTY6,RT7,RTY7,RT8,RTY8,RT9,RTY9) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Detection check according to intruder trajectory %%%%%%%%%%%%%%%%%%%%Detection domain radius (r)=2500 m r=5000/2; L_RTG=length(RTG); L_RTG1=length(RTG1); L_RTG2=length(RTG2); L_RTG3=length(RTG3); L_RTG4=length(RTG4); L_x=length(x); L_x1=length(x1); L_x2=length(x2); L_x3=length(x3); L_x4=length(x4); v=0; z=0; clear Dx_Time Dx10_Time Dx20_Time Dx30_Time Dx4_Time Dx0_Time Dx11_Time Dx21_Time Dx31_Time Dx41_Time Dx1_Time Dx12_Time Dx22_Time Dx32_Time Dx42_Time Dx2_Time Dx13_Time Dx23_Time Dx33_Time Dx43_Time Dx3_Time Dx14_Time Dx24_Time Dx34_Time Dx44_Time; clear Dy_Time Dy10_Time Dy20_Time Dy30_Time Dy4_Time Dy0_Time Dy11_Time Dy21_Time Dy31_Time Dy41_Time Dy1_Time Dy12_Time Dy22_Time Dy32_Time

Dy42_Time Dy2_Time Dy13_Time Dy23_Time Dy33_Time Dy43_Time Dy3_Time Dy14_Time Dy24_Time Dy34_Time Dy44_Time; %clear Dx_Time Dy_Time Dx10_Time Dy10_Time Dx20_Time Dy20_Time Dx30_Time Dy30_Time Dx4_Time Dy4_Time Dx_Time=0; Dx10_Time=0; Dx20_Time=0; Dx30_Time=0; Dx4_Time=0; Dx0_Time=0; Dx11_Time=0; Dx21_Time=0; Dx31_Time=0; Dx41_Time=0; Dx1_Time=0; Dx12_Time=0; Dx22_Time=0; Dx32_Time=0; Dx42_Time=0; Dx2_Time=0; Dx13_Time=0; Dx23_Time=0; Dx33_Time=0; Dx43_Time=0; Dx3_Time=0; Dx14_Time=0; Dx24_Time=0; Dx34_Time=0; Dx44_Time=0; while v<=(L_x-1) v=v+1; U=0; while U<=(L_RTG-1) U=U+1; if (r^2)>=((RTG(U)-x(v))^2+(RTYG(U)-f1(v))^2)&& U==v z=z+1; Dx_Time(z)=RTG(U); Dy_Time(z)=RTYG(U); else end end

U=0; while U<=(L_RTG1-1) U=U+1; if (r^2)>=((RTG1(U)-x(v))^2+(RTYG1(U)-f1(v))^2)&& U==v z=z+1; Dx10_Time(z)=RTG1(U); Dy10_Time(z)=RTYG1(U); else end end U=0; while U<=(L_RTG2-1) U=U+1; if (r^2)>=((RTG2(U)-x(v))^2+(RTYG2(U)-f1(v))^2)&& U==v z=z+1; Dx20_Time(z)=RTG2(U); Dy20_Time(z)=RTYG2(U); else end end U=0; while U<=(L_RTG3-1) U=U+1; if (r^2)>=((RTG3(U)-x(v))^2+(RTYG3(U)-f1(v))^2)&& U==v z=z+1; Dx30_Time(z)=RTG3(U); Dy30_Time(z)=RTYG3(U); else end

end U=0; while U<=(L_RTG4-1) U=U+1; if (r^2)>=((RTG4(U)-x(v))^2+(RTYG4(U)-f1(v))^2)&& U==v z=z+1; Dx4_Time(z)=RTG4(U); Dy4_Time(z)=RTYG4(U); else end end end v=0; z=0; while v<=(L_x1-1) v=v+1; U=0; while U<=(L_RTG-1) U=U+1; if (r^2)>=((RTG(U)-x1(v))^2+(RTYG(U)-f11(v))^2)&& U==v z=z+1; Dx0_Time(z)=RTG(U); Dy0_Time(z)=RTYG(U); else end end U=0; while U<=(L_RTG1-1)

U=U+1; if (r^2)>=((RTG1(U)-x1(v))^2+(RTYG1(U)-f11(v))^2)&& U==v z=z+1; Dx11_Time(z)=RTG1(U); Dy11_Time(z)=RTYG1(U); else end end U=0; while U<=(L_RTG2-1) U=U+1; if (r^2)>=((RTG2(U)-x1(v))^2+(RTYG2(U)-f11(v))^2)&& U==v z=z+1; Dx21_Time(z)=RTG2(U); Dy21_Time(z)=RTYG2(U); else end end U=0; while U<=(L_RTG3-1) U=U+1; if (r^2)>=((RTG3(U)-x1(v))^2+(RTYG3(U)-f11(v))^2)&& U==v z=z+1; Dx31_Time(z)=RTG3(U); Dy31_Time(z)=RTYG3(U); else end end U=0;

while U<=(L_RTG4-1) U=U+1; if (r^2)>=((RTG4(U)-x1(v))^2+(RTYG4(U)-f11(v))^2)&& U==v z=z+1; Dx41_Time(z)=RTG4(U); Dy41_Time(z)=RTYG4(U); else end end end v=0; z=0; while v<=(L_x2-1) v=v+1; U=0; while U<=(L_RTG-1) U=U+1; if (r^2)>=((RTG(U)-x2(v))^2+(RTYG(U)-f12(v))^2)&& U==v z=z+1; Dx1_Time(z)=RTG(U); Dy1_Time(z)=RTYG(U); else end end U=0; while U<=(L_RTG1-1) U=U+1; if (r^2)>=((RTG1(U)-x2(v))^2+(RTYG1(U)-f12(v))^2)&& U==v

z=z+1; Dx12_Time(z)=RTG1(U); Dy12_Time(z)=RTYG1(U); else end end U=0; while U<=(L_RTG2-1) U=U+1; if (r^2)>=((RTG2(U)-x2(v))^2+(RTYG2(U)-f12(v))^2)&& U==v z=z+1; Dx22_Time(z)=RTG2(U); Dy22_Time(z)=RTYG2(U); else end end U=0; while U<=(L_RTG3-1) U=U+1; if (r^2)>=((RTG3(U)-x2(v))^2+(RTYG3(U)-f12(v))^2)&& U==v z=z+1; Dx32_Time(z)=RTG3(U); Dy32_Time(z)=RTYG3(U); else end end U=0; while U<=(L_RTG4-1) U=U+1;

if (r^2)>=((RTG4(U)-x2(v))^2+(RTYG4(U)-f12(v))^2)&& U==v z=z+1; Dx42_Time(z)=RTG4(U); Dy42_Time(z)=RTYG4(U); else end end end v=0; z=0; while v<=(L_x3-1) v=v+1; U=0; while U<=(L_RTG-1) U=U+1; if (r^2)>=((RTG(U)-x3(v))^2+(RTYG(U)-f13(v))^2)&& U==v z=z+1; Dx2_Time(z)=RTG(U); Dy2_Time(z)=RTYG(U); else end end U=0; while U<=(L_RTG1-1) U=U+1; if (r^2)>=((RTG1(U)-x3(v))^2+(RTYG1(U)-f13(v))^2)&& U==v z=z+1; Dx13_Time(z)=RTG1(U); Dy13_Time(z)=RTYG1(U);

else end end U=0; while U<=(L_RTG2-1) U=U+1; if (r^2)>=((RTG2(U)-x3(v))^2+(RTYG2(U)-f13(v))^2)&& U==v z=z+1; Dx23_Time(z)=RTG2(U); Dy23_Time(z)=RTYG2(U); else end end U=0; while U<=(L_RTG3-1) U=U+1; if (r^2)>=((RTG3(U)-x3(v))^2+(RTYG3(U)-f13(v))^2)&& U==v z=z+1; Dx33_Time(z)=RTG3(U); Dy33_Time(z)=RTYG3(U); else end end U=0; while U<=(L_RTG4-1) U=U+1; if (r^2)>=((RTG4(U)-x3(v))^2+(RTYG4(U)-f13(v))^2)&& U==v z=z+1;

Dx43_Time(z)=RTG4(U); Dy43_Time(z)=RTYG4(U); else end end end v=0; z=0; while v<=(L_x4-1) v=v+1; U=0; while U<=(L_RTG-1) U=U+1; if (r^2)>=((RTG(U)-x4(v))^2+(RTYG(U)-f14(v))^2)&& U==v z=z+1; Dx3_Time(z)=RTG(U); Dy3_Time(z)=RTYG(U); else end end U=0; while U<=(L_RTG1-1) U=U+1; if (r^2)>=((RTG1(U)-x4(v))^2+(RTYG1(U)-f14(v))^2)&& U==v z=z+1; Dx14_Time(z)=RTG1(U); Dy14_Time(z)=RTYG1(U); else end

end U=0; while U<=(L_RTG2-1) U=U+1; if (r^2)>=((RTG2(U)-x4(v))^2+(RTYG2(U)-f14(v))^2)&& U==v z=z+1; Dx24_Time(z)=RTG2(U); Dy24_Time(z)=RTYG2(U); else end end U=0; while U<=(L_RTG3-1) U=U+1; if (r^2)>=((RTG3(U)-x4(v))^2+(RTYG3(U)-f14(v))^2)&& U==v z=z+1; Dx34_Time(z)=RTG3(U); Dy34_Time(z)=RTYG3(U); else end end U=0; while U<=(L_RTG4-1) U=U+1; if (r^2)>=((RTG4(U)-x4(v))^2+(RTYG4(U)-f14(v))^2)&& U==v z=z+1; Dx44_Time(z)=RTG4(U); Dy44_Time(z)=RTYG4(U); else

end end end F_P=F_P+((length(Dx_Time)+length(Dx10_Time)+length(Dx20_Time)+length(Dx30_Time)+length(Dx4_Time)))*((length(Dx0_Time)+length(Dx11_Time)+length(Dx21_Time)+length(Dx31_Time)+length(Dx41_Time)))*((length(Dx1_Time)+length(Dx12_Time)+length(Dx22_Time)+length(Dx32_Time)+length(Dx42_Time)))*((length(Dx2_Time)+length(Dx13_Time)+length(Dx23_Time)+length(Dx33_Time)+length(Dx43_Time)))*((length(Dx3_Time)+length(Dx14_Time)+length(Dx24_Time)+length(Dx34_Time)+length(Dx44_Time)))/(1000000000); %clear Dx_Time Dy_Time Dx10_Time Dy10_Time Dx20_Time Dy20_Time Dx30_Time Dy30_Time Dx4_Time Dy4_Time end F(s)=F_P; h(s)=1/F(s); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end

Ji=1./(F+1e-10); %****** Step 1 : Evaluate BestJ ****** BestJ(k)=min(Ji); fi=F; %Fitness Function [Oderfi,Indexfi]=sort(fi); %Arranging fi small to bigger Bestfi=Oderfi(Size); %Let Bestfi=max(fi) BestS=E(Indexfi(Size),:); %Let BestS=E(m), m is the Indexfi belong to max(fi) bfi(k)=Bestfi; %****** Step 2 : Select and Reproduct Operation****** fi_sum=sum(fi); fi_Size=(Oderfi/fi_sum)*Size; fi_S=floor(fi_Size); %Selecting Bigger fi value kk=1; for i=1:1:Size for j=1:1:fi_S(i) %Select and Reproduce TempE(kk,:)=E(Indexfi(i),:); kk=kk+1; %kk is used to reproduce end end %************ Step 3 : Crossover Operation ************ pc=0.60; n=ceil(250*rand); for i=1:2:(Size-1) temp=rand; if pc>temp %Crossover Condition for j=n:1:250 TempE(i,j)=E(i+1,j); TempE(i+1,j)=E(i,j); end end end TempE(Size,:)=BestS; E=TempE; %************ Step 4: Mutation Operation ************** %pm=0.001; %pm=0.001-[1:1:Size]*(0.001)/Size; %Bigger fi, smaller Pm %pm=0.0; %No mutation pm=0.1; %Big mutation for i=1:1:Size for j=1:1:25*CodeL temp=rand; if pm>temp %Mutation Condition if TempE(i,j)==0 TempE(i,j)=1; else TempE(i,j)=0;

end end end end %Guarantee TempPop(30,:) is the code belong to the best individual(max(fi)) TempE(Size,:)=BestS; E=TempE; W0(k)=W0; W1(k)=W1; W2(k)=W2; W3(k)=W3; W4(k)=W4; L0(k)=L0; L1(k)=L1; L2(k)=L2; L3(k)=L3; L4(k)=L4; th0(k)=th0; th1(k)=th1; th2(k)=th2; th3(k)=th3; th4(k)=th4; lat0(k)=lat0; lat1(k)=lat1; lat2(k)=lat2; lat3(k)=lat3; lat4(k)=lat4; long0(k)=long0; long1(k)=long1; long2(k)=long2; long3(k)=long3; long4(k)=long4; end Max_Value=Bestfi BestS

figure(1); plot(time,BestJ); xlabel('Times');ylabel('Best J'); figure(3); plot(time,bfi); xlabel('times');ylabel('Best F');