How to solve TSP using GA?
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I am trying to compare some solvers and I am using TSP (https://www.mathworks.com/help/optim/ug/travelling-salesman-problem.html) as my bench mark problem. I am not sure how to define this problem so that I can solve it using GA. The way I though is to replace this line with GA
[x_tsp,costopt,exitflag,output] = intlinprog(dist,intcon,[],[],Aeq,beq,lb,ub,opts);
But I am getting an error when I do this:
x_tsp = ga(dist,nStops,[],[],Aeq,beq,lb,ub,intcon)
This is the error message.
Error using ga
Fitness function must be a function handle.
Error in GA_1 (line 65)
x_tsp = ga(dist,nStops,[],[],Aeq,beq,lb,ub,intcon)
0 comentarios
Respuestas (1)
Alan Weiss
el 8 de Mzo. de 2023
I think that it is useless to try to solve a TSP using ga, mainly because ga is so slow and unreliable compared to Optimization Toolbox solvers. If you want to see an approach to solving a TSP using ga, look at Custom Data Type Optimization Using the Genetic Algorithm.
But if you ignore my advice and insist on trying to use ga inappropriately to solve a TSP using exactly the algorithm described for intlinprog, then you need to create a function handle that gives the value of a tour; you cannot use a vector as intlinprog does to represent an objective function.
fun = @(x)dot(x,dist);
Please do not use this; you will not get a good solution, and it will take a long time.
Alan Weiss
MATLAB mathematical toolbox documentation
0 comentarios
Ver también
Categorías
Más información sobre Traveling Salesman (TSP) en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!