基于MATLAB的钢筋下料优化算法

摘要:运用MATLAB软件求解实际工程中一维钢筋下料优化的问题,提出了首先列举出单根原料分割的所有可行解,其次采用线性规划的方法求出理想条件下最优方案,最后通过整数求解的最终优化结果。MATLAB求解钢筋下料问题自动化程度高,根据实际问题简单调整下料参数便可完成整个优化过程,在提高工作效率的同时可以有效节约项目材料成本。

关键词:钢筋下料;MATLAB;整数规划;优化

随着建筑业的热度不断减缓,建筑市场的竞争也日益加剧,利润空间的压缩导致不少建筑企业举步维艰。承建方一方面要具备雄厚的技术实力和经济实力,另一方面要有科学管理的能力,需要通过不断对地项目成本进行优化与控制以寻求最大限度的成本节约,确保整个工程的盈利目标[1]。钢筋作为建筑设计、施工和造价的重要组成部分,其造价占据整个项目造价的30%~40%[2],因此对于钢筋下料优化的研究能为企业创造巨大的利益。

针对钢筋优化下料研究较多有一维线性规划法、启发式的遗传算法、混合遗传算法、模拟退火算法等[3],其中后几种方法对钢筋优化人员专业化要求高,难于在项目实际应用过程中推广。而传统的人工优化下料方法受人为影响因素大,过程繁琐,难以保证能够十分有效地进行钢筋下料优化。

随着信息化时代的到来,计算机的应用面越来越广泛,本文建议通过采用现代化信息技术MATLAB辅助进行钢筋下料优化,通过简洁的编译实现优化过程,达到为企业节省钢筋损耗开支的目的。

1 数学模型

钢筋优化下料问题可以简单表述为:企业拥有原材为定尺长度(l)的钢筋一批,下料长度为a1、a2、…、an,钢筋对应下料数量分别为b1、b2、…、bn根;c(j,i)为针对单根原料分割方法中相应下料长度的数量;x1、x2、…、xn代表每一种分割方法所采用的次数。要求在满足钢筋下料需求的情况下,实现钢筋原材用料最省。

对于单根原料进行分割,枚举。为防止枚举遗漏,采用循环的方式列举出所有可行方案。首先对下料长度a1、a2、…、an从大到小进行排序,优先选取长的下料长度进行切割,同时便于后续设置约束条件。

原材料定尺长度为 l,最多可以切割出:

其中,int为余数向下取整,因此ai的选择方法有0~int(l/ai)种选项,假设l=9,ai=2.3,那么就有(0,1,2,3)4种选择方式。假设a1对应的选择方式为c(j,1),ai对应c (j,i ),an对应c (j,n)。

另外,要使得下料方法最优,必然切割所剩下的余料不得大于下料长度最小的那一段[4],即需要满足:

目标函数:

约束方程:

其中,矩阵A、矩阵X代表每一种分割方法对应的采用数目,矩阵b代表对应钢筋下料需求数目。

2 求解方法

针对一维线性钢筋下料问题,常用的方法是线性规划或整数规划,包括Excel规划求解[5]、LINGO求解、LINDO求解以及MATLAB求解。在调研及分析每种方法的实用性上,筛选出Excel求解、LINGO求解,以及MATLAB求解,分析求解效果如下。

2.1 Excel求解

采用Excel电子表格,其功能较为简单,在完成规划求解之前,必须手动列举出所有可行解。随着工程越来越复杂,当下料长度种类多且短时,枚举种类达上百种,因此列可行解的过程非常繁琐。同时该过程不具有通用性,在应对不同的实际问题时,表格需要不断地进行修改调整,因此表格法在数据量大时,难于胜任辅助下料工作。

2.2 LINGO求解

在LINGO中,我们不必确定具体的分割方案[6],分割方案可以由软件自动运行后得出,但是我们需要确定分割方案的数目,这个数目在列出具体的分割方案之前是不可知的,所以往往是赋予一个预估值,同样,预估值越小,软件进行求解的时间越短,而预估值越大,软件需要求解时间相应成几何倍数增长,如当x数目为15时,运行了5 h,仍未运行完毕,尽管在开始运行的3 min内,软件就给出了最优化的方案,但是出于严谨的考虑,在其他实际案例中,必须要等待程序完整运行完毕才能得出最优解,运行时间漫长。

2.3 MATLAB求解

在Excel以及LINGO的铺垫下,MATLAB可以很好地处理实际工程问题,其自带循环语句可以迅速列举出所有可行解,可用linprog语句进行线性规划,用intlinprog语句进行整数规划。最终得到满足工程实际要求的可行解。从时间上来看,MATLAB运行时间短,可以迅速给出最优解;从应对不同问题的程序修改上来看,很多数据都可以作为矩阵直接输入,只需要应对实际下料类型的数目进行相应的修改。因此,结合程序运行时间以及程序通用性考虑,提出以MATLAB来求解下料优化问题效果最佳。

