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


     🍒🍒🍒欢迎关注🌈🌈🌈

    📝个人主页:我爱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.

  • 相关阅读:
    3D目标检测进展综述(论文笔记)
    springboot学习四:springboot链接mysql数据库
    课程:信任沟通的六个核心技巧
    腾讯云MySQL数据库有哪些优势?应用于哪些场景?
    Spring Security(6)
    二叉树遍历
    2023年【起重信号司索工(建筑特殊工种)】考试总结及起重信号司索工(建筑特殊工种)模拟考试题
    Talk|加州大学洛杉矶分校鲁盼:基于大型语言模型的多模态数学推理
    android dex 优化
    【探索SpringCloud】服务发现-Nacos服务端数据结构和模型
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/128145250