gr48是tsp問題的典型測試資料集,該資料集是乙個下三角矩陣,每乙個元素代表對應座標城市i->j的距離,那麼現在要做的就是讀取檔案read(),按照空格分開形成乙個一維向量,然後按照數量關係存到乙個二維矩陣中,處理方法如下:
一開始拿到資料集,完全不明白亂七八糟的一堆是什麼,後來才知道是乙個下三角矩陣,再後來才發現可以變成這樣:
突然覺得發現了新天地。
我參考的**用的是pandas,逐行讀取,可我這資料有點亂吶。最後我還是直接檔案讀取,用numpy進行陣列的處理。以下是我費了好大功夫研究出來的資料處理的超級超級簡單的**。
dist = np.zeros(
(citynum, citynum)
)with
open
(datapath)
asfile
: data = np.array(
file
.read(
).split())
count =
0print
(len
(data)
)for i in
range(10
):for j in
range(10
):if data[count]
=='0'
: dist[i, j]
= data[count]
count +=
1break
else
: dist[i, j]
= data[count]
count +=
1
可能下面判斷的部分還可以優化,如果大佬看到了這篇文章,請挽救一下我這只賊笨的小菜雞!!
每次遇到乙個新問題,我處理資料都得大半天,真想哭。每次聽到同學說,不想寫那個程式,一弄就得耽誤三四個小時,更得哭了!我每次都卡在資料處理上,怎麼搞?
不能放棄,多練習,順便把基礎打牢!
tsp遺傳演算法
include include include include include include using namespace std define m 10 種群規模 define n 31 省會 首府城市數量 define t 10000 遺傳代數 define earth radius 637...
tsp問題 遺傳演算法解決
tsp問題最簡單的求解方法是列舉法。它的解是多維的 多區域性極值的 趨於無窮大的複雜解的空間,搜尋空間是n個點的所有排列的集合,大小為 n 1 可以形象地把解空間看成是乙個無窮大的丘陵地帶,各山峰或山谷的高度即是問題的極值。求解tsp,則是在此不能窮盡的丘陵地帶中攀登以達到山頂或谷底的過程。這一篇將...
遺傳演算法解決TSP問題
基本原理在 中有注釋 1 include2 include 3 include 4 include5 include 6 using std string 7 8struct position9 1617 double tsp int n,struct position position,int t...