当前位置: 首页 > news >正文

做外贸要做什么网站百度浏览器app

做外贸要做什么网站,百度浏览器app,傻瓜式网页制作工具,yellow在线观看完整版视频目录 一、模拟退火算法求解TSP(city14)的python代码 二、city14的运行结果 三、 模拟退火算法求解TSP(city30)的python代码 四、city30的运行结果 一、模拟退火算法求解TSP(city14)的python代码 impor…

目录

一、模拟退火算法求解TSP(city14)的python代码

二、city14的运行结果

三、 模拟退火算法求解TSP(city30)的python代码

四、city30的运行结果


一、模拟退火算法求解TSP(city14)的python代码

import random
import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False'''计算路径总路程的函数'''
def fitness(n,X,Y,X0):''':param n: 城市数量:param X: n个城市的横坐标:param Y: n个城市的纵坐标:param X0: 一个解向量:return: 总路程'''s=0for i in range(n):if i!=n-1:s=s+np.sqrt((X[X0[i]]-X[X0[i+1]])**2+(Y[X0[i]]-Y[X0[i+1]])**2)else:s=s+np.sqrt((X[X0[i]]-X[X0[0]])**2+(Y[X0[i]]-Y[X0[0]])**2)return s'''定义领域搜索运算操作——交换操作'''
def exchange(X0,q):''':param X0: 一个解向量:param q: 指定的需要交换的数的两个位置的列表,列表长度为2:return: 一个领域解'''X1=X0.copy()temp=X1[q[0]]X1[q[0]]=X1[q[1]]X1[q[1]]=tempreturn X1'''定义随机产生初始解的函数'''
def initialX0(n):''':param n: 城市数量:return: 一个初始解'''X0=random.sample(range(n),n)return X0'''模拟退火算法——TSP'''
def SA_TSP(n,X,Y,n_TK,r,T_f):''':param n: 城市数量:param X: n个城市的横坐标:param Y: n个城市的纵坐标:param n_TK: 内循环的迭代次数:param T_down: 降温变化:param T_f: 终止温度:return: 最优路径和最短距离''''''产生一个初始解'''X0=initialX0(n)print("初始解:\n{}".format(X0))print("初始解的总路程:\n{}".format(fitness(n,X,Y,X0)))'''初始温度'''T0=1000'''存储历史最优路径'''X_min=[]X_min.append(X0)'''存储历史最优距离'''s_min=[]s_min.append(fitness(n,X,Y,X0))k=0while T0>T_f:for i in range(n_TK):#随机产生两个位置q=random.sample(range(n),2)#领域运算得到一个随机领域解X1=exchange(X0,q)#计算初始解和随机领域解的目标函数值s1=fitness(n,X,Y,X0)s2=fitness(n,X,Y,X1)#更新历史最优解if s2<min(s_min):s_min.append(s2)X_min.append(X1)else:s_min.append(s_min[-1])X_min.append(X_min[-1])'''判断是否更新解'''if s2<s1:X0=X1else:E=math.exp(-(s2-s1)/T0)R=random.uniform(0,1)if E>R:X0=X1k=k+1'''降温'''T0=T0*r'''绘制优化过程'''plt.plot(range(k+1),s_min)plt.grid()plt.title("模拟退火算法——TSP的优化过程")plt.xlabel("迭代次数")plt.ylabel("总路程")plt.show()'''绘制路线图'''#最优路径W=X_min[-1]for i in range(n):if i!=n-1:plt.plot([X[W[i]],X[W[i+1]]],[Y[W[i]],Y[W[i+1]]],c='plum')else:plt.plot([X[W[i]],X[W[0]]],[Y[W[i]],Y[W[0]]],c='plum')plt.scatter(X,Y,c='red')plt.title("路线图")plt.xlabel("x")plt.ylabel("y")plt.show()return X_min[-1],s_min[-1]'''主函数'''
if __name__=="__main__":'''城市的数量'''n=14'''定义14个城市的坐标'''city_x=[16.47,16.47,20.09,22.39,25.23,22.00,20.47,17.20,16.30,14.05,16.53,21.52,19.41,20.09]city_y=[96.10,94.44,92.54,93.37,97.24,96.05,97.02,96.29,97.38,98.12,97.38,95.59,97.13,92.55]'''内循环的迭代次数'''n_Tk=200'''降温变化'''r=0.9'''终止温度'''T_f=0.001'''模拟退火算法求解TSP'''Xmin,smin=SA_TSP(n,city_x,city_y,n_Tk,r,T_f)print("最优路径:\n{}".format(Xmin))print("最短距离:\n{}".format(smin))

二、city14的运行结果

 

三、 模拟退火算法求解TSP(city30)的python代码

