遥测遥感网部分解答.docx
《遥测遥感网部分解答.docx》由会员分享,可在线阅读,更多相关《遥测遥感网部分解答.docx(14页珍藏版)》请在冰豆网上搜索。
![遥测遥感网部分解答.docx](https://file1.bdocx.com/fileroot1/2023-1/3/2838c9d0-e485-4591-b974-71a7ae8515d1/2838c9d0-e485-4591-b974-71a7ae8515d11.gif)
遥测遥感网部分解答
遥测遥感网(部分解答)
大气污染所引起的地球气候异常,导致大面积严重森林大火的频频发生,给人民的生命财产造成巨大损失。
因此,不少国家政府都在研究有效的森林防火措施。
在容易出现高森林火险的重点地区放置高科技的监视装置,建立遥测遥感网,使人们能准确而及时地掌握险情的发展情况,为有效地防止火灾发生或在酿成严重灾害之前将其扑灭创造条件。
科技的迅速发展使人们可以制造不太昂贵且具有收发报通讯功能的监视装置。
放置在同一监视区域内的这种监视装置(以下简称为装置)构成一个AdHoc无线网络,即通常所说的遥测遥感网。
如果监视区域的每一点都处于放置在该区域内某个装置的监视范围内,则称这些装置能覆盖该监视区域。
研究能确保有效(即按一定概率)覆盖且数量最少的装置系统的随机放置问题显然具有重要意义。
第一个问题涉及能覆盖给定监视区域的装置数目及分配问题,具体如下:
A1设监视区域为边长b=100(长度单位)的正方形,每个装置的监视半径均为r=10(长度单位)。
请参考蜂窝网格的特性讨论覆盖该区域所需装置的最少数量。
根据文献(凡志刚,郭文生,桑楠,一种基于蜂窝网格的传感器节点部署算法,传感器与微系统,2008年,(27)4:
15-17.)结论,传感器节点覆盖圆盘与其邻居节点覆盖圆盘的交点构成正六边形蜂窝时,有效覆盖面积最大。
建立直角坐标系,设监视区域为边长b=100(长度单位)的正方形,每个装置的监视半径(即正六边形的边长)均为r=10(长度单位),如上图,设
表示第m层沿x轴正方向的第n个正六边形。
当m为奇数时,
的中心坐标为
,n取不小于
(这里
)的最小正整数
(这里取n=6)。
当m为偶数时,
的中心坐标为
,如果
(这里
),则
(这里取n=7),否则,
。
经分析,第m层所能覆盖的最远距离为
,由
确定层数m取不小于
(这里
)的最小正整数
(这里取m=7)。
再结合上图可知,覆盖该区域所需装置的最少数量为45(=4层偶数层×6+3层奇数层×7)。
利用matlab可以画出图像,代码如下:
%%%%a1.
closeall;
b=100;%正方形边长
r=10;%圆的半径
Ar=linspace(0,pi*2,200);%圆周角度
cengshu=ceil(2*b/(3*r)+1/3);%层数
zx=[];zy=[];
form=1:
cengshu
ifmod(m,2)==1%表明为奇数层
forn=1:
ceil(b/(sqrt(3)*r))
zx=[zx,sqrt(3)*r/2+sqrt(3)*r*(n-1)];
zy=[zy,r/2+3*r*(m-1)/2];
end
else%表明为偶数层
ifb>ceil(b/(sqrt(3)*r))*sqrt(3)*r-sqrt(3)*r/2
forn=1:
ceil(b/(sqrt(3)*r))+1
zx=[zx,0+sqrt(3)*r*(n-1)];
zy=[zy,2*r+3*r*(m/2-1)];
end
else
forn=1:
ceil(b/(sqrt(3)*r))
zx=[zx,0+sqrt(3)*r*(n-1)];
zy=[zy,2*r+3*r*(m/2-1)];
end
end
end
end
axis([0,b,0,b]);
axissquare;
%plot(zx,zy,'*')
holdon
forj=1:
length(zx)
x=zx(j);y=zy(j);
%fill(x+r*cos(Ar),y+r*sin(Ar),'g');%填充圆
plot(x+r*cos(Ar),y+r*sin(Ar),'-','LineWidth',2);%画圆
plot(x,y,'o','MarkerSize',10,'MarkerFaceColor','k');%画圆心
end
holdoff
A2在设计遥测遥感网时,首先需要知道对给定监视区域在一定的覆盖保证下应放置装置的最佳(越少越佳)数量,并且常假设装置在监视区域内是均匀地随机放置的。
请在上述假设下建立数学模型,利用随机模拟实验回答:
对于A1中给定的监视区域及监视半径,至少需要随机放置多少个装置,才能使得成功覆盖整个区域的概率在95%以上?
并给出一个均匀随机放置装置的分布图。
采用随机模拟,对装置个数依次取311~396个,可以看到成功覆盖整个区域的概率都小于95%,最大83%,因此,取间距更大(每隔10)的个数400~590进行试验,得结果表如下,表明大约至少需要540个装置,才能使得成功覆盖整个区域的概率在95%以上。
编号
1
2
3
4
5
6
7
8
9
10
个数
311
312
313
314
315
316
317
318
319
320
成功率
41
39
40
37
56
48
41
41
55
44
编号
11
12
13
14
15
16
17
18
19
20
个数
321
322
323
324
325
326
327
328
329
330
成功率
50
53
51
49
46
53
49
46
53
45
编号
21
22
23
24
25
26
27
28
29
30
个数
331
332
333
334
335
336
337
338
339
340
成功率
57
46
51
47
54
57
52
54
53
57
编号
31
32
33
34
35
36
37
38
39
40
个数
341
342
343
344
345
346
347
348
349
350
成功率
60
58
58
52
53
46
54
55
63
62
编号
41
42
43
44
45
46
47
48
49
50
个数
351
352
353
354
355
356
357
358
359
360
成功率
61
62
59
64
64
61
53
66
59
61
编号
51
52
53
54
55
56
57
58
59
60
个数
361
362
363
364
365
366
367
368
369
370
成功率
65
74
56
62
65
60
60
68
68
71
编号
61
62
63
64
65
66
67
68
69
70
个数
371
372
373
374
375
376
377
378
379
380
成功率
72
71
66
69
64
64
68
80
66
66
编号
71
72
73
74
75
76
77
78
79
80
个数
381
382
383
384
385
386
387
388
389
390
成功率
75
72
64
76
72
76
83
68
76
69
编号
81
82
83
84
85
86
87
88
89
90
个数
391
392
393
394
395
396
400
410
420
430
成功率
72
71
76
83
80
79
75
82
93
83
编号
91
92
93
94
95
96
97
98
99
100
个数
440
450
460
470
480
490
500
510
520
530
成功率
85
86
83
85
88
94
88
91
92
93
编号
101
102
103
104
105
106
107
108
109
110
个数
540
550
560
570
580
590
成功率
95
94
96
95
97
95
试验代码如下:
clc;clear;
Maxs=100;%模拟次数
L=100;%正方形区域边长
R=10;%圆半径
[m,n]=meshgrid(1:
L);
N0=[400:
10:
600];%N=346;%统计圆的数目
fork=1:
length(N0)
N=N0(k);
ss=0;
fori=1:
Maxs
M=zeros(L);%覆盖状态
scale=0;%覆盖面积比例
x=L*rand(1,N);%随机位置坐标
y=L*rand(1,N);%随机位置坐标
forj=1:
N
D=sqrt((m-x(j)).^2+(n-y(j)).^2);%计算坐标点到圆心的距离
[m0,n0]=find(D<=R);%检测出圆覆盖点的坐标
Ind=sub2ind([L,L],m0,n0);%坐标与索引转化
M(Ind)=1;%改变覆盖状态
scale=sum(M(1:
end))/L/L;%计算覆盖比例
end
ifscale>=1;%检测是否满足覆盖比例
ss=ss+1;%结束循环
end
end
fenbu(k)=ss;%存储满足条件的装置个数
end
result=[N0(1:
length(fenbu));fenbu];
A3对一般矩形以及多边形的监视区域进一步探讨以上问题。
由于监视旱情的遥测遥感网地处边远地区,它的每个(除极少数例外)装置都只能以电池为能源,电池用尽装置即报废。
因此,如何节省电池能耗是设计此类网络运行方案的头等大事。
常用的一个很有效的节能措施是:
让大多数装置“休眠”只保留尽可能少的装置“值班”。
对同时选出的这些值班装置的全体,必须要求它们整体具有与遥测遥感网的每个装置都能联系的功能,从而保证当任何休眠装置定时“苏醒”后若发现“险情”,都能及时向值班者之一传递险情信息。
遥测遥感网的若干装置组成的子集S称为一个支配集,如果该遥测遥感网中不属于S的任一装置必位于S中某个装置的通讯范围之内(即二者可互相交换信息)。
不言而喻,上述同时“值班”的装置的集合必须要求是该遥测遥感网络的一个支配集。
从实际应用的角度来说,这种支配集的优劣以其包含的装置个数来衡量(越少越优)。
此外,如果把考虑的遥测遥感网视为一个无向图(每个装置是它的顶点,二顶点相邻接当且仅当二点间的距离小于公共的通讯半径R)。
支配集按图论意义是连通者更为可取,因为通过仅在支配集内部传递信息的手段可以让它的每个装置共享任一装置所得到的信息,这样的支配集自然称为连通支配集。
第二个问题涉及求元素尽可能少的支配集和连通支配集的问题,具体如下:
B1设监视区域为边长b=100(长度单位)的正方形,每个装置的通讯半径均为R=10(长度单位)。
已知在该监视区域内放置了120个装置,它们位置的横、纵坐标依次是:
x=57,95,34,31,52,30,15,75,75,65,55,41,36,72,16,85,86,75,32,5,16,25,72,68,61,37,48,81,23,35,6,85,64,22,69,80,76,88,25,62,70,45,35,75,35,56,27,92,25,44,5,17,90,25,58,95,87,68,30,9,32,47,50,56,56,47,80,10,12,63,39,81,43,17,80,45,92,78,89,51,40,65,76,30,26,28,25,29,40,4,74,41,39,95,72,79,78,10,8,15,45,70,90,84,20,40,55,5,73,22,17,50,55,87,72,55,7,85,35,10.
y=58,74,12,68,67,4,75,52,30,28,63,61,20,24,10,49,90,90,20,92,35,66,4,33,35,78,46,31,90,66,33,9,37,13,43,83,13,94,95,45,70,42,9,41,91,30,92,90,58,52,80,33,5,74,47,2,72,88,28,9,95,71,43,43,25,25,64,96,33,70,9,89,14,25,55,61,40,22,45,51,90,49,7,98,34,99,8,63,83,11,44,25,21,51,76,8,44,80,89,95,90,82,78,78,70,71,70,95,18,28,80,10,20,22,98,79,2,20,50,68.
请建立数学模型找出一个较好的支配集;画出该120个装置的分配图,并在此图上标出所找到的支配集。
解答:
1、画图
2、建模
设
表示第
个装置属于支配集,否则,
,
。
建立如下优化模型。
其中
表示第
个装置的坐标。
目标就是使得支配集的元素个数最少,约束条件是:
第
个点要么是支配点,此时
,要么不是支配点,即
,则必需与支配点(
)相连。
3、贪婪算法(参见文献:
廖飞雄,马良,禁忌遗传算法求解最小支配集,计算机工程与应用,2007,(24)43,81-84.)
如果把考虑的遥测遥感网视为一个无向图(每个装置是它的顶点,二顶点相邻接当且仅当二点间的距离小于公共的通讯半径R),将图的顶点记为
,其对应的度数(即邻接顶点数)记为
。
贪婪算法可描述为:
Step1将V中的顶点按顶点度数从大到小逆序排列成点集V’,并全部顶点设置为未标号;
Step2取V’中第一个顶点,若该点已经标号,并在V’删除该点,转至步骤3;否则,将该点标号为1,并将与之相关联且未标号的顶点标号为0,在V’删除该点;
Step3若V’为空,转至步骤4;否则,转至步骤2;
Step4取标号为1的顶点作为支配点,把这些点组成的点集为最小支配集。
逆序启发式算法求出的结果是图的一个极小支配集。
利用matlab编程求得的极小支配集共有36个装置,他们依次是第3,78,10,35,47,64,99,4,18,50,52,93,107,7,17,32,81,8,15,16,23,57,59,1,26,41,42,49,90,113,31,56,67,77,94,112个装置,相应的坐标为
X=34.0,78.0,65.0,69.0,27.0,56.0,8.0,31.0,75.0,44.0,17.0,39.0,55.0,15.0,86.0,85.0,40.0,75.0,16.0,85.0,72.0,87.0,30.0,57.0,37.0,70.0,45.0,25.0,4.0,55.0,6.0,95.0,80.0,92.0,95.0,50.0;
Y=12.0,22.0,28.0,43.0,92.0,43.0,89.0,68.0,90.0,52.0,33.0,21.0,70.0,75.0,90.0,9.0,90.0,52.0,10.0,49.0,4.0,72.0,28.0,58.0,78.0,70.0,42.0,58.0,11.0,20.0,33.0,2.0,64.0,40.0,51.0,10.0;
他们的覆盖图形如下
他的代码如下:
%%b1
x=[57,95,34,31,52,30,15,75,75,65,55,41,36,72,16,85,86,75,32,5,16,25,72,68,61,37,48,81,23,35,6,85,64,22,69,80,76,88,25,62,70,45,35,75,35,56,27,92,25,44,5,17,90,25,58,95,87,68,30,9,32,47,50,56,56,47,80,10,12,63,39,81,43,17,80,45,92,78,89,51,40,65,76,30,26,28,25,29,40,4,74,41,39,95,72,79,78,10,8,15,45,70,90,84,20,40,55,5,73,22,17,50,55,87,72,55,7,85,35,10];
y=[58,74,12,68,67,4,75,52,30,28,63,61,20,24,10,49,90,90,20,92,35,66,4,33,35,78,46,31,90,66,33,9,37,13,43,83,13,94,95,45,70,42,9,41,91,30,92,90,58,52,80,33,5,74,47,2,72,88,28,9,95,71,43,43,25,25,64,96,33,70,9,89,14,25,55,61,40,22,45,51,90,49,7,98,34,99,8,63,83,11,44,25,21,51,76,8,44,80,89,95,90,82,78,78,70,71,70,95,18,28,80,10,20,22,98,79,2,20,50,68];
%plot(x,y,'*')
%%%%%%%%%%%55555贪婪算法
r=10;%通讯半径
b=100;%正方形边长
fori=1:
length(x)
A(i,:
)=(x(i)-x).^2+(y(i)-y).^2A(i,i)=0;
dushu(i)=sum(A(i,:
));%计算第i个节点的度数
end
yuanxu=[1:
length(x)];%原始顺序
[~,iv]=sort(dushu,'descend');%按度数从大到小排序
s=[];%支配集
while~isempty(iv)
s=[s,iv
(1)];%支配集
liandian=yuanxu(A(iv
(1),:
)==1);%与支配点相连的点
iv
(1)=[];%删除已经是支配集的点
fori=1:
length(liandian)
iv(iv==liandian(i))=[];%删除与支配点相连的点
end
end
closeall;
Ar=linspace(0,pi*2,200);%圆周角度
axis([0,b,0,b]);
axissquare;
holdon
forj=1:
length(s)
zx=x(s(j));zy=y(s(j));%支配点的坐标
%fill(x+r*cos(Ar),y+r*sin(Ar),'g');%填充圆
plot(zx+r*cos(Ar),zy+r*sin(Ar),'-','LineWidth',2);%画圆
plot(zx,zy,'o','MarkerSize',10,'MarkerFaceColor','k');%画圆心
end
plot(x,y,'*')%画所有装置点
holdoff
4、遗传算法(参见文献:
廖飞雄,马良,禁忌遗传算法求解最小支配集,计算机工程与应用,2007,(24)43,81-84.)
一个支配集解对应为
,S是一个由0,1组成的序列,图的最小支配集问题转化为一个无约束规划模型
在式中n为顶点规模,C(S)表示S序列对应的非支配点,且不与支配点相关联的顶点集,|C(S)|表示C(S)中顶点的个数。
采用遗传算法,模拟T=5000代,群体规模N=80,交叉概率取pm=0.05,变异概率pc=0.8,得到的最小支配集数目为:
34
他们依次是第101112131518222931353743474853576370757879909899101102103106107110112113119120个装置。
他们的坐标是:
x=65554136167525236697635279290875063807889410845709040552250553510
y=286361201090669033431399290572437055224511808990827871702810205068
图形如下
Matlab代码为:
clc;clearall;
%初始化参数
%A表示是否相连的0-1矩阵
L=120;%=length(x);%装置个数
yuanxu=[1:
L];%原始顺序
x=[57,95,34,31,52,30,15,75,75,65,55,41,36,72,16,85,86,75,32,5,16,25,72,68,61,37,48,81,23,35,6,85,64,22,69,80,76,88,25,62,70,45,35,75,35,56,27,92,25,44,5,17,90,25,58,95,87,68,30,9,32,47,50,56,56,47,80,10,12,63,39,81,43,17,80,45,92,78,89,51,40,65,76,30,26,28,25,29,40,4,74,41,39,95,72,79,78,10,8,15,45,70,90,84,20,40,55,5,73,22,17,50,55,87,72,55,7,85,35,10];
y=[58,74,12,68,67,4,75,52,30,28,63,61,20,24,10,49,90,90,20,92,35,66,4,33,35,78,46,31,90,66,33,9,37,13,43,83,13,94,95,45,70,42,9,41,91,30,92,90,58,52,80,33,5,74,47,2,72,88,28,9,95,71,43,43,25,25,64,96,33,70,9,89,14,25,55,61,40,22,45,51,90,49,7,98,34,99,8,63,83,11,44,25,21,51,76,8,44,80,89,95,90,82,78,78,70,71,70,95,18,28,80,10,20,22,98,79,2,20,50,68];
r=10;%通讯半径
b=100;%正方形边长
fori=1:
length(x)
A(i,:
)=(x(i)-x).^2+(y(i)-y).^2A(i,i)=0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
T=5000;%仿真代数
N=80;%群体规模
pm=0.05;pc=0.8;%交叉变异概率
bval=round(rand(N,L));%初始种群
bestv=-inf;%最优适应度初值
%迭代开始
forii=1:
T
%计算适应度
fori=1:
N
S=bval(i,:
);%取出一个0-1序列
CS=sum(all(A(yuanxu(1-S=