基于遗传优化的多属性判决5G-Wifi网络切换算法matlab仿真

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

MATLAB2022a

3.部分核心程序

..........................................................................
%接收功率、网络覆盖范围、速率、费用价格
%P5g,D5g,S5g,L5g,C5g
C=[1,	3,  5, 7, 9;
   1/3, 1,  3, 5, 7; 
   1/5,	1/3,1, 3, 5;
   1/7,	1/5, 1/3, 1,	3;
   1/9,	1/7, 1/5, 1/3,	1];
          %获得收益函数
          %获得收益函数
          f5g = (Rs(1,1)^w1)*(Rs(1,2)^w2)*(Rs(1,3)^w3)*(Rs(1,4)^w4)*(Rs(1,5)^w5) + TQOS_5g;
          fwf = (Rs(2,1)^w1)*(Rs(2,2)^w2)*(Rs(2,3)^w3)*(Rs(2,4)^w4)*(Rs(2,5)^w5) + TQOS_wf;
          %进行判决
          %进行判决
          if f5g > fwf
             f1(i) = 1;
             T1_5g = T1_5g + 1;
          else
             f1(i) = 0; 
             T1_wf = T1_wf + 1;
          end
          if abs(f5g-fwf) < 1
             STOP_TIME=STOP_TIME-1;
          else
             STOP_TIME=STOP_TIME+1;  
          end
          STOP_TIME=min(STOP_TIME,36);
          STOP_TIME=max(STOP_TIME,4);
          %驻留时间
          %驻留时间
          if i > STOP_TIME
             C1(i) = mean(f1(i-STOP_TIME+1:i)); 
             C2    = mean(C1(i-STOP_TIME+1:i)); 
             f0(i) =(sign(C2-0.49)+1)/2;
          else
             C1(i) = mean(f1(1:i));  
             C2    = mean(C1(1:i));
             f0(i) =(sign(C2-0.49)+1)/2;
          end
          %计算收益值变化值,如果变换较大,则反馈更新权值,否则权值不变
          %计算收益值变化值,如果变换较大,则反馈更新权值,否则权值不变
          ERR = abs(fwf-f5g);
          if ERR < 1
             is_opt = 0; 
          else
             is_opt = 1;  
          end
       else
           %存在远大于的情况,则认为是只检测一个网络
           if RSS_5G   >= Beta*RSS_WIFI%5G远大于WIFI  
              f1(i) = 1;
              RSS   = RSS_5G;
              T1_5g = T1_5g + 1;
           end
           if RSS_WIFI >= Beta*RSS_5G%WIFI远大于5G
              f1(i) = 0; 
              RSS   = RSS_WIFI;
              T1_wf = T1_wf + 1;
           end  
           %驻留时间
           %驻留时间
           if i > STOP_TIME
              C1(i) = mean(f1(i-STOP_TIME+1:i)); 
              C2    = mean(C1(i-STOP_TIME+1:i)); 
              f0(i) =(sign(C2-0.49)+1)/2;
           else
              C1(i) = mean(f1(1:i));  
              C2    = mean(C1(1:i));
              f0(i) =(sign(C2-0.49)+1)/2;
           end
       end   
    end
    
    %门限更新
    Tt(i) = 0.5*RSS;
    if i == 1
       T = Tt(i)
    else
       T = alpha*Tt(i) + (1-alpha)*Tt(i-1);%门限做二次平滑 
    end
    %统计切换次数
    if i > 3
        if abs(f0(i)-f0(i-1))>0.1
           count = count + 1;
        end
        CNT(i)=count;
    end 
end%Over i = 1:N

 

figure;
plot(f0,'b','Linewidth',2);
hold on;
plot(1:N,0.5*ones(1,N),'r','Linewidth',2);
grid on;
xlabel('Times');
ylabel('判决门限');
axis([0,N,-0.2,1.2]);
text(N/4,1.1,'接入5G')
text(3*N/4,0.1,'接入WIFI')
title('本课题算法');

figure;
plot(1:N,CNT,'r','Linewidth',2);
grid on;
xlabel('Times');
ylabel('切换次数');
title('本课题算法');
save R1.mat f0 N CNT
01_089m