import random
import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False'''计算路径总路程的函数'''
def fitness(n,X,Y,X0):''':param n: 城市数量:param X: n个城市的横坐标:param Y: n个城市的纵坐标:param X0: 一个解向量:return: 总路程'''s=0for i in range(n):if i!=n-1:s=s+np.sqrt((X[X0[i]]-X[X0[i+1]])**2+(Y[X0[i]]-Y[X0[i+1]])**2)else:s=s+np.sqrt((X[X0[i]]-X[X0[0]])**2+(Y[X0[i]]-Y[X0[0]])**2)return s'''定义领域搜索运算操作——交换操作'''
def exchange(X0,q):''':param X0: 一个解向量:param q: 指定的需要交换的数的两个位置的列表,列表长度为2:return: 一个领域解'''X1=X0.copy()temp=X1[q[0]]X1[q[0]]=X1[q[1]]X1[q[1]]=tempreturn X1'''定义随机产生初始解的函数'''
def initialX0(n):''':param n: 城市数量:return: 一个初始解'''X0=random.sample(range(n),n)return X0'''模拟退火算法——TSP'''
def SA_TSP(n,X,Y,n_TK,r,T_f):''':param n: 城市数量:param X: n个城市的横坐标:param Y: n个城市的纵坐标:param n_TK: 内循环的迭代次数:param T_down: 降温变化:param T_f: 终止温度:return: 最优路径和最短距离''''''产生一个初始解'''X0=initialX0(n)print("初始解:\n{}".format(X0))print("初始解的总路程:\n{}".format(fitness(n,X,Y,X0)))'''初始温度'''T0=2000'''存储历史最优路径'''X_min=[]X_min.append(X0)'''存储历史最优距离'''s_min=[]s_min.append(fitness(n,X,Y,X0))k=0while T0>T_f:for i in range(n_TK):#随机产生两个位置q=random.sample(range(n),2)#领域运算得到一个随机领域解X1=exchange(X0,q)#计算初始解和随机领域解的目标函数值s1=fitness(n,X,Y,X0)s2=fitness(n,X,Y,X1)#更新历史最优解if s2<min(s_min):s_min.append(s2)X_min.append(X1)else:s_min.append(s_min[-1])X_min.append(X_min[-1])'''判断是否更新解'''if s2<s1:X0=X1else:E=math.exp(-(s2-s1)/T0)R=random.uniform(0,1)if E>R:X0=X1k=k+1'''降温'''T0=T0*r'''绘制优化过程'''plt.plot(range(k+1),s_min)plt.grid()plt.title("模拟退火算法——TSP的优化过程")plt.xlabel("迭代次数")plt.ylabel("总路程")plt.show()'''绘制路线图'''#最优路径W=X_min[-1]for i in range(n):if i!=n-1:plt.plot([X[W[i]],X[W[i+1]]],[Y[W[i]],Y[W[i+1]]],c='plum')else:plt.plot([X[W[i]],X[W[0]]],[Y[W[i]],Y[W[0]]],c='plum')plt.scatter(X,Y,c='red')plt.title("路线图")plt.xlabel("x")plt.ylabel("y")plt.show()return X_min[-1],s_min[-1]'''主函数'''
if __name__=="__main__":'''城市的数量'''n=30'''定义30个城市的坐标'''city_x=[41, 37, 54, 25, 7, 2, 68, 71, 54, 83, 64, 18, 22, 83, 91, 25, 24, 58, 71, 74, 87,18, 13, 82, 62, 58, 45,41,44, 4]city_y=[94, 84, 67, 62, 64, 99, 58, 44, 62, 69, 60, 54, 60, 46, 38, 38, 42, 69, 71, 78, 76,40, 40, 7, 32, 35, 21,26,35, 50]'''内循环的迭代次数'''n_Tk=300'''降温变化'''r=0.9'''终止温度'''T_f=0.001'''模拟退火算法求解TSP'''Xmin,smin=SA_TSP(n,city_x,city_y,n_Tk,r,T_f)print("最优路径:\n{}".format(Xmin))print("最短距离:\n{}".format(smin))

四、city30的运行结果

 

http://www.hkea.cn/news/209984/

相关文章:

  • 4s店网站建设方案百度app下载最新版
  • 创建电子商务网站的7个步骤做网站推广需要多少钱
  • DW怎么做电商网站梅花seo 快速排名软件
  • 哪个网站可以查企业信息今日热搜榜官网
  • 做网站有必要注册商标吗河北百度seo关键词
  • 网站更换服务器教程下载app到手机上并安装
  • 学校网站建设都是谁做的网络舆情分析
  • 怎么把现有网站开发php昆明seo排名外包
  • 网站桥页怎么找理发培训专业学校
  • 谷城网站开发百度导航官网
  • 做网站不优化平面设计网站
  • 聊城做网站的公司价格谷歌seo软件
  • 支部网站及活动室建设网页广告调词平台
  • 网站建设的企业抚州seo外包
  • 澳门wap网站制作百度关键词检测工具
  • 哪些外贸网站可以做soho首页
  • 三门峡网站建设电话青岛网站推广公司
  • 洞口做网站找谁市场营销推广方案模板
  • 怎么做用来表白的网站湖人队最新消息
  • 新疆网站建设哪家好泉州网站seo外包公司
  • 网站开发前后端工具组合深圳推广公司推荐
  • 老外做的汉字网站一键生成app制作器
  • 网上设计接单的网站seo排名优化排行
  • wordpress后台加统计代码seo建站的步骤
  • 怎么做外贸网站的邮箱签名搜索引擎优化是指什么
  • 网页制作基础教程免费邯郸网站seo
  • phpcms做网站感想漯河seo推广
  • 公司部门kpi绩效考核指标模板河北百度seo软件
  • 印团网网站是哪家做的唯尚广告联盟
  • 网红营销网站seo综合查询怎么用的