您好,匿名用户
随意问技术百科期待您的加入

排队算法问题

0 投票

一个排队叫号系统中,所有的人都是竞争关系,如何保证公平,尽可能减少操作方面带来的优势(比如年龄大的人点鼠标速度比年轻人慢),但又不影响大家的竞争积极性(比如采用轮询方式一人一个)

用户头像 提问 2013年 11月6日 @ Lulu 上等兵 (293 威望)
分享到:

1个回答

0 投票

简单讨论一下,不涉及具体的技术细节。

公平。只能做到一个尽可能接近的水平,但无法绝对公平。一般的做法,是初步分析影响公平的因子有哪些,然后将这些因子进行排序,赋以加权(一般可以采取层次分析法[AHP]),以期影响最后的排队。例如,你所谓的年龄大的人点鼠标的速度比年轻人慢这个考虑因素,实际上就可以归纳为年龄因子。至于实际上还有哪些考虑因素,这个就得靠系统设计的前期需求分析了。
竞争的积极性。一方面,只要是紧缺资源,不管你系统做的如何烂,都不太会影响积极性,例如马上进入春运后,我们的12306系统;另一方面,在某次交互长时间停滞时,需要有一个合适的手段以保证系统能够持续下去,这个目前常见的做法就是简单的丢弃。例如,你到医院排队叫号,叫到你面前,没有答应,医生就丢弃了,接着下一个呗。

综上所述,对于这类的排队算法问题,永远不要只埋头于算法的具体技术实现。往往实际的系统需求决定了算法的最终实现方案。
PS:个人觉得类似于医院排队叫号系统,在大家对公平没有一个统一的共识之前,目前已有的先来后到其实就是一种很好的公平算法了。当然,所谓的特权插队者,这是在哪个地方都有的,无解。

用户头像 回复 2013年 11月5日 @ Garen 上等兵 (269 威望)
提一个问题:

相关问题

0 投票
0 回复 41 阅读
+1 投票
0 回复 25 阅读
0 投票
0 回复 21 阅读
用户头像 提问 2013年 11月4日 @ Virgo 上等兵 (284 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2013年 11月7日 @ Sion 上等兵 (319 威望)
0 投票
1 回复 40 阅读
用户头像 提问 2012年 12月1日 @ Morgana 上等兵 (251 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...