粒子群算法的多线程并行计算(python)

前言:我又从仓库里面翻出来了2020年写的一篇博文,作为我无知青葱岁月的留影。

粒子群算法求解多配送中心的车辆调度优化问题(python3)

紧接上一篇文章《遗传+粒子群 求解多配送中心车辆调度问题(python)》,考虑采用多线程的方式封装粒子群算法,加快算法的整体求解速度。

1.代码实现

def get_lower_solution(location_index):location_customer_list = allocation_customer(location_index)ind_routes = []ind_value = 0thread_list = []for i in range(len(location_index)):supply_index = location_index[i]demand_nodes = location_customer_list[i]demand_nodes = [i + 1 for i in demand_nodes]  # 需求节点的编号从1开始demand_node_num = len(demand_nodes)# 采用粒子群算法针对需求节点的索引进行计算下层模型的成本pso_parameter_dict['dim'] = pso_parameter_dict['solution_layer'] * demand_node_num  # 一个粒子的维度pso_parameter_dict['x_bound'] = [[1, data_dict['vehicle_num']], [1, demand_node_num]]  # 自变量的上下限限制distance_graph, pathTime_graph = get_pathLen_time(supply_index)# 初始化粒子群类pso = pso_operation(pso_parameter_dict, data_dict,demand_nodes, distance_graph, pathTime_graph, )thread_list.append(pso)for ind_thread in thread_list:ind_thread.start()for ind_thread in thread_list:ind_thread.join()best_routes, best_value = ind_thread.get_result()ind_routes += best_routesind_value += best_valuereturn ind_routes, ind_value

2.效能比较

感觉并没有快,为了防止粒子群算法封装的类函数的属性被修改,所以采用了锁的机制。

3.小结

参考文章:
1.python队列基本使用https://www.cnblogs.com/yhleng/p/9493457.html
2.Python建立多线程任务并获取每个线程返回值https://www.cnblogs.com/bethansy/p/7965820.html
3.Python—线程的锁https://blog.csdn.net/weixin_41678001/article/details/84487536
4.Python threading(多线程)https://www.cnblogs.com/leozhanggg/p/10317494.html
5.Python中的多线程
https://baijiahao.baidu.com/s?id=1637308955850713833&wfr=spider&for=pc
6.Python多线程与队列https://www.cnblogs.com/yonguo123/p/11901050.html
7.Python多线程——队列(Queue)https://www.jianshu.com/p/e30d302ebdeb
8.python 实现多线程并返回函数返回值的三种方法https://blog.csdn.net/qq_43178297/article/details/102805223
9.Python3用多线程替代for循环提升程序运行速度
https://www.cnblogs.com/LanTianYou/p/11498525.html
10.[Python技巧]如何加快循环操作和Numpy数组运算速度
https://blog.csdn.net/lc013/article/details/100033413
11.多线程https://www.liaoxuefeng.com/wiki/897692888725344/923056337842176

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

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

相关文章

用i18next使你的应用国际化-React

ref: https://www.i18next.com/ i18next是一个用JavaScript编写的国际化框架。 i18next为您提供了一个完整的解决方案,本地化您的产品从web端到移动端和桌面端。 在react项目中安i18next依赖: i18nextreact-i18nexti18next-browser-languagedetector&…

Spring(二):更简单的存储与读取 Bean

通过上一章的Spring,我们基本实现了Spring 的读取与存储,但是在操作过程中,读取与存储并没有那么得“简单” 一套流程还是很复杂,所以,本章来介绍更加简单得读取与存储。 在 Spring 中想要更简单的存储和读取对象的核…

mysql通过binlog恢复数据

开启binlog 在my.ini中添加以下两行代码: log-binmysql-binserver-id1 注意要写在[mysqld]范围内才会生效 查看binlog存放日志文件目录 show variables like %datadir%; 查看binlog文件名 show master logs; 将binlog转换成sql mysqlbinlog --no-defaults --bas…

【LeetCode热题100】打卡第42天:滑动窗口最大值搜索二维矩阵II

文章目录 【LeetCode热题100】打卡第42天:滑动窗口最大值&搜索二维矩阵II⛅前言 滑动窗口最大值🔒题目🔑题解 搜索二维矩阵II🔒题目🔑题解 【LeetCode热题100】打卡第42天:滑动窗口最大值&搜索二维…

SpringMVC程序开发

1.什么是Spring MVC? Spring Web MVC是基于Servlet API构建的原始的Web框架,从一开始是就包含在Spring框架中。它的正式名称“Spring Web MVC"来自其源模板的名称(Spring-webmvc),但通常被称为“Spring MVC" 从上述的定义我们可…

[visionOS][Apple Vision Pro] 缩放3D模型

方法一:通过代码来设置Model3D Model3D(named:"你的3D模型名称",bundle:realityKitContentBundle).padding(.bottom,50).scaleEffect(0.2) //这句用来缩放 方式二:别人可以,我验证过不行的方法 RealityKitContent工具中&#xf…

