自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(191)
  • 收藏
  • 关注

原创 LLM 通过框架回传的错误信息知道校验失败并自我修正

LLM调用工具时依赖完整定义(名称、描述、参数Schema)进行选择和参数填写。Schema中的约束条件帮助预防错误,而校验失败时框架会拦截错误并反馈给LLM进行修正。这一机制包含两个关键环节:调用前通过Schema约束参数格式降低出错率,调用后通过错误回传实现自我修正,两者结合显著提升了工具调用的准确性。

2026-08-09 23:47:27 19

原创 DeepAgents 的 `files` 本质上就是一个内存字典,所有数据都存储在内存中,存大量数据确实会占用内存

DeepAgents的files本质是一个内存字典,采用虚拟文件系统抽象,所有数据存储在内存中。其工作流程通过浅拷贝/引用在Agent间传递数据,内存占用随文件数量和Agent数量线性增长。该设计适用于小文件传输,但处理大文件时建议采用外部存储或按需加载策略,仅保留路径引用而非实际数据,以优化内存使用效率。

2026-08-09 23:04:14 58

原创 子 Agent 的入参确实完全依赖 LLM 生成的 description 字符串,而非上一个节点输出的结构化数据

DeepAgents 子 Agent 入参机制解析 摘要:DeepAgents 的子 Agent 入参采用"过滤继承+描述覆盖"机制,刻意将父 Agent 的结构化数据与 LLM 生成的任务描述分离。其核心设计是: 继承父 State 的非隔离字段(如自定义state) 强制用description覆盖messages字段 通过LLM压缩上下文为任务描述来避免噪声传递 这种设计牺牲了数据透传的便利性,换取任务聚焦性。建议结构化数据通过files共享或自定义state传递,而非依赖description。

2026-08-09 22:54:16 69

原创 DeepAgents 主-子 Agent 的底层实现逻辑完全基于 LangGraph 的图机制

摘要: DeepAgents通过LangGraph的图机制实现主-子Agent协作,本质上是其高层封装。架构上,DeepAgents基于LangGraph(执行引擎),而LangGraph又构建于LangChain Core(基础抽象)。主子Agent协作呈现三层嵌套结构:外层硬编码的StateGraph、中层主Agent的ReAct循环、内层独立编译的子Agent图。主Agent通过task工具调用子Agent,利用LangGraph的工具路由机制实现上下文隔离与结果合并。最终,DeepAgents将La

2026-08-09 22:46:32 58

原创 DeepAgents 的子 Agent 如何实现上下文隔离

DeepAgents 的子 Agent 采用"图复用+状态隔离"机制实现上下文隔离。编译阶段将每个子 Agent 配置转为 CompiledStateGraph 并缓存,运行时每次调用都传入仅含当前任务的全新 State,过滤所有父级上下文。子 Agent 与主 Agent 默认共享 LLM 实例(可覆盖),其执行过程完全隔离,仅返回最终结果。这种设计类似函数调用,复用代码逻辑但保持每次调用的数据独立性,既节省资源又确保上下文干净。

2026-08-09 22:42:25 263

原创 DeepAgents 实现多 Agent 开发主要围绕 **Subagents(子Agent委派)** 和 **Skills(技能渐进式披露)** 两大核心机制展开

DeepAgents多Agent开发框架通过Subagents子委派和Skills技能渐进式披露两大机制实现高效协作。Subagents通过独立上下文隔离任务执行,支持主-子委派、静态复用、多层嵌套等模式;Skills采用按需加载解决上下文膨胀问题。两者可组合使用,形成灵活的多Agent架构,适用于从简单任务到企业级复杂系统的各种场景。核心设计理念是优化主Agent上下文管理,通过隔离与按需机制实现高效资源利用。

2026-08-09 22:38:27 108

原创 DeepAgents 的协调(Coordination)模式

DeepAgents采用主-子智能体(MainAgent-SubAgents)的中央集权式协调架构,通过四大机制实现高效协作:显式规划强制生成结构化任务清单,分层委托解决上下文膨胀问题,文件系统共享实现间接通信,以及上下文优化保持主Agent高效运行。相比LangGraph Supervisor模式,DeepAgents具有独立上下文窗口、内置任务规划和文件持久化等优势,特别适合长周期复杂任务。

2026-08-09 22:32:35 243

原创 LangGraph 实现多 Agent 开发主要有5 种主流模式

这篇文章介绍了LangGraph实现多Agent开发的5种主流协作模式: Supervisor模式:中央主管调度多个专家Agent,适用于客服、研究助手等集中式场景。 Swarm模式:去中心化的Agent平等协作,通过移交机制动态传递任务,灵活性高但协调复杂。 Handoffs模式:顺序接力执行,每个Agent完成特定步骤后显式交接,适合多跳问答等流程明确的任务。 Hierarchical模式:多层嵌套的Supervisor结构,适合大规模系统和企业级协作。 Map-Reduce模式:并行分发子任务后汇总结

2026-08-09 22:22:35 341

原创 LangGraph 实现多节点并发执行主要有两种方式:静态扇出(Fan-out)和动态 Send API

