特种电梯下一种简单换乘策略

总流程图

思路

电梯可停靠楼层:

A型: -3, -2, -1, 1, 15~20

B型: -2, -1, 1, 2, 4~15

C型: 1, 3, 5, 7, 9, 11, 13, 15

观察课程电梯的停靠规则,可以发现1层和15层是两个比较特殊的楼层。

1)所有电梯都可到达1层和15层

2)除了3->4和4->3,如果一种换乘策略不以1或15层为中转,且其路程长度小于以1层或15层中转的方案,

  则一定有一种不需要换乘的策略。

于是就有一种简单的换乘策略:

对于一个请求,优先采用不换乘的路径。

若必须换乘,从1和15中选取路程短的作为换乘路径。

优势

1)比较容易实现

2)从总路程最短的角度效果接近最优策略

3)将请求分解为第二次作业相同的格式,可以直接复用第二次作业的工作

4)在统一的楼层换乘的开关门次数期望更小

5)不需要指定电梯种类,便于筛选出所有能够完成请求的电梯,给调度算法留下更多空间

原文地址:https://www.cnblogs.com/lllllllllllllllllllllllllllll/p/12706684.html

时间: 04-15

特种电梯下一种简单换乘策略的相关文章

集群/分布式环境下5种session处理策略

转载自:http://blog.csdn.net/u010028869/article/details/50773174?ref=myread 前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A.B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session.当用户第二次发送请求时,Nginx将其负载均衡到B服务器,而这时

【转】集群/分布式环境下5种session处理策略

转载至:http://blog.csdn.net/u010028869/article/details/50773174 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A.B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session.当用户第二次发送请求时,Nginx将其负载均衡到B服务器,而这时候B服务器并不存在Sessi

【架构师之路】集群/分布式环境下5种session处理策略

转自:http://www.cnblogs.com/jhli/p/6557929.html 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A.B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session.当用户第二次发送请求时,Nginx将其负载均衡到B服务器,而这时候B服务器并不存在Session,所以就会将用户踢到登录页

【转】分布式环境下5种session处理策略(大型网站技术架构:核心原理与案例分析 里面的方案)

前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A.B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session.当用户第二次发送请求时,Nginx将其负载均衡到B服务器,而这时候B服务器并不存在Session,所以就会将用户踢到登录页面.这将大大降低用户体验度,导致用户的流失,这种情况是项目绝不应该出现的. 我们应当对

简单工厂+策略模式-下

前言: 虽然做了个Demo但是实际应用的时候发现一开始对简单工厂与策略的理解有误差.开始想输入时间和基础数据就根据不同的算法算出来.后来发现不是.其实时间也是计算的数据.真正选择算法的是像固定用户和临时用户.或者说打折促销.根据这个. 深夜食堂 一个在深夜12点到凌晨7点开张的小食店.被大家称谓深夜食堂.菜单上只有一样菜.但是.无论你要点什么.只要老板会做.即使菜单上没有的菜也可以点.所以.客人还真不少呢. 日式滑动的木门被打开.进来的是一个浑身又绿色.有着硬壳的家伙.没错.他是富兰克林.老板,

基于Redis的三种分布式爬虫策略

前言: 爬虫是偏IO型的任务,分布式爬虫的实现难度比分布式计算和分布式存储简单得多. 个人以为分布式爬虫需要考虑的点主要有以下几个: 爬虫任务的统一调度 爬虫任务的统一去重 存储问题 速度问题 足够"健壮"的情况下实现起来越简单/方便越好 最好支持"断点续爬"功能 Python分布式爬虫比较常用的应该是scrapy框架加上Redis内存数据库,中间的调度任务等用scrapy-redis模块实现. 此处简单介绍一下基于Redis的三种分布式策略,其实它们之间还是很相似

一种Android分包策略推荐

分包的重要性 在架构一个App时,大家往往都在关注新潮的技术,却忽略了一点,那就是分包.很多人可能没有一套分包的原则,凭感觉甚至随心所欲地创建package或将代码放到任意的package中. 虽然最终不会影响App功能,但这个问题其实非常严重.一种不好的分包策略带来的影响将会一直持续在App的开发迭代周期中,主要表现为以下几点: 代码混乱,功能模块界限模糊 不易阅读与维护,尤其对新人来说 功能扩展与重用困难 包间耦合比较高 根据个人多年App开发经验及项目实践,现推荐一种Android分包策略

文顶顶 iOS开发UI篇—iOS开发中三种简单的动画设置

iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所

iOS开发UI篇—iOS开发中三种简单的动画设置

iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所

iOS开发中三种简单的动画设置

iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所有动画提交并生成动