zoukankan      html  css  js  c++  java
  • 电梯调度算法简述

      0x00 简述

      该算法基于BUS算法的结构,增加了在中间楼层是否停靠的判断和在顶、底层时下一个停靠点的寻找;

      1.如果电梯在顶层,遍历请求队列中的所有请求,记录在运行方向上的:最近的同方向外部请求、最近的同方向内部请求、最远的反方向外部请求;

       调度时,增加对电梯是否满员的判断,如果满员,则只满足内部请求,下一个停靠点定为最近的同方向内部请求;如果电梯未满,同时存在同方向的外部请求和内部请求时停靠在最近的请求楼层,不存在同方向请求时停靠在最远反方向外部请求楼层;

       在底层时同理;

      2.在中间楼层时,判断下一个可停靠点是否开关门,条件包括是否满员、是否在该楼层有请求;

      0x01 算法的独到之处:

        i.相对于BUS算法,灵活地利用了已知的信息(包括请求信息、电梯的容量、剩余空间等状态信息),减少了不必要的停靠开关门的时间;

        ii.由于每一趟都尽量优先解决同方向上的请求,整个调度过程不会存在某个乘客等待过长时间的情况(最多是来回一趟的时间),这样设计的实用性是优秀的的,这一点也算是对BUS算法的学习和借鉴;

        iii.电梯满员时不停靠的策略比较贴近现实,减少了大量的超载拒绝,在上下班高峰期时能大幅提升电梯调度运行的效率。

  • 相关阅读:
    MIne FirstBlog
    P6563 [SBCOI2020]一直在你身旁
    P6563 [SBCOI2020]一直在你身旁
    T122085 [SBCOI2020]时光的流逝
    LC 918. Maximum Sum Circular Subarray
    1026 Table Tennis
    LC 1442. Count Triplets That Can Form Two Arrays of Equal XOR
    LC 1316. Distinct Echo Substrings
    LC 493. Reverse Pairs
    1029 Median (二分)
  • 原文地址:https://www.cnblogs.com/UDvoid/p/4034616.html
Copyright © 2011-2022 走看看