当前位置: 首页 > news >正文

山东大学人工智能导论期末复习概念汇总

人工智能概念汇总V2

—Nevertheless

简介

[!NOTE]

本文是在原版的基础上,面向期末而进行的删减版本
建议使用pdf版本,排版和图片显示完全。如有需要,可私信发送邮箱地址

PDF版本:
山东大学人工智能导论概念汇总pdf版
山东大学软件学院人工智能导论期末试题——2025年1月3日

第一章 绪论

智能:是知识与智力的总和

知识:在长期的生活及社会实践中、在科学研究及实验中积累起来的对客观世界的认识与经验

​ 是一切智能行为的基础

智力:获取知识并应用知识求解问题的能力

智能的特征:感知能力、记忆与思维能力、学习能力、行为能力(表达能力)

记忆:存储由感知器官感知到的外部信息以及由思维所产生的知识

学习系统的组成:环境、学习、知识库、执行与评价

人工智能:用人工的方法在机器(计算机)上实现的智能

知识表示:将人类知识形式化或者模型化

机器感知:使机器(计算机)具有类似于人的感知能力。(以机器视觉与机器听觉为主)

机器学习:使机器(计算机)具有类似于人的学习能力,自动地通过学习获取知识和技能,不断改善性能,实现自我完善

机器思维:对通过感知得来的外部信息及机器内部的各种工作信息进行有目的的处理

机器行为:计算机的表达能力

深度学习(Deep Learning):特指基于深层神经网络模型方法的机器学习

人工神经网络:一个用大量简单处理单元经广泛连接而组成的人工网络,用来模拟大脑神经系统的结构和功能

人工智能的发展阶段

  • 孕育(1956年以前):为人工智能的研究奠定了基础
  • 形成(1956 - 1969):人工智能的研究在多个领域取得了许多引人瞩目的成就
  • 发展(1970年以后):人工智能的研究在多个领域取得重大的突破

第二章 知识表示与知识图谱

知识:在长期的生活及社会实践中、在科学研究及实验中积累起来的对客观世界的认识与经验

知识的特性:相对正确性、不确定性、可表示性与可利用性

知识表示:将人类知识形式化或者模型化

逻辑的分类

​ 经典逻辑:经典命题逻辑、一阶谓词逻辑

​ 非经典逻辑:三值逻辑、多值逻辑、模糊逻辑

一阶谓词逻辑

  • 命题:非真即假的陈述句

    命题逻辑:研究命题及命题之间关系的符号逻辑系统

