2023 年 数维杯(B题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2021年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。
让我们来看看数维杯(B题)!
在这里插入图片描述

问题重述:

问题B:棉秆热解的催化反应

随着全球对可再生能源的需求增加,生物质能源因其成熟的可再生能源来源而受到广泛关注。棉秆作为一种农业废弃物,因其富含纤维素和木质素等生物质成分而被视为重要的生物质资源。尽管棉秆的热解可以产生各种形式的可再生能源,但其热解产品的质量和产量受到多种因素的影响,如热解温度和催化剂。因此,研究棉秆热解产物(附录中有名词定义)的机制和性质,以及研究催化剂在热解过程中的机制和影响对于棉秆的高效利用和可持续发展具有重要意义。某个化学工程实验室采用模型化合物法建立了热解组合:硫脱灰灰与棉秆以及硫脱灰灰与模型化合物。通过在不同混合比下对这些热解组合进行热解,以研究硫脱灰灰对棉秆热解产物生成的催化机制和影响。同时,在选择模型化合物时,需要考虑它们在实验过程中的可控性和稳定性,以及它们对棉秆热解的贡献。CE(纤维素寡糖)和LG(木质素)是棉秆中纤维素和木质素的代表性成分,可以更精细地控制实验条件,以研究硫脱灰灰对不同生物质成分的目标催化效应。因此,选择CE和LG作为模型化合物是基于对棉秆生物质组成和化学结构特性的合理判断。实验结果见附录1和附录2。硫脱灰灰/生物质热解实验采用固定床热解,在混合比例为10/100、20/100、30/100、40/100、50/100、60/100、80/100和100/100的情况下进行。这些混合比例的选择基于在这些实验条件下平行实验的相对误差约为5%。如果选择的混合比例太小,如5/100或7/100,相对误差将对实验结果产生显著影响,严重影响实验的探索和优化过程。如果能够使用数学模型和人工智能学习来预测在有限数据条件下的热解产品产量或产量,将不仅极大地减少实验优化所需的时间,还将为热解产品分布变化趋势提供准确指导。请通过数学建模回答以下问题:

  1. 对附录I中的每个热解组合,分析与相应热解组合的混合比相关的热解产物(焦油、水、焦渣、合成气)产量,并解释硫脱灰灰在作为催化剂时是否在促进棉秆、纤维素和木质素热解中发挥重要作用?
  2. 根据附录II,讨论每个三种热解组合的混合比对热解气体产量的影响,并通过制作相应的图像进行解释。
  3. 在相同硫脱灰灰比例的催化作用下,CE和LG的热解产物产量以及热解气体组分的产量是否有显著差异?请提供原因。
  4. 如何建立硫脱灰灰对CE和LG等模型化合物的催化反应机理模型,并对反应动力学进行建模和分析?
  5. 请使用数学模型或人工智能学习方法,在有限数据条件下预测热解产物的产量或数量。

问题一

  1. 建立回归模型:

考虑使用混合比例X和硫脱灰灰的催化作用D对热解产物 Y进行建模:

Y = β 0 + β 1 X + β 2 D + β 3 X D + ϵ Y = \beta_0 + \beta_1 X + \beta_2 D + \beta_3 XD + \epsilon Y=β0+β1X+β2D+β3XD+ϵ

其中:

  • Y 是热解产物的产量。
  • X是混合比例。
  • D是硫脱灰灰的催化作用(取1表示使用,0表示不使用)。
  • β 0 \beta_0 β0 是截距。
  • β 1 \beta_1 β1 是混合比例的系数。
  • β 2 \beta_2 β2是硫脱灰灰催化作用的系数。
  • β 3 \beta_3 β3是混合比例和硫脱灰灰催化作用的交互项的系数。
  • ϵ \epsilon ϵ是误差项。
  1. 最小二乘法估计参数:

最小二乘法的目标是最小化残差平方和:

Minimize  ∑ i = 1 n ( Y i − ( β 0 + β 1 X i + β 2 D i + β 3 X i D i ) ) 2 \text{Minimize } \sum_{i=1}^{n} (Y_i - (\beta_0 + \beta_1 X_i + \beta_2 D_i + \beta_3 X_iD_i))^2 Minimize i=1n(Yi(β0+β1Xi+β2Di+β3XiDi))2

对模型参数 β 0 , β 1 , β 2 , β 3 \beta_0, \beta_1, \beta_2, \beta_3 β0,β1,β2,β3 进行最小二乘法估计,可以得到估计值 β ^ 0 , β ^ 1 , β ^ 2 , β ^ 3 \hat{\beta}_0, \hat{\beta}_1, \hat{\beta}_2, \hat{\beta}_3 β^0,β^1,β^2,β^3

  1. 验证参数显著性:

通过 t 检验来验证参数的显著性。对每个参数进行 t 检验,检验的零假设为参数等于零,备择假设为参数不等于零。如果 t 统计量的 p 值小于显著性水平(通常设为0.05),则可以拒绝零假设,认为该参数是显著的。

这个过程可以使用统计软件进行实施,例如Python中的statsmodels或R中的lm函数。在这些软件中,通常可以得到参数估计、t统计量和p值等信息,用于判断模型的拟合效果和参数的显著性。

import pandas as pd
import statsmodels.api as sm

# 读取数据
data = pd.read_excel('附件I.xlsx')  # 假设数据存储在Excel文件中

# 数据预处理
X = data[['混合比例', '硫脱灰灰']]
Y = data['热解产物产量']

# 添加截距项
X = sm.add_constant(X)

# 拟合回归模型
model = sm.OLS(Y, X).fit()

# 打印回归结果摘要
print(model.summary())

# 参数显著性检验
p_values = model.pvalues
print("\n参数显著性检验:")
for i in range(len(p_values)):
    print(f"参数 {model.params.index[i]} 的 p 值为 {p_values[i]}")

# 预测值
predictions = model.predict(X)

# 残差分析
residuals = model.resid
print("\n残差分析:")
print("平均残差:", residuals.mean())
print("残差标准差:", residuals.std())

# 绘制预测值与实际值的散点图
import matplotlib.pyplot as plt
#见完整版代码

问题二

  1. 热解组合回归模型建立:

    对于每个热解组合,建立一个回归模型,将混合比例 X作为自变量,热解气体产量(例如,H_2、CO、CO_2、CH_4等)作为因变量。这样的模型可以表示为:

Y i = β 0 i + β 1 i X + ϵ i Y_i = \beta_{0i} + \beta_{1i}X + \epsilon_i Yi=β0i+β1iX+ϵi

其中 Y i Y_i Yi 是热解气体产量, β 0 i \beta_{0i} β0i 是截距, β 1 i \beta_{1i} β1i是混合比例的系数, ϵ i \epsilon_i ϵi是误差项。对于每个热解组合,都会有一个相应的模型。

  1. 最小二乘法参数估计:

    使用最小二乘法对每个热解组合的模型进行参数估计,得到相应的模型参数。

  2. 参数显著性检验:

    对于每个热解组合的模型,进行参数显著性检验,判断混合比例的系数是否显著不等于零。这可以通过 t 检验或 F 检验来实现。显著性检验结果将有助于确定混合比例是否对热解气体产量产生显著影响。

  3. 制作图像进行解释:

    对于每个热解组合,可以制作散点图或折线图,横轴是混合比例 (X),纵轴是相应的热解气体产量。这样的图像有助于直观地理解混合比对热解气体产量的影响。可以分别绘制每个气体的图像,也可以考虑绘制多个气体在同一图中进行对比。

  4. 模型评估:

    在建立模型后,进行模型评估,检查残差是否符合模型假设,如正态性、独立性和同方差性等。这有助于验证模型是否适用于给定数据。

import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns

# 读取数据
data = pd.read_excel('附件II.xlsx')

# 遍历每个热解组合
for combination in data['热解组合'].unique():
    subset = data[data['热解组合'] == combination]

    # 数据预处理
    X = subset[['混合比例']]
    Y = subset[['H2', 'CO', 'CO2', 'CH4']]  # 假设有这些热解气体产量的数据

    # 添加截距项
    X = sm.add_constant(X)

    # 拟合回归模型
    model = sm.OLS(Y, X).fit()

    # 打印回归结果摘要
    print(f"\n热解组合: {combination}")
    print(model.summary())

    # 绘制残差图
    plt.figure(figsize=(12, 8))
    for i, gas in enumerate(Y.columns):
        plt.subplot(2, 2, i + 1)
        sns.residplot(x=model.predict(), y=model.resid, lowess=True, color='blue')
        plt.title(f'Residuals vs Fitted for {gas}')
        plt.xlabel('Fitted values')
        plt.ylabel('Residuals')

问题三

  1. 热解产物建模:

    a. 选择模型类型: 针对CE和LG两种模型类型,分别建立回归模型。对于热解产物(tar、water、char等),建立对应的回归模型,其中混合比例 (X) 是自变量。

    b. 数据预处理: 提取所需的数据,包括混合比例和热解产物的产量。对数据进行处理,确保数据质量和一致性。

    c. 回归模型建立: 使用最小二乘法拟合回归模型,建立混合比例与热解产物之间的关系。

    d. 模型评估: 检查模型的拟合效果,分析残差是否满足模型假设,如正态性、独立性和同方差性。

    e. 参数显著性检验: 对回归模型的参数进行显著性检验,判断混合比例的系数是否显著不等于零。

  2. 热解气体建模:

    a. 选择模型类型: 对于CE和LG两种模型类型,分别建立回归模型。对于热解气体(H2、CO、CO2、CH4等),建立对应的回归模型,其中混合比例 (X) 是自变量。

    b. 数据预处理: 提取所需的数据,包括混合比例和热解气体的产量。对数据进行处理,确保数据质量和一致性。

    c. 回归模型建立: 使用最小二乘法拟合回归模型,建立混合比例与热解气体之间的关系。

    d. 模型评估: 检查模型的拟合效果,分析残差是否满足模型假设,如正态性、独立性和同方差性。

    e. 参数显著性检验: 对回归模型的参数进行显著性检验,判断混合比例的系数是否显著不等于零。

  3. 结果解释与比较:

    a. 制作图像: 为每个模型制作图像,以直观展示混合比例对热解产物和热解气体的影响。可以考虑绘制散点图、折线图等。

    b. 参数比较: 比较两种模型中混合比例的系数,看是否存在显著差异。这有助于理解不同模型对热解产物和热解气体产量的影响是否相似。

    c. 模型解释: 解释模型中各项参数的物理或化学意义,帮助理解混合比例对热解产物和热解气体的具体影响机制。

    d. 总结结论: 对CE和LG的热解产物和热解气体建立的模型进行综合比较,总结各自特点,并得出对于相同硫脱灰灰作用下的热解过程的结论。

import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns

# 读取数据
data = pd.read_excel('附件III.xlsx')

# 遍历每个模型类型
for model_type in data['模型类型'].unique():
    subset = data[data['模型类型'] == model_type]

    # 数据预处理
    X = subset[['混合比例']]
    Y = subset[['tar', 'water', 'char', 'H2', 'CO', 'CO2', 'CH4']]

    # 添加截距项
    X = sm.add_constant(X)

    # 拟合回归模型
    model = sm.OLS(Y, X).fit()

    # 打印回归结果摘要
    print(f"\n模型类型: {model_type}")
    print(model.summary())

    # 绘制残差图
    plt.figure(figsize=(12, 8))
    for i, component in enumerate(Y.columns):
        plt.subplot(2, 4, i + 1)
        sns.residplot(x=model.predict(), y=model.resid, lowess=True, color='blue')
        plt.title(f'Residuals vs Fitted for {component}')
        plt.xlabel('Fitted values')
        plt.ylabel('Residuals')
    plt.tight_layout()
    plt.show()

    # 参数显著性检验
    p_values = model.pvalues
    print("\n参数显著性检验:")
    for i in range(len(p_values)):
        print(f"参数 {model.params.index[i]} 的 p 值为 {p_values[i]}")

    # 模型评估
    print("\n模型评估:")
    print("平均残差:", model.resid.mean())
    print("残差标准差:", model.resid.std())

    # 绘制预测值与实际值的散点图
    plt.figure(figsize=(12, 8))
    for i, component in enumerate(Y.columns):
        plt.subplot(2, 4, i + 1)
        plt.scatter(X['混合比例'], Y[component], label=f"{component} 实际值")
        plt.plot(X['混合比例'], model.predict(X), label=f"{component} 预测值")

        plt.xlabel('混合比例')
        plt.ylabel(f'{component} 产量')

问题四

  1. 选择一级反应动力学模型:

    • 假设反应遵循一级反应动力学,即 A → B A \rightarrow B AB的简化反应。该模型的速率方程可表示为:

    − d [ A ] d t = k [ A ] -\frac{d[A]}{dt} = k[A] dtd[A]=k[A]

    这里,[A] 是反应物 A 的浓度,k 是速率常数。

  2. 数据预处理:

    • 提取实验数据,包括反应时间 (t) 和产物的浓度。确保数据质量,进行异常值处理和缺失值填充。
  3. 模型参数估计:

    • 使用最小二乘法拟合一级反应动力学模型,估计速率常数 (k)。

ln ⁡ ( [ A ] 0 / [ A ] ) = k t \ln([A]_0/[A]) = kt ln([A]0/[A])=kt

其中 [ A ] 0 [A]_0 [A]0是初始反应物 A 的浓度。

  1. 模型评估与 t 检验:

    • 检查模型的拟合效果,分析残差是否满足模型假设。
    • 进行 t 检验,检验速率常数k是否显著不等于零。如果 k 的 p 值小于显著性水平(通常设定为 0.05),则可以拒绝k=0的假设。
  2. 模型选择与比较:

    • 如果有其他可能的反应动力学模型,使用信息准则(如AIC、BIC)进行模型选择和比较。
  3. 预测与解释:

    • 利用建立的一级反应动力学模型进行预测,分析反应时间对产物浓度的影响。
    • 解释模型中的速率常数 k,了解反应动力学的化学或物理含义。
  4. 灵敏度分析:

    • 进行灵敏度分析,了解模型参数对预测结果的影响程度。
  5. 结果可视化:

    • 制作图表,展示建立的一级反应动力学模型在CE和LG反应过程中的拟合情况,以及反应时间与产物浓度之间的关系。
  6. 结论与讨论:

    • 总结对CE和LG的一级反应动力学建模结果,讨论模型的适用性、局限性和未来可能的改进方向。
import pandas as pd
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_excel('反应动力学数据.xlsx')

# 数据预处理
t = data['反应时间'].values
A_concentration = data['反应物浓度'].values

# 添加截距项
t = sm.add_constant(t)

# 拟合一级反应动力学模型
model = sm.OLS(np.log(A_concentration), t).fit()

# 打印回归结果摘要
print(model.summary())

问题五

  1. 数据准备与理解:

    • 理解实验数据的特征和分布,确保数据集包括输入特征(如温度、时间、催化剂浓度)和目标变量(产物产量)。
    • 将数据分割为训练集和测试集。
  2. 特征选择与工程:

    • 选择合适的输入特征,可考虑使用领域知识和特征重要性分析。
    • 对特征进行必要的预处理,如归一化或标准化。
  3. 建立随机森林模型:

    • 使用训练集训练随机森林回归模型,可以使用Scikit-Learn中的RandomForestRegressor类。
    • 设置合适的超参数,如树的数量(n_estimators)。
  4. 模型评估:

    • 使用测试集评估模型性能,使用均方误差(MSE)等指标来评估预测效果。
  5. 特征重要性分析:

    • 随机森林提供了特征重要性的信息,可通过feature_importances_属性获取。
    • 分析特征重要性,了解哪些特征对于预测产物产量影响最大。
  6. 调参优化:

    • 调整随机森林的超参数,如树的深度、最小分割样本数等,以优化模型性能。
    • 可以使用交叉验证等技术进行调参。
  7. 结果可视化:

    • 将实际产物产量与模型预测进行可视化,通过散点图或其他图表比较两者。
  8. 模型解释与应用:

    • 解释模型的预测结果,了解各特征对产物产量的相对重要性。
    • 将模型应用于新数据集进行预测,如果性能满足要求,可以考虑部署模型到实际应用中。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_excel('热解产物数据.xlsx')

# 数据预处理
X = data[['温度', '时间', '催化剂浓度']]  # 输入特征
y = data['产物产量']  # 目标变量

# 分割数据集为训练集和测试集
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)

