![]() | 1 sherlocktheplant 2016-12-03 18:31:06 +08:00 你这是要压缩贴图吗? |
![]() | 2 suspended OP @sherlocktheplant 不是,工业需求。 |
![]() | 3 Kilerd 2016-12-03 19:24:38 +08:00 这算是动态规划的题目把。 |
![]() | 4 sherlocktheplant 2016-12-03 19:40:59 +08:00 你可以看看 uv 压缩相关的算法 虽然是图形学的东西 但是实际是一样的 |
![]() | 5 9hills 2016-12-03 19:54:20 +08:00 via iPhone 4 并不能得出 向某角落挤紧 举个例子,小矩形绕内壁一周。 |
![]() | 6 SCaffrey 2016-12-03 20:03:44 +08:00 via iPad 数据范围大该怎样呢 |
![]() | 7 suspended OP @sherlocktheplant 那个方面的算法不太符合要求,因为不会考虑是否方便切割之类的工业要求。 |
![]() | 8 suspended OP @9hills 虽然我括号里的这个解释其实有点多余。。。不过你说的小矩形绕内壁一周没问题啊,只有在往四个角落挤紧是符合条件 4 的,因为要求至少两条相邻边重叠。 |
![]() | 9 9hills 2016-12-03 20:21:37 +08:00 @suspended 某角落指的四个角落中任意一个么。。 就算你这么解释也不对,比如容器 10X10 的,然后放入一个 5X10 的在中间,四个角落都不沾 另外题目里也没有说矩形是不是有最小单位,如果没有的话,那解肯定是无穷多个 |
![]() | 11 suspended OP @9hills "比如容器 10X10 的,然后放入一个 5X10 的在中间,四个角落都不沾 " 所以这种情况不符合要求 4 ,因为没有任何边与其他矩形重合。 “某角落”是指任意角落,我表达得有些含糊了。 另外,矩形肯定最小 1x1 , 0x0 不能称为矩形吧? |
![]() | 12 suspended OP @9hills "在 5X10 靠边放一个 1X1 的就好了,还是四个角落都不沾" 这个不矛盾啊,我是指往某一个角落挤紧,不是说位于某个角落。当然,其实不看括号里的解释就好了,如果觉得解释反而更不好理解的话。 |
![]() | 13 9hills 2016-12-03 20:29:27 +08:00 @suspended 看我补充,你找两个 1x1 的方块,靠紧。放到任意一个边上,依然满足你的 1-4 的全部要求 0.5x0.5 就不是矩形了? |
![]() | 14 suspended OP |
![]() | 16 suspended OP @9hills 是做切割。我找了好些论文,比较了各种算法,挑出来一个最符合需求的来实现。论文嘛,限于篇幅,都语焉不详的,实现的时候发现其中的一个子算法(就是我的问题所述)论文里并没有交代,所以放上来请教一下大家。 "你把矩形改成从第一个小矩形开始,必须一个一个添加就行了。",的确就是这么一个过程,不过会有本质区别吗? |
![]() | 17 9hills 2016-12-03 20:40:44 +08:00 其实我看了下,用轮询的方法,时间复杂度也不高。 M 和 N 不大的话轮询就好了。。。 |
![]() | 19 binux 2016-12-03 21:15:00 +08:00 工业算法和竞赛算法是不同的,很多时候,竞赛算法就是在「求所有可能的摆法」以及「最佳」中纠结。 但是在工业中,贪婪次优都是是可行的。 一边给出「求所有可能的摆法」,一边又要「考虑是否方便切割」,先搞清楚到底要什么比较好。 |
![]() | 20 suspended OP @binux 是从所有可能摆法中选优。题目的这个算法,即便穷举的话,时间复杂度大约是 O(n^2)?(不好意思,不懂算法啦)所以「求所有可能的摆法」完全可行吧,「考虑是否方便切割」就是如何选优(选优还有其他要求)的问题,这个条件以目前的计算能力是达不到最优的,只能在可接受的时间内找到个较优的算法。 现在就是「求所有可能的摆法」这个步骤希望找到比穷举更好的办法喽。 |
![]() | 22 suspended OP @binux 添一个能搞定之后,添多个不就是一个一个添喽。:D 局部最优当然不保证全局最优。全局最优根本不可能实现,因为是个 N-P 问题啦。全局较优是外围算法来负责的,我这个问题里的算法只是全局算法里的一个步骤而已。因为论文里面这个步骤的算法没有交代,自己琢磨了几个小时也只有穷举的办法,所以才拿上来请教一下诸位同仁。 |
24 yangyaofei 2016-12-03 23:10:32 +08:00 via Android 这个……是为了更省料的切割方法? |
![]() | 25 suspended OP @yangyaofei 是滴是滴,除了省料,还要好切 |
![]() | 26 SCaffrey 2016-12-03 23:51:21 +08:00 via iPad 既然 1000 那么枚举放的位置不就是很妙了吗 XD 如果每次查询的小矩形规格是定值的话似乎可以预处理一波吧 |