一种自适应的遗传算法解一维下料问题

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 一种自适应的遗传算法解一维下料问题

问题背景

  一维下料问题广泛的存在于制造、建筑等行业中,如何提高材料利用率,降低成本,是相关企业关注的焦点。一维下料优化问题是指条形原材料数量若干,需要切割成多种规格的零件,每种零件数量若干,如何使得原材料的利用率高,废料少的问题。一维下料问题是一个经典的组合优化问题,属于 NP 难问题。因此研究一维下料问题具有重要意义。

  根据原材料的类型可以将问题分为单一规格原材料一维下料问题和多规格原材料一维下料问题。根据原材料长度大于零件长度的情况,可以分为小规模下料和大规模下料问题。

针对小规模一维下料问题利用启发式算法求解。首先计算出所有可行的切割方式,然后根据约束条件搜索出有效的切割方式,并保证最后一根原材料的余料长度最长,最后组合这些有效的切割方式即为问题的解。

  针对大规模一维下料问题运用遗传算法求解。设计基于定长的实数编码,对不符合约束条件的个体提出一种惩罚策略,保证最后所得解的可行性,取得了较好的结果。

 

遗传算法简介

  遗传算法简单描述即为:染色体种群的繁殖进化过程中,会发生基因交叉(Crossover),基因突变(Mutation),适应度(Fitness)低的个体会逐步被淘汰,而适应度高的个体会越来越多。那么经过 N 代的自然选择后,保存下来的个体都是适应度很高的,其中很可能包含适应度最高的那个个体。计算开始时,一定数目的个体,即种群随机地初始化,并计算每个个体的适应度函数,第一代也即初始代就产生了。如果不满足优化准则,开始产生新一代的计算。为了产生下一代,按照适应度选择个体,父代要求基因重组而产生子代。所有的子代按一定概率变异。然后子代的适应度又被重新计算,子代被插入到种群中将父代替换,构成新的一代。这一过程循环执行,直到满足优化准则为止。

 

算法流程

执行简单求解n次,取得其中最优解。

最优判定条件:

  使用原料最少

  除余料最长的原料外,利用率最高

  余料最长的原料,余料最长

具体详细内容见下面ppt

链接:https://pan.baidu.com/s/15t7Q7rSPdo3gES5DmC6e7Q

提取码:dsdl

相关文章
|
算法 计算机视觉
使用积分图的自适应二值化算法
使用积分图的自适应二值化算法
|
监控 算法 安全
基于伽马变换自适应修正的全景首尾融合算法
基于伽马变换自适应修正的全景首尾融合算法
456 0
|
编解码 算法
基于自适应运动补偿的双向运动估计算法matlab仿真
基于自适应运动补偿的双向运动估计算法matlab仿真
|
9月前
|
数据采集 边缘计算 算法
遗传算法+多目标规划算法+自适应神经模糊系统(Matlab代码实现)
遗传算法+多目标规划算法+自适应神经模糊系统(Matlab代码实现)
210 4
|
9月前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
392 14
|
9月前
|
存储 并行计算 算法
【动态多目标优化算法】基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023研究(Matlab代码实现)
【动态多目标优化算法】基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023研究(Matlab代码实现)
380 4
|
9月前
|
传感器 机器学习/深度学习 算法
【无人机编队】基于麻雀算法分布式无人机群自适应航迹规划和碰撞检测研究(Matlab代码实现)
【无人机编队】基于麻雀算法分布式无人机群自适应航迹规划和碰撞检测研究(Matlab代码实现)
205 2
|
10月前
|
机器学习/深度学习 算法 数据挖掘
基于自适应遗传算法风光场景生成的电动汽车并网优化调度【IEEE33节点】(Matlab代码实现)
基于自适应遗传算法风光场景生成的电动汽车并网优化调度【IEEE33节点】(Matlab代码实现)
240 0
|
10月前
|
机器学习/深度学习 人工智能 算法
【多智能体编队】基于自适应控制算法非线性输入的多智能体系统编队控制研究(Matlab代码复现)
【多智能体编队】基于自适应控制算法非线性输入的多智能体系统编队控制研究(Matlab代码复现)
233 0
|
负载均衡 算法 安全
探秘:基于 C++ 的局域网电脑控制软件自适应指令分发算法
在现代企业信息化架构中,局域网电脑控制软件如同“指挥官”,通过自适应指令分发算法动态调整指令发送节奏与数据量,确保不同性能的终端设备高效运行。基于C++语言,利用套接字实现稳定连接和线程同步管理,结合实时状态反馈,优化指令分发策略,提升整体管控效率,保障网络稳定,助力数字化办公。
298 19