# 预测测试集
predictions = model.predict(X_test)

# 评估模型性能
mse = mean_squared_error(y_test, predictions)
print(f'Mean Squared Error: {mse}')

# 可视化预测结果
plt.scatter(y_test, predictions)

更多完整思路+代码看这里:
2023 年 数维杯(B题)国际大学生数学建模挑战赛

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

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

相关文章

JSP在Scriptlet中编写java代码的形式

我们想在jsp界面中去写java代码,就需要将java代码写在Scriptlet中 虽然说 有这种方式 但是 目前 大部分都会不建议你往jsp中去写java代码 因为 目前都在推广前后端分离 这也是jsp使用面有没有少的原因 jsp也建议解耦 不要让你的程序耦合性太高 还是前端是前端 后端是…

【Ubuntu·系统·的Linux环境变量配置方法最全】

文章目录 概要读取环境变量的方法小技巧 概要 在Linux环境中,配置环境变量是一种常见的操作,用于指定系统或用户环境中可执行程序的搜索路径。 读取环境变量的方法 在Linux中,可以使用以下两个命令来读取环境变量: export 命令…

JVM——运行时数据区(程序计数器+栈)

目录 1.程序计数器2.栈Java虚拟机栈 - 栈帧的组成1.Java虚拟机栈-局部变量表3.Java虚拟机栈-操作数栈3.Java虚拟机栈-帧数据 3.Java虚拟机栈-栈内存溢出4.本地方法栈 ⚫ Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。 ⚫ 《Java虚拟机规范》中…

