阅读以下算法说明和问题模型图,根据要求回答问题1、问题2。 [说明] 某大学城图书馆需要在无线阅览厅的某些位置上放置无线接入点AP(Access Poin)。假设每个无线 AP覆盖范围的半径是6米,因此必须使得每台笔记本电脑上的无线网卡到某个无

admin2013-01-05  26

问题 阅读以下算法说明和问题模型图,根据要求回答问题1、问题2。
   [说明]
   某大学城图书馆需要在无线阅览厅的某些位置上放置无线接入点AP(Access Poin)。假设每个无线 AP覆盖范围的半径是6米,因此必须使得每台笔记本电脑上的无线网卡到某个无线AP的直线距离不超过6米。为了简化问题,假设所有无线网卡在同一直线上,并且无线AP沿该直线放置。该问题可以建模为如图1-13所示,其中直线表示无线网卡所在的直线,实心正方形表示无线网卡。现采用贪心策略实现用尽可能少的无线AP覆盖所有的无线网卡。
  
   实现贪心算法的流程如图1-14所示。其中,①d(1≤i≤N)表示第i张无线网卡到通道A端的距离,N表示无线网卡的总数,无线网卡的编号按照无线网卡到通道A端的距离从小到大进行编号:②s[k]表示第k(k≥1)个无线AP到通道A端的距离。算法结束后k的值为无线AP的总数。

选项

答案本试题的题干说明中已将无线网卡分布问题建模(如图1-13所示)。其中,直线表示无线网卡所在的直线,实心正方形表示无线网卡。而要求解的问题是要求如何在该直线上布局无线AP,使其能覆盖所有的无线网卡,并且所用无线AP的数量要尽可能的少。这是一个通过进行一系列选择求最优解的问题。 分析该问题,发现其具有最优子结构,并且具有贪心选择性质,故该问题可以用贪心算法来求解。贪心算法思想是:问题的规模为N,从第1个无线网卡(最左端)开始布局无线AP,把第1个无线AP放置在该无线网卡右方的6米处,此时该无线AP会覆盖从第1个无线网卡到该无线网卡右方直线长度为12米的所有无线网卡,假设覆盖了N1个无线网卡。此时问题规模变成了N-N1,接着把第1个无线AP覆盖的无线网卡去掉,再从N-N1中选择第1个(最左端)无线网卡开始布局无线AP,将第2个无线AP放置在该无线网卡右方的6米处。依此布局,直到覆盖所有的无线网卡。 图1-22是问题解的模型。其中,直线表示无线网卡所在的直线,实心正方形表示无线网卡,实心圆形表示无线AP,虚线圆以对应无线AP为圆心,直径为无线AP的覆盖范围,即对应无线AP的覆盖范围(12米)。 [*] 实现贪心算法的流程见题干的图1-14。由于“算法结束后k的值为无线AP的总数”,因此在算法开始处需要对变量k赋初值,即(1)空缺处所填写的内容是“k=0”。 该贪心算法中,N表示无线网卡的总数,且无线网卡的编号按照无线网卡到通道A端的距离从小到大进行编号,d[i](1≤i≤N)表示第i个无线网卡到通道A端的距离。当判断第i个无线网卡未超过无线网卡总数N,而求解下一个无线网卡(即第i+1个无线网卡,或第j个无线网卡)所归属的无线AP时,也需要判断第j个无线网卡是否超过无线网卡总数N,以及第j个无线网卡与第i个无线网卡之间的距离是否超过12米,因此(2)空缺处所在的判断条件是“j<=N&&d[j]-d[i]<=12”,即该空缺处所填写的内容是“j<=N”或其等价形式。 若第j个无线网卡未超过无线网卡总数N,且第j个无线网卡与第i个无线网卡之间的距离未超过12米,则可以求解再下一个无线网卡(即第i+2个无线网卡,或第j+1个无线网卡)所归属的无线AP。反之,则需要记录无线AP的总数k,即(3)空缺处所填写的内容是“k=k+1”或其等价形式;以及记录第k(k≥1)个无线AP到通道A端的距离,即(4)空缺处所填写的内容是“d[i]+6”或其等价形式。 当求解完第k个无线AP(覆盖了N1个无线网卡)的布局后,需要把第k个无线AP覆盖的无线网卡去掉,再从N-N1中选择第1个(最左端)无线网卡开始布局第k+1个无线AP。依此不断求解,直到覆盖所有的无线网卡。

解析
转载请注明原文地址:https://kaotiyun.com/show/FYDZ777K
0

相关试题推荐
最新回复(0)