[TSP問題]ホタルアルゴリズムに基づくTSP問題の解決[MatlabIssue 141] [経路計画24]

1.背景

問題の定義:巡回セールスマン問題
。n個の都市のセットとそれらの間の直接距離を前提として、各都市が1回通過し、合計移動距離が最短になるように、閉じた移動を見つけます。
セールスマン負担問題としても知られるTSP問題は、古い問題です。それは、1759年にオイラーによって提起された騎士の旅の問題にまでさかのぼることができます。1948年、American RAND Corporationによって推進され、TSPは現代のポートフォリオ最適化の分野で典型的な問題になりました。
TSPは、広範なアプリケーションの背景と重要な理論的価値を持つ組み合わせ最適化問題です。近年、ホップフィールドニューラルネットワーク法、シミュレーテッドアニーリング法、遺伝的アルゴリズム法など、この問題を解決するためのより効果的なアルゴリズムが数多く導入されています。
TSP探索空間は、都市の数nが増えると増加し、すべての移動ルートの組み合わせの数は(n-1)!/ 2です。このような広大な探索空間で最適解を見つけるには、従来の方法や既存の計算ツールには多くの計算上の問題があります。遺伝的アルゴリズムの検索能力を利用してTSP問題を解決するのは自然な考えです。

2.概要

ホタルアルゴリズムは、ホタルの点滅動作に触発されたヒューリスティックアルゴリズムです。ホタルの閃光の主な目的は、他のホタルを引き付ける信号システムとして機能することです。
仮説は次のとおりです。
ホタルは性別に依存しないため、1つのホタルが他のすべてのホタルを引き付けます。引き付けはその明るさに比例します。2つのホタルの場合、明るさの低いホタルが引き付けられるため、明るいホタルに移動します。ただし、1つは明るいホタルに移動します。距離が長くなると明るさが低下します。特定のホタルより明るいホタルがない場合は、ランダムに移動します。明るさは目的関数に関連している必要があります。ホタルアルゴリズムは、自然に触発された発見的最適化アルゴリズムです。
ここに写真の説明を挿入
ここに写真の説明を挿入

3、ソースコード

clear;
clc;
close all;
X=[16.47,96.10
    16.47,94.44
    20.09,92.54
    22.39,93.37
    25.23,97.24
    22.00,96.05
    20.47,97.02
    17.20,96.29
    16.30,97.38
    14.05,98.12
    16.53,97.38
    21.52,95.59
    19.41,97.13
    20.09,92.55];
R=11;
MAXGEN=200;
NIND=100;
D=Distanse(X);
N=size(D,1);
%%初始化种群
Chrom=InitPop(NIND,N);
%%在二维图上画出所有坐标点
figure
plot(X(:,1),X(:,2),'o');
%%画出随机解的路线图
DrawPath(Chrom(1,:),X);
pause(0.0001)
%%输出随机解的路线和总距离
disp('初始种群中的一个随机解:')
OutputPath(Chrom(1,:));
Rlength=PathLength(D,Chrom(1,:));
disp(['总距离:',num2str(Rlength)]);
disp('-------------------------------------------------------------------------------------------------')
%%优化
gen=0;
figure;
hold on;box on
xlim([0,MAXGEN])
title('优化过程')
xlabel('代数')
ylabel('最优值')
ObjV=PathLength(D,Chrom);                           %计算路线长度title('优化过程')xlable('代数')ylable('最优值')
preObjV=min(ObjV);
while gen<MAXGEN
    %%计算适应度
    ObjV=PathLength(D,Chrom);                        %计算路线长度
    %fprintf('%d    %1.10f\n',gen,min(ObjV))
    line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.0001)
    preObjV=min(ObjV);
    FitnV=Fitness(ObjV);
    for i=1:NIND
        K=0;
        subject=zeros(NIND,N);
        for j=1:i-1
            dij=ristanse(Chrom(i,:),Chrom(j,:));
            if dij<=R
                K=K+1;
                subject(K,:)=Chrom(j,:);
            end
        end
        for j=i+1:NIND
            dij=ristanse(Chrom(i,:),Chrom(j,:));
             if dij<=R
                K=K+1;
                subject(K,:)=Chrom(j,:);
             end
        end
        if K==0
        subject1=zeros(1,N);
        else subject1=zeros(K,N);
        end
 
        end
        end
    end
     gen=gen+1;
