How to solve TSP using GA?
조회 수: 16 (최근 30일)
이전 댓글 표시
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
답변 (1개)
Alan Weiss
2023년 3월 8일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Traveling Salesman (TSP)에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!