Python 实现的运筹优化系统数学建模详解(多目标规划模型)
一、引言
在数学建模的广阔领域中,多目标规划模型占据着极为重要的地位。它致力于在复杂的实际场景里,同时优化多个相互冲突的目标,寻求一组决策变量,让多个目标函数在满足特定约束条件下达到某种平衡。这种模型广泛应用于生产调度、资源分配、投资决策等众多领域,为解决现实中的复杂问题提供了强大的工具。本文将深入探究多目标规划模型的核心原理、详细的算法实现过程,深入解读其 Python 代码,并全面探讨它在各类实际场景中的应用。
二、多目标规划模型原理
2.1 模型描述
多目标规划模型的一般形式为:在给定的约束条件下,对多个目标函数 \(f_1(x), f_2(x), \cdots, f_n(x)\) 进行优化。与单目标规划不同,多目标规划通常不存在一个绝对最优解能使所有目标函数同时达到最优,而是存在一组 Pareto 最优解。这些解的特性是,在不使其他目标变差的情况下,无法进一步改进任何一个目标。
从数学表达式来看,多目标规划问题可表示为: \(\begin{align*} \min_{x} &\quad (f_1(x), f_2(x), \cdots, f_n(x)) \\ \text{s.t.} &\quad g_j(x) \leq 0, \quad j = 1,2,\cdots,p \\ &\quad h_k(x) = 0, \quad k = 1,2,\cdots,q \end{align*}\) 其中,x 为决策变量向量,\(f_i(x)\) 是关于 x 的目标函数,\(g_j(x)\) 和 \(h_k(x)\) 分别是不等式约束函数和等式约束函数。
2.2 约束条件
在实际问题中,决策变量 x 必然受到各种约束条件的限制。常见的约束条件包括:
- 边界约束: \(lb_j \leq x_j \leq ub_j, \quad j = 1,2,\cdots,m\) 这里,\(lb_j\) 和 \(ub_j\) 分别是决策变量 \(x_j\) 的下限和上限,限制了变量的取值范围。
- 线性不等式约束: \(\sum_{j=1}^{m} a_{ij}x_j \leq b_i, \quad i = 1,2,\cdots,p\) 其中 \(a_{ij}\) 和 \(b_i\) 为给定的系数和常数,描述了变量之间的线性关系限制。
- 线性等式约束: \(\sum_{j=1}^{m} c_{kj}x_j = d_k, \quad k = 1,2,\cdots,q\) \(c_{kj}\) 和 \(d_k\) 是相应的系数和常数,规定了变量必须满足的等式关系。
三、多目标规划模型的算法实现讲解
3.1 转化为标准优化问题
多目标规划问题的求解通常需要将其转化为更容易处理的形式。一种常见的方法是加权法,通过为每个目标函数赋予一个权重,将多个目标函数组合成一个综合目标函数。假设 \(w_1, w_2, \cdots, w_n\) 是各目标函数的权重,且 \(\sum_{i=1}^{n} w_i = 1\),则综合目标函数可以表示为: \(F(x) = \sum_{i=1}^{n} w_i f_i(x)\) 此时,原多目标规划问题就转化为单目标优化问题: \(\begin{align*} \min_{x} &\quad F(x) \\ \text{s.t.} &\quad g_j(x) \leq 0, \quad j = 1,2,\cdots,p \\ &\quad h_k(x) = 0, \quad k = 1,2,\cdots,q \end{align*}\) 另一种方法是使用目标规划法,引入偏差变量,将目标函数转化为约束条件,再通过最小化偏差变量来求解。
3.2 选择优化算法
对于转化后的标准优化问题,可以运用多种优化算法进行求解,常见的算法如下:
- 线性规划算法:当目标函数和约束条件均为线性时,可使用单纯形法、内点法等线性规划算法。例如,在一些简单的资源分配问题中,目标函数和约束条件可以用线性方程表示,此时线性规划算法能够高效地找到最优解。
- 非线性规划算法:若目标函数或约束条件存在非线性部分,则需采用非线性规划算法。如序列二次规划(Sequential Quadratic Programming, SQP),它通过迭代求解一系列二次规划子问题来逼近最优解;还有遗传算法,它模拟生物进化过程,通过选择、交叉和变异等操作在解空间中搜索最优解,适用于复杂的非线性问题,尤其是解空间较大且难以用传统方法求解的情况。
- 智能优化算法:包括粒子群优化算法(Particle Swarm Optimization, PSO)、蚁群算法等。粒子群优化算法模拟鸟群觅食行为,通过粒子间的信息共享和相互协作来寻找最优解;蚁群算法则模拟蚂蚁觅食过程中分泌信息素的行为,通过信息素的积累和更新来引导搜索方向,这些算法在处理多峰、多约束等复杂问题时表现出良好的性能。
3.3 迭代求解过程
以序列二次规划算法(SQP)为例,其迭代求解过程大致如下:
- 初始化:给定决策变量 x 的初始值 \(x^0\),设置迭代次数 \(k = 0\),并设定收敛精度 \(\epsilon\)。
- 计算梯度信息:在当前迭代点 \(x^k\) 处,计算目标函数 \(F(x)\) 和约束函数 \(g_j(x)\)、\(h_k(x)\) 的梯度。
- 构建二次规划子问题:根据梯度信息,构建一个二次规划子问题,其目标函数是目标函数 \(F(x)\) 在 \(x^k\) 处的二阶泰勒展开近似,约束条件则基于原问题的约束条件在 \(x^k\) 处的线性化。
- 求解二次规划子问题:使用合适的二次规划算法求解构建的子问题,得到搜索方向 \(d^k\)。
- 确定步长:采用线搜索方法确定合适的步长 \(\alpha_k\),使得在沿着搜索方向 \(d^k\) 移动步长 \(\alpha_k\) 后,目标函数值得到足够的下降。
- 更新决策变量:根据步长和搜索方向更新决策变量,即 \(x^{k + 1} = x^k + \alpha_k d^k\)。
- 判断收敛条件:检查是否满足收敛条件,如 \(\| x^{k + 1} - x^k \| < \epsilon\) 或者目标函数值的变化小于某个阈值。若满足收敛条件,则停止迭代,输出最优解;否则,令 \(k = k + 1\),返回步骤 2 继续迭代。
四、代码详细解析(根据一个具体的例子展开)
4.1 导入必要的库
python
import numpy as np
from scipy.optimize import linprog
import matplotlib.pyplot as plt
numpy
库:Python 中用于科学计算的核心库,提供了高效的多维数组对象和丰富的数学函数。在代码中,我们利用它来处理数值计算,如创建和操作数组、进行线性代数运算等。scipy.optimize.linprog
:scipy
库中用于求解线性规划问题的函数,我们将借助它来求解多目标规划模型转化后的线性规划问题。matplotlib.pyplot
:用于数据可视化的库,可帮助我们绘制各种图表,直观展示多目标规划模型的结果,如权重与目标函数值的关系图等。
4.2 定义求解线性规划的函数
python
def solve_linear_programming(w1, w2, A, b, bounds,f0):"""求解线性规划问题参数:w1 (float): 目标函数中第一个变量的权重w2 (float): 目标函数中第二个变量的权重A (numpy.ndarray): 不等式约束的系数矩阵b (numpy.ndarray): 不等式约束的右侧向量bounds (tuple): 变量的边界返回:x (numpy.ndarray): 最优解fval (float): 最优目标函数值f1 (float): 第一个目标函数值f2 (float): 第二个目标函数值"""c = [w1 / f0[0] * 2 + w2 / f0[1] * 0.4, w1 / 30 * 5 + w2 / 2 * 0.3]result = linprog(c, A_ub=A, b_ub=b, bounds=bounds, method='highs')x = result.xfval = result.funf1 = 2 * x[0] + 5 * x[1]f2 = 0.4 * x[0] + 0.3 * x[1]return x, fval, f1, f2
- 参数说明:
w1
和w2
:分别为两个目标函数的权重,用于构建综合目标函数。A
和b
:定义不等式约束条件,A
是系数矩阵,b
是右侧向量。bounds
:指定决策变量的取值范围。f0
:包含两个目标函数的参考值,用于归一化目标函数系数。
- 函数内部逻辑:
- 首先根据权重和参考值计算综合目标函数的系数
c
。 - 然后使用
linprog
函数求解线性规划问题,得到最优解x
和最优目标函数值fval
。 - 最后根据最优解计算两个原始目标函数值
f1
和f2
,并将结果返回。
- 首先根据权重和参考值计算综合目标函数的系数
4.3 定义绘图函数
python
def plot_weight_vs_objective(weights, objectives, label, title):"""绘制权重与目标函数值的关系图参数:weights (numpy.ndarray): 权重数组objectives (list): 目标函数值列表label (str): 图例标签title (str): 图标题"""plt.plot(weights, objectives, label=label)plt.xlabel('f1的权重w1')plt.ylabel('目标函数值')plt.legend()plt.title(title)plt.grid()
- 参数说明:
weights
:包含不同权重值的数组,用于表示横坐标。objectives
:对应不同权重下的目标函数值列表,作为纵坐标数据。label
:用于在图例中标识曲线的名称。title
:设置图表的标题。
- 函数功能:使用
matplotlib
库绘制权重与目标函数值的关系曲线,通过设置坐标轴标签、添加图例、标题和网格,使图表更加清晰直观,方便观察权重变化对目标函数值的影响。
4.4 主程序部分
python
# 定义权重范围
weight_range = np.arange(0.1, 0.501, 0.001)# 定义约束条件
A = np.array([[-1, -1]])
b = np.array([-7])
lb = [0, 0]
ub = [5, 6]
bounds = [(lb[0], ub[0]), (lb[1], ub[1])]
#f1与f2的参考值
f0=[30,2]# 初始化列表
X1, X2, Fval, F1, F2 = [], [], [], [], []# 遍历不同权重组合,求解线性规划
for w1 in weight_range:w2 = 1 - w1x, fval, f1, f2 = solve_linear_programming(w1, w2, A, b, bounds,f0)X1.append(x[0])X2.append(x[1])Fval.append(fval)F1.append(f1)F2.append(f2)# 绘图
# 图片1, 权重与目标函数值的关系
plt.figure()
plot_weight_vs_objective(weight_range, F1, 'f1', '权重与目标函数值的关系')
plot_weight_vs_objective(weight_range, F2, 'f2', '')
# plt.show()# 图片2, 权重值与目标函数值的关系
plt.figure()
plot_weight_vs_objective(weight_range, X1, 'x1', '权重与目标函数值的关系')
plot_weight_vs_objective(weight_range, X2, 'x2', '')
# plt.show()# 图片3, 综合指标与权重的关系
plt.figure()
plot_weight_vs_objective(weight_range, Fval, 'Fval', '权重与目标函数值的关系')
plt.show()
- 权重范围与约束条件设置:
- 使用
np.arange
定义权重w1
的变化范围从0.1
到0.501
,步长为0.001
。 - 定义不等式约束条件,如矩阵
A
和向量b
表示-x1 - x2 <= -7
,即x1 + x2 >= 7
;同时设置决策变量x1
和x2
的边界bounds
。 - 给出两个目标函数的参考值
f0
。
- 使用
- 迭代求解与结果存储:
- 通过循环遍历不同的
w1
值,计算对应的w2
(因为w1 + w2 = 1
)。 - 调用
solve_linear_programming
函数求解线性规划问题,得到最优解x
、综合目标函数值fval
以及两个原始目标函数值f1
和f2
。 - 将每次迭代得到的
x1
、x2
、Fval
、F1
和F2
分别存储到对应的列表中。
- 通过循环遍历不同的
- 结果可视化:
- 使用
plot_weight_vs_objective
函数绘制三张图表:- 第一张图展示权重
w1
与两个原始目标函数值F1
和F2
的关系。 - 第二张图展示权重
w1
与最优解中两个变量x1
和x2
的关系。 - 第三张图展示权重
w1
与综合目标函数值Fval
的关系。通过这些图表,可以直观地分析权重变化对多目标规划结果的影响。
- 第一张图展示权重
- 使用
4.5 代码使用方法
- 运行代码前,需确保已安装
numpy
、scipy
和matplotlib
库。 - 代码运行后,无需手动输入数据,因为代码中已预先设定好权重范围、约束条件等参数。若要修改这些参数,可直接在代码中对应部分进行调整。例如,若要改变权重范围,可修改
weight_range = np.arange(0.1, 0.501, 0.001)
中的起始值、终止值和步长;若要修改约束条件,可调整A
、b
、lb
、ub
等变量的值。 - 代码运行结束后,会自动弹出三个图表窗口,分别展示不同的关系图,帮助用户直观了解多目标规划模型在不同权重下的结果变化。
五、多目标规划模型在数学建模中的应用场景
5.1 生产调度问题
在制造业中,企业常常面临生产调度的难题。例如,同时生产多种产品时,需要考虑最大化生产利润、最小化生产成本以及最小化生产时间等多个目标。不同产品的生产工艺、原材料消耗和市场价格各不相同,通过构建多目标规划模型,可以在满足生产设备能力、原材料供应等约束条件下,确定每种产品的最优生产数量和生产顺序。比如,对于生产两种产品的工厂,一种产品利润高但生产时间长,另一种产品利润低但生产时间短,利用多目标规划模型,根据市场需求和企业对利润、生产时间的侧重,找到最佳的生产组合,以实现企业效益的最大化平衡。
5.2 资源分配问题
资源分配是众多领域都会遇到的问题。以水资源分配为例,在一个区域内,农业灌溉、工业用水和居民生活用水都对水资源有需求。一方面要保证农业生产以维持粮食产量,这可能需要大量稳定的水资源供应;另一方面,工业用水对于区域经济发展至关重要,不同工业企业的用水需求和效益产出也不同;同时,居民生活用水是保障民生的基本需求。通过多目标规划模型,可以综合考虑各方面的用水需求、水资源总量限制以及不同用水用途的效益权重,制定出合理的水资源分配方案,实现水资源的高效利用和社会经济的可持续发展。类似的,在电力分配、人力资源分配等问题中,多目标规划模型也能发挥重要作用,平衡不同需求方的利益。
5.3 投资决策问题
在金融投资领域,投资者在选择投资项目时,通常希望同时实现多个目标。一方面,追求最大化投资回报率以获取更多收益;另一方面,要最小化投资风险,
确保资金的安全性;此外,部分投资者还会考虑投资项目的社会效益等其他目标。不同的投资项目具有不同的预期回报率、风险水平以及社会效益贡献。例如,投资新兴科技企业可能带来高回报率,但同时伴随着高风险;而投资传统基础设施项目,风险相对较低,但回报率也可能较为有限。通过构建多目标规划模型,投资者可以根据自身的风险偏好、收益预期以及对社会效益的重视程度,为各个目标函数赋予相应权重,在众多投资项目中筛选出最优的投资组合,实现投资目标的综合平衡。
5.4 交通规划问题
在城市交通规划中,多目标规划模型有着广泛的应用。例如,在规划新的公交线路或建设城市道路时,需要同时考虑多个目标。一是要最小化交通拥堵,通过合理规划路线和设置交通设施,提高道路的通行能力,减少车辆的行驶时间和等待时间;二是要最小化建设成本,包括土地购置费用、工程建设费用等,在满足交通需求的前提下,控制公共资源的投入;三是要最大化交通安全性,通过科学的道路设计、交通信号设置等措施,降低交通事故的发生率。利用多目标规划模型,可以在这些相互冲突的目标之间找到平衡点,制定出既经济又高效且安全的交通规划方案,提升城市的交通运行效率和居民的出行体验。
5.5 环境管理问题
在环境管理方面,多目标规划模型同样具有重要价值。以区域污染控制为例,需要同时考虑多个目标。一方面,要最大程度地降低污染物的排放总量,以改善区域的环境质量,保护生态系统的健康;另一方面,企业为了实现减排目标往往需要投入额外的资金用于污染治理设施的建设和运行,这会增加企业的生产成本,影响企业的经济效益,因此需要在一定程度上平衡企业的经济负担。此外,还可能需要考虑就业影响等其他因素,因为过于严格的减排措施可能导致一些企业减产甚至倒闭,进而影响当地的就业情况。通过构建多目标规划模型,结合区域的环境容量、经济发展状况以及社会稳定需求等约束条件,可以制定出合理的污染控制策略,实现环境保护与经济社会发展的协调共进。
六、总结
总之,多目标规划模型在数学建模中是一种功能强大且应用广泛的工具。通过深入理解其原理,熟练掌握算法实现,并结合具体的实际场景进行灵活运用,能够为众多复杂问题提供科学、有效的解决方案,助力各领域在多方面目标之间达成理想的平衡。
相关文章:
Python 实现的运筹优化系统数学建模详解(多目标规划模型)
一、引言 在数学建模的广阔领域中,多目标规划模型占据着极为重要的地位。它致力于在复杂的实际场景里,同时优化多个相互冲突的目标,寻求一组决策变量,让多个目标函数在满足特定约束条件下达到某种平衡。这种模型广泛应用于生产调度…...
AJAX原理与XMLHttpRequest
目录 一、XMLHttpRequest使用步骤 基本语法 步骤 1:创建 XHR 对象 步骤 2:调用 open() 方法 步骤 3:监听 loadend 事件 步骤 4:调用 send() 方法 二、完整示例 1. GET 请求(带查询参数) 2. POST 请…...
css中的3d使用:深入理解 CSS Perspective 与 Transform-Style
在前端开发的奇妙世界中,CSS 不仅负责页面的布局和样式,还能赋予元素生动的动态效果。要实现引人入胜的 3D 变换,perspective 和 transform-style 这两个属性扮演着至关重要的角色。本文将带您深入了解这两个属性,揭开它们如何协同…...
在 JMeter 中,Active Threads Over Time 是一个非常有用的监听器(Listener)
在 JMeter 中,Active Threads Over Time 是一个非常有用的监听器(Listener),它可以帮助你实时观察测试过程中活跃线程数(并发用户数)的变化趋势,从而分析系统的并发处理能力和负载情况。 1. Active Threads Over Time 的作用 实时监控并发用户数:显示测试过程中活跃线程…...
未来七轴机器人会占据主流?深度解析具身智能方向当前六轴机器人和七轴机器人的区别,七轴力控机器人发展会加快吗?
六轴机器人和七轴机器人在设计、功能和应用场景上存在明显区别。六轴机器人是工业机器人的传统架构,而七轴机器人则在多自由度和灵活性方面进行了增强。 本文将在理解这两者的区别以及为何六轴机器人仍然是市场主流,从多个方面进行深入解读六轴和七轴区…...
spark-SOL简介
Spark-SQL简介 一.Spark-SQL是什么 Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块 二.Hive and SparkSQL SparkSQL 的前身是 Shark,Shark是给熟悉 RDBMS 但又不理解 MapReduce 的技术人员提供的快速上手的工具 …...
【今日三题】经此一役小红所向无敌(模拟) / 连续子数组最大和(动态规划) / 非对称之美(贪心)
⭐️个人主页:小羊 ⭐️所属专栏:每日两三题 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 经此一役小红所向无敌(模拟)连续子数组最大和(动态规划)非对称之美(贪心) 经此一役小红所向无敌(模拟) 经此一役小红所向无…...
MYSQL MVCC详解
这里写自定义目录标题 **一、MVCC 解决的核心问题****二、MVCC 的核心实现机制****1. 隐藏字段与版本链****2. Undo Log****3. ReadView(一致性视图)** **三、MVCC 的可见性判断过程****四、不同隔离级别下的 MVCC 行为****五、MVCC 的优缺点****六、示例…...
Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化
一、软件介绍 文末提供源码和程序下载学习 Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化。Trinity 提供性能分析和 XAI 工具,非常适合深度学习系统或其他执行复杂分类或解码的模型。 二、软件作用和特征 Trinity 通过结合具有超维感知能力的不同交…...
用 Deepseek 写的uniapp血型遗传查询工具
引言 在现代社会中,了解血型遗传规律对于优生优育、医疗健康等方面都有重要意义。本文将介绍如何使用Uniapp开发一个跨平台的血型遗传查询工具,帮助用户预测孩子可能的血型。 一、血型遗传基础知识 人类的ABO血型系统由三个等位基因决定:I…...
展示数据可视化的魅力,如何通过图表、动画等形式让数据说话
在当今信息爆炸的时代,数据的量级和复杂性不断增加。如何从海量数据中提取有价值的信息,并将其有效地传达给用户,成为了一个重要的课题。数据可视化作为一种将复杂数据转化为直观图形、图表和动画的技术,能够帮助用户快速理解数据…...
解决安卓开发“No Android devices detected.”问题
解决安卓开发“No Android devices detected.”问题 当我们插入移动设备的USB时,却发现这并未显示已连接到的设备 点击右侧的Assistant,根据提示打开移动设备开发者模式并启用USB调试模式,然后发现我们未连接到移动设备的原因是ABD服务的原因 问题确定了&…...
Android13 WIFI调试(rtl8821cs)
一、WiFi框架概述 1、Wi‑Fi 是一种无线通信技术,在 Linux 系统上一般可处于三种工作模式,分别是: STATION、AP、MONITOR。 station :工作sta模式,类比手机主动连网。 ap:工作ap模式,类比手机开热点。 mon…...
Android常见界面控件、程序活动单元Activity练习
第3章 Android常见界面控件、第4章程序活动单元Activity 一. 填空题 1. (填空题)Activity的启动模式包括standard、singleTop、singleTask和_________。 正确答案: (1) singleInstance 2. (填空题)启动一个新的Activity并且获取这个Activity的返回数据ÿ…...
过拟合、归一化、正则化、鞍点
过拟合 过拟合的本质原因往往是因为模型具备方差很大的权重参数。 定义一个有4个特征的输入,特征向量为,定义一个模型,其只有4个参数,表示为。当模型过拟合时,这四个权重参数的方差会很大,可以假设为。当经过这个模型后…...
关于多agent多consumer架构设想
多个agent接入设备 每个agent对接同一个消费队列,非竞争设置,通过判断consumer中的参数如果是发给自己的,则下发,如果不是,则快速跳过。每个消费者接收消息时通过Header中值判断是来着哪个agent服务器的,发…...
国内互联网大厂推出的分布式数据库 的详细对比,涵盖架构、性能、适用场景、核心技术等维度
以下是 国内互联网大厂推出的分布式数据库 的详细对比,涵盖架构、性能、适用场景、核心技术等维度: 一、主流分布式数据库列表 大厂数据库名称类型适用场景发布时间腾讯云TDSQL分布式HTAP金融、电商、游戏、政企2010年阿里云OceanBase分布式HTAP银行核…...
【深度学习】自定义实现DataSet和DataLoader
dataset数据集 作用: 存储数据集的信息获取数据集长度 __len__获取数据集某特定条目的内容 __getitem__ dataloader 数据加载器 作用: 从数据集中随机加载数据, 并拼接为一个 batch实现迭代器, 可以使用时, 迭代获取数据内容 代码实现:…...
spark简介和核心编程
简介 1. Spark-SQL概述:Spark SQL是Spark处理结构化数据的模块,前身是Shark。Shark基于Hive开发,提升了SQL-on-Hadoop的性能,但对Hive的过度依赖制约了Spark发展。SparkSQL抛弃Shark代码,汲取其优点后重新开发&#x…...
47、Spring Boot 详细讲义(四)
六. Spring Boot 与数据库 目录 JDBC 集成 Spring Data JPA MyBatis 集成 事务管理 1、JDBC 集成 1.1 JDBC简介 1.1.1 定义和作用 JDBC(Java Database Connectivity)是Java中用于与关系型数据库进行交互的API。它为Java程序提供了一个标准的、统一的接口…...
Dify - 整合Ollama + Xinference私有化部署Dify平台(01)
文章目录 总体方案服务器在Ubuntu 20.04上安装Docker更新软件包索引安装一些必要的软件包,以便apt能够通过HTTPS使用仓库:添加Docker的官方GPG密钥设置稳定的仓库再次更新软件包索引从新添加的仓库中安装Docker CE验证Docker是否安装成功(可选…...
【RocketMQ】关于RocketMQ配置好了jdk环境变量却一直报需要配置环境变量的问题
正如上图所示,我明明已经配置好了环境变量,也显示配置好了,jdk与我的rocketmq的版本也是适配的,可每次启动namesrv和broker却一直显示要去配置环境变量,其实很简单,配置环境变量时特殊符号会影响路径查找&a…...
【信息系统项目管理师】高分论文:论信息系统项目的范围管理(投资信息化全流程管理项目)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 1、规划范围管理2、收集需求3、定义范围4、创建wbs5、确认范围6、控制范围2018年2月,我有幸参加了 XX省自贸区财政投资信息化全流程管理项目的假设,作为项目发起单位,省自贸办经过审时度势,及时响应国家自贸…...
Jmeter创建使用变量——能够递增递减的计数器
Jmeter创建使用变量——能够递增递减的计数器 如下图所示,创建一个 取值需限定为0 2 4这三个值内的变量。 Increment:每次迭代后 递增的值,给计数器增加的值 Maximum value:计数器的最大值,如果超过最大值࿰…...
数据分析不只是跑个SQL!
数据分析不只是跑个SQL! 数据分析五大闭环,你做到哪一步了?闭环一:认识现状闭环二:原因分析闭环三:优化表现闭环四:预测走势闭环五:主动解读数据 数据思维:WHY-WHAT-HOW模…...
批量将文件夹名称、文件夹路径提取到 Excel 清单
在日常工作中,管理大量文件夹和文件路径可能变得十分繁琐。无论是在进行文件整理、备份还是数据分析时,提取文件夹的名称与路径信息,能够帮助你更高效地管理文件。本文将为您提供如何快速提取文件夹名称与路径,并将这些信息整理到…...
Git 基本使用
一、Git简介 简单的内容追踪系统;是一个快速、可扩展的分布式版本控制系统,拥有异常丰富的命令集提供高级操作和对内部的完全访问。 二、Git安装 详情看本人此文章。 三、Git 命令(基础版) 把 Git 分为上层封装命令(…...
LLM - Dify 平台介绍
文章目录 引言官网核心功能架构图典型应用场景在线平台 引言 Dify 是一款开源的 LLM(大语言模型)应用开发平台,旨在帮助开发者快速构建、部署和管理基于大语言模型的智能化应用。 官网 https://dify.ai/zh https://github.com/langgenius/…...
linux编译adbd工具使用
在使用linux时,通常是没有现成的adbd文件使用的,这就需要我们进行文件的编译了,编译可以分为三步进行,在编译前我们需要下载对应的源码使用,我们可以从 https://launchpad.net/android-tools地址处下载需要的android-tools源码使用…...
安全人员如何对漏洞进行定级?
CVSS 标准 CVSS 介绍 CVSS,即通用漏洞评分系统(Common Vulnerability Scoring System),是一个用于评估计算机系统漏洞严重程度的行业标准。 CVSS为安全专业人员、漏洞管理团队和系统管理员提供了一种标准化的方法来评估和比较不…...
【ROS2】行为树 BehaviorTree(四):组合使用子树
1、大树调用子树 如下图,左边为大树主干: 1)如果门没有关,直接通过; 2)如果门关闭了,执行开门动作,然后通过 右边为子树,主要任务是开门 1)尝试直接开门; 2)尝试开锁开门,最多尝试5次; 3)最后尝试砸门! XML如何描述大树主干调佣子树:使用关键字 SubTree 来…...
第十六届蓝桥杯Java b组(试题C:电池分组)
问题描述: 输入格式: 输出格式: 样例输入: 2 3 1 2 3 4 1 2 3 4 样例输出: YES NO 说明/提示 评测用例规模与约定 对于 30% 的评测用例,1≤T≤10,2≤N≤100,1≤Ai≤10^3。对于 100…...
HarmonyOS:使用Refresh组件实现页面下拉刷新
一、前言 可以进行页面下拉操作并显示刷新动效的容器组件。 说明 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。该组件从API Version 12开始支持与垂直滚动的Swiper和Web的联动。当Swiper设置loop属性为true时&…...
Python----机器学习(基于PyTorch的垃圾邮件逻辑回归)
Logistic Regression(逻辑回归)是一种用于处理二分类问题的统计学习方法。它基于线性回归 模型,通过Sigmoid函数将输出映射到[0, 1]范围内,表示概率。逻辑回归常被用于预测某个实 例属于正类别的概率。 一、数据集介绍 本例使用了…...
Spark-SQL
概念 Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。 Spark-SQL 特点: 1,易整合,无缝的整合了 SQL 查询和 Spark 编程。 2,统一的数据访问,使用相同的方式连接不同的数据源。 3…...
spark-sql核心
在大数据处理领域,Apache Spark已成为极为重要的分布式计算框架,而Spark SQL作为其重要组件,极大地拓展了Spark的能力边界,为结构化数据处理提供了高效、便捷的解决方案。 一、Spark SQL架构剖析 Spark SQL的架构设计精妙&#…...
TypeScript 进阶指南 - 使用泛型与keyof约束参数
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...
labview的VI密码破解程序
上图即为密码破解原理,若需源代码可联系我...
AI技术前沿:蓝耘元生代智算云快速入门教程详解,与其他云人工智能大模型深度对比
文章目录 一、前言二、蓝耘元生代智算云基础概念2.1 什么是智算云2.2 蓝耘元生代智算云的特点 三、蓝耘元生代智算云使用前准备3.1 注册与登录3.2 了解计费方式3.3 熟悉控制台界面 四、在蓝耘元生代智算云上运行第一个任务4.1 创建计算资源4.2 上传代码和数据4.3 安装依赖库4.4…...
Spring MVC 请求处理流程详解
步骤1:用户发起请求 所有请求首先被 DispatcherServlet(前端控制器)拦截,它是整个流程的入口。 DispatcherServlet 继承自 HttpServlet,通过 web.xml 或 WebApplicationInitializer 配置映射路径(如 /&…...
金融行业 AI 报告自动化:Word+PPT 双引擎生成方案
—从数据到决策,10倍效率提升的智能金融解决方案 一、金融行业报告制作的四大核心痛点 1. 人工制作成本高 传统流程耗时: 分析师撰写Word报告:8-12小时/份设计师制作PPT:4-6小时/份团队协作修改:反复沟通,…...
01_JDBC
文章目录 一、概述1.1、什么是JDBC1.2、JDBC原理 二、JDBC入门2.1、准备工作2.1.1、建库建表2.1.2、新建项目 2.2、建立连接2.2.1、准备四大参数2.2.2、加载驱动2.2.3、准备SQL语句2.2.4、建立连接2.2.5、常见问题 2.3、获取发送SQL的对象2.4、执行SQL语句2.5、处理结果2.6、释…...
三层架构与分层解耦:深入理解IOC与DI设计模式
目录 一、软件架构演进与三层架构概述 1.1 从单体架构到分层架构 1.2 经典三层架构详解 1.3 三层架构的优势 二、分层解耦的核心思想 2.1 耦合与解耦的基本概念 2.2 分层解耦的实现手段 2.3 分层解耦的实践原则 三、控制反转(IOC)深度解析 3.1…...
[react]Next.js之自适应布局和高清屏幕适配解决方案
序言 阅读前首先了解即将要用到的两个包的作用 1.postcss-pxtorem 自动将 CSS 中的 px 单位转换为 rem 单位按照设计稿尺寸直接写 px 值,由插件自动计算 rem 值 2.amfe-flexible 动态设置根元素的 font-size(即 1rem 的值)根据设备屏幕宽度和…...
TensorFlow深度学习实战——基于语言模型的动态词嵌入技术
TensorFlow深度学习实战——基于语言模型的动态词嵌入技术 0. 前言1. 基于语言模型的词嵌入1.1 ELMo 与 ULMFiT1.2 GPT1.3 BERT 2. 使用 BERT 作为特征提取器相关链接 0. 前言 基于语言模型的词嵌入技术,通过利用上下文信息来生成动态的词向量,大大提升…...
欧拉服务器操作系统部署deekseep(Ollama+DeekSeep+open WebUI)
一、解压并安装 Ollama # 1. 解压文件(默认会得到一个二进制文件) tar -xzvf ollama-linux-amd64.tgz# 2. 将二进制文件安装到系统路径 sudo mv ollama /usr/local/bin/ sudo chmod x /usr/local/bin/ollama# 3. 验证安装 ollama --version链接…...
cocosCreator安卓隐私弹窗(链接版)
每次新上游戏都要重新弄这个隐私弹窗,记录一下下次直接抄。 一、创建Activity 1 用androidStudio 打开项目并切换到Android视角。 2 右键项目new一个空的Activity 3 修改Activity的名字并完成如下图 二、增加依赖文件 1 增加全局颜色定义文件:项目根目录 / res/values/ …...
统计销量前十的订单
传入参数: 传入begin和end两个时间 返回参数 返回nameList和numberList两个String类型的列表 controller层 GetMapping("/top10")public Result<SalesTop10ReportVO> top10(DateTimeFormat(pattern "yyyy-MM-dd") LocalDate begin,Dat…...
【Python爬虫】简单案例介绍2
本文继续接着我的上一篇博客【Python爬虫】简单案例介绍1-CSDN博客 目录 跨页 3.2 环境准备 跨页 当对单个页面的结构有了清晰的认识并成功提取数据后,接下来就需要考虑页面之间的跨页问题。此时我们便迎来了下一个关键任务:如何实现跨页爬取…...
适合单片机裸机环境的运行的软件定时器框架
如下这篇文档介绍了一个适用于裸机环境的软件定时器模块,其核心功能和实现如下: 模块功能:该模块通过硬件定时器中断实现时基累加,适合用于裸机程序的调度处理。它使用硬件定时中断(如1ms一次)来增加hw_ti…...