与/或形演绎推理——基于王永庆著《人工智能原理与方法》的深度解析
前文,我们已经写了两种演绎推理:自然演绎推理和归结演绎推理。
自然演绎推理:自然演绎推理——基于王永庆著《人工智能原理与方法》的深度解析-CSDN博客
归结演绎推理:归结演绎推理——基于王永庆著《人工智能原理与方法》的深度解析-CSDN博客
自然演绎推理、归结演绎推理、与 / 或形演绎推理均为基于经典逻辑的推理方法,旨在从给定前提推出结论,但它们在推理思路、逻辑形式和应用场景上存在差异。
相同点: 三者都是经典逻辑推理方法,都以已知前提为基础,遵循逻辑规则推导结论,目的都是实现逻辑证明或问题求解,且都在人工智能的知识推理领域有着重要应用,为专家系统、定理证明等提供了理论和方法支持。
不同点:
(1)自然演绎推理是从一组已知为真的事实出发,依据经典逻辑的基本推理规则(如 P 规则、T 规则、假言推理、拒取式推理等),按逻辑演绎的方式逐步推出结论,更接近人类自然的推理思维过程;
(2)归结演绎推理是将待证明的问题转化为子句集,利用海伯伦理论构建理论基础,通过鲁宾逊归结原理不断消解子句,以推出空子句来证明原命题的成立,侧重于通过逻辑公式的标准化和归结操作来实现推理;
(3)与 / 或形演绎推理则是利用与 / 或图的形式,正向演绎从事实出发应用 B 规则扩展与 / 或图,逆向演绎从目标出发应用 A 规则反向扩展,双向演绎结合两者,通过图的扩展和节点匹配来完成推理,强调推理过程的图形化表示和对不同推理方向的支持 。
一、与/或形正向演绎推理
(一)基本思想与定义
与 / 或形正向演绎推理是一种基于与 / 或图(And/Or Graph)的推理方法,其核心思想是从已知事实出发,通过规则将事实逐步分解为子目标的合取或析取,最终推导出目标公式。王永庆指出,该方法适用于由事实驱动的推理场景,核心是将事实和规则表示为与 / 或结构,通过规则的匹配和应用扩展推理图,直至目标节点出现。
核心概念:
(1)与节点(And Node):表示子目标的合取(如 A ∧ B),需所有子节点成立。
(2)或节点(Or Node):表示子目标的析取(如 A ∨ B),任一子节点成立即可。
(3)B 规则:形如 B → W 的规则,其中 B 是单文字,W 是与 / 或形公式,用于扩展事实的与 / 或图。
(二)表示形式与推理过程
1. 事实的与 / 或图表示
事实通常表示为无蕴含词的与 / 或形公式,转化步骤:
(1)消去蕴含词和等价词(→, ↔)。
(2)否定词仅作用于原子公式(德摩根定律)。
(3)变量标准化,避免量词约束冲突。
示例:事实 (P ∨ (Q ∧ R)) → S 转化为 ¬ P ∧ (¬ Q ∨ ¬ R) ∨ S,对应的与 / 或图如下:
S (或节点)
/ | \
/ | \
/ | \
P Q R
(与节点,需Q和R同时成立)
2. 规则的应用(B 规则)
B 规则 B → W 用于扩展与 / 或图:
若事实图中存在文字 B,则将 W 作为子节点连接到 B。
示例:规则 P → (Q ∧ R) 应用于事实中的 P,生成 Q 和 R 作为与节点。
3. 目标的表示与匹配
目标公式需表示为子句集,推理过程中检查与 / 或图的叶节点是否包含目标子句的文字。
(三)算法描述
1. 初始化与 / 或图
将事实转化为与 / 或图,根节点为事实公式的顶级析取 / 合取节点。
2. 规则匹配与扩展
python代码示例:
def forward_deduction(facts, rules, goal_clauses): # 步骤1:构建初始与/或图 graph = build_and_or_graph(facts) # 步骤2:应用B规则扩展图 for rule in rules: for node in graph.nodes: if node.literal == rule.antecedent: expand_graph(node, rule.consequent) # 扩展为与/或子节点 # 步骤3:检查目标匹配 if check_goal_matching(graph, goal_clauses): return graph else: return None
3. 目标匹配算法
遍历与 / 或图的叶节点,若存在目标子句的所有文字(通过合一),则目标成立。
(四)应用与示例
1. 示例:数学定理证明(正向推理)
问题:已知 A ∨ (B ∧ C),规则 B → D,C → E,目标 D ∨ E。
事实与 / 或图:
A (或节点)
/ \
/ \
B C (与节点)
应用 B 规则:
B → D 扩展 B 为 D。
C → E 扩展 C 为 E。
目标匹配:扩展后的图叶节点为 A, D, E,包含目标 D ∨ E,推理成功。
2. 与 / 或图的性质
(1)完备性:若目标可从事实推出,正向演绎推理必能找到路径。
(2)局限性:目标公式需为子句形式,事实需为无蕴含的与 / 或形。
二、与 / 或形逆向演绎推理
(一)基本思想与定义
逆向演绎推理从目标公式出发,通过A 规则(形如 W → A,其中 A 是单文字,W 是与 / 或形公式)反推支持目标的事实,适用于目标驱动的推理场景。王永庆强调,逆向推理的核心是将目标表示为与 / 或图,通过规则反向匹配事实子句。
核心概念:
(1)A 规则:用于将目标分解为子目标,如 W → A 表示若 W 成立,则 A 成立。
(2)事实表示:事实需为单文字或合取式,作为推理的终止条件。
(二)表示形式与推理过程
1. 目标的与 / 或图表示
目标公式转化为与 / 或图的步骤与正向类似,但方向相反:目标 D ∨ E 表示为或节点,子节点 D 和 E。
2. 规则的应用(A 规则)
A 规则 W → A 用于扩展目标图:
若目标图中存在文字 A,则将 W 作为父节点,分解为 W 的与 / 或结构。
3. 事实的匹配
事实需为单文字(如 B, C),当目标图的叶节点匹配事实时,推理终止。
(三)算法描述
1. 目标与 / 或图构建
python代码示例:
def backward_deduction(goal, rules, facts): # 步骤1:构建目标与/或图 graph = build_goal_and_or_graph(goal) # 步骤2:应用A规则反向扩展 for rule in rules: for node in graph.nodes: if node.literal == rule.consequent: expand_goal_graph(node, rule.antecedent) # 反向扩展父节点 # 步骤3:检查事实匹配 if check_fact_matching(graph, facts): return graph else: return None
2. 事实匹配算法
遍历目标图的叶节点,若与事实中的单文字匹配(通过合一),则事实支持目标。
(四)应用与示例
1. 示例:故障诊断(逆向推理)
问题:目标 “系统故障 F”,规则 (A ∧ B) → F,C → A,事实 B, C。
目标与 / 或图:
F
|
A (与节点)
/ \
B C
应用 A 规则:C → A 扩展 A 的子节点 C。
事实匹配:叶节点 B 和 C 匹配事实,推理成功。
2. 逆向推理的特性
(1)目标导向性:直接针对目标分解,避免无效搜索。
(2)事实约束:事实需为单文字,限制了复杂事实的表示。
三、与 / 或形双向演绎推理
双向演绎则是结合正向和逆向,同时从事实和目标出发,直到两者的与 / 或图相交。说明如何结合两者的规则,以及如何判断相交条件,示例要体现双向推理的协同过程。
(一)基本思想与定义
双向演绎推理结合正向和逆向推理,同时从事实和目标出发,通过正向扩展事实图、逆向扩展目标图,直至两者的与 / 或图相交(即事实图的叶节点与目标图的叶节点匹配)。王永庆指出,该方法适用于复杂问题,通过双向搜索减少推理空间。
(二)表示形式与推理过程
1. 双向图构建
(1)正向图:事实 + B规则,自底向上扩展。
(2)逆向图:目标 + A规则,自顶向下扩展。
2. 相交条件
事实图中的某个节点与目标图中的某个节点通过合一匹配,且路径连通。
(三)算法描述
python代码示例:
def bidirectional_deduction(facts, b_rules, goal, a_rules): forward_graph = build_and_or_graph(facts) backward_graph = build_goal_and_or_graph(goal) while True: # 正向扩展 for rule in b_rules: expand_forward_graph(forward_graph, rule) # 逆向扩展 for rule in a_rules: expand_backward_graph(backward_graph, rule) # 检查相交 intersection = find_intersection(forward_graph, backward_graph) if intersection: return merge_graphs(forward_graph, backward_graph, intersection) if no_more_expansion(forward_graph, backward_graph): return None
(四)应用与示例
1. 示例:自然语言理解(双向推理)
事实:“猫追老鼠”(表示为 Chase(Cat, Mouse))
目标:“存在动物捕食”(表示为 ∃x, y Predate(x, y))
规则:
正向 B 规则:Chase(x, y) → Predate(x, y)
逆向 A 规则:Predate(x, y) → Chase(x, y)
(1)正向扩展:事实图中 Chase(Cat, Mouse) 应用 B 规则,生成 Predate(Cat, Mouse)。
(2)逆向扩展:目标图中 Predate(x, y) 应用 A 规则,反推 Chase(x, y)。
(3)相交匹配:正向的 Predate(Cat, Mouse) 与目标的 Predate(x, y) 合一,推理成功。
2. 双向推理的挑战
(1)复杂度:需同步维护两个图,计算相交节点。
(2)合一效率:跨图的节点匹配需要高效的合一算法。
四、三种推理方法对比
方法 | 驱动方向 | 规则类型 | 事实表示 | 目标表示 | 适用场景 |
正向演绎 | 事实驱动 | B 规则 | 与 / 或形公式 | 子句集 | 数据丰富的场景 |
逆向演绎 | 目标驱动 | A 规则 | 单文字 / 合取式 | 与 / 或形公式 | 目标明确的场景 |
双向演绎 | 双向驱动 | B+A 规则 | 与 / 或形公式 | 与 / 或形公式 | 复杂问题求解 |
五、与 / 或形推理的数学基础与应用边界
(一)数学基础
(1)与 / 或图的逻辑等价:事实与 / 或图等价于析取范式,目标与 / 或图等价于合取范式。
(2)规则的逻辑含义:B 规则对应蕴含式 B → W,A 规则对应逆蕴含式 W → A。
(二)应用边界
(1)事实限制:正向推理要求事实为无蕴含的与/或形,逆向推理要求事实为单文字。
(2)目标形式:正向目标需为子句,逆向目标需为与 / 或形。
(3)合一要求:谓词逻辑推理需处理变量合一,增加计算复杂度。
六、总结与前沿发展
王永庆在《人工智能原理与方法》中提出的与 / 或形演绎推理体系,通过与 / 或图的结构化表示,实现了事实与目标的双向推理。正向推理适用于数据驱动场景,逆向推理适合目标导向问题,双向推理则在复杂场景中平衡效率。
未来发展方向:
(1)图神经网络融合:用 GNN 优化与 / 或图的扩展策略,提升推理效率。
(2)不确定性处理:将模糊逻辑引入与 / 或图,处理不精确知识。
(3)跨模态推理:结合视觉与语言的与 / 或图,实现多模态问题求解。
通过示例与算法的深度解析,读者可掌握与 / 或形推理的核心机制和应用方法。在实际问题中,需根据数据特征和目标形式选择合适的推理方向,并结合规则优化策略提升效率。与 / 或形推理的结构化特性使其在专家系统、自动规划等领域具有独特优势,是符号推理的重要组成部分。
相关文章:
与/或形演绎推理——基于王永庆著《人工智能原理与方法》的深度解析
前文,我们已经写了两种演绎推理:自然演绎推理和归结演绎推理。 自然演绎推理:自然演绎推理——基于王永庆著《人工智能原理与方法》的深度解析-CSDN博客 归结演绎推理:归结演绎推理——基于王永庆著《人工智能原理与方法》的深度…...
【Qt】Qt 按钮控件详解,PushButton,RadioButton,CheckBox,ToolButton
🍑个人主页:Jupiter. 🚀 所属专栏:QT 欢迎大家点赞收藏评论😊 目录 📚按钮类控件🍑Push Button 🥥Radio Buttion🍃click, press, release, toggled 的区别🍁…...
跨平台开发选Java还是C?应用场景与性能深度对比
🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:AI 【前言】 在计算机技术快速发展的今天,跨平台开发已经成为众多开发者的核心需求。Java和C作为两种历史悠…...
Node.js 的定义、用途、安装方法
关于 Node.js 的定义、用途、安装方法,以及为什么不能使用 DOM、BOM 和与浏览器不同的顶级对象的简明总结: 💡 一、Node.js 的定义 Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,它让 JavaScript 不再局限于浏览…...
5、Props:组件间的密语——React 19 数据传递全解
一、密语启封:咒语学徒的困惑 "教授,我的魔法傀儡为什么总是不听指令?"年轻的学徒举着发光的魔杖,组件树中的傀儡们却像打人柳一样混乱。"记住,艾薇,"赫敏的魔杖在空中划出金色数据流…...
LangGraph中预构件,creat_react_agent的实现流程
LangGraph Prebuilt Agent 流程图 本文档展示了LangGraph的prebuilt模块中Agent的实现流程,重点是create_react_agent函数构建的代理系统流程和结构。 ReAct Agent构建流程 #mermaid-svg-ubcEEuBeApApT624 {font-family:"trebuchet ms",verdana,arial,s…...
python-将文本生成音频
将文本生成音频通常需要结合 文本转语音(TTS,Text-to-Speech) 工具或库来实现,比如 Google TTS (gtts)、Amazon Polly、Microsoft Azure TTS 等。 一、使用 Google TTS (gtts) 将文本生成音频 gtts 是一个简单易用的 Python 库&a…...
【虚幻C++笔记】接口
目录 概述创建接口 概述 简单的说,接口提供一组公共的方法,不同的对象中继承这些方法后可以有不同的具体实现。任何使用接口的类都必须实现这些接口。实现解耦解决多继承的问题 创建接口 // Fill out your copyright notice in the Description page o…...
白酒制造主数据管理全链路解析:业务重塑与AI赋能
作为中国消费领域的支柱产业之一,白酒行业在消费升级、渠道多元化的浪潮下,企业正面临库存积压、串货乱价、质量追溯难等核心痛点。如何通过主数据管理实现业务全链路的标准化与智能化,已成为行业数字化转型的关键命题。 01政策背景与行业现…...
Java与C在典型场景下的性能对比深度剖析
🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:AI 【前言】 在计算机编程领域,Java和C语言都是举足轻重的编程语言。Java以其跨平台性、自动内存管理和丰富…...
基于springboot+vue的数码产品抢购系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示 系统首页 商品信…...
芯片封装制造技术分析
封装技术正由单一防护功能向集成化系统发展,核心需统筹电气参数、热耗散能力与生产成本之间的关系。 一、技术定义与基础功能 芯片封装指通过特定制程将半导体晶片封装于保护结构内的技术,核心作用包括: 环境隔离:阻隔机械冲击、…...
Linux:Makefile
编译器gcc 使用方式:gcc [ 选项 ] 要编译的⽂件 [ 选项 ] [ ⽬标⽂件 ] 编译分为以下几个步骤: 1.预处理(进⾏宏替换) 预处理功能主要包括宏定义,⽂件包含,条件编译,去注释等。 预处理指令是以#号开头的代码⾏。 实例: gcc –E hello.c –o hello…...
下篇:《高阶排序算法:分治思想与性能突破》
个人主页:strive-debug 1. 堆排序(Heap Sort) - **核心思想**:利用 **大根堆(升序)** 或 **小根堆(降序)** 进行选择排序。 - **关键步骤**: 1. **建堆**(…...
5G时代,视频分析设备平台EasyCVR实现通信基站远程安全便捷管控
一、背景介绍 随着移动通信行业的快速发展,各大运营商不断建设越来越多的无人值守通信基站。这些基站大多位于偏远地区,人烟稀少且交通不便,给日常维护带来了许多不便。特别是安装在空旷地带的基站设备,如空调、蓄电池等…...
第 4 篇:Motion 拖拽与手势动画(交互篇)—— 打造直觉化交互体验
Framer Motion 的拖拽与手势系统让实现复杂交互变得异常简单。本文将深入解析核心 API,并通过实战案例演示如何创造自然流畅的交互体验。 🧲 拖拽动画基础 1. 启用拖拽 使用 drag 属性即可开启拖拽能力。支持的值有:true(全方向…...
TDengine 语言连接器(R语言)
简介 R 语言是一种用于统计分析、绘图和数据挖掘的编程语言和软件环境 。 TDengine 支持 R 语言访问 TDengine 数据库,通过 R 语言中的 RJDBC 库可以使 R 语言程序支持访问 TDengine 数据。 以下是安装过程、配置过程以及 R 语言示例代码。 安装过程 在开始之前&…...
Vue Router(3)- 历史记录模式、路由元信息
历史记录模式 Vue Router 支持多种历史管理模式,主要区别在于 URL 的表现形式和页面刷新/直接访问时的处理方式。 如果需要最好的兼容性或没有服务器配置权限,使用 Hash 模式 如果需要干净的 URL 并能配置服务器,使用 History 模式ÿ…...
android studio 运行java main报错
运行某个带main函数的java文件报错 Could not create task :app:Test.main(). > SourceSet with name main not found. 解决办法:在工程的.idea/gradle.xml 文件下添加: <option name"delegatedBuild" value"false" /&g…...
TDengine 3.3.6.3 虚拟表简单验证
涛思新出的版本提供虚拟表功能,完美解决了多值窄表查询时需要写程序把窄表变成宽表的处理过程,更加优雅。 超级表定义如下: CREATE STABLE st01 (ts TIMESTAMP,v0 INT,v1 BIGINT,v2 FLOAT,v3 BOOL) TAGS (device VARCHAR(32),vtype VARCHAR(…...
什么是进程?
目录 冯诺依曼体系 操作系统(OperatorSystem) 设计OS的目的 进程 task_struct 操作 /proc文件夹 父子进程 创建子进程 了解进程之前,我们先说说冯诺依曼体系结构,这是计算机硬件方面的知识。 冯诺依曼体系 我们常见的计算机,如笔记…...
mysql备份存储过程、函数和事件
背景 今天还原mysql数据库备份发现,数据库中没有存储过程和函数,虽然不推荐研发使用数据库的函数、存储过程,但还是免不了有人偶尔使用,所以整理备份和还原策略。 数据库备份 mysqldump -u user -p --routines --triggers --ev…...
【正点原子STM32MP257连载】第五章 ATK-DLMP257B文件系统简介 #文件系统 #SSH
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第五章 ATK-DLMP257B文件系统简介5.1…...
实战5:Python使用循环神经网络生成诗歌
实战5:Python使用循环神经网络生成诗歌 使用依赖加载数据词典构建和文本预处理总代码 在我们学习了课程8后,我们在实战练习一个例子。 你的主要任务:学习如何使用简单的循环神经网络(Vanilla RNN)生成诗歌。亚历山大谢…...
【网络安全】谁入侵了我的调制解调器?(二)
文章目录 针对 TR-069 协议 REST API 的攻击思路攻击百万台调制解调器意外发现 Cox 后端 API 的授权绕过漏洞确认我们能够进入任何人的设备访问和更新任何Cox商业客户账户通过泄露的加密密钥覆盖任何人的设备设置执行对任何调制解调器的命令影响最后想说阅读本文前,请先行浏览…...
当纺织车间遇上“数字魔法”--天拓四方飞鸟物联平台+边缘计算采集网关的智造革命
在传统印象里,纺织车间总是机器轰鸣、纱线纷飞,工人穿梭其间手动调整参数,次品率全凭经验“拿捏”。但如今,某纺织龙头企业的智能工厂里,一台台纺织机像被施了“聪明咒”,自己会“说话”、会“思考”&#…...
基于PLC的停车场车位控制系统的设计
2.1 设计目标 本课题为基于PLC的停车场车位控制系统来设计,在此将功能确定如下: 针对8个车位的停车场进行设计将停车场分为入口处,车位处、以及出口处三个部分;每个车位都有指示灯指示当前位置是否空闲,方便司机查找空…...
ios接入穿山甲【Swift】
1.可接入的广告,点击右下角查看接入文档 https://www.csjplatform.com/union/media/union/download/groMore 2.进入接入文档,选择最新版本进行接入 pod Ads-CN-Beta,6.8.0.2pod GMGdtAdapter-Beta, 4.15.22.0pod GDTMobSDK,4.15.30pod KSAdSDK,3.3.74.0p…...
【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(二)
自动引用计数 前言ARC规则所有权修饰符**__strong修饰符**__weak修饰符__unsafe_unretained修饰符__autoreleasing修饰符 规则属性数组 前言 上一篇我们主要学习了一些引用计数方法的内部实现,现在我们学习ARC规则。 ARC规则 所有权修饰符 OC中,为了处…...
智能语音识别+1.2用SAPI实现文本转语音(100%教会)
欢迎来到智能语音识别系列的第二篇文章. 上一篇文章的地址在这:智能语音处理1.1下载需要的库(100%实现)-CSDN博客 想必上一篇的操作(文本转语音)已经成功实现了 接下来,我们要学习用SAPI技术去实现文本转语音 一.简单介绍SAPI技术 SAPI是架构在COM基础上的,微软…...
Unity导出微信小游戏后无法调起移动端输入框
参考官方demo 参考demo https://gitee.com/wechat-minigame/minigame-unity-webgl-transform/tree/main/Demo/API_V2 里面有对输入文本框适配的处理方法,还有一些其他功能展示 1 使用Unity打开/Demo/API目录,API示例开发版本为Unity 2022.3.14f1。 2 若…...
16.使用豆包将docker-compose的yaml转为k8s的yaml,安装各种无状态服务
文章目录 docker方式httpbinit-toolslinux-commandmyipreference docker-compose安装k8s方式 docker方式 httpbin A simple HTTP Request & Response Service https://httpbin.org/ https://github.com/postmanlabs/httpbin https://github.com/mccutchen/go-httpbin do…...
每日OJ_牛客_kotori和抽卡(二)_数学_C++_Java
目录 牛客_孩子们的游戏_约瑟夫环 题目解析 C代码 Java代码 牛客_孩子们的游戏_约瑟夫环 孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网 描述: 每年六一儿童节,牛客都会准备一些小礼物和小游戏去看望孤儿院的孩子们。其中,有个游戏…...
整活 kotlin + springboot3 + sqlite 配置一个 SQLiteCache
要实现一个 SQLiteCache 也是很简单的只需要创建一个 cacheManager Bean 即可 // 如果配置文件中 spring.cache.sqlite.enable false 则不启用 Bean("cacheManager") ConditionalOnProperty(name ["spring.cache.sqlite.enable"], havingValue "t…...
JVM:运行时数据区和线程
一、运行时数据区概述 (1)整体架构 JVM 启动时,操作系统会为它分配相应的内存空间,接着 JVM 会对分配到的空间进行划分。当 JVM 退出,这些空间会被回收。JVM 将分配到的内存空间主要分成五部分:程序计数器…...
Lucene.NET + Jieba分词:核心词典与停用词配置详解
文章目录 前言一、dict.txt:核心分词词典1. 文件作用2. 文件格式3. 配置方法 二、cn_synonym.txt:同义词扩展库1. 文件作用2. 文件格式3. 在 Lucene 中使用 三、stopwords.txt:停用词表1. 文件作用2. 文件格式3. 配置方法 四、实战࿱…...
软件测试之测试数据生成(Excel版)
这是Excel生成测试数据的函数使用 1.时间 1.1.时间 例生成2022-05-01之前一年内任意时间点: =TEXT("2022-05-01"-RAND()-RANDBETWEEN(1,365),"yyyy-mm-dd hh:mm:ss")1.2.年月日 yyyy-mm-dd 以当前时间生成10年的日期 =TEXT(NOW()-RAND()-RANDBETWE…...
局域网内Docker镜像共享方法
在局域网内将Docker镜像构建并传输到另一台电脑,可以通过以下几种方法实现。以下是具体步骤及注意事项,结合不同场景的适用方案: 方法一:使用 docker save 和 docker load 传输镜像文件 步骤说明 在构建机上保存镜像 通过 docker…...
解决WinEdt编辑器出现文字不会适应软件宽度的问题
解决WinEdt编辑器出现文字不会适应软件宽度的问题 问题描述解决 问题描述 在使用WinEdt编辑Latex文本时,发现突然动了下键盘,或者突然就在编辑文本时不能自动换行,而是超出了软件屏幕的宽度。 解决 按住ctrl w ,直到界面变成下…...
跨境电商管理转型:日事清通过目标管理、流程自动化助力智优美科技项目管理升级与目标落地复盘
1.客户背景介绍 深圳市智优美科技有限公司是一家专业从事外贸B2C的电子商务公司,公司总部位于深圳市宝安区,旗下拥有三家子公司。目前销售的品类有:家居用品、电子产品、电子配件产品等,在深圳外贸电商行业销售额稳居行业前10名。…...
高防CDN、高防IP vs 高防服务器:核心优势与选型指南
一、高防服务器的核心局限 高防服务器是指通过机房部署硬件防火墙(如集群防火墙、流量清洗设备)来防御DDoS攻击的物理或虚拟服务器。其核心问题在于: 单点防御风险:依赖单一服务器硬扛攻击,若攻击流量超过防御阈值&am…...
入门-C编程基础部分:5、变量
飞书文档https://x509p6c8to.feishu.cn/wiki/PVnawQn5DiVhHhkMApqcDyDvnWg 变量的作用? 存储程序运行时,需要存储一些可能会变化的数据。 C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局。 变量的名称可以由字母、数字和下划…...
Kafka深度解析与实战应用
Kafka深度解析与实战应用 作者:LedgerX技术团队 发布日期:2025年4月16日 引言 在当今数字时代,数据已成为企业的核心资产,而高效处理大规模数据流的能力则成为现代后端系统的关键挑战之一。Apache Kafka作为一个分布式流处理平台…...
数学教学通讯杂志数学教学通讯杂志社数学教学通讯编辑部2025年第6期目录
课程教材教法 “课程思政”视域下的高中数学教学探索与实践——以“函数概念的发展历程”为例 赵文博; 3-617 PBL教学模式下高中统计教学的探索与实践——以“随机抽样(第一课时)”为例 陈沛余; 7-10 “三新”背景下的高中数学教学困境与应对…...
【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(二)
本篇博客给大家带来的是多线程中synchronize的实现原理和JUC(java.util.concurrent) 常见类的相关知识点. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的…...
Flutter PIP 插件 ---- iOS Video Call 自定义PIP WINDOW渲染内容
以下是一篇关于在 iOS 中实现画中画(PiP)功能的技术博客: iOS 画中画(PiP)功能实现指南 效果 简介 画中画(Picture in Picture, PiP)是一项允许用户在使用其他应用时继续观看视频内容的功能。本文将详细介绍如何在 iOS 应用中实现 PiP 功能,包括自定义内容渲染和…...
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——4G模块ME3630测试
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——4G模…...
高并发内存池(四):内存释放原理与实现
前言:经过前3期的攻坚,我们已完整实现了内存动态申请的核心模块。接下来将进入关键阶段——内存释放机制的理解与实现,这是构建完整 高并发内存池 的最后一块技术拼图。该模块完成后,项目主体架构将基本成型(达90%&…...
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——EEPROM、SPI FLASH测试 #AT24C64 #W25Q128
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——EEP…...
《突破控件限制:用Qt绘图API解锁高级界面定制能力》
一、基本概念 虽然 Qt 已经内置了很多的控件,但是不能保证现有控件就可以应对所有场景。很多时候我们需要更强的 “自定制” 能力。 Qt 提供了画图相关的 API,允许我们在窗口上绘制任意的图形形状来完成更复杂的界面设计 所谓的 “控件” 本质上也是通…...