Mybatis(Software Foundation)
文章平均质量分 86
MyBatis是一个基于Java的持久层框架,它支持普通SQL查询,存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或者注解用于配置和原始映射,将接口和java的POJO映射成数据库的记录。
Bol5261
Begin here!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在 Python 中,`os` 模块是操作系统接口的核心标准库之一,用于与操作系统交互(如文件/目录操作、环境变量管理、路径处理等)
- 它内部调用 `os.listdir()`、`os.unlink()`、`os.rmdir()`、`os.chmod()` 等 `os` 函数; - 自动检测并修复常见权限异常(尤其通过 `onerror` 回调机制); - 支持符号链接处理(`ignore_errors=False` 可精细控制); - 是 CPython 官方维护、经充分测试的标准方案。📌 **安全提示(关键!)** - ✅ 务必先用 `os.path.isdir(path)` 和 `os.path.abspat原创 2026-03-10 00:00:00 · 243 阅读 · 0 评论 -
在 Python 中,`multiprocessing` 模块用于实现**真正的并行计算**(绕过 GIL 限制),适用于 CPU 密集型任务
- 每个 `Process` 拥有**独立内存空间和 Python 解释器**(真正并行); - 适合图像处理、数据批量计算、模型训练、文件批量转换等 CPU 绑定场景; - 注意:进程间通信需用 `Queue`、`Pipe` 或共享内存(如 `Value`/`Array`),不可直接共享变量。`multiprocessing` 和 `threading` 的选择核心在于 **Python 的全局解释器锁(GIL)** 以及任务的**瓶颈类型**:原创 2026-03-05 00:00:00 · 22 阅读 · 0 评论 -
`mmap`(内存映射)是 Python 中 `mmap` 模块提供的功能,它将文件直接映射到进程的虚拟内存空间
### 🔬 实测参考(Linux x86_64, Python 3.11, 1GB 随机文本)| 操作 | `open()+read()` | `mmap` | 加速比 ||------|------------------|--------|---------|| 全文正则统计 `"ERROR"` 出现次数 | 2.1s | 0.8s | **2.6×** || 读取第 500MB 处连续 1KB 数据(单次) | 0.03s(seek+read) | 0.0002s(直接切片) | **150原创 2026-03-10 00:00:00 · 334 阅读 · 0 评论 -
在 Python 中使用 `math` 模块解决生活中的实际问题,是非常实用且直观的
🔍 为什么常误以为要 `math.log()`? → 因为若问题是:**“给定 M、P、r,求需要多少个月还清(即解 n)”**,则需对公式变形得: \[(1+r)^n = \frac{M}{M - Pr} \quad \Rightarrow \quad n = \frac{\ln\left(\frac{M}{M - Pr}\right)}{\ln(1+r)}\] 此时才必须用 `math.log()`(自然对数)或 `math.log10()`。✅ 所以关键区分:- 解 **P*原创 2026-03-09 00:00:00 · 21 阅读 · 0 评论 -
在 Python 开发中,`logging` 模块是记录程序运行状态、调试问题和监控生产环境的“生活化”利器
### ⚠️ 注意事项- **不要用 `exc_info=True` 以外的方式手动传 `stacklevel`**(除非你封装了自定义 logger),否则可能显示 logging 源码行号;- 若使用 `logger.debug(..., stacklevel=2)` 等高级用法,需谨慎(通常用于装饰器/工具函数中隐藏中间层);- 在 `basicConfig` 之后再创建 `logger` 才能生效;若已存在 logger(如被其他库初始化过),建议用 `logging.getLogger().原创 2026-03-07 00:00:00 · 65 阅读 · 0 评论 -
`json.tool` 是 Python 自带的一个命令行工具模块(位于标准库 `json` 中),用于格式化、验证和美化 JSON 数据
- `input.json` 是原始压缩 JSON 文件(如 `{"name":"Alice","scores":[95,87,91]}`); - `python -m json.tool` 自动解析并格式化(默认 2 空格缩进、键排序、Unicode 显示); - `>` 将美化后的内容重定向写入 `output.json`; - 若 `output.json` 不存在则自动创建,存在则覆盖。原创 2026-03-06 00:00:00 · 17 阅读 · 0 评论 -
`itertools` 是 Python 标准库中极为高效、内存友好的迭代器工具模块,常用于处理组合、排列、循环、分组、链式迭代等场景
| 需求 | 是否适用 `combinations_with_replacement` | 推荐替代方案 ||------|------------------------------------------|----------------|| 无限制重复(如“随便拿3样,爱拿几份拿几份”) | ✅ 是 | 直接使用 || **最多 k 份同一种(有界重复)** | ❌ 否 | `product` + `filter`(小规模) 或 递归生成(通用) || 需要带权重/价格/营养等复杂约束 | ❌原创 2026-03-09 00:00:00 · 20 阅读 · 0 评论 -
在 Python 中,“IO”(Input/Output,输入/输出)指的是程序与外部环境(如文件、终端、网络、用户等)交换数据的过程
- ✅ 支持中文路径(`pathlib` + `utf-8` 环境默认兼容);- ✅ 正则灵活匹配多种前缀(`IMG_`/`PXL_`/`Screenshot_`等);- ✅ `shutil.move()` 是原子操作,比 `copy+delete` 更安全高效;- ✅ 若想**复制保留原图**,把 `shutil.move` 换成 `shutil.copy2`(保留时间戳);- ✅ 进阶可加:按「年/月」二级目录(`2023/12/`)、去重哈希校验、GUI 界面(`tkinter`)。原创 2026-03-06 00:00:00 · 49 阅读 · 0 评论 -
`inspect` 是 Python 标准库中的一个强大模块,用于**内省(introspection)**——即在运行时检查对象的类型、结构、源码、调用栈、函数签名等信息
- `inspect.currentframe()` 返回的是 CPython 的帧对象,**在某些嵌入环境或优化模式(如 `-O`)下可能不可用**,但日常开发完全可靠;- 避免在 `finally` 或异常处理中直接用 `f_back` 多层跳转(易出错),推荐用 `inspect.stack()[1]` 更直观(但稍慢);- 若需**绝对安全的生产日志**,可退化为 `sys._getframe(1)`(CPython专属,不推荐跨解释器使用)或改用 `logging.getLogger().de原创 2026-03-09 00:00:00 · 205 阅读 · 0 评论 -
IDLE(Integrated Development and Learning Environment)是 Python 官方自带的轻量级集成开发环境
IDLE(Integrated Development and Learning Environment)是 Python 官方自带的轻量级集成开发环境,它基于 `tkinter` 构建,主要用于教学和简单脚本开发。而 `idlelib` 是 IDLE 的底层实现模块集合(即其源代码库),位于 Python 标准库中,属于**内部实现包**,通常不建议直接在应用代码中导入或调用(官方文档明确标注为“not part of the public API”)。原创 2026-03-09 00:00:00 · 126 阅读 · 0 评论 -
在 Python 中使用 `gzip` 模块压缩/解压文件,是日常开发和数据处理中非常实用的技能
🔍 **原理说明:** - `pd.read_csv()` 内部检测到文件路径以 `.gz` 结尾时,会自动使用 `gzip.open(filename, "rt", encoding=...)` 打开;- 数据以**流式方式边解压边解析**,不生成临时解压文件,节省磁盘空间;- 支持所有 `read_csv()` 参数(如 `sep`, `header`, `dtype`, `chunksize` 等)。原创 2026-03-10 00:00:00 · 492 阅读 · 0 评论 -
`gettext` 是 Python 中用于实现国际化(i18n)和本地化(l10n)的标准模块,它允许程序根据用户的语言环境(locale)动态显示对应语言的文本
|------|----------|| ✅ 纯 Python(仅 stdlib) | 是(`ast`, `pathlib`, `datetime`) || ✅ 自定义函数名(`T`, `L`, `trans`…) | 通过 `keywords=` 参数配置 || ✅ `msgctxt` 上下文提取 | 支持 `context="xxx"` keyword 参数 || ✅ `ngettext` 复数形式 | 自动识别双参数并生成 `msgid_plural` || ✅ 行号定位 & 多文件扫描 |原创 2026-03-08 00:00:00 · 150 阅读 · 0 评论 -
在 Python 中,GC(Garbage Collection,垃圾回收)是自动管理内存的机制,用于回收不再被引用的对象所占用的内存
在 Python 中,GC(Garbage Collection,垃圾回收)是自动管理内存的机制,用于回收不再被引用的对象所占用的内存。它在日常开发中“默默工作”,但理解其原理能帮助我们避免内存泄漏、优化性能。以下是几个贴近生活的类比与真实开发中的案例:✅ 生活类比(便于理解): - **“智能垃圾桶”**:就像家里装有感应器的垃圾桶——当某个塑料袋(对象)被扔进去后,如果里面的东西(引用)全被清空了(没有变量再指向它),垃圾桶就自动压缩并清空它(GC 回收)。但如果袋子还连着冰箱(仍有引用),就不原创 2026-03-05 00:00:00 · 18 阅读 · 0 评论 -
`functools` 是 Python 标准库中一个非常实用的模块,它提供了一系列高阶函数(作用于其他函数或返回函数的函数)
`lru_cache` 使用 **`hash()` + 参数序列化规则** 构建唯一键,具体流程如下:1. **参数标准化**: - 将所有位置参数(`*args`)和关键字参数(`**kwargs`)按调用时顺序/字典序整理成**不可变元组**。 - 例如:`f(1, b=2, a=3)` → 键为 `(1, ('a', 3), ('b', 2))`(注意:`**kwargs` 按键排序以保证一致性)。原创 2026-03-05 00:00:00 · 16 阅读 · 0 评论 -
在 Python 中,`datetime` 模块是处理日期和时间的核心工具,广泛应用于日常生活场景
💡 实用建议: - 若需**判断是否为工作日(周一至周五)**,两种都可,只需注意范围: - `d.weekday() < 5` → Monday(0) ~ Friday(4) ✅ - `d.isoweekday() <= 5` → Monday(1) ~ Friday(5) ✅ - 在国际化应用(如多语言日历、合规系统)中,**优先使用 `isoweekday()`**,因其与 ISO 标准完全对齐; - 与 `strftime` 格式化配合时注意: - `%w` →原创 2026-03-05 00:00:00 · 49 阅读 · 0 评论 -
`ctypes` 是 Python 的标准库模块,用于在纯 Python 代码中调用 C 语言编写的动态链接库(如 `.dll`、`.so` 或 `.dylib`)
|--------|----------|| **结构体字段错位/大小错误** | 严格使用 `wintypes.*` + `_fields_` 顺序 + 默认 `__pack__=1`(Windows ABI 默认对齐,无需改) || **函数签名未声明** | 必须设置 `argtypes` 和 `restype`,否则 ctypes 可能传错栈/寄存器,导致崩溃 || **多线程并发调用** | `GetSystemPowerStatus` 是线程安全的,但 `status` 实例需每线程独立(原创 2026-03-06 00:00:00 · 19 阅读 · 0 评论 -
`curses` 是 Python 标准库中用于在终端(TTY)中创建基于文本的用户界面(TUI)的模块,特别适合开发命令行下的交互式应用
### ⚠️ 三、重要注意事项- ❌ 不要直接依赖 `BUTTON1_DOUBLE_CLICKED`:实测在 `alacritty`/`kitty` 中默认禁用,`xterm` 需设置 `xterm*doubleClickTime: 400`;- ✅ 始终用 `try/except curses.error` 包裹 `curses.getmouse()`;- ✅ 终端必须启用鼠标协议:`xterm` 类需 `echo -e "\033[?1000h"`(curses 通常自动发送);- ✅ `REP原创 2026-03-07 00:00:00 · 117 阅读 · 0 评论 -
CSV(Comma-Separated Values)文件是Python中最常用的数据交换格式之一,因其结构简单、易读易写,广泛应用于日常生活和实际工作中
💡 关键技巧说明: - `row.get("category", "")` 避免KeyError(字段名拼写错误或缺失列) - `encoding="utf-8-sig"` 自动处理Windows Excel生成的带BOM UTF-8文件(常见乱码根源) - `category_sum.get(category, 0.0)` 是字典累加的简洁写法,替代 `if category not in category_sum: category_sum[category] = 0` - `try-原创 2026-03-08 00:00:00 · 77 阅读 · 0 评论 -
`collections` 是 Python 标准库中一个非常实用的模块,它提供了许多高性能、专用的数据类型,是对内置 `list`、`dict`、`tuple`、`set` 的有力补充
`Counter` **完全可以高效统计自定义对象**(如学生实例)的出现次数——但前提是这些对象必须是**可哈希的(hashable)**,即需满足: ✅ 有稳定的 `__hash__()` 方法(默认基于内存地址,但通常需自定义) ✅ 同时实现 `__eq__()` 方法,且 **相等的对象必须具有相同的哈希值**(哈希一致性原则)原创 2026-03-09 00:00:00 · 129 阅读 · 0 评论 -
Python 的 `builtins` 模块(通常无需显式导入,其函数和异常自动可用)包含了 Python 解释器启动时自动加载的内置函数、类型和异常
Python 的 `builtins` 模块(通常无需显式导入,其函数和异常自动可用)包含了 Python 解释器启动时自动加载的内置函数、类型和异常,例如 `print()`、`len()`、`int()`、`range()`、`TypeError`、`sum()`、`max()`、`input()` 等。这些“内置”能力渗透在日常编程与真实生活场景中,以下是一些贴近生活的典型案例:原创 2026-03-10 00:00:00 · 542 阅读 · 0 评论 -
`import unittest` 是 Python 内置的单元测试框架,用于验证代码逻辑是否符合预期
| **新人上手** | ⭐⭐⭐⭐⭐:失败信息直给、无噪音、类自然语言 | ⭐⭐☆:需教成员识别 `File "...mycode.py"` 行 || **CI 日志可读性** | ⭐⭐⭐⭐⭐:失败块紧凑(<5行),易扫描、易截图反馈 | ⭐⭐:日志动辄50+行,关键信息埋没 || **IDE 集成体验** | ⭐⭐⭐⭐⭐:PyCharm/VSCode 点击错误行直接跳转源码 | ⭐⭐⭐:支持但需正则匹配路径,偶有不准 || **跨环境一致性** | ⭐⭐⭐⭐⭐:`pytest` 输出标准化,插件(如原创 2026-03-06 00:00:00 · 14 阅读 · 0 评论 -
以下是一个使用 `weakref` 的生活化小程序案例:**“宠物寄养中心管理系统”**,模拟现实中“主人与宠物”的关系
✅ **关键点解释(生活映射)**: - `weakref.ref(owner)` ≈ 寄养中心“记在小本本上的联系人”,不挽留、不绑定,主人搬家/失联就自动失效; - 避免了 `Owner → Pet → Owner` 的循环引用(否则两人均无法被回收); - 符合 Python 内存管理原则:谁创建谁负责生命周期,寄养中心只服务宠物,不“绑架”主人。原创 2026-03-06 00:00:00 · 16 阅读 · 0 评论 -
`weakref.proxy()` 是 Python 标准库 `weakref` 模块中用于创建弱引用代理对象的函数
> 💡 关键点说明:> - `WeakKeyDictionary` 的 key(这里是 `btn.on_click`)被弱引用,当 `btn` 实例被销毁,对应条目自动从字典中清除;> - 不需要手动 `unsubscribe`,彻底解耦生命周期管理;> - 适用于高频注册/注销场景(如插件系统、动态表单控件),大幅提升健壮性。原创 2026-03-09 00:00:00 · 645 阅读 · 0 评论 -
从 Python 3.9 开始,`cProfile.Profile` 类支持作为上下文管理器(即支持 `with` 语句),使得对代码块进行性能分析更加简洁、安全(自动调用 `enable()` 和
❌ **它不能做到的**:- **无法分解 C 函数内部的子调用**(因为 cProfile 基于 Python 字节码事件钩子,只在 Python 层 `PyEval_EvalFrameEx` 等关键点触发,不介入 C 函数执行流);- **无法显示 C 函数内部的行级/函数级耗时**(如 `np.dot` 内部 BLAS 调用、Cython `.pyx` 中各语句耗时);- 对纯 C 实现的内置函数(如 `len()`, `sum()`, `list.append()`)仅显示为单个调用,无进一步原创 2026-03-08 00:00:00 · 547 阅读 · 0 评论 -
截至2024年7月,**Python 3.15 尚未发布,也未进入官方开发流程**——它目前**不存在于 Python 官方路线图或 CPython 仓库中**
截至2024年7月,**Python 3.15 尚未发布,也未进入官方开发流程**——它目前**不存在于 Python 官方路线图或 CPython 仓库中**。Python 官方(python.org)最新确认的版本状态如下(依据 [PEP 664](https://peps.python.org/pep-0664/) 和 [PEP 698](https://peps.python.org/pep-0698/) 等权威来源):原创 2026-03-04 00:00:00 · 24 阅读 · 0 评论 -
Oracle 云行业解决方案(极简版)聚焦“行业+云+AI”三位一体,通过预配置、预集成、预验证的云原生SaaS套件
Oracle 云行业解决方案(极简版)聚焦“行业+云+AI”三位一体,通过预配置、预集成、预验证的云原生SaaS套件,显著降低企业数字化转型门槛。其核心优势在于: ✅ **开箱即用**:20+行业模板化应用,基于Oracle Fusion Cloud ERP/HCM/SCM/CX等统一平台构建,避免碎片化系统集成; ✅ **智能内嵌**:AI能力深度融入业务流程(如财务智能对账、HR简历自动匹配、供应链需求预测、客服对话情绪分析); ✅ **合规可信**:满足金融级安全、GDPR、等保2.0、H原创 2026-03-06 00:00:00 · 30 阅读 · 0 评论 -
Oracle Health 是甲骨文(Oracle)推出的面向医疗健康行业的全新云原生应用套件
✅ **4. 合规性运行时断言(Runtime Compliance Assertions)** - 在OCI基础设施层嵌入轻量级合规检查器(OCI Compliance Guard),在每次Agent推理调用时实时验证: ▪ 数据访问是否满足最小必要原则(如仅读取近6个月血糖记录,而非全量病史); ▪ 输出是否规避绝对化表述(禁用“必须”“唯一”,改用“推荐”“首选”,符合《互联网诊疗监管办法》); ▪ 是否完成患者知情同意状态校验(对接HIS中的电子知情模块)。原创 2026-03-09 00:00:00 · 628 阅读 · 0 评论 -
Fusion Applications 是 Oracle 提供的一套基于云的、集成化的企业级 SaaS 应用套件,其核心理念是将人工智能(AI)、机器学习(ML)、自动化与自然语言处理
Fusion Applications 是 Oracle 提供的一套基于云的、集成化的企业级 SaaS 应用套件,其核心理念是将人工智能(AI)、机器学习(ML)、自动化与自然语言处理等先进技术深度嵌入到各业务模块中,实现智能决策、流程优化和用户体验升级。您提到的分类准确反映了 Fusion 的三大支柱领域:原创 2026-03-07 00:00:00 · 135 阅读 · 0 评论 -
Cloud@Customer 是 Oracle 提供的一种本地化云服务部署模式
- ✅ 数据零出境:所有数据、元数据、日志、流量均驻留在客户本地网络内;- ✅ 一致体验:API、控制台、CLI、SDK 与公有云完全兼容,应用可无缝迁移或混合部署;- ✅ AI 就近赋能:支持在本地运行 OCI Generative AI 服务(如 Cohere 模型)、AI Vector Search、ML 模型推理及 RAG(检索增强生成)等多步 AI 工作流,无需上传原始数据至公有云;- ✅ 合规就绪:已通过 FedRAMP High、HIPAA、PCI-DSS、等保2.0三级等认证,支持私有原创 2026-03-07 00:00:00 · 305 阅读 · 0 评论 -
**AI Data Platform**(如Oracle Cloud提供的AI基础设施)、主流大模型(Gemini、Llama、ChatGPT、Grok)以及关键能力模块
✅ **3. 增量同步与事件驱动刷新(Near Real-Time)** - **Hadoop**:监听 Hive Metastore 的 `CREATE_TABLE` / `ALTER_TABLE` 事件(通过 Kafka 或 Webhook),触发秒级元数据增量更新; - **Snowflake**:基于 `QUERY_HISTORY` 中 `END_TIME > last_sync_time` 的SQL DDL/DML操作,自动捕获新表、列变更、注释更新; - 同步延迟通常控制在 **30原创 2026-03-05 00:00:00 · 14 阅读 · 0 评论 -
Oracle AI Database 在多云环境(Amazon Web Services、Google Cloud、Microsoft Azure 和 Oracle Cloud)中的部署能力
📌 **官方路线图信号(Oracle Live 2024 & DOAG 2024):** Oracle 已确认正在开发 **“Bring Your Own Embedding Model (BYOEM)”** 功能,预计将在 **Oracle Database 24c(2025 年中 GA)** 中以技术预览(TP)形式引入,初步形态为: → 支持上传 ONNX 格式模型至 OCI Object Storage; → 通过 `DBMS_AI.REGISTER_MODEL()` 注册并绑定 to原创 2026-03-08 00:00:00 · 290 阅读 · 0 评论 -
Python 的 C API 是 Python 解释器提供的一组 C 语言函数、宏和数据结构
4. **异常安全:若计算中发生信号或错误,需确保 GIL 被恢复** `Py_BEGIN_ALLOW_THREADS` / `Py_END_ALLOW_THREADS` 是**成对的宏**,底层使用 `setjmp/longjmp` 或 RAII 式清理(CPython 内部实现),能保证即使 `longjmp` 或 `siglongjmp` 触发,GIL 也会被自动恢复 —— 这是手动调用 `PyEval_ReleaseLock()` / `PyEval_AcquireLock()` 无法保证原创 2026-03-09 00:00:00 · 302 阅读 · 0 评论 -
Python 3.14 尚未发布,也**不存在**。截至当前(2024年),Python 官方最新稳定版本是 **Python 3.12**(发布于2023年10月2)
**语法范式革命**(如引入函数式核心、模式匹配替代 `if/elif`) | ✅ `match` 语句(3.10)是**增量增强**,非取代;类型提示(`typing`)从注解→运行时支持(3.12 `typing.runtime_checkable`)→ 3.13 `@override` 等,全部向后兼容 | 语言演进以“添加能力”为主,极少删除/重定义基础语法 || **标准库大规模重组**(如拆分 `urllib`、重设计 `pathlib`) | ✅ 采用 **并行模块共存 + 别名重定向 +原创 2026-03-06 00:00:00 · 20 阅读 · 0 评论 -
Python 3.12(于2023年10月2日发布)是Python的最新稳定版本之一,相比此前版本(如3.11、3.10等)
except asyncio.TimeoutError: print("操作超时") # ✅ 获取当前任务(非 Task.current_task()) task = asyncio.current_task() print(f"当前任务名: {task.get_name()}")asyncio.run(main())```总之,Python 3.12 的 `asyncio` 更聚焦于**API 正交化、错误处理健壮性、调试友好性**,而非功能扩张原创 2026-03-09 00:00:00 · 406 阅读 · 0 评论 -
Transformer 模型的自注意力(Self-Attention)机制本身是**置换不变的(permutation-invariant)**
其中 \(m\) 是 token 位置索引,\(\theta_i = 10000^{-2i/d}\)。 - 关键性质:\(Q_i^\top K_j\) 的内积结果**自动包含 \(\cos(m_i - m_j)\) 项**,即隐式编码了相对位置差。 ✅ 优势:理论支持无限外推、无距离截断、保留绝对位置的几何结构、与 RoFormer/RoFormerV2 一脉相承; ✅ 实践效果:显著提升长文本理解(如 128K 上下文)、减少幻觉、增强位置鲁棒性。原创 2026-03-09 00:00:00 · 700 阅读 · 0 评论 -
在视觉 Transformer(ViT)中,**位置编码作用于 patch 序列(即一维 token 序列)**,而非原始图像的二维坐标
| 场景 | 推荐策略 | 理由 ||------|----------|------|| 标准多尺度分类/检测 backbone | **分 stage 可学习 PE** | 简单高效,兼容性强,开源实现丰富(timm 库已内置); || 高分辨率密集预测(分割/深度估计) | **2D 相对位置偏置(RPB)** | 保证平移等变,避免插值伪影; || 跨尺度联合建模(如 focal modulation) | **Focal PE:局部窗口内可学习 + 全局 coarse PE**(Focal原创 2026-03-04 00:00:00 · 20 阅读 · 0 评论 -
模拟退火算法(Simulated Annealing, SA)是一种基于物理退火过程的随机优化算法,用于求解组合优化或连续优化问题
- **初始温度 `T0` 估算**:可先采样若干邻域解,令约80%的劣解被接受 → 设 `T0 ≈ -ΔE_avg / ln(0.8)`;- **自适应降温**:根据接受率动态调整 `alpha`(如接受率<20%则降温慢些);- **重启机制**:若长时间未改进,以当前最优解为起点重新退火;- **多起点并行**:启动多个独立SA进程,取最优结果。原创 2026-03-05 00:00:00 · 390 阅读 · 0 评论 -
遗传算法(Genetic Algorithm, GA)的核心思想,于自然选择和遗传学原理的启发式搜索算法,模拟生物进化过程(如适者生存、基因重组与随机突变)
⚠️ 关键注意事项:- **适应度必须非负**(多数实现要求 ≥ 0),否则轮盘赌等概率选择会失效;- **应保持序关系**:若 f(x₁) < f(x₂),则 fitness(x₁) 应 > fitness(x₂)(最小化问题);- **避免病态缩放**:如 `fitness = exp(-k·f(x))` 可能导致适应度差异过大,造成早熟收敛;- **推荐实践**:采用**线性平移+截断**(如 `fitness = max(0.001, a - f(x))`)或**排序适应度(Rank-bas原创 2026-03-01 00:00:00 · 394 阅读 · 0 评论 -
**模拟退火算法(Simulated Annealing, SA)**的核心思想,该算法受固体物理中退火过程启发:高温下原子具有高能量
2. **能量差估计法**: - 随机采样一批邻域解,计算目标函数变化量 $ \Delta E_i = f(x_{\text{new}}) - f(x) $; - 取 $ T_0 = \alpha / \ln(p_0) $,其中 $ \alpha $ 是 $ |\Delta E| $ 的均值或最大值,$ p_0 $ 是目标初始接受率(如0.7); - 或更简单:令 $ T_0 = \text{mean}(|\Delta E|) \times 10 $(粗略放大)。原创 2026-03-04 00:00:00 · 151 阅读 · 0 评论 -
**禁忌搜索算法(Tabu Search, TS)**的核心思想。该算法是一种基于局部搜索的元启发式优化方法,由Fred Glover于1986年提出
- **通用首选**:频率+时间混合(兼顾历史行为与阶段特性); - **高质量解优先**:影响度驱动(保护关键改进); - **复杂多峰问题**:多样性驱动 + 循环检测双保险; - **嵌入式/轻量应用**:时间自适应(低开销高可用)。原创 2026-03-04 00:00:00 · 300 阅读 · 0 评论
分享