Asked by shruti Gandhi
on 15 May 2013

function scores = traveling_salesman_fitness(x,distances) %TRAVELING_SALESMAN_FITNESS Custom fitness function for TSP. % SCORES = TRAVELING_SALESMAN_FITNESS(X,DISTANCES) Calculate the fitness % of an individual. The fitness is the total distance traveled for an % ordered set of cities in X. DISTANCE(A,B) is the distance from the city % A to the city B.

scores = zeros(size(x,1),1);

for j = 1:size(x,1) % here is where the special knowledge that the population is a cell % array is used. Normally, this would be pop(j,:); p = abs(x{j}); % HERE APPEARS THE ERROR

f = distances((p(end)),(p(1))); for i = 2:length(p) f = f + distances(p(i-1),p(i)); end scores(j) = f; end

*No products are associated with this question.*

Answer by Walter Roberson
on 15 May 2013

There is nothing in what you show that would establish for us that x will be a cell array when it is passed in. We need to see how it is constructed.

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments