AI与运筹优化融合:从预测后优化到端到端决策的实战解析

news2026/5/9 15:34:20
1. 项目概述当运筹优化遇见人工智能在运筹学与工业工程领域干了十几年我最大的感触是最耗时的往往不是求解一个模型而是“造”出这个模型本身。传统的优化建模高度依赖领域专家的经验他们需要将模糊的业务需求比如“怎么排班最省人又公平”、“仓库怎么补货不断货”转化为精确的数学语言——决策变量、约束条件和目标函数。这个过程就像翻译把现实世界的复杂性“编译”成求解器能懂的方程式。然而现实世界充满了“不可译”的部分客户流失率与定价之间复杂的非线性关系、交通网络中实时变化的旅行时间、生产线上的设备磨损对效率的隐性影响……这些关系很难甚至无法用简洁的显式公式来刻画。这正是人工智能技术切入的绝佳场景。AI特别是机器学习模型擅长从海量数据中挖掘隐藏的模式和关联。将AI与运筹优化融合其核心价值在于构建一个“感知-决策”的闭环智能系统。AI充当系统的“眼睛”和“大脑皮层”负责从杂乱的数据中感知并预测关键状态而优化模型则作为系统的“决策中枢”基于这些预测做出全局最优的规划。这种融合不是为了取代运筹专家而是将他们从繁琐、重复的参数估计和关系拟合中解放出来让他们更专注于问题本质的定义和更高层次的策略设计。本文要探讨的正是这种融合产生的几种核心范式。我们将深入拆解“预测后优化”、“智能预测后优化”以及“集成预测与优化”这三种技术路径的内在逻辑、实现细节与实战心得。同时我们也会展望一个更前沿的方向利用大语言模型来自动化或辅助数学建模本身。无论你是正在寻找方法解决业务中复杂决策问题的工程师还是希望了解交叉领域最新动态的研究者这篇文章都将为你提供一个从原理到实操的完整视角。2. 核心范式一预测后优化——经典的两阶段管道预测后优化是最直观、应用也最广泛的融合范式。它的逻辑非常清晰先把未知的、关键的模型参数预测出来再把这个预测值作为已知输入丢给优化求解器去计算最优决策。这就像一个分工明确的流水线AI负责“看”和“猜”优化负责“算”和“定”。2.1 范式原理与数学模型我们用一个经典的车辆路径问题来具体说明。假设一家物流公司需要每天为车队规划配送路线。优化模型的目标是最小化总行驶时间或距离约束包括车辆容量、客户时间窗等。然而模型中的一个关键参数——每条道路的旅行时间——是动态变化的它受天气、时段、周边路况甚至突发事件的影响。在传统方法中这个时间可能用一个历史平均值或一个简单的经验公式来估计误差很大。在预测后优化范式中我们这样做预测阶段我们收集历史数据每条数据样本可能包含天气晴/雨、时段早高峰/平峰、前序路段拥堵指数等作为特征x_i以及该条件下实际观测到的旅行时间θ_i。然后我们训练一个AI模型m(w; x)比如梯度提升树或神经网络其参数w通过最小化预测误差来学习即求解w* arg min_w (1/N) * Σ ||m(w; x_i) - θ_i||^2训练完成后对于明天的预测我们输入明天的天气预报、计划时段等特征x_new得到预测的旅行时间θ_hat m(w*; x_new)。优化阶段我们将预测得到的θ_hat作为已知参数代入到VRP的优化模型中形成如下问题v* arg min_v f_{θ_hat}(v) subject to v ∈ C_{θ_hat}这里v是决策变量如车辆路径f是基于预测时间的目标函数如总耗时C是由预测时间影响的可行域如时间窗约束。随后调用CPLEX、Gurobi等求解器求解得到最终的路由方案v*。注意这里存在一个关键的“目标错配”问题。预测阶段的目标是让θ_hat尽可能接近真实的θ最小化平方误差。但优化阶段的最终目标是做出一个好的决策v*使得基于真实参数θ的目标函数f_θ(v*)最优。预测得准不一定等于决策得好。我们后文会详细讨论。2.2 实操要点与数据管道构建在实际部署中构建一个稳健的“预测-优化”管道需要关注以下几个要点1. 特征工程与参数定义预测的目标必须是优化模型直接需要的建模参数。这需要运筹专家和数据分析师紧密协作。例如在库存优化中你需要预测的是“未来每周的产品需求”而不是笼统的“销量”。前者是库存模型的关键输入参数后者可能包含促销、退货等复杂因素需要进一步处理。特征x应尽可能包含所有对参数有因果或强相关性的变量并且要保证在决策时刻这些特征是已知或可预测的。2. 模型选择与实时性AI模型的选择需权衡精度与速度。对于高频决策如实时竞价可能需要轻量级的模型如线性回归、轻量级GBDT对于低频战略决策如月度产能规划可以选用更复杂的模型如深度学习、集成模型。模型必须部署成可实时或近实时调用的API服务确保优化模块能及时获取最新参数预测。3. 误差传递与鲁棒性处理预测必然有误差。一个实用的技巧是在优化模型中引入鲁棒性。例如在旅行时间预测中除了点估计θ_hat还可以预测一个置信区间[θ_low, θ_high]。随后在优化时可以采用鲁棒优化框架例如将约束改为旅行时间 θ_high或者将目标函数改为最小化“最坏情况”下的成本。这相当于在预测阶段就注入了一种“保守主义”的归纳偏置虽然可能牺牲一点在平均情况下的性能但能极大提升方案在实际波动环境下的可靠性。4. 流水线监控与迭代这是一个持续迭代的系统。必须建立监控指标不仅监控预测模型的准确率如MAE, RMSE更要监控决策质量的业务指标。例如在VRP中对比实际执行后的总耗时与优化模型基于预测算出的理论耗时。如果业务指标持续恶化而预测指标稳定很可能意味着问题出在“目标错配”上需要考虑更高级的范式。3. 核心范式二智能预测后优化——以决策为中心的端到端学习预测后优化范式的“目标错配”问题催生了更先进的“智能预测后优化”范式。SPO的核心思想非常深刻既然我们最终关心的是决策好坏为什么不直接以决策损失为训练目标来训练预测模型呢换句话说我们允许预测模型在某些不重要的参数上“犯点小错”只要它最终引导优化器做出更优的决策。3.1 范式原理与梯度难题SPO将预测和优化整合成一个端到端的训练过程。其损失函数定义为决策误差ℓ(v_θ, v_{θ_hat})其中v_θ是基于真实参数θ的最优决策v_{θ_hat}是基于预测参数θ_hat做出的决策。损失可以是最优目标值的差距|f_θ(v_θ) - f_θ(v_{θ_hat})|也可以是决策变量本身的差异。训练目标变为w* arg min_w (1/N) * Σ ℓ(v_{θ_i}, v_{m(w; x_i)})这里v_{m(w; x_i)}意味着用当前预测模型m(w; ·)根据特征x_i预测出θ_hat再求解一次优化问题得到决策计算该决策相对于真实最优决策的损失。最大的技术挑战在于梯度计算。损失函数ℓ依赖于优化问题的解v_{θ_hat}而v_{θ_hat}是通过一个优化求解器如线性规划求解器对参数θ_hat求arg min得到的。这个“求解”操作本质上是一个不可微甚至不连续的函数。我们需要计算损失L(w)对模型参数w的梯度这涉及链式法则∂L/∂w Σ [ (∂m/∂w)^T * (∂v/∂θ_hat)^T * (∂ℓ/∂v) ]其中(∂v/∂θ_hat)这一项即“最优解对参数的梯度”是难以直接计算的。3.2 主流解决方案与实战选择学术界和工业界提出了几种巧妙的方案来近似这个梯度1. 基于KKT条件的微分Amos Kolter, 2017这种方法适用于目标函数和约束都可微的凸优化问题如二次规划。它通过对优化问题的KKT最优性条件进行隐式微分从而得到∂v/∂θ_hat的解析表达式。在实践中这意味着你需要将整个QP求解器作为一个可微层嵌入到神经网络中。有一些库如CVXPYLayer支持这种操作。实战心得这种方法非常优雅梯度准确但只能用于特定类型的凸问题对于包含整数变量的大规模MILP问题无能为力。2. 使用代理损失函数Elmachtoub Grigas, 2022针对目标函数为线性、可行域固定的问题SPO 方法提出了一种凸的代理损失函数来代替原生的决策损失。这个代理损失具有良好的性质可以直接计算其次梯度。实战心得这是目前工业界尝试SPO相对容易的起点。你只需要用这个特定的损失函数替换你预测模型原来的MSE损失其余训练流程不变。缺点是适用范围较窄。3. 黑箱扰动法Pogancic et al., 2020这是一种通用性更强的无梯度方法。为了估计v对θ_hat的梯度它对参数θ_hat进行微小扰动δ然后重新求解优化问题得到v(θ_hat δ)进而用有限差分来近似梯度[v(θ_hat δ) - v(θ_hat)] / δ。实战心得这种方法简单粗暴适用于任何能用求解器得出解的优化问题包括复杂的MILP。但计算成本极高每次梯度更新都需要多次调用求解器对于大规模问题几乎不可行。通常只用于关键参数较少10的场景。4. 连续松弛与近似梯度Mandi et al., 2020对于混合整数规划一种思路是暂时“放松”整数约束使其变为连续可微的凸问题然后用方法1KKT条件微分来计算梯度。在训练时使用松弛后问题的梯度来更新预测模型在最终决策时再将整数约束加回去求解。实战心得这是一个很有希望的折中方案。关键在于松弛的质量松弛后的连续问题的最优解应该与原MILP的最优解在结构上尽可能相似否则梯度方向可能是误导的。重要提示SPO并非总是优于两阶段方法。当数据量较小或者预测任务本身非常困难时两阶段方法中在预测阶段加入领域知识鲁棒性处理带来的收益可能超过SPO端到端训练带来的决策收益。通常建议的路径是先从成熟的两阶段管道开始建立基线当系统稳定且数据充足后在关键业务场景中尝试SPO等较易实现的方法进行A/B测试验证其价值。4. 核心范式三集成预测与优化——当AI模型成为约束本身前两种范式AI都是“局外人”它生产参数然后交给优化模型。集成预测与优化则让AI更深地嵌入系统——AI模型本身直接成为了优化模型的一部分通常是一个约束条件。这适用于那些输入和输出之间存在复杂、黑箱关系且该关系直接影响可行决策的场景。4.1 典型场景与问题建模一个典型的例子是个性化定价与客户流失管理。一家电信公司希望制定价格决策变量x以最大化收入但同时要控制客户流失率。客户流失概率y是一个关于价格x和用户特征α如 demographics的复杂函数通常由历史数据训练的一个机器学习模型y h(x, α)来预测。那么整个优化问题可以写成max_{x, y} f(x, y, α) 收入目标依赖于价格和流失率 s.t. g(x, y, α) ≤ 0 业务策略约束如价格下限、补贴规则 y h(x, α) AI预测模型约束 x ∈ X(α) 其他可行域约束如区域定价限制这里y h(x, α)这个约束就是一个训练好的AI模型。优化求解器需要在满足这个复杂、非线性的“AI约束”下寻找最优的x。4.2 嵌入技术将AI模型转化为数学约束直接让求解器处理一个PyTorch或TensorFlow模型是不可能的。因此核心步骤是将AI模型“翻译”成求解器能理解的一组数学约束通常是线性/整数约束。主要有两类方法1. 针对特定模型类型的精确嵌入线性模型如线性回归、逻辑回归。其决策边界是线性的可以直接等价转化为一个线性不等式约束w^T x b ≤ 0轻松嵌入MILP。决策树/树集成这是目前最成熟的方向。单个决策树的每个从根到叶子的路径可以表示为一组“特征阈值”的与/或组合这可以精确地用线性约束和整数变量来表达。对于随机森林或梯度提升树虽然整体模型是非线性的但可以通过引入多个辅助整数变量来表示样本最终落入哪棵树的哪个叶子节点从而将其转化为一个大规模的MILP问题。有现成的库如tree到MIP的转换工具可以自动化这个过程。2. 通用近似方法神经网络处理神经网络尤其是ReLU激活函数是研究热点。一个ReLU节点z max(0, w^T x b)可以通过“大M法”和辅助整数变量精确线性化。这意味着一个全连接神经网络可以被等价地重构为一个混合整数线性规划问题。然而这是以模型规模爆炸为代价的。一个只有几十个节点的隐藏层就可能引入上百个额外的整数变量和约束对于稍大的网络形成的MILP问题会变得难以求解。代理模型一种更实用的策略是用一个更简单、易于嵌入的模型如分段线性函数、多项式去近似原本复杂的AI模型h(x)。在定义域内只要这个近似足够精确就可以用代理模型来代替原模型作为约束。工具与实战目前已有一些开源工具尝试支持这种集成如OptiCL和JANOS。它们提供了将特定类型预测模型线性模型、决策树、简单神经网络转换为优化问题约束的框架。实战中的最大挑战是求解效率。嵌入AI模型后优化问题的规模变量数、约束数会急剧膨胀。因此这通常只适用于中小规模的决策问题或者AI模型本身非常简单的场景。在尝试之前务必对问题规模进行预估。5. 前沿探索大语言模型与自动化数学建模如果说前三种范式是用AI来“增强”优化那么用大语言模型来“生成”优化模型则是在尝试变革建模工作本身。让LLM阅读一段自然语言描述的业务问题直接输出对应的数学规划模型这听起来像是运筹学家的终极梦想。5.1 当前能力评估从教科书到现实根据现有的实验如NL4OPT竞赛LLM在教科书级别的建模问题上表现令人惊讶。例如对于经典的“营养配餐”、“生产计划”问题经过微调的LLM如Code-Llama能够达到80%以上的声明级映射准确率。它能正确识别出决策变量、目标函数和大部分核心约束。然而面对真实世界的复杂问题LLM的表现则像是“一个聪明但缺乏经验的学生”。以“无关并行机调度问题”为例我们让Llama-2根据描述生成模型。它能做到骨架正确识别出核心元素如机器集合M、任务集合J、处理时间p_ij、决策变量x_ij任务i是否分配给机器j。目标函数正确生成最小化最大完工时间C_max的目标。但会犯典型错误冗余约束它可能生成“每个任务必须被分配”和“每个任务只能分配给一台机器”两个约束后者在特定表述下是冗余的。错误约束它可能错误地引入“任务开始时间s_i”变量及相关的顺序约束而在这个问题中任务的顺序并不影响C_max的定义只需计算每台机器上分配任务的总时间。缺失约束可能遗漏“每台机器上的总处理时间不超过C_max”这一关键约束。5.2 实用工作流LLM作为建模助手基于现状最可行的方式不是让LLM完全自动建模而是将其定位为强大的建模助手融入人机交互的迭代流程草案生成将业务需求描述尽可能清晰、结构化输入给LLM让它生成第一版数学模型草案。这可以节省从零开始书写LaTeX公式的时间。专家审查与调试运筹专家仔细审查生成的模型识别其中的逻辑错误、冗余和缺失。这是不可或缺的一步。交互式修正将错误反馈给LLM。例如提示它“这个模型中引入的s_i变量对于最小化C_max目标是必要的吗如果不必要请移除相关变量和约束并修正约束以确保每台机器上的总处理时间不超过C_max。” LLM通常能根据反馈进行有效修正。迭代与确认经过多轮交互逐步将模型修正至正确。最终版本仍需由专家进行最终验证和测试。未来潜力要让LLM真正胜任自动化建模需要两个方向的努力一是领域特定的预训练与微调让模型“阅读”海量的运筹学论文、技术报告和模型代码理解各种问题的标准建模范式二是开发复杂的链式推理框架让LLM能够执行“理解问题 - 识别实体与关系 - 匹配已知建模模式 - 组合与实例化 - 逻辑验证”的多步推理而不仅仅是进行模式匹配式的生成。6. 自动算法配置让求解器自我调优优化求解器本身如CPLEX, Gurobi有数十甚至上百个参数这些参数相互影响共同决定了求解器在特定问题上的性能。手动调参犹如大海捞针。自动算法配置就是一个“元优化”过程针对你关心的那类问题例如你的公司经常需要求解的某种供应链网络设计MIP自动寻找求解器的最优参数配置。6.1 核心方法与代表工具AAC将求解器视为一个黑箱函数性能 Solver(参数, 问题实例)。目标是在参数空间Θ中寻找一个配置θ*使得在一组有代表性的训练实例D上平均性能最优。1. 基于迭代局部搜索的方法ParamILS这是早期经典方法。它从一个随机配置开始反复进行“局部搜索”和“扰动”。局部搜索在当前参数配置的邻域内随机采样新配置如果新配置在训练集上表现更好如平均求解时间更短则接受它。扰动随机改变当前配置中的多个参数然后从新点开始局部搜索以避免陷入局部最优。实战心得ParamILS实现简单对于参数不多50且类型主要为分类变量时效果不错。但它本质上是无模型的随机搜索在参数空间很大时效率较低。2. 基于迭代竞速的方法iraceirace采用了一种更高效的“竞速”机制。在每一轮迭代中它并行评估一批候选参数配置。随着评估的进行它会根据统计检验如弗里德曼检验逐步淘汰表现显著较差的配置将计算资源集中在更有希望的配置上。最后从优胜者中产生新的候选配置通过模型或交叉变异进入下一轮。实战心得irace特别适合求解器性能带有随机性如使用了随机种子的场景其统计检验能更可靠地区分配置的好坏。它能处理连续、整数、分类和条件参数比ParamILS更通用。是当前学术界和工业界的主流选择之一。6.2 高级技巧与部署建议1. 配置空间的定义这是AAC成功的关键。不要盲目地将所有参数都纳入搜索空间。应基于领域知识筛选出最可能影响性能的10-20个关键参数。为每个参数定义合理的范围或选项。不合理的搜索空间会导致搜索效率极低。2. 训练实例集的选择训练实例集D必须能够代表未来将要解决的真实问题。一个好的做法是从历史问题中抽取一个多样化的子集涵盖不同规模变量/约束数量、不同特征如约束紧度、整数变量比例的问题。3. 性能指标的设定最常见的指标是平均求解时间对超时问题可设惩罚。但对于难以求解的问题也可以使用** primal-dual gap**在给定时间内达到的最优间隙或找到可行解的时间作为指标。指标的选择直接引导AAC的优化方向。4. 集成代理模型对于超高维参数空间纯搜索效率低下。前沿研究开始引入代理模型如高斯过程、随机森林来拟合“参数配置 - 性能”的隐式函数。AAC过程变为用少量评估训练代理模型用模型预测哪些区域可能性能好然后有选择地进行真实评估来更新模型。这能显著减少调用昂贵求解器的次数。部署流程收集历史问题实例构建训练集和验证集。使用irace等工具在训练集上运行自动配置找到最优配置θ*。在独立的验证集上测试θ*确保其性能提升是泛化的而非过拟合训练集。将θ*作为该类问题的默认求解器配置在生产环境中部署。定期如每季度用新积累的问题实例重新运行AAC更新配置。7. 常见问题与实战避坑指南在实际项目中融合AI与优化会遇到许多在论文中不会提及的坑。以下是我从多个项目中总结出的核心经验。问题1预测模型的“准确性幻觉”现象预测模型在测试集上RMSE很低但用它生成的参数输入优化器后得到的决策方案在实际执行中效果很差。根因经典的“目标错配”。预测模型追求的是对所有参数预测的“平均准确”但优化器只对“关键路径”或“瓶颈资源”上的参数极度敏感。对这些关键参数的预测误差即使很小也可能导致决策完全偏离最优。解决思路特征重要性反馈进行事后分析运行优化器后通过灵敏度分析或影子价格识别出对目标函数影响最大的那些约束或目标系数。然后在下一轮训练预测模型时给这些关键参数对应的样本或特征赋予更高的权重。直接采用SPO范式如果条件允许尝试使用SPO或SPO框架从根本上将训练目标对齐到决策质量。不确定性量化输出预测的置信区间并在优化中使用鲁棒或随机规划模型。问题2集成优化中的求解“灾难”现象将一个简单的决策树模型嵌入MILP后求解时间从几分钟暴增至数小时甚至无法求解。根因嵌入过程引入了大量额外的整数变量和约束。例如一个包含100棵树的随机森林每棵树平均深度为6嵌入后可能引入数千个二元变量和约束彻底改变了问题的复杂度。解决思路模型简化先行在嵌入前首先尝试简化AI模型。能用逻辑回归就别用神经网络能用浅层决策树就别用深度森林。考虑使用模型剪枝、特征选择等技术降低模型复杂度。代理模型替代用一组精心设计的线性约束或简单的非线性函数去近似复杂的AI模型而不是完全等价转换。问题分解考虑能否将原问题分解使得AI模型只出现在子问题中或者采用Benders分解等策略将AI约束带来的复杂性隔离。问题3数据与模型的“时间旅行”漏洞现象在训练预测模型时不慎使用了“未来信息”导致模型在离线评估时表现极好但线上部署后效果一落千丈。根因数据泄露。例如用第T天的全天平均流量来预测第T天的旅行时间或者用包含了最终结果信息的衍生特征来预测需求。解决思路建立严格的时间点切割规则。任何样本的特征x_i必须仅包含在做出预测时刻t_i之前已知或可获知的信息。标签θ_i必须是t_i之后发生的真实结果。在特征工程中要极度警惕那些看似相关但实际包含了未来信息的特征。问题4LLM建模的“逻辑正确但数学错误”现象LLM生成的模型看起来结构合理逻辑通顺但经不起严格的数学推敲存在隐藏的约束冲突或错误。根因LLM本质上是基于统计模式生成文本它缺乏真正的逻辑推理和数学验证能力。它可能混淆了“至少”、“至多”、“恰好”等量词或者错误地组合了约束条件。解决思路建立验证管道。生成的模型必须通过以下检查小规模实例测试构造一个只有3-5个元素的小规模问题实例手工计算或编写脚本验证模型解的正确性。求解可行性测试用求解器求解生成的模型检查是否存在“显然”的不可行或无界问题。双重建模验证让另一位专家或另一个LLM使用不同的提示词独立对同一问题建模对比两个模型的差异分析原因。问题5自动调参的“过拟合”陷阱现象在训练实例集上调出的最优参数配置θ*在新实例上表现甚至不如默认配置。根因训练实例集D不够多样化或者AAC过程过度优化了某个偶然有利于训练集的参数组合。解决思路实例集多样性确保训练集覆盖了各种问题类型和规模。使用验证集早停在AAC过程中定期在独立的验证集上检查当前最佳配置的性能一旦在验证集上性能开始下降即停止搜索。集成配置不迷信单一“最优”配置。可以保留在验证集上表现最好的前3-5个配置在生产环境中根据新问题的简单特征如变量数量、约束密度动态选择其中一个配置。融合AI与运筹优化的道路充满挑战但也蕴含着巨大的价值。它要求从业者既懂数据科学又懂运筹建模还要有扎实的工程实现能力。从简单的“预测后优化”管道开始逐步迭代谨慎地引入更复杂的SPO或集成方法同时建立严格的数据、模型和结果验证机制是通往成功最稳妥的路径。这个领域正在快速发展新的工具和方法不断涌现保持学习与实践才能将这些前沿技术转化为真正的业务竞争力。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…