图论的两个问题:北极网络&道路与航线

问题一

一、问题描述

国防部(DND)希望通过无线网络连接几个北部前哨站。

在建立网络时将使用两种不同的通信技术:每个前哨站都有一个无线电收发器,一些前哨站还有一个通信卫星。国防部拟定建立P个前哨站,其中配备卫星的前哨站有S个。前哨站的位置用横纵坐标(x,y)来表示。

任意两个拥有通信卫星的前哨站不论它们的位置如何,都可以通过卫星进行通信。

而如果利用无线电进行通信,则需要两个前哨站的距离不能超过D方可进行通信。

而D的大小取决于收发器的功率,收发器的功率越大,D也就越大,但是需要的成本也就越高。

出于采购和维护的考虑,所有的前哨站都采用相同的收发器,也就是说所有前哨站的无线电通信距离D都是相同的。

需要确定在保证任意两个前哨站之间都能进行通信(直接或间接)的情况下,D的最小值是多少。

二、问题分析与算法描述

   本题旨在解决一个无线网络连接前哨站的最优通信距离问题。通过两种通信技术(卫星通信和无线电通信)来保证所有前哨站之间能够直接或间接通信,要求找出在满足条件下无线电通信距离 D 的最小值。
   利用克鲁斯卡尔Kruskal算法来解决这个问题。先将所有前哨站之间可能的无线电连接边按照距离从小到大排序,然后逐步选取边来构建连通图,直到所有前哨站都连通,即最小生成树已求出。由于有卫星通信的存在,可以把整个问题简化为只需要用无线电连接剩下未通过卫星连通的部分前哨站即可,所以在选取边的过程中,我们在最小生成树中依次选取最大的边作为通过卫星通讯的线路,只需要再用无线电连接其他的边使所有前哨站可以两两通讯。

克鲁斯卡尔算法kruskal

适用范围:适用于解决带权无向图的最小生成树问题,不能直接用于有向图求最小生成树。

算法步骤:
(1) 选棱e1e_1e1使w(e1)w(e_{1})w(e1)最小;
(2) 若已选定 e1e_1e1,e2e_2e2,…,eie_iei ,则从E1E_1E1\ { e1e_1e1,e2e_2e2,…,eie_iei}中选取 ei+1e_{i+1}ei+1 使

  • G[{ e1,e2,…,e1}∪{ ei+1}]\mathbb{G}[\{e_1,e_2,\ldots,e_1\}\cup\{e_{i+1}\}]G[{ e1,e2,,e1}{ ei+1}]无圈;
  • w(ei+1)w(e_{i+1})w(ei+1)是满足前面条件后的最小者。

(3) 若(2)不能再进行下去时,转(4)。否则,回到 (2)。
(4) 设最小生成树边集为E2E_2E2E2E_2E2中的e1e_1e1使w(e1e_1e1)最大,将e1e_1e1的两个顶点设置成卫星所在哨站,cnt=2cnt=2cnt=2cntcntcnt记录卫星已经使用的个数)
(5) 若已选定 e1e_1e1,e2e_2e2,…,eie_iei ,则从E2E_2E2\ { e1e_1e1,e2e_2e2,…,eie_iei}中选取 ei+1e_{i+1}ei+1 使

  • cnt≤scnt\leq scnts(s为卫星的个数)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值