| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2618 人关注过本帖
标题:来一个求助帖 算法题(应该有现成的) 现实生活需要 拿出来让高手们解决下
取消只看楼主 加入收藏
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
结帖率:74.19%
收藏
已结贴  问题点数:100 回复次数:12 
来一个求助帖 算法题(应该有现成的) 现实生活需要 拿出来让高手们解决下
给你一个封闭的区域A 再给你一个较小封闭的几何图形B
把多个B放到A里 让你求出最多能放多少个

如果不好求 可以先全按照矩形算
搜索更多相关主题的帖子: 现实生活 
2011-10-03 13:24
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用TonyDeng在2011-10-3 16:59:48的发言:

物流装箱有用,业界探讨很久了,始终没有完善的解法,目前还是靠人的经验。解决了很赚钱。
恩 用处很多 解决了是赚钱 呵呵
只不过感觉好像是个很常用的东西 应该有人解决了 大家可以一起讨论下
不行的话可以特殊化
例如全部换为矩形
2011-10-03 17:07
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
回复 6楼 外部三电铃
穷举我感觉也够呛
2011-10-03 18:28
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
还有 即使是穷举 也得有个搜索办法 在某些情况下 可以不计一定程度的计算时间
2011-10-03 22:05
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用ckstorm在2011-10-3 23:09:06的发言:

如果一定要求不规则的话,还真是难算。但是放到现实中,比方物流就方便点。现实中会把不规则图形变成矩形来方便装箱摆放。
1.求出图形中心点,然后以这个中心点求出一个能容纳不规则图形的矩形。
2.理想的最大装箱数量是总面积除以矩形面积,取整。
3.实际中,以最大满足容器一边为条件,枚举所有可能。(比方说容器为10*11的矩形,单个矩形为2*3。先最大满足10边长枚举,这个时候矩形摆放为:2+2+2+2+2,可以放18个;然后以最大满足另一边为条件,这时候为:2+2+2+2+3,可以放17个)。如果有多种可能则全部枚举(比方说边长12,可以是6个2,也可以是4个3)。
4.在第三步中,一旦满足理想最大数量就退出,理想最大数量就是所求;如果未能满足则取所有可能中的最大一个。

大家来拍砖 ~~
第一条边可以那么搞 后面的摆放就困难了
我想到一个思路 大家也一起拍拍砖:
用剩余空间来遍历 没放一个矩形区域 就先计算下横向剩余空间 然后在这个空间内放置一个物体
假设物体排放只有两个形态 一个是横向 一个是纵向
假设空间是垂直倾斜的 左下角为支点 向左倾斜 并不急平衡问题 例如会不会因为重力问题会导致不平衡物体会倾斜
那么 如楼上说的 第一步应该是先计算剩余空间 计算方法是先求矩形物体最长边 那么剩余区域就是空间起始边和物体最长边形成的矩形区域
把第一个物体以一种形态放置在这个矩形区域内 然后向下遍历
再求剩余空间 这次求出来的可能就不是矩形区域了 可能是不规则的区域 求剩余空间是以当前边缘(底边)和其的最高点加上物体最长边来求形成的区域
再往这个区域内放置物体 物体的放置以先以底边方向搜索最低点放置物体 以一种形态放置在上面 然后再向下遍历

也就是每种形态都有一次遍历 遍历的过程可以以递归(或树遍历)的方式 当然写程序不一定需要递归

思路是这样 晚些那图举例
2011-10-04 10:47
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
这儿不能发图片 所以就发到我那个论坛上了
http://www.

楼上说的不是很明白 如果按照两种形态放置的话 那就可以认为是二叉树
另外我说的明白 递归的逻辑 并不是递归的程序 也就是说可以循环 至于数据量大小 那是编程的事儿 不是这个算法的问题
大数据量计算 可以把堆栈保存到文件里
2011-10-04 11:36
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用TonyDeng在2011-10-4 11:44:21的发言:

