【全网最全】2024年华为杯研赛B题成品论文获取入口(后续会更新)
您的点赞收藏是我继续更新的最大动力!
一定要点击如下的卡片,那是获取资料的入口!
点击链接加入【2024华为杯研赛资料汇总】:https://qm.qq.com/q/hMgWngXvcQhttps://qm.qq.com/q/hMgWngXvcQ你是否在寻找数学建模比赛的突破点?数学建模进阶思路!
作为经验丰富的美赛O奖、国赛国一的数学建模团队,我们将为你带来本次数学建模竞赛的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,帮助你全面理解并掌握如何解决类似问题。
【2024华为杯研赛B题】2024数模华为杯研赛全国研究生数学建模国赛建模过程+完整代码论文全解全析来了
2024华为杯研赛B题第一问是要求根据附件WLAN网络实测训练集中所提供的网络拓扑、业务流量、门限、节点间RSSI的测试基本信息,分析这些参数对AP发送机会的影响,并给出影响性强弱的顺序。接着,需要通过训练的模型预测每个AP的发送机会,即发送数据帧序列的总时长(seq_time),并通过测试集(test_set_1_2ap和test_set_1_3ap)预测AP发送数据帧序列的总时长。可以按照同频AP个数分类分析和分别建模,也可统一分析和建模。 为了解决第一个问题,我们需要首先分析参数如何影响WLAN中AP的发送机会(即发送数据帧序列的总时长),并对其影响进行排序。下面是该问题的分析和模型建立的过程:
3. 影响程度分析
为了排序各个参数对AP发送机会的影响,可以基于以上公式的敏感度分析。假设有很多测试数据,对每个参数进行扰动,观察对$seq_time$的影响。整个分析的步骤如下:
- 通过训练集数据,计算不同参数组合对$P(success)$的影响权重。
- 通过模型的输出,统计不同因素对$seq_time$的贡献度。
- 将贡献度进行排序,得到影响性强弱的顺序。
4. 总结
结合上述分析和模型,我们可以预测对于每个AP的发送机会,并通过test_set_1_2ap和test_set_1_3ap进行具体的预测。同时,可以根据模型得出的权重或贡献程度对影响参数进行排序,从而识别出最显著的影响因素。
接下来,可以应用实际数据,利用回归、机器学习等手段进行训练,以约束和校正$f$的形式,从而得到具体的发送时长预测值。通过对测试集的进一步分析,我们可以优化最终的模型预测效果。
第一部分:分析参数对AP发送机会的影响
要分析影响AP发送机会(即发送数据帧序列的总时长)的参数,我们需要重点关注以下因素:
- RSSI(接收信号强度指示):
- RSSI是决定信道竞争和信号质量的重要因素。较高的RSSI值通常意味着低的干扰和好的接收条件,因此能够提高AP发送的机会。
- 公式表示:对于某个AP,其发送机会可以用与STA之间的RSSI关系来量化。未能达到CCA门限的信道是无法成功发送数据的。
- 信道接入机制(CCA门限):
- CCA门限决定了节点是否能判断信道为空闲,影响到AP是否开始发送。较低的CCA门限可以增加节点判断信道为空闲的概率,从而提高发送机会。
- 公式表示:若$RSSI \geq CCA_Threshold$则AP可以发送。
- NAV(网络分配矢量)机制:
- NAV机制用于通知节点在何时静默以避免冲突。若NAV时间过长,可能会降低其他AP的发送机会。
- 倘若一个AP的NAV时间较长,其它AP则需在此期间内保持静默,从而影响总体发送能力。
- 竞争窗口(CW):
- CW大小影响节点在信道繁忙时的随机回退时间。较大的CW值会导致节点在忙信道上等待的时间更长,从而减小了发送机会。
- 增大CW时,节点可借助公式$Backoff\ Time \sim \text{Uniform}(0, CW-1) \times slotTime$决定回退。
- 业务流量(Traffic Type):
- 不同类型的流量(如UDP和TCP)对AP发送策略也有影响。UDP流量是无连接的且不保证送达,可能采用更频繁的发送;而TCP流量则依赖于ACK确认,可能会因为丢包而调整发送频率。
- 在相同条件下,UDP可能比TCP提供更高的发送机会。
强弱顺序分析
基于上述因素可以进行影响强弱的排序: 1. RSSI - 直接影响成功传输的概率,结果显著。 2. CCA门限 - 在信道利用上具有至关重要的作用,影响判断信道的能力。 3. 竞争窗口 - 影响节点的回退和重传策略,能显著改变发送机会。 4. NAV机制 - 影响相邻AP的发送机会,重要但间接。 5. 业务流量 - 相对而言最弱,但在特定场景下(如高流量环境)会起到关键作用。
预测AP发送机会
鉴于训练集中的基础数据,我们可以使用线性回归或其他机器学习模型(如随机森林、XGBoost等)来建模,通过结合上述影响因素推断AP的发送机会($seq_time$)。
预测模型或公式形式可以表达为:
seq_timeAP=f(RSSI,CCA_Threshold,CW,NAV,Traffic Type) seq\_time_{AP} = f(RSSI, CCA \_ Threshold, CW, NAV, Traffic\ Type)
最终,利用训练集中的数据,我们可以通过模型对测试集test_set_1_2ap和test_set_1_3ap进行预测,得到相应的AP发送数据帧序列的总时长。
独特见解
在进行参数分析时,值得注意的是WLAN系统是一个动态系统,受多个因素的交互影响。尤其是当多AP环境下,相邻AP之间的干扰和能量管理将导致反馈机制的复杂性,影响发送策略的灵活性。因此,模拟不同场景下的AP行为,如密干扰模式和稀疏干扰模式下的比赛,将可能为设计更有效的信道管理方案提供更真实的参考。在实际应用中,通过动态调整参数(如整合RSSI、SINR等实时监测数据),在高密度场景下优化AP分配资源,将是未来的一个重要研究方向。 在分析WLAN网络中,影响AP(接入点)发送机会的因素时,我们需要从多方面考虑,包括网络拓扑、业务流量、门限、节点间RSSI(接收信号强度指示)等基本信息。接下来,我们将详细分析这些因素,并给出影响性强弱的顺序。
1. 影响AP发送机会的因素分析
1.1 网络拓扑
- AP数量和位置:
- 在网络中,AP的数量和部署位置影响信号的覆盖范围和相互之间的干扰程度。相邻AP的密度会影响各AP的发送机会。
- AP数量越多,可能导致相互之间的干扰增大,尤其是在同频情况下,会引起碰撞,降低各自的发送机会。
1.2 RSSI值
- 节点间RSSI:
- RSSI值反映了接收信号的强度,影响了SINR(信号与干扰噪声比)的计算。
- 高频的RSSI值意味着较高的SINR,使得AP能够选择更高的MCS(调制和编码方案),从而增加发送机会。
- 如果RSSI处于竞争范围的门限值(PD和ED之间),它会影响AP之间的相互“听见”能力,从而影响发送机会。
1.3 门限设置
- PD、ED、NAV门限:
- 包检测门限(PD)和能量检测门限(ED)的设定直接影响信道的判断能力。如果RSSI高于PD,AP能够成功检测到信号,如果低于ED,则AP认为信道忙。
- NAV门限则确保AP在特定时间段内不发送数据,若AP间的RSSI小于NAV门限,AP将无法及时“听到”和接收其他AP发来的信号。
1.4 业务流量
- 流量类型和负载:
- 流量类型(UDP vs TCP)和数据包大小将影响数据包的发送时机。TCP会受到ACK确认机制的影响,此机制将在一定程度上反映出网络的传输情况和负载,对AP的发送能力有重要影响。
2. 强弱顺序
根据上述分析,我们可以确定影响AP发送机会的强弱顺序如下:
- RSSI值 - 直接反映信号强度和SINR,决定了MCS的选择和发送能力。
- AP数量和位置 - 影响AP之间的干扰和竞争。
- 门限设置(PD、ED、NAV) - 影响信道的判断及信号的可侦听性。
- 业务流量类型和负载 - 影响数据包的发送时机和频率。
3. 数学建模与预测
为了建立模型并预测每个AP的发送机会,即发送数据帧序列的总时长($seq_time$),可以考虑如下的线性模型:
seq_timei=β0+β1⋅RSSIi+β2⋅AP_count+β3⋅PD+β4⋅ED+β5⋅NAV+β6⋅Flow_type+ϵ seq\_time_i = \beta_0 + \beta_1 \cdot RSSI_{i} + \beta_2 \cdot AP\_count + \beta_3 \cdot PD + \beta_4 \cdot ED + \beta_5 \cdot NAV + \beta_6 \cdot Flow\_type + \epsilon
其中: - $seq_time_i$为第$i$个AP发送数据帧的序列总时长。 - $RSSI_{i}$为第$i$个AP与用户之间的接收信号强度。 - $AP_count$为同频AP的数量。 - $PD$, $ED$, $NAV$分别为包检测门限、能量检测门限和NAV门限。 - $Flow_type$是业务流的类型(可以用分类变量处理)。 - $\beta_0, \beta_1, ..., \beta_6$为模型参数,而$\epsilon$为误差项。
通过对训练集进行线性回归分析,可以得到各个参数的估计值,从而实现对$seq_time$的预测。
4. 预测
通过上述模型,我们可以使用训练集数据进行回归分析,并将得到的模型应用于测试集(test_set_1_2ap和test_set_1_3ap)来预测AP发送数据帧序列的总时长。
以上是关于题目中第一个问题的详细回答和相关数学模型。 为了完成这个任务,我们将在Python中进行数据分析和模型预测。首先,我们将使用Pandas库读取并处理数据,然后分析各参数对AP发送机会的影响,最后通过线性回归或其他合适的回归模型来预测每个AP的发送数据帧序列的总时长(seq_time)。
下面是一个可能的实现示例,具体实现时需要根据实际数据集的具体情况做适当调整:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import numpy as np# 读取训练集数据
training_data = pd.read_csv('training_set.csv')# 分析影响AP发送机会的参数
# 选择相关的特征和目标变量
features = ['test_dur', 'eirp', 'pd', 'ed', 'nav', 'sta_to_ap_x_max_ant_rssi', 'sta_to_ap_x_mean_ant_rssi'] # 替换或添加其他特征
target = 'seq_time'# 分割数据集为特征和目标
X = training_data[features]
y = training_data[target]# 数据集划分为训练集和验证集
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)# 创建线性回归模型
model = LinearRegression()# 训练模型
省略
rmse = np.sqrt(np.mean((y_val - y_pred) ** 2))
print(f'RMSE: {rmse}')# 在测试集中预测AP发送数据帧序列的总时长
test_data_2ap = pd.read_csv('test_set_1_2ap.csv') # 读取测试集
test_data_3ap = pd.read_csv('test_set_1_3ap.csv')# 对测试集进行预测
test_features_2ap = test_data_2ap[features]
test_features_3ap = test_data_3ap[features]predictions_2ap = model.predict(test_features_2ap)
predictions_3ap = model.predict(test_features_3ap)# 输出预测结果
test_data_2ap['predicted_seq_time'] = predictions_2ap
test_data_3ap['predicted_seq_time'] = predictions_3aptest_data_2ap.to_csv('predictions_2ap.csv', index=False)
test_data_3ap.to_csv('predictions_3ap.csv', index=False)
第二个问题是:
根据附件提供的实测训练集中的测试基本信息,特别是节点间RSSI信息和门限信息,结合问题1中对AP发送机会的分析,对测试中AP发送数据选用最多次数的(MCS, NSS)进行建模,并通过测试集 test_set_2_2ap和test_set_2_3ap(仅提供模型输入信息)预测(MCS, NSS)。(AP在AMC算法下自适应调节发送速率,过程中可能采用多个(MCS, NSS),AMC算法收敛速度快,故其中选用最多次数的(MCS, NSS)反映了SINR水平。)
这个问题的重点在于通过分析测试集中的RSSI和门限信息,建模出AP在发送数据时最常使用的(MCS, NSS)组合,并利用这个模型对测试集中的数据进行预测。 要解决第二个问题,我们可以将建模过程分为几个步骤:数据预处理、特征选择、模型建立、模型训练和模型预测。以下是详细的数学建模步骤:
1. 数据预处理
首先,我们需要对训练集中的实测数据进行清洗和预处理。我们关注的主要字段包括节点间RSSI信息、门限信息以及AP发送的最大次数的(MCS, NSS)。
2. 特征选择
选择影响(MCS, NSS)的特征主要包括: - 接入点间的RSSI(Received Signal Strength Indication) - 包检测门限(PD) - 能量检测门限(ED) - 网络分配矢量(NAV) - SINR计算(信号干扰噪声比)
对于每一对(AP到STA)的连接,我们可以定义SINR,如下:
SINRAPi→STAj=RSSIAPi→STAj−max(RSSIAPk→STAjfor k≠i) SINR_{AP_i \to STA_j} = RSSI_{AP_i \to STA_j} - \max(RSSI_{AP_k \to STA_j} \, \text{for } k \ne i)
3. 模型建立
我们假设(MCS, NSS)的选用依赖于当前的SINR值,因此建立如下模型:
MCSAPi=f(SINRAPi→STAj,PDAPi,EDAPi,NAVAPi) MCS_{AP_i} = f(SINR_{AP_i \to STA_j}, \, PD_{AP_i}, \, ED_{AP_i}, \, NAV_{AP_i})
我们可以使用线性回归、逻辑回归、决策树或随机森林等算法建立此模型,以选择影响最大的特征。
4. 模型训练
使用训练集中的实际数据进行模型训练。目标是最大化选择的(MCS, NSS)的次数。我们可以使用多类分类算法,算法的目标函数可以定义为:
maximize∑i,jP(MCSAPi,NSSj)subject toP(MCSAPi,NSSj)∈[0,1] \text{maximize} \quad \sum_{i,j} P(MCS_{AP_i, NSS_{j}}) \quad \text{subject to} \quad P(MCS_{AP_i, NSS_{j}}) \in [0, 1]
其中,$P(MCS_{AP_i, NSS_{j}})$表示对应(MCS, NSS)组合被选择的概率。
5. 模型预测
在得到了模型后,我们用测试集中的RSSI和门限信息进行预测。根据预测结果,输出最多次数的(MCS, NSS)。
对于一个给定的测试样本,预测的过程可以表示为:
MCS^APi,NSS^APi=argmax(P(MCSAPi,NSSAPi))for i=1,…,N \hat{MCS}_{AP_i}, \hat{NSS}_{AP_i} = \text{argmax}(P(MCS_{AP_i}, NSS_{AP_i})) \quad \text{for } i = 1, \ldots, N
最终,我们计算并输出在测试集中预测的(MCS, NSS)。
6. 结果评估
对模型预测结果进行评估,并计算准确率、召回率等统计量,以便检验模型的实际应用效果。
总结
通过上述步骤,我们可以利用RSSI和门限信息对(MCS, NSS)进行建模与预测。这种方法充分利用了无线信道的特点,同时考虑了干扰对数据传输效果的影响。在实施时,可以根据具体的数据情况选择不同的回归或分类算法来提高模型的预测精度。 要建模AP在发送数据时最常使用的(MCS, NSS)组合,并对测试集进行预测,可以采用几个步骤来结构化解决方案。以下是这个问题的具体步骤和分析:
一、理论基础和数据驱动的建模
- 使用RSSI和门限信息:
- 利用节点间的RSSI值来计算信干噪比(SINR)。SINR对于选择最优的(MCS, NSS)组合至关重要。
- SINR的计算公式为: SINR=RSSIAP→STA−RSSIinterferenceNoise \text{SINR} = \frac{\text{RSSI}_{AP \to STA} - \text{RSSI}_{interference}}{\text{Noise}} 其中,$\text{RSSI}{AP \to STA}$为AP到STA的信号强度,$\text{RSSI}{interference}$为相邻AP对STA的干扰信号强度,$\text{Noise}$为底噪。
- 阈值的应用:
- 根据PD、ED、NAV的门限,建立一个规则模型,判断在特定的环境下,哪种(MCS, NSS)组合是最可能被选择的。
- 设定门限条件,例如:若$RSSI > PD$且$RSSI < ED$,则需考虑当前的RSSI是否足够强以适应某(MCS, NSS)组合。
二、数据分析和建模方法
- 特征提取:
- 从训练集中提取相关特性,如AP间的平均RSSI、门限值、发送流量类型等,以此生成特征集。
- 特征计算可以表示为: Features={mean(RSSI),pd,ed,nav,protocol,pkt\_len,…} \text{Features} = \{ \text{mean}(\text{RSSI}), \text{pd}, \text{ed}, \text{nav}, \text{protocol}, \text{pkt\_len}, \ldots \}
- 回归/分类模型:
- 采用机器学习中的分类算法(如随机森林、KNN、决策树等)来学习(MCS, NSS)和上述特征之间的关系。
- 模型训练可表示为: Model:(Features)→(MCSpred,NSSpred) \text{Model} : \text{(Features)} \rightarrow (\text{MCS}_{pred}, \text{NSS}_{pred})
- 这一步通过对特征数据进行K折交叉验证来进行调参数,选择最优的模型。
三、模型的应用与预测
- 应用训练好的模型:
- 将测试集中的特征输入到训练好的模型中,得到预测结果: (MCSpred,NSSpred)=Model(Test\_Features) (\text{MCS}_{pred}, \text{NSS}_{pred}) = \text{Model}(\text{Test\_Features})
- 同时对每个输入集中的AP记录的RSSI进行实时计算,从而输出实时变化下可能使用的(MCS, NSS)组合。
- 输出和决策:
- 根据预测的(MCS, NSS)组合,可以输出对应的PHY Rate,将其用于后续的吞吐量模型或性能分析中。
- 决策模型可表示为: Selected PHY Rate=Rate(MCSpred,NSSpred) \text{Selected PHY Rate} = \text{Rate}(\text{MCS}_{pred}, \text{NSS}_{pred})
四、见解与总结
- 此模型关键在于对环境条件(RSSI、门限)进行及时的监测和准确的特征抽取。
- 结合机器学习方法有效利用历史数据,有助于动态调整AP在无线环境中的发送策略,进一步提高系统吞吐量。
- 对于新环境、不同设备配置,模型也需适应性训练,以及时捕捉变化。
在实际应用中,模型能提高AP发送优化的灵活性,适应现代WLAN高密集度和多样性业务的需求,为用户提供流畅体验。 为了对AP在发送数据时最常使用的$(MCS, NSS)$组合进行建模,以及通过模型对测试集中的数据进行预测,我们可以依据测试基本信息中的节点间RSSI以及门限信息来构建相应的模型。
方法概述
- 输入参数定义:
- RSSI相关信息:
- $RSSI_{ap_STA}$: 从AP到STA的RSSI。
- $RSSI_{neighbor_AP}$: 从邻近AP到STA的RSSI(影响SINR)。
- 门限参数:
- $PD$: Packet Detection 门限。
- $ED$: Energy Detection 门限。
- $NAV$: Network Allocation Vector 门限。
- SINR计算: 基于上述信息,我们可以计算SINR(信干噪比),公式如下: SINR=RSSIap_STA−RSSIneighbor_AP SINR = RSSI_{ap\_STA} - RSSI_{neighbor\_AP}
- (MCS, NSS)的选择标准:
- 根据SINR的值,我们可以选择相应的$(MCS, NSS)$组合。由于WLAN通常遵循自适应调制编码(AMC)算法,$MCS$和$NSS$的选择可以基于SINR的阈值来决定。例如:
- 如果 $SINR > \text{阈值}_{MCS1}$, 选择$(MCS_1, NSS_1)$。
- 如果 $SINR \in [\text{阈值}{MCS1}, \text{阈值}{MCS2}]$, 选择$(MCS_2, NSS_2)$,依此类推。
- 构建模型: 在训练集中,我们可以使用分类算法(如逻辑回归、决策树或随机森林等)来对每个测试样本的特征进行建模,训练出预测最频繁使用的$(MCS, NSS)$组合的模型。
- 模型预测: 利用训练好的模型对测试集 $test_set_2_2ap$和$test_set_2_3ap$中的数据进行预测,选用输入特征进行模型推导,得到对应的$(MCS, NSS)$组合。
具体步骤
- 构建数据集: 收集如下特征:
- ${RSSI_{ap_STA}, RSSI_{neighbor_AP}, PD, ED, NAV, \ldots }$ 与标签$(MCS, NSS)$。
- 训练模型: 选择合适的机器学习算法,根据特征对$(MCS, NSS)$进行分类训练。设模型为$f(\cdot)$,则: (MCS,NSS)=f(RSSIap_STA,RSSIneighbor_AP,PD,ED,NAV) (MCS, NSS) = f(RSSI_{ap\_STA}, RSSI_{neighbor\_AP}, PD, ED, NAV)
- 进行预测: 对测试数据集进行预测,设测试集特征为$x_{test}$,则预测结果为: (MCS,NSS)pred=f(xtest) (MCS, NSS)_{pred} = f(x_{test})
总结
通过这种方法,我们能够利用实测的RSSI、门限信息及其关系,构建$(MCS, NSS)$的预测模型,并对测试集中的$(MCS, NSS)$进行有效预测。这将有助于进一步评估网络是否能根据实时情况进行优化,提升整体吞吐量。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import accuracy_score
import numpy as np# 读取训练集数据
train_data = pd.read_csv('training_set.csv') # 替换为实际文件名# 选择特征和目标变量
features = ['eirp', 'ap_from_ap_x_max_ant_rssi', 'ap_from_ap_x_mean_ant_rssi', 'sta_to_ap_x_sum_ant_rssi', 'pd', 'ed', 'nav', 'sta_from_ap_x_max_ant_rssi'] # 根据数据集实际情况选择特征
target = ['most_used_mcs_nss'] # 假设有一列为要预测的(MCS, NSS)# 准备特征和目标
X = train_data[features]
y = train_data[target]# 将(MCS, NSS)分解为两个独立变量,方便模型训练
y['mcs'] = y['most_used_mcs_nss'].apply(lambda x: x[0]) # 假设格式为 [MCS, NSS]
y['nss'] = y['most_used_mcs_nss'].apply(lambda x: x[1])# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 建立模型并训练
model_mcs = RandomForestRegressor(n_estimators=100, random_state=42)
model_nss = RandomForestRegressor(n_estimators=100, random_state=42)model_mcs.fit(X_train, y_train['mcs'])
model_nss.fit(X_train, y_train['nss'])# 预测
predicted_mcs = model_mcs.predict(X_test)
predicted_nss = model_nss.predict(X_test)# 查看预测结果
predicted_results = pd.DataFrame({'predicted_mcs': predicted_mcs,'predicted_nss': predicted_nss
})# 读取测试集数据
test_data_2ap = pd.read_csv('test_set_2_2ap.csv') # 替换为实际文件名
test_data_3ap = pd.read_csv('test_set_2_3ap.csv') # 替换为实际文件名# 准备测试集特征
X_test_2ap = test_data_2ap[features]
X_test_3ap = test_data_3ap[features]# 进行预测
predictions_2ap = (model_mcs.predict(X_test_2ap), model_nss.predict(X_test_2ap))
predictions_3ap = (model_mcs.predict(X_test_3ap), model_nss.predict(X_test_3ap))# 将预测结果输出
predicted_2ap_df = pd.DataFrame({'predicted_mcs': predictions_2ap[0],'predicted_nss': predictions_2ap[1]
})predicted_3ap_df = pd.DataFrame({'predicted_mcs': predictions_3ap[0],'predicted_nss': predictions_3ap[1]
})predicted_2ap_df.to_csv('predicted_2ap_mcs_nss.csv', index=False)
predicted_3ap_df.to_csv('predicted_3ap_mcs_nss.csv', index=False)
请根据您的文件名称和路径调整代码中的文件名,并确保所有特征与目标变量的命名与数据集中的一致。 该代码使用随机森林模型来预测AP发送数据时最常用的(MCS, NSS)。 第三个问题是:
请结合问题1和问题2的分析,对系统吞吐量进行建模,并通过测试集 test_set_1_2ap 和 test_set_1_3ap 预测网络吞吐量。可按照同频AP个数分类建模,也可统一建模。无线信道具有瞬息万变的特点,实测中所测量的RSSI信息属于大尺度信息,不足以完全反应真实信道变化,因而问题2对(MCS, NSS)的建模可能无法获得很高精度。本问题允许采用实测中统计的数据帧真实(MCS, NSS)作为模型输入变量。 为了解决第三个问题并对WLAN系统吞吐量进行建模,我们可以使用以下方法进行数学建模:
1. 系统吞吐量模型
WLAN的吞吐量 ($T$) 可以表示为每个AP的吞吐量之和。假设有 $N$ 个AP,每个AP的吞吐量为 $T_{AP_i}$,则整体吞吐量可以表示为: T=∑i=1NTAPi T = \sum_{i=1}^{N} T_{AP_i}
2. 每个AP的吞吐量建模
每个AP的吞吐量 $T_{AP_i}$ 可以基于其发送数据帧的时长 ($seq_time_{AP_i}$)、数据帧的比特数以及每个数据帧的丢包率 ($PER_{AP_i}$) 来计算。我们可以用以下公式进行描述:
TAPi=(1−PERAPi)×NpduAPi×Lpduseq_timeAPi T_{AP_i} = \frac{(1 - PER_{AP_i}) \times N_{pdu_{AP_i}} \times L_{pdu}}{seq\_time_{AP_i}}
其中: - $N_{pdu_{AP_i}}$ 是 AP$i$ 发送的数据帧个数。 - $L_{pdu}$ 是数据帧的有效负载大小(以比特为单位)。
由于不同 $MCS$ 和 $NSS$ 对应的数据帧大小 ($L_{pdu}$) 是已知的,我们可以根据具体的情境选择相应的 $MCS$ 和 $NSS$。
3. 丢包率(PER)模型
丢包率 ($PER$) 可以基于无线信道条件(如 $SINR$)和AP选择的(MCS, NSS)来建模。通常,$PER$ 受到 $SINR$ 的影响,较高的 $SINR$ 会导致更低的 $PER$。可以使用以下关系进行建模: PER=f(SINR,MCS,NSS) PER = f(SINR, MCS, NSS)
一般来说,可以使用经验公式或回归分析来估算 $PER$,例如,可以通过以下公式简化建模: PER(SINR)=11+ek(SINR−θ) PER(SINR) = \frac{1}{1 + e^{k(SINR - \theta)}} 其中 $k$ 是斜率参数,$\theta$ 是一个与技术参数相关的阈值。
4. 总结吞吐量模型
最终的吞吐量模型可以总结为: T=∑i=1N(1−PERAPi)×NpduAPi×Lpduseq_timeAPi T = \sum_{i=1}^{N} \frac{(1 - PER_{AP_i}) \times N_{pdu_{AP_i}} \times L_{pdu}}{seq\_time_{AP_i}}
利用这个模型,我们可以通过输入数据集中每个AP的发送时长、丢包率和有效比特数来预测总吞吐量。在实际的应用中,还可以通过线性回归、随机森林或其他机器学习方法来对该模型进行拟合和参数优化,从而进一步提高模型的预测能力。
5. 实测数据的利用
在进行模型构建时,允许使用实际测量得到的(MCS, NSS)及其对应的传输时长和丢包信息,以提高模型的准确性和鲁棒性。这将能够为实际的网络部署提供更好的吞吐量预测,并有助于优化无线网络的性能。 为了建立WLAN系统吞吐量的模型,我们需要综合前两个问题的分析结果,并考虑实际的网络环境及数据。系统吞吐量(Throughput)可以通过以每个AP成功发送的数据量与所用时间的比值来表示。我们可以用以下公式来表示每个AP的吞吐量:
Throughputap=Dap⋅(1−PERap)Tap \text{Throughput}_{ap} = \frac{D_{ap} \cdot (1 - \text{PER}_{ap})}{T_{ap}}
其中: - $D_{ap}$ 是发送的数据总量(以比特为单位),可以用 $D_{ap} = \text{num_ppdu} \times \text{pkt_len} \times 8$ 表示(单位从字节转为比特); - $\text{PER}{ap}$ 是丢包率,反映了在AP发送数据帧时的失败概率; - $T{ap}$ 是AP发送数据帧所占用的总时间,即帧序列的总时长($\text{seq_time}$)。
一个系统的总吞吐量是所有AP吞吐量的总和:
Total Throughput=∑i=1NThroughputapi \text{Total Throughput} = \sum_{i=1}^{N}\text{Throughput}_{ap_i}
在这个公式中,$N$为系统中AP的数量。
独特的见解
- 多AP的协作效应: 在实际的WLAN环境中,多AP之间的协作和干扰是至关重要的。在模型中,我们可以通过增加参数 $RSSI_{Neighbor}$ 来建模邻近AP的干扰影响,也就是将其从接收到的数据中考虑,使得在接收信号强度 (RSSI) 的计算中包含来自不同AP的数据。这将对SINR的计算产生直接影响。
- 动态环境响应: 将模型扩展到考虑动态环境因素,例如用户行为变化(如设备连接和断开、移动等),可以通过引入时间序列模型(如LSTM)对实时数据进行预测。这样可以有效捕捉到吞吐量和通信模式中存在的动态变化,反映出真实环境中信道状态的不确定性。
- 优化选择的(MCS, NSS)组合: 通过在模型中加入自适应调制编码算法(AMC)的动态性,有助于进一步提升吞吐量预测的精度。具体来说,我们可以监测SINR变化并自动选择对应的最佳(MCS, NSS)值,以保持高数据速率并最小化丢包率。
- 模型评估与调优: 采用累积分布函数 (CDF) 评估模型的预测精度可以为我们提供更充分的信息,将目标集中在95%或99%的准确率上,这能够有效找出模型潜在的低效径路径和改进方案,从而调整模型参数以优化吞吐量的预测精度。
通过结合这些见解,对WLAN吞吐量进行建模可以更好地捕捉系统动态变化及其优化路径,从而在实际应用中提供更优质的网络服务质量。 为了对WLAN系统吞吐量进行建模,我们首先定义吞吐量的计算方法以及相关参数。这一步需要结合问题1和问题2中讨论的结果,并对系统吞吐量进行有效的预测。
吞吐量定义
WLAN系统的吞吐量(Throughput)可以定义为单位时间内成功发送的比特数(bps)。具体来说,我们可以将吞吐量表达为:
成功传输的字节数总传输时间秒Throughput=成功传输的字节数总传输时间 (秒) \text{Throughput} = \frac{\text{成功传输的字节数}}{\text{总传输时间 (秒)}} 由于在WLAN中传输的帧通常是聚合的,我们可以引入下列变量:
- $N_{ppdu}$: 成功传输的MAC服务数据单元(MPDU)个数
- $P_{PPDU}$: 每个PPDU传输的有效负载(字节数)
- $T_{ack}$: ACK帧的传输时间(秒),对于ACK帧来说通常为$32\mu s$(即$0.000032 s$)
- $T_{timeout}$: 超时时间(秒),用于测量发送失败的事件
吞吐量计算公式
综合上述定义,通过引入各个影响因素和实际测量的数据,我们得到吞吐量的近似计算公式如下:
Throughput=Nppdu⋅PPPDU⋅8Tseq+Nppdu⋅Tack+Nfail⋅Ttimeout \text{Throughput} = \frac{N_{ppdu} \cdot P_{PPDU} \cdot 8}{T_{seq} + N_{ppdu} \cdot T_{ack} + N_{fail} \cdot T_{timeout}}
其中:
- $T_{seq}$ 为数据帧序列的总时长(从发送数据到接收ACK或超时)
- $N_{fail}$ 为发送失败的MPDU数量
模型输入变量
在实际模型中,为了得到更高精度的吞吐量预测,我们将利用以下输入变量:
- 从数据集中获取的真实的(MCS, NSS),以及对应的$P_{PPDU}$,例如通过分析问题2中选用最多次数的(MCS, NSS)获知的有效负载。
- 成功帧的数目$N_{ppdu}$和失败帧的数目$N_{fail}$,这可以通过数据集中统计得到。
- 传输时间和ACK time,如果在测试集中已知,可以直接从数据中获取。
通过将这些信息结合,利用上述公式,我们可以为不同AP下的吞吐量建立模型并进行预测。
预测过程
在预测过程中,采用机器学习模型(如线性回归、随机森林等)来拟合吞吐量与相关输入变量之间的关系,具体步骤如下:
- 数据清洗与特征选择:去除缺失值与异常值。
- 构建回归模型,输入为节点间的RSSI信息、(MCS, NSS)组合、以及其他阈值信息。
- 模型训练及验证:使用训练集进行模型训练,评估模型性能。
- 吞吐量预测:应用训练好的模型到测试集$test_set_1_2ap$和$test_set_1_3ap$,得到每个AP的吞吐量预测值。
总结使用的公式为:
Predicted ThroughputAP=Nppdu⋅PPPDU⋅8Tseq+Nppdu⋅Tack+Nfail⋅Ttimeout(AP∈{AP1,AP2,…}) \text{Predicted Throughput}_{AP} = \frac{N_{ppdu} \cdot P_{PPDU} \cdot 8}{T_{seq} + N_{ppdu} \cdot T_{ack} + N_{fail} \cdot T_{timeout}} \quad (AP \in \{AP1, AP2, \ldots\})
以上公式总结了WLAN吞吐量的模型,包括如何计算出每个AP的吞吐量,以及如何利用实测数据进行预测。这一建模所需的输入变量密切结合了前两个问题的分析结果。最终,可通过模型精度评估方法(如CDF曲线)来评估预测的准确性。
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
相关文章:

