基于遗传算法和优先队列的电缆智能配货系统研究
作者: 陈天勋 钱中昊 许诗曼 陈睿 潘珂摘要:电缆行业中,需要根据客户指定的规格型号、长度和分段需求等选择合适的库存,这一过程称为电缆配货。配货方案的选择需要综合考虑拣货、分割和发货等各方面的效益,面对包含分段需求的订单以及大规模库存,人工配货效率低下,且易产生零头线、异地发货和库存积压等问题。为解决上述问题,本文在总结配货业务员经验的基础上,开发了一个基于遗传算法的电缆智能配货系统,该系统使用 Python 语言实现,允许业务员按需调整遗传算法的价值函数,并使用优先队列维护搜索结果,最终提供多种配货方案供业务员比较和选择。
关键词: 遗传算法; 堆排序; 多目标优化; 电缆; 智能配货
中图分类号:TP319 文献标识码:A
文章编号:1009-3044(2025)07-0113-03
开放科学(资源服务) 标识码(OSID)
0 引言
电缆是国民经济的关键基础产业,其产品广泛应用于交通、通信、电力、建筑、军工等领域,据统计,线缆行业的国内年销售总收入可达万亿元人民币[1]。电缆配货是指根据客户需求选择库存的过程,对优化库存、降低成本和提高订单响应能力等至关重要。随着电缆市场规模不断扩大,产品种类日益丰富,电缆配货任务也迎来了新挑战。面对庞大的库存规模和复杂的客户分段需求,传统的人工配货方式效率低下,且易产生零头线、异地发货和库存积压等问题,难以满足企业日益增长的生产经营管理需求。针对上述问题,本文提出一种基于遗传算法的电缆智能配货系统,该系统使用 Python 语言实现,综合考虑库存电缆的长度、规格型号、库龄和所在仓库等因素,并根据自定义的权重系数计算每种配货方案的价值函数。同时,系统利用优先队列维护备选方案集合,简化特殊情况下的算法逻辑,为业务员快速选择合适的配货方案提供参考。基于某大型线缆企业真实数据的用户调研结果表明,该系统具有良好的易用性和有效性。
1 研究现状
信息技术的飞速发展给传统制造业带来了新的发展机遇。近年来,线缆行业的数字化和智能化转型备受关注。例如,王发麟[2]等设计了基于距离场和扫略剪除算法的线缆碰撞检测方法;吴保胜[3]等基于改进蚁群算法研究了线缆的路径规划;肖飚[4]讨论了粒子群算法在曲线拟合、方程求解和最优化等线缆行业常见问题中的实际应用;吉咸阳[5]等针对线缆表面缺陷人工检测效率低、漏检率高的问题提出基于机器视觉实现在线高速检测;林剑[6]等针对线缆生产调度优化问题提出一种离散Jaya算法,基于单列编码方式和左移编码策略实现最大完工时间最小化;肖雪[7]等给出了基于机器视觉实现智能排线检测的综合性解决方案等。然而,现有研究主要集中在线缆设计、生产和检测等环节,针对电缆配货自动化的研究尚处于起步阶段。目前,业内仍然普遍采用传统的人工配货方式,受业务员数据检索和处理能力的限制,配货已经成为电缆销售和库存优化管理的关键瓶颈环节之一,电缆企业对提高配货效率和优化配货方案有着较为强烈的实际需求,开发智能配货系统具有重要的现实意义。
2 相关工作
2.1 遗传算法
遗传算法是一种基于种群进行搜索的元启发式算法[8],早在21世纪初,遗传算法在设施布局,生产调度和库存管理等生产经营管理活动中就已经有着十分广泛的应用[9]。遗传算法具有良好的全局搜索能力[8],因而适用于多目标优化问题的求解[10]。算法通过模拟自然选择和遗传机制,从初始种群中迭代进化出适应度更好的解。在每一代中,算法根据适应度函数评估个体优劣,并通过选择、交叉和变异等操作产生新的种群。算法重复上述过程,直至满足终止条件[11]。本文采用 Python 的 geneticAlgorithm2 模块实现遗传算法,以搜索兼顾多方面效益的最优电缆配货方案集合。
2.2 优先队列
优先队列是一种常用的数据结构,允许按优先级访问元素,优先级最高或最低的元素总是最先出队。优先队列通常使用二叉堆实现,插入和删除操作的时间复杂度均为 O(logK),其中 K 为队列中元素的数量。在查找长度为 N 的列表中最大或最小的 K 个元素时,使用优先队列的时间复杂度为 O(NlogK),而直接排序的时间复杂度为 O(NlogN)。当 K 远小于 N 时,优先队列的效率更高。本文采用Python的heapq库实现优先队列,用于维护遗传算法搜索到的最优配货方案集合。
3 本文方法
3.1 数据来源及问题定义
本文使用某大型线缆企业的真实电缆库存和销售订单数据进行系统实现和评估。数据集包含约 3.7 万条库存数据和一定数量的销售订单数据。库存数据包含电缆的长度、规格型号、制造日期和所在仓库等属性,销售订单数据包含客户所需电缆的规格型号、长度和分段需求等信息。同一订单中所有分段的规格型号均相同,每个分段可以使用不同的库存电缆进行切割配货,但每个分段只能使用一根电缆,不允许拼接。
3.2 需求分析
本文对某大型线缆企业的 4 位资深配货业务员进行了为期两个月的调研,通过总结业务员配货经验和分析典型案例,确定了对电缆配货方案的基本需求。
1) 减少零头线产生以提高库存管理效率,即售卖后配货方案中所有电缆的剩余米数尽量不应在业务员定义的零头线区间范围内(如5~30m) 。
2) 存在分段需求时,尽量保证方案内所有电缆所在仓库一致,避免异地发货。
3) 如果存在售卖后剩余米数恰好小于零头线长度区间下限(如5m) 的库存电缆,则优先选择以减少切割次数。
4) 存在分段需求时,各分段尽量使用同一根库存电缆,降低仓库拣货难度。
5) 尽量使用短米数库存进行切割,保留长米数库存,避免长米数订单缺货。
6) 尽量使用制造日期较早的库存,避免长库龄库存积压。
配货系统应根据上述需求,在合理的时间内计算并推荐多种备选方案供业务员选择。
3.3 系统实现
根据需求分析,电缆切割配货可以建模为一个带约束的多目标优化问题。基于上述讨论,本文采用遗传算法搜索最优配货方案,并使用优先队列维护搜索结果。系统总体流程如图 1 所示。
系统首先根据用户输入的销售订单信息,从数据库中筛选规格型号匹配且符合长度要求的库存电缆作为算法输入。
对于不含分段需求的订单,系统根据长度和制造日期对库存电缆进行优先级排序,并使用优先队列选取最优方案。若切割后会产生零头线则优先级最低(需求1) ,若恰好匹配则优先级最高(需求3) ,其余电缆的优先级按长度从小到大依次降低(需求5) 。对于长度相同的电缆,制造日期越早则优先级越高(需求6) 。
对于包含分段需求的订单,由于需求复杂,很难直接为方案定义排序规则。为此,系统定义了一个价值函数来评估方案的优劣,该价值函数综合考虑了仓库数量、电缆数量、制造日期和长度等因素。对于配货方案X,其价值函数为Fitness(X) = F仓库数量 + F电缆数量 + F制造日期 + F长度,价值函数越小,对应配货方案的优先级越高。具体地,F仓库数量 = α仓库数量 * (仓库数量 – 1),α仓库数量为大于0的权重系数。当方案内所有电缆均位于同一仓库时,该项为0,仓库数量越多,该项越大(需求2) 。类似地,F电缆数量 = α电缆数量 * (电缆数量 – 1),当所有分段需求均使用同一根电缆时,该项为0,使用电缆数量越多,该项越大(需求4) ;F制造日期 = -α制造日期 * (平均库龄),算法根据制造日期计算方案内电缆的平均库龄天数,平均库龄越小,该项越大(需求6) 。由于涉及多项需求(需求1,3,5) ,F长度的定义较为复杂,算法首先计算方案内所有电缆在切割配货后的剩余米数L。对于每一根库存i,有F长度i = αi * g(Li),若Li <0,说明该库存长度不足,方案无法满足配货需求,因此αi被设置为极大的正值,g(Li) = abs (Li),对应遗传算法的搜索惩罚。类似地,可定义零头线,恰好匹配和一般情况下的价值函数。F长度为方案内所有库存i对应的F长度i之和。业务员可根据实际情况在一定范围内调整各项的权重系数,使算法生成的配货方案更符合自身偏好。
为了提高算法效率,当存在分段需求时,系统根据可行方案的数量选择不同的策略。算法首先统计每个分段的可用的库存数量,再将其相乘以确定搜索空间大小,当可行方案数较少时,系统直接使用优先队列基于价值函数对所有方案排序;当可行方案数较多时,系统难以在合理的时间内完成所有方案的计算和比较,因此选择遗传算法进行启发式搜索。具体地,对于包含m个分段需求的订单,算法将所有库存按数量从小到大排序后生成初始种群,种群中的个体均为长度为m的列表,列表中的每个元素代表该分段在方案中对应库存的索引。算法每次计算价值函数时也会同时维护优先队列和对应集合,确保所得方案在搜索范围内最优且互不重复。最后,系统将搜索到的方案以表格形式展示以供用户选择。
4 用户反馈
本文邀请 10 位电缆配货业务员对系统进行测试并提供了反馈。测试结果表明,与人工配货方式相比,该系统能够有效提高配货效率。用户普遍认为,系统的价值函数设计合理,可以灵活调整权重系数以满足不同的需求。此外,系统生成的配货方案基本符合预期,具有较高的参考价值。
然而,部分用户反馈,当订单分段数量较多时,系统的响应时间较长,且生成的方案与人工经验存在一定差距。未来将针对这一问题,进一步优化算法效率,并改进搜索策略以避免搜索空间较大时算法陷入局部最优解。
5 结束语
针对传统人工电缆配货方式存在的效率低下、方案不合理等问题,本文提出了一种基于遗传算法的电缆智能配货系统,并使用 Python 语言进行实现。该系统采用自定义的价值函数评估方案优劣,并利用遗传算法搜索兼顾多方面效益的最优解。同时,系统使用优先队列维护备选方案,简化了特殊情况下的算法逻辑,并允许用户根据自身需求调整价值函数的权重系数,以生成更加个性化的配货方案。基于某大型电缆企业真实数据的测试结果表明,该系统具有良好的易用性和有效性,可以有效提高电缆配货效率,算法推荐的方案对业务员优化库存管理和提高客户满意度具有较高的参考价值。
参考文献:
[1] 电线电缆市场发展分析[J].电器工业,2020(12):39-47.
[2] 王发麟,郭宇,廖文和,等.基于距离场和扫掠剪除算法的线缆碰撞检测技术[J].计算机工程与应用,2017,53(10):27-34,42.
[3] 吴保胜,郭宇,王发麟,等.基于改进蚁群算法的线缆路径规划技术研究[J].计算机工程与应用,2018,54(10):236-241.
[4] 肖飚.粒子群算法及其在线缆行业中的应用[J].电线电缆,2019(6):1-6.
[5] 吉咸阳,徐宁,杨庚,等.光缆表面缺陷视觉在线高速检测算法研究[J].高技术通讯,2019,29(8):808-815.
[6] 林剑,李扬远,陈蒙蒙,等.基于离散Jaya算法的线缆生产调度方法[J].计算机集成制造系统,2023,29(12):4206-4214.
[7] 肖雪,高莎,黄麟,等.基于机器视觉实现智能排线检测的创新应用研究[J].中国仪器仪表,2024(3):52-58.
[8] KATOCH S,CHAUHAN S S,KUMAR V.A review on genetic algorithm:past,present,and future[J].Multimedia Tools and Applications,2021,80(5):8091-8126.
[9] CHAUDHRY S S,LUO W.Application of genetic algorithms in production and operations management:a review[J].International Journal of Production Research,2005,43(19):4083-4101.
[10] DEB K.Multi-objective genetic algorithms:problem difficulties and construction of test problems[J].Evolutionary Computation,1999,7(3):205-230.
[11] ALHIJAWI B,AWAJAN A.Genetic algorithms:theory,genetic operators,solutions,and applications[J].Evolutionary Intelligence,2024,17(3):1245-1256.
【通联编辑:梁书】