天天看點

使用窮舉法實作最優路徑搜尋

調用sweep(窮舉算法解決tsp問題)函數格式為

length=sweep(l)

其中:

l:距離矩陣

length:最短路徑長度

調用distancematrix(求距離矩陣)函數格式為

t=distancematrix(a)

其中:

a:n個點的坐标矩陣,是一個n行2列的矩陣,第一列為橫坐标,第二列為縱坐标。

t:生成的距離矩陣。

補充說明:由于窮舉法的時間複雜性極大,故在此僅編寫4個點的窮舉法作為示例。

function length=sweep(l)

%窮舉法求最短路徑

%l為距離矩陣

for a=1:4

    for j=1:4

        if j~=a

            tr1(j)=l(j,a);

        else

            continue;

        end

            for k=1:4

                if k~=a&&k~=j

                tr2(k)=tr1(j)+l(k,j);

                else 

                    continue;

                end

                    for i=1:4

                        if i~=a&&i~=j&&i~=k

                            tr3(i)=tr2(k)+l(i,k);

                            loop(i)=tr3(i)+l(a,i);

                        else 

                            continue;

                        end

                    end

            end

    end

end

length=min(loop);

end

繼續閱讀