在线时间 81 小时 最后登录 2023-9-2 注册时间 2008-9-13 听众数 3 收听数 0 能力 0 分 体力 1434 点 威望 0 点 阅读权限 150 积分 474 相册 0 日志 0 记录 0 帖子 87 主题 3 精华 0 分享 0 好友 5
TA的每日心情 开心 2017-9-4 15:05
签到天数: 27 天
[LV.4]偶尔看看III
群组 : 2011年第一期数学建模
题 目
: V6 T/ b: n2 d* g/ }
! }" l: o0 f- Z8 I7 r# M 8 G3 m0 @. A9 n2 U- W" d/ I& P7 W
Ad Hoc 网络问题的数学模型 3 C4 T+ i. R- h( M0 i4 }" z
本文主要利用计算几何与图论的有关知识,分析和解决了 Ad Hoc 网络区域覆盖、信道分配、节点划分等问题,并应用仿真手段对各种条件下网络的连通性进行了研究。对前四个问题给出了求解的过程和结果,针对第五问,提出了解决问题的思想。
& I P" u5 y' n6 D" ~/ K 问题一 考虑到区域的对称性,将圆分别按照正三角形、正方形的排列方式去覆盖给定区域,覆盖方案为:当相交面积不小于圆面积的5%时,应采用正三角形排列,所需圆的个数是45,当相交面积不小于圆面积的18%时,应采用正方形排列,所需圆的个数是61。将信道分配问题转化为图的点着色问题,得出的结果为正三角形排列时分配3个信道,正方形排列时分配2个信道。通过对网络邻接矩阵D 的研究,提出了网络连通的一个充要条件: 中的任意元素非零。 最后通过仿真研究了网络的抗毁性。 + `. U( w" U! S
问题二中首先证明了:在半径和一定时,用大圆比用小圆覆盖的面积大。因此在第一问的结果上对内、外边界上的圆进行局部调整,调整后半径和为4346。 4 i& P% i2 c; M; H1 y" H* G5 C
问题三采用了改进的LBG算法对节点聚类,并定义了一个指标用于判断LBG算法执行的效果,选择较优的结果进行局部搜索,得到圆的数量为48,其半径和为4247。在判断连通性时,将每个圆看成一个节点建立邻接矩阵,然后根据问题一指出的充要条件进行判断,由此推出了一个更为直观的网络连通的充要条件。最后还提出了一种基于节点度数的划分方法。
, T4 |0 t7 a- j8 r2 X: z* I7 B 问题四首先通过仿真研究了节点随机运动下网络连通性。另外我们定义了网络的连通强度,深入讨论了节点随机运动条件下网络连通性的变化。 9 Y0 V" Q4 ~* n# ?
问题五对通信过程中节点能量的变化规律进行了分析,建立了以节点退出网络所用的时间最大为目标的规划模型。 5 H( l- F8 y' R7 ]! R5 ]; ^
; P0 G! @) p+ e5 k X
+ d0 {' w- ~4 e5 p c 参赛队号 4 R% V$ L. h4 u3 f9 M; v$ x
# `' P" L* x- `
* B, V/ r9 a1 u8 O8 r9 b( o- o
目$ K- @8 Z* Q* D' y, X& }% [
录 一、问题重述 ... 2
7 {1 e6 D3 G. B5 w
, U+ G# i1 l: ]3 b. j 一、问题重述 ... 2
( d/ b! `( f) n4 r6 E 6 v4 U/ Z: ~! H0 g
二、问题分析 ... 2
& \6 N# r6 p0 W2 k+ t* [
! p4 l- W% K F: D- F 三、基本假设 ... 3
: X* g$ K5 ~4 ` . D; r3 y7 H3 L- ^1 u3 S+ ?
四、符号说明 ... 40 h! ]9 {2 y% x2 a7 D0 C
9 u/ E) W( F0 }* d3 D+ A. P 五、问题求解 ... 4
4 l a( U' ]% H: g% |# B# d ! o* ^0 y3 }9 z5 r( J. g# h8 }7 a
5 .1 问题一的求解 ... 4
) p4 c" \, W( u/ M: N1 \; ` . m- l- }. w8 Z9 ]! k
5 .1 .1 区域的覆盖问题 ... 4% D" F$ p3 F( A; G
# k1 r/ {* ?$ X- L/ E; I3 `/ F 5 .1 .2 着色问题 ... 7
; N& V) b8 h6 k! T( O 1 Y; |* h2 ~; c* u; E4 l' o
5 .1 .3 抗毁性讨论 ... 84 V( t" L4 G: r# z4 F' ]) H
3 K: M Z% U+ q7 \3 ^7 k% n% j 5 .2 、问题二的求解 ... 9
1 s, D; R* b7 e% a3 L
6 t- j2 G! S g 5 .3 、问题三的求解 ... 11' e) d3 \& Z Q; r4 \9 e
& d5 ]; M+ ?' G3 R' r& `, Y0 ]' C
5 .3 .1 基于胞腔划分的分簇方式 ... 11
6 o1 O1 |, d# Y7 H
7 F/ c) [+ A- H2 A 5 .3 .2 抗毁性讨论 ... 14
# i! R! O- W- k
) Q/ Z2 v/ h4 _9 ` 5 .3 .3 分簇方法二:基于权值的划分方法 ... 15
1 H( o# b* l* Q" X3 {! R% T & f8 `9 j- N% Q w V. n) n8 \
5 .4 、问题四的求解 ... 166 d) p9 S7 ?$ c! X7 A& q
8 p3 f: n- p3 x, w: l: C7 G- |
5 .4 .1 节点移动过程的仿真 ... 16, V9 `! w8 D$ |/ U% @3 d8 G( m
+ P1 {7 q9 S% J 5 .4 .2 连通强度 ... 16
: n$ e1 C/ m% p8 o3 K3 h- I( [5 M
. \ U2 {- r# e4 u/ R6 K: p 5 .5 、问题五的讨论 ... 18( V w7 F- K/ B. w; ~6 O
% i: y- p0 o7 B$ [+ N) ]0 |
六、模型评价 ... 21
7 V7 f; r* ]$ j' ]& v3 j7 k
. @% @+ v; f) K% k U- L 七、参考文献 ... 21
- b% @; M. i6 H! R D, W' U C 3 G7 S( F n8 S# W0 R$ C
5 q+ D# |* p# r7 v5 f0 j
$ S8 ?; Y% Y, I2 [1 W9 _ 一、问题重述 ' @: p/ G: Y1 d9 o. h
: E3 K" l, p+ X4 d2 b" T. f( }, P
2 q& D) m2 W# M% C
问题一:用若干个半径为 100 的圆完全覆盖一个边长 1000 的 正方形区域,在相邻两个圆的公共面积分别不小于一个圆面积的 5% 和 18% 情况下,求圆的最小个数和信道分配方案;并讨论网络的抗毁性。 / [) }' E5 s4 G3 x
问题二:设正方形区域中有一椭圆形湖泊,节点仅能设置在地面上,研究使全部圆半径之和为最小的区域分划和信道分配方案。 9 t7 K- R$ D/ h' x5 m o% w+ E' ?1 s
问题三:将节点分簇,以完全覆盖某一簇内所有节点、且半径不大于 100 的圆作为一个一跳覆盖区。在满足相邻一跳覆盖区的公共面积不小于大圆面积的 5% 和网络连通等条件下,研究使全部一跳覆盖区半径之和为最小的一跳覆盖区划分和信道分配方案。找出区域连通的充分、必要条件。并讨论网络的抗毁性。 % P6 C9 F. G& R
问题四:假设前 10 个节点作随机折线运动,其他节点不移动。节点到达正方形区域边界后只可能向区域内运动。讨论一定时间后 Ad Hoc 网络的连通性。
# L3 M6 { N" Q. A; _ 问题五:考虑 Ad Hoc 网络的节能的要求。请按照问题三中给出的办法(无湖的情况),找到比较节能的区域分划方式,使出现第一个退出网络的节点的时间尽量长。通过对该网络的运行状况进行分析,提出对组网方式的改进意见。 : c) F0 A0 u P# ~9 k" Z8 F6 ~% _
问题六: 假设 Ad Hoc 网络中通信实行先到先服务,对 Ad Hoc 网络的通信质量进行定量评价。 2 i2 d6 @7 Z- ?- Q$ m
二、问题分析
E: \5 g, a5 F- O/ ?8 i, ]% D
H F7 T8 Y+ E- F9 z+ I2 B7 J- { 问题一:
7 e- S! v+ R. \& x, J5 |$ v; R 由于正方形区域具有对称性,若用一系列的圆覆盖该区域,那么这些圆的排列应该是规则的,圆心的排列自然也按照某种规则的方式排列,如正三角形、正方形、正六边形等。因此我们只需要根据问题要求对圆心的排列方式进行研究即可。
7 E, @ X/ I* q4 | 给每个圆分配一个信道,使相邻圆拥有不同的信道,本质上是一个着色问题,利用图论的有关知识可以解决。 . q3 F2 i1 |6 T" k3 Y, e
对网络抗毁性的讨论实际上是对图的连通性的检验,可以把网络转化为图结构,根据图的邻接矩阵的性质来判断图的连通性。
7 R# t$ Z O4 j0 j( C( O# n 问题二: : L5 j' ?# y9 n% {6 M
正方形区域中有一椭圆形湖泊,相当于区域中有一个内边界。考虑到问题一中的排列方式是一种较优的结果,可以在区域内沿用问题一的排列方式,只在边界(包括内、外边界)附近进行局部调整。 9 J1 q. Q0 B$ C; p* m: I4 D- O
问题三:
# J0 J: x! v1 z$ N" Y: V3 |" U7 u e 与第一问相比,该问题有以下几点不同: 9 a) w5 H W+ @/ K- | b# R
1 .要求用一些圆覆盖所有的点而不是整个区域; / ?$ h, ]* {& ?7 H* E$ g" G
2 .圆的半径可变; 9 }. K7 x# C! }0 D+ u$ i
3 .所求目标是圆的半径之和最小而不是圆的个数最少。
* @, L* A8 o L, } 这时圆的排列不再具有规则性,各圆的半径也不相同,可以先按照一定的原则将所有的节点分成一些小区域(簇),然后对各区域用尽量小的圆覆盖。
& _: n6 O' q1 X6 i- f 对网络抗毁性的讨论可以使用借鉴问题一判断连通性的的方法。
2 J c: B ?3 f$ |1 v7 W, \ 问题四: - n7 y) C8 S6 K2 ]
节点在做随机游动以后将处于一个新的位置,新位置可以用仿真的方法得到。同样用上面的方法来判断网络的连通性。为了进一步分析此网络的连通性能,可以另外建立一个指标——连通度,再用仿真的方法研究节点的随机移动对网络的连通度的影响。
# B: ?6 ~3 p6 s2 Z! n0 \ 问题五:
9 z1 |5 s7 \ [3 y; g1 y5 x* ~( u5 A 考虑电池能耗的情形,需要我们对区域进行较优的划分,使得第一个因电池能量耗尽而退出网络的节点的时间尽量晚 。各个节点的地位应该都是均等的,可以设想最佳的划分区域一定是半径相等或近似相等的圆,并且每个节点的最大通讯半径也应该相同,边界的区域和节点的半径可以不同。 将电池能量 转化为节点待机状态下的工作时间来描述,可以考虑每隔一段时间后 电池的剩余能量,以电池能量消耗至0所用时间最大为目标,建立规划模型求出合适的圆半径,再 在第三问的方法的基础上, 提出合适的指标作为权值,结合算出的半径进行 聚类分区 。
2 X) j: p: U/ M! p* | |# b7 y 三、基本假设
0 X* W/ X w7 k9 n5 q; K2 g, z
1 e) k7 t5 L5 l s 1 .假设相切的两个圆不是相邻的圆,即它们可以分配相同的信道;
4 f/ r! L8 ?( q7 ~( ?, @" z 2 .三、四、五问中,两个圆的相交区域没有节点时,其相交面积大小没有要求;
0 c6 E- M* E$ t7 h, c 3 、假设网络具有好的分布式算法(信道接入、路由等)来协调节点间的通信。
9 i$ b3 O1 H, i7 ~ 四、符号说明 # c6 s2 p; Q" J& P0 @$ F) F
" G% ~3 x" _6 n' U3 [4 l& o% b 问题一: d -- 圆心之间的距离 5 [6 Q8 v( ^( H# q9 U" g. u1 k
R -- 圆的半径 1 y- C5 l+ b, i. d$ C5 V: X6 H7 s
S -- 两个圆的公共面积 / r8 W; @5 v* g2 l$ b/ R* V
-- 邻接矩阵 ' P* f- Y8 R/ l
问题三: -- 节点集合 , ^5 C% o1 p2 B/ r# W
-- 圆心集合
/ H0 q( g8 s7 V$ \ -- 第 i 个胞腔 ! W- j/ V3 C% c4 w* J8 c2 d& Z
问题四: -- 连通强度 & c, L$ q- z) R6 o. w
问题五: W(ai ) -- 节点 ai 的权值 ' @: Q$ ]% B: W9 K9 o g: I- W1 ?
' K7 g: F$ M! O2 _4 Z E (ai ) -- 节点 ai 在一段时间通讯后电池的剩余的能量 : t! r& @9 C/ m# O0 k
r -- 节点在每段时间内平均转发的次数 , J) ?2 D+ D5 S1 h6 i
( W& T2 r6 U" V( Q- ^
En -- 节点在第 n 段时间后电池剩余的能量
( C; i9 _9 j9 c+ V) ]3 ]5 A 五、问题求解
$ {' ~, u0 h0 U6 y5 }1 _
5 l# H2 p; h# e2 d: t 5 .1 问题一的求解 5 .1.1 区域的覆盖问题 根据问题的分析,应该考虑规则的排列方式。首先考虑圆心按等边三角形排列,以三个圆为例,当相邻圆的圆心距离不同时,有如下三种情况(图 1 ):
7 s1 ]3 q2 U- z7 g' b: o: B) y a
* q* W: s* o9 [# U( h p% f
+ t6 ~: e3 O0 x. ~* l& T) B; t
b
" p/ i/ N8 P4 g( I; h4 V
1 J1 [ f5 y+ O& y1 J3 b
c
: ^2 L, @+ ~" g 1 ~4 ^1 W& F; }, _# i, e
! ~6 _8 ?$ m) u" z7 X. e: x
如果不考虑相邻圆的公共面积的要求,显然要使得覆盖方形区域用的圆数最少,最优的选择是 c (三个圆相交于同一点)。因为 a 2 ?$ h9 _( J$ Y$ y# F
结构中间有空隙,要覆盖方形区域,还需要在中间补一个圆,导致圆的个数增加; b
6 G! o2 m; T% M9 ^ 中三个圆有相交区域,显然比 c " f: L# q8 s7 _
结构的覆盖面积小。
6 ]9 |3 l1 x, y' v 但此题中两个相邻圆的公共面积是有一定要求的,不能简单的选用最后一种方式。因此首先计算情况 c
3 S! F/ \7 b) \! ~2 W/ v 的两个圆心距离以及公共面积。 4 F2 {$ ]* D$ C4 Q
设圆心距离为 d
9 I; S3 w' K5 K+ ^6 C, ~! W- E D ,圆的半径为 R
8 s a1 t0 P+ T1 G' L" M' N5 N1 z ,夹角为 a ,公共部分的面积为: S = p - =1811.722, 占圆面积的 5.77% 。这个值的意义是,若两个相邻圆的公共面积与圆面积之比小于 5.77% 时,符合情况 a ,但这种情况并不让人满意。因此我们将这种情况下的圆心都按照 c 来排列;当公共面积大于 5.77% 时,符合情况 b 。 ) }( G/ ]3 m0 l
题中要求公共面积不小于一个圆面积的 5% ,所以我们用 c 结构去覆盖方形。由于正三角形的边长确定,显然只需确定一个圆心就能确定整个正三角形网,因此问题转化为确定一个圆心的位置,使得方形区域内圆的个数最少。也可以认为是需要确定正方形的位置,使它覆盖到的圆的个数最少。需要注意的是,有些圆心并不在正方形内,但圆的一部分落在正方形内,该圆也需要计入总数,这类圆的圆心与正方形边界的距离满足一定的关系,如图 2 所示,实线表示正方形边界,当圆心落在实线与点划线之间时,该圆需要计入。
4 K- n7 r3 `& S! D6 s0 l ……
: ^( _, D/ l% y5 K7 {% D
- A/ ? F9 U% X( b8 s Q' A8 l
R ' f L! }* T; o7 v9 v+ A7 ^/ ?; c
8 ]2 \$ d% w- q5 x5 I
d/ 2
; c2 [$ L- V) a6 m; a 0 t$ x8 s- k( `/ m# l
3 O# W3 Z4 x6 Y! \. }# B
综上,算法的步骤如下: " ?) E! ?' {3 s& Q' f7 }
1) 以一个圆的圆心为原点,计算周围足够多个圆的圆心位置; 4 H: C, }8 q# Z& t, c6 ]
2) 设正方形中心坐标为 ,其变化范围是: # V; _4 a7 Z% p+ p7 @
且 (中心坐标在一个圆内进行搜索); ' \3 u6 p3 o. q7 ]( @, \ z
0 I, L: D; \# j n
; S. O6 a! H5 ]+ N' v
3)统计 , 范围内圆心的个数,即覆盖正方形所需的圆的个数。
+ Z/ _' @" ~/ |% L3 L 4 )对正方形中心坐标进行遍历搜索,并记录其所覆盖的圆的个数,其中最小值对应的 就是正方形的中心。
9 N4 f7 N4 G" V: T( F( X8 L 5 )坐标平移:将原点移到正方形左下的顶点,计算每个圆心的坐标。
$ E t$ w8 U5 ~4 X1 Y" y1 l 经计算,覆盖正方形区域最少需要 45 个圆,他们的位置关系如图 3 。
; D- a$ y" Y; F% F 图3 公共 面积比例不低于5% 时的覆盖方法和信道划分
当公共面积比率不低于 18% 时,显然是情况 b 。先计算圆心之间的距离 ,然后,通过搜索得到最少圆的个数是 64 ,位置关系如图 4 。
% \# Y* ?' J/ _6 c 图4 公共 面积比率不低于18% 时的覆盖方法和信道划分
同样,也可以考虑圆心按四边形结构排列,根据圆心之间距离的不同,也有三种情况(图 5 ),显然, f ( a0 q3 }# A' l: D" w C3 s: `
是一种边界状态。它的公共面积为: S = 2( p - ) ,占圆面积的 18.17 %。 1 }0 ~, K! N/ @" y. }
f
* g# L1 ~1 {5 P+ ~1 j; S: J
/ l8 T+ R, p! h, R# i' X
d * c7 P% O8 Y: f0 c& X) X$ |) J
7 r5 y/ H2 w2 q% L
e
8 d' l$ A" A: m5 S0 F: d/ J
`- Y/ C2 E8 \
当公共面积仅要求大于圆的面积的 5 %时,不会采用四边形排列,因为这个比例与 18.17 %相差较远。当要求公共部分面积大于 18 %时,与 18.17 %比较接近,因此用 f
) G* g$ N! e3 I; g5 I 排列方式来覆盖圆,具体的实现步骤与三角形排列相同,经计算,至少也需要 64 个圆。
, V) g9 s, X6 a- n8 }/ Y 然而我们发现,此时边界圆处于正方形外面的部分较大,并没有充分利用,将 f 旋转 45 度,得到一种新的排列方式(图 6 ),经计算,这种方式只需要 61 个圆(图 7 )。 + E0 _7 g) z `# r9 H
2 J0 @( k$ O8 `8 V
图6 旋转后的排列方式
& m- @2 |+ d4 q/ Y8 ~, C- M
! M; L" Q% O9 T6 \. l) D6 h8 s; C 图 7公共面积比例为18%时四边形排列圆的覆盖方法 & S# H" V& B% U1 L
5 .1.2 着色问题 构造图 G(V,E) , V 是覆盖方形区域的圆的圆心构成的顶点集, eij Î E 当且仅当圆 i 和 j 相交。给每个圆分配一个信道,使得有公共部分的圆拥有不同的信道,实际上是对图 G(V,E) 的顶点进行染色使相邻的两点颜色不同。根据图论知识已知以下定理:
$ q! K* N1 W0 l, {4 B: B4 d* Z 定理 1. 一个简单图是 1 可着色的当且仅当它是空图。 & N5 E9 G# o3 G9 b
定理 2. 一个简单图是 2 可着色的当且仅当它是偶图。 * B: ?" c/ G" X8 E0 n5 A
当圆心按照三角形排列时,图 G(V,E) 是正三角形网的一部分,顶点的最大次数为 6 ,它既不是空图也不是偶图,而六个相邻的正三角形构成的图是 3 色图, G(V,E) 正是这样的图的扩展,所以 G(V,E) 是 3 可着色的,即只需分配 3 个不同信道即可。着色方案标注在图 3 和图 4 中。
' K9 B" a8 A$ U 当圆心按照四边形排列时,图 G(V,E) 是正四边形网的一部分时, G(V,E) 是一个偶图,所以它是 2 可着色的,从而只需分配 2 个信道。着色方案见图 7 。 4 y$ j+ Q& i/ k' Q
5 .1.3 抗毁性讨论 此问的关键问题是判断图的连通性,即判断是否任意两点之间都有通路。设方形区域内有 N 个节点,以这 N 个节点为顶点构造图 G(V,E) , eij Î E 当且仅当节点 i 和 j 在同一圆内。设其邻接矩阵为 ,其中 ) F* l1 C1 a4 @
令 ,表示矩阵 的 次方幂, ,我们可以得到图 G(V,E) 的连通性的充要条件:
3 P5 Y) O3 } w- ~6 q 定理 3. 图 G(V,E) 不连通当且仅当矩阵 中存在元素 , . ( X1 L/ s) c, {/ M* S
证明: 我们先来证明这样一个结论: 中 ,当且仅当 i 经过 m 跳不能够到达 j . ( , )
5 x a! V! {0 E5 N$ f: } 时: 2 B0 v* |' v8 b/ [
由 的定义可知, 当且仅当 i * m4 o9 r( }" B4 h
经过一跳不可以到达 j
" X" Q0 p* c0 V0 \" H7 m6 l, ` ;
P1 Q: ~7 q: J 时: : S' I" T0 f& |
表示 i 经过两跳可以到达 j # C% H3 S: [' N, y/ e e% X
(中间经过 1 个节点 k ),如果 ,则对任意的 k
9 F3 {5 N" s" X% V: M7 X) O* } , 都为 0 ,即 i
* X' _$ {3 `& Z4 Z 经过两跳不能到达 j
* w, [3 @9 K7 M/ b; F% N ; ! U4 F8 ]( G9 D- x0 D
假设 时成立: 2 z2 a/ o$ W+ o0 e
当且仅当 i 经过 n 3 x9 s) t4 W2 S
跳不能到达 j 8 K ?1 Y& F; c4 ~ Z0 _+ Y, B
;
$ S5 w5 h4 W Y- G& S 时:
& z. q% c# d% o; C 则 当且仅当对所有的 k = 1, 2 , , N 有 。若 , 由归纳假设知 i 经过 n , C4 X7 g; [( P
跳不可以到达 k 点,所以 i 不可能经过 n 8 Z+ J( {6 J3 ?$ B
跳到达 k 再一跳到 j . 若 ,则 ,即 i 能经过 n % Q H& k; M: O* {* U$ \4 Q
跳到达 k ,但 k 不能一跳到 j . 所以 i 经过 n + 1 跳不可能到达 j. $ l8 c- ~$ g4 r% ]% ?6 c) g- P- h
因为 , 即 ,当且仅当 ,其意义是 i
6 B! a1 @% A( ~& R# ^ z# c 经过 1 跳不能到达 j , i % {( g: F. c# R7 M1 @0 P
经过 2 跳不能到达 j ,……, i
( K, m- M8 W/ N# R/ Y 经过 跳不能到达 j , 而图 G(V,E) 中有路的任意两点的路长不超过 ,所以 i " V, m. Z: v. w! V* g
和 j 之间不存在通路,即图 G(V,E) 不是连通的,定理得证。 " M7 k7 v' f7 [, \
根据这一原则,随机去掉一定比例的节点后,考察网络的连通性。公共面积比例 f 分别为 5% 和 18% 时,求得在 2% 、 5% 、 10% 、 15% 时网络不连通的概率如图 8 所示。 - t& V9 K3 _% [; l8 _( O3 u
图8 公共面积比例分别为5%和18%时网络的不连通
5 .2、问题二的求解 首先给出一个定理:
0 b6 U" H1 `1 F' z+ q 定理 4 :在不考虑边界的前提下,如果存在两组大小不同的按照情况 c
( j% [9 ^/ I# @1 o4 }6 q. i 排列的圆,当两组圆的半径和相等时,大圆的覆盖面积大于小圆的覆盖面积。 . I3 U7 n8 S" J8 y5 M7 H7 ?- P
证明:如图 9 所示的排列方式,一个圆覆盖的有效面积等于它的内接正六边形的面积。 ; k7 ?9 v1 X# x1 Q5 A
设两组圆的半径分别为 、 ,则其内接正六边形的边长分别为 、 ,因此每个六边形的面积分别为: 6 H, c X4 |" n# q
设每组圆的个数分别为 、 ,每组圆覆盖的有效面积分别为 、 ,则
- W" w% F1 D/ `* ? 当 时,
* v- n, r) m T. @& M' t- c 因此当 时, ,即大圆的覆盖面积大于小圆的覆盖面积。
' e6 ^( t' O, F 这说明,为了使半径和最小,在区域内部,应该用尽量大的圆去覆盖。
6 h! I- d8 n4 Y0 C! j' q 因此,当正方形区域内有一个湖时,只需要对边界(包括湖的边界)的圆进行调整,而内部的排列方式不必改变。调整的基本原则是保证公共面积的比例要求下,调整圆心和半径,使圆的半径尽量小。 4 S* w- z7 w( \
先考虑内边界,即湖的边界。首先对圆心的位置在可行解的范围内进行微调,使得椭圆边界经过尽可能多的圆的交点,这样做的目的是尽量减少需要调整的圆的个数。调整后,由椭圆与圆的位置关系可以看出,受到影响较大的有三个圆,其中一个圆的绝大部分都在椭圆内,如果去掉该圆,会有一个较小的区域不能被覆盖,如果要覆盖,需要在该处加入一个半径为 75 的圆,但该小区域的面积很小,在工程应用中,我们认为这样的小区域不被覆盖是允许的,因此可以不再加入圆。对另外两个圆,通过在一定的范围内,对圆心和半径进行搜索,检查是否可以减小半径,结果显示,这两个圆的半径并不能减小。
& l& f2 o! k' K( K' M 再考虑外边界,即正方形边界。通过观察圆的排列可以发现,左右边界上都有可能进行调整的圆,对这些边界圆的圆心、半径进行搜索发现:左边有三个圆的半径可以减小,最小值是 82 。 4 {+ w5 ]& ?3 ?
图 10 显示了边界调整后的结果,全部圆的半径之和为 4346 。 # s" P1 B+ J U4 u5 Z& N; E% |
/ j$ f4 f7 d$ [" P( d9 G8 \- v7 I + B' [1 [% `: o
调整后的结果对信道分配并没有影响,该图仍是一个 3 可着色的,即需分配 3 个不同信道,不同的是不必给被去掉的圆分配信道,其他圆的信道与问题一中的信道相同。
8 @: k2 H% y5 x# z) W' r 5 .3、问题三的求解 5 .3.1 基于胞腔划分的分簇方式 矢量量化中胞腔的相关理论:
& L- U) n9 P& _ 设样本矢量集合 , 是样本个数, 是一个矢量, 是再生矢量(码本)集合, 是码本的个数, 是与 同维的矢量。 6 m; f& d+ {8 a9 d8 L: n
对样本矢量集合进行分割: / Z0 a# H2 r1 Y2 s
, , $ d3 c' z1 i+ Q, [" M6 c
就称为胞腔, 表示将 划分到第 i 2 e5 f3 D3 o1 m* J8 }- c5 J- a
个胞腔所引起的失真,可以用均方误差等来度量。因此矢量量化就是找到一组码本和胞腔的划分,使平均失真最小。 8 d r2 _/ o' c. `1 Q
针对本问题,将节点看成样本矢量,圆心的集合作为码本集合,每一个胞腔中的节点就组成一簇,并用距离来衡量失真,则这样的划分可以使得平均距离最小,相应的圆的半径也较小。
* e1 C6 i7 B+ n' C 在具体实现时,使用现有的 LBG 算法,它的算法流程如图 11 。 5 W) ~2 e; b# _( O- K3 I! t
G, {( y+ J' e
' i5 L8 k- C/ c& w* ^$ f
划分胞腔,计算平均失真 D 0 4 e; N- ?) \3 z3 _$ [% T. P
2 x- Y4 |2 W/ b% O5 @5 m0 H
- x$ n* F6 [ g3 ~
* g3 i5 a+ I; B: z5 _$ M
重新划分胞腔,计算平均失真 Dm
* ?" Y9 p, y: @( m0 C3 q6 c : J+ N" l4 L& k2 I! x" h- z
' [7 X) b. T: S3 _! F
+ [7 V+ s; {2 j4 e$ A: N7 q' W
# K% ?* w2 S* u5 B6 u) `+ V( z9 }
: o) i+ f- U. X4 o C. m, f
k =k +1
' k1 C" h+ m: y# D! v/ n8 v0 Q
3 O# Y; u9 }+ h; s" s1 S
! j9 x' S$ D& i
在计算时,具体问题的处理如下:
4 ~& u4 D( z; L2 g- r 1 .码本个数的选择:通过观察已给的数据点看出他们是比较均匀的分布在整个正方形内,因此覆盖这些点与覆盖这个区域所用的圆的个数应该相差不多,因此可以预先 设定码本个数的范围是 40 到 50 之间;
9 m1 Y7 F: v Z, a$ P 2 .初始码本的生成:通常有随机产生法和分裂法,随机产生法是在正方形区域内随机产生 m 个点作为初始码本;分裂法是先计算整个区域的概率中心 ,将 乘以一个常数值 ,将 和 作为码本,重新划分胞腔,计算最佳码本,完成一次分裂,下一次分裂之前要判断每个胞腔中节点和码本距离的最大值,如果大于 100 ,继续分裂,否则不分裂,依次类推,直到完成分裂。后者不需要事先设定码本的个数,但计算复杂,所以这里采用随机产生法;
/ y" I( A! l6 ?7 A6 t1 m 3 .划分胞腔的依据:
2 P. Y; P/ [- j2 S 4 .平均失真的计算:
' R1 R& H* `, _+ s) [+ z& ]8 K, _$ V 5 .第 n & F" c) f& A7 ^0 t3 [" m
次码本的产生:第 n
% M( s0 ]$ ?. @( t8 _, L 次循环的第 j
. b" J! }, w* ^& @ D; T 个码本是由第 次循环得到的第 j
2 p2 E0 l# m7 b 个胞腔内的所有点的概率中心求得;
2 Z. M2 y/ h0 J- z* M5 L. h 6 .结束条件的判断:当前后两次计算的平均失真的相对变化 小于门限 时,结束运算。
1 k1 Z$ t1 Y2 ]. m3 d 经过以上的计算得到了 m " w4 j( B& B5 X L4 N
个码本,即圆心的位置,以该胞腔内的点与码本的最大距离为半径画圆,如果最大距离大于 90 ,取半径为 90 ,取 90 的目的是为后面的调整留有余地,这样就得到了一种覆盖方式。但由于限制了半径的最大值,可能导致部分节点不能被覆盖,另外,这种方式仅仅考虑了半径的因素,对区域是否连通,相邻圆的公共面积是否达到 5 %并没有加以限制,因此结果可能并不是可行解。为了综合考虑这几个条件的限制因素,定义一个评价指标,用来衡量结果的优劣。该指标要综合反映点的覆盖情况、公共面积的比例要求这三个因素,令
- N, N0 x u% F( i. M# z [ M 其中 表示没有被覆盖的点的个数, 表示公共面积不满足 5 %的要求的个数(题中“满足有转发任务的相邻一跳覆盖区的公共面积不小于较大一跳覆盖区面积的 5% ”,我们认为,如果两个相邻一跳覆盖区的公共部分没有交点,对该公共面积也不作要求)。
# Y9 Y5 \6 O7 b6 g/ [ 在不同的码本个数下,反复执行 LBG 算法 n 次,并分别用指标 h 进行评价。在所有结果中,若存在 的方案,选择其中半径和最小的一个的作为最终的结果;如果不存在 的方案,则选择指标 最小的方案,然后对不符合要求的圆的圆心进行局部范围内的遍历搜索,并辅助扩大圆半径的方式得到一个可行解。 8 S& p0 m' E( A* q* k( U
区域划分好之后,构造 ,其中 是将每个圆看成一个点所形成的顶点集, eij Î E 当且仅当圆 i 和 j 相交,参考文献 [1] 中图的顶点染色算法容易求得 的染色方案,即相应的信道分配方案。 ! ^8 Q1 D" c, {
图 12 为最终确定的区域划分的结果以及信道分配方案,此时半径和为 4247 ,每个圆的圆心及半径见附录。 % H) \* t# j; v' O
5 .3.2 抗毁性讨论 在问题一中,我们建立了所有节点之间的连接矩阵,通过矩阵运算判断网络的连通性,但在此问中,共有 926 个节点,如果也采用类似的方法,计算量是很大的,因此必须对节点进行预处理。 " n8 r: U! e" z( i. \
建立一个新图 ,其中 是将每个圆看成一个点所形成的顶点集, eij Î E 当且仅当圆 i 和 j 相交且公共部分有节点,显然,图 的连通性与网络的连通性是等价的。这是因为如果 中两点 、 之间有通路,则意味着圆 i 和 j 中所有点之间都有通路,因此当 中任意两点都有通路(连通)时,任意两圆中的所有节点都有通路,即网络是连通的。 7 C, Q; @) g1 p/ O' M6 Q7 }
设邻接矩阵 ,其中 . \4 m/ }+ T, y4 [. m* _
不仅能反映两个圆是否有公共节点,也反映了公共节点的个数。同 5.1.3 中的讨论,当且仅当矩阵 中, , ,都有 时,网络是连通的。 # b2 K N: R8 T9 s( O& C; n9 n
为研究网络的抗毁性,随机去掉一定比例的节点,重新构造矩阵 D
& z2 D$ C; w C8 G ,检验网络的连通性,得到网络性能如图 13 。
7 @7 n% O8 F/ a3 Y& M+ w% I6 j; f 图13 在 2% 、 5% 、 10% 、 15% 毁坏概率下 网络的不连通的概率
5 .3.3 分簇方法二:基于权值的划分方法 我们对节点用圆进行分区覆盖,使得圆半径和最小,这样的圆的圆心节点周围应该较密,所以我们提出一种能反映这种性质的指标作为节点优先作为圆心的权值,我们以距某节点 ui 的距离不大于某一定值(如 100 )的节点数目作为该节点的权值,称为它的度 d (ui ) 。 区域划分的步骤如下:
6 T" O1 }0 E3 a% I+ i: O4 r Step1: 输入节点集 及每个节点的坐标; - T. c2 \" e- _) D: @1 h" R" ~
Step2: 计算每个节点 的度 d (ui ) ,并排序 , 是某个节点 ,记录与 距离小于 100 (可以调节)的节点集 , .
1 y) K: }4 T! } Step3: 比较 与 , , 找到最小的正整数 l ,使得 ,把 作为初步聚类,把 作为圆心 . 5 |9 j& J/ z ]7 E$ l3 q) N
Step4: 设与圆心 对应的半径为 ,以半径和最小为目标,利用类似方法一中的算法搜索合适的半径。
. q( V% y$ \; n( P; T 利用此种方法聚类出来的圆心数固定,只须搜索半径即可。按方法一中的方法容易分析网络的连通性和抗毁性。 9 N; j( w: D6 X- Z6 T
5 .4、问题四的求解 5 .4.1 节点移动过程的仿真 为了研究节点移动后网络的连通性,首先要研究节点的运动,根据题中要求,前 10 个用户只作折线运动,每 30 个单位时间可能改变一次运动的方向和速度,运动的方向角、速度是分别服从在 [0 , 2 p ] 、 [0 , 2] 上均匀分布的随机变量,其他节点不移动。节点到达正方形区域边界后只可能向区域内运动。 " Y) G8 J* T# e# x- u# C5 k
据此对节点的运动进行仿真,随机选择运动方向和速度,图 14 是 10 个点的运动轨迹,图 15 是其中一个节点运动轨迹的放大图。
u4 U5 H. M$ d" h4 N6 b5 F" }* u 5 .4.2 连通强度 前 10 个节点可以移动,相当于改变了 10 个节点的位置,在第三问中已经解决了网络连通性的判断问题,因此只需要重新构造连接矩阵,就能判断节点移动后网络是否连通。
$ [; \- ?+ ]: ]9 p z# X5 N 图14 10个节点的运动轨迹
9 c5 I% K6 W! L0 n4 P* o% V $ L! x9 a5 O8 F% h5 P7 |
图15 . y& x# g1 F c& t+ `7 q
其中一个节点的运动轨迹的放大
$ s \, j( y4 R% O0 d* t+ u. z 由于总节点的个数是 926 , 10 个节点仅占总结点数的 1.08 %,如果是去掉这 10 个节点,网络连通的概率与上一问中随机去掉 1.08 %的节点后网络连通的概率应该相差不多,但这里并不是去除点,而是将这些点重新放置,因此连通的概率要大于上一问中随机去掉 1.08 %的节点后网络连通的概率,可见,这时是网络的性能是比较好的,大多情况都能保持连通。为了进一步分析连通的性能,在网络连通的前提下,给出了连通强度的概念。 . {' y+ i+ L! ]* C% \# d6 S
文献 [3] 中,连通强度的定义是: 2 R! J# L- u) W
其中, E 是网络中存在的链路数, 网络全连通时的链路数,即任意两个节点之间都有一条边。 - H& K3 f' K; c4 W/ k9 H) O2 F7 b
在本题的网络模型中,我们注意到,处于圆内部和相邻圆公共部分的节点,对网络连通性的贡献是不同,处于公共部分的节点越多,网络的连通性越好,因此定义: - T( K$ H8 G+ u- b$ h
其中, 是节点总数, 表示处于公共部分的节点总数,显然,连通强度越大,网络的抗毁性越好。与文献中的定义方式相比,它的优点是:突出了公共部分的点对连通性的重要性;统计点的个数比边的个数算法更简单、更易实现。
9 I0 N: g; S& h" z 根据连接矩阵的定义, 的值就是处于圆 i
1 ^. e( k" A% ` l 、 j 的公共区域的节点的个数,那么矩阵中所有元素值之和的一半就是处于公共区域的节点数。 5 ]) M4 Y3 h1 ~9 W+ C$ j, j
对 10 个节点的运动多次仿真,在网络连通时,计算连通强度,得到 200 组仿真结果,将连通强度绘于图 16 (节点未移动时,连通强度为 0.1031 )。 8 c0 B8 q1 }& w; N( H; K5 v
从图中可以看出,当节点随机移动时,网络的连通强度在 0.1031 附近上下浮动,最大可达 0.1059 ,最小为 0.102 。可见,节点的移动虽未引起网络是否连通的改变,但也影响了网络的抗毁性,例如,如果原节点 处于两圆的公共部分,当它移动到某个圆的内部时,虽然网络仍然是连通的,但其抗毁性是有所降低的,由此也可以看出,节点原来所处的位置对连通强度的变化是有影响的,如果 10 个节点大部分位于公共区域,那么移动后网络的抗毁性的总趋势是下降的。 . u; n2 s/ {) u- v4 Y$ w% E
5 .5、问题五的讨论 本问要求在第三问的基础上,不考虑节点 的移动,确定给定节点的较节能的区域划分,即考虑电池在发射、接收和备用等状态下的能量损耗,进行合适的区域划分使得第一个因电池能量耗尽退出网络的节点的时间尽量晚。从附件1给出的数 据看这些节点分布较均匀,而目标是使第一个退出的节点时间晚,所以各个节点的地位都是均等的,可以设想最佳的划分区域一定是半径相同的圆,并且每个节点电池的最大通讯半径也应该相同,边界的区域和节点可以不同。 根据本题要求, 按照第三问的方法对 这些节点进行分簇必须提出一个合理的划分指标,既要使节点的寿命更长又不能划分的区域太多,我们提出以节点度数和电池的能量剩余的加权和作为节点的权值。定义节点 ai 的权值为: 6 s: q+ p6 }4 u8 z# C! o# @
6 V7 x z% R/ G5 d
W(ai ) = w 1 d (ai ) + w 2 E (ai ).
$ Z' R( R5 M4 y# N1 q (1)
其中 w 1 : \1 c2 {: Z7 B v2 ]
+ w 2 = 1 , d (ai ) 表示与 ai 的距离不超过某一定值(如 100 )的节点个数,反映的是点 ai 周围节点的稠密程度; E (ai ) 表示与 ai 在一段时间通讯后电池的剩余的能量,它能够反映该节点在网络中的寿命长短。 w 1 和 w 2 分别是 节点度数和电池的能量剩余的权重,可根据实际需要设定。本问以考虑节能为主,所以 w 2 要比 w 1 大些。
* h( S# u5 H. A 设电池的最大通讯半径为 R , 划分区域的圆的半径为 r , 考虑到同一区域的两点可以直接通讯不需中转,所以 R ³ 2r , 由于发射功率近似地与最大传输距离的三次方成正比,电池在覆盖半径为 100 发送状态下的工作总时间是 400 个时间单位,根据电池总能量相等容易计算电池在覆盖半径为 R 时发送状态下的工作总时间,并转化为待机备用状态下的工作总时间
2 `9 h6 N/ C3 T
9 R1 C7 R- \& ?# }7 ?% B6 L0 w .. j2 G6 p' o) K9 k2 s( L
(2)
我们将电池的能量都转化为待机工作时间来描述,最佳的分区一定是使得在一段通讯时间内每个节点进行的发射、接收和转发的任务量分别几乎相同。 因为每个节点在 1200 个时间单位内平均产生 25 次呼出, 通讯是随机的,所以 同样应该有 25 次接受,我们以每48个时间单位作为一个研究的时 间段,平均每一段每个节点都有一次 呼出、一次接受和一些转发任务,用 En 表示某一节点在第 n 段时间后电池能量的剩余,
! K) I2 |! O, i6 v $ p) q, r/ N! L8 a' {! }' H
En=En-1 - (4 ´ 11 + 4 ´ 10 + 40 + 44 r ), 0 Z* @2 @ c4 g. y$ L
1 £ n £ 25.6 M$ J; d( w9 F/ m
(3)
其中 r 表示节点在每段时间内平均转发的次数。再利用 (2) 式可得到,
7 h) f* k& r- ]' Y6 c: r1 W# n$ { 2 i% M4 z6 W+ u" h' U
En= - (124 + 44 r ) n .3 z2 P/ m2 L/ Z) g, U! q( ]0 N7 v% W
- a# u1 d2 Y5 C' I0 ]7 t (4)
令 En= 0 ,则
% N, O- u l5 y* G [9 u4 y 要节点退出的时间晚即要使得 En= 0 时的 n 值尽量大。
: U2 Y! M7 @8 s8 z S : Q6 P2 E% g6 G# n* v" Y$ U3 p
4 x6 s B" r/ I6 A" X Q8 d
A1
5 s. ]+ V" L9 U! e, j) ] % ~) p; J+ O7 @6 n0 x
A2
* Q4 i5 K- C2 m, |' i+ t
9 j @' w5 Y# z) ^1 o
B1
/ p W: {/ G1 d# h* o l / @) T8 j! N) `6 d
B2 Ï
3 H, A+ M/ `7 w* i# o; B 4 z4 B2 C$ c$ W& b' x- _0 g
区域 I 6 J) o* m& f s! R* O) N N6 _( f- Z5 I
9 t: K; ~3 E6 W; R# E
区域 II % }% n8 T+ B& u% Y3 [1 t
3 J, g3 ~& T7 Z3 g8 a/ n% K' r
C
4 N# ~3 y n4 E# a5 h" B! B* T/ I8 A
: M7 J' ~0 b$ q' V/ X" h* i
% f: P0 `9 g0 w- H# d, `. J
下面我们来讨论 r 的计算,令 0 j3 |5 R4 A! i/ |$ O
# }4 I7 `" i$ E+ K( E% ? z
d=
! f# d/ Z' n+ m& J$ z- y6 D max{ d (ai ) , ai 跑遍所有节点 }
# t& K$ {1 K& ^1 `, E$ @ 9 j/ R2 Y$ f5 E+ P$ E0 B
(6)
用 d 近似表示区域内节点的个数,如图所示区域 I 和区域 II 的半径为 r ,均包含 d 个节点,设相交区的节点数为 h , 将每个圆相交区外的节点粗略地分成两类 A = { 节点到 S 的距离接近 } , B = { 节点到 S 的距离接近 } ,其中 l 是圆心到 S 的距离, 他们的个数分别约为 和 ;记 表示在一段时间内 中节点到 中节点通讯的次数,类似地定义 . 则
& ^1 o0 e" b$ f1 {- |% }4 M 则 S 的转发次数: . z2 p5 U6 Y# z/ Q K' Y4 t1 \
记角∠ SA2C = a , 则 1 n) j5 p$ c" W
于是可以建立规划模型:
- v0 V- l% Z9 } 我们可以限定 R 为 2r ,求解此规划,设使得目标最小的 r 和 a 值为 , 。 取 (6) 式中 d = d (ai ) ,类似计算 r i 4 ~* E, K& }/ O M& E* @
= + + + ,进而计算
. q* E4 W( g; N E (ai )=E 0 - (124 + 44 r i ), : f! {: I, a3 f# k6 D
W(ai ) = w 1 d (ai ) + w 2 E (ai )
* l8 e. ]1 k" ~5 u6 s8 q$ G 最后以权值 W(ai ) 为指标,按照第三问中提出的方法对节点进行分 簇 ,确定圆心。区域圆的半径为 ,圆心与覆盖区两端连线成的角为 ,覆盖区面积占原面积的百分比为:
. F7 r3 c# T# c9 c( u: O 网络的改进建议
6 m( k _* T1 T0 y8 w& S/ D/ J 该网络中个节点的地位近乎相等,呼叫点到目的点的通讯存在多条路径,当网络规模扩大时路由维护的能量开销指数增加,且消耗有限的带宽,我们可以在区域圆相交的区域内选取一节点作为簇头,使得簇头与同簇内节点通讯用一个频率,簇头之间的通讯用另一频率,且对簇头可进一步分簇,确定更高级的簇头,构成分级结构,低级网络的频率可低些,通讯范围在区域内,高级网络频率可高些,通讯范围大些,这样将节点划分级别,不再一律平等,这样整体的能耗将会减少。
; ]) a9 Y8 E3 V" \ 六、模型评价
; \" p2 t0 y5 Q ; x3 R; t o4 P" k
本文分析解决了 Ad Hoc 网络的几个有关问题,主要的优点有:
3 u3 Y( U1 C$ I1 C1 Z8 m9 N6 F 1 .从简单的对称排列入手,较好的解决了区域的覆盖问题。
% I& E/ u+ x( ^% H/ r6 v' s3 } 2 .讨论网络的抗毁性时,建立连接矩阵,并给出了网络连通的充要条件,通过矩阵运算判断连通性,避免了求最小生成树等复杂的算法。 % z* v) r/ C- C" A6 p
3 .基于节点的个数定义了连通强度,更进一步的分析了网络的连通性能。
7 i8 s, y+ q4 P, f' l% o* H 存在的问题是: 5 c1 m ^5 S3 u) e3 P
1 .对问题二、三的求解时,给出了一种我们认为较好的方法,但对该方法的分析、以及解的可行性没有进行深入的研究; ; k, b; d9 x; S4 w3 }
2 .由于时间原因,第五问仅给出了思路,并未实现,第六问未考虑。
zan