​ 缺陷:无法把它所描述的事物的结构及逻辑特征反映出来,也不能把不同事物间的共同特征表述出来。

  • 谓词:P(x1,x2,…,xn

​ 个体:x1,x2,…,xn

​ 谓词名:P

​ 例:“老张是一个教师”:一元谓词 Teacher (Zhang)

  • 谓词公式
    • ¬:否定
    • :析取
    • :合取
    • :蕴含 RUNS (Liuhua,faster)→WINS (Liuhua,champion)
    • :等价
    • :全称量词 (∀x)[ROBOT (x) COLOR (xGRAY)]
    • :存在量词

连接词的优先级别从高到低排列:﹁, ∧,∨, →,↔

  • 量词的辖域:位于量词后面的单个谓词或者用括弧括起来的谓词公式

    • 约束变元
    • 自由变元
  • 谓词公式的性质

    • 永真性/永假性

    • 可满足性/不可满足性

    • 等价性

    • 永真蕴含

一阶谓词逻辑表示法的特点

​ 优点:自然性、精确性、严密性、容易实现

​ 局限性:不能表示不确定的知识、组合爆炸、效率低

产生式表示法

产生式

​ 确定性规则知识的产生式表示:P→Q

​ 确定性事实性知识的产生式表示:(对象,属性,值)

​ 不确定性规则知识的产生式表示:P→Q (置信度)

​ 不确定性事实性知识的产生式表示:(对象,属性,值,置信度)

产生式与谓词逻辑中的蕴含式的区别:
(1)除逻辑蕴含外,产生式还包括各种操作、规则、变换、算子、函数等。
(2)蕴含式只能表示精确知识,而产生式不仅可以表示精确的知识,还可以表示不精确知识。

结构图

请添加图片描述

​ 规则库:用于描述相应领域内知识的产生式集合

​ 综合数据库:一个用于存放问题求解过程中各种当前信息的数据结构

​ 控制系统:由一组程序组成,负责整个产生式系统的运行,实现对问题的求解

匹配成功的规则可能不止一条,进行冲突消解

产生式表示法的特点

​ 优点:自然性、模块性、有效性、清晰性

​ 缺点:效率不高、不能表达结构性知识

框架表示法

结构

​ 框架:一种描述所论对象属性的数据结构

​ 槽:描述所论对象某一方面的属性

​ 侧面:描述相应属性的一个方面

框架名:〈教师〉姓名:单位(姓、名)年龄:单位(岁)性别:范围(男、女)缺省:男职称:范围(教授,副教授,讲师,助教)缺省:讲师部门:单位(系,教研室)住址:〈住址框架〉工资:〈工资框架〉开始工作时间:单位(年、月)截止时间:单位(年、月)缺省:现在 
--------------------------------------------------------------------
当把具体的信息填入槽或侧面后,就得到了相应框架的一个事例框架。框架名:〈教师-1〉姓名:夏冰年龄:36性别:女职称:副教授部门:计算机系软件教研室住址:〈adr-1〉工资:〈sal-1〉开始工作时间:1988,9截止时间:1996,7

框架表示法的特点:结构性、继承性、自然性

知识图谱

定义:用各种不同的图形等可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。

知识图谱也可被看作是一张图,图中的节点表示实体或概念,而图中的边则由属性或关系构成。

资源对象

​ 结构化数据:知识定义表示都比较完备的数据

​ 半结构化数据:部分数据是结构化的,但存在大量结构化程度较低的数据。

​ 非结构化数据:指没有定义和规范约束的“自由”数据

知识图谱的构建

​ 自顶向下、自底向上

第三章 确定性推理方法

符号集:¬、∨、∧、→、↔、∀、∃、⇒、⇔

推理:从已知事实出发,并运用已掌握的知识,找出其中蕴涵的事实,或归纳出新的事实

演绎推理:从全称判断推导出单称判断的过程,即由一般性知识推出适合于某一具体情况的结论

归纳推理:从足够多的事例中归纳出一般性结论的推理过程,是一种从个别到一般的推理

  • 完全归纳推理:在进行归纳时考察了相应事物的全部对象,并根据这些对象是否都具有某种属性来推出这个事物是否具有这个属性
  • 不完全归纳推理:在进行归纳时考察了相应事物的部分对象

默认推理:又称缺省推理,是在知识不完全的情况下假设某些条件已经具备所进行的推理

确定性推理:推理时所用的知识证据都是确定的,推出的结论也是确定的 其真值或者为真或者为假

不确定性推理:推理时所用的知识证据不都是确定的,推出的结论也是不确定的 (与第四章略微不同,建议回答后者)

单调推理:随着推理向前推进及新知识的加入,推出的结论越来越接近最终目标。

非单调推理:由于新知识的加入,不仅没有加强已推出的结论,反而要否定它,使推理退回到前面的某一步,重新开始

启发式推理、非启发式推理

启发性知识:与问题有关且能加快推理过程、提高搜索效率的知识。

正向推理:以已知事实作为出发点的一种推理 事实驱动推理

逆向推理:以某个假设目标作为出发点的一种推理 目标驱动推理

混合推理:正反向混合推理:

​ (1)先正向后逆向:先进行正向推理,帮助选择某个目标,即从已知事实演绎出部分结果,然后再用逆向推理证实该目标或提高其可信度;
​ (2)先逆向后正向:先假设一个目标进行逆向推理,然后再利用逆向推理中得到的信息进行正向推理,以推出更多的结论

双向推理:正向推理与逆向推理同时进行,且在推理过程中的某一步骤上“碰头”的一种推理。

冲突消解策略:按针对性排序、按已知事实的新鲜性排序、按匹配度排序、按条件个数排序

自然演绎推理

定义:从一组已知为真的事实出发,运用经典逻辑的推理规则推出结论的过程

推理规则:P规则、T规则、假言推理、拒取式推理

​ P规则:即前提引入

​ T规则:即推理规则

​ 假言推理:P,P→Q ⇒ Q

​ 拒取式推理:P→Q,﹁Q ⇒ ﹁P

例:
------------------------------------------------------------------
已知事实:(1)凡是容易的课程小王( Wang )都喜欢;(2)C 班的课程都是容易的;(3)ds 是 C 班的一门课程。
求证:小王喜欢 ds 这门课程。
------------------------------------------------------------------ 
证明:
定义谓词:EASY ( x ):x 是容易的LIKE ( x,  y ):x 喜欢 yC ( x ):x 是 C 班的一门课程
已知事实和结论用谓词公式表示:(∀x) ( EASY ( x ) → LIKE ( Wang,  x ) ) (∀x) ( C ( x ) → EASY ( x )) C ( ds ) 推理:C ( ds )→ EASY ( ds )→ LIKE ( Wang,  ds )

谓词公式化为子句集的方法

Q为P1,P2,…,Pn的逻辑结论,当且仅当(P1∧P2∧…∧Pn)∧¬Q是不可满足的。

即¬P1∨¬P2∨…∨¬Pn∨Q是可满足的

原子谓词公式:一个不能再分解的命题

文字:原子谓词公式及其否定

子句:任何文字的析取式(∨)

空子句:永假的,不可满足的

子句集:由子句构成的集合

谓词公式化为子句集的方法

​ (1)消去谓词公式中的“→”和“↔”符号

​ P→Q⇔﹁P∨Q

​ P↔Q⇔(P∧Q)∨(﹁P∧﹁Q)

​ (2)把否定符号﹁移到紧靠谓词的位置

​ 双重否定律、德·摩根定律、量词转换律

​ (3)变量标准化 (去重名)

​ (4)消去存在量词

​ 存在量词不出现在全称量词的辖域内——换个变量

​ 存在量词出现在一个或者多个全称量词的辖域内——Skolem化:用Skolem函数代替每个存在量词量化的变量的过程

​ Skolem化:用Skolem函数代替每个存在量词量化的变量的过程

​ (5)化为前束形

​ 前束形=(前缀){母式}

​ 前缀:全称量词串

​ 母式:不含量词的谓词公式

​ (6)化为Skolem标准形

​ (∀x1)(∀x2)…(∀xn)M

​ M:子句的合取式

​ (7)略去全称量词

​ (8)消去合取词

​ (9)子句变量标准化

例子:

请添加图片描述
请添加图片描述

谓词公式不可满足的充要条件是其子句集不可满足

鲁宾逊归结原理

子句集中子句之间是合取关系,只要有一个子句不可满足, 则子句集就不可满足。

基本思想

​ 检查子句集S中是否包含空子句,若包含,则S不可满足

​ 若不包含,在S中选择合适的子句进行归结,一旦归结出空子句,就说明S是不可满足的

归结原理

1.命题逻辑中的归结原理

  • C1C2是子句集中的任意两个子句,如果 C1中的文字L1C2中的文字L2互补,那么从C1C2中分别消去L1L2,并将二个子句中余下的部分析取,构成一个新子句C12
    • 例:¬P∨Q、¬Q∨R ⇒¬P∨R

归结式C12是其亲本子句C1C2的逻辑结论。即如果 C1C2为真,则C2为真。

  • C1C2是子句集S中的两个子句,C12是它们的归结式,若用C12代替C1C2后得到新子句集S1,则由S1不可满足性可推出原子句集S的不可满足性
    • 解释:若C12不可满足,则C1C2一定是不可满足的。否则可以根据C1C2C12
  • C1与C2是子句集S中的两个子句,C12是它们的归结式,若C12 加入原子句集S,得到新子句集S1,则SS1在不可满足的意义上是等价的

2.谓词逻辑中的归结原理

最一般合一请添加图片描述

二元归结式

请添加图片描述

若从子句集存在一个到空子句的演绎,则该子句集是不可满足的

如果没有归结出空子句,则既不能说 S 不可满足,也不能说 S 是可满足的。

归结反演

定义:应用归结原理证明定理的过程称为归结反演

步骤

  • 将已知前提表示为谓词公式F
  • 将待证明的结论表示为谓词公式Q,并否定得到﹁ Q
  • 把谓词公式集{F,﹁Q} 化为子句集S
  • 应用归结原理对子句集S中的子句进行归结,并把每次归结得到的归结式都并入到S中。如此反复进行,若出现了空子句,则停止归结,此时就证明了Q为真

[!TIP]

建议归结时,按照由长到短的子句顺序进行归结

例题:
某公司招聘工作人员,A,B ,C 三人应试,经面试后公司表示如下想法:
(1) 三人中至少录取一人。
(2) 如果录取 A 而不录取 B ,则一定录取C
(3) 如果录取 B ,则一定录取 C 
求证:公司一定录取 C
------------------------------------------------------------------ P(x):录取x
将已知前提表示为谓词公式F:(1) P(A)∨P(B)∨P(C)(2) P(A)∧¬P(B)→P(C)		即¬P(A)∨P(B))∨P(C)(3) P(B)→P(C)			 即¬P(B)∨P(C)将待证明的结论表示为谓词公式Q,并否定得到﹁Q:P(C)——否定:—— ¬P(C)把谓词公式集{F,﹁Q} 化为子句集S:S:{P(A)∨P(B)∨P(C) , ¬P(A)∨P(B))∨P(C) , ¬P(B)∨P(C) , ¬P(C)}归结:P(A)∨P(B)∨P(C) , ¬P(A)∨P(B))∨P(C)  ⇒ P(B)∨P(C)P(B)∨P(C) , ¬P(B)∨P(C)  ⇒ P(C)P(C)  , ¬P(C)  ⇒  NIL

应用归结原理求解问题

步骤:

  • 已知前提 F 用谓词公式表示,并化为子句集 S
  • 把待求解的问题 Q 用谓词公式表示,并否定 Q,再与 ANSWER 构成析取式(﹁ Q ∨ ANSWER )
  • 把(﹁ Q∨ ANSWER) 化为子句集,并入到子句集S中,得到子句集S’
  • 对S’应用归结原理进行归结
  • 若得到归结式 ANSWER ,则答案就在 ANSWER 中
例题:
1:王(Wang)先生是小李(Li)的老师。
2:小李与小张(Zhang)是同班同学。
3:如果x与y是同班同学,则x的老师也是y的老师。
求:小张的老师是谁?
------------------------------------------------------------------ 
Teacher(a,b):a是b的老师
Classmate(a,b):a和b是同班同学1:Teacher(Wang,Li)2:Classmate(Li,Zhang)3:(∀x)(∀y)(∀z)(Classmate(x,y)∧Teacher(z,x)→Teacher(z,y)) 即:¬Classmate(x,y)∨¬Teacher(z,x)∨Teacher(z,y)¬(∃A)Teacher(A,Zhang)∨ANSWER(A)	即:¬Teacher(A,Zhang)∨ANSWER(A)S ={Teacher(Wang,Li) , Classmate(Li,Zhang) , ¬Classmate(x,y)∨¬Teacher(z,x)∨Teacher(z,y), ¬Teacher(A,Zhang)∨ANSWER(A)}1,3 → ¬Classmate(Li,y)∨Teacher(Wang,y)	----54,5 → ¬Classmate(Li,Zhang)∨ANSWER(Wang)----66,2 → ANSWER(Wang)

