2020年认证杯SPSSPRO杯数学建模B题(第一阶段)分布式无线广播全过程文档及程序

2020年认证杯SPSSPRO杯数学建模

B题 分布式无线广播

原题再现:

  以广播的方式来进行无线网通信,必须解决发送互相冲突的问题。无线网的许多基础通信协议都使用了令牌的方法来解决这个问题,在同一个时间段内,只有唯一一个拿到令牌的通信节点才能发送信息,发送完毕后则会将令牌传递给其他节点。但我们考虑这样的一个无线网:每个通信节点都是低功率的发射器,并且在进行着空间上的低速连续运动 (无法预知运动方向及其改变的规律),所以对一个节点而言,只有和它距离在一定范围之内的节点才能收到它的信号,而且节点会 (在未声明的情况下) 相互接近或远离。每个节点需要不定期地、断续地发送信息,但会时刻保持收听信息。发送和收听工作可以同时进行。在这个通信网络中,完全没有网络的基础设施,而且每个节点只需要把自己的信息广播出去,需要此条信息的节点只需要被动收听即可,并不需要点对点地持续交换信息。所有信息只能使用同一个频率发送,一旦有两个或多个节点的广播发生冲突,能同时收听到它们的节点就都能监听到冲突。
  第一阶段问题: 我们假设发送每条信息所占用的时间都是等长的。所有的节点都拥有同样的内置算法,并拥有一个校准过的高精度时钟。请建立合理的数学模型并解决如下问题。
  1. 请构造一个合理的指标来描述网络的整体通信效率。
  2. 在每个节点需要发送信息时,请设计一个方案来选择发送的时间段。如果发送信息时发现存在冲突,如何自动调整重发的时间段,才能使网络的整体通信效率尽可能高? 可能需要分情况 (例如分轻载/重载等不同情形,或其他分法) 来考虑问题。

整体求解过程概述(摘要)

  目前,网络技术得到迅速发展,但在无线网络通信系统的分布式环境下节点之间信息的传输行为较为复杂。因此,对无线网通信效率的研究具有一定的意义。本文针对在给定的无线网环境,提取能够反映网络的整体通信效率的指标,对指标进行定量分析后建立回归模型来描述网络的整体通信效率。
  针对问题一:分析无线网中的环境,由通信节点是低速连续运动,其运动可以看作布朗运动的形式;节点是否接收到信息与通信距离有关;对某节点发送、接收、产生冲突信息的计数采用叠加原理。把无线网通信的节点放在三维空间里面研究,根据动态节点间的距离,对某时段各节点发送信息、接收信息、发生通信冲突进行研究,得到冲突率、时延率、吞吐率和承载率四个指标。分别将四个指标与通信效率进行相关性分析,再通过回归分析,建立通信效率的回归模型。即得到由四个指标生成的线性组合来表示网络的整体通信效率。
  通过仿真模拟,得到多组关于通信效率与冲突率、时延率、吞吐率和承载率的数据,运用线性回归模型的程序求解出回归模型的回归系数,即得到网络的整体通信效率模型。在对模型进行实例验证,进一步说明模型的可行性和准确性。
  针对问题二:当发送信息时发现存在冲突,在相同条件下去研究如何调整重发时间段来使网络通信效率尽可能高。由于网络的承载能力和冲突之间有着显著性的特征,在研究问题二的模型时分轻载和重载进行讨论。以轻载为例,通过建立有通信冲突的最小连通支配集来确定节点通信冲突的点集,通过分离冲突域、建立独立子集来尽可能和减小通信冲突。结合问题一中的通信效率模型,对指标进一步刻画,找到通信效率的最大值,从而解出对应的的时间段,由完成这一过程所需要的的时间与时间段做处理,可得到重发的时间段。即通过相应算法,结合问题一的模型,网络系统可自动调整重发时间段。
  采用 MATLAB软件, 对节点数为 10 的通信网络进行仿真动态模拟,可得到存在冲突时,高通信效率下所对应重发的时间段。
  本文最后,对问题一和问题二建立的模型及求解进行了优缺点分析,以及对模型的展望进行了说明。

