資源簡介
遺傳算法解決 TSP 問題,并將其可視化
代碼片段和文件信息
#-*-coding:utf-8?-*-
“““
參數設計:種群規模count=100,染色體長度length=33,進化次數evolution_time=5000
編碼策略:采用十進制.直接用城市的編號進行編碼,染色體{1,2,……33}表示路徑為15-1-2-……-33。
“““
“““
參數說明:
origin?#起點0-33->對應城市
state[][]?-----城市坐標
init_count?----改進次數?1000
evolution_time?進化次數?5000
count??--------種群規模?100
pm??-----------變異率???0.1
ps??-----------強者比例?0.3
pr?------------弱者存活率?0.5
population[]---初始化種群
“““
import?numpy?as?np
import?matplotlib.pyplot?as?plt
plt.ion()
import?matplotlib
#顯示中文
matplotlib.rcParams[‘font.family‘]=?‘SimHei‘
import?math
import?random
import?tkinter
import?time
start?=?time.perf_counter()
#獲得總距離
def?get_sum_distance(grouporigin):
distance=0
distance+=state[origin][group[0]]
for?i?in?range(len(group)):
if?i?==?len(group)-1:
distance+=state[origin][group[i]]
else:
distance+=state[group[i]][group[i+1]]
return?distance
#自然選擇
“““?對適應度從大到小排序,選出存活的染色體
????再進行隨機選擇,選出適應度雖然小,但是幸存下來的個體
“““
def?select(populationorigin):
#對總距離從小到大進行排序
dis=[
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.......???????641??2019-06-09?17:37??data.txt
????.......??????8333??2019-06-09?17:37??myTSP.py
-----------?---------??----------?-----??----
?????????????????8974????????????????????2
評論
共有 條評論