LangGraph实现多节点并发执行的两种方式:静态扇出和动态Send API。静态扇出适用于固定分支数场景,通过同一节点的多条出边实现并发,框架自动处理同步;动态Send API则适用于运行时动态确定并发数的情况,通过条件边返回Send列表触发并发。两者关键区别在于并发数量的确定时机和实现方式。使用中需注意:必须声明Reducer避免并发写冲突,控制并发数防止API限流,并做好错误隔离处理。静态扇出简单直接,适合固定任务分发;Send API更灵活,适用于动态任务处理场景。

2026-08-09 22:10:56 323

原创 LangGraph 的并发执行

LangGraph通过两种方式实现并发执行:静态扇出拓扑和动态Send API。扇出拓扑允许当一个节点连接多个下游节点时,这些节点在同一个超步中并发执行;Send API则支持运行时动态创建并发任务。其底层采用Superstep执行模型,按步骤调度就绪节点。并发执行后必须使用Reducer合并结果,避免状态冲突。该模型主要实现并发而非严格并行,通过异步I/O高效处理任务,总耗时取决于最慢的任务。Reducer作为并发执行的收口机制,确保数据正确聚合。

2026-08-09 21:58:25 191

原创 LangSmith如何根据id关系,在服务端把扁平列表重建为树形结构,用于页面渲染Trace视图

本文介绍了如何将扁平的Span列表还原为树形Trace结构的算法。核心步骤包括:1)构建Span ID映射字典并初始化children数组;2)遍历所有Span,根据parent关系挂载到父节点。算法时间复杂度O(n),与输入顺序无关,能处理父节点丢失等边界情况。文章通过Python代码示例演示了实现过程,并解释了该算法在LangSmith等观测平台的实际应用场景,包括数据上报存储方式和树形结构仅在查询时临时构建的特点。最后指出链路残缺是由于部分Span未上报导致的,这也是停止生成时Trace不完整的原因。

2026-08-05 22:28:42 317

原创 LangSmith平台侧:根据span_id + parent_span_id,拼装出Trace树形视图

本文揭示了分布式追踪系统中Span的真实存储逻辑:上下文仅保存当前活跃Span对象,而非完整树结构。通过ContextVar实现的调用栈管理方式,每个子Span只记录父Span的ID,不持有对象引用。所有Span独立上报至后端服务,由平台根据parent_span_id组装树形视图。这种设计实现了组件解耦,支持并发隔离和部分失败上报,业务代码只需关注父子关系。完整流程展示了从回调处理、上下文管理到服务端视图构建的全链路机制,重点强调了本地不存在完整Trace树对象的核心特点。

2026-08-05 22:24:22 338

原创 LangSmith的Trace和Span是什么

摘要: Span是可观测性系统中的基本单元,用于记录请求链路中的单个操作。一条Trace(完整请求)由多个Span组成,形成树状结构。Span包含ID、父ID、耗时、操作名、输入输出、状态等元数据。LangSmith中的Run等同于Span,通过ContextVar隐式传递父子关系。Span有三种结束状态:正常完成、异常报错或被取消(未完整记录)。伪代码展示了Span的创建和上报流程。在LangGraph等场景中,Span自动嵌套形成完整链路,而LangFuse需要显式传递父节点。核心概念:Trace是请求

2026-08-05 22:22:03 200

原创 看懂整个LangSmith回调流转

本文展示了一个简化的LangChain回调机制实现,包含三个核心部分:1) 定义BaseCallbackHandler基类,包含LLM、工具和链式操作的生命周期钩子;2) 实现MockLangSmithTracer模拟LangSmith的追踪功能;3) 构建MockLLM、MockTool和MockChain业务组件,在关键执行节点主动触发相应回调。该实现清晰地演示了回调机制的工作原理,包括何时触发开始/结束/错误事件,为理解LangChain的完整执行流程提供了简洁的参考模型。

2026-08-05 22:00:40 198

原创 让你最直观地感受到 AST 的“魔法”

这篇文章通过Python的ast模块生动演示了如何利用抽象语法树(AST)进行代码自动化优化,核心内容可总结为: AST三板斧流程 解析:将字符串代码转为语法树结构 遍历修改:通过NodeTransformer精准定位并替换计算节点(如将1+2替换为3) 生成:将修改后的语法树转回代码 架构价值 揭示了代码在计算机中的树形结构本质(如BinOp/Add/Constant节点) 对比正则表达式,展示AST在代码分析上的降维优势(能识别各种变形写法) 安全应用 提出可用AST构建安全防护层,从根本上拦截危险函数

2026-08-02 16:21:27 217

原创 理解MySQL数据库的“事务与锁”

摘要:InnoDB引擎通过MVCC(多版本并发控制)解决读写冲突,利用Undo Log记录旧数据版本,实现读写并行;通过Next-Key Lock(间隙锁)解决写写冲突和幻读问题,不仅锁定记录还锁定索引间隙;借助Redo Log(重做日志)提升写入性能与数据安全性,采用顺序写入替代随机I/O。这三重机制共同保障了MySQL在高并发场景下的高效稳定运行,其设计思想与编程中的不可变对象、延迟加载等模式相通,为数据库优化和系统设计提供了底层架构支撑。(149字)

2026-08-01 21:16:07 126

