i want to assign number of tasks to fog nodes randomly son in the matrix i will have different solution and i got the same solution repeated

2 views (last 30 days)
lb=250;
ub= 1000;
dim = 5;
pop=5;
offloading = lb + (ub - lb) .* rand(1,dim);
%Initialization
fognodesnumber = 3;
for i = 1 : pop %pop=N, population size
for task = 1 : dim
indices = randperm(length(offloading));
indices2 = randperm(fognodesnumber);
for FN=1:fognodesnumber
x(task,indices2(FN))=offloading(indices(task));
% Evaluate the fitness of the new solution
fit(task,FN)=fobj(x(task,indices2(FN)));
end
end
end
so the reult i got for x is
x =
357.1360 357.1360 357.1360
520.0463 520.0463 520.0463
370.7144 370.7144 370.7144
370.7144 370.7144 370.7144
663.3892 663.3892 663.3892
but i need each column the numbers to be distributed differently

Accepted Answer

Shravan Kumar Vankaramoni
Shravan Kumar Vankaramoni on 17 Aug 2021
Hi,
for FN=1:fognodesnumber
x(task,indices2(FN))=offloading(indices(task));
end
In the above loop, task( row number ) is a constant value. Basically you are storing same value in the entire row. To get different values in the columns of the same row, you can try the below code. It is randomizing the value to be stored.
for FN=1:fognodesnumber
x(task,indices2(FN))=offloading(indices(randi([1,dim])));
end

More Answers (0)

Community Treasure Hunt

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

Start Hunting!