3 实例分析

3.1 下料可行方案的确定

以实际的工程案例为例:现供应长为9 m的钢筋原材,需求下料长为2.3 m钢筋200根,1.9 m钢筋400根,1.3 m钢筋200根。在不考虑切割损耗的情况下,求解最佳钢筋下料方法,要求使用9 m钢筋原材最省。

因此,l=9,a1=2.3,a2=1.9,a3=1.3,通过程序运行可以得到表1。

表1 组合方式

表1中数据为从MATLAB工作区中直接导出数据。至此,对于单根原料分割方法的列举已经完成。

3.2 优化求解实例

针对该实际问题,设表格内深色部分数据为矩阵a,而矩阵a的转置矩阵即为矩阵A,矩阵b=[b1,b2,b3]T,其中:b1=b3=200,b2=400,而目标待求矩阵为X。

矩阵A如下:

矩阵A、矩阵X、矩阵b需要满足AX= b。

当满足公式时,必然可以求得所需求的最优化下料方法,将上述公式代入MATLAB自带的linprog函数后,可以获得矩阵X:x4=33.3,x6=66.7,x15=66.7。其余为0,总计需要使用钢筋原材165根。

矩阵X即为所求理想状态下最优解,但是实际上来说,采用的整料不可能出现小数,即代表当出现完美AX= b的时候所求最优解在实际情况中不存在。因此,只要满足原切割后每一种下料数目不少于需求数目即可。因此,对公式作出更改:AX≥b。

在满足该公式的情况下,在MATLAB中调用intlinprog函数进行整数规划后,可以获得矩阵X:x3=1,x4=31,x6=67,x8=2,x15=66。其余为0,总计需要使用钢筋原材167根,完成了对于最优解的探索,如表2所示。

表2中的每一行代表了每一种分割方法所对应的切割出下料多少根,以及对应的余料长度。最后一列代表了完成目标下料优化每一种分割方案所对应使用的次数,将最后一列求和便可完成下料优化。总计需要使用长9 m的原材167根。

表2 最终结果

4 结语

本文结合工程实际中钢筋下料优化问题,提出了一种切实可行且十分有效的求解方法,即通过MATLAB进行优化的钢筋下料办法。

针对超出定尺长度钢筋进行整料分割取剩余下料长度,然后列举出了单根原材料所有可行的切割方法,最后用整数规划来解决下料最优解。整体条理清晰,操作过程简单实用,并且便于项目现场使用,该方法对于一般情况下的实际钢筋下料问题都能适用,从而尽可能地提高原材料的利用率,进而节省企业成本。

参考文献

[1]王晓伟.水电站工程施工中钢筋下料优化问题研究[D].长沙:国防科学技术大学,2008.

[2]刘晓军.谈钢筋优化下料降低成本[J].价值工程,2012,31(6):64.

[3]芮继东,姚刚.简洁高效的钢筋优化下料方法[J].土木建筑工程信息技术,2011,3(3):87-92.

[4]VAHRENKAMP R.Random search in the one-dimensional cutting stock problem[J].European journal of operational research,1996,95(1):191-200.

[5]王连杰.基于线性规划的一维优化下料系统研究与开发[D].大连:大连理工大学,2003.

[6]谢金星,薛毅.优化建模与LINDO/LINGO软件[M].北京:清华大学出版社,2005.

作者:漏家俊

1. 上海市基础工程集团有限公司 上海 200002;2. 上海市非开挖建造工程技术研究中心 上海 200002

论文著作权中的人身权归原作者所有,财产权及邻接权经作者授权后由《建筑施工》编辑部所有,任何单位和个人不得以任何形式转载、张贴、结集、出版和使用。

号外:《建筑施工》杂志官方网(www.jianzhushigong.cn)开始试运行啦!方便快捷的在线投稿、最新最全的期刊内容、丰富有料的行业资讯,我们热忱期待您的到来。

往期精彩推荐

【建筑施工】“提拔建筑系统”是什么新技术?据说国外很流行而国内刚应用(内含视频)

【精读】装配式建筑施工现场竖向板预制构件堆放架研究

【建筑施工】全球首个可居住3D打印机大规模建造的房子终于可入住啦!

【建筑设计】比吴彦祖在围场盖的房子还漂亮?又一座绝美的建筑将横空出世...

【建筑施工】自动驾驶3D打印班车Olli亮相,你敢坐吗?

【建筑施工】“铁路版”港珠澳大桥——甬舟铁路工程正式上马!海底高铁!世界之最!最新细节来了……

【行业资讯】100年间,建筑是怎样影响城市的?

编辑丨小悦   Juan   小盛

