Beruflich Dokumente
Kultur Dokumente
1.
channel based on the aggressive Algorithm. Input (no,S,sto_state) & output cell array X with 4
columns(sto_state,ch_lock, norelock,chrelock)
function[X]=allo_agra7(no,S,sto_state);
ch_lock=0;
norelock=0;
chrelock=0;
nor_cost=call_cost7(no,S,sto_state);
if min(nor_cost)~=inf
chslock=find(nor_cost==min(nor_cost));
ch_lock=chslock(1,1);
sto_state(no,(ch_lock+2))=1;
sto_state(no,1)=(sto_state(no,1))+1;
else ceny=2*(sto_state(no,3:(S+2)));
nbd=unique([0,nbd_cells7(no)]);
len=length(nbd);
for k=1:(len-1),
y(k,:)=sto_state(nbd(1,(k+1)),3:(S+2));
end;
Y=(sum(y))+ceny;
singy=find(Y==1);
if (length(singy))~=0
for j=1:(length(singy)),
a=find(y(:,singy(1,j))==1)';
at_l=nbd(1,(a(1,1)+1));
agre_cost=call_cost7(at_l,S,sto_state);
if (min(agre_cost))~=inf
chsrelock=find(agre_cost==min(agre_cost));
chrelock=chsrelock(1,1);
sto_state(no,(singy(1,j)+2))=1;
sto_state(no,1)=sto_state(no,1)+1;
sto_state(at_l,(chrelock+2))=1;
sto_state(at_l,(singy(1,j)+2))=0;
ch_lock=singy(1,j);
norelock=at_l;
break;
elseif (j==length(singy))
sto_state(no,2)=sto_state(no,2)+1;
end;
end;
else
sto_state(no,2)=sto_state(no,2)+1;
end;
end;
X{1,1}=sto_state;
X{1,2}=ch_lock;
X{1,3}=norelock;
X{1,4}=chrelock;
2. To allocate/block a call based on the cost for that particular call in that particular cell returns cell
array with column 1 as sto_state & column 2 as ch_lock
function[A]=allo_dcam7(no,S,sto_state,fd);
X=call_cost17(no,S,sto_state,fd);
x=min(X);
ch_lock=0;
if x==inf
sto_state(no,2)=(sto_state(no,2))+1;
else
sto_state(no,1)=(sto_state(no,1))+1;
for i=1:S,
if X(1,i)==x
ch_lock=i;
sto_state(no,(ch_lock+2))=1;
break;
end;
end;
end;
A{1,1}=sto_state;
A{1,2}=ch_lock;
3.
to find where is a given call in progress. Given any coordinate of the mobile handset, it will be able to
find the number of cell in which call is under progress.
function[no]=call_cell(x,y);
x_figure=x/((sqrt(3))*2/2);
a1=(ceil(x_figure))*(sqrt(3))*2/2;
a2=(floor(x_figure))*(sqrt(3))*2/2;
y_figure=y/(3*2/2);
b1=(ceil(y_figure))*3*2/2;
b2=(floor(y_figure))*3*2/2;
e1=coord_fn(a1,b1);
e2=coord_fn(a1,b2);
e3=coord_fn(a2,b1);
e4=coord_fn(a2,b2);
e=[e1,e2,e3,e4];
for j=1:4,
if isnan(e(j))~=1
e_c=no_coord(e(j));
e_x=e_c(1,1);
e_y=e_c(1,2);
d(j)=sqrt((e_x-x)^2+(e_y-y)^2);
else d(j)=inf;
end;
end;
for j=1:4,
if (min(d))>2
no=NaN;
elseif (min(d)<=2)&(d(j)==min(d))
no=e(j);
end;
end;
4.
Co-channel Set When ever any cell is identified where call is under progress on any particular
channel, all the co-channel cells of the referred channel cane be located.
function[X]=coch_set(no);
%given a cell (no,s,N,M),to find the set of
%immediate cochannel cells
j=2;
c=no_coord(no);
a=c(1,1);
b=c(1,2);
d=(sqrt(7))*(sqrt(3))*2;
theta=(asin(sqrt(((j^2)*3/4)/(7))))*180/pi;
for q=1:6
alpha=theta+((q-1)*60);
ang=(alpha)*pi/180;
a1=a+d*cos(ang);
b1=b+d*sin(ang);
X(q)=coord_fn(a1,b1);
end;
X=[X(1),X(2),X(3),X(4),X(5),X(6)];
5.
6.
Cost of Re-allocation
completed, cost of re-allocation of channel is estimated. Minimum cost channel is released. Cost_re17
calculates cost as per the cost formula and cost_re27 calculates the cost as per the analytical model.
6.1
function[X]=cost_re17(no,S,sto_state,fd);
x=sto_state(no,3:(S+2));
tot_ch=sum(x);
eng_ch=find(x);
nbd=unique([0,nbd_cells7(no)]);
len=length(nbd);
for i=1:S,
for k=1:(len-1),
if ismember(i,eng_ch)
if ismember(i,fd{1,nbd(1,(k+1))})
q(k,i)=0;
else q(k,i)=1;
end;
if ismember(i,fd{1,no})==1
qx(1,i)=0;
else qx(1,i)=1;
end;
y(k,:)=avail_ch17(nbd(1,(k+1))...
,S,sto_state);
if y(k,i)==1
b(k,i)=0;
else b(k,i)=1;
end;
r(k,i)=b(k,i)+(2*q(k,i));
else qx(1,i)=-(inf);
r(k,i)=inf;
end;
end;
end;
R=sum(r);
for i=1:S,
X(1,i)=(1-qx(1,i))+R(1,i);
end;
6.2
Reallocation Cost
Y=sum(y);
for i=1:S,
if ismember(i,eng_ch)==1
X(1,i)=Y(1,i);
else
X(1,i)=inf;
end;
end;
Given average inter arrival time & average holding time, it will
estimate the probability of blocking in aggressive DCA using analytical model. Input (S,L,T,Y).
function[prob]=dca_agra7n(S,L,T,Y);
sto_state=zeros(49,(S+2));
seq=1:1:Y;
loc_com=(1+(floor([48*ones(1,Y)].*[rand(1,Y)])));
ex_durn=exprnd(T,1,Y);
ex_iarr=exprnd(L,1,Y);
ex_arri=zeros(1,Y);
for i=1:(Y-1),
ex_arri=(ex_arri)+((ex_iarr(1,i))*[zeros(1,i),ones(1,(Y-i))]);
end;
ex_inibal=(ex_iarr)-(ex_iarr(1,1))*(ones(1,Y));
ex_arr=[((ex_inibal)+(ex_arri));ones(1,Y);seq;...
loc_com;zeros(1,Y)];
ex_fini=[((ex_durn)+(ex_arr(1,:)));zeros(1,Y);seq;...
loc_com;zeros(1,Y)];
ex_comp=[ex_arr(:,1),ex_fini,ex_arr(:,(2:Y))];
tot_seq=sort([ex_arr(1,:),ex_fini(1,:)]);
temp_comp=zeros(5,1);
for i=1:(2*Y),
j=i:1:(2*Y);
a=find(ex_comp(1,j)==tot_seq(1,i));
k=a(1,1);
temp_comp=ex_comp(:,i);
ex_comp(:,i)=ex_comp(:,k+i-1);
ex_comp(:,k+i-1)=temp_comp;
end;
pre_arr=[0,ex_comp(1,1:(2*Y-1))];
ex_comp(1,:)=ex_comp(1,:)-pre_arr;
for i=1:2*Y,
tim_elap(ex_comp(1,i));
if (ex_comp(2,i)==1)
A=allo_agra7(ex_comp(4,i),S,sto_state);
sto_state=A{1,1};
if (A{1,3}~=0)
for r=1:i-1,
if ((ex_comp(4,r)==A{1,3})&...
(ex_comp(5,r)==A{1,2}))
ex_comp(5,r)=A{1,4};
break;
end;
end;
end;
ex_comp(5,i)=A{1,2};
else b=find(ex_comp(3,1:(i-1))==ex_comp(3,i));
if (ex_comp(5,b(1,1))~=0)
E=deallo_dca1a7n(ex_comp(4,i),S,...
sto_state,ex_comp,(i-1));
sto_state=E{1,1};
chpos=E{1,2};
ex_comp(5,chpos)=ex_comp(5,b(1,1));
ex_comp(5,b(1,1))=0;
% sto_state(ex_comp(4,b(1,1)),ex_comp(5,b(1,1))...
% +2)=0;
end;
end;
end;
bc=sum((sto_state(:,2))')
ac=sum((sto_state(:,1))')
prob=bc/(ac+bc);
else b=find(ex_comp(3,1:(i-1))==ex_comp(3,i));
if (ex_comp(5,b(1,1))~=0)
E=deallo_dca1a7n(ex_comp(4,i),S,...
sto_state,ex_comp,(i-1));
sto_state=E{1,1};
chpos=E{1,2};
ex_comp(5,chpos)=ex_comp(5,b(1,1));
ex_comp(5,b(1,1))=0;
end;
end;
end;
dc=dd;
nc=sum((sto_state(:,2))');
bc=nc-dc;
hc=(len/2)-Y;
ac=sum((sto_state(:,1))');
pb=bc/(Y);
pd=dc/(hc);
P=[pb,pd];
holding time to estimate the probability of blocking in aggressive DCA using mathematical model.
function[P]=dca_handcen(S,L,T,Y,V,H);
sto_stateh=zeros (49, (H+2));
sto_state=zeros (49, (S+2));
A=pre_stofnn1 (L,T,Y,V);
ex_comp=A{1,1};
len=A {1,2};
for i=1:len,
tim_elap(ex_comp (1,i));
if (ex_comp(2,i)==1)
if (ex_comp(6,i)==0)
A=allo_dca 7(ex_comp(4, i),S,sto_state);
sto_state=A {1,1};
ex_comp(5,i)=A{1,2};
else sh=allo_dca7(ex_comp(4,i),H,sto_stateh);
sto_stateh=sh{1,1};
ex_comp(5,i)=sh{1,2};
end;
else b=find(ex_comp(3,1:(i-1))==ex_comp(3,i));
if (ex_comp(5,b(1,1))~=0)
if (ex_comp(6,i)==0)
E=deallo_dca1a7n(ex_comp(4,i),S,...
sto_state,ex_comp,(i-1));
sto_state=E{1,1};
chpos=E{1,2};
ex_comp(5,chpos)=ex_comp(5,b(1,1));
else
E=deallo_dca1a7n(ex_comp(4,i),H,...
sto_stateh,ex_comp,(i-1));
sto_stateh=E{1,1};
chpos=E{1,2};
ex_comp(5,chpos)=ex_comp(5,b(1,1));
end;
end;
end;
end;
bc=sum((sto_state(:,2))');
ac=sum((sto_state(:,1))');
pb=bc/(ac+bc);
hc=sum((sto_stateh(:,1))');
dc=sum((sto_stateh(:,2))');
pd=dc/(ac);
P=[pb,pd];
10.
holding time to estimate the probability of blocking in aggressive DCA using mathematical model.
function[P]= dca_handque (S,L,T,Y,V);
bc=0;
dc=0;
hc=0;
sto_state=zeros (49,(S+2));
A=pre_ stofnn 2(L,T,Y,V);
ex_comp= A {1,1};
len= A {1,2};
for i=1:len,
tim_elap(ex_comp(1,i));
if (ex_comp(2,i)==1)
if (ex_comp(6,i)==0)
B=allo_dca7 (ex_comp(4,i),S,sto_state);
sto_state=B{1,1};
ch_all=find(ex_comp(3,:)==ex_comp(3,i));
ex_comp(5,ch_all)=(B{1,2})*...
ones(1,length(ch_all));
if (B{1,2}==0)
bc=bc+1;
end;
elseif ((ex_comp(6,i)~=0)&(ex_comp(5,i)==0))
A=allo_dcahq7(ex_comp(4,i),S,sto_state,...
ex_comp(7,i),dc,hc);
sto_state=A{1,1};
dc=A{1,3};
hc=A{1,4};
ch_all=find(ex_comp(6,:)==ex_comp(6,i));
ex_comp(5,ch_all)=(A{1,2})*ones(1,length(ch_all));
end;
elseif (ex_comp(5,i)~=0)
E=deallo_dcahq1a7n(ex_comp(4,i),S,...
sto_state,ex_comp);
sto_state=E{1,1};
chpos=E{1,2};
ex_comp(5,chpos)=(ex_comp(5,i))*...
ones(1,length(chpos));
ch_all=find(ex_comp(6,:)==ex_comp(6,i));
ex_comp(5,ch_all)=zeros(1,length(ch_all));
end;
end;
hhh=hc
bbb=bc
ddd=dc
nc=sum((sto_state(:,2))')
ac=sum((sto_state(:,1))')
pb=bc/(ac+nc);
pd=dc/(Y);
P=[pb,pd];