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.

Opportunities for recent engineering grads.

## 0 Comments