我们的电梯调度算法的独到之处
发布日期:2021-08-21 13:18:19 浏览次数:12 分类:技术文章

本文共 989 字,大约阅读时间需要 3 分钟。

我们的算法里,定义了_PassengerQueue专门用于存储乘客发出的方向请求,还定义了一个ArrayList数组_targetOfElev用于存储每个电梯的目标楼层。把每个楼层里发出的方向请求相同的那些请求只存储一个,因为一个乘客如果进入不了一个电梯里的话,那么他就会再发出一次方向请求,这样又会对这个方向请求进行赋值,这样,只要还没有完成将所有的乘客都送到他们要到的楼层,那么_PassengerQueue这个队列就不是空的,那么,电梯调度算法就会继续去完成它。当有乘客进入一个电梯时,就会发出一个目标请求,我们算法里就把这个目标请求加入到数组数组_targetOfElev里该电梯对应的ArrayList里面并且按从大到小排好序,方便后面调用。

在每一个ticks,我们把停靠的电梯和运行中的电梯分开处理:

(1)停靠电梯的处理,这种情形比较多。如果电梯是到达了一个目标楼层后,就在数组_targetOfElev里该电梯对应的ArrayList里面去掉当前电梯所在的楼层。这时候,如果数组_targetOfElev里该电梯对应的ArrayList不为空,就是说电梯的还有目标楼层没有到达,那么就将电梯的下一个目标设为数组_targetOfElev里该电梯对应的ArrayList里面最近的那个目标楼层(这里,向上运行的电梯和向下运行的电梯情况不同);如果数组_targetOfElev里该电梯对应的ArrayList为空,即电梯已经完成了之前数组_targetOfElev里该电梯对应的ArrayList里面的所有任务,那么如果这个时候所有楼层里都没有人发出请求了,那么电梯就往第零层和第一层走,如果有请求,那么电梯就去发出请求的地方接人。

(2)运行电梯的处理,又分为向上运行的电梯和向下运行的电梯,但这是一个对称的过程。如果电梯和电梯目前要前往的目标楼层之间楼层有和电梯运行方向一样的的方向请求时,并且电梯的剩余重量还大于所有人统计平均质量(这里是70)时,就可以使电梯在这一层里停靠一下,接上发出请求的乘客。接上乘客之后,乘客就会发出目标请求,目标请求会加入到数组_targetOfElev里该电梯对应的ArrayList里面。

转载于:https://www.cnblogs.com/DOOM-lz/archive/2012/10/22/2733243.html

转载地址:https://blog.csdn.net/weixin_33720078/article/details/93751761 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:[JAVA]字符串单词倒转处理前面的空格
下一篇:Java URL

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2023年02月27日 06时38分44秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

csv逗号分隔符转换_文件系统(02):基于SpringBoot管理Xml和CSV 2019-12-02 01:43:32
python函数作用的描述_python基础之函数内容介绍 2019-12-02 01:43:33
python存数据到impala_0039-如何使用Python Impyla客户端连接Hive和Impala 2019-12-02 01:43:33
python设计模式pdf_精通python设计模式豆瓣-精通python设计模式第二版电子书pdf下载-精品下载... 2019-12-02 01:43:33
eclipse代码量统计插件_推荐一波代码量、行数、提交量、作者等全维度统计神器... 2019-12-02 01:43:33
python运维脚本部署jdk_Python+PyDev+Jdk+Eclipse开发环境部署 2019-12-02 01:43:33
idea重写接口没有@override_1.重载和重写的区别 2019-12-02 01:43:33
python爬取网页代码_python爬虫爬取网页的内容和网页源码不同? 2019-12-02 01:43:31
采样频率和带宽的关系_发送端测试的主力设备 - 实时示波器朝向高带宽高位数发展... 2019-12-02 01:43:31
python线程监控_Python 使用摄像头监测心率!这么强吗? 2019-12-02 01:43:31
win7安装python3.6失败_win7下python3.6安装配置方法图文教程 2019-12-02 01:43:31
python读取sas数据集_Python 数据处理库 pandas 入门教程基本操作 2019-12-02 01:43:31
python3字符串操作_python3字符串常用方法 2019-12-02 01:43:32
python字典添加元素使用技巧大全_字典里添加元素有哪些方法 2019-12-02 01:43:32
windows安装python3步骤_windows下python3第三方库安装方法总结 2019-12-02 01:43:29
python 通过模板生成文章_自动生成文章_python自动生成文章 - 云+社区 - 腾讯云 2019-12-02 01:43:30
python多线程下载编程_Python多线程结合队列下载百度音乐代码详解 2019-12-02 01:43:30
python包管理工具pip_pip_python包管理工具(pip)下载 v9.0.1官方版 - 121下载站 2019-12-02 01:43:30
outlook qr码在哪里_聚合码微信支付宝申请开通,商家融合收款码实现一码支付,如何申请微信和支付宝合并收款码?聚合码支持信用卡、花呗、微信和支付宝收款... 2019-12-02 01:43:30
python画图x轴时间间隔_matplotlib绘图-设置横坐标为日期显示范围与间隔 2019-12-02 01:43:30