4.算法理论概述

        整个网络由一个5G基站,一个WIFI基站,以及一个移动终端设备构成。移动终端设备首先位于有5G网络环境,随后运动进入5G/WIFI的异构融合网络,进行网络的切换判决,最后移出该融合网络,再次进入5G网络覆盖范围。

       本文提出了一种基于遗传优化的多属性判决5G-Wifi网络切换算法,该算法通过结合遗传算法和多属性决策理论,实现了对网络切换过程的优化和加速。具体来说,我们首先使用遗传算法对网络切换过程中的参数进行优化,然后使用多属性决策方法对网络的多个属性进行综合评估,以得到最优的网络切换决策。

       我们首先定义网络切换的问题模型。设网络的属性集合为A={a1, a2, ..., an},其中每个属性ai表示网络的某个特性,如带宽、延迟、信号强度等。设网络集合为N={n1, n2, ..., nm},其中每个网络nj表示一个可用的网络。我们的目标是在给定的时刻t,找到一个最优的网络n*∈N,使得网络切换后的综合性能最佳。为了量化网络的综合性能,我们引入一个多属性判决函数F,该函数将网络的多个属性映射到一个实数空间:

F: A→R (1)

        其中R表示实数集。这个函数可以根据不同的应用场景和需求,采用不同的形式和权重。例如,可以采用加权平均法、TOPSIS法等方法来构建。

      算法的基本步骤如下:

第一:进行RSS的计算;

第二:根据反馈门限和RSS进行网络的识别,区分存在一个网络和两个网络;

第三:在存在两个网络的情况下进行AHP分层,获得多属性参数;

第四:初始化计算多属性参数的加权值;

第五:使用改进后的遗传算法,对加权值进行优化;

第六:设计一种结合用户QOS的网络收益函数,用来判断是否切换;

第七:门限的调整,驻留时间的调整

其中,遗传算法的适应度函数如下:

我们对五个属性参数进行简单的介绍:

网络覆盖范围R:网络覆盖范围定义为设备和网络基站之间的间隔。

信号强度P:即RSS值。

网络的使用费用C:使用费用值为不同的单位流量的费用。

服务速率S:即不同的网络的速率。

传输延迟D:即不同的网络的延迟

5.算法完整程序工程

OOOOO

OOO

O

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/182756.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈 Guava 中的 ImmutableMap.of 方法的坑

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐&…

练习七-在Verilog中使用任务task

在Verilog中使用任务task 1&#xff0c;任务目的2&#xff0c;RTL代码&#xff0c;交换3&#xff0c;测试代码4&#xff0c;波形显示 1&#xff0c;任务目的 &#xff08;1&#xff09;掌握任务在verilog模块设计中的应用&#xff1b; &#xff08;2&#xff09;学会在电平敏感…

新一代网络监控技术——Telemetry

一、Telemetry的背景 传统的网络设备监控方式有SNMP、CLI、Syslog、NetStream、sFlow&#xff0c;其中SNMP为主流的监控数据方式。而随着网络系统规模的扩大&#xff0c;网络设备数量的增多&#xff0c;网络结构的复杂&#xff0c;相应监控要求也不断提升&#xff0c;如今这些…

CUDA学习笔记9——CUDA 共享内存 / Shared Memory

由于共享内存拥有仅次于寄存器的读写速度&#xff0c;比全局内存快得多。因此&#xff0c;能够用共享内存访问替换全局内存访问的场景都可以考虑做对应的优化。 不利用共享内存的矩阵乘法 不利用共享内存的矩阵乘法的直接实现。每个线程读取A的一行和B的一列&#xff0c;并计…

CVE-2022-0543(Redis 沙盒逃逸漏洞)

简介 CVE-2022-0543是一个与Redis相关的安全漏洞。在Redis中&#xff0c;用户连接后可以通过eval命令执行Lua脚本&#xff0c;但在沙箱环境中脚本无法执行命令或读取文件。然而&#xff0c;攻击者可以利用Lua沙箱中遗留的变量package的loadlib函数来加载动态链接库liblua5.1.s…

jenkins 参数构建

应用保存 [rootjenkins-node1 .ssh]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved i…

利用GUI实现渲染二维码效果

以下是一个简单的 Java 验证码实现示例&#xff1a; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.util.Random;import javax.imageio.ImageIO;public class CaptchaGenerator {public static …

C++基础(4)——类与对象(默认成员函数)

