IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【网络覆盖优化】基于matlab的网络覆盖遗传优化问题仿真 -> 正文阅读

[数据结构与算法]【网络覆盖优化】基于matlab的网络覆盖遗传优化问题仿真

建立如下的目标函数:

表示的是每一代中被选择在工作状态的节点数目。

C'为对应的这些节点的覆盖范围。A为每个节点对应的覆盖范围。

基于这个目标函数,我们进行仿真,获得如下的仿真结果:

clc;
clear;
close all;
warning off;
addpath 'func\GA_toolbox\'
addpath 'func\'
RandStream.setDefaultStream(RandStream('mt19937ar','seed',1));
 
%目标区域大小
W       = 10;
H       = 10;
%网格划分
G       = 20;
%节点数目
NN      = 200;
[X,Y,R] = func_initial(W,H,NN);
axis([0,W,0,H]);


%根据遗传算法进行参数的拟合
MAXGEN = 60;
NIND   = 200;
Chrom  = crtbp(NIND,NN*10);
%14个变量的区间
Areas  = [zeros(1,NN);
          ones(1,NN)];

FieldD = [rep([10],[1,NN]);Areas;rep([0;0;0;0],[1,NN])];


ON_OFF  = zeros(NIND,NN);
ON_OFFs = zeros(MAXGEN,NN);  
NUMS    = zeros(MAXGEN,1);
fgl     = zeros(MAXGEN,1);
gen = 0;
for a=1:1:NIND 
    %所有节点均打开,作为其初始状态
    ON_OFF(a,:) = 1;      
    %计算对应的目标值
    [f,C1]      = func_obj(ON_OFF(a,:),X,Y,R,W,H,G);
    J(a,1)      = 1/f;
end

Objv  = (J+eps);
gen   = 0; 

while gen < MAXGEN;   
      gen
      FitnV=ranking(Objv);    
      Selch=select('sus',Chrom,FitnV);    
      Selch=recombin('xovsp', Selch,0.99);   
      Selch=mut(Selch,0.01);   
      phen1=bs2rv(Selch,FieldD);   
      for a=1:1:NIND  
          if  gen == 1
              ON_OFF(a,:) = 1;  
          else
              ON_OFF(a,:) = (phen1(a,:)>=0.5);  
          end
          %计算对应的目标值
          [f,C1] = func_obj(ON_OFF(a,:),X,Y,R,W,H,G);
          JJ(a,1) = 1/f;
          
      end 
      Objvsel      =(JJ+eps);    
      [Chrom,Objv] = reins(Chrom,Selch,1,1,Objv,Objvsel);   
      gen          = gen+1; 

      %保存参数收敛过程和误差收敛过程以及函数值拟合结论
      for ii = 1:NIND
          [f,C1]     = func_obj(ON_OFF(:,ii),X,Y,R,W,H,G);
          flgs(ii)   = C1;
      end
      flgs2 = sort(flgs);
      for ii = 1:NN
          ON_OFFs(gen,ii) = mean(ON_OFF(:,ii))>=0.2;
      end  
      
      Error(gen) = mean(JJ);
      NUMS(gen)  = sum(ON_OFFs(gen,:));
      fgl(gen)   = mean(flgs2(3:end-2));
end 

figure(1);
plot([2:5:60],NUMS(2:5:gen),'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);
xlabel('进化次数');
ylabel('采用的传感器节点数目');
grid on;

figure(2);
plot([2:5:60],fgl(2:5:gen),'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);
xlabel('进化次数');
ylabel('节点的有效覆盖率%');
grid on;

A12-16

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-04 07:30:14  更:2022-05-04 07:30:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:34:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码