第四章 不确定性推理方法

不确定性推理:从不确定性的初始证据出发,通过运用不确定性的知识,最终推出具有一定程度的不确定性但却是合理或者近乎合理的结论的思维过程。

阈值:用来指出相似的“限度”

可信度方法

可信度:根据经验对一个事物或现象为真的相信程度。

知识不确定性的表示:if P then Q (CF(Q,P))

CF(Q,P):可信度因子,反映前提条件与结论的联系强度

取值范围:[ -1 , 1 ]

​ CF(H,E)= 0 : 证据的出现与否与 H 无关

例:IF   头痛    AND     流涕       THEN     感冒  (0.7) 

证据不确定性的表示:*CF(E)*=0.6

​ CF(E)= 1 :能肯定它为真

​ CF(E)= 0 :未获得任何相关的观察

​ CF(E)= -1 :能肯定它为假

组合证据不确定性的算法:

  • 多个单一证据的合取

​ E=E1 AND E2 AND ··· AND En 则:CF(E)=min{ CF(E1) , CF(E2) ,…, CF(En) }

  • 多个单一证据的析取

​ E=E1 OR E2 OR ··· OR En 则:CF(E)=max{ CF(E1) , CF(E2) ,…, CF(En) }

不确定性的传递算法:CF(H) = CF(H,E) × max{ 0, CF(E) }

  • 当CF(E) < 0时,则 CF(H)=0

结论不确定性的合成算法

​ 设知识:

​ IF E1 THEN H ( CF(H,E1) )

​ IF E2 THEN H ( CF(H,E2) )

​ (1)分别对每一条知识求出CF(H):

​ CF1(H) = CF(H,E1) × max{ 0, CF(E1) }

​ CF2(H) = CF(H,E2) × max{ 0, CF(E2) }

​ (2)求出E1与E2H的综合影响所形成的可信度


例题:

请添加图片描述

CF(E1)=0.7×max{0,min{0.5,max{0.6,0.7}}}=0.7×0.5=0.35

CF(E3)=0.9×max{0,min{0.6,0.9}}=0.9×0.6=0.54

CF1(H)=0.8×max{0 , 0.35}=0.8×0.35=0.28

CF2(H)=0.6×max{0 ,0.8}=0.6×0.8=0.48

CF3(H)=-0.5×max{0 , 0.54}=-0.5×0.54=-0.27

CF1,2(H)=0.28+0.48-0.28×0.48=0.63

CF1,2,3(H)=(0.63-0.27)/1-min{0.63,0.27}=0.36/0.73=0.49


证据理论(概率)

1.概率分配函数

请添加图片描述

注意

2D : D的所有子集

​ 概率分配函数与概率不同。

个人理解:概率分配函数作用于子集,概率作用于元素

2.信任函数Bel

含义:Bel(A) : 对A为真的总的信任程度

请添加图片描述

注意

Bel(∅)=M(∅)=0

例:
设D={红,黄,蓝}
M({红})=0.3、M({黄})=0、M({红,黄})=0.2
Bel({红、黄})=0.3+0+0.2=0.5

3.似然函数Pl 不可驳斥函数、上限函数

含义:Pl(A) : 对A为非假的信任程度

请添加图片描述

例题(接上):
Pl({蓝})=1-Bel(¬{蓝})=1-Bel({红,黄})=1-0.5=0.5

4.概率分配函数的正交和

请添加图片描述

注意

​ 如果K≠0,则正交和M也是一个概率分配函数

​ 如果K=0,则不存在正交和 M,即没有可能存在概率函数,称M1与M2矛盾。


例题

请添加图片描述


5.基于证据理论的不确定性推理

  • 建立问题的样本空间D
  • 由经验给出,或者由随机性规则和事实的信度度量求得基本概率分配函数
  • 计算所关心的子集的信任函数值、似然函数值
  • 由信任函数值、似然函数值得出结论

模糊推理方法

隶属度:模糊逻辑给集合中每一个元素赋予一个介于0和1之间的实数,描述其属于一个集合的强度

集合中所有元素的隶属度全体构成集合的隶属函数

模糊集合的表示方法

请添加图片描述

  • Zadeh表示法

  • 序偶表示法

  • 向量表示法

隶属函数

模糊集合的运算

  • 模糊集合的包含关系

  • 模糊集合的相等关系

  • 模糊集合的交并补运算

  • 模糊集合的代数运算


例题:

解:

​ A=0.2/x1 + 0.4/x2 + 0.9/x3 + 0.0/x4 + 0.5/x5

​ B=0.1/x1 + 0.0/x2 + 0.7/x3 + 1.0/x4 + 0.3/x5

​ A·B=0.02/x1 + 0/x2 + 0.63/x3 +0/x4 + 0.15/x5

​ A+B=0.28/x1 + 0.4/x2 + 0.97/x3 +1.0/x4 + 0.65/x5

​ A⊕B=0.3/x1 + 0.4/x2 + 1/x3 + 1.0/x4 + 0.8/x5

​ AⓧB=0/x1 + 0/x2 + 0.6/x3 + 0/x4 + 0/x5


模糊关系:两个模糊集合中的元素之间关联程度的多少



模糊关系的合成

对应到矩阵:

  • × :min
  • ‘+’: max

模糊推理

模糊决策:由模糊推理得到的结论或者操作是一个模糊向量,转化为确定值的过程

  • 最大隶属法
  • 加权平均判决法
  • 中位数法

模糊推理的应用

  • 确定模糊关系R
  • 模糊推理
  • 模糊决策

第五章 搜索求解策略

搜索的概念

​ 1.从初始或目的状态出发,并将它作为当前状态

​ 2.扫描操作算子集,将适用当前状态的一些操作算子作用于当前状态而得到新的状态,并建立指向其父结点的指针 。

​ 3.检查所生成的新状态是否满足结束状态,如果满足,则得到问题的一个解,并可沿着有关指针从结束状态反向到达开始状态,给出一解答路径;否则,将新状态作为当前状态,返回第(2)步再进行搜索。

搜索方向

​ 数据驱动:从初始状态出发的正向搜索

​ 目的驱动:从目的状态出发的逆向搜索

​ 双向驱动:从开始状态出发作正向搜索,同时又从目的状态出发作逆向搜索,直到两条路径在中间的某处汇合为止

盲目搜索:在不具有对特定问题的任何有关信息的条件下,按固定的步骤进行的搜索

启发式搜索:考虑特定问题领域可应用的知识,动态地确定调用操作算子的步骤,优先选择较适合的操作算子,尽量减少不必要的搜索,以求尽快地到达结束状态。

启发信息:能够利用与该问题有关的信息来简化搜索过程的信息

状态空间的搜索策略

状态:表示系统状态、事实等叙述型知识的一组变量或数组:

​ Q = [ q1 , q2 , … , qn ]T

操作:表示引起状态变化的过程型知识的一组关系或函数:

​ F = { f1 , f2 , … , fn }

状态空间表示法:利用状态变量和操作符号,表示系统或问题的有关知识的符号体系

​ ( S , O ,S0,G )

​ S:状态集合。

​ O:操作算子的集合

​ S0:包含问题的初始状态

​ G:包含问题的目的状态

求解路径:从S0结点到G结点的路径

状态空间解:一个有限的操作算子序列

盲目的图搜索策略

PS(path states)表:保存当前搜索路径上的状态。如果找到了目的,PS就是解路径上的状态有序集。

NPS(new path states)表:新的路径状态表。它包含了等待搜索的状态,其后裔状态还未被搜索到,即未被生成扩展 。

NSS(no solvable states)表:不可解状态集,列出了找不到解题路径的状态。如果在搜索中扩展出的状态是它的元素,则可立即将之排除,不必沿该状态继续搜索