end
%%画出最优解的路线图
ObjV=PathLength(D,Chrom);
[minObjV,minInd]=min(ObjV);
DrawPath(Chrom(minInd(1),:),X)
%%输出最优解的路线和总距离
disp('最优解')
p=OutputPath(Chrom(minInd(1),:));
disp(['总距离:',num2str(ObjV(minInd(1)))]);
disp('-------------------------------------------------------------------')

四、操作効果

ここに写真の説明を挿入
注:完全なコードまたは記述については、QQ1564658423を追加してください。
過去のレビュー>>>>>>
[Matlab 015] [パスプランニング1]パーティクルスウォームに基づく3DUAVパスプランニングmatlabソースコード
[Matlab017] [パスプランニング2]複数のロジスティクスセンターの開設を準備するための遺伝子アルゴリズムの使用-スタイル車両ルーティング問題Matlabプログラム
[Matlab018] [パスプランニング3]粒子群に基づくロボットグリッドパスプランニング
[Matlab019] [パスプランニング4]最短パスを解決するためのAntコロニーアルゴリズムmatlab
[Matlab 020] [パスプランニング5] Matlabロジスティクスセンターロケーション問題の免疫アルゴリズム
[Matlab021] [パスプランニング6]人工蜂コロニーに基づくドローンの3次元パスプランニング
[Matlab027] [パスプランニング7]グリッドマップに基づく遺伝的アルゴリズムロボット最適パスプランニング
[Matlab 034期間] [パスプランニング8]
グリッドマップに基づくAntコロニーベースのマルチUAV攻撃スケジューリング-ロボット最適パスプランニングのための遺伝的アルゴリズム[Matlab022期間] [パスプランニング9]
マルチUAV協調ターゲット割り当てモデリングと遺伝子アルゴリズムソリューション割り当て順序の検討[
Matlab110 ] [パスプランニング10]多施設vrp問題のAntコロニーアルゴリズムmatlab [Matlab 111] [パスプランニング11]
Antコロニーアルゴリズムに基づく時間ウィンドウmatlabを使用した多施設VRP問題の解決[Matlab112 ] [パスプランニング12]
時間ウィンドウmatlabで多施設VRP問題を解決するためのantコロニーアルゴリズムに基づく[Matlab113] [パスプランニング13]
遺伝子アルゴリズムに基づく多施設VRPソリューションmatlab【Matlab114】【パスプランニング14】
VRP問題を解くためのシミュレートされたアニーリングmatlab [Matlab 115] [パスプランニング15]
スターベースのグリッドパスプランニング[Matlab116] [パスプランニング16]
クロスファクターを使用した双方向最適化粒子群グリッドマップパスプランニング[Matlab117] [パスプランニング17]
[TSP] GUIを使用してTSP問題を解決するためのAntコロニーアルゴリズム[Matlab118] [パスプランニング18]
Antコロニーアルゴリズムに基づくグリッドマップパスプランニングmatlab [Matlab 119] [パスプランニング19]
巡回セールスマンのTSP問題遺伝的アルゴリズムに基づく[Matlab135] [経路計画20]
シミュレートされたアニーリングアルゴリズムに基づく巡回セールスマンのTSP問題[Matlab136] [経路計画21]
アリコロニーアルゴリズムに基づくスマートカー経路計画[MatlabIssue 137] [経路計画22 ]
Huaweiカップ:緊急および災害救援におけるUAVの最適な使用[Matlab Issue 138] [Path Planning 23]

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/112799340