ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: aoe1981

[原创] 自力更生:钢筋下料组合优化正式版发布(一维)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-31 01:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 香川群子 于 2014-10-31 01:16 编辑
燕雀安知 发表于 2014-10-30 23:51
我修改后的代码,经多次测试,不超过27秒。

我还是那话,只要速度不是太慢,追求速度的些微差异无多大 ...

【我纠结于你代码究竟哪个地方出了问题】

经检查,发现是和上限h2参数的默认设置有问题。
由于我按常规认为目标和值都应该是正数、
因此直接计算 If h2 > h Then h2 = h2 - h  目的是转换计算上限、下限的差值结果作为h2变量使用。
由于该参数留空=0时,一定比负数大,所以会进行h2 - h 的计算得到 h 的相反数……
于是,求和范围变成了 [-h To 0] 了……

呵呵,不过,这样的bug是被你硬搞出来的。
一般说求和目标是不应该成为负数的。

…………
这个bug很容易修正的。

修正后的计算结果是:
-40.0000000000009=4313+765-39.6-41-55-82-158.4-182.35-182.35-4377.3
-40.0000000000009=4313+765-41-55-182.35-182.35-280-4377.3
-40.0000000000009=3890+1254+255-39.6-55-158.4-164-182.35-182.35-280-4377.3
-40.0000000000009=3890+1254+255-82-164-182.35-182.35-451-4377.3
-40.0000000000009=2300+2100+1254+765-39.6-55-82-158.4-182.35-182.35-182.35-451-748.65-4377.3
-40.0000000000009=2300+2100+1254+765-55-182.35-182.35-182.35-280-451-748.65-4377.3

注意此处的-40.0000000000009只是Excel的浮点计算误差,理论真实值应该是正好= -40

TA的精华主题

TA的得分主题

发表于 2014-10-31 17:55 | 显示全部楼层
本帖最后由 lm1221 于 2014-10-31 20:40 编辑
aoe1981 发表于 2014-10-28 11:13
  附件一角:
  

下载了你的正式版,做的太好了,比我想像中的还要好,感谢!
我用法师的主代码硬是拼成一个,法师的代码我一个标点符号都没敢动,呵呵!
测试后,结果有所不同,但利用率相同,速度不知道什么原因显示的都是N多秒,我更改的界面没有分段,只是用*号连接下,但道理相同。
个人感觉法师的界面和你做的不太好比对,我将更改后的附件上传,你可以比对下,看看结果,看看速度!

钢筋优化组合_测试版.rar

139.28 KB, 下载次数: 372

TA的精华主题

TA的得分主题

发表于 2014-10-31 21:55 | 显示全部楼层
本帖最后由 lm1221 于 2014-10-31 22:12 编辑

论坛上特别研究这些的本也不多,呵呵!
还有应该我向你致敬!你的热心,你对数学的热爱,都是值得我敬重的!只可惜我数学基础差,再加上还得去抱砖头,否则我也得向你看齐,哈!
天道酬勤,我相信!我的求助大都针对生产(确切的说也即实际建筑施工中的真正需要,不过大多我个人并不需要这些,我本不是坐办公室的人,哈!)
附件中“特意排除整料和准整料”,法师代码并未涉及这两点,我的附件中是可以的,但即便加上我不成熟的代码,程序依然是高效的,比N千元的软件还高效,这点你不用在意,你绝对是优秀的,因为你不比那个软件差!

TA的精华主题

TA的得分主题

发表于 2014-10-31 22:08 | 显示全部楼层
更正下,说得太露骨,因为我所上传的界面本也是原软件的界面,帖子的主题本也是这方面的,一个偶然便会撞车的.
我无意说软件什么,不过我所说的都是事实!在此也向软件开发者致敬,呵呵!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-31 22:12 | 显示全部楼层
lm1221 发表于 2014-10-31 22:08
更正下,说得太露骨,因为我所上传的界面本也是原软件的界面,帖子的主题本也是这方面的,一个偶然便会撞车 ...

借着您的思路,我也向法师、香川大侠再次表示敬意,他们都是EH的生命力的核心……


另外,补充一点:我的附件中可是从来没有考虑“切口”损耗的……只是在理想状态下纸上谈兵的……呵呵

TA的精华主题

TA的得分主题

发表于 2014-10-31 22:15 | 显示全部楼层
aoe1981 发表于 2014-10-31 22:12
借着您的思路,我也向法师、香川大侠再次表示敬意,他们都是EH的生命力的核心……

我所要求的本也不需要切口损耗!因为原材料本也不会是标准尺寸,小厂家也会长出损耗的

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-31 21:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lm1221 发表于 2014-10-31 17:55
下载了你的正式版,做的太好了,比我想像中的还要好,感谢!
我用法师的主代码硬是拼成一个,法师的代码 ...

向您表示敬意,您起码潜心研究过法师的代码,我早都被吓退了……是自个重新顺着自己的理解以及香川大侠提示的“随机”算法去试做的……
我想,终究法师的代码的算法才是最好的,可以针对多种规格,想来应该也是拓展性极好的……
我的思维总是停留在初级阶段的,如果您能有所参照使用,就已经很是激动了……
呵呵……
业余的,和人家专业的不能相比啊……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-31 21:24 | 显示全部楼层
我的附件的随机算法,其实应当还有一个特点,就是可以不用特意排除整料和准整料,随机算法中自然能适应这种情况……
因此,代码可以更简短些,但是从效率来说,尤其是面对大数据时,事先排除一部分数据,在接下来大量的随机测试中无疑会提高许多的效率,这是我保留排除整料与准整料的原因之一……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-31 21:26 | 显示全部楼层
又想起了一点,就是:自己的思路总归是好的,捎带着也解决了我在下帖中提出的小学数学问题:
http://club.excelhome.net/thread-1157162-1-1.html
是关于电梯运货的问题……呵呵
可谓,无心插柳柳成荫啊……
真是天道酬勤啊……

TA的精华主题

TA的得分主题

发表于 2014-11-1 19:50 | 显示全部楼层
首先更正一下啊  你这个题目叫钢筋下料……,不对哦,钢筋是一般是一卷一卷的,理论上说 原材料是无限长,所以 钢筋下料不存在套料一说

一般用于型钢 如小规格 钢管、槽钢 方钢等

测试了楼主发的程序, 与某软件计算的利用率相差甚远啊  ,中午随机弄了一组测试,楼主表格利用率93.4%,某软件利用率查过99%

点评

你在说盘圆?高线?  发表于 2014-11-1 22:37
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 06:15 , Processed in 0.041720 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表