CS: 当前正在被检测的状态

回溯策略

基本思想:当遇到不可解结点时就回溯到路径中最近的父结点上,查看该结点是否还有其他的子结点未被拓展,若有,则沿着这些子结点继续搜索。如果找到目标,就成功退出搜索,返回解题路径

步骤:

(1)用NPS表使算法能返回(回溯)到其中任一状态。

(2)用NSS表来避免算法重新搜索无解的路径。

(3)在PS 表中记录当前搜索路径的状态,当满足目的时可以将它作为结果返回。

(4)为避免陷入死循环必须对新生成的子状态进行检查,看它是否在该三张表中 。

宽度优先搜索策略

定义:以接近起始节点的程度(深度)为依据,进行逐层扩展的节点搜索方法

特点

  • 每次选择深度最浅的节点首先扩展,搜索是逐层进行的

  • 一种高价搜索,但若有解存在,则必能找到它

open表:已经生成出来但其子状态未被搜索的状态 ——先进先出(队列)

closed表:记录了已被生成拓展过的状态

[!IMPORTANT]

对于一个结点,先移入closed表,再把该结点的子结点拓展到open表

按照PPT的描述:当Open表中出现目标结点时,终止

深度优先搜索策略

定义:首先扩展最新产生的节点, 深度相等的节点按生成次序的盲目搜索

特点:扩展最深的节点的结果使得搜索沿着状态空间某条单一的路径从起始节点向下进行下去;仅当搜索到达一个没有后裔的状态时,才考虑另一条替代的路径

深度界限:节点扩展的最大深度

open表:前进后出(堆栈)

启发式图搜索策略

启发信息:能够利用与该问题有关的信息来简化搜索过程的信息

分类

  • 按运用的方法分类:

    1. 陈述性启发信息:用于更准确、更精炼地描述状态

​ 2. 过程性启发信息:用于构造操作算子

​ 3. 控制性启发信息:表示控制策略的知识

  • 按作用分类:

    1. 用于扩展节点的选择,即用于决定应先扩展哪一个节点,以免盲目扩展。

​ 2. 用于生成节点的选择,即用于决定要生成哪些后继节点,以免盲目生成过多无用的节点。

​ 3. 用于删除节点的选择,即用于决定删除哪些无用节点,以免造成进一步的时空浪费。

启发式图搜索策略:利用启发信息的搜索方法

​ 特点:重排OPEN表,选择最有希望的节点加以扩展。

​ 种类:A、A*算法

运用启发式策略的两种基本情况

​ (1)一个问题由于存在问题陈述和数据获取的模糊性,可能会使它没有一个确定的解。

​ (2)虽然一个问题可能有确定解,但是其状态空间特别大,搜索中生成扩展的状态数会随着搜索的深度呈指数级增长

估价函数:估算节点“希望”程度的量度。

估价函数值 f(n) :从初始节点经过 n节点到达目标节点的路径的最小代价估计值,其一般形式是f(n)=g(n)+h(n)

g(n):从初始节点 S0 到节点 n 的实际代价
h(n):从节点 n 到目标节点 Sg 的最优路径的估计代价,称为启发函数

h(n) 比重大:降低搜索工作量,但可能导致找不到最优解

h(n) 比重小:一般导致工作量加大,极限情况下变为盲目搜索,但可能可以找到最优解

A搜索算法:使用了估价函数f的最佳优先搜索

​ 以 f(n) 的大小来排列OPEN表中待扩展状态的次序,每次选择 f(n) 值最小者进行扩展

A*搜索算法:利用A*搜索算法对该问题进行搜索则一定能搜索到解,并且一定能搜索到最优的解而结束

​ **可采纳性 **:当一个搜索算法在最短路径存在时能保证找到它,就称该算法是可采纳的。

单调性:如果对启发函数h(n)加上单调性的限制,就可以总从祖先状态沿着最佳路径到达任一状态

​ 如果某一启发函数h(n)满足:
​ 1)对所有状态ni和nj,其中nj是ni的后裔,满足h(ni)-h(nj)<=cost(ni, nj),其中cost(ni, nj)是从ni到nj的实际代价。
​ 2)目的状态的启发函数值为0。

​ 则称h(n)是单调的

信息性:在两个A*启发策略的h1和h2中,如果对搜索空间中的任一状态n都有h1(n) ≤ h2(n),就称策略h2比h1具有更多的信息性。

如果某一搜索策略的h(n)越大,则A*算法搜索的信息性越多,所搜索的状态越少。

A搜索算法解题步骤:1.确定启发函数2.确定操作算子集的顺序3.对于每个结点,拓展子节点并计算估价函数4.在所有结点中选择估价函数值最低的结点

第六章 智能计算及其应用

本章首先简要介绍进化算法的概念,详细介绍基本遗传算法,这是进化算法的基本框架。然后介绍双倍体、双种群、自适应等比较典型的改进遗传算法及其应用。介绍了群智能算法产生的背景和粒子群优化算法。介绍了蚁群算法及其应用

智能计算:受自然界生物界规律的启迪,人们根据其原理模仿设计的算法

进化算法:基于自然选择自然遗传等生物进化机制的一种搜索算法

​ 主要操作:选择、重组、变异

​ 包括:遗传算法、遗传规划、进化策略、进化规划

适者生存:最适合自然环境的群体往往产生了更大的后代群体

设计原则:适用性原则、可靠性原则、收敛性原则、稳定性原则、生物类比原则

基本遗传算法

遗传算法(GA):一类借鉴生物界自然选择自然遗传机制的随机搜索算法,非常适用于处理传统搜索方法难以解决的复杂和非线性优化问题。

基本思想:在求解问题时从多个解开始,然后通过一定的法则进行逐步迭代以产生新的解

生物遗传概念遗产算法中的应用
适者生存目标值比较大的解被选择的可能性大
个体
染色体解的编码(字符串、向量等)
基因解的编码中每一分量
适应性适应度函数值
群体根据适应度值选定的一组解(解的个数为群体的规模)
婚配交叉选择两个染色体进行交叉产生一组新的染色体的过程
变异编码的某一分量发生变化的过程

位串编码:一种染色体编码方法

实数编码:采用实数表达法不必进行数制转换,可直接在解的表现型上进行遗传操作

多参数映射编码:把每个参数先进行二进制编码得到子串,再把这些子串连成一个完整的染色体

群体设定

  • 初始种群的产生

    • 随机产生群体规模数目的个体
    • 随机产生一定数目的个体,从中挑选最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数目达到了预先确定的规模
    • 根据问题固有知识,把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体
  • 种群规模的确定

    • 群体规模太小,易陷入局部最优解

    • 群体规模太大,计算复杂

      若群体规模为M,则遗传操作可从这M 个个体中生成和检测M的3次方个模式,并在此基础上能够不断形成和优化积木块,直到找到最优解。

  • 适应度函数

    • 将目标函数映射成适应度函数的方法 :将目标函数转换为求最大值的形式,且保证函数值非负!

    • 适应度函数的尺度变换

      • 过早收敛:缩小这些个体的适应度,以降低这些超级个体的竞争力

      • 停滞现象:改变原始适应值的比例关系,以提高个体之间的竞争力

      • 尺度变换定标:对适应度函数值域的某种映射变换

        线性变换:f’=af+b f’avg=favg , f’max=Cmult · favg

​ 幂函数变换法:f’ = fK

​ 指数变换法: f’ = e-af

欺骗问题:在遗传算法中,将所有妨碍适应度值高的个体产生,从而影响遗传算法正常工作的问题

选择

