【人工智能】高级搜索技术(模拟退火搜索算法和遗传算法解决旅行商问题)

目录

一、旅行商问题

1. 需求分析

2. 数据结构、功能模块设计与说明

2.1 数据结构

(1)模拟退火搜索算法

(2)遗传算法

2.2 功能模块设计

(1)模拟退火搜索算法

(2)遗传算法

3. 核心代码与测试结果说明

(1)模拟退火搜索算法

(2)遗传算法

4. 心得体会


一、旅行商问题

现有一个商人,准备从广州出发,经过广东省的各个城市再回到广州,每个城市只经过一次,城市分布情况见图1所示。请使用模拟退火搜索算法和遗传算法寻找一条线路,使得商人按上述要求走过的路径之和最短,并比较两种方法所使用的时间和最终的行走路径的优越性。各个城市之间的距离请通过上网搜索确定。

图1 广东省市级城市分布图

1. 需求分析

使用模拟退火搜索算法和遗传算法寻找一条线路,使得商人从广州出发,经过广东省的各个城市再回到广州,每个城市只经过一次且路径之和最短。

2. 数据结构、功能模块设计与说明

2.1 数据结构

(1)模拟退火搜索算法

① 分别有初始温度、冷却因子、终止温度、每个温度内循环次数、城市数量,数据结构如下

② 字符串数组保存城市名称

③ Dist数组存储广东省内各城市之间的距离:

④ 用ArrayList存储路径,路径上的一个城市用一个整形保存它在cities数组中对应的下标。

(2)遗传算法

① 下面几张截图和上面算法一样

② 每一个个体用一个类表示,保存当前个体的路径数组和适应度。

③ 适应度的计算:适应度=1/路径距离。路径越短,适应度越高,越容易被接受。

2.2 功能模块设计

(1)模拟退火搜索算法

流程图如下:

(2)遗传算法

① 总流程图:

说明:这个遗传算法我的编码就是这个路径上各城市对应在cities数组中的下标。以下是各重要的子模块流程图。

② 子模块1:选择适应度高的染色体流程图

③ 子模块2生成累积概率表流程图

④ 子模块3:轮盘选择法流程图

⑤ 子模块4:交叉操作流程图

⑥ 子模块5:变异操作流程图

3. 核心代码与测试结果说明

(1)模拟退火搜索算法

① 控制温度下降:外循环温度,内循环每个温度遍历次数

② 初始化路径列表

③ 计算整数列表表示的路径上的节点距离之和

④ 概率函数:判断是否接受新的解

⑤ 模拟退火算法测试结果:

结果为2904

(2)遗传算法

① 主函数

② 初始化种群

③ 计算适应度

④ 选择适应度高的个体

⑤ 计算累积概率表

⑥ 交叉

部分代码:

⑦ 变异

遗传算法测试结果:

我设置的初始个体数是500个,这里第一代就已经找到最终结果了,和模拟退火一样是2904

4. 心得体会

(1)两种算法在相近的运行时间内,模拟退火的误差维持在5%左右,稍差于遗传算法

(2)模拟退火是采用单个个体进行优化遗传算法是一种群体性算法

(3)模拟退火与遗传算法都对初解有一定的依赖性,好的初解有利于最终解。

(4)遗传算法可以采用并行计算来加快算法运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 PostgreSQL 里如何处理数据的存储优化和查询复杂度的平衡?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何处理数据的存储优化和查询复杂度的平衡?一、理解数据存储优化和查询复…

亚马逊、ebay、沃尔玛卖家打造爆款如何利用测评提高转化率?

做亚马逊、速卖通、ebay只有打造爆款,才能够挣到钱,如果一年到头,不断测款,不断测试不同的广告打法,那么代表了什么?代表了你的试错成本相当高,一不小心,分分钟就能够把手头上仅有的…

工业智能网关的边缘计算能力赋能工业4.0

边缘计算是将数据处理和分析能力推向网络边缘的技术,使得终端设备能够实时、快速地响应环境变化,并做出相应决策。在智能制造中,通过5G工业网关的边缘计算能力,企业可以实现对生产线上大量传感器数据的实时采集、处理和分析&#…

开发实战经验分享:互联网医院系统源码与在线问诊APP搭建

作为一名软件开发者,笔者有幸参与了多个互联网医院系统的开发项目,并在此过程中积累了丰富的实战经验。本文将结合我的开发经验,分享互联网医院系统源码的设计与在线问诊APP的搭建过程。 一、需求分析 在开发任何系统之前,首先要…

用chatgpt写了个二级导航,我全程一个代码没写,都是复制粘贴

今天心血来潮,让chatgpt给我写个移动端的二级导航菜单,效果如下: 1、两级导航,竖向排列,一级导航默认显示,二级隐藏 2、抽屉伸缩效果,点击一级导航,展开二级导航,再次点…