目录 1.拷贝构造函数&#xff1a; 1.1 为什么要引入拷贝构造&#xff1a; 1.2 拷贝构造函数的定义及特性&#xff1a; 1.3 什么类可以不用编写拷贝构造&#xff1a; 2. 赋值运算符重载&#xff1a; 2.1 为社么要引入运算符重载&#xff1a; 2.2运算符重载的定义以及特性…

轻松管理文件名:文件批量重命名的技巧与操作

在日常工作中&#xff0c;文件管理是一项至关重要的任务。其中&#xff0c;文件名的管理更是关键。文件名是在查找文件时最直观的线索。一个好的文件名简短而准确地反映文件的内容或用途。然而&#xff0c;随着时间的推移&#xff0c;可能会发现文件名变得冗长、混乱甚至无法反…

指针变量与指针类型的深入理解

1.知识总结 相关代码展示 #include <stdio.h> int main() {int n 0x11223344;int *pi &n; *pi 0; return 0; } #include <stdio.h> int main() {int n 0x11223344;char *pc (char *)&n;*pc 0;return 0; } #include <stdio.h> int main() {i…

SSM家具个性定制管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 家具个性定制管理系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用…

【jvm】虚拟机之堆

目录 一、堆的核心概述二、堆的内存细分&#xff08;按分代收集理论设计&#xff09;2.1 java7及以前2.2 java8及以后 三、堆内存大小3.1 说明3.2 参数设置3.3 默认大小3.4 手动设置3.5 jps3.6 jstat3.7 OutOfMemory举例 四、年轻代与老年代4.1 说明 五、对象分配过程5.1 说明5…

Jackson无缝替换Fastjson

目录 文章目录 一&#xff0c;Fastjson到Jackson的替换方案方案代码序列化反序列化通过key获取某种类型的值类型替换 二&#xff0c;Springboot工程中序列化的使用场景三&#xff0c;SpringMVC框架中的Http消息转换器1&#xff0c;原理&#xff1a;2&#xff0c;自定义消息转换…

Visio学习笔记

1. 常用素材 1.1 立方体&#xff1a;张量, tensor 操作路径&#xff1a;更多形状 ⇒ 常规 ⇒ 基本形状 自动配色 在选择【填充】后Visio会自动进行配色&#xff1b;

【C/C++】排序算法代码实现

这里&#xff0c;汇总了常见的排序算法具体代码实现。使用C语言编写。 排序算法实现 插入排序冒泡排序选择排序快速排序希尔排序归并排序 插入排序 #include <stdio.h> #include <stdlib.h>void InsertSort(int arr[],int n){int i,j,temp;for(i 1;i < n;i){ …

初识Java 18-3 泛型

目录 边界 通配符 编译器的能力范畴 逆变性 无界通配符 捕获转换 本笔记参考自&#xff1a; 《On Java 中文版》 边界 在泛型中&#xff0c;边界的作用是&#xff1a;在参数类型上增加限制。这么做可以强制执行应用泛型的类型规则&#xff0c;但还有一个更重要的潜在效果…

vue el-table (固定列+滚动列)【横向滚动条】确定滚动条是在列头还是列尾

效果图&#xff1a; 代码实现&#xff1a; html&#xff1a; <script src"//unpkg.com/vue2/dist/vue.js"></script> <script src"//unpkg.com/element-ui2.15.14/lib/index.js"></script> <div id"app" style&quo…

实战JVM高CPU、内存问题分析定位

背景&#xff1a; 业务中台组件MOSC开展压测工作&#xff0c;并发场景下发现CPU使用率达到100%&#xff0c;虽然程序没有报错&#xff0c;但是这种情况显然已经达到性能瓶颈&#xff0c;对服务带来了验证的效能影响&#xff0c;所以针对该CPU问题必须进行详细的根因分析处理。…

浅谈Python中的鸭子类型和猴子补丁

文章目录 前言一、鸭子类型二、猴子补丁关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前言 Python 开发者可能…

AdaBoost提升分类器性能

目录 AdaBoost算法原理 AdaBoost工作详情 初始权重分配 第一轮 第二轮 后续轮次 最终模型 AdaBoost的API解释 AdaBoost 对房价进行预测 AdaBoost 与决策树模型的比较 结论 AdaBoost算法原理 在数据挖掘中&#xff0c;分类算法可以说是核心算法&#xff0c;其中 Ada…