% Program to resolve RWA
% User Enters the node information in form of a n*n matrix
% n=input('Enter Matrix Information: First Number of nodes ');
% m=[];
% m=input('Enter the transmutation matrix ');
m=[inf 1 1 1 inf
1 inf 1 1 inf
1 1 inf inf 1
1 1 inf inf inf
inf inf 1 inf inf];
n=length(m);
% path_no=input('Enter the number of paths to be computed')
% path_info=input('Enter the paths to be computed')
path_no=3;
path_info=zeros(3,2);
path_info=[1 3
1 5
2 4
];
cost_tot=0;
path_out=[];
path_out=zeros(path_no,n);
for i=1:path_no
test123=pathonly(path_info(i,1), path_info(i,2), m);
testlen=length(test123);
cost_tot=cost_tot+costonly(path_info(i,1), path_info(i,2), m);
for j=1:testlen
path_out(i,j)=test123(j);
end
end
for i=1:path_no
for j=1:n
if(path_out(i,j)==0)
path_out(i,j)=inf;
end
end
end
%path_out is the first solution to routing without wavelength assignment
% test=matrow(path_out,1)
% p=[];
% for i=1:path_no
% p(i)=matrow(path_out,i);
% end
%now to find the number of overlaps and the overlapping shit
mo=m;
overlap=0;
path_outO=path_out;
%space out matrix
for i=path_no:path_no+1
for j=n:n+1
path_out(i,j)=inf;
end
end
% path_out =[1 3 Inf Inf Inf 0
% 1 3 5 Inf Inf 0
% 2 3 5 Inf Inf Inf
% 0 0 0 0 Inf Inf];
for i=1:path_no
for j=1:n
if((path_out(i,j)==path_out(i+1,j))&(path_out(i,j+1)==path_out(i+1,j+1))&(path_out(i,j)~=inf)&(path_out(i,j+1)~=inf))
overlap=overlap+1;
%Breaking the overlapping link
m(path_out(i,j),path_out(i,j+1))=inf;
m(path_out(i,j+1),path_out(i,j))=inf;
path_test=pathonly(path_out(i,j),path_out(i,j+1),m);
%cost_tot=cost_tot+costonly(path_out(i,j),path_out(i,j+1),m);
len_test=length(path_test);
path_copy=path_out;
for k=len_test+1:n
path_out(i,k+1)=path_copy(i,k);
end
for k=1:len_test
path_out(i,k)=path_test(k);
end
% path_out(i,j)
% path_out(i,j+1)
% path_out(i+1,j)
% path_out(i+1,j+1)
end
end
end