问题很简单,我有一组随机大小的正方形(宽度,高度)和固定宽度的表面。在这个表面上排列正方形的最有效算法是什么?方块之间必须没有无用的间隙。有可能吗?不使用AI或重处理?
类似于这张照片的东西,但假设我的表面没有限制在底部,它是一个固定宽度和无界高度的表面。
答案 0 :(得分:6)
这个问题叫做2d bin pack。这是解决问题的方法:
答案 1 :(得分:0)
对于这样的事情,您可以使用Bin Packing Problem的变体,在那里尝试打包尽可能多的方格在您的工作表中,否则使用(可能看起来更合适) )Cutting Stock Algorithm。
但请注意,在这两种情况下,您的方块之间不会有间隙。
答案 2 :(得分:0)
此类优化问题称为Linear programming (linear optimization)。坏消息是它很复杂。
看看Simplex algorithm代数方法,有更多通用的数值方法,搜索内点法。
有免费的图书馆,例如:LP_SOLVE