通过求解数学模型来选择编码节点的最佳数量和位置(Matlab代码实现)

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 通过求解数学模型来选择编码节点的最佳数量和位置(Matlab代码实现)

🍁🥬🕒摘要🕒🥬🍁

此代码是数学模型的实现,该模型的开发用于确定某些故障情况下编码节点的最佳数量及其位置。除了降低成本和提高可靠性外,传感器网络最终还具有更高的延迟方面的性能,因为网络编码操作的总数减少;


可以使用不同的网络节点数量,笔者在这里使用 40 节点网络,如下所示:


✨🔎⚡运行结果⚡🔎✨

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

%% Failure constraint
failureIsDest=zeros(length(FailureScenarios)*numberOfNodes,numberOfLinks);
failureIsSrc=zeros(length(FailureScenarios)*numberOfNodes,numberOfLinks);
e=0;
esrc=0;
% Failure sources
for f=1:length(FailureScenarios)
    for k=1:failedLinksInScen(f)
        workingLinks=get_workingLinks_in_failureScen(f,failedLinksInScen,links,FailureScenarios);
        for i=1:numberOfNodes
            for j=1:length(workingLinks)
                bool=isAgateway(workingLinks(j),1,gateways,network);
                if networkF(workingLinks(j),1)==i  && bool==false
                    failureIsSrc(i+e,workingLinks(j)+esrc)=1;
                else
                    failureIsSrc(i+e,workingLinks(j)+esrc)=0;
                end
            end
        end
        e=e+numberOfNodes;
    end
end
%% failure destination
e=0;
edest=0;
for f=1:length(FailureScenarios)
    for k=1:failedLinksInScen(f)
        workingLinks=get_workingLinks_in_failureScen(f,failedLinksInScen,links,FailureScenarios);
        for i=1:numberOfNodes
            for j=1:length(workingLinks)
                bool=isAgateway(workingLinks(j),1,gateways,network);
                if networkF(workingLinks(j),2)==i && bool==false
                    failureIsDest(i+e,workingLinks(j)+edest)=-1;
                else
                    failureIsDest(i+e,workingLinks(j)+edest)=0;
                end
            end
        end
        e=e+numberOfNodes;
    end
end
% adjFailure Matrix
adjFailure=failureIsSrc(:,:)+failureIsDest(:,:);
% store all the sources of failed links in sourcesF matrix
sourcesF=cell(1,numberOfFailScens);
for f=1:numberOfFailScens
    for l=1:failedLinksInScen(f)
        for n=1:numberOfNodes
            for j=1:numberOfLinks
                if networkF(j,1)==n && networkF(j,3)==FailureScenarios{f}(1,l)
                    sourcesF{f}(1,l)=networkF(j,1);  
                end
            end
        end
    end
end
%% Failure scenario:indicate the failed links in each failure scenario
e=0;
fCol=numberOfNodes+1;
fColEnd=fCol-1+numberOfLinks;
gmmaCol=numberOfNodes+numberOfLinks+1;
etaCol=numberOfLinks + numberOfNodes+failure_scen_var_length*numberOfLinks;
GRow=0;
for f=1:numberOfFailScens
    for i=1: failedLinksInScen(f)
        workingLinks=get_workingLinks_in_failureScen(f,failedLinksInScen,links,FailureScenarios);
        for j= 1:numberOfNodes
            Aeq(GRow+j+e,fCol:fColEnd)=adjFailure(j+e,1:numberOfLinks);
            if isSource(j,FailureScenarios{f}(1,i))==1
                sum_lPrime=sum_Working_Links(j,gammaTree,workingLinks,network);
                beq(GRow+j+e)=1-sum_lPrime;
            else
                Aeq(GRow+j+e,etaCol+j+e)=1;
                beq(GRow+j+e)=0;
            end
        end
        fCol=fColEnd+1;
        fColEnd=fColEnd+numberOfLinks;
        e=e+numberOfNodes;
    end
end

📜📢🌈参考文献🌈📢📜

[1]李想想. 面向传感网数据传输的网络编码方案研究[D].哈尔滨工程大学,2012.

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
18天前
|
机器学习/深度学习 算法 新能源
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
|
18天前
|
机器学习/深度学习 存储 并行计算
【无人机】基于MPC的无人机路径规划研究(Matlab代码实现)
【无人机】基于MPC的无人机路径规划研究(Matlab代码实现)
124 6
|
18天前
|
机器学习/深度学习 边缘计算 人工智能
【无人机】采用NOMA的节能多无人机多接入边缘计算(Matlab代码实现)
【无人机】采用NOMA的节能多无人机多接入边缘计算(Matlab代码实现)
|
18天前
|
机器学习/深度学习 传感器 运维
【电机轴承监测】基于matlab声神经网络电机轴承监测研究(Matlab代码实现)
【电机轴承监测】基于matlab声神经网络电机轴承监测研究(Matlab代码实现)
|
18天前
|
数据采集 算法 调度
【电力系统】基于matlab虚拟电厂内部负荷调度优化模型(matlab+yalmip+cplex)(Matlab代码实现)
【电力系统】基于matlab虚拟电厂内部负荷调度优化模型(matlab+yalmip+cplex)(Matlab代码实现)
|
18天前
|
传感器 并行计算 算法
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
|
18天前
|
存储 并行计算 算法
【图像压缩】在 MATLAB 中使用奇异值分解 (SVD) 进行图像压缩(Matlab代码实现)
【图像压缩】在 MATLAB 中使用奇异值分解 (SVD) 进行图像压缩(Matlab代码实现)
145 3
|
18天前
|
机器学习/深度学习 资源调度 算法
【电热数值计算】基于matlab IGBT有限元电热数值计算分析研究(Matlab代码实现)
【电热数值计算】基于matlab IGBT有限元电热数值计算分析研究(Matlab代码实现)
|
18天前
|
机器学习/深度学习 资源调度 算法
考虑实时市场联动的电力零售商鲁棒定价策略(Matlab代码实现)
考虑实时市场联动的电力零售商鲁棒定价策略(Matlab代码实现)
|
18天前
|
存储 算法 安全
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
111 0

热门文章

最新文章