2024年MathorCup数学建模D题量子计算在矿山设备配置及运营中的建模应用解题文档与程序
2024年第十四届MathorCup高校数学建模挑战赛
D题 量子计算在矿山设备配置及运营中的建模应用
原题再现:
随着智能技术的发展,智慧矿山的概念越来越受到重视。越来越多的设备供应商正在向智慧矿山整体解决方案供应商转型,是否具备提供整体解决方案的能力,也逐步成为众多矿山设备企业的核心竞争力。智慧矿山依靠先进的信息技术和设备自动化,实现矿山开采的高效、安全、环保和智能化。在智慧矿山的运营过程中,如何根据给定的工作量、机型斗容效率、油耗和价格等因素,设计出一套最优的设备配置及运营方案,包括合理采购、分配和使用挖掘机、矿车等重要资源,是提高竞争力的关键QUBO(Quadratic Unconstrained Binary Optimization,二次无约束二值优化)模型是一种适配相干伊辛机(Coherent Ising Machine,CIM)的模型其形式为 min x"Qx,x∈{0,1}",其中Q为nxn矩阵。本赛题主要基于智慧矿山设备配置及运营方案设计的场景,通过将问题建模为QUBO形式,使用Kaiwu SDK完成对问题的求解。Kaiwu SDK是一套基于相干伊辛机求解QUBO模型的软件开发套件,可以访问本链接(https://developer.qboson.com/sdkDownload)来获取 Kaiwu SDK。附件中提供了QUBO建模的参考资料(附件 1)以及相关的应用案例论文(附件 2,附件3)
假定你们是智慧矿山项目团队,负责为一家即将投入运营的智慧矿山设计一个综合的设备配置与运营方案,该方案需考虑因素:
·挖掘机斗容:不同类型挖掘机的斗容大小(立方米)
·挖掘机作业效率:各型号挖掘机作业效率(斗/小时)·矿车装载量:各型号矿车的装载量(立方米)
·油耗:各型号挖掘机和矿卡设备的油耗(升/小时)·价格:各型号挖掘机和矿车设备的购买(万元)
·人工成本:操作每台挖掘机和矿车的工资、补贴等人工成本(元/月)· ·维护成本:设备的月维护成本(元/月)
假设该项目规模及其设备的数据如下:
·启动资金 2400万元,计划开采5年。
·可选挖掘机有4种,设备参数如下表格1所示:
已购买以下3 种类型的矿车,每种类型的矿车数量分别为7辆、7 辆和3辆,设备参数如表2所示:
·挖掘机和矿车按照每月工作 20天,每天工作8小时,油价7元/升。矿石价格为 20 元/立方米。
·现实中需要考虑如下约束:
·1、在实际作业中,挖掘机与矿车的匹配存在一定约束:
··由于挖掘机铲斗宽度和矿车宽度的对应关系,大型号的挖掘机无法匹配小型号的矿车;
··为避免装车效率太慢,小型号的挖掘机也不会匹配太大型号的矿车:不同型号的挖掘机与矿车的匹配关系如表3所示:
·例如对于一台挖掘机2来讲,至少需要两辆矿车1或者一辆矿车2才能保证作业稳定进行。
·2、矿山在实际运营中,需要小型挖掘机兼顾进行修路、搭台、处理边角料等维护作业:同时为保证整体的作业效率,需要一定数量的大型挖掘机。可以归结为:整体包含的挖掘机型号不能少于3种。
·3、智慧矿山系统运营过程中的效率按照如下规则计算:
·假如挖掘机与矿车的匹配关系恰好时(等于表格内数值),或者给挖。掘机分配的矿车数量多于表格内数值时,每日作业量以挖掘机效率为准;·
·假如给挖掘机分配的矿车数量少,则挖掘机会有部分时间处于等待矿车的状态,则每日作业量为挖掘机效率乘以相应的比例。比如,某挖掘机标准匹配2台矿车,而只安排了1台,则该挖掘机每天的作业量为标准作业量的 1/2。
·4、设定以下假设条件:
··为简化管理和调度的复杂性,降低因更改匹配而导致的安全事故风险,假设挖掘机和矿车匹配关系是固定不变的;
··假设同一型号挖掘机只能匹配同一型号的矿车;
·只需要第一年花费挖掘机的采购费用基于以上场景与给出的数据,你们团队需要完成如下任务:
·问题 1:假设不考虑挖掘机的使用寿命,表格4中给定了对于每种类型的控掘机能够带来的长期利润的折现值的估计。请对这个化的场景建立 OUBO 模型,求解给出在预算范围内最大化总利润的采购方案,即需要采购的挖掘机型号和对应的数量。分别使用 Kaiwu SDK 内置的模拟退火求解器和 CIM 模拟器对模型进行求解。
·问题 2:假设挖掘机和矿车的使用寿命为5年,根据上述因素,建立一个 OUBO 模型,规划需要采购的挖掘机型号和数量,并给出挖掘机和矿车之间的匹配关系,使得5年内的总利润最大化(利润=收益一各种成本)。OUBO 模型的求解使用 Kaiwu SDK 的模拟退火求解器和 CIM 模拟器进行,请尽量减少量子比特的数量(SDK 仅支持 100 比特以内的问题求解)。当模型比特数超出 SDK 限制时,请尝试思考创新性的求解方案。
·问题 3:考虑在问题2的场景中,当已购买10 种类型的矿车(参数参考表 5),可选的挖掘机数量为 10(参数参考表 6),整体包含的挖掘机型号不能少于5种,挖掘机和矿车的匹配关系如表7所示,启动资金为4000万元时,建立 OUBO 模型并使用 Kaiwu SDK 求解最优的采购方案,并给出挖掘机和矿车之间的匹配关系(提示:当建立的 OUBO 模型比特数较高时,可以尝试例如 subOUBO 等方法对问题进行求解。subOUBO 方法是一种通过量子计算和经典计算结合的方法。通过每次提取一个 OUBO 的子问题,即 subOUBO,求解 subOUBO 得到解后更新原问题的解,通过多次求解 subOUBO 来求解原问题,详见参考附件 4)。
·问题 4:请举例一个潜在可以通过构建合适的 QUBO 模型进行决策优化应用场景。这个场景应该具有实际应用意义,有潜力进行规模化应用,并且能够展示量子计算的优势。描述应该包括必要的背景信息、研究方法思路以及预期结果,并提供技术路线图,QUBO 模型表达式和相关参考文献。
整体求解过程概述(摘要)
本文深入研究了基于QUBO模型的矿山设备配置与运营方案优化问题.首先对智慧矿山设备配置和运营的复杂性进行了问题重述,文中对挖掘机和矿车的匹配关系、采购成本、使用寿命等因素进行了合理简化,以便建立易于处理的数学模型.算法背景介绍探讨了QUBO模型的基本原理、构建方法和kaiwuSDK的功能特点,并提出了利用QUBO模型设计最优设备配置及运营方案的目标,最终实现利润最大化.
针对问题一:关注于在预算范围内最大化总利润的挖掘机采购方案.通过对挖掘机的长期利润折现值和采购价格进行分析,建立了QUBO模型,并使用kaiwuSDK内置的模拟退火求解器和CIM模拟器进行求解.从理论和实践的角度,将模拟退火算法对结果做对比分析,指出了KaiwuSDK在处理大规模问题时的优点.最后得出结论当挖掘机1、2、3分别购买1、2、10辆时,得到总利润最大,为58000万元.
针对问题二:在问题一上增加了使用寿命约束,寻求五年内总利润最大化的配置方案,可以使用量子优化算法求解.并且分析了将矿车和挖掘机不完全匹配的情况,研究得出结论在挖掘机1对应矿1需要7辆,挖掘机2对应矿2需要7辆,挖掘机3对应矿3 需要2辆,挖掘机4对应矿3需要1辆时,利润最大585086400元
针对问题三:在问题二的基础上增加了预算和设备类型的约束,探索最优的采购方案.根据问题二挖掘机和矿车恰好匹配,引入松弛变量和惩罚函数将目标函数转化为QUBO模型的形式,研究得出结论在挖掘机1对应矿3需要2辆,挖掘机2对应矿4需要1辆,挖掘机3对应矿1需要1辆,挖掘机3对应矿2需要1辆,挖掘机3对应矿4需要1辆,挖掘机3对应矿5需要2辆,挖掘机7对应矿6需要1辆,挖掘机10对应矿9需要1辆,挖掘机10对应矿10需要1辆时,利润最大681916400元
针对问题四:将QUBO模型应用于城市轨道交通末班车衔接优化,提出了一个可实际应用的优化场景,包括背景信息、研究方法思路、预期结果和技术路线图.该问题的解决不仅能够提高城市轨道交通的运营效率,还能为乘客提供更加便捷的换乘服务.针对灵敏度分析:通过改变启动资金和油价等参数,研究了模型对变化的敏感程度,评估了模型的稳定性.有助于理解在不同背景下矿山运营方案的可行性.
总体而言,本文通过展示了QUBO模型在解决复杂优化问题中的有效性和潜力.通过对矿山运营方案的优化,可以显著提高矿山企业的市场适应性,推动矿业的可持续发展.此外,本文的研究也为量子计算技术在解决组合优化问题提供了有益的参考,展现了量子计算在未来科技发展中的重要价值.
模型假设:
因为实际中智慧矿山设备配置和运营是一个非常复杂的过程,为了便于建模,我们将问题合理简化并提出以下假设:
•为简化管理和调度的复杂性,降低因更改匹配而导致的安全事故风险,假设挖掘机和矿车匹配关系是固定不变的;
•假设同一型号挖掘机只能匹配同一型号的矿车;
•只需要第一年花费挖掘机的采购费用;
问题重述:
随着技术进步,智能化矿山逐渐成为行业的焦点.众多提供矿山设备的公司正转变成为提供全面智能化矿山解决方案的供应商,这种转型能力正逐步演变为企业的核心竞争力.智能化矿山利用尖端的信息技术和自动化技术,以提高矿山作业的效率、安全性、环保性和智能化水平.在智能化矿山运营中,关键任务是根据工作量、设备容量、效率、燃油消耗和成本等参数,规划出最优质的设备配置和运营策略.这涉及到对挖掘机、矿车等关键资源的合理采购、分配和使用,这对于提升企业的竞争力至关重要.在本研究案例中,我们的目标是为一家即将开业的智能化矿山制定一套全面的设备配置和运营方案,问题如下:
问题一:我们不考虑挖掘机的使用寿命,已知给定了每种类型的挖掘机能够带来的长期利润的折现值估计,求给在预算范围(2400万)内最大化总利润的采购方案,即求出需要采购的挖掘机型号和对应的数量.然后分别使用KaiwuSDK内置的的模拟退火求解器和CIM模拟器对模型进行求解.
问题二:我们假设挖掘机和矿车的使用寿命为5年,已知题目对挖掘机型号种类、矿车数量等约束条件,求解需要采购的挖掘机型号和数量,并给出挖掘机和矿车之间的匹配关系,使得5年内的总利润最大化.
利润=利益-各种成本
然后分别使用KaiwuSDK内置的的模拟退火求解器和CIM模拟器对模型进行求解,由于SDK仅支持100比特以内的问题求解,所以求解过程中,我们需要尽量减少量子比特的数量.
问题三:我们在考虑问题二的场景中,已知已购买的矿车类型是10,可选的挖掘机数量为10,挖掘机和矿车的匹配关系,以及启动资金为4000万元,求解在整体包含的挖掘机型号不能少于5种的情况下最优的采购方案.
问题四:举出一个潜在可以通过构建合适的QUBO模型进行决策优化应用场景,且这个场景要具有实际应用意义,有潜力进行规模化应用,并且能够展示量子计算的优势.题目要求描述包括背景信息、研究方法、思路和预期结果,并提供技术路线图,QUBO模型表达式和相关参考文献.
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:
import numpy as np
import pandas as pd
from collections import defaultdict
import random
import math# ---------------------- 数据加载 ----------------------
# 假设数据格式:邻区关系矩阵、冲突/混淆/模3干扰的MR数矩阵
# conflict_mr: 冲突MR矩阵 (2067x2067)
# confusion_mr: 混淆MR矩阵 (2067x2067)
# mod3_mr: 模3干扰矩阵 (2067x2067)# 此处用随机数据示例,实际替换为真实数据
n = 2067
conflict_mr = np.random.randint(0, 100, (n, n))
confusion_mr = np.random.randint(0, 100, (n, n))
mod3_mr = np.random.randint(0, 100, (n, n))# ---------------------- 目标函数定义 ----------------------
def calculate_loss(pci_assignment):"""计算当前PCI分配的总损失"""total = 0# 遍历所有小区对for i in range(n):for j in neighbors[i]: # neighbors预先生成邻区列表# 冲突MR: 邻区且PCI相同if pci_assignment[i] == pci_assignment[j]:total += conflict_mr[i][j]# 模3干扰MR: 邻区且PCI%3相同if pci_assignment[i] % 3 == pci_assignment[j] % 3:total += mod3_mr[i][j]# 混淆MR: 检查所有邻区的PCI是否重复seen = set()for neighbor in neighbors[i]:p = pci_assignment[neighbor]if p in seen:total += confusion_mr[i][neighbor]seen.add(p)return total# ---------------------- 模拟退火算法 ----------------------
def simulated_annealing(initial_pci, max_iter=10000):current_pci = initial_pci.copy()current_loss = calculate_loss(current_pci)best_pci = current_pci.copy()best_loss = current_lossT = 1.0T_min = 1e-5alpha = 0.99for _ in range(max_iter):# 生成新解:随机修改一个小区PCInew_pci = current_pci.copy()cell = random.randint(0, n-1)new_pci[cell] = random.randint(0, 1007)# 计算损失变化(仅计算被修改小区的影响)delta = 0# 需要实现增量计算,此处简化为全量计算(实际需优化)new_loss = calculate_loss(new_pci)delta = new_loss - current_loss# 接受更优解或以概率接受劣解if delta < 0 or random.random() < math.exp(-delta / T):current_pci = new_pcicurrent_loss = new_lossif current_loss < best_loss:best_pci = current_pci.copy()best_loss = current_lossT *= alphaif T < T_min:breakreturn best_pci, best_loss# ---------------------- 初始化与运行 ----------------------
if __name__ == "__main__":# 预生成邻区列表(示例,实际从数据加载)neighbors = defaultdict(list)for i in range(n):for j in range(n):if conflict_mr[i][j] > 0:neighbors[i].append(j)# 初始解:随机分配initial_pci = np.random.randint(0, 1008, n)# 运行模拟退火best_pci, best_loss = simulated_annealing(initial_pci)print(f"最优总损失: {best_loss}")# 输出PCI分配结果pd.DataFrame(best_pci, columns=['PCI']).to_csv('pci_assignment.csv', index_label='CellID')
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:
2024年MathorCup数学建模D题量子计算在矿山设备配置及运营中的建模应用解题文档与程序
2024年第十四届MathorCup高校数学建模挑战赛 D题 量子计算在矿山设备配置及运营中的建模应用 原题再现: 随着智能技术的发展,智慧矿山的概念越来越受到重视。越来越多的设备供应商正在向智慧矿山整体解决方案供应商转型,是否具备提供整体解…...
MCU vs SoC
MCU(Microcontroller Unit,单片机)和SoC(System on Chip,片上系统)是两种不同的芯片类型,尽管它们都实现了高度集成,但在设计目标、功能复杂性和应用场景上存在显著差异。以下是两者…...
我的uniapp自定义模板
uniapp自定义模板 如有纰漏请谅解,以官方文档为准后面这段时间我会学习小程序开发的知识,会持续更新可以查看我的github,后续我会上传我的uniapp相关练习代码有兴趣的话可以浏览我的个人网站,我会在上面持续更新内容,…...
JVM 类加载器之间的层次关系,以及类加载的委托机制
JVM 类加载器之间存在一种层次关系,通常被称为双亲委派模型 (Parent Delegation Model)。这种层次关系和委托机制是 Java 类加载机制的核心,对于保证 Java 程序的安全性和避免类冲突至关重要。 1. 类加载器的层次关系: JVM 中的类加载器(Cl…...
吞吐与时延的博弈,超发与冗余的交换
做传输协议加速,大家默认激进超发原则,却认为冗余双发不道德,其实这两个是一回事,它们本质上是一种 “矩” 内的交换,就像力和力臂交换但乘积不变一样,成本是固定的。 人们更能原谅激进超发是因为人们对吞…...
Jackson使用ObjectNode对象实现JSON对象数据(一):增、删、改、查
Jackson 是一款高性能的 Java JSON 处理库,广泛应用于 Java 对象的序列化(转为JSON)与反序列化(JSON转为对象)。作为 Spring MVC 默认的JSON解析器,其核心优势包括高性能、灵活性和丰富的功能支持。 Jackson 库中 ObjectNode 是操作 JSON 对象的核心类,…...
【递归、搜索和回溯算法】专题三 :穷举VS暴搜VS深搜VS回溯VS剪枝
回溯算法 回溯算法是一种经典的递归算法,通常用于解决组合问题、排列问题和搜索问题等。 基本思想:从一个初始状态开始,按照一定的规则向前搜索,当搜索到某个状态无法前进时,回退到钱一个状态,再按照其他的…...
Ubuntu如何部署AI-Sphere-Butler(metahuman-stream)
环境: Ubuntu 20.04、22.04 Python3.10 Pytorch 1.12 CUDA 11.3 问题描述: Ubuntu如何部署AI-Sphere-Butler(metahuman-stream(LiveTalking)) 解决方案: 一、部署 本次部署以云服务器&a…...
基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手
基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手 一、准备工作:组装你的"数码工具箱" 1. 安装基础工具(Python环境) 操作步骤: 访问Python官网下载安装包安装时务必勾选Add Python to…...
SpringBoot分布式定时任务实战:告别重复执行的烦恼
场景再现:你刚部署完基于SpringBoot的集群服务,凌晨3点突然收到监控告警——优惠券发放量超出预算两倍!检查日志发现,两个节点同时执行了定时任务。这种分布式环境下的定时任务难题,该如何彻底解决? 本文将…...
第十二章 | Solidity 智能合约前后端集成实战
📚 第十二章 | Solidity 智能合约前后端集成实战 ——链上合约 前端钱包 用户交互,打造完整 DApp! 这章我们正式进入 DApp 全栈开发领域! 用 Ethers.js React/Vue 完成前端和合约交互完整的「前端发起交易 → 钱包签名 → 链上…...
sqlite3数据库(文件)损坏恢复方法
问题描述 实时控制系统在运行过程中,我使用DB Browser for SQLite工具写sqlite数据库操作,工具异常退出,再次使用此工具打开数据文件时,数据文件打不开,报错:invalid rootpage,如何处理? 解决…...
正则艺术:深入探讨高级语法——零宽断言与反向引用实战
正则艺术:深入探讨高级语法——零宽断言与反向引用实战 在 Python 这门语言中,正则表达式无疑是一把神奇的钥匙。它不仅能够轻松实现字符串匹配、替换和拆分,更在数据清洗、日志分析、爬虫开发等场景中大放异彩。作为一名拥有多年实战与教学经验的 Python 程序专家,今天我…...
python——UI自动化(1) selenium之介绍和环境配置
一、selenium介绍 selenium是一个第三方库,python有很多库; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。 2、ui自动化的优点? (1)解决重复性的功能测…...
专题|Python贝叶斯网络BN动态推理因果建模:MLE/Bayes、有向无环图DAG可视化分析呼吸疾病、汽车效能数据2实例合集
原文链接:https://tecdat.cn/?p41199 作为数据科学家,我们始终在探索能够有效处理复杂系统不确定性的建模工具。本专题合集系统性地解构了贝叶斯网络(BN)这一概率图模型在当代数据分析中的创新应用,通过开源工具bnlea…...
MQ,RabbitMQ,MQ的好处,RabbitMQ的原理和核心组件,工作模式
1.MQ MQ全称 Message Queue(消息队列),是在消息的传输过程中 保存消息的容器。它是应用程序和应用程序之间的通信方法 1.1 为什么使用MQ 在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理࿰…...
STM32__红外避障模块的使用
目录 一、红外避障模块 概述 二、直接读取OUT引脚电平 三、使用中断方式触发 一、红外避障模块 概述 引脚解释: VCC接3.3V 或 5.0VGND接开发板的GNDOUT数字量输出(0或1); 低电平时表示前方有障碍 ; 通过可调电阻调整检测距离 产品特点: …...
第三天 开始Unity Shader的学习之旅之第二天的补充
Unity Shader的学习笔记 第三天 开始Unity Shader的学习之旅之第二天的补充 文章目录 Unity Shader的学习笔记前言一、Unity 提供的内置文件和变量1. 内置的包含文件2. UnityCG.cginc中的常用结构体 二、Unity 提供的Cg/HLSL语义1. 从应用阶段传递模型数据给顶点着色器时Unity…...
文献分享: ColXTR——将ColBERTv2的优化引入ColXTR
1. ColXTR \textbf{1. ColXTR} 1. ColXTR原理 1.1. ColBERTv2 \textbf{1.1. ColBERTv2} 1.1. ColBERTv2概述 1.1.1. \textbf{1.1.1. } 1.1.1. 训练优化 1️⃣难负样本生成 初筛:基于 BM-25 \text{BM-25} BM-25找到可能的负样本重排:使用 KL \text{KL} KL…...
【第21节】windows sdk编程:网络编程基础
目录 引言:网络编程基础 一、socket介绍(套接字) 1.1 Berkeley Socket套接字 1.2 WinSocket套接字 1.3 WSAtartup函数 1.4 socket函数 1.5 字节序转换 1.6 绑定套接字 1.7 监听 1.8 连接 1.9 接收数据 1.10 发送数据 1.11 关闭套接字 二、UDP连接流程…...
《深度剖析:BERT与GPT——自然语言处理架构的璀璨双星》
在自然语言处理(NLP)的广袤星空中,BERT(Bidirectional Encoder Representations from Transformers)与GPT(Generative Pretrained Transformer)系列模型宛如两颗最为耀眼的星辰,引领…...
景联文科技:以高质量数据标注推动人工智能领域创新与发展
在当今这个由数据驱动的时代,高质量的数据标注对于推动机器学习、自然语言处理(NLP)、计算机视觉等领域的发展具有不可替代的重要性。数据标注过程涉及对原始数据进行加工,通过标注特定对象的特征来生成能够被机器学习模型识别和使…...
LeetCode 30 —— 30.串联所有单词的子串
题目: 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。 示例 1ÿ…...
【redis】主从复制:单点问题、配置详解、特点详解
文章目录 单点问题什么是主从复制主从模式能解决的问题并发量有限可用性问题 配置建立复制通过配置文件来指定端口配置主从查看集群结构 断开复制 特点安全性只读传输延迟 单点问题 分布式系统中,涉及到一个非常关键的问题:单点问题 某个服务器程序&…...
VSCode创建VUE项目(四)增加用户Session管理
将用户信息存储或者更新到Session sessionStorage.setItem("userID",loginform.value.username); sessionStorage.setItem(loginTime, Date.now()); 获取Session信息 const storedUserInfo sessionStorage.getItem(userID); const loginTime sessionStorage.get…...
Spring Boot(十六):拦截器Interceptor
拦截器的简介 拦截器(Interceptor)是Spring框架中的概念,它同样适用于Spring Boot,因为Spring Boot是基于Spring框架的。拦截器是一种AOP(面向切面编程)的轻量级实现方式,它允许我…...
考研复习之队列
循环队列 队列为满的条件 队列为满的条件需要特殊处理,因为当队列满时,队尾指针的下一个位置应该是队头指针。但是,我们不能直接比较 rear 1 和 front 是否相等,因为 rear 1 可能会超出数组索引的范围。因此,我们需…...
sql-labs
p1 sql注入的目的是为了破坏sql语句结构,有三种参数类型,字符型(就是一个字符1或者a之类的),字符串(“hellow之类的”)型,数值型,前两个有闭合,注释符号有# …...
Java 集合框架:从数据结构到性能优化,全面解析集合类
Java 集合框架(Java Collections Framework,JCF)是 Java 语言中用于存储、操作和管理数据的标准库。它提供了一组通用的接口、类和方法,使开发者能够高效地操作不同类型的数据集合。 本文将结合 Java 集合框架类图,介…...
vulkanscenegraph显示倾斜模型(5.4)-相机操纵器
前言 在VSG(Vulkan Scene Graph)中,系统支持用户通过鼠标或触摸输入与三维场景进行交互,从而动态控制相机的位置和姿态,实现与三维场景的交互。VSG提供了多种相机操纵器,其中Trackball是一种常见的相机操作…...
两个还算好用的ppt转word和PDF转word的python脚本
PPT转word: import re from pptx import Presentation from docx import Document from docx.shared import Inches from io import BytesIO from PIL import Imagedef clean_text(text):# 使用正则表达式删除控制字符和NULL字节return re.sub(r[\x00-\x1F\x7F], ,…...
用PostgreSQL玩转俄罗斯方块:当SQL成为游戏引擎
当DBA开始摸鱼2025年某深夜,一位不愿透露姓名的DBA为了在监控大屏上隐藏游戏行为,竟用SQL实现了俄罗斯方块!从此,SELECT成了方向键,UPDATE成了旋转指令,DELETE成了消除大招。本文将揭秘这个疯狂项目的技术内…...
基于WebAssembly的浏览器密码套件
目录 一、前言二、WebAssembly与浏览器密码套件2.1 WebAssembly技术概述2.2 浏览器密码套件的需求三、系统设计思路与架构3.1 核心模块3.2 系统整体架构图四、核心数学公式与算法证明4.1 AES-GCM加解密公式4.2 SHA-256哈希函数五、异步任务调度与GPU加速设计5.1 异步任务调度5.…...
手撕算法之`vector` 扩容、`string` 分割、链表翻转
手写常见操作:vector 扩容、string 分割、链表翻转 (一)vector扩容 在 C++ 中,vector 的扩容机制是动态数组实现的核心特性,直接关系到性能和内存使用效率。以下是深入剖析: 1. 扩容触发条件 vector<int> v; v.push_back(1); // 当 size() == capacity() 时触发…...
tauri2程序单例模式实现,二次点击桌面图标显示之前最小化的程序并聚焦
官方有这个单例的插件可以直接使用:单例 | Tauri,使用单实例插件确保 Tauri 应用程序在同一时间只运行单个实例。插件已经安装并初始化,应该可以立即正常运行。尽管如此,我们也可以使用 init() 方法来增强它的功能。插件的 init()…...
【AI学习笔记】Coze平台实现将Excel文档批量导入数据库全过程
背景前摇&原视频教程: 最近看到很多同学都在用Coze平台操作数据,我也想了解一下工作流的搭建和数据处理过程,但是一下子又看不懂太复杂的逻辑,于是上B站搜索相关的基础教程。 Coze官方教程: 之前有看过Coze平台…...
c++之迭代器
一.迭代器的基本概念 1.什么是迭代器 迭代器是一种对象,它提供了一种访问容器中各个元素的方法,同时隐藏了容器内部的实现细节。简单来说,迭代器就像是一个指针,它可以指向容器中的某个元素,并且能够通过一些操作&am…...
Elasticsearch 索引
一、简介 在 Elasticsearch 中,索引(Index)是存储相关文档的地方,类似于关系数据库中的数据库。索引是 Elasticsearch 中最重要的概念之一,用于组织和存储数据。 二、索引的基本概念 索引(Index…...
Java EE(16)——网络原理——TCP协议解析二
4.滑动窗口(效率机制) 上篇博客讲到的确认应答/超时重传/连接管理都是安全机制,但也会降低传输效率。滑动窗口就是在保证可靠传输的基础上,尽可能地提高传输效率。 根据确认应答机制,客户端每发送一个请求都需要收到服务器的确认应答报文后才…...
解决address already in use报错:如何查看占用某个端口的程序并杀死
文章目录 问题背景解决策略概述端口占用诊断步骤 1:确认占用端口的进程步骤 2:确认进程的详细信息 解决端口占用问题方案 1:安全终止进程方案 2:修改应用配置 最佳实践与预防措施端口使用规范开发环境配置 进阶技巧批量处理端口占…...
linux 设置tomcat开机自启动
tomcat自启动配置 1.添加tomcat.service文件 vim /etc/systemd/system/tomcat.service 2.编辑文件内容,路径修改为自己的 [Unit] DescriptionTomcat8 Aftersyslog.target network.target remote-fs.target nss-lookup.target[Service] Typeoneshot ExecStart/us…...
如何配置本地git
配置本地 Git 主要包含设置用户信息、配置 SSH 密钥、设置 Git 仓库等步骤,以下是详细的配置过程: 1. 安装 Git 在开始配置之前,你需要先安装 Git。不同操作系统的安装方式有所不同: Windows:访问 Git 官方下载页面&a…...
VSCode 生成HTML 基本骨架
在VSCode 新建html文件中敲一个英文感叹号 ! <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…...
蓝桥杯备考:DFS暴搜之健康的荷斯坦奶牛
这道题数据量很小很小,我们可以用dfs暴搜来搜索 这是我们的决策树 #include <iostream> using namespace std; int n, m; const int N 45; int rq[N]; int g[N][N]; int cnt; int path; int ret 45; int st; bool check() {for (int i 1; i < n; i){in…...
android adjust 卸载与重装监测
想要洞察应用内用户的留存率,可以通过Adjust 的卸载与重装进行监测 名词解释: 卸载:集成完成后,卸载应用,安装状态为:卸载 重装:如果应用已经卸载,但一段时间后又进行安装,则会被视为重装。 📢📢📢:adjust 文件中说到24 小时后,可以再 adjust 控制台看安装…...
WPF Reactive 数据绑定
文章目录 Combox 绑定List-通过枚举绑定方法一:方法二:Button 绑定TextBlock绑定NumericUpDown绑定Expander绑定checkbox绑定NumericUpDownCombox 绑定List-通过枚举绑定 方法一: ViewControl using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; usin…...
2.创建Collection、添加索引、加载内存、预览和搜索数据
milvus官方文档 milvus2.3.1的官方文档地址: https://milvus.io/docs/v2.3.x 使用attu创建collection collection必须要有一个主键字段、向量字段 确保字段类型与索引类型兼容 字符串类型(VARCHAR)通常需要使用 Trie 索引,而不是 AutoInd…...
yaffs
YAFFS(Yet Another Flash File System)是专为NAND闪存设计的日志结构文件系统,其核心原理围绕NAND闪存的特性优化数据管理。以下是其关键原理的详细说明: 1. NAND闪存适配 写入限制:NAND闪存需按页写入(通…...
CMake-环境变量介绍
文章目录 作用域获取环境变量初始化查看特殊的环境变量 环境变量类似普通变量,但也有些不同,如下: 作用域 在一个CMake进程中环境变量具有全局作用域 获取环境变量 使用ENV操作符获取环境变量,例如$ENV{<name>}ÿ…...
wordpress表单插件CF7调用方式
Contact Form 7(CF7)是WordPress中非常流行的表单插件,以下是其常见的调用方式: 通过短代码调用 在页面或文章编辑器中添加:完成表单设置后,复制表单对应的短代码,然后在需要显示表单的页面或文章的编辑器中直接粘贴…...