原创 SQL执行生命周期

本文详细拆解了SQL查询在数据库内部的五步执行流程:1)连接器验证身份权限;2)解析器构建SQL语法树(AST),进行词法语法分析;3)优化器基于元数据选择最优执行计划(是否使用索引);4)执行器调用存储引擎(如InnoDB)通过B+树索引检索数据;5)返回结果集。其中AST负责逻辑解析,B+树负责物理数据检索,两者协同完成查询。理解这个流程有助于精准诊断慢查询问题(如语法错误、索引失效等)。

2026-08-01 20:54:07 150

原创 AST(抽象语法树)

摘要: AST(抽象语法树)是所有现代编程语言(如C、Python)编译/解释的核心结构,通过词法分析和语法分析将代码转为树形结构。C语言将AST优化为机器码,而Python将其转为字节码由解释器执行。Python的ast模块允许运行时访问和修改AST,支持动态元编程,这是其比C语言更灵活的关键。静态语言(C)的AST在编译后消失,而动态语言(Python)保留了运行时的AST操作能力。

2026-08-01 20:48:01 80

原创 60 行代码的“迷你版 Agent 工具调度器”

这篇文章介绍了一个仅60行代码的"迷你版Agent工具调度器",完整复现了Pytest插件系统的核心机制。它通过事件触发、优先级排序、责任链执行和洋葱模型(Wrapper)设计,展示了插件化架构的精髓。代码包含钩子注册池、优先级装饰器和Wrapper标记,模拟了Auth鉴权、Search查询和Log记录三个插件执行流程。该实现完美诠释了控制反转(IoC)思想,各插件无需相互知晓即可协同工作。这个微型系统揭示了Pytest、LangChain回调机制和微服务网关的底层原理,帮助开发者理解现代插件化架构的设计范

2026-08-01 17:24:00 162

原创 Pytest 的底层源码最应该学习的技术

Pytest 的底层机制远比表面功能复杂:1) 采用猴子补丁在内存中动态替换函数地址实现 Mock,不侵入业务代码;2) 通过钩子机制建立测试生命周期协议(Setup-Call-Teardown),结构化处理异常;3) 对 assert 语句进行 AST 重写,自动生成详细的断言失败诊断信息。这些设计使得 Pytest 既能保持简洁的测试语法,又能提供强大的测试能力和丰富的错误反馈。

2026-08-01 17:05:11 141

原创 pytest的AST 断言重写

摘要:Pytest的AST断言重写机制 Pytest通过AST(抽象语法树)重写技术增强断言功能。当检测到assert a == b时,Pytest会自动重写代码以提供详细的错误诊断信息。但若添加自定义提示(如assert a == b, "提示"),此机制会失效——因为Pytest的AST解析器发现msg属性非空时会保留原生断言行为。底层原理是检查AST节点的msg字段是否为空,该机制实现在rewrite.py的visit_Assert方法中。关键结论:需省略自定义错误消息才能启用Pytest的高级调试功

2026-08-01 16:57:52 170

原创 sys.modules[“py.error“] = error sys.modules[“py.path“] = path 这两行代码是什么意思

摘要:这段代码通过直接操作Python的sys.modules字典,将两个对象(error和path)注册为虚拟模块(py.error和py.path)。这种技术常用于框架底层,目的是构建优雅的模块化API结构,实现两个关键目标:(1)提供简洁的导入路径(from py.error import MyError),优化开发者体验;(2)集中控制模块初始化逻辑,确保全局配置只执行一次。该方法绕过了常规模块加载流程,直接在内存中建立模块映射,是Python元编程的典型应用。

2026-08-01 16:35:49 177

原创 py文件里面写入:__all__ = [“error“, “path“] 是什么意思

__all__是Python模块中控制from module import *导入行为的白名单机制。当定义__all__ = ["name1", "name2"]时,只有列出的名称会被星号导入公开,其他名称将被隐藏(除非显式指定导入)。这种设计主要用于: 避免命名空间污染 隐藏模块内部实现细节 明确模块对外接口 需注意: 仅影响星号导入,显式导入不受限制 是模块封装的重要工具 推荐在公开模块中规范使用 典型应用场景是模块需要暴露少量接口而隐藏大量内部实现时。

2026-08-01 16:13:50 209

原创 py文件开头为什么需要加:from __future__ import annotations

文章摘要:Python中from __future__ import annotations的正确使用场景在于解决类型注解导致的循环引用或前向引用报错问题。在99%的情况下(如普通类方法参数的类型提示),无需使用该开关。只有当类型注解引发程序崩溃(如在类定义中返回自身类实例时出现NameError),才需要启用这个功能将注解视为字符串处理。核心原则是:类型注解是原生语法可自由使用,而该导入语句是专门应对特定报错的"急救药"。通过两个代码示例对比,清晰展示了常规使用与异常场景的差异。

2026-08-01 16:08:29 159

原创 【概念学习】时间序列建模

时间序列建模是分析时序数据并预测趋势的重要方法。文章介绍了ARIMA、SARIMA、指数平滑、GARCH和深度学习等主流模型,重点讲解了ARIMA的Python实现示例,包括数据加载、模型拟合和预测评估。同时提出了完整的建模流程建议:从数据预处理、特征分析到模型选择和评估,并列举了在销售预测、异常检测等场景的应用。文章强调需根据数据特性选择合适模型,并通过交叉验证确保预测准确性。