栈和队列的实现及相关面试题

栈和队列 栈概念与结构栈的功能栈的实现头文件Stack.h栈的结构体 Stack 源文件Stack.c初始化 void StackInit(Stack* ps)压栈 void StackPush(Stack* ps, STDataType data)出栈 void StackPop(Stack* ps)返回栈顶的值 STDataType StackTop(Stack* ps)返回栈中元素的个数 int St…

HTML5+CSS3小实例:悬停放大图片的旅游画廊

实例:悬停放大图片的旅游画廊 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&…

2、24 个常见的 Docker 疑难杂症处理技巧(二)

7Docker 容器中文异常 容器存在问题话&#xff0c;记得优先在官网查询 [问题起因] 今天登陆之前部署的 MySQL 数据库查询&#xff0c;发现使用 SQL 语句无法查询中文字段&#xff0c;即使直接输入中文都没有办法显示。 # 查看容器支持的字符集 rootb18f56aa1e15:# locale -a …

局部指令和全局指令的注册和使用

全局指令 先写一个js文件 import store from /store const directivePlugin {install(Vue) {Vue.directive(checkBtn, {inserted(el, binding) {// el: 指令绑定的那个元素对象 dom// binding.value: 指令等于号后面绑定的表达式的值 v-if"xxx"// 拿到el 拿到v…

gbase8a 认证培训课后题(一)

gbase8a 第一阶段练习题 第一次练习&#xff08;4选4&#xff09;1234 第二次练习&#xff08;5选5&#xff09;12345 第三次练习&#xff08;5选3&#xff09;12345 第四次练习&#xff08;6选4&#xff09;123456 第五次练习&#xff08;7选4&#xff09;1234567 第六次练习&…

解决requests库中UnicodeError异常的问题

摘要&#xff1a;本文介绍了使用requests库时可能遇到的UnicodeError异常&#xff0c;并提供了两种解决方法&#xff0c;以确保你的代码能够正常处理URL。 问题背景 在使用requests库时&#xff0c;当尝试获取类似’http://.example.com’这样的URL时&#xff0c;可能会遇到Un…

使用requests库下载文件的技术解析

目录 一、引言 二、使用requests库下载文件的基本流程 三、请求设置和响应处理 1、请求头部设置 2、跟随重定向 3、处理HTTP认证 4、响应状态码检查 5、响应头处理 6、响应体处理 四、异常处理 1、网络连接问题 2、HTTP请求错误 3、文件写入错误 总结 一、引言 …

【PHP】医院麻醉临床信息系统源码

麻醉临床信息系统以服务围术期临床业务工作的开展为核心&#xff0c;为医护人员、业务管理人员、院级领导提供流程化、信息化、自动化、智能化的临床业务综合管理平台。 麻醉信息系统处理的数据包含病人的手术信息、麻醉信息、病人手术过程中从监护仪上采集到的数据和病人情况等…

【第2章 Node.js基础】2.7 Node.js 的流

2.7 Node.js 的流 什么是流 流不是 Node.js 特有的概念。它们是几十年前在 Unix 操作系统中引入的。 我们可以把流看作这些数据的集合&#xff0c;就像液体一样&#xff0c;我们先把这些液体保存在一个容器里&#xff08;流的内部缓冲区 BufferList&#xff09;&#xff0c;…

[云原生2.] Kurbernetes资源管理 ---- (陈述式资源管理方式)

文章目录 1. K8s管理资源的方法类别1.1 陈述式资源管理方式1.2 声明式资源管理方式1.3 GUI式资源管理方法 2. 陈述式资源管理方式2.1 命令行工具 ---- Kubelet2.1.1 简介2.1.2 特性2.1.3 kubelet拓展命令2.1.4 kubectl基本语法2.1.5 Kubectl工具的自动补全 2.2 k8s Service 的类…

飞天使-django之数据库简介

文章目录 增删改查解决数据库不能存储中文问题创建表数据类型表的基本操作主键唯一键 unique外键实战 增删改查 四个常用的语句查询 : insert delete update select insert into student(Sno,name) values(95001,"张三") delete from student where name张三 upda…

关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)

当在Git中有多个开发者在同一个分支上工作时&#xff0c;可能会发生分支冲突。分支冲突指的是多个开发者在同一时间修改相同的代码文件&#xff0c;导致Git无法自动合并这些更改。 比如说&#xff1a;我在github上进行了md文件的修改&#xff0c;我在本地仓库里面也进行md文件…

Python---数据序列中的公共方法

公共方法就是 支持大部分 数据 序列。 常见公共方法---简单 运算符描述支持的容器类型合并字符串、列表、元组*复制字符串、列表、元组in元素是否存在字符串、列表、元组、字典not in元素是否不存在字符串、列表、元组、字典 案例&#xff1a; 合并 代码&#xff1a; # …

AD教程 (十六)常用PCB封装的直接调用

AD教程 &#xff08;十六&#xff09;常用PCB封装的直接调用 打开已经做好的PCB文件 点击设计&#xff0c;生成PCB库&#xff0c;会自动把PCB里所用到的所有封装&#xff0c;全部自动生成 CtrlA 将所有元器件的封装全部选中&#xff08;或者只选中所需要的&#xff09;&#x…

成功解决 IDEA 2020 版本 代码报错不提示的几种方案

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 前言 今天中午写代码的时候&#xff0c;ID…

YOLOV5部署Android Studio安卓平台NCNN

坑非常多&#xff0c;兄弟们&#xff0c;我已经踩了三天的坑了&#xff0c;我这里部署了官方的yolov5s和我自己训练的yolov5n的模型 下载Android Studio&#xff0c;配置安卓开发环境&#xff0c;这个过程比较漫长。 安装cmake&#xff0c;注意安装的是cmake3.10版本。 根据手机…

著名的《NP问题》是个啥概念?

一、说明 关于复杂问题&#xff0c;始终是计算机科学挡在路前的一块巨石。所谓一个问题有解&#xff0c;但需要秒完成&#xff0c;这相当于说&#xff0c;此类问题无解。还有一类问题是说不清楚到底有没有一个具体解法&#xff0c;该解法能在多项式时间复杂函数上完成&#xff…