• 选择编码节点的最佳数量和位置研究(Matlab代码实现)


     👨‍🎓个人主页:研学社的博客 

    💥💥💞💞欢迎来到本博客❤️❤️💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

    ⛳️座右铭:行百里者,半于九十。

    📋📋📋本文目录如下:🎁🎁🎁

    目录

    💥1 概述

    📚2 运行结果

    🌈3 Matlab代码实现

    🎉4 参考文献


    💥1 概述

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

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

    📚2 运行结果

    部分代码:

    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

    🌈3 Matlab代码实现

    🎉4 参考文献

    部分理论来源于网络,如有侵权请联系删除。

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

  • 相关阅读:
    【跨境电商】WhatsApp营销保姆级教程!
    【手写数据库toadb】SQL解析器的实现架构,create table/insert 多values语句的解析树生成流程和输出结构分析
    JAVA高级技术入门(单元测试,反射,注解,动态代理)
    node开发MongoDB
    微信小程序项目源码ssm校园二手交易小程序+后台管理系统|前后分离VUE含论文+PPT+源码
    django建站过程(1)
    Ajax学习笔记
    [数据结构-线性表1.1] 数组 (.NET源码学习)
    半马尔科夫决策过程
    【每日一题】设计循环队列(C语言)
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/128149684