(本文系建筑施工原创 )

matlab 压缩感知矩阵_【精读】基于MATLAB的钢筋下料优化算法相关推荐

  1. matlab 李萨如_毕业论文--基于MATLAB的李萨如图形研究.doc

    PAGE 1 目 录 TOC \o "1-3" \h \z \u 1.引言 1 2.李萨如图形的物理模型 2 2.1李萨如图形的形成原理 2 2.3李萨如图形的闭合性以及周期性解释 ...

  2. matlab 李萨如_毕业论文 - 基于MATLAB的李萨如图形研究

    1 目录 1. 引言 ......................................................................................... ...

  3. 基于蝗虫(蚱蜢)优化算法优化的支持向量机分类模型及其MATLAB实现-附代码

    基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 文章目录 基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 1. 模型 ...

  4. 压缩感知高斯测量矩阵matlab,压缩感知matlab

    MATLAB代码如下: 压缩感知仿真实例 压缩感知仿真实例在MATLAB R2001b中的计算结果如下: 原图像 采样率0.7 采样率0.5 采样率0.3 压缩感知仿真实例采用均方误差...... ( ...

  5. 压缩感知算法matlab,压缩感知算法matlab

    MATLAB代码如下: 压缩感知仿真实例 压缩感知仿真实例在MATLAB R2001b中的计算结果如下: 原图像 采样率0.7 采样率0.5 采样率0.3 压缩感知仿真实例采用均方误差...... M ...

  6. MATLAB中fix啥意思,matlab fix函数用法_常见问题解析,matlab

    matlab syms什么意思_常见问题解析 matlab中syms的意思是定义多个变量,可以用来创建符号变量x和y,语法是"syms x y":也可以创建一些符号变量.函数和数组 ...

  7. 基于matlab 的燃油喷雾图像处理方法,基于MATLAB的燃油喷雾图像处理方法.doc

    基于MATLAB的燃油喷雾图像处理方法 基于MATLAB的燃油喷雾图像处理方法 摘要:提出了基于MATLAB的燃油喷雾图像处理方法.通过对喷雾图像的采集, 分割和滤波处理, 将多幅图像转换融合为一幅 ...

  8. matlab x(n)16点DFT,[基于MATLAB的数字信号处理实例分析.doc

    [基于MATLAB的数字信号处理实例分析 湖北文理学院理工学院 学生结业论文 课程名称:MATLAB教程 结业论文名称:基于MATLAB的数字信号处理实例分析 专业名称:通信工程 班级:1011 学号 ...

  9. 【蚁狮算法】基于柯西变异的蚁狮优化算法求解单目标优化问题matlab代码

    1 简介 针对蚁狮优化算法较易陷入局部最优停滞,收敛精度低以及收敛速度较慢等问题,将自适应t分布的柯西变异融入到蚁狮优化算法中,提出了基于柯西变异的蚁狮优化算法(CALO).该算法采用轮盘赌的方法挑选 ...

最新文章

  1. ESC/P打印:程序控制打印机自动进退纸
  2. 数据恢复西藏之旅--硬盘也有高原反应
  3. PAT乙级题目答案汇总PAT (Basic Level) Practice (中文)
  4. 基于情感脑电信号时-频-空特征的3D密集连接网络
  5. 串口协议的制定以及串口中怎样接收一个完整数据包的解析
  6. java生成excel文件
  7. linux php7 mongodb,CentOS 7下安装配置PHP7跟LAMP及MongoDB和Redis
  8. Thymeleaf视图
  9. linux mencoder,linux下mencoder的一些用法
  10. 109-gamp与rtklib精度对比
  11. Sparsified SGD with Memory 论文阅读
  12. 查看linux内存和硬盘
  13. 爬虫headers参数
  14. Oracle EBS R12 - ad patch/non-ad patch/admrgpch
  15. Linux 查看显卡型号
  16. 局域网故障诊断袖珍手册
  17. 网站运行原理及开发流程
  18. python最小二乘法_最小二乘法(least sqaure method)
  19. [附源码]Python计算机毕业设计SSM快递代收系统(程序+LW)
  20. 9.27通则康威技术面

热门文章

  1. 数据挖掘中所需的概率论与数理统计知识、上
  2. CentOS 7 Shipyard启动时一直显示省略号的解决办法
  3. 为什么普遍自学能力不足
  4. python12306自动抢票为什么进入个人中心_python 12306自动抢票
  5. 【Pygame小游戏】这款“打地鼠”小游戏要火了(来来来)
  6. 关系数据库规范化理论
  7. php admin配置,phpadmin安装与配置
  8. aic值检验 p值_R语言入门之独立性检验
  9. R语言笔记-分类变量列联表和独立性检验
  10. 线性代数(五)特征值和特征向量