1
leegradyllljjjj OP |
2
dayeye2006199 2023-07-04 09:19:19 +08:00 via Android
非线性整数优化(取决于重心是怎么算的)
不追求最优的话,建议整个遗传算法什么的,算个几步给个最好的结果就行 |
3
paopjian 2023-07-04 09:20:00 +08:00
16 个背包,每 2 个给个系数,按背包问题算最后得到的最大总数?
|
4
chengrui0428 2023-07-04 09:22:32 +08:00 5
|
5
littleBink 2023-07-04 10:11:41 +08:00
@chengrui0428 这是真 nb
|
6
yxd19 2023-07-04 10:16:25 +08:00
如果任何货物能放到任何货架上,那不就按重量从高到低,尽量往下放就行了吗
|
7
Georgedoe 2023-07-04 10:51:48 +08:00
约束满足问题
|
8
dode 2023-07-04 10:56:50 +08:00
插入排序
|
9
dode 2023-07-04 11:15:37 +08:00
......
7 ,8 5 ,6 3 ,4 1 ,2 |
10
leegradyllljjjj OP @yxd19 重点是还得移动,包括移动的顺序
|
11
leegradyllljjjj OP @chengrui0428 跑了一下 好像是有问题啊
|
12
chengrui0428 2023-07-04 13:46:51 +08:00
|
13
insanny 2023-07-04 14:02:34 +08:00 1
@chengrui0428 我觉得楼主描述的应该是:每个货物不能搬出来,要像推箱子一样只能往相邻的格子挪,在这种前提下不断的挪动货物调整位置,从而能得到的最优解,并且这个过程中每一步货物的移动路径也必须记录下来。和你的解题似乎有一些偏差
|
14
leegradyllljjjj OP @insanny 搬箱子的话可以搬,可以不相邻,就是可以把箱子搬到任意一个空位上,但是不能一个箱子搬到一个已经有箱子的货位上,目的是生成一个搬运的顺序,搬运次数最少而且重心降到最低
|
15
leegradyllljjjj OP 做不出来楼主就要被开除了[流泪]
|
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, 因为是同一层, 重心不会发生变化 是这个意思吗? 感觉上应该是有最优算法的, 但是我想不出来, 我能想到的就是类比冒泡, 结合贪心策略, 从最下面开始按照排序好的结果一点点去交换得到最终结果 |
17
chenlins 2023-07-06 15:30:51 +08:00 via iPhone
@yesterdaysun 这思路不错,可以研究下
|