一个困难的排序、组合的问题,谢谢大家帮忙

solidpanther 2004-10-10 11:55:45
有点急,帮朋友问,暂时还想不出来,大家帮帮忙,谢谢
有无数根原料,每根250米,每天用户提出一些需求,切割这些原料,比如
30米的5根
20米的5根
10米的5根
40米的5根
50米的5根
那么我怎么切才能使250米的原材料损耗最小呢?怎样排这个顺序呢?
以上是假设数据,米数和根数是随机的,用户需求数也不一定是5个,可能更多。。
请问如何做呢?
环境:
declare @tbl table(a int,b int)
insert @tbl values (30,5)
insert @tbl values (20,5)
insert @tbl values (10,5)
insert @tbl values (40,5)
insert @tbl values (60,5)
select * from @tbl
我想要的结果是:
假设啊,先从30米的那里切,切*根,然后切10米的*根,然后切30米的*根,然后切20米的n根,然后切50米的*根.......
...全文
440 33 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbc666 2005-01-31
  • 打赏
  • 举报
回复
我认为解决此问题应该先将当天要进行切割的所有棺材的长度进行排序以最小的最先切割,然后再将总管材长度与其作差,随后在其余的要切割长度中(如果最小单位还需切割那就还包括他)在查找用料最省方案方法同上
prcgolf 2004-10-11
  • 打赏
  • 举报
回复
up
shuiniu 2004-10-10
  • 打赏
  • 举报
回复
没完全理解!
sunshareforever 2004-10-10
  • 打赏
  • 举报
回复
up only
mgsray 2004-10-10
  • 打赏
  • 举报
回复
有难度,顶一下
yjdn 2004-10-10
  • 打赏
  • 举报
回复
拖车的问题就不是线性规划问题了,是三维背包问题,现在全世界的数学家也还没研究透呢。
----------------------------------------
车箱高度不一样就是三维背包的问题,呵呵,也许是想简单点把,题目做了一个限制,
车箱高度一样,想来也和楼主的情况差不多一样
icevi 2004-10-10
  • 打赏
  • 举报
回复
EXCEL文件:注意看单元格的公式
http://www.freewebs.com/icevi/sample.xls

调用“规划求解”后,可出现此窗体,应该按此进行设置:
http://www.freewebs.com/icevi/sample.JPG

icevi 2004-10-10
  • 打赏
  • 举报
回复
拖车的问题就不是线性规划问题了,是三维背包问题,现在全世界的数学家也还没研究透呢。
icevi 2004-10-10
  • 打赏
  • 举报
回复
楼主结账太快了:)我又发现我又搞错了一点,其实四根就够了,应该是按总长度算,四根足够用。
用四根建模得到的最优解:
第一根 第二根 第三根 第四根
切10米的N根 1 1 1 2
切20米的N根 0 1 2 2
切30米的N根 1 1 1 2
切40米的N根 0 1 2 2
切50米的N根 3 0 1 1

用完一根再用下一根,并不一定能得到最优解的,比如象上面这种情况,在切第一根时用这种思路肯定不会用这种方式来切割的。单纯形法是数学家研究出来的,是被证明过的,我们能想到的算法肯定是能得出可行解,但不会是最优解的。

给我个EMAIL地址,我可以把我做的EXCEL文件发给你。
yjdn 2004-10-10
  • 打赏
  • 举报
回复
我的办法就是用完一根再到一根的,以前的题是一辆拖车,有几种不同规则的车箱,多少次可以运完,
我觉得差不多都一样了


--想不到现在还有更简单的,关注一下.
solidpanther 2004-10-10
  • 打赏
  • 举报
回复
哎~~忘记说了,250米的原料只能用完一根才能用下一根
solidpanther 2004-10-10
  • 打赏
  • 举报
回复
知道是肯定能实现的了,但是
icevi(按钮工厂) 能否在贴点图片演示一下?
一张图片好象不能全说明白啊
icevi 2004-10-10
  • 打赏
  • 举报
回复
SORRY,刚才搞掉了一组约束条件,应该切出10米-50米的各五根,所以应该横向求和都是五才对。
下面是重新算后的最优解。

第一根 第二根 第三根 第四根 第五根
切10米的N根 1 1 1 2 0
切20米的N根 1 0 1 1 2
切30米的N根 1 1 1 1 1
切40米的N根 0 1 1 2 1
切50米的N根 3 0 1 1 0
yjdn 2004-10-10
  • 打赏
  • 举报
回复
真能算得出来?不是吧?想当初我做那道类似的建模题花了不少时间。
lovvver 2004-10-10
  • 打赏
  • 举报
回复
这的确是一个困难的问题,同时也是一个比较有意义,有意思的问题。
可以建模来解,关键是实现的算法可能较为复杂。实现起来应该不会很难。
回去思考一下
solidpanther 2004-10-10
  • 打赏
  • 举报
回复
没的说!结贴!激动万分,office太牛了,哎,回去好好学习!
icevi 2004-10-10
  • 打赏
  • 举报
回复
我解题的过程见图片:
http://www.freewebs.com/icevi/sample.JPG
表格中的1只是预设值,无意义。点击“求解”后就得到了上面的结果。

icevi 2004-10-10
  • 打赏
  • 举报
回复
应该有吧,我用office2000里的规划求解解你这个题,得到的最优解是:
第一根 第二根 第三根 第四根 第五根
切10米的N根 1 1 1 1 0
切20米的N根 0 0 0 0 1
切30米的N根 0 1 1 1 1
切40米的N根 6 4 4 4 5
切50米的N根 0 1 1 1 0

因为理论上不做最优化,最多只要五根肯定够了,所以我用五根为基础来建立数学模型。

你在excel里选择菜单“工具”-“加载宏”。选择“规划求解”就可以了。如果没安装会调出OFFICE的安装程序的。

RobinHZ 2004-10-10
  • 打赏
  • 举报
回复
工具->加载宏->,里面的规划求解是不是?
yjdn 2004-10-10
  • 打赏
  • 举报
回复
我觉得excel算不出来,
我已经把方程列出来了,那就是运筹学里的东东。至于单纯形法,也没必要用到那个来算.
加载更多回复(13)

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