how to make this code for multiple ant colonies

1 view (last 30 days)
this is a code that generate only a single ant colony but i want to make 2 colonies of ants but i dont know how to change the code please help me to generate another clique
img = imread('R.jpg');
img = double(I)./255;
[nrow, ncol] = size(img);
v = zeros(size(I));
v_norm = 0;
for rr =1:nrow
for cc=1:ncol
%defination of clique
temp1 = [rr-2 cc-1; rr-2 cc+1; rr-1 cc-2; rr-1 cc-1; rr-1 cc; rr-1 cc+1; rr-1 cc+2; rr cc-1];
temp2 = [rr+2 cc+1; rr+2 cc-1; rr+1 cc+2; rr+1 cc+1; rr+1 cc; rr+1 cc-1; rr+1 cc-2; rr cc+1];
temp0 = find(temp1(:,1)>=1 & temp1(:,1)<=nrow & temp1(:,2)>=1 & temp1(:,2)<=ncol & temp2(:,1)>=1 & temp2(:,1)<=nrow & temp2(:,2)>=1 & temp2(:,2)<=ncol);
temp02 = find(temp1(:,1)<=1 & temp1(:,1)>=nrow & temp1(:,2)<=1 & temp1(:,2)>=ncol & temp2(:,1)<=1 & temp2(:,1)>=nrow & temp2(:,2)<=1 & temp2(:,2)>=ncol);
temp11 = temp1(temp0, :);
temp22 = temp2(temp0, :);
temp00 = zeros(size(temp11,1));
for kk = 1:size(temp11,1)
temp00(kk) = abs(img(temp11(kk,1), temp11(kk,2))-img(temp22(kk,1), temp22(kk,2)));
end
if size(temp11,1) == 0
v(rr, cc) = 0;
v_norm = v_norm + v(rr, cc);
else
lambda = 10;
temp00 = sin(pi .* temp00./2./lambda);
v(rr, cc) = sum(sum(temp00.^2));
v_norm = v_norm + v(rr, cc);
end
end
end
v = v./v_norm;
v = v.*100;
% pheromone function initialization
p = 0.0001 .* ones(size(img));
%paramete setting
alpha = 10;
beta = 0.1;
rho = 0.1;
phi = 0.05;
ant_total_num = round(sqrt(nrow*ncol));
ant_pos_idx = zeros(ant_total_num, 2); % record the location of ant
this code generate 490 ants for image of size 490*490 but i want to generate another clique of 490 ants to increase the number of ants
PLEASE HELP ME

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!