WLAN组网中网络吞吐量建模 B题【华为杯】研究生数学建模 完整思路+完整代码

WLAN组网中网络吞吐量建模:问题一求解

摘要

本文基于随机森林回归模型,构建了一个优化模型,用于预测WLAN系统中AP的发送机会。通过分析网络拓扑、业务流量、门限、节点间RSSI等特征对AP发送机会的影响,模型能够在满足约束条件的前提下,准确预测AP发送数据帧序列的总时长。

1. 引言

无线局域网(WLAN)是一种无线计算机网络,使用无线信道作为传输介质连接两个或多个设备。WLAN基于IEEE 802.11标准不断演进,驱动力是人们的业务诉求,从语音/邮件到网页和视频以及更加复杂的虚拟现实/增强现实,WLAN的部署场景也从家庭场景迅速覆盖到无线化办公、教育、医疗、工业制造、仓储等场景。下一代Wi-Fi 7标准支持峰值速率30Gbps,但在高密部署场景下,节点密集度增加,相邻小区覆盖范围重叠使得干扰、碰撞等问题突出,实际部署带宽和数据传输速率大幅下降,因此可支持系统吞吐量仍然有限,需要对WLAN系统进一步优化。

2. 问题描述

问题1要求根据附件WLAN网络实测训练集中所提供的网络拓扑、业务流量、门限、节点间RSSI的测试基本信息,分析其中各参数对AP发送机会的影响,并给出影响性强弱的顺序。通过训练的模型,预测每个AP的发送机会,即发送数据帧序列的总时长(seq_time),并通过测试集预测AP发送数据帧序列的总时长。

3. 求解思路

1. 数据预处理:
   - 数据清洗:处理缺失值和异常值,确保数据的完整性和准确性。
   - 特征提取:从网络拓扑、业务流量、门限、节点间RSSI等信息中提取特征。
2. 特征分析:
   - 网络拓扑:分析AP和STA的部署位置、BSS编号等对AP发送机会的影响。
   - 业务流量:分析流量类型(UDP或TCP)、数据长度等对AP发送机会的影响。
   - 门限信息:分析包检测门限(PD)、能量检测门限(ED)、NAV门限等对AP发送机会的影响。
   - 节点间RSSI:分析AP和STA之间的RSSI值对AP发送机会的影响。
3. 特征选择:
   - 使用统计分析和特征选择算法(如皮尔逊相关系数、互信息等)评估各特征对AP发送机会的影响程度,并排序。
4. 模型训练:
   - 模型选择:选择适合的机器学习模型(如线性回归、决策树、随机森林等)进行训练。
   - 模型训练:使用训练集中的数据训练模型,预测AP发送数据帧序列的总时长

问题一预测图:

问题一完整可运行代码:

# -*- coding: utf-8 -*-

import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 示例数据
N = 1000  # 样本数量
features = ['network_topology', 'traffic_type', 'packet_length', 'pd_threshold', 'ed_threshold', 'nav_threshold', 'rssi']

# 随机生成特征数据
data = pd.DataFrame({
    'network_topology': np.random.randint(1, 5, N),
    'traffic_type': np.random.choice(['UDP', 'TCP'], N),
    'packet_length': np.random.randint(500, 1500, N),
    'pd_threshold': np.random.uniform(-90, -60, N),
    'ed_threshold': np.random.uniform(-90, -60, N),
    'nav_threshold': np.random.uniform(-90, -60, N),
    'rssi': np.random.uniform(-100, -30, N),
    'seq_time': np.random.uniform(0.1, 10, N)  # 随机生成seq_time
})

# 将分类特征转换为数值特征
data['traffic_type'] = data['traffic_type'].map({'UDP': 0, 'TCP': 1})

# 特征提取
X = data[features]
y = data['seq_time']

# 数据分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 模型训练
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 模型评估
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f'均方误差: {mse}')

# 交叉验证
cv_scores = cross_val_score(model, X, y, cv=5, scoring='neg_mean_squared_error')
print(f'交叉验证均方误差: {-np.mean(cv_scores)}')

# 预测
test_data = pd.DataFrame({
    'network_topology': np.random.randint(1, 5, 10),
    'traffic_type': np.random.choice(['UDP', 'TCP'], 10),
    'packet_length': np.random.randint(500, 1500, 10),
    'pd_threshold': np.random.uniform(-90, -60, 10),
    'ed_threshold': np.random.uniform(-90, -60, 10),
    'nav_threshold': np.random.uniform(-90, -60, 10),
    'rssi': np.random.uniform(-100, -30, 10)
})

# 将分类特征转换为数值特征
test_data['traffic_type'] = test_data['traffic_type'].map({'UDP': 0, 'TCP': 1})

X_test_set = test_data[features]
y_test_pred = model.predict(X_test_set)
print(f'预测的seq_time: {y_test_pred}')

# 可视化结果
plt.figure(figsize=(14, 6))

# 真实值 vs 预测值
plt.subplot(1, 2, 1)
plt.scatter(y_test, y_pred, alpha=0.7)
plt.xlabel('真实值')
plt.ylabel('预测值')
plt.title('真实值 vs 预测值')
plt.grid(True)

# 特征重要性
importances = model.feature_importances_
indices = np.argsort(importances)[::-1]
plt.subplot(1, 2, 2)
plt.bar(range(X.shape[1]), importances[indices], color='b', align='center')
plt.xticks(range(X.shape[1]), [features[i] for i in indices], rotation=45)
plt.xlabel('特征')
plt.ylabel('重要性')
plt.title('特征重要性')
plt.grid(True)

plt.tight_layout()
plt.savefig('result.png')
plt.show()

B题完整思路+代码如下:

需要研赛B题完整思路及结论的赛友们,可

关注——

wei xin——数模充电站  获取

数模充电站也会在gong zhong hao免费更新其他题目的思路+参考代码

预祝各位赛友在本次比赛中取得好成绩!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值