【全网最全】2024年华为杯研赛B题成品论文获取入口(后续会更新)
您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 点击链接加入【2024华为杯研赛资料汇总】:https://qm.qq.com/q/hMgWngXvcQhttps://qm.qq.com/q/hMgWngXvcQ你是否在寻找数学建模比赛的突破点&a…...

计算机网络(八) —— Udp协议
目录 一,再谈端口号 1.1 端口号 1.2 netsta命令 二,UDP协议 2.1 关于UDP 2.2 Udp协议格式 2.3 Udp协议特点 2.4 Udp的缓冲区 一,再谈端口号 http协议本质是“请求 - 响应”形式的协议,但是应用层需要先将数据交给传输层&…...

【Linux篇】TCP/IP协议(笔记)
目录 一、TCP/IP协议族体系结构 1. 数据链路层 (1)介绍 (2)常用协议 ① ARP协议(Address Resolve Protocol,地址解析协议) ② RARP协议(Reverse Address Resolve Protocol&…...
std::pair和std::tuple
提示:文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问: 本文目标: 一、背景 最近 std::pair和std::tuple 二、用法 1.1 创建 看代码规范,提到:通过std::pair 和std::tuple ,函数可以同…...
Access denied for user ‘root‘@‘114.254.154.110‘ (using password: YES)
navicat 连接远程服务器报错 1045 - Access denied for user root114.254.154.110 (using password: YES)报错解释: 这个错误表示客户端从IP地址114.254.154.110尝试以用户’root’身份连接到MySQL服务器时,被拒绝访问。原因可能是密码错误、用户’roo…...

深度学习03-神经网络01-什么是神经网络?
神经网络的基本概念 人工神经网络(Artificial Neural Network,ANN): 是一种模仿生物神经网络的计算模型。由多个神经元(或称为节点)组成,这些节点通过不同的连接来传递信息。 每个神经元可以接…...
Redisson 分布式锁的使用详解
一、分布式锁的概述 1.1 分布式锁的背景 在单机系统中,Java 提供了 synchronized 和 Lock 等锁机制来确保并发情况下的线程安全。然而,在分布式系统中,多个服务实例运行在不同的物理或虚拟机上,无法直接使用这些本地的锁机制来控…...

计算机网络:物理层 --- 基本概念、编码与调制
目录 一. 物理层的基本概念 二. 数据通信系统的模型 三. 编码 3.1 基本概念 3.2 不归零制编码 3.3 归零制编码 3.4 曼切斯特编码 3.5 差分曼切斯特编码 编辑 四. 调制 4.1 调幅 4.2 调频 4.3 调相 4.4 混合调制 今天我们讲的是物理…...

使用Maven创建一个Java项目并在repository中使用
JDK环境:1.8.0_371 Maven环境 :Apache Maven 3.6.3 配置完成jdk和mvn后,进入到指定文件夹下执行如下语句: mvn archetype:generate -DgroupIdtop.chengrongyu -DartifactIdCyberSpace -DarchetypeArtifactIdmaven-archetype-quic…...

如何使用IIC外设(硬件IIC)
本文重点叙述如何使用芯片自带的 IIC 外设,即硬件 IIC,实现 IIC 通信。文章《IIC通信基础_cpu的iic通信-CSDN博客》 中,叙述了软件 IIC 通信和硬件 IIC 通信的区别, 并且重点叙述了 IIC 的通信协议。在使用软件进行 IIC 通信时&am…...

使用 Vue 3、Vite 和 TypeScript 的环境变量配置
使用 Vue 3、Vite 和 TypeScript 的环境变量配置 在开发现代前端应用时,环境变量是一个非常重要的概念。它可以帮助我们根据不同的环境(开发、测试、生产)配置不同的行为,比如 API 请求地址、调试选项等。在 Vue 3、Vite 和 Type…...

F28335 的串行外设接口(以下简称 SPI)
1 SPI 介绍 1.1 SPI 简介 1.2 F28335 的 SPI模块介绍 (1)F28335 的 SPI 特点...

科技引领未来生活——“光影漫游者”展览馆应用—轻空间
随着科技的快速发展,展览馆作为展示文化、科技和艺术的场所,正逐渐从传统的静态展示向高科技互动体验转变。由轻空间打造的“光影漫游者”展览馆,凭借其前沿的气承式结构和智能化系统,将参观者带入了一个未来感十足、充满科技魅力…...
ego-planner开源代码之启动参数介绍分析
ego-planner开源代码之启动参数介绍&分析 1. 源由2. 逻辑分析3. 启动参数section 1 三维地图尺寸section 2 里程计话题映射section 3 advanced_param.xml配置section 3.1section 3.2section 3.3section 3.4section 3.5section 3.6section 3.7section 3.8 section 4 轨迹服务…...
828 华为云征文|华为 Flexus 云服务器打造 Laverna 在线笔记应用
一、引言 在当今数字化时代,高效的笔记管理工具对于学习、工作和生活都至关重要。Laverna 作为一款功能强大的开源在线笔记应用,提供了 Markdown 编辑、加密支持等特性,是替代 Evernote 的绝佳选择。在 2024 年 9 月 14 日这个充满创新的日子…...
数据结构与算法-Trie树添加与搜索
trie树的使用场景 我们若需要制作一个通讯录的软件,使用常规树结构查询的复杂度为O(logn),但trie树的复杂度确与数据多少无关,与单词长度有关,这就大大缩减的查询的时间复杂度。 trie树的基本实现 基础结构 package com.study.trieDemo;i…...

AIGC专栏15——CogVideoX-Fun详解 支持图文生视频 拓展CogVideoX到256~1024任意分辨率生成
AIGC专栏15——CogVideoX-Fun详解 支持图&文生视频 拓展CogVideoX到256~1024任意分辨率生成 学习前言项目特点生成效果相关地址汇总源码下载地址 CogVideoX-Fun详解技术储备Diffusion Transformer (DiT)Stable Diffusion 3EasyAnimate-I2V 算法细节算法组成InPa…...

BFS 解决多源最短路问题
文章目录 多源BFS542. 01 矩阵题目解析算法原理代码实现 1020. 飞地的数量题目解析算法原理 1765. 地图中的最高点题目解析算法原理代码实现 1162. 地图分析题目解析算法原理代码实现 多源BFS 单源最短路: 一个起点、一个终点 多源最短路: 可以多个起点…...

论文笔记:交替单模态适应的多模态表征学习
整理了CVPR2024 Multimodal Representation Learning by Alternating Unimodal Adaptation)论文的阅读笔记 背景MLA框架实验Q1 与之前的方法相比,MLA能否克服模态懒惰并提高多模态学习性能?Q2 MLA在面临模式缺失的挑战时表现如何?Q3 所有模块是否可以有…...