2026-05-23 20:54:13 60

原创 【大语言模型应用】利用 DuckDuckGo 和 Tavily 搜索引擎

AI 功能 (DuckAssist):2025-2026年间,它也推出了名为 “DuckAssist” 的 AI 摘要功能,可以在搜索结果顶部生成简要答案,但依然坚持隐私优先,不保存对话历史。Tavily 不是一个给人类直接打开网页去搜东西的网站,它是一个API 服务,专门设计用来让 大型语言模型(LLM) 和 AI 代理(AI Agents) 能够实时获取准确的网络信息。智能过滤与聚合:它不仅仅是抓取链接,还会对搜索结果进行清洗、去重和相关性排序,只把最高质量的信息传给 AI,节省 Token 成本。

2026-03-01 17:58:34 1642

原创 大语言模型前后端开发过程中SSE是什么?

SSE(Server-Sent Events)是一种实现服务器向客户端流式推送数据的技术。它通过保持HTTP连接,让服务器持续发送数据片段,实现实时内容更新。在AI应用中,SSE被广泛用于大模型的流式回复(如ChatGPT逐字输出效果),相比传统请求模式能提供更流畅的用户体验。SSE采用单向HTTP通信,支持自动重连,数据格式简单(如data: {"content":"文本"}nn),且无需建立复杂双向连接。示例代码展示了如何用FastAPI实现SSE的流式响应功能。

2026-03-01 17:35:45 204

原创 【学习篇】异步任务处理框架celery学习

Celery是一个基于Python的分布式任务队列框架,主要用于异步任务处理和定时任务调度。它由消息中间件(Broker)、任务执行单元(Worker)和结果Backend三部分组成,支持与RabbitMQ、Redis等集成。Celery常用于耗时操作(如邮件发送、图像处理)影响着程序响应速度的场景,以及需要分布式任务涌动的应用。通过简单的代码示例展示了如何创建Celery异步任务,并使用Flower工具进行任务执行监控。

2025-10-12 10:10:21 399

原创 【学习篇】什么是分布式系统

摘要: 分布式系统通过多台计算机协同工作,突破单机性能、存储和可用性限制,对外提供统一服务。其核心特征包括多节点协同、资源共享、无全局时钟和故障独立性,常见架构有客户端-服务器、微服务、分布式存储/计算等。主要挑战源于网络不可靠(延迟、分区)与节点故障,需解决数据一致性、容错和负载均衡问题,采用Raft、副本机制等技术实现高可用。典型技术栈涵盖gRPC、Kafka、Kubernetes等,适用于高并发、海量数据场景。本质是以多节点网络协作扩展系统能力。

2025-10-09 21:57:57 719

原创 【学习篇】redis发布订阅模式

Redis 发布订阅(Pub/Sub)是一种轻量级消息广播机制,通过频道实现一对多实时通信。核心原理是:发布者通过 PUBLISH 向频道发送消息,Redis 服务器根据订阅关系表(频道-客户端映射)将消息推送给所有订阅者。订阅者通过 SUBSCRIBE 阻塞监听频道,支持通配符模式订阅。特性包括无消息持久化、实时推送、订阅关系随连接断开消失。适用于实时通知、日志广播等场景,但不保证消息可靠投递。相比消息队列(如 Kafka),Redis Pub/Sub 更轻量但功能有限,适合允许消息丢失的高实时性需求。

2025-10-09 21:52:59 1028

原创 【学习篇】Redis 分布式锁

Redis分布式锁是解决分布式系统并发资源竞争的常用方案,通过SET NX EX命令加锁和Lua脚本解锁实现互斥访问。核心要求包括互斥性、安全性、死锁避免、高可用和性能。基础实现使用原子操作设置锁和过期时间,进阶方案如Redlock算法解决集群高可用问题。常见问题包括锁超时、误删锁和主从切换锁丢失,可通过锁续期、Lua验证和Redlock解决。生产推荐使用Redisson等成熟客户端,避免重复造轮子。最佳实践包括合理设置锁key、唯一标识和优先使用客户端库。

2025-10-09 21:47:51 1649

原创 在Python中加载.pkl文件

本文介绍了Python中加载.pkl文件的几种方法。主要使用pickle模块,包括基本加载方式、处理大文件的方法,以及兼容性处理和替代方案(joblib)。文章还提供了完整示例展示.pkl文件的保存和加载流程,并提醒了安全性注意事项,建议不要加载不可信来源的.pkl文件。

2025-10-09 21:39:22 531

原创 windows如何设置mongodb的副本集

本文详细介绍了在Windows环境下配置MongoDB副本集的完整流程。主要内容包括:1)准备工作,创建数据目录和日志目录;2)启动三个MongoDB实例并初始化副本集;3)可选设置Windows服务实现自动启动;4)功能验证和常见问题解决方法;5)提供Python和Node.js连接代码示例。文章特别强调了副本集配置的关键参数和注意事项,如端口设置、数据目录权限、防火墙配置等,并针对Windows环境提供了服务注册方案。通过本指南,用户可以快速搭建一个可靠的单机模拟MongoDB副本集环境。