从当前群体中按照一定概率选出优良的个体,使它们有机会作为父代繁殖下一代子孙

  • 个体选择概率分配方法(为每个个体分配概率)

    • 适应度比例方法:各个个体被选择的概率和其适应度值成比例

    • 排序方法

      • 线性排序

      • 非线性排序

  • 选择个体方法

    • 转盘赌选择:
      • 按个体的选择概率产生一个轮盘,轮盘每个区的角度与个体的选择概率成比例
      • 产生一个随机数,它落入转盘的哪个区域就选择相应的个体交叉
    • 锦标赛选择方法: 群体多样化,避免超级个体的影响,避免了过早收敛和停滞现象
      • 从群体中随机选择个体,将其中适应度最高的个体保存到下一代
      • 这一过程反复执行,直到保存到下一代的个体数达到预先设定的数量为止
    • 最佳个体保存方法: 收敛过快,易陷入局部最优解
      • 把群体中适应度最高的个体不进行交叉而直接复制到下一代中,保证遗传算法终止时得到的最后结果一定是历代出现过的最高适应度的个体

交叉

当两个生物体配对或者复制时,它们的染色体相互混合,产生一个由双方基因组成的全新的染色体组

  • 基本的交叉算子

    • 一点交叉:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新的个体
    • 二点交叉:随机设置两个交叉点,将两个交叉点之间的码串相互交换
  • 修正的交叉方法

变异

  • 位点变异:群体中的个体码串,随机挑选一个或多个基因座,并对这些基因座的基因值以变异概率作变动
  • 逆转变异:在个体码串中随机选择两点(逆转点),然后将两点之间的基因值以逆向排序插入到原位置中。
  • 插入变异:在个体码串中随机选择一个码,然后将此码插入随机选择的插入点中间。
  • 互换变异:随机选取染色体的两个基因进行简单互换
  • 移动变异:随机选取一个基因,向左或者向右移动一个随机位数

遗传算法的一般步骤

遗传算法的改进算法

双倍体遗传算法

基本思想

​ 双倍体遗传算法采用显性隐性两个染色体同时进行进化,提供了一种记忆以前有用的基因块的功能

​ 双倍体遗传算法采用显性遗传

​ 双倍体遗传延长了有用基因块的寿命,提高了算法的收敛能力,在变异概率低的情况下能保持一定水平的多样性

算法设计

​ 编码/解码:两个染色体(显性、隐性)

​ 复制算子:计算显性染色体的适应度,按照显性染色体的复制概率将个体复制到下一代群体中。

​ 交叉算子:两个个体的显性染色体交叉、隐性染色体也同时交叉。

​ 变异算子:个体的显性染色体按正常的变异概率变异;隐性染色体按较大的变异概率变异。

​ 双倍体遗传算法显隐性重排算子:个体中适应值较大的染色体设为显性染色体,适应值较小的染色体设为隐性染色体。

双种群遗传算法

基本思想:在遗传算法中使用多种群同时进化,并交换种群之间优秀个体所携带的遗传信息,以打破种群内的平衡态达到更高的平衡态,有利于算法跳出局部最优。

算法:建立两个遗传算法群体,分别独立地运行复制、交叉、变异操作,同时当每一代运行结束以后,选择两个种群中的随机个体及最优个体分别交换

自适应遗传算法

基本思想

​ 当种群各个体适应度趋于一致或者趋于局部最优时,使Pc和Pm增加,以跳出局部最优

​ 当群体各个体适应度比较分散时,使Pc和Pm减少,以利于优良个体的生存

​ 同时,对于适应度高于群体平均适应值的个体,选择较低的Pc和Pm,使得该解得以保护进入下一代;

​ 对低于平均适应值的个体,选择较高的Pc和Pm值,使该解被淘汰

Pc:自适应交叉概率 Pm自适应变异概率

算法

​ 编码/解码设计。

​ 初始种群产生:NN 是偶数)个候选解,组成初始解集。

​ 定义适应度函数:f = 1 / ob,计算适应度 f1

​ (4)按轮盘赌规则选择N 个个体,计算 favg和fmax

​ 将群体中的各个个体随机搭配成对,共组成N/2对, 对每一对个体,按照自适应公式计算自适应交叉概率Pc ,随机产生R(0,1),如果<Pc则对该对染色体进行交叉操作。

​ 对于群体中的所有个体,共N个,按照自适应变异公式计算自适应变异概率Pm,随机产生 R(0,1),如果R<Pm则对该染色体进行交叉操作。

​ 计算由交叉和变异生成新个体的适应度,新个体与父代一起构成新群体。

​ 判断是否达到预定的迭代次数,是则结束;否则转 (4)。

适应的交叉概率与变异概率:

群智能算法:受动物群体智能启发的算法

群体智能:由简单个体组成的群落与环境以及个体之间的互动行为。

群智能算法—粒子群优化算法

基本思想

​ 将每个个体看作n维搜索空间中一个没有体积质量的粒子

​ 在搜索空间中以一定的速度飞行,该速度决定粒子飞行的方向和距离

​ 所有粒子有一个由优化函数决定的适应值

基本原理

PSO初始化为一群随机粒子,然后通过迭代找到最优解

​ 在每一次迭代中,粒子通过跟踪两个“极值”来更新自己

​ 第一个就是粒子本身所找到的最优解,这个解称为个体极值

​ 另一个是整个种群目前找到的最优解,这个解称为全局极值

PSO模型

​ 若φ1 >0,φ2>0 ,则称为PSO全模型

​ 若φ1 >0,φ2=0,则称为PSO认知模型

​ 若φ1 =0,φ2 >0,则称为PSO社会模型

​ 若φ1 =0,φ2 >0,且g≠i,则称为PSO无私模型

群智能算法—蚁群算法

基本思想

信息素跟踪:按照一定的概率沿着信息素较强的路径觅食。

信息素遗留:会在走过的路上会释放信息素,使得在一定的范围内的其他蚂蚁能够觉察到并由此影响它们的行为。

​ 通过个体之间的信息交流相互协作最终找到从蚁穴到食物源的最短路径。

规则

​ 环境:有障碍物、有其他蚂蚁、有信息素。

​ 觅食规则:范围内寻找是否有食物,否则看是否有信息素,每只蚂蚁都会以小概率犯错。

​ 移动规则:都朝信息素最多的方向移动,无信息素则继续朝原方向移动,且有随机的小的扰动,有记忆性。

​ 避障规则:移动的方向如有障碍物挡住,蚂蚁会随机选择另一个方向。

​ 信息素规则:越靠近食物播撒的信息素越多,越离开食物播撒的信息素越少。

第七章 专家系统与机器学习

专家系统:一类包含知识和推理的智能计算机程序

一般结构

知识库:主要用来存放领域专家提供的有关问题求解的专门知识

推理机:模拟领域专家思维过程控制并执行对问题的求解

知识获取的过程:知识的输入、知识的检测、抽取知识、知识的转换

知识获取的过程模式:非自动知识获取、自动知识获取、半自动知识获取

专家系统的开发步骤

机器学习

基本概念:机器学习使计算机能模拟人的学习行为,自动地通过学习来获取知识和技能,不断改善性能,实现自我完善

学习系统的基本部分组成:环境、学习、知识库、执行与评价

机械式学习(又称记忆学习,或死记式学习):通过直接记忆或者存储外部环境所提供的信息达到学习的目的,并在以后通过对知识库的检索得到相应的知识直接用来求解问题

指导式学习(又称嘱咐式学习,或教授式学习):由外部环境向系统提供一般性的指示或建议,系统把它们具体地转化为细节知识并送入知识库中。在学习过程中要反复对形成的知识进行评价,使其不断完善

示例学习(实例学习,或从例子中学习) :通过从环境中取得若干与某概念有关的例子,经归纳得出一般性概念的一种学习方法

知识发现与数据挖掘

知识发现:从数据库中发现知识

数据挖掘:是从数据库中挖掘知识

知识发现的一般过程

  • 数据准备:数据选取、数据预处理、数据变换

  • 数据挖掘:确定挖掘的任务或目的、挖掘算法

  • 结果的解释评估

