Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 在曲面上排列任意大小正方形的算法?_Algorithm - Fatal编程技术网

Algorithm 在曲面上排列任意大小正方形的算法?

Algorithm 在曲面上排列任意大小正方形的算法?,algorithm,Algorithm,问题很简单,我有一个随机大小的正方形阵列(宽度,高度)和一个固定宽度的曲面。在这个曲面上排列正方形最有效的算法是什么?正方形之间不能有无用的间隙。有可能吗?不使用人工智能或繁重的处理 类似于此图片,但假设我的曲面没有底部边界,它是一个固定宽度和无限高度的曲面。此问题称为二维装箱。这里有一个解决方法: 对于这种情况,您可以使用的变体,尝试在工作表中填充尽可能多的方块,或者使用(可能更合适的) 但是请注意,在这两种情况下,正方形之间不可能没有间隙。这种类型的优化问题称为。坏消息是它很复杂 看看代数方

问题很简单,我有一个随机大小的正方形阵列(宽度,高度)和一个固定宽度的曲面。在这个曲面上排列正方形最有效的算法是什么?正方形之间不能有无用的间隙。有可能吗?不使用人工智能或繁重的处理


类似于此图片,但假设我的曲面没有底部边界,它是一个固定宽度和无限高度的曲面。

此问题称为二维装箱。这里有一个解决方法:


对于这种情况,您可以使用的变体,尝试在工作表中填充尽可能多的方块,或者使用(可能更合适的)


但是请注意,在这两种情况下,正方形之间不可能没有间隙。

这种类型的优化问题称为。坏消息是它很复杂

看看代数方法,有比较通用的数值方法,搜索内点的方法


有一些免费的库,比如:

可能并不总是能够在没有间隙的情况下排列正方形。装箱算法可能会帮助您解决一个相关问题,请查看