• 软件工程概论作业二 电梯调度思路 信1205班 刘权毅 董文轩


       这周一老师给我们留的作业是关于“电梯调度”的算法设计,我们两个人结组一同设计这个问题,最终有了我们自己的思路,下面将进行介绍:

       首先,先说明一下这个问题,该题目的要求为:试想一下,我们正在构建一个高大的办公楼,它有大约电梯配置如下:大厦有21层, 4部电梯,很多乘客使用这些电梯的日常(旅客重量:平均70公斤最大120公斤,最小45公斤)。其他常量数据:电梯速度,开/关门时间,乘客的时间要在/走出电梯。另外,从地面0 , 1 ​​, ... 20 。地板0是地下停车场水平, 1楼是大堂的水平。大多数人都在/走出大楼通过这些2层。另外,还有一些基本要求:

    电梯名称

    停靠层数

    乘客限制

    重量限制

    1

    所有楼层

    10

    800 kg

    2

    所有楼层

    10

    800 kg

    3

    所有楼层

    20

    1600 kg

    4

    所有楼层

    20

    2000 kg

    其次,我们先设想一下现实生活中的整个流程,从一个想要乘电梯的人的角度出发,他需要确定几个问题:

    ①乘客是上电梯还是下电梯。对于这个问题,我们把每个人以button控件来表示,且每一层有个小文本框来记录该层是第几层,同时还要做一个电梯外部的显示窗口,该窗口有一个窗口记录电梯目前所在楼层数,一个向上的按键和一个向下的按键。

    ②电梯的运行问题。我们可以用两个数值来表示电梯的运行,比如0和1。假设设置一个变量a,当a=1时说明电梯正在向上行驶,当a=0时说明电梯正在向下行驶。如果电梯目前所在楼层数高于乘客所在楼层数,那么电梯还要进行判断自己所在楼层以上是否还有其他乘客,如果有则a的值仍为1,反之a的值变为0。当电梯到达乘客所在楼层数时,电梯停止行驶,等待乘客,这里可以再假设一个变量c,当c=1时代表电梯正在行驶,当c=0时代表电梯停止行驶。

    ③4个电梯哪个最先到达的问题。设想一下,当电梯外部按下楼层上或下键时,相当于同时按下4个电梯,这个时候从4个电梯中调度一部进行响应,具体算法是,选择当前没有在运行,或者运行方向与按钮方向相同的并且要经过此楼层的电梯,如有,便调这个电梯,若有多个,那么就选择在满足上面条件下与所处楼层最接近的一部电梯,若没有,那么就将这个楼层存放在等待队列中,等待资源。这里我们可以采用队列的存储方式来进行存储,把计算时间最短(能让乘客所爬楼梯数最少)的电梯进行调用。

    ④乘客进出电梯。此时需要设计一个电梯内部的窗口,正如现实生活中一样,电梯内部窗口包括一个显示窗口,用来记录电梯所在的实际楼层数;同时,还有相应的0~20层楼的按键,开关门的按键和一个紧急报警按钮。当电梯外部有乘客按下楼层上下键按钮时,用一个二维数组记录下按键所在层数的坐标,若电梯所在楼层坐标与二维数组中的坐标相等时,电梯停下,打开电梯门,等待乘客进入。经过系统规定开关门时间再关闭电梯门。

    ⑤电梯超载问题。对于每个电梯所能承受的最大重量不同,于是可以采用简单求和的方式,设置一个变量,电梯内部每进来一名乘客就加上他的体重,每走出一名乘客就减去他的体重。如果此时该变量值已超电梯最大承载量,那么电梯将自动启动紧急报警按钮,停止运行,一直保持开门状态,直到载客数减少。

        以上便是我们所考虑到的问题,可能有些说的不是很详细,有些存在遗漏和缺陷,但是我们会加以完善。考虑完这些,我们在学校春晖楼对电梯运行情况进行了考察,我们发现:

    电梯平均运行速度 2.3秒/层
    电梯开关门间隔 9.6秒
    乘客走进出电梯的时间间隔

    (人流量多时)20秒

    (人流量少时)9.6秒

    注意:当有乘客阻止电梯门的关闭超过1秒时,电梯会再次启动一个开关门的时间间隔。

    以上便是我们小组自己的思路,现在还没有具体的算法实现,由于是第一次接触如此复杂的问题,我们的思路会存在一些不足,这还需要我们以后在实际编程中发现问题,解决问题。

                                                                                                        信1205班

                                                                                                      董文轩  刘权毅



  • 相关阅读:
    阿里云配置php环境 ubuntu12.04 32 nginx+php5+mysql
    苹果广告新手段,照片广告,防不胜防啊,老司机教你如何应对
    苹果日历广告对应办法
    python 保存文本txt格式之总结篇,ANSI,unicode,UTF-8
    python 脚本开发实战-当当亚马逊图书采集器转淘宝数据包
    pycharm的console显示乱码和中文的配置
    python读取文件时提示"UnicodeDecodeError: 'gbk' codec can't decode
    appium安装问题集锦
    二叉树算法-用于记忆
    获取当前目录及子目录下包含指定内容的文件名,并将文件的相对路径打印
  • 原文地址:https://www.cnblogs.com/dashendwx/p/3587789.html
Copyright © 2020-2023  润新知