鸿蒙OS 线程间通信
鸿蒙OS 线程间通信概述 在开发过程中,开发者经常需要在当前线程中处理下载任务等较为耗时的操作,但是又不希望当前的线程受到阻塞。此时,就可以使用 EventHandler 机制。EventHandler 是 HarmonyOS 用于处理线程间通信的一种机制,…...
执行 npm报错 Cannot find module ‘../lib/cli.js‘
报错 /usr/local/node/node-v18.20.4-linux-x64/bin/npm node:internal/modules/cjs/loader:1143 throw err; ^ Error: Cannot find module ../lib/cli.js Require stack: - /usr/local/node/node-v18.20.4-linux-x64/bin/npm at Module._resolveFilename (node:inter…...

基于SpringBoot+Vue+MySQL的国产动漫网站
系统展示 用户前台界面 管理员后台界面 系统背景 随着国内动漫产业的蓬勃发展和互联网技术的快速进步,动漫爱好者们对高质量、个性化的国产动漫内容需求日益增长。然而,市场上现有的动漫平台大多以国外动漫为主,对国产动漫的推广和展示存在不…...
AUTOSAR汽车电子嵌入式编程精讲300篇-基于CAN总线的气动控制
目录 前言 知识储备 什么是气动控制: 气动控制基础知识 一、气动元件 二、气路设计 三、气动控制系统 气动控制系统构成图 气动控制系统基本组成功能图 几种常见的气动执行元件实物图 常用气动压力控制阀实物图 常用气动流动控制阀实物图 电磁控制换向发实物图 部…...

Ubuntu 20.04 内核升级后网络丢失问题的解决过程
在 Ubuntu 系统中,内核升级是一个常见的操作,旨在提升系统性能、安全性和兼容性。然而,有时这一操作可能会带来一些意外的副作用,比如导致网络功能的丧失。 本人本来是想更新 Nvidia 显卡的驱动,使用 ubuntu-drivers …...

论文解读《LaMP: When Large Language Models Meet Personalization》
引言:因为导师喊我围绕 “大语言模型的个性化、风格化生成” 展开研究,所以我就找相关论文,最后通过 ACL 官网找到这篇,感觉还不错,就开始解读吧! “说是解读,其实大部分都是翻译哈哈哈&#x…...

Excel VLOOKUP函数怎么用?vlookup函数的使用方法及案例
大家好,这里是效率办公指南! 🔎 在Excel的世界里,VLOOKUP函数无疑是查询和数据分析中的明星。无论是从庞大的数据表中提取特定信息,还是进行数据的快速匹配,VLOOKUP都能大显身手。今天,我们将深…...

专为汽车功能应用打造的 MLX90376GGO、MLX90377GGO、MLX90377GDC-ADB-280 Triaxis®磁位置传感器 IC
一、MLX90376 Triaxis堆叠式高性能位置传感器芯片(模拟/PWM/SENT/SPC) MLX90376GGO-ABA-600 MLX90376GGO-ABA-630 MLX90376GGO-ABA-680 MLX90376是一款磁性绝对位置传感器芯片,适用于要求具备抗杂散磁场干扰性能的360旋转汽车应用。它提供…...

34.贪心算法1
0.贪心算法 1.柠檬水找零(easy) . - 力扣(LeetCode) 题目解析 算法原理 代码 class Solution {public boolean lemonadeChange(int[] bills) {int five 0, ten 0;for (int x : bills) {if (x 5) // 5 元:直接收下…...

DataX实战:从MongoDB到MySQL的数据迁移--修改源码并测试打包
在现代数据驱动的业务环境中,数据迁移和集成是常见的需求。DataX,作为阿里云开源的数据集成工具,提供了强大的数据同步能力,支持多种数据源和目标端。本文将介绍如何使用DataX将数据从MongoDB迁移到MySQL。 环境准备 安装MongoDB…...

Axure设计之表格列冻结(动态面板+中继器)
在Web端产品设计中,复杂的表格展示是常见需求,尤其当表格包含大量列时,如何在有限的屏幕空间内优雅地展示所有信息成为了一个挑战。用户通常需要滚动查看隐藏列,但关键信息列(如ID、操作按钮等)在滚动时保持…...