社区
C#
帖子详情
电梯调度算法
DWilliam
2011-10-18 08:56:20
比方说:某栋写字楼6层,有2部电梯,每层楼都有上行和下行两个按键;
响应请求电梯可以是:闲置电梯、距客人最近的电梯
要求:在运送所有客人到达目标楼层的前提下电梯的总行程尽可能小。
有那位知道这在电梯的运行响应规则,或有相关的资料。
...全文
599
12
打赏
收藏
电梯调度算法
比方说:某栋写字楼6层,有2部电梯,每层楼都有上行和下行两个按键; 响应请求电梯可以是:闲置电梯、距客人最近的电梯 要求:在运送所有客人到达目标楼层的前提下电梯的总行程尽可能小。 有那位知道这在电梯的运行响应规则,或有相关的资料。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
永动bug制造机
2011-10-20
打赏
举报
回复
mark
gengchenhui
2011-10-19
打赏
举报
回复
楼层不同,算法也不同吧?
yezhendong185
2011-10-19
打赏
举报
回复
留标记学习
香椿炒鸡蛋
2011-10-19
打赏
举报
回复
看了下标题,以为是操作系统里面的电梯调度。。
wangRMB250
2011-10-19
打赏
举报
回复
学习了
ycagri
2011-10-19
打赏
举报
回复
学习了
only_lonely
2011-10-19
打赏
举报
回复
[Quote=引用 3 楼 sp1234 的回复:]
将一连串几个子任务压入堆栈 --> 将一连串几个子任务压入队列
最容易乱人心智的,就是纠结于每楼层那两个按钮。如果你认为它一旦按下,电梯就必须立刻改变自己的行为规划,那么你可能就会写出一个特别诡异的程序
。它按下就按下吧,不用管它
,电梯仍然按照自己的行为规则运行,只不过是每隔2秒钟才检测一下外界环境的变化而废弃原来的规划并立即重建规划。这样就具有智能了。
[/Quote]
化繁为简,有道理!
EdsionWang
2011-10-19
打赏
举报
回复
[Quote=引用 7 楼 falconshh 的回复:]
看了下标题,以为是操作系统里面的电梯调度。。
[/Quote]
同以为...
以专业开发人员为伍
2011-10-18
打赏
举报
回复
将一连串几个子任务压入堆栈 --> 将一连串几个子任务压入队列
最容易乱人心智的,就是纠结于每楼层那两个按钮。如果你认为它一旦按下,电梯就必须立刻改变自己的行为规划,那么你可能就会写出一个特别诡异的程序。它按下就按下吧,
不用管它
,电梯仍然按照自己的行为规则运行,只不过是每隔2秒钟才检测一下外界环境的变化而废弃原来的规划并立即重建规划。这样就具有智能了。
以专业开发人员为伍
2011-10-18
打赏
举报
回复
随便说一下吧。实际上每一个人写出来的都是不一样的,这也可以看出不同人的设计风格的不同:
就一个电梯来说,它假设具有“启用、停用”状态,并且有“上行、下行、速度、开门、关门”等状态,它也许每隔2秒钟要重新计算一次自己的行为,只有在这个时候才改变自己的规划。
而不是随便外界的什么按钮按下了就改变它
。注意,电梯是定时地计算自己的行为,而不是实时改变自己的行为。搞清楚这个就可以简化控制逻辑。
比如说电梯如果是在闲置,那么它检测有哪一个楼层按下了按钮,判断另外一个电梯是不是会比自己预先到达。如果预先到达那么自己就什么都不做;如果不是,就会做出一个简单的规划(将一连串几个子任务压入堆栈),例如判断是否正确地关门,判断出是否上行(或者下行),设置好目标楼成,发出加速指令(从0开始加速)。
比如说电梯正在正常形势中,那么它检测在自己的运动方向内并且距离自己最近的楼层按下了按钮,它判断是否需要进入减速程序。如果是到了可以减速的距离,就计算出减速的参数,然后发出减速指令。
比如过电梯正在减速运行并且速度接近0时,要判断是否正好到达准确位置。如果没有到达准确位置,还要重新低速改变上下行,进行调整。如果已经到达准确位置,那么就开门吧。
..........
还需要写出大概十种规则,才是一个比较完整的规则框架。
IE11下面经常卡到爆
2011-10-18
打赏
举报
回复
mark
电梯调度算法
设计
该博客围绕
电梯调度算法
设计展开,以金川校区电力大楼4部电梯为例,给出建筑层数、电梯按钮设置等参数,提出设计算法要使电梯正确响应呼叫、提高运行效率等要求,还提及可视化界面为加分点。博主因算法涉及多线程未完成,分享了学习心得。
操作系统----磁盘调度(
电梯调度算法
)
本文通过实验介绍了磁盘调度的目的和
电梯调度算法
的原理,详细讲解了如何模拟设计磁盘调度程序,特别是在多进程环境中如何利用
电梯调度算法
优化磁盘访问次序,以减少平均寻道长度,提高系统效率。文中还提供了C语言实现的磁盘调度代码片段,用于测试和验证算法的效果。
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章