如果,两个电梯是等价的,那么,2个电梯的空闲停靠楼层是多少呢?

假设2到n的等待乘客数分别为1,那么一楼的等待乘客数为n-1

假设停靠楼层为x,y,那么电梯去接第一个乘客的接客距离为

(n-1) * f(1) + f(2) +  f(3) + ...... + f(n),其中f(t) = min(abs(t-x), abs(t-y))

abs表示绝对值,很明显,这个式子在x=1, y=n/2的时候取到最小值。

我每天乘坐的电梯有26层,恰好就是这么设定的:

电梯控制算法(8)多电梯场景——双电梯的空闲停靠_javascript   电梯控制算法(8)多电梯场景——双电梯的空闲停靠_javascript_02



在电梯控制算法(3)单电梯场景——空闲停靠一文中,我分析了单电梯的空闲停靠。

简单来说,对于下行高峰,如果只考虑尽快把第一个乘客送到1楼,那么空闲停靠楼层是n/2,如果考虑2个楼层的乘客同时外部输入下行的情况下尽快都送到1楼,那么空闲停靠选择最高层是最优的。

同样的,对于双电梯的电梯停靠,如果考虑2个楼层的乘客同时外部输入下行的情况,空闲停靠的最优方案应该是一个在一楼,另外一个在最高层,动态决定哪个电梯在一楼,哪个在最高层。

我写到博客此处的时候已经搬到另外一个小区了,一共有33层,空闲停靠就是这么设定的:

电梯控制算法(8)多电梯场景——双电梯的空闲停靠_控制算法_03