第八章 人工神经网络及其应用

人工神经网络:一个用大量简单处理单元经广泛连接而组成的人工网络,用来模拟大脑神经系统的结构和功能

神经元数学模型:输入与阈值、线性环节、非线性输出

决定人工神经网络性能的三大要素:神经元的特性、拓扑结构、学习规则

神经网络的结构

  • 前馈型:各神经元接受前一层的输入,并输出给下一层,没有反馈

  • 反馈型:存在一些神经元的输出经过若干个神经元后,再反馈到这些神经元的输入端

神经网络的工作方式

​ 同步(并行)方式:任一时刻神经网络中所有神经元同时调整状态

​ 异步(串行)方式:任一时刻只有一个神经元调整状态,而其它神经元的状态保持不变

神经网络的学习:调整神经网络的连接权值或者结构,使输入输出具有需要的特性

Hebb学习规则:当某一突触两端的神经元同时处于兴奋状态,那么该连接的权值应该增强

BP神经网络

概念:多层前向网络

​ 设BP神经网络具有m层,第一层称为输入层,最后一层称为输出层,中间各层称为隐层

结构

工作过程

​ 1.第一阶段(网络训练阶段):N 组输入输出样本,对网络的连接权值进行学习和调整,以使该网络实现给定样本的输入输出映射关系

​ 2.第二阶段(工作阶段):把实验数据或实际数据输入到网络,网络在误差范围内预测计算出结果

学习算法

目标:通过多个样本的学习,修改网络的连接权值,不断减小期望输出与实际输出之差的平方和,最后达到满意的结果

基本思想

隐层数及隐层神经元数的确定:目前尚无理论指导。
初始权值的设置:一般以一个均值为0的随机分布设置网络的初始权值。
训练数据预处理:线性的特征比例变换,将所有的特征变换到[0,1]或者[-1,1]区间内,使得在每个训练集上,每个特征的均值为0,并且具有相同的方差。
后处理过程:当应用神经网络进行分类操作时,通常将输出值编码成所谓的名义变量,具体的值对应类别标号。

程序框图

BP定理:给定任意ε>0,对于任意的连续函数,存在一个三层前向神经网络,它可以在任意ε平方误差精度内逼近连续函数

特点

​ 学习算法:正向传播、反向传播。

​ 层与层的连接是单向的,信息的传播是双向的

优点:很好的逼近特性、具有较强的泛化能力、具有较好的容错性。

缺点:收敛速度慢、局部极值、难以确定隐层和隐层结点的数目。

Hopfield神经网络

概念:全互联反馈神经网络,它的每一个神经元都和其他神经元相连接

分类:离散型Hopfield神经网络、连续型Hopfield神经网络、随机神经网络

稳定性:若从某一时刻开始,神经网络中的所有神经元的状态不再改变,则称该网络是稳定的

Hopfield神经网络可能有许多稳定优态

随机神经网络:神经元状态为1是随机的,服从一定的概率分布

卷积神经网络和深度学习

概念

​ CNN是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。

​ C层为特征提取层(卷积层)

​ S层是特征映射层(下采样层)

​ CNN中的每一个C层都紧跟着一个S层

卷积:用于特征提取,通过卷积核在输入数据上滑动计算加权和

池化: 用于特征降维,对不同位置的特征进行聚合统计

卷积神经网络中的关键技术:局部链接、权值共享、多卷积核、池化

深度学习基于深层神经网络模型和方法的机器学习

深度学习模型分为判别式模型和生成式模型

胶囊网络

胶囊:一个包含多个神经元的载体,每个神经元表示了图像中出现的特定实体各种属性

核心思想:胶囊里封装的检测特征相关信息是以向量的形式存在的,胶囊的输入是一个向量,是用一组神经元来表示多个特征

生成对抗网络

概念:使用对抗训练机制对两个神经网络进行训练

判别模型:将一个高维的感官输入映射为一个类别标签 ——判别器D
生成网络:把随机点变成与数据集相似的图片 ——生成器G

GAN的两个相互交替的训练阶段

  • 固定生成网络,训练判别网络

  • 固定判别网络,训练生成网络

两个网络相互对抗的过程,就是各自网络参数不断调整的过程,即学习过程

问题:训练过程具有强烈的不稳定性,实验结果随机

  • 训练过程难以收敛,经常出现震荡

  • 训练收敛,但是出现模式崩溃(model collapse)

  • 训练收敛,但是GAN还会生成一些没有意义或者现实中不可能出现的图片

相关文章:

山东大学人工智能导论期末复习概念汇总

人工智能概念汇总V2 —Nevertheless 简介 [!NOTE] 本文是在原版的基础上&#xff0c;面向期末而进行的删减版本 建议使用pdf版本&#xff0c;排版和图片显示完全。如有需要&#xff0c;可私信发送邮箱地址 PDF版本&#xff1a; 山东大学人工智能导论概念汇总pdf版 山东大学软…...

Ubuntu下安装Android Sdk

下载android sdk命令行工具 https://developer.android.com/studio?hlzh-cn#command-tools mkdir android-sdk cd android-sdk unzip commandlinetools-linux-11076708_latest.zip 添加环境变量到~/.bashrc export ANDROID_HOME$HOME/android-sdk export PATH$PATH:$ANDRO…...

c语言中GHashTable的使用

前言:最近在c代码中需要用到键值对的存储&#xff0c;由于没有map&#xff0c;需要自己实现或者使用库函数&#xff0c;g_hash_table_new是GLib中的库函数&#xff0c;但使用起来会有很多坑&#xff0c;记录一下 构建hash表g_hash_table_new GHashTable* g_hash_table_new(GH…...

Conda清理缓存

参考&#xff1a;1、2...

【每日学点鸿蒙知识】导入cardEmulation、自定义装饰器、CallState状态码顺序、kv配置、签名文件配置

1、HarmonyOS 无法导入cardEmulation&#xff1f; 在工程entry mudule里的index.ets文件里导入cardEmulation失败 可以按照下面方式添加SystemCapability&#xff1b;在src/main/syscap.json(此文件需要手动创建&#xff09;中添加如下内容 {"devices": {"gen…...

【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写

文章目录 一、随机数1、Random.Next()生成随机整数示例&#xff1a;生成一个随机整数生成指定范围内的随机整数 2、Random.NextSingle生成随机浮点数示例&#xff1a;生成随机浮点数 3、 生成随机字母或字符示例&#xff1a;生成随机字母示例&#xff1a;生成随机小写字母 二、…...

深入解析 Conda 安装的默认依赖包及其作用:conda create安装了哪些包(中英双语)

深入解析 Conda 安装的默认依赖包及其作用 当我们使用 Conda 创建新环境时&#xff0c;例如执行命令&#xff1a; conda create -n olmes python3.10Conda 会自动为我们安装一系列基础依赖包&#xff0c;保证 Python 环境能够正常运行。这些包不仅是我们开发的基础工具&#…...

《Vue3实战教程》35:Vue3测试

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 测试​ 为什么需要测试​ 自动化测试能够预防无意引入的 bug&#xff0c;并鼓励开发者将应用分解为可测试、可维护的函数、模块、类和组件。这能够帮助你和你的团队更快速、自信地构建复杂的 Vue 应用。与任何应用一…...

Mysql监视器搭建

Mysql监视器搭建 资源下载在&#xff1a;Mysql监视器资源包 查询问题&#xff1a;CPU、连接数、慢查询 --> 暴增 1、exporter进行Mysql信息采集 修改my.cnf [client] userroot password数据库密码 host:数据库URL port3306启动命令 mysqld_exporter.exe --config.my-c…...

Linux(centos)安装 MySQL 8 数据库(图文详细教程)