问题分析:

  本题主要的工作就是建立一些合理的指标并且找到指标之间的关系建立一个能够描述网络的整体通信效率的模型,为了尽量避免冲突,需设计一个方案来提高网络的整体通信效率。
  问题一的分析
  需要构造一个合理的指标来描述网络的整体通信效率。首先,把网络上的节点放到空间直角坐标系上考虑,节点的运动遵循布朗运动的形式,由此我们根据节点的动态坐标得到节点间的距离 d 并给定一个通信距离 D,当 d ≤ D 时,则两个节点之间可以互相通信,反之则不能进行互相通信;其次,我们再找出描述网络的整体通信效率的相关指标,有冲突率、时延率、吞吐率和承载率;然后,我们根据建立的四个指标与通信效率之间建立多元线性回归分析模型来描述网络的整体通信效率;最后,为了验证模型的准确性,我们把模型带到具体通信网络的实例中进行计算和分析。
  问题二的分析
  节点发送信息时可能发现存在冲突,这种冲突尽可能少就更有利于通信效能的提高。通过建立有通信冲突的最小连通支配集来确定节点冲突的点集;通过分离冲突域,建立独立子集来尽可能减小通信冲突,均通过相应的算法来实现。网络在运作的过程中,所承载的能力对通信冲突存在不一样的影响,此时,对网络的承载能力分为轻载和重载进行分类讨论。结合第一问建立的模型,在指标明确的情况下,找出尽可能高的通信效率,从而找到对应的时间,与初始时间一处理即可得到调整后的时间段。相应的可以做动态仿真模拟,在轻载或是重载下,冲突域的改变,可以调整出不同的时间段,使通信效率尽可能高。

模型假设:

  (1) 假设每个节点都有相同的内置算法;
  (2) 假设每个节点的通信距离始终相等,即为常数;
  (3) 假设在没有广播冲突的前提下,节点一旦接收到消息就一定是接收到完整的信息;
  (4) 假设不考虑某节点未完成接收已知的所需信息时不会发送其他信息;
  (5) 假设发送每条信息这一操作所占用的时间是等长的且忽略不计;
  (6) 假设计算网络中信息传播的最大时间与实际网络中信息传播的最大时间之间存在的误
差几乎为 0。

论文缩略图:

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

clc,clear all
hang=1;
ss=zeros(7*5,4);
%length(number)
rrate=zeros(7*5,6);
for number=[10:50:300,300]
x=2*rand(number,1)-1;
y=2*rand(number,1)-1;
z=2*rand(number,1)-1;
for rate=[0.1:0.2:1.0,1.0]
[m,sumc,d,ssum] =jdfz(number,rate,x,y,z);
ss(hang,:)=[number,rate,m,sumc];
%±£´
rrate(hang,:)=[number,rate,m/sumc,d,ssum/sumc,ssum/(9*number*1000)];
hang=hang+1;
end
end
clc,clear all

n=10;

s=0.002;

D=0.1;

x=2*rand(n,1)-1;

y=2*rand(n,1)-1;

z=2*rand(n,1)-1;

h=plot3(x,y,z,'.'); xmin=-1;xmax=1;ymin=-1;ymax=1;zmin=-1;zmax=1; axis([xmin xmax ymin ymax zmin zmax]); axis square

grid on

set(h, 'MarkerSize',5)% òs ģ

e={};

l=1;

for i=linspace(1,10,5000)

%addres=randperm(n,1);

alphabet = [0 1]; prob = [0.8 0.2]; zhuangtai=randsrc(n,1,[alphabet; prob]);
for j=1:n

if zhuangtai([j])==1

alphabet1 = [1 2 3 4 5 6 7 8 9]; prob1 = [0.3 0.2 0.1 0.1 0.1 0.05 0.05 0.05 0.05];

shuliang=randsrc(1,1,[alphabet1; prob1]);

addres=randperm(n,shuliang);

for k=1:shuliang

addres1=addres([k]);

d=sqrt((x([j])-x([addres1]))^2+(y([j])-y([addres1]))^2+(y([j])-y([addres1]))^2);

if d<=D

e{l}=d;

l=l+1;

end

ee=cell2mat(e);

uniq=length(ee)-length(unique(ee));

if uniq>0

end

l=1;

e={};

end

end

end

x=x+s*randn(n,1);

y=y+s*randn(n,1);

z=z+s*randn(n,1);

set(h,'XData',x,'YData',y,'ZData',z);

end
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

是时候将javax替换为Jakarta了

开始 相信很多朋友在使用新版本的Spring的时候&#xff0c;发现了一些叫jakarta的包&#xff0c;看起来有点陌生。 很多时候&#xff0c;比较纠结不知道该导入哪一个包。 jakarta其实就是之前的javax。 主要JavaEE相关的&#xff0c;从之前javax名字也可以看出来&#xff0…

LeetCode刷题--- 单词搜索

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述…

启封涂料行业ERP需求分析和方案分享

涂料制造业是一个庞大而繁荣的行业 它广泛用于建筑、汽车、电子、基础设施和消费品。涂料行业生产不同的涂料&#xff0c;如装饰涂料、工业涂料、汽车涂料和防护涂料。除此之外&#xff0c;对涂料出口的需求不断增长&#xff0c;这增加了增长和扩张的机会。近年来&#xff0c;…

Livox-Mid-360 固态激光雷达ROS格式数据分析

前言&#xff1a; Livox-Mid-360 官方采用livox_ros_driver2ROS功能包发布ROS格式的数据&#xff0c;livox_ros_driver2可以把Livox原始雷达数据转化成ROS格式并以话题的形式发布出去。 下面列举一些雷达的基本概念&#xff1a; 点云帧&#xff1a;雷达驱动每次向外发送的一…

基于MATLAB的卡方分布,瑞利分布,T与F分布(附完整代码与例题)

一. 卡方分布 1.1 数学理论 首先我们来看下伽玛分布的概率密度函数&#xff1a; 其中&#xff1a; 令&#xff0c;就可以得到一个新的分布&#xff0c;这个分布在概率论上被叫做卡方分布。卡方分布也可以写做分布。其概率密度函数则为&#xff1a; 卡方分布要求参数k为正整数…

利用 PEB_LDR_DATA 结构枚举进程模块信息

1. 引言 我们常常通过很多方法来获取进程的模块信息&#xff0c;例如 EnumProcessModules 函数、CreateToolhelp32Snapshot 函数、WTSEnumerateProcesses 函数、ZwQuerySystemInformation 函数等。但是调用这些接口进行模块枚举的原理是什么我们并不知道。通过学习 PEB 中 PEB…

polar CTF上传

1、题目 2、经过测试.htaccess绕过 三行代码解析&#xff1a; 将上传的.jpg文件解析成php文件 auto_append_file包含上传的文件 将上传的文件进行解码 AddType application/x-httpd-php .jpg php_value auto_append_fi\ le "php://filter/convert.base64-decode/resourc…

数据结构与算法-排序

&#x1f31e;入冬 时寒 添衣 勿病 要开心 排序 &#x1f388;1.排序的基本概念&#x1f388;2.排序的分类&#x1f52d;2.1插入排序&#x1f50e;2.1.1直接插入排序&#x1f50e;2.1.2折半插入排序&#x1f50e;2.1.3希尔排序 &#x1f52d;2.2交换排序&#x1f50e;2.2.1冒泡…

Python中的并发编程(7)异步编程

异步编程 Python3.4后新增了asyncio模块&#xff0c;支持异步编程。 异步是在一个线程中通过任务切换的方式让多个任务”同时“进展。asyncio不涉及线程/进程切换&#xff0c;减少了线程/进程创建、上下文切换的开销&#xff0c;更轻量级。 asyncio的核心是事件循环&#xff0…

【设计模式】外观模式

文章目录 前言一、外观模式1.案例2.优缺点3.使用场景4.源码解析 总结 前言 【设计模式】外观模式 一、外观模式 有些人可能炒过股票&#xff0c;但其实大部分人都不太懂&#xff0c;这种没有足够了解证券知识的情况下做股票是很容易亏钱的&#xff0c;刚开始炒股肯定都会想&am…

c语言:把二维数组降至一维|练习题

一、题目 把二维数组降为一围数组 如图&#xff1a; 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> int main() { int arr2[3][3];//设置二维数组 int arr1[10];//设置一维数组 int z0;//一维数组自增量 printf("输入一个二维数…

面试算法78:合并排序链表

题目 输入k个排序的链表&#xff0c;请将它们合并成一个排序的链表。 分析&#xff1a;利用最小堆选取值最小的节点 用k个指针分别指向这k个链表的头节点&#xff0c;每次从这k个节点中选取值最小的节点。然后将指向值最小的节点的指针向后移动一步&#xff0c;再比较k个指…

Net6 Core webApi发布到IIS

Net6 Core Api发布到IIS不同于webapi&#xff0c;依赖框架不同&#xff0c;配置也移至项目内Program.cs 一、发布到指定文件夹和IIS&#xff0c;不过注意IIS应用程序池选择的是 “无托管代码“ 在IIS管理器中点击浏览&#xff0c;访问接口路径报500.19&#xff0c;原因是所依赖…

【并发设计模式】聊聊线程本地存储模式如何实现的线程安全

前面两篇文章&#xff0c;通过两阶段终止的模式进行优雅关闭线程&#xff0c;利用数据不变性的方式保证数据安全&#xff0c;以及基于COW的模式&#xff0c;保证读数据的安全。本篇我们来简述下如果利用线程本地存储的方式保证线程安全。 首先一个大前提就是并发问题&#xff…

Python:将print内容写入文件

简介&#xff1a;print函数是Python中使用频率非常非常高的函数&#xff0c;其包含四个参数&#xff1a;sep、end、file、flush。 历史攻略&#xff1a; Python基础&#xff1a;输入、输出 Python&#xff1a;将控制台输出保存成文件 参数解析&#xff1a; print()函数可以…

07-项目打包 React Hooks

项目打包 项目打包是为了把整个项目都打包成最纯粹的js&#xff0c;让浏览器可以直接执行 打包命令已经在package.json里面定义好了 运行命令&#xff1a;npm run build&#xff0c;执行时间取决于第三方插件的数量以及电脑配置 打包完之后再build文件夹下&#xff0c;这个…

基于JavaSpringboot+Vue实现前后端分离房屋租赁系统

基于JavaSpringbootVue实现前后端分离房屋租赁系统 作者主页 500套成品系统 联系客服任你挑选 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目录 基于JavaSpringbootVue实现前后端分离房屋租赁系统前言介绍&#xff1a;功能设计&#xf…

JavaWeb——前端之JSVue

接上篇笔记 4. JavaScript 概念 跨平台、面向对象的脚本语言&#xff0c;使网页可交互与Java语法类似&#xff0c;但是不需要变异&#xff0c;直接由浏览器解析1995年Brendan Eich发明&#xff0c;1997年成为ECMA标准&#xff08;ECMA制定了标准化的脚本程序设计语言ECMAScr…

杰发科技AC7840——EEPROM初探

0.序 7840和7801的模拟EEPROM使用不太一样 1.现象 按照官方Demo&#xff0c;在这样的配置下&#xff0c;我们看到存储是这样的&#xff08;连续三个数字1 2 3&#xff09;。 使用串口工具的多帧发送功能 看不出多少规律 修改代码后 发现如下规律&#xff1a; 前四个字节是…

HarmonyOS page生命周期函数讲解

下面 我们又要看一个比较重要的点了 页面生命周期 页面组件有三个生命周期 onPageShow 页面显示时触发 onPageHide 页面隐藏时触发 onBackPress 页面返回时触发 这里 我们准备两个组件 首先是 index.ets 参考代码如下 import router from ohos.router Entry Component struc…