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

2023-11-25 23:04

本文主要是介绍基于遗传优化的多属性判决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 > fwff1(i) = 1;T1_5g = T1_5g + 1;elsef1(i) = 0; T1_wf = T1_wf + 1;endif abs(f5g-fwf) < 1STOP_TIME=STOP_TIME-1;elseSTOP_TIME=STOP_TIME+1;  endSTOP_TIME=min(STOP_TIME,36);STOP_TIME=max(STOP_TIME,4);%驻留时间%驻留时间if i > STOP_TIMEC1(i) = mean(f1(i-STOP_TIME+1:i)); C2    = mean(C1(i-STOP_TIME+1:i)); f0(i) =(sign(C2-0.49)+1)/2;elseC1(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 < 1is_opt = 0; elseis_opt = 1;  endelse%存在远大于的情况,则认为是只检测一个网络if RSS_5G   >= Beta*RSS_WIFI%5G远大于WIFI  f1(i) = 1;RSS   = RSS_5G;T1_5g = T1_5g + 1;endif RSS_WIFI >= Beta*RSS_5G%WIFI远大于5Gf1(i) = 0; RSS   = RSS_WIFI;T1_wf = T1_wf + 1;end  %驻留时间%驻留时间if i > STOP_TIMEC1(i) = mean(f1(i-STOP_TIME+1:i)); C2    = mean(C1(i-STOP_TIME+1:i)); f0(i) =(sign(C2-0.49)+1)/2;elseC1(i) = mean(f1(1:i));  C2    = mean(C1(1:i));f0(i) =(sign(C2-0.49)+1)/2;endend   end%门限更新Tt(i) = 0.5*RSS;if i == 1T = Tt(i)elseT = alpha*Tt(i) + (1-alpha)*Tt(i-1);%门限做二次平滑 end%统计切换次数if i > 3if abs(f0(i)-f0(i-1))>0.1count = count + 1;endCNT(i)=count;end 
end%Over i = 1:Nfigure;
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

这篇关于基于遗传优化的多属性判决5G-Wifi网络切换算法matlab仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424768

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五