前言 前几天写了个window系统下安装Mysql的博客&#xff0c;收到很多小伙伴私信需要Linux下安装Mysql的教程&#xff0c;今天这边和大家分享一下&#xff0c;话不多说&#xff0c;看教程。 一、删除以前安装的MySQL服务 一般安装程序第一步都需要清除之前的安装痕迹&#xff…...

软件工程大作业——图书管理系统/图书个性化推荐与实现系统

目录 1 绪论 1.1研究背景 1.2研究现状 1.3研究内容 2 系统关键技术 2.1 Spring Boot框架 2.2 JAVA技术 2.3 MYSQL数据库 2.4 B/S结构 3 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2经济可行性 3.1.3操作可行性 3.2 系统性能分析 3.3 系统功能分析 3.4系统流程分析 3.4.1登…...

Linux下编译安装PETSc

本文记录在Linux下编译安装PETSc的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、安装依赖 1.1 安装oneAPI 参见&#xff1a;Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 1.2 安…...

检索增强生成

概述 检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&#xff09;是一种将信息检索与语言模型相结合的技术。由Facebook AI Research于2020年提出&#xff0c;它把数据库的优势与语言模型的优势相结合。它能让模型从外部知识库中检索信息&#xff0c…...

九、Vue 事件处理器

文章目录 前言一、基础事件绑定:v-on 指令二、方法调用:组织有序的交互逻辑三、事件修饰符阻止冒泡与默认事件捕获与自身触发单次触发与鼠标按键区分四、按键修饰符前言 在 Vue.js 的交互世界里,事件处理器起着举足轻重的作用,它让页面从静态展示迈向动态交互,精准捕捉用户…...

stm32内部flash在线读写操作

stm32内部flash在线读写操作 &#x1f4cd;相关开源库文章介绍《STM32 利用FlashDB库实现在线扇区数据管理不丢失》 ✨不同系列&#xff0c;内部flash编程有所区别。例如stm32f1是按照页擦除&#xff0c;半字&#xff08;16bit&#xff09;或全字(32bit)数据写入&#xff1b;st…...

DuckDB:密钥管理器及其应用

密钥管理器(Secrets Manager)为所有使用密钥的后端提供了统一的用户界面。密钥信息可以被限定范围&#xff0c;因此不同的存储前缀可以有不同的密钥信息&#xff0c;例如允许在单个查询中连接跨组织的数据。密钥也可以持久化&#xff0c;这样就不需要在每次启动DuckDB时都指定它…...

每日一学——自动化工具(Ansible)

3.1 Ansible 3.1.1 Playbook编写指南 嘿&#xff0c;小伙伴们&#xff01;你们知道吗&#xff0c;运维工作其实也可以变得像搭积木一样简单&#xff01;今天我们要介绍的就是Ansible&#xff0c;一款非常流行的自动化运维工具。通过Ansible&#xff0c;我们可以用Playbook来描…...

typescripts语法笔记

游戏引擎&#xff1a;图形渲染系统&#xff0c;特效系统&#xff0c;物理系统&#xff0c;各个功能集合。 cocoscreator是将cocos2d-x封装成了可视化编辑。面向对象转变成面向组件开发。 ts编程是js编程语言的超集。 基础类型""可以转换成字符串类型&#xff0c;适用…...

TypyScript从入门到精通

TypyScript从入门到精通 TypyScript 是什么&#xff1f;增加了什么环境搭建二、为何需要 TypeScript三、编译 TypeScript四、类型声明五、类型推断基本类型六、类型总览JavaScript 中的数据类型TypeScript 中的数据类型1. 上述所有 JavaScript 类型2. 六个新类型&#xff1a;3.…...

vscode代码AI插件Continue 安装与使用

“Continue” 是一款强大的插件&#xff0c;它主要用于在开发过程中提供智能的代码延续功能。例如&#xff0c;当你在编写代码并且需要进行下一步操作或者完成一个代码块时&#xff0c;它能够根据代码的上下文、语法规则以及相关的库和框架知识&#xff0c;为你提供可能的代码续…...

STM32-笔记20-测量按键按下时间

1、按键按下的时间-思路 我们先检测下降沿信号&#xff0c;检测到以后&#xff0c;在回调函数里切换成检测上升沿信号&#xff0c;当两个信号都检测到的时候&#xff0c;这段时间就是按键按下的时间&#xff0c;如图所示&#xff1a;>N*(ARR1)CCRx的值 N是在这段时间内&…...

继承与多态 - 继承机制、虚函数、纯虚函数

引言 C 是一种支持面向对象编程&#xff08;OOP&#xff09;的编程语言&#xff0c;继承和多态是 OOP 的两个核心概念。通过继承&#xff0c;我们可以创建新的类&#xff0c;这些新类可以重用现有类的代码&#xff0c;并且可以根据需要进行扩展或修改。多态则允许我们编写更加…...

微信小程序:正确输出<小于,大于>符号

错误写法 1、如果直接输入<符号会直接报错&#xff0c;>能正常使用&#xff0c;如图标红的是错误写法 2、输入html的<&gt的写法&#xff0c;会原样输入符号 解决方法 采用变量的方式输出 1、js写入变量 2、wxml直接写...

uni-app tab 双击事件监听

1、data中定义属性&#xff0c;用于临时记录点击次数 tabClick: {touchNum: 0 },2、添加页面事件监听方法 onTabItemTap(e) {this.tabClick.touchNumsetTimeout(()>{if(this.tabClick.touchNum > 2){// 双击执行代码区}this.tabClick.touchNum 0}, 250) },个人博客&am…...

GIT 企业级开发学习 1_基本操作

本节主要命令&#xff1a; git init ls 不能列出 .git ls -a 列出 .git 创建本地仓库 1. 初始化 Git 仓库 git init • 初始化一个新的 Git 仓库&#xff0c;在当前目录下生成一个 .git 隐藏文件夹&#xff0c;用于存储版本控制信息。 2. 查看隐藏文件 ls -a • 使用 ls …...

Computed在Vue2、Vue3写法的不同

在 Vue 2 和 Vue 3 中&#xff0c;computed 的写法有一些区别&#xff0c;特别是在 Vue 3 中新增了组合式 API 和 setup 语法糖。以下是不同写法的详细比较&#xff1a; 1. Vue 2 选项式 API 写法 在 Vue 2 中&#xff0c;computed 是一个选项&#xff0c;直接在 computed 对…...

Hive集群安装部署

上传安装包并解压 cd /ddhome/tools tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /ddhome/bin/ cd /ddhome/bin/ mv apache-hive-3.1.2-bin hive注意&#xff1a;如果Hive要使用Spark计算引擎&#xff0c;需要重新编译Hive&#xff0c; 这里已经编译完毕 修改配置文件 cd …...

卸载干净 IDEA(图文讲解)

目录 1、卸载 IDEA 程序 2、注册表清理 3、残留清理 1、卸载 IDEA 程序 点击屏幕左下角 Windows 图标 -> 设置-控制面板->intellij idea 勾选第一栏 Delete IntelliJ IDEA 2022.2 caches and local history&#xff0c;表示同时删除 IDEA 本地缓存以及历史。 Delete I…...

Gitea代码仓服务搭建

特点与优势 轻量级:Gitea是一个轻量级的Git服务,提供了快速、稳定的代码托管和协作开发环境。它资源占用低,适合在资源受限的环境中运行。易于安装和部署:Gitea提供了简单易用的安装和部署方式,支持多种安装方式,包括二进制文件、Docker容器等,并提供了详细的文档和配置…...

什么情况会导致JVM退出?

大家好&#xff0c;我是锋哥。今天分享关于【什么情况会导致JVM退出&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么情况会导致JVM退出&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 JVM&#xff08;Java Virtual Machine&#xff0c;Java虚…...

docker 安装influxdb

