電梯調度算法


1. 前言

  本次作業由我和焦任戰同學結對完成,我們選擇的題目是電梯調度算法,我作為駕駛員,他作為領航員。

2. 題目要求

現有一新建辦公大廈,共有21層,共有四部電梯,所有電梯基本參數如下表所示,其使用規定如下:

  • 樓層號為0~20,其中0號為地下一層
  • 有樓層限制的電梯不在相應樓層停靠,如單雙層
  • 所有電梯采用統一按鈕控制
  • 請根據上述要求設計並實現一個電梯控制程序,使得用戶平均等待時間盡可能小,如果有圖形顯示就更好了。
  • 算法設計方面問題,大家也可以咨詢助教,或者參考這篇文章 https://www.jianshu.com/p/eec35bd4e0df
  • 另外大家也可以參考鄒老師的這篇文章 https://www.cnblogs.com/xinz/archive/2011/03/20/1989662.html

3.完成情況

(1)解題思路

    采用java自帶的GUI組件,繪制用戶界面,通過多線程和按鈕監聽模擬電梯運行

(2)運行程序

(3)圖形化界面

  

(4)算法思路

    為選擇電梯函數(search)添加同步鎖,多個電梯線程搶占search()函數,根據電梯上行、停止、下行狀態以及到目標樓層的距離選擇最優解對電梯進行調度。

4.總結

    本次作業由於時間倉促筆者僅通過面向對象方式完成了整個程序,導致整體耦合性較高,對后期測試帶來一些麻煩,接下來將會向面向接口或切面方式改進。用戶界面通過swing組件和多線程之間調度勉強模擬出電梯的運行效果,但java自帶的swing組件比較過時,后期可以采用JS代替。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM