把圆形放入矩形的Packing问题

Packing问题探讨如何在大矩形中优化放置多个小圆形,以求得最大数量的解决方案。由于问题的NP难度,启发式算法成为求解近似最优解的有效手段。本文聚焦于圆形Packing问题,引用黄文奇教授的拟人拟物策略,通过最陡下降法寻找满足条件的解,并提供C++代码实现。
摘要由CSDN通过智能技术生成

Packing问题,是一类组合优化问题,研究的是把一组较小的图形相互间无嵌入的放入较大的图形,其最终目标是寻求最优(放入最多的小图形)的放置方式。有效地求解此类问题,可以较好地利用资源、减少浪费,这对实际的生产领域,如物体的运输、堆放以及原料的下料等领域,具有不可估量的经济效益。

      早在10世纪初期,就有数学家们对此类问题进行了探索。但是由于Packing问题通常都是NP难度的,所以当问题规模增大到一定的程度时,目前尚未有任何算法可以保证能够在有效地时间内求解出最优解。但随着实际生产的迫切需求,研究者们提出了许多有效地搜索策略,采用启发式算法对此类问题进行了快速的近似求解。

      本文所涉及的仅仅是放入大矩形的圆形Packing问题,即求解把一组较小的圆形放入较大的矩形的最优解问题。采用的算法,主要参考了国内学者黄文奇教授等提出的拟人拟物策略,参考的文献链接在本文的末尾标注,感兴趣的同学可以深入研读。可以用拟物策略、最都下降算法、拟人策略来概括。我大致简略的进行了拜读,感觉黄文奇教授提出的这个拟人拟物思想挺有意思,对我们的学习工作也很有启发意义,所以建议有时间感兴趣的同学真的可以读一下,这里只做大体的介绍。

 

算法思想:      

      首先,给出k个小圆,尝试将它们放入大的矩形当中。若成功,则继续尝试将k+1个小圆放入其中;否则,算法结束,k就是最优解。下面详细叙述怎样进行有效地尝试以期能够把这k个小圆放入到大矩形当中。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值