模拟退火算法解决31个城市的旅行商TSP问题

本文介绍了使用模拟退火算法解决31个城市旅行商问题的实践,探讨了实验过程,并鼓励读者尝试不同的参数设置以优化结果。
摘要由CSDN通过智能技术生成

第二次实验

#-*-coding:gb2312-*-
# 模拟退火算法实现31个城市的TSP问题
import matplotlib.pyplot as plt
import numpy as np
import math
import random

global m, dis, L, p
m = 31  # 问题的规模
T = 100000  # 初始温度
L = 1000  # 每个温度的迭代次数
rate = 0.996  # 降温速率
p = []  # 31个城市的坐标
dis = [[0]*m for i in range(m)]  # 使用邻接矩阵存储两城市之间的距离
start = 0  # 从第一个城市出发
now_way = [start] * m  # 当前解的路线
now_way_length = 0  # 当前解的路径长度
new_way = [0] * m  # 新解的路线
new_way_length = 0  # 新解的路径长度
threshold = 0  #接受准测产生的概率要大于该数,新解才能被接受,
# 该数是一个(0,1)之间的随机数
record = []  # 用于存放在降温过程中产生的解的长度


class no:  # 该类表示每个点的坐标
    def __init__(self, x, y):
        self.x = x
        self.y = y

def mycol():  # 城市坐标输入
    coordinate = [[1304, 2312], [3639, 1315], [4177, 2244], [3712, 1399], [3488, 1535], [3326, 1556],
                  [3238, 1229], [4196, 1004], [4312, 790], [4386, 570], [3007, 1970], [2562, 1756],
                  [2788, 1491], [2381, 1676]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值