与什么树都无关,这是几何体积(二维局限在面积)最大问题。用最简单的说法,就是摆第一行的时候就要考虑到后面每一行的摆法,任何一行都与其余全部行有关(更何况不可能是一行一行摆那么简单,是狗牙交错的,连行的概念都没有)。不存在递归的思路,一开始就是最终、全局的考虑,没办法分拆,凡是分拆步骤的算法,都是不完全的。
那你能直接针对我说的那种方法有什么不行的地方吗
树指的是我的算法的遍历等同逻辑 并不是这个东西一定是树

对于你说不存在多行的问题 我算法解决方法前提是把空间看成倾斜的瓶子 我放置的时候是一层一层的放 有什么不妥么
2011-10-04 11:48
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用TonyDeng在2011-10-4 11:54:46的发言:

是的,摆下去其实不是问题,只要不超过限制,怎么摆都是一种可行方案,但你没办法知道哪种摆法才是最值方案——方案的数量似乎与个体数量和几何规格呈指数关系,膨胀得非常快,对小数目有效的算法,很可能对加1的个体就失效。这问题看着简单,其实很难解的,哥德巴赫猜想看着也很容易,即使总能验证具体个案,但就是无法证实,这个也类似。
最值的标准我已经设定为 放置物体的数量最大 也就是遍历结果最接近13楼2条中所说的那个值就OK
在某些情况下 这个问题计算几天的时间也是可以被允许的 当然要实现预计出来要计算多久
2011-10-04 11:58
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用TonyDeng在2011-10-4 12:32:31的发言:

物流规定装箱尺寸尽量统一,就是用你的方案,整齐划一的个体好处理得多,全是正方体就没什么可思考的。但这个问题的价值不是迫使个体整齐。放置物体数量最大的标准,把物体拆包的数量就会大,但有意义吗?让不可分拆的物体充实最多的空间,这才是价值目标。遍历的数量,从2个正方形的限制改为2个矩形,你试试多了多少方案?再允许梯形、圆形呢?再考虑一下把2个物体增加为3个,以上方案数量增加多少?看看那个增长幅度是你运算几天就能搞定的吗?对一个集装箱或一个列车厢而言,三位数的个体不算离谱,看看增到100,那是什么数量级。9!就到10万,100个物体、4种几何形状的方案大概是多少,我没算过,但从有限几个物体来看,我不敢想象到那个数量是什么情形。

一个4*4的空间,可以放下4个2*2的矩形,但只能放1个3*3的矩形。如果现在有2个2*2、1个3*3,你怎么放?放最大数量的2个2*2会比数量小的1个3*3效率更高吗?
你在不停的讨论这个题的意义 不知道为什么
既然要讨论意义 其实可以这么解释 你所说的是物体和空间多次组合 多次变化 就像物流 这些情况这个题是意义体现不是很好
但是从另一方面应用 从建筑设计、工业设计等方面来说 如果空间确定 物体确定 为了实现更多的面积应用 那如何摆放 这个题也是因为最近做装修设计时得来的思考
对于一个比较大一点的规模设计项目来说 即使这个问题计算几天都是可以容忍的

你最后提的问题 可能是我刚才算法要解决的下一个问题 但是因为我的算法我现在还不太确定是否可行 所以也不能跳过去回答你的问题
如果你真的感兴趣的话 你可以看看我那个算法有啥问题 或者提出个更好方案
当然 你要是有直接解决更上一层面的方法 那最好 让我们一起学习学习
2011-10-04 12:41
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
补充一下 既然允许计算机计算几天 那就是说 可以允许的计算量非常庞大 以至于可以多台计算机同时计算 那么 即使可能性非常非常之巨大 也是有实现价值的
可能你会说成本太高 这个最好不要讨论 因为商业模式可以多种多样 尤其这种通用的算法 只要实现出来 实现成本不是非常高的话 价值自然就有 例如商业模式上现在最流行的用出租的方法解决资金流问题 拿到这个问题上也可行 帮别人计算一个解决方案 那么一次收多少钱 那也不错 成本又很低 虽然这个方法只是个随想 但是也应该可以让大家不要在讨论意义上增加太多的篇幅
2011-10-04 12:49
快速回复:来一个求助帖 算法题(应该有现成的) 现实生活需要 拿出来让高手们解 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022211 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved