2023 “华为杯” 中国研究生数学建模竞赛(A题)深度剖析|数学建模完整代码+建模过程全解全析
数字商品 教育 / 知识

2023 “华为杯” 中国研究生数学建模竞赛(A题)深度剖析|数学建模完整代码+建模过程全解全析

CS数模 · 2 · 0

商品介绍
赛中紧张进行ing,我们团队本题也完成了相应的内容!!!

我们cs数模30+团队提供了进阶版!非常精致与精细,有需要的同学们可以来下面这个链接看看!
(进阶放送!)2023 “华为杯” 中国研究生数学建模竞赛(A题)深度剖析|数学建模完整代码+建模过程全解全析
当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2021年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。
我的解题思路是基于数学建模领域的前沿理论和实践研究,具有极强的创新性和实用性。我深入分析了各种数学建模问题,并总结出了一套行之有效的解决方案,帮助大家在竞赛中脱颖而出,或在实际情景中解决问题。我们的团队既注重理论分析,又重视实际应用。在此次美赛中,我们依据实际问题出发,结合数学建模理论进行分析,并给出可行的解决方案。通过我的解题思路,你可以快速理解各种数学建模问题,并有效地解决它们。
我的解题思路的实用性得到了众多用户的认可,许多人已经使用我的方法成功地解决了各种问题,了解了各种思路和技巧。通过使用我的解题思路,大家可以快速理解和掌握数学建模问题,并且取得更好的成绩和效果。
希望这些想法对大家的做题有一定的启发和借鉴意义。

问题一:
1.  使用Markov链描述节点的退避过程
● 节点按照二进制指数增backoff算法进行随机退避,退避计数器和退避阶数呈Markov过程
● Bianchi等在论文中证明了这个退避过程可以用一个二维离散时间Markov链建模
● Markov链能准确描述节点退避状态随时间的概率分布和转移规律
2.  计算节点发送概率τ和碰撞概率p
● τ表示节点随机退避到0时的发送概率,可以从Markov链的稳态分布得到
● p表示至少还有一个节点同时发送导致碰撞的概率,根据节点总数和τ的关系可求得
● 两者互相关联,需要联立方程组求解
3.  计算不同状态时隙长度
● 时隙长度需要考虑数据传输时间、SIFS、ACK等不同因素
● 不同状态(成功、失败、空闲)下时隙长度不同
4.  利用状态概率和时隙长度计算吞吐率
● 吞吐率受状态概率和各状态时隙长度的影响
● 利用吞吐率公式可以计算出整个系统的性能
● 反映了Markov链建模、参数设定和性能度量之间的关系

建立节点退避过程的Markov链模型

参考Bianchi模型,对每个AP建立一个退避过程的Markov链模型。状态空间为{s(t),b(t)},s(t)表示退避阶数,b(t)表示随机退避计数器值。
一共有m+1个退避阶数,每个阶数i对应的竞争窗口大小为Wi=2^i*W0,W0为初始阶数的竞争窗口大小。
那么状态转移概率为:
P{i,k|i,k-1}=1, i∈[0,m],k∈[1,Wi-1]
P{0,k|i,0}=(1-p)/W0, i∈[0,m],k∈[0,W0-1]
P{i,k|i-1,0}=p/Wi, i∈[1,m],k∈[0,Wi-1]

计算节点发送概率τ和碰撞概率p
在稳态下,可以得到节点发送概率:
τ=b00/(1-p)
其中b00为状态{0,0}的稳态概率。
碰撞概率p为至少还有一个节点发送的概率:
p=1-(1-τ)^(N-1)
将两个方程组合可以求解出τ和p。
计算不同状态的时隙长度
\begin{align}
T_s &= 数据传输时间 + SIFS + ACK \
T_c &= 数据传输时间 + ACK超时 \
T_e &= DIFS
\end{align}
计算系统吞吐率
\begin{align}
S = \frac{P_sT_s}{P_sT_s+P_cT_c+P_eT_e} \cdot 速率
\end{align}其中Ps为成功概率,Pc为失败概率,Pe为空闲概率。
通过求解Markov链可以计算出这三个概率,从而求出系统吞吐率S。

matlab

% 参数设置
W0 = 16;   % 初始竞争窗口大小
m = 5;     % 最大退避级数 
N = 2;     % AP节点数量
p_col = 0.1; % 并发传输发生碰撞概率
Ts = 60;   % 成功传输时隙长度
Tc = 100;  % 失败传输时隙长度 
Te = 50;   % 空闲时隙长度
rate = 455.8e6; % 传输速率

% 求解τ和p
syms tau p;
b00 = (1-p)*(1-2*p)/(W0*(1-(2*p)^(m+1))*(1-p)+(1-2*p)*(1-p^(m+1))); 
tau = b00/(1-p);
eqn1 = tau == (1 - (1-tau)^(N-1))*p_col;
eqn2 = solve(eqn1,p);
p = double(eqn2);
tau = double(solve(eqn1,tau));

% 计算状态概率
Ps = 1 - tau^N;
Pc = 1 - (1-tau)^N - N*tau*(1-tau)^(N-1); 
Pe = (1-tau)^N;

% 计算吞吐率
S = Ps*Ts/(Ps*Ts + Pc*Tc + Pe*Te)*rate

问题二:
并发传输时SIR较高,导致两个AP的数据传输都能成功。
所以建模过程与问题1基本一致,主要差别在以下两个方面:
1.  计算碰撞概率p时,并发传输不一定失败,需要考虑SIR导致成功或失败的概率。
可以设置一个并发成功概率Ps_col,则有:
p = 1 - (1-τ)^(N-1) * Ps_col
2.  计算不同状态概率时,成功概率Ps需要考虑并发成功的情况:
Ps = (1 - τ)^N + C_N^2 * tau^2 * Ps_col
Pc和Pe的计算与问题1相同。
其余建模过程不变,最后可以求得问题2下的系统吞吐率。
则对应的建模过程为
节点的Markov链模型
节点退避过程的Markov链模型与问题1完全一致,状态空间和状态转移概率也不变
计算节点发送概率$\tau$和碰撞概率$p$
\begin{align}
\tau &= \frac{b_{0,0}}{1-p} \
p &= 1 - (1-\tau)^{N-1} \cdot P_\text{s_col}
\end{align}其中$P_\text{s_col}$表示并发传输成功概率。
不同状态时隙长度
(与问题1相同)

计算状态概率
\begin{align}
P_e &= (1-\tau)^N \
P_c &= 1 - (1-\tau)^N - N\tau(1-\tau)^{N-1} \

P_s &= (1 - \tau)^N + C_N^2 \tau^2 P_\text{s_col}
\end{align}

计算系统吞吐率

吞吐率公式与问题1也完全一致。
与问题1相比,主要改变是:
1.  p的计算考虑并发成功概率
2.  Ps的计算增加并发成功概率项

则相应的计算代码为:
% 参数设置
W0 = 16; 
m = 5;
N = 2;
p_col = 0.9; % 并发传输成功概率 
Ts = 60;
Tc = 100;
Te = 50;
rate = 455.8e6;

% 求解τ和p
syms tau p;
b00 = (1-p)*(1-2*p)/(W0*(1-(2*p)^(m+1))*(1-p)+(1-2*p)*(1-p^(m+1)));
tau = b00/(1-p);
eqn1 = tau == (1 - (1-tau)^(N-1))*p_col;  
eqn2 = solve(eqn1,p);
p = double(eqn2);
tau = double(solve(eqn1,tau));

% 计算状态概率 
Ps_col = 0.9; % 并发成功概率
Pe = (1-tau)^N; 
Pc = 1 - (1-tau)^N - N*tau*(1-tau)^(N-1);
Ps = (1 - tau)^N + nchoosek(N,2)*tau^2*Ps_col;

% 计算吞吐率
S = Ps*Ts/(Ps*Ts + Pc*Tc + Pe*Te)*rate

问题3 
详细内容见面包多内部呀!

同店推荐

包含文件 · 5 · 20.0 KB

  • 01_A.docx 17.6 KB
  • 02_A01.mat 719.0 B
  • 03_A02.mat 600.0 B
  • 04_A03.mat 643.0 B
  • 05_A04.mat 544.0 B
支付金额 ¥16.40