兄弟萌,这种场景比较类似于哪一种算法模型? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
leegradyllljjjj
V2EX    程序员

兄弟萌,这种场景比较类似于哪一种算法模型?

  •  
  •   leegradyllljjjj 2023-07-04 09:12:01 +08:00 2367 次点击
    这是一个创建于 837 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个 8 层 2 列的货架,货物零星散落在某些货位上,货架上有某些空货位,怎么样通过调整把重的货物尽量通过这些空货位中转以便把货架的重心降到最低?
    17 条回复    2023-07-06 15:30:51 +08:00
    leegradyllljjjj
        1
    leegradyllljjjj  
    OP
       2023-07-04 09:18:58 +08:00
    dayeye2006199
        2
    dayeye2006199  
       2023-07-04 09:19:19 +08:00 via Android
    非线性整数优化(取决于重心是怎么算的)

    不追求最优的话,建议整个遗传算法什么的,算个几步给个最好的结果就行
    paopjian
        3
    paopjian  
       2023-07-04 09:20:00 +08:00
    16 个背包,每 2 个给个系数,按背包问题算最后得到的最大总数?
    chengrui0428
        4
    chengrui0428  
       2023-07-04 09:22:32 +08:00   5
    littleBink
        5
    littleBink  
       2023-07-04 10:11:41 +08:00
    @chengrui0428 这是真 nb
    yxd19
        6
    yxd19  
       2023-07-04 10:16:25 +08:00
    如果任何货物能放到任何货架上,那不就按重量从高到低,尽量往下放就行了吗
    Georgedoe
        7
    Georgedoe  
       2023-07-04 10:51:48 +08:00
    约束满足问题
    dode
        8
    dode  
       2023-07-04 10:56:50 +08:00
    插入排序
    dode
        9
    dode  
       2023-07-04 11:15:37 +08:00
    ......
    7 ,8
    5 ,6
    3 ,4
    1 ,2
    leegradyllljjjj
        10
    leegradyllljjjj  
    OP
       2023-07-04 11:25:19 +08:00
    @yxd19 重点是还得移动,包括移动的顺序
    leegradyllljjjj
        11
    leegradyllljjjj  
    OP
       2023-07-04 11:28:59 +08:00
    @chengrui0428 跑了一下 好像是有问题啊
    chengrui0428
        12
    chengrui0428  
       2023-07-04 13:46:51 +08:00
    insanny
        13
    insanny  
       2023-07-04 14:02:34 +08:00   1
    @chengrui0428 我觉得楼主描述的应该是:每个货物不能搬出来,要像推箱子一样只能往相邻的格子挪,在这种前提下不断的挪动货物调整位置,从而能得到的最优解,并且这个过程中每一步货物的移动路径也必须记录下来。和你的解题似乎有一些偏差
    leegradyllljjjj
        14
    leegradyllljjjj  
    OP
       2023-07-04 19:41:47 +08:00
    @insanny 搬箱子的话可以搬,可以不相邻,就是可以把箱子搬到任意一个空位上,但是不能一个箱子搬到一个已经有箱子的货位上,目的是生成一个搬运的顺序,搬运次数最少而且重心降到最低
    leegradyllljjjj
        15
    leegradyllljjjj  
    OP
       2023-07-04 19:52:01 +08:00
    做不出来楼主就要被开除了[流泪]
    yesterdaysun
        16
    yesterdaysun  
       2023-07-05 14:53:25 +08:00
    感觉抽象一下问题, 把货架从下而上, 从左到右编号, 抽象为数组, 里面的值就是货物重量, 空的就是 0, 比如随便写一个:
    2,0,0,0,0,1,0,3,4,5
    目标重心最低, 这个其实很简单就是越重的越下面就行, 所以结果就是排个序:
    5,4,3,2,1,0,0,0,0,0

    但是这里的难点是普通的排序算法不行, 不能像普通排序一样通过额外 temp 变量去交换(swap), 要利用现有的空位交换, 也就是只能和某个 0 交换, 而且进一步的优化是如果是同一层的货物要忽略排序, 比如最下一层原来是 4,5, 没有必要硬是调换成 5,4, 因为是同一层, 重心不会发生变化

    是这个意思吗?

    感觉上应该是有最优算法的, 但是我想不出来, 我能想到的就是类比冒泡, 结合贪心策略, 从最下面开始按照排序好的结果一点点去交换得到最终结果
    chenlins
        17
    chenlins  
       2023-07-06 15:30:51 +08:00 via iPhone
    @yesterdaysun 这思路不错,可以研究下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2610 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 15:01 PVG 23:01 LAX 08:01 JFK 11:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86