Closed. This question needs to be more focused. It is not currently accepting answers. Learn more。
想改进这个问题吗?更新问题,使其只关注一个问题editing this post。
比如说,在G+24的一栋楼里有一部电梯在地面。
G+7上的一个人叫电梯下来(按下按钮)。
因此,电梯将显示向上箭头,直到G+7,然后切换到向下箭头,因为它应该从那里下去。
如果G+2处的人按下向上箭头按钮(电梯刚开始向上移动,没有越过G+2)。
电梯/电梯是否在G+2实际开启?
如果会的话,如果G+2的人按下按钮转到G+20怎么办?
电梯的路径是什么(如G->G+2->…)?
我很困惑电梯是如何处理这些箱子的!
最佳答案
作为程序员,您可以使用统计和建模(最佳情况)或根据自己的主观经验做出假设。
在您的示例中,程序员将使用这样的假设(或统计数据),即大多数想下楼的人都想一直下楼到地面或停车场。再加上假设想进入二楼电梯的人(如果这座楼很高)想上去。
因此,在电梯里的人把电梯降到最低楼层之前,你不会停下来。
基本上,一般的答案是使用动作的统计数据。不同的建筑有不同之处如果这座建筑是新的,而且还没有数据,你可以看看地板上的东西,并试着对运动做出预测基本上,你创造了一个人们运动的模型。然后尝试创建一个优化函数,以最小化等待时间(例如队列大小或能耗)。
你也可以考虑一天中的时间。例如,在商务大厦中,您可以优化上午高峰时段的上行和傍晚/傍晚的下行。
建模、仿真和统计是在这种情况下找到好算法的关键。
再加上这些条件例如,您可以将条件设置为优化,即任何人都不应等待超过20秒,即使总体效率会下降。例如,如果所有车辆都在较低楼层,而50层只有一个人。忽视他/她一个小时也许是最有效的,但这是不可接受的。或者,感觉电梯已满的电梯,除了在里面的人选择的楼层外,不得停止。
例如,你可以在网上找到如何做模特的课程。在教育网站如edx。下面是一个示例(课程已关闭,但仍可以访问):"Mathematical Modeling Basics -- Use mathematics to create models to solve real-life problems."
这是一篇论文的例子(有很多!)关于如何对电梯进行建模:"Modeling Elevator System With Coloured Petri Nets"(pdf)
为了证明这种建模方法确实在实际中得到了应用,下面是一个软件(oasys massmotion)的示例,以及如何使用它对电梯进行建模:"Oasys Software Blog: Modelling Lifts"
这就是计算机科学专业毕业生的做法在实践中几乎同样有效,而且需要的技能和知识要少得多,那就是你想做什么就做什么(做出常识性的假设),如果有人(负责人)抱怨你调整了算法:-)
关于algorithm - 电梯或升降机的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46512016/