条件匹配工具之ACL概述

基本概念 ACL,即Access Control List(访问控制列表),每个ACL但是是由单条或多条Rule(规则)组成的一个集合 技术背景: 1.用户需求: 用户对网络服务体验的要求越来越高&#xff0c…

冒泡,选择,插入,希尔排序

目录 一. 冒泡排序 1. 算法思想 2. 时间复杂度与空间复杂度 3. 代码实现 二. 选择排序 1. 算法思想 2. 时间复杂度与空间复杂度 3. 代码实现 三.插入排序 1. 直接插入排序 (1). 算法思想 (2). 时间复杂度与空间复杂度 (3). 代码实现 2. 希尔排序 (1). 算法思想 …

使用mitmproxy抓包详细记录(一)

1、安装mitmproxy pip install mitmproxy 安装失败解决方案,见上一篇 2、编辑代码,可以直接复制我的. 给文件起名,attacy.py import mitmproxyimport csv from mitmproxy import httpclass RequestRecorder:def __init__(self):self.records…

文件安全传输系统,如何保障信创环境下数据的安全传输?

文件安全传输系统是一套旨在保护数据在传输过程中的安全性和完整性的技术或解决方案。通常包括以下几个关键组件: 加密:使用强加密算法来确保文件在传输过程中不被未授权访问。 身份验证:确保只有授权用户才能访问或传输文件。 完整性校验…

如何通过SSH协议使用WinSCP实现Windows与Linux之间的远程公网文件传输

目录 ⛳️推荐 前言 1. Windows传输文件至Linux 2. WinSCP使用公网TCP地址连接 3. WinSCP使用固定公网TCP地址访问服务器 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 前…

使用geoipupdate自动更新GeoIP数据库

一、 什么是 GeoIP? 通过在数据库中将地理位置和 IP 地址相互映射,软件程序便可以使用 IP 地址来确定其对应的地理位置,其中包括国家/地区、州/省、城市、邮政编码、纬度/经度、ISP、区号和其他信息。 很多软件都使用 MaxMind 的数据库对 IP…

PyMongo Sort 操作:提升你的数据查询效率

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

AI写作辅助,如何确保学术诚信?

感谢笔灵AI,让我论文完成后但毕竟是AI生成的,充满了AI的痕迹。不敢轻率地将其呈交!最终一个必须完成的任务就是清除AI的痕迹。今天就为大家带来笔灵去AI痕迹,好用到哭!走起! 传送门:https://ib…

新版本WPS不登录无法编辑的解决办法

原因分析:新版本的WPS因加入多种在线功能,建议登录账号获得更加体验 解决办法:首选第一种修改注册表后重启WPS,第二种仅作为临时满足工作需求,过一段时间会自动失效 方法一:键盘同时按下WINR键,…

【NLP大模型】词嵌入的空间表示与应用

文章目录 一、语义特征空间二、引入新维度:皇室三、语义特征向量的用途四、向量运算类比五、词嵌入的维度和应用词嵌入的应用 六、测量欧几里得距离向量计算向量和欧几里得距离 七、使用点积测量相似度八、创建词嵌入 一、语义特征空间 考虑“男人”、“女人”、“…

33页PPT免费下载 | 2024企业数据资产化及数据资产入表白皮书

一、前言 2024年01月,财政部《关于加强数据资产管理的指导意见》,通过加强和规范公共数据资产基础管理工作探索公共数据资产应用机制,促进公共数据资产高质量供给,有效释放公共数据价值,为赋能实体经济数字化转型升级…

Java用JDBC链接mysql

一、什么是JDBC: 是Java平台上的标准数据库访问技术。它提供了一套API(应用程序编程接口),允许Java应用程序与各种类型的数据库进行交互,包括关系型数据库(如MySQL、Oracle、SQL Server等)和非关…

【日记】艾尔登法环终于玩完了(348 字)

正文 昨天打了一天游戏。法环差不多通关了。最终 boss 艾尔登鼻涕虫实在打不过,两个人开挂打了。艾尔登之兽老是马拉松,这谁顶得住,追都追不上。据兄长说,这游戏大概还有 50%-60% 的内容没玩,不过就这样吧,…

解决VMware虚拟机在桥接模式下无法上网的问题

解决VMware虚拟机在桥接模式下无法上网的问题 windows11系统自动启动了热点功能,开启热点可能会干扰虚拟机的桥接设置。 方法一:windows11可以提供网络热点服务 方法二:手动指定桥接的物理网卡 方法一:关闭热点功能 优点&#xff…

MYSQL 四、mysql进阶 10(数据库其它调优策略)

一、数据库调优的措施 1.1 调优的目标 尽可能节省系统资源 ,以便系统可以提供更大负荷的服务。(吞吐量更大)合理的结构设计和参数调整,以提高用户操作响应的速度 。(响应速度更快)减少系统的瓶颈&#xff…