PLC-Recorder的高速采集有多快?0.5ms算快吗?看控制器能力了!

大家知道,PLC-Recorder有一个高速采集的功能,基于TCP连接或UDP报文,速度取决于发送端的能力。对于西门子PLC,能做到1-2ms的采集速度,但是,我在前面的文章里提到了0.5ms的高速采集,哪个控制器能这…

Linux 下 nc 发送接收 udp、tcp数据

nc,全名叫 netcat,它可以用来完成很多的网络功能,譬如端口扫描、建立TCP/UDP连接,数据传输、网络调试等等,因此,它也常被称为网络工具的 瑞士军刀 。 一、只服务端使用nc 备注:这种方式只能发…

49:字符串的新增方法

字符串的新增方法 String.fromCodePoint()String.raw()实例方法:codePointAt()实例方法:normalize()[实例方法:includes(), startsWith(), endsWith()](https://es6.ruanyifeng.com/#docs/string-methods#实例方法:includes(), s…

Django实现音乐网站 ⑴

使用Python Django框架制作一个音乐网站。 目录 网站功能模块 安装django 创建项目 创建应用 注册应用 配置数据库 设置数据库配置 设置pymysql库引用 创建数据库 创建数据表 生成表迁移文件 执行表迁移 后台管理 创建管理员账户 启动服务器 登录网站 配置时区…

自媒体必备的8个素材网站,视频、音效、图片全部免费下载

自媒体必备的视频、音效、图片素材,这8个网站帮你解决。赶紧马住! 菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库虽然是一个设计网站,但它还有非常丰富的视频和音频素材,视频素材全部都是高清无水印&#…

Java 贪心算法经典问题解决

文章目录 分金条题目思路代码实现测试用例以及结果输出 花费资金做项目最大收益题目思路代码实现测试用例以及结果输出 预定会议室题目思路代码实现测试用例以及结果输出 取中位数题目思路代码实现测试用例以及结果输出 最低字典序题目思路代码实现测试用例以及结果输出 结语 分…

vite打包性能优化以及填坑

目录 前言 项目优化前 分析 优化 拆分包 去除debugger CDN 加速 按需导入 文件压缩 图片压缩 viteImagemin报错 填坑 坑1 坑2 总结 配置 前言 最近在使用 Vite4.0 构建一个中型前端项目的过程中,遇到了一些坑,也做了一些项目在构建生产环…

C进阶:文件操作

C语言文件操作 什么是文件 磁盘上的数据是文件。 但是在程序设计中,我们一般谈的文件有两种:程序文件(例如.c,.h这一类编译,链接过程中的文件),数据文件。 程序文件 包括源程序文件(后缀为.c&…

重生之我要学C++第四天

这篇文章的主要内容是类的默认成员函数。如果对大家有用的话,希望大家三连支持,博主会继续努力! 目录 一.类的默认成员函数 二.构造函数 三.析构函数 四.拷贝构造函数 五.运算符重载 一.类的默认成员函数 如果一个类中什么成员都没有&…

JavaWeb 速通HTTP

目录 一、HTTP快速入门 1.HTTP简介 : 2.HTTP请求头 : 3.HTTP响应头 : 二、HTTP响应状态码 1.基本介绍 : 2.常见状态码 : 3.状态码的分类 : 4.完整状态码汇总 : 三、HTTP请求包和响应包 1.请求包分析 : 1 GET请求 (1) 说明 (2) doGet返回数据给浏览器 (3) form表单提…

Hadoop生态体系-2

目录标题 1、MapReduce介绍2、数据仓库3、HIVE4、HQL4.1 hive读写文件机制4.2 Hive数据存储路径 1、MapReduce介绍 思想:分而治之 map:“分”,即把复杂的任务分解为若干个“简单的任务”来处理。可以进行拆分的前提是这些小任务可以并行计算&#xff0c…

CSS基础学习总结

1.css是给HTML标签添加 样式 的语言&#xff0c;通过选择器&#xff08;标签、id、class&#xff09;建立连接 2.css三种形式 内嵌式&#xff1a;在< head></ head>中写< style>css</ style> 外链式&#xff1a;在< head></ head>中写<…

C++ 函数重载

1.函数重载的概念 在C中可以为两个或两个以上的函数提供相同的函数名称&#xff0c;只要参数类型不同&#xff0c;或参数类型相同而参数个数不同&#xff0c;称为函数重载。 在C语言中实现int&#xff0c;char&#xff0c;double类型的比较大小函数&#xff1a; int my_max_…

LeetCode-每日一题-将数组和减半的最少操作次数

2208. 将数组和减半的最少操作次数 提示 中等 49 相关企业 给你一个正整数数组 nums 。每一次操作中&#xff0c;你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。&#xff08;注意&#xff0c;在后续操作中你可以对减半过的数继续执行操作&#xff09; 请你返…