another challenge实现多任务电梯调度优化
另一个挑战介绍
要执行该程序,请运行python main.py
。最新版本位于根目录中,每个名为iterationX
的文件夹表示旧版本。
代码结构:
-
main.py:模拟电梯和控制器运行的主程序
-
elevator.py:电梯类,代表电梯的运作逻辑
-
controller.py:控制器类,管理建筑内所有电梯
-
task.py:任务类,表示一个人想从当前楼层前往目标楼层的请求
优化任务:
-
多任务管理:让电梯承担多项任务,并统一管理getter和setter。
-
多线程调度:尝试引入多线程以实现更高效的任务分配。
-
效率指标:设置一个指标来评估电梯的效率。
-
模拟测试:运行模拟程序测试电梯在不同任务分布下的表现。
-
任务过期处理:让任务在一定时间后过期(模拟人们变得不耐烦而选择走路)。
第二次迭代
-
多任务分配:每部电梯在每一步可承担多项任务(最多10项),每部电梯最初执行单项任务。
-
沿途任务停靠:电梯会在沿途接取同方向任务,优先响应空队列楼层的请求。