电梯超重问题
设想有一个大楼,里面只有一个电梯。有一个胖子来到一楼电梯口,发现里面挤满了人。当他走进去的时候,电梯超重报警。
正常情况下,胖子离开,电梯门关上,里面的一箱人说,呵呵。
事实上,电梯在没有进胖子的时候,可能离超载还有一些重量,因此加入胖子走进去,换一个较轻的人走出来,可能就不会超重。不妨假设胖子重80kg,走出来一个40kg的女生,则初始条件下电梯载重离最大值(40,80)kg区间内时该方案都是可行的。
一般地,在非胖子假设下,两人体重相差不是很悬殊,一次交换后仍然会使得电梯承重量有空余。易见,这是一个简单01背包问题。在总承重量一定的前提下,使得决策函数取最大值。
考虑到乘坐电梯是为了上楼,在不考虑个体楼层差异的情况下,所有步行上楼的人做的总功仅和电梯外的人总质量有关,因此,以质量作为决策函数的变量是合理的。
如果考虑到每个人去往的楼层不同,问题化归为一个价值01背包问题,决策函数是楼层高度和质量的乘积和,同样可以给出一个最优解。在此前提下,所有人步行的总功最少。考虑到电梯的能量转化效率要远远高于人,因此在此条件下可以为国家节省最多的粮食。
以上文字构思于周三晚18:30分,步行登上光华西辅5楼途中。
正常情况下,胖子离开,电梯门关上,里面的一箱人说,呵呵。
事实上,电梯在没有进胖子的时候,可能离超载还有一些重量,因此加入胖子走进去,换一个较轻的人走出来,可能就不会超重。不妨假设胖子重80kg,走出来一个40kg的女生,则初始条件下电梯载重离最大值(40,80)kg区间内时该方案都是可行的。
一般地,在非胖子假设下,两人体重相差不是很悬殊,一次交换后仍然会使得电梯承重量有空余。易见,这是一个简单01背包问题。在总承重量一定的前提下,使得决策函数取最大值。
考虑到乘坐电梯是为了上楼,在不考虑个体楼层差异的情况下,所有步行上楼的人做的总功仅和电梯外的人总质量有关,因此,以质量作为决策函数的变量是合理的。
如果考虑到每个人去往的楼层不同,问题化归为一个价值01背包问题,决策函数是楼层高度和质量的乘积和,同样可以给出一个最优解。在此前提下,所有人步行的总功最少。考虑到电梯的能量转化效率要远远高于人,因此在此条件下可以为国家节省最多的粮食。
以上文字构思于周三晚18:30分,步行登上光华西辅5楼途中。