2025-10-09 21:27:46 1058

原创 MongoDB 集合更新后通过 Socket.IO 自动推送数据到前端 (FastAPI 实现)

本文介绍了如何使用 FastAPI 和 Socket.IO 实现 MongoDB 数据变更实时推送功能。主要内容包括: 后端实现: 使用 FastAPI 搭建 Web 服务 配置 MongoDB 变更流(Change Streams)监听数据变化 集成 Socket.IO 实现实时通信 启动时自动运行监听任务 前端实现: 通过 Socket.IO 客户端监听后端推送 实时显示两个集合的数据变更

2025-10-09 21:14:40 1197

原创 遇到RabbitMQ 的 `channel_max` 限制报错

RabbitMQ连接达到通道数上限(2047)的解决方案 摘要:当RabbitMQ客户端创建的通道数达到服务器设置的channel_max(默认2047)时,会抛出ConnectionNotAllowed错误。问题根源在于通道未被正确关闭而持续累积。正确的做法是:1)每个操作使用新通道;2)操作完成后必须关闭通道;3)仅复用连接而非通道。

2025-10-09 20:56:01 560

原创 只有通过Motor 获取 mongodb的collection,才能正常使用 async with collection.watch()监听集合变更

要正确使用 async with collection.watch(),必须通过 Motor 异步驱动获取 MongoDB 集合对象。核心步骤: 安装 Motor 驱动:pip install motor 创建异步客户端:AsyncIOMotorClient 获取数据库和集合对象:client[db_name][collection_name] 最终得到的 AsyncIOMotorCollection 实例才能用于变更监听 关键要点: MongoDB 必须运行在副本集模式 连接字符串需包含副本集名称 必须使

2025-10-09 20:42:29 277

原创 【工具推荐】Apifox Helper 是 Apifox 团队针对 IntelliJ IDEA 所推出的插件

Apifox Helper插件现已上线,支持IDEA开发环境,提供API文档同步、调试等功能。通过该插件可快速生成API文档,提升开发效率。下载链接:插件官网。插件界面简洁直观,支持多种API操作,满足开发需求。

2025-08-16 11:14:42 346

原创 【概念学习】深度学习有何不同

通过共同的特征学习,一旦模型修改某个内部特征,所有依赖于该特征的其他特征都会相应地自动调节适应,无须人为干预。这种方法比贪婪地叠加浅层模型更加强大,因为它可以通过将复杂】抽象地表示拆解为很多个中间空间(层)来学习这些表示,每个中间空间仅仅是前一个空间的简单变换。先前的机器学习技术(浅层学习)仅包含将输入数据变换到一两个连续的表示空间,通常使用简单的变换,比如高维非线性投影(SVM)或决策树。这极大地简化了机器学习工作流程,通常将复杂的多阶段流程替换为一个简单的、端到端的深度学习模型。

2025-08-06 21:28:50 306

原创 【概念学习】早期神经网络

摘要:反向传播算法是优化参数化运算链的关键技术,1989年Yann LeCun将其与卷积神经网络结合,开发出LeNet用于手写数字识别。核方法(如SVM)通过高维映射和间隔最大化寻找决策边界,但依赖人工核函数且难以扩展。决策树及其集成方法(随机森林、梯度提升机)通过组合弱模型提升性能,其中梯度提升机通常优于随机森林,适用于各类浅层学习任务。这些方法各有优劣,适用于不同场景。

2025-08-06 20:18:28 523

原创 【概念学习】什么是深度学习

机器学习的概念来自于图灵的这个问题:对于计算机而言,除了“我们命令它做的任何事情”之外,它能否自我学习执行特定任务的方法?这就是机器学习的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找输入数据的有用表示。利用机器学习,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是规则。在相当长的时间内,许多专家相信,只要程序员精心编写足够多的明确规则来处理知识,就可以实现与人类水平相当的人工智能。深度学习是机器学习的一个分支领域:它是从数据中学习表示的一种新的方法,强调从连续的。

2025-08-06 19:24:42 904

文献研读:The coopetition game in international liner shipping

本人以前研究航线规划方面的合作博弈问题,现在不做这方面的研究了,以前收集整理的一些资料分享一下,供有相同研究背景的同学参考下。

2023-05-14

python实现车辆路径轨迹移动的上位机程序

详细描述见博客:https://blog.csdn.net/Logintern09/article/details/122256617

2024-05-25

开源框架openTCS用户指导手册

开源框架openTCS用户指导手册

2023-11-28

开源框架openTCS开发者指导手册

开源框架openTCS开发者指导手册

2023-11-28

有关集装箱空箱调运的文献综述整理版

有关集装箱空箱调运的文献综述(查阅的文献资料比较老)

2023-07-13

Flexsim初中高级学习PPT资料

Flexsim初中高级学习PPT资料

2023-07-13

PETRI网建模理论基础PPT学习资料

PETRI网建模理论基础PPT学习资料

2023-07-13

AnyLogic软件学习PPT资料

AnyLogic软件学习PPT资料

2023-07-13