docker pull influxdb mkdir -p /root/influxdb/data docker run -d --name influxdb -p 8086:8086 -v /root/influxdb/data:/var/lib/influxdb influxdb:latest#浏览器登录&#xff1a;http://192.168.31.135:8086&#xff0c;首次登录设置用户名密码&#xff1a;admin/admin1…...

TLS: WebRTC中ThreadManager的线程局部存储

1. 什么是线程局部存储&#xff1a; 线程局部存储&#xff08;TLS&#xff0c;Thread-Local Storage&#xff09;&#xff1a; 线程局部存储&#xff08;TLS&#xff09;允许每个线程保存一份独立的数据副本&#xff0c;避免多个线程共享数据导致的竞争问题。 每个线程可以根…...

[Qt] 万字详解 | 常用控件 | Button | Label | LCD | ProgressBar

目录 按钮类控件 1、Push Button 按钮 2、Radio Buttion 单选 click、press、release、toggled 的区别 3、Check Box 复选 4、Tool Button 显示类控件 1、Label 2、LCD Number 3、ProgressBar 4、Calendar Widget 按钮类控件 1、Push Button 按钮 概述&#xff1a…...

【数据仓库】hadoop3.3.6 安装配置

文章目录 概述下载解压安装伪分布式模式配置hdfs配置hadoop-env.shssh免密登录模式设置初始化HDFS启动hdfs配置yarn启动yarn 概述 该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本&#xff0c;所以有些配置&#xff0c;是可以不用做的&#xff0c;下面仅记录新增操作&#…...

ffmpeg八大开发库

‌FFmpeg八大库‌是指FFmpeg项目中最重要的八个库&#xff0c;它们各自承担不同的功能&#xff0c;共同构成了FFmpeg的强大功能。以下是这八大库的详细介绍&#xff1a; ‌libavcodec‌&#xff1a;负责音频和视频的编解码。它支持多种编解码器&#xff0c;如H.264、AAC、MP3、…...

Uniapp中使用`wxml-to-canvas`开发DOM生成图片功能

Uniapp中使用wxml-to-canvas开发DOM生成图片功能 在移动端开发中&#xff0c;生成图片是一个常见需求&#xff0c;例如用于分享海报、生成动态二维码等。在Uniapp框架中&#xff0c;我们可以通过wxml-to-canvas插件轻松实现将DOM转化为图片的功能。本文将详细介绍如何在Uniapp…...

【09】深入解析 Three.js 官网示例:下雪粒子特效与场景渲染的实现(webgpu_compute_particles_snow.html)

引言 Three.js 是一个强大的 JavaScript 库&#xff0c;用于在网页上创建和渲染 3D 场景。本文将深入分析一段 Three.js 官网示例代码&#xff0c;详细解释其实现思路和主要功能代码&#xff0c;帮助读者更好地理解和掌握 Three.js 的应用。官网代码地址&#xff1a;https://g…...

电子价签会是零售界的下一个主流?【新立电子】

电子价签&#xff0c;作为一种能够替代传统纸质标签的数字显示屏&#xff0c;已经在零售行业中展现出其巨大的潜力。它具有实时更新、集中管理、高效节能的特点&#xff0c;实现价格的实时更新&#xff0c;大大减少更新价格的工作量和时间。为消费者带来更加便捷、准确的购物体…...

uniapp——App下载文件,保存、打开文件(二)

uniapp如何下载文件、保存、打开文件 时光荏苒&#xff0c;2024即将过去&#xff01; 迈向2025&#xff0c;祝大家新的一年工作顺利、万事如意&#xff0c;少一点BUG&#xff0c;涨一点工资…↖(ω)↗ 文章目录 uniapp如何下载文件、保存、打开文件下载文件保存并打开文件处理 …...

如何轻松关闭 iPhone 上的 HEIC [HEIC 图像技巧]

您是否正在为关闭 iPhone 上的 HEIC 而烦恼&#xff1f;你不是一个人; Apple 的首选图像文件格式仍可能存在一些兼容性问题。当您与某人共享照片或尝试在Windows计算机上打开图像时&#xff0c;就会出现此问题。幸运的是&#xff0c;Apple 使关闭 HEIC iPhone 变得更加容易。 …...

库伦值自动化功耗测试工具

1. 功能介绍 PlatformPower工具可以自动化测试不同场景的功耗电流&#xff0c;并可导出为excel文件便于测试结果分析查看。测试同时便于后续根据需求拓展其他自动化测试用例。 主要原理&#xff1a;基于文件节点 coulomb_count 实现&#xff0c;计算公式&#xff1a;电流&…...

[paddle] 非线性拟合问题的训练

利用paddlepaddle建立神经网络&#xff0c;模拟有限个数据的非线性拟合 本文仍然考虑 f ( x ) sin ⁡ ( x ) x f(x)\frac{\sin(x)}{x} f(x)xsin(x)​ 函数在区间 [-10,10] 上固定数据的拟合。 import paddle import paddle.nn as nn import numpy as np import matplotlib.…...

Vue2: table加载树形数据的踩坑记录

table中需要加载树形数据,如图: 官网给了两个例子,且每个例子中的tree-props都是这么写的: :tree-props="{children: children, hasChildren: hasChildren}" 给我一种错觉,以为数据结构中要同时指定children和hasChildren字段,然而,在非懒加载模式下,数据结…...

全国计算机设计大赛大数据主题赛(和鲸赛道)经验分享

全国计算机设计大赛大数据主题赛&#xff08;和鲸赛道&#xff09;经验分享 这是“和鲸杯”辽宁省普通高等学校本科大学生计算机设计竞赛启动会汇报—大数据主题赛的文档总结。想要参加2025年此比赛的可以借鉴。 一、关于我 人工智能专业 计赛相关奖项&#xff1a; 2022年计…...

C# 设计模式(行为型模式):责任链模式

C# 设计模式&#xff08;行为型模式&#xff09;&#xff1a;责任链模式 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;用于让多个对象有机会处理同一个请求&#xff0c;避免请求发送者与接收者之间的耦合。它通过将请…...

人工智能之机器学习算法

所有的机器学习算法都是要优化的&#xff0c;优化的必要条件是确定优化的目标函数(损失函数)&#xff0c;目标函数是根据实际问题(数据)转成的数学公式。 一.线性回归原理推导 &#xff08;1&#xff09;回归问题概述 在机器学习的有监督算法中&#xff0c;分类与回归二种情…...

17爬虫:关于DrissionPage相关内容的学习01

概述 前面我们已经大致了解了selenium的用法&#xff0c;DerssionPage同selenium一样&#xff0c;也是一个基于Python的网页自动化工具。 DrissionPage既可以实现网页的自动化操作&#xff0c;也能够实现收发数据包&#xff0c;也可以把两者的功能合二为一。 DressionPage的…...

Ubuntu如何安装jdk并切换到不同的jdk版本

参考:https://www.cnblogs.com/Jakson/articles/4615768.html 摘要 &#xff1a;因为ubuntu 会自带open-jdk预装在系统内,当我们需要在 ubuntu下 安装jdk 的时候 ,发现 即使配置好环境变量后 输入 java -version 版本还是依然没有发生变化,我们需要以下2个步骤切换/usr/local/…...

Python基础语法(上)

目录 一、print函数及常量表达式 1.print函数 2.常量表达式 二、变量 1.定义变量的规则 2.python的动态类型特性 3.字符串 三、注释 四、input函数 1.input函数 2.变量类型转换 五、运算符 1.算数运算符 2.关系运算符 &#xff08;1&#xff09;整形的比较 &am…...

k8s系列--docker拉取镜像导入k8s的containerd中

# 确认一下当前集群中正在运行的 Pod 和命名空间 kubectl get pods -A# 示例一&#xff1a;拉取并导入 CoreDNS 镜像 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.11.1 docker save registry.cn-hangzhou.aliyuncs.com/google_containers/cor…...