ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 优化组合

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-28 11:12 | 显示全部楼层
抽空试一下我的这个附件:
http://club.excelhome.net/thread-1161444-1-1.html
也请多提供一些数据,也请帮忙测试、改进。

TA的精华主题

TA的得分主题

发表于 2014-10-30 09:09 | 显示全部楼层
我在21楼给出的链接中,正式版附件已发布,可以完美解决原材为一种规格时的最优搭配下料了,值得试一试!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-31 17:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lm1221 于 2014-10-31 17:16 编辑
aoe1981 发表于 2014-10-30 09:09
我在21楼给出的链接中,正式版附件已发布,可以完美解决原材为一种规格时的最优搭配下料了,值得试一试!

晕,因为没有提醒所以没看到你下面的帖子,感谢!
还有的原因就是,香川老师给了链接后,我下载了法师的附件,看了又看,因为受数学基础的限制,只能放弃学习了,呵呵!
还好的是我借用了法师的主代码,愣是用变通的方法整合了出了自己的需要,所以没再继续看自己的帖子,在这里,看了你回那个链接了帖子后才知道,感谢!感动!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-31 20:32 | 显示全部楼层
本人愚钝,一直也参不透法师的代码,呵呵,算了!
公开下我生拼硬凑的,主代码是法师的,只是解决了16楼香川老师所提到的两点
现在上传附件,一方面是为了以后的有同等需求的坛友能够可以解决一时燃眉之急,另一方面也是为了结贴吧!
在此感谢aoe1981、香川群子、旺旺家老师的帮助!

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

139.28 KB, 下载次数: 100

TA的精华主题

TA的得分主题

发表于 2014-11-23 18:38 | 显示全部楼层
我的分组凑数计算版本

是按单根需求进行展开的,没有合并相同分组……有时间再优化吧。

自动按限额分组3.rar

39.12 KB, 下载次数: 115

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-23 20:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2014-11-23 18:38
我的分组凑数计算版本

是按单根需求进行展开的,没有合并相同分组……有时间再优化吧。

香川老师有时间再看看!
在最大使用率的情况下,能否再考虑余料的根数!(余料越少越好)
我用你的代码随机N次,却无法匹配到刚好的整料,在无法匹配到整料的情况下,自然会增多余料的根数!
QQ截图20141123194542.png
QQ截图20141123194622.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-24 11:11 | 显示全部楼层
本帖最后由 lm1221 于 2014-11-24 11:12 编辑
香川群子 发表于 2014-11-23 18:38
我的分组凑数计算版本

是按单根需求进行展开的,没有合并相同分组……有时间再优化吧。

楼上这句话有误“我用你的代码随机N次,却无法匹配到刚好的整料
是可以匹配到,看下图,但需要多次随机,而法师的代码无论怎样随机都是如图的唯一解!
是否可以理解为增加余料根数的判断,最少即为最优解呢?
但是你的程序真的好快! QQ截图20141124110805.png

TA的精华主题

TA的得分主题

发表于 2015-2-6 15:09 | 显示全部楼层
目前采用的算法是:

① 所有需求拆分为单根
② 多次随机乱序后生成各种切割方案
③ 用字典检查排除重复
④ 每个不重复方案计算 余料、现有数据中按此方案可切割的最大次数(即含有该组合的最大次数)
⑤ 以 余料最少、余料同一级别(按最短需求的倍数分档)中则按最大可切割次数 进行排序,取第1个方案。
⑥ 以这个当前最优方案对当前剩余需求进行最大次数的切割
⑦ 计算剩余需求,输出该方案以及统计结果
⑧ 重新按剩余需求组成新的数据
⑨ 重复①-⑧、直至全部切割完毕
⑩ 输出全部切割方案和最后的统计结果。

重大算法改变:
一、随机多次生成很多实际方案,然后每次按余量最小、可切割次数最多确定最优先方案。
二、每次只产生一个有效方案。

这样的结果,大致能做到方案总数较少,且余料也较少。
且计算速度快。(虽然每次只产生一个有效方案,但一直继续直至结束大循环只需要做一次。)

相比之下,以前的算法是:
每次需求随机,然后产生一组解,很多次重复以后,只记录、输出总方案数最少的那一次。

………………
可是,新的算法虽然速度较快,但往往也会遗漏总数最少解……
因为目前的算法是一种贪婪算法,每次产生的方案都是以最大次数进行切割……

而方案总数最少解,必然会是同一种规格在多种方案中出现。

新的算法要改进、关键在于④和⑤的取舍规则如何进行改善。

CutPlan3.zip

50.47 KB, 下载次数: 168

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-7-21 17:09 | 显示全部楼层
香川群子 发表于 2014-10-21 09:39
按以上数据预处理要求,那么直接采用 Excel Home 大神级大师 【灰袍法师】的一维下料随机算法应用程序,效 ...

很强大的程序啊,能解决我司的实际问题,就是会出现下标越界的错误提示,咋回事呢?

TA的精华主题

TA的得分主题

发表于 2018-2-10 20:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
多谢分享,在意优化组合的主题
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-28 15:12 , Processed in 0.037839 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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