有关复杂网络的文献综述整理版

有关复杂网络的文献综述整理版(文献都比较老)

2023-07-13

python实现九宫格的车辆路径轨迹上位机程序

实验环境:wxFormBuilder v3.5 + python3.7.5 + MC9S12G128开发板 基本功能:控制开发板上的按键,模拟车辆移动的上下左右四个方位,通过can通信告诉上位机界面,车辆轨迹的移动方位。

2023-05-19

基于合作博弈的收益分配策略-合作博弈理论的几种收益分配方法

以前研究合作博弈问题,收集整理的一些资料,供有需要的同学免费下载,希望有用。

2023-05-17

python调用32位的ControlCan.dll实现can报文的收发

can_interface.py是已二次封装好的报文收发函数,可直接调用实现不同的上位机开发需求。 请前往本博主的个人主页搜索本资源的说明文档:《python调用32位的ControlCan.dll实现can报文的收发》 有出错不当之处欢迎本资源下方评论!!!

2022-11-05

文献研读:Stable Cooperation in Dynamic Vehicle Routing Problems

做论文研究时候研读的一篇外文文献《Stable Cooperation in Dynamic Vehicle Routing Problems》,上传文档是自己对这篇文献的一些理解,希望帮助到有相同研究方向的同学。

2023-02-07

文献研读:在集装箱班轮航运网络中逆转港口循环方向

做论文研究时候研读的一篇外文文献《Reversing port rotation directions in a container liner shipping network》,上传文档是自己对这篇文献的一些理解,希望帮助到有相同研究方向的同学。

2023-02-06

航线网络设计问题+合作博弈收益分配问题

本人以前研究航线规划方面的合作博弈问题,现在不做这方面的研究了,以前收集整理的一些资料分享一下,供有相同研究背景的同学参考下。

2023-02-05

32位ControlCan.dll 供实现周立功can设备报文收发调用

将ControlCan.dll和kerneldlls文件夹放置在.py文件的同级目录下,通过python的ctypes模块调用ControlCan.dll接口函数实现can报文的收发操作。

2022-09-29

用于求解单配送中心带硬时间窗约束VRP的多智能体进化算法

多智能体进化算法的详细编程思路请移步至本博主的专栏《智能优化算法》中的文章《多智能体进化算法求解带硬时间窗约束的VRP问题(附完整python程序代码+思路详解)》

2022-10-21

图论算法基于并查集优化的克鲁斯卡尔算法:稀疏图最小生成树高效构建方法研究

内容概要:本文详细介绍了克鲁斯卡尔(Kruskal)算法的基本思想、算法流程及其在构建图的最小生成树中的应用。该算法通过初始化一个仅含顶点的非连通图,逐步选取边集中权值最小且连接不同连通分量的边,最终形成包含n-1条边的最小生成树。文章还分析了算法的时间复杂度,在使用并查集优化后为O(eloge),适用于边稀疏的网络。同时提供了C++语言实现的完整程序代码,展示了如何利用排序和并查集结构高效实现算法逻辑。; 适合人群:具备数据结构与算法基础,熟悉图论相关概念的大专院校学生或初级程序员;适合正在准备算法竞赛或面试中涉及图算法的技术人员; 使用场景及目标:①学习最小生成树的经典算法实现;②掌握并查集在实际算法中的应用;③理解贪心策略在图问题中的具体体现; 阅读建议:建议结合文中示例图进行代码调试与跟踪,深入理解每一步的合并过程和避环机制,同时对比普里姆算法以全面掌握两种最小生成树算法的异同。

2026-05-23

博弈论基于Sprague-Grundy定理的公平组合游戏分析:子游戏Nimber值计算与整体胜负判定系统设计

内容概要:本文介绍了博弈论中的一个重要算法——Sprague-Grundy(SG)定理,用于解决一类公平博弈(Impartial Game)问题。文章以TopCoder竞赛题CirclesGame为引子,阐述了如何将复杂的博弈状态建模为有向无环图(DAG),并通过构建森林与树形结构,利用SG函数将各子游戏转化为Nim游戏进行求解。核心思想是通过计算每个游戏状态的SG值(即Nimber),再将所有子游戏的SG值异或,判断初始状态是否为必胜态。文中详细讲解了Mex函数的定义、SG值的递推计算方法,并结合多个实例演示求解过程,最后给出了构造游戏图和树形DP的具体实现思路。; 适合人群:具备一定算法基础、熟悉博弈论初步概念的程序员或ACM/ICPC、OI竞赛参与者,尤其适合有一定编程经验、希望提升博弈类题目解题能力的1-3年开发者或学生。; 使用场景及目标:①理解和应用Sprague-Grundy定理解决各类公平博弈问题;②掌握将复杂游戏分解为子游戏并计算SG值的方法;③学习树形DP与记忆化搜索在博弈算法中的实际运用; 阅读建议:建议结合Wikipedia相关理论证明深入理解SG定理的数学基础,并动手实现文中的伪代码,通过具体题目如CirclesGame进行调试与验证,以强化对SG函数构建与异或整合策略的掌握。

2026-05-23

动态VRP中的稳定合作2015年

动态VRP中的稳定合作2015年

2026-05-23

【运筹学与博弈论】基于合作运输博弈的强均衡联盟结构构建:多参与者成本分摊机制与优化模型研究

内容概要:本文研究了合作运输博弈(CTG)中的强均衡联盟问题,基于车辆路径问题(VRP)构建博弈模型,将顾客视为博弈参与者,通过形成联盟租用车辆以降低运输成本。文章定义了运输网络、路线、联盟结构及成本函数,并引入纳什均衡原则进行成本分配。提出了可接受联盟与本质联盟的概念,设计多阶段过程以生成唯一联盟结构,并给出了强均衡策略的定义及其构造方法。最终,文章证明了强均衡解的存在性并提供了一种计算该解的算法,通过数值算例验证了方法的有效性。; 适合人群:运筹学、物流管理、博弈论相关领域的研究人员及研究生;具备一定数学建模与博弈理论基础的专业人士。; 使用场景及目标:①用于分析多方参与的运输协作系统中如何达成稳定联盟;②解决实际物流配送中基于合作博弈的成本分摊与路径优化问题;③为供应链协同、共享物流等场景提供理论支持与算法工具。; 阅读建议:本文理论性强,涉及较多定义与数学推导,建议读者结合算例逐步理解联盟结构的构建过程与强均衡策略的判定逻辑,并配合图示与公式演算加深对核心概念(如支付函数、多阶段构造过程)的理解。

2026-05-23

通过滑块拉取CAN报文信号数值自动发送报文:https://blog.csdn.net/Logintern09/article/details/127106646?spm=1011.2415.3001

can报文自动发送工具 介绍 工具使用wxpython进行开发,配套Excel模板可以通过修改Excel自定义界面展示的信号名称和信号的属性。 以32位ControlCAN.dll开发的can报文发送工具,目前迭代到V1.0.0版本,生成.exe需要32位的python环境,需要借助miniconda配置一个32位的环境提供32位的ControlCan.dll运行。 软件架构 有一个模板Excel文件,分为三个sheet页签,介绍如下: 1. 界面调参 主要是针对不同用户的电脑屏幕大小,出于界面间距美观的角度,允许用户通过设置“面板宽度”属性改变CAN信号所占界面的比例大小(每个CAN信号都放置在一个面板上)。 2. 参数配置 允许用户设置工具界面显示的CAN信号名称和规定CAN信号允许发送的初始值。 3. 报文定义 详细定义CAN信号的属性,包括:帧格式、帧ID、字节顺序、分辨率、偏移量、有效值范围、报文发送周期(ms)。出于界面美观和用户实际操作角度考虑(我记不清当时设置这个需求的真实场景/(ㄒoㄒ)/~~),新增“单位比例”属性,允许用户对信号在有效值范围内的大小进行压缩,例如转速信号的有效数值范围是0-1000,如果“单位比例”设置为10,那么转速信号所在的滑块数值范围就是0-100(目前滑块每次移动都是1)。其实也可以考虑增加一个参数控制信号滑块每次拉到的步长。 安装教程 https://blog.csdn.net/Logintern09/article/details/127106646?spm=1011.2415.3001.5331

2025-05-05

集装箱空箱调运的文献综述

内容概要:该文献综述聚焦于集装箱空箱调运问题,探讨了多种特定条件下的优化策略,包括使用可折叠式集装箱、考虑箱种代用、在途库存成本、航线优化、低碳经济、班轮公司合作、管理层面对策、客户需求满足、时间窗约束、多式联运、收益管理和市场定价等。文章详细介绍了不同研究者通过线性规划、随机规划、机会约束规划、遗传算法、免疫算法、蚁群算法、模拟退火算法、生命周期理论、双层网络规划模型、库存控制模型等方法解决空箱调运问题,并分析了各种模型的应用场景和效果。此外,还讨论了未来研究方向,如市场需求不确定性、多港口和多货运主体之间的协调等。 适用人群:从事集装箱运输行业及相关领域的研究人员、物流管理人员、航运公司决策者、港口管理者等。 使用场景及目标:①帮助航运公司优化空箱调运策略,降低成本;②为港口管理者提供科学的决策支持,提高空箱调运效率;③为物流管理人员提供理论依据和技术手段,提升服务质量;④促进班轮公司之间的合作,实现资源共享和成本分摊;⑤推动绿色低碳运输的发展,减少碳排放。 其他说明:该文献综述涵盖了广泛的集装箱空箱调运问题研究,不仅关注技术层面的优化方法,还强调了管理层面的创新模式。文中提到的各种模型和算法为解决实际问题提供了丰富的工具和思路,但同时也指出了一些尚未解决的问题,如市场需求的不确定性、多港口和多货运主体之间的协调等,这些将是未来研究的重点方向。

2025-05-05

urban transportation networks.pdf

交通、物流专业必看文献:urban transportation networks

2025-05-05

博弈论凸博弈特性分析及行生成算法在合作博弈核心计算中的应用研究

内容概要:文章主要阐述了合作博弈理论中的凸博弈概念及其特性,重点介绍了凸博弈的核心概念、核心与Weber集的关系以及行生成算法的应用。凸博弈的特点在于个体或群体加入较大联盟时收益增加而成本减少。文中详细解释了核心的概念,指出核心是所有边际向量的凸包,但检验核心非空性是NP完全问题。此外,还介绍了通过行生成算法计算核心元素的具体步骤,包括初始化联盟、解决主问题、检查停止条件、寻找违反稳定性的联盟并进行更新等迭代过程。; 适合人群:对博弈论有一定了解的研究人员、高校相关专业师生以及对合作博弈理论感兴趣的学者。; 使用场景及目标:①理解凸博弈的基本概念和特点;②掌握凸博弈中核心与Weber集的关系;③学会使用行生成算法计算核心元素,应用于实际的合作博弈问题分析。; 阅读建议:本文涉及较多数学公式和专业术语,建议读者在阅读前复习相关基础知识,如线性代数、离散数学等。同时,结合具体实例进行理解,有助于更好地掌握行生成算法的具体应用。

2025-05-05

博弈理论演化博弈论在经济学中的应用:动态均衡与选择机制解析

内容概要:演化博弈论结合了博弈理论分析和动态演化过程分析,摒弃了传统博弈论中的完全理性假设,基于达尔文生物进化论和拉马克的遗传基因理论,强调群体行为的动态调整过程。演化博弈论主要研究随着时间变化的群体,探讨群体演化的动态过程及其达到的状态。其核心特征包括选择过程(高支付策略被更多采用)和突变过程(随机选择不同策略),并通过这两种机制解释群体的变化。演化博弈论在经济学中的应用侧重于微观个体的学习和模仿行为,而非生物学概念。常见的选择机制动态方程有正支付、单调和弱正支付动态方程,其中复制者动态方程最为广泛应用。演化稳定策略与演化均衡是两个关键概念,前者是纳什均衡的精炼,后者则是动态系统中的稳定平衡点。 适用人群:对博弈论、经济学、社会学等领域有一定基础,尤其是对动态系统和群体行为感兴趣的学者、研究人员和学生。 使用场景及目标:①理解群体行为的动态演化过程;②分析选择和突变机制如何影响群体的演变;③探讨演化稳定策略与演化均衡的区别及其在动态系统中的应用;④解释重复博弈和动态博弈中的策略选择及其对长期利益的影响。 其他说明:演化博弈论不仅适用于经济学领域,还广泛应用于社会学、生物学等多个学科,帮助解释复杂的社会现象和行为模式。理解演化博弈论有助于揭示群体行为背后的逻辑,为政策制定和社会管理提供理论支持。此外,演化博弈论强调有限理性和路径依赖,为现实世界的决策提供了更为贴近实际情况的理论框架。

2025-05-05

Matlab博弈论工具箱MatTuGames版本0.4:介绍、基础讲解和实例应用

Matlab博弈论工具箱MatTuGames版本0.4:介绍、基础讲解和实例应用

2025-05-05

【演化博弈理论】基于演化博弈的班轮航线网络设计:任务分配与动态联盟策略分析

内容概要:本文主要阐述了演化博弈理论及其应用,首先介绍了演化博弈的基本概念,即它融合了非合作与合作博弈理论以及生态理论,以有限理性群体为对象,通过动态分析方法描述群体行为的演化趋势。接着举例鹰鸽博弈和配对选择博弈解释了博弈中的赢得矩阵及不同情况下的纳什均衡。随后讨论了演化稳定策略,包括最优反应动态和复制动态两种形式,指出演化稳定策略是在自然选择下不会被突变策略侵犯的策略,是个体不断调整策略追求自身利益改善后达成的一种动态平衡状态。最后提及了动态联盟和任务分配问题,强调任务分配旨在通过协作完成系统中大量任务的实时分配,提高系统运行效率。; 适合人群:对博弈论、群体行为动态变化及优化问题感兴趣的科研人员、高校师生以及相关领域的从业者。; 使用场景及目标:①帮助理解复杂环境下群体行为的动态演变机制;②提供解决实际问题如任务分配、系统优化等问题的新思路;③为研究者提供理论依据,以便深入探究演化博弈在更多领域的应用。; 其他说明:本文引用了相关书籍中的部分内容作为理论支撑,对于想要深入了解演化博弈理论及其应用的读者,可以参考所列文献获取更多信息。

2025-05-05

周力功USBCAN盒二次开发所需的libusbcan.so文件

周力功USBCAN盒二次开发所需的libusbcan.so文件

2025-05-05

智能电池信息界面的.ui文件-博客《使用PyQt5实现添加工具栏、增加SwitchButton控件》的.ui

该资源为博客《使用PyQt5实现添加工具栏、增加SwitchButton控件》的.ui,可以通过QT Designer工具直接打开修改界面,并且博客最后面给出了界面的完整代码,博客地址:https://blog.csdn.net/Logintern09/article/details/140235478

2024-08-08

PPT文件:多方法系统仿真软件AnyLogic

PPT文件:多方法系统仿真软件AnyLogic

2024-05-25

论文《不确定机会约束规划模型的研究及应用》

论文《不确定机会约束规划模型的研究及应用》

2024-05-25

配送中心选择及路径选择采用遗传算法求解的Matlab程序

配送中心选择及路径选择采用遗传算法求解的Matlab程序

2024-05-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除