《Rethinking the Expressive Power of GNNs via Graph Biconnectivity》阅读笔记

news2024/12/23 12:46:25

一.文章概述

现如今存在许多工作探索GNN的表达能力,然而对于其中大多数方法,仍然缺乏对它们可以系统地和可证明地获取哪些额外表达力的深刻理解。在本文中,作者通过图双连通性(biconnectivity)引入一类新的表达能力度量,并指出现有大部分关于GNN表达能力的工作无法表达此类指标。之后,作者提出了GD-WL(Generalized Distance Weiseiler-Lehman),它能表达所有双连通性度量。作者通过类似Transformer的体系结构实现 GD-WL,该体系结构保留了表达能力并能并行。最后在合成数据集和真实世界数据集上的实验证明了该方法的有效性。

二.研究动机

在GNN领域,MPNN方面的工作很多,但其表达能力的上限为1-WL。为获取表达能力更强的GNN,有部分工作开始设计能与高阶WL Test匹配的GNN。这类工作在获取更强表达能力的同时也带来了高额的计算/内存成本。然而,这类工作的大多数主要是通过给出WL算法无法区分的toy example来证明其表现力。从理论上讲,目前还不清楚它们能系统地、可证明地获得什么样的额外表达力。此外,除了WL Test外,仍然缺乏原则性和令人信服的度量标准来正式测量表达能力,并指导可证明更好的GNN架构的设计。

为此,作者从图biconnectivity的角度,系统地研究了expressive GNNs的设计问题。Biconnectivity通过将图分解为不连通的子连通分量(sub-component),并通过cut vertices/edges来将它们连接起来,形成树结构(示意参见下图)。可见Biconnectivity能够捕获图的内在结构。

在这里插入图片描述

本文的主要贡献是给出了原则性的和高效的方法来设计能表达biconnectivity的GNNs。

三.预备知识

本文主要研究无自环的简单图 G = ( V , E ) G=(\mathcal{V},\mathcal{E}) G=(V,E)

Path:节点元组 P = ( u 0 , ⋯   , u d ) P=\left(u_0, \cdots, u_d\right) P=(u0,,ud),其满足 { u i − 1 , u i } ∈ E \left\{u_{i-1}, u_i\right\} \in \mathcal{E} {ui1,ui}E 。若元组中没有重复节点,则称该Path为简单Path。

Induced subgraph:由顶点子集 S ⊂ V \mathcal{S} \subset \mathcal{V} SV导出的子图 G [ S ] = ( S , E S ) G[\mathcal{S}]=\left(\mathcal{S}, \mathcal{E}_{\mathcal{S}}\right) G[S]=(S,ES),其中 E S : = { { u , v } ∈ E : u , v ∈ S } \mathcal{E}_{\mathcal{S}}:=\{\{u, v\} \in \mathcal{E}: u, v \in \mathcal{S}\} ES:={{u,v}E:u,vS}

Connectivity:称图 G G G是连通的,当前仅当图上任意两个节点 u , v ∈ V u,v \in \mathcal{V} u,vV间都存在Path。称顶点子集 S ⊂ V \mathcal{S} \subset \mathcal{V} SV G G G的连通组件,当前仅当 G [ S ] G[\mathcal{S}] G[S]是连通的且不存在超集 T ⊋ S \mathcal{T} \supsetneq \mathcal{S} TS使得 G [ T ] G[\mathcal{T}] G[T]是连通的。用 C C ( G ) \mathrm{CC}(G) CC(G) 表示所有的连通组件子集,实际上 C C ( G ) \mathrm{CC}(G) CC(G)就是对顶点集 V \mathcal{V} V的划分。

Biconnectivity:若删除顶点 v ∈ V v \in \mathcal{V} vV会增加连通分量数,即 ∣ CC ⁡ ( G [ V \ { v } ] ) ∣ > ∣ C C ( G ) ∣ |\operatorname{CC}(G[\mathcal{V} \backslash\{v\}])|>|\mathrm{CC}(G)| CC(G[V\{v}])>CC(G),则称顶点 v v v为cut vertex。若图是连通的且没有cut vertex,则称图是vertex-biconnected。称顶点子集 S ⊂ V \mathcal{S} \subset \mathcal{V} SV是图 G G G的vertex-biconnected组件,当前仅当 G [ S ] G[\mathcal{S}] G[S]是vertex-biconnected且不存在超集 T ⊋ S \mathcal{T} \supsetneq \mathcal{S} TS,使得 G [ T ] G[\mathcal{T}] G[T]是vertex-biconnected。cut edge的定义与cut vertex的定义类似。最后作者用 BCC ⁡ V ( G ) \operatorname{BCC}^{\mathrm{V}}(G) BCCV(G) (resp. B C C E ( G ) \mathrm{BCC}^{\mathrm{E}}(G) BCCE(G))表示vertex-biconnected组件集(resp edge-biconnected组件集)。

将biconnected组件和cut vertices/edges连接起来形成的树结构被称之为block cut tree

Block cut-edge tree:图 G = ( V , E ) G=(\mathcal{V}, \mathcal{E}) G=(V,E)上的block cut-edge tree定义为 BCETree ⁡ ( G ) : = ( BCC ⁡ E ( G ) , E E ) \operatorname{BCETree}(G):=\left(\operatorname{BCC}^{\mathrm{E}}(G), \mathcal{E}^{\mathrm{E}}\right) BCETree(G):=(BCCE(G),EE),其中
E E : = { { S 1 , S 2 } : S 1 , S 2 ∈ B C C E ( G ) , ∃ u ∈ S 1 , v ∈ S 2 ,  s.t.  { u , v } ∈ E } \mathcal{E}^{\mathrm{E}}:=\left\{\left\{\mathcal{S}_1, \mathcal{S}_2\right\}: \mathcal{S}_1, \mathcal{S}_2 \in \mathrm{BCC}^{\mathrm{E}}(G), \exists u \in \mathcal{S}_1, v \in \mathcal{S}_2, \text { s.t. }\{u, v\} \in \mathcal{E}\right\} EE:={{S1,S2}:S1,S2BCCE(G),uS1,vS2, s.t. {u,v}E}
Block cut-vertex-tree:图 G = ( V , E ) G=(\mathcal{V}, \mathcal{E}) G=(V,E)上的block cut-vertex tree定义为 BCVTree ⁡ ( G ) : = ( B C C V ( G ) ∪ V Cut  , E V ) \operatorname{BCVTree}(G):=\left(\mathrm{BCC}^{\mathrm{V}}(G) \cup \mathcal{V}^{\text {Cut }}, \mathcal{E}^{\mathrm{V}}\right) BCVTree(G):=(BCCV(G)VCut ,EV),其中 V Cut  ⊂ V \mathcal{V}^{\text {Cut }} \subset \mathcal{V} VCut V是图 G G G中所有cut vertices组成的集合,并且
E V : = { { S , v } : S ∈ BCC ⁡ V ( G ) , v ∈ V C u t , v ∈ S } . \mathcal{E}^{\mathrm{V}}:=\left\{\{\mathcal{S}, v\}: \mathcal{S} \in \operatorname{BCC}^{\mathrm{V}}(G), v \in \mathcal{V}^{\mathrm{Cut}}, v \in \mathcal{S}\right\} . EV:={{S,v}:SBCCV(G),vVCut,vS}.
定理:与图biconnectivity相关的问题都包括识别所有的cut vertices/edges、寻找所有的biconnected组件和构建block cut tree都可以使用深度优先搜索算法在 Θ ( ∣ V ∣ + ∣ E ∣ ) \Theta(|\mathcal{V}|+|\mathcal{E}|) Θ(V+E)的复杂度内解决。

Graph Isomorphism:若图 G = ( V G , E G ) G=\left(\mathcal{V}_G, \mathcal{E}_G\right) G=(VG,EG)和图 H = ( V H , E H ) H=\left(\mathcal{V}_H, \mathcal{E}_H\right) H=(VH,EH)是同构的( G ≃ H G \simeq H GH),则存在一个双向映射(bijective mapping) f : V G → V H f: \mathcal{V}_G \rightarrow \mathcal{V}_H f:VGVH,使得对任意节点 u , v ∈ V G , { u , v } ∈ E H u, v \in \mathcal{V}_G,\{u, v\} \in \mathcal{E}_H u,vVG,{u,v}EH,有 { f ( u ) , f ( v ) } ∈ E H \{f(u), f(v)\} \in \mathcal{E}_H {f(u),f(v)}EH

Color refinement algorithm:给定输入图 G G G,颜色集 C \mathcal{C} C,输出颜色映射 χ G : V G → C \chi_G: \mathcal{V}_G \rightarrow \mathcal{C} χG:VGC。一个合法的颜色细化算法必须保持同构下的不变性,即对同构中的双向映射 f f f和任意节点 u ∈ V G u\in \mathcal{V}_G uVG,有 χ G ( u ) = χ H ( f ( u ) ) \chi_G(u)=\chi_H(f(u)) χG(u)=χH(f(u)) 。因此颜色映射可以作为图同构的必要测试,即比较多集 { { χ G ( u ) : u ∈ V G } } \left\{\left\{\chi_G(u): u \in \mathcal{V}_G\right\}\right\} {{χG(u):uVG}} { { χ H ( u ) : u ∈ V H } } \left\{\left\{\chi_H(u): u \in \mathcal{V}_H\right\}\right\} {{χH(u):uVH}},我们称之为图表示。相似地, χ G ( u ) \chi_G(u) χG(u)可以被看作节点 u ∈ V G u \in \mathcal{V}_G uVG的特征, { { χ G ( u ) , χ G ( v ) } } \left\{\left\{\chi_G(u), \chi_G(v)\right\}\right\} {{χG(u),χG(v)}}表示边 { u , v } ∈ E G \{u, v\} \in \mathcal{E}_G {u,v}EG的特征。

问题设置:本篇论文聚焦于如下三种类型的问题:

  • 对任意图 G G G H H H,若 G G G是vertex/edge-biconnected,但 H H H不是,则可以通过颜色细化算法来区分。
  • 区分cut vertices和cut edges。
  • 区分block cut-vertex/edge tree。

四.GD-WL Test

受之前工作的启发,作者研究是否在聚合过程中加入距离是否对解决biconnectivity问题很重要。为此,作者提出了一种新的颜色细化框架GD-WL,其更新规则为:
χ G t ( v ) : = hash ⁡ ( { { ( d G ( v , u ) , χ G t − 1 ( u ) ) : u ∈ V } } ) , \chi_G^t(v):=\operatorname{hash}\left(\left\{\left\{\left(d_G(v, u), \chi_G^{t-1}(u)\right): u \in \mathcal{V}\right\}\right\}\right), χGt(v):=hash({{(dG(v,u),χGt1(u)):uV}}),
其中 d G d_G dG可以为任意距离度量。完整的算法为:

在这里插入图片描述

SPD-WL for edge-biconnectivity

SPD-WL指选择最短路径距离(shortest path distance)作为距离度量,SPD-WL的传播规则可以表示为:
χ G t ( v ) : = hash ⁡ ( χ G t − 1 ( v ) , { { χ G t − 1 ( u ) : u ∈ N G ( v ) } } , { { χ G t − 1 ( u ) : dis ⁡ G ( v , u ) = 2 } } , ⋯   , { { χ G t − 1 ( u ) : dis ⁡ G ( v , u ) = n − 1 } , , { { χ G t − 1 ( u ) : dis ⁡ G ( v , u ) = ∞ } } ) . \begin{aligned} & \chi_G^t(v):=\operatorname{hash}\left(\chi_G^{t-1}(v),\left\{\left\{\chi_G^{t-1}(u): u \in \mathcal{N}_G(v)\right\}\right\},\left\{\left\{\chi_G^{t-1}(u): \operatorname{dis}_G(v, u)=2\right\}\right\},\right. \\ & \cdots,\left\{\left\{\chi_G^{t-1}(u): \operatorname{dis}_G(v, u)=n-1\right\},,\left\{\left\{\chi_G^{t-1}(u): \operatorname{dis}_G(v, u)=\infty\right\}\right\}\right) . \end{aligned} χGt(v):=hash(χGt1(v),{{χGt1(u):uNG(v)}},{{χGt1(u):disG(v,u)=2}},,{{χGt1(u):disG(v,u)=n1},,{{χGt1(u):disG(v,u)=}}).
根据该公式可知SPD-WL显然比1-WL更具表达能力,因为它额外聚合了 k k k-hop邻居。作者证明
SPD-WL完全表达了edge biconnectivity

定理:令 G = ( V G , E G ) G=\left(\mathcal{V}_G, \mathcal{E}_G\right) G=(VG,EG) H = ( V H , E H ) H=\left(\mathcal{V}_H, \mathcal{E}_H\right) H=(VH,EH)为两个图, χ G \chi_G χG χ H \chi_H χH分别为其对应的颜色映射,则如下成立:

  • 对任意边 { w 1 , w 2 } ∈ E G \left\{w_1, w_2\right\} \in \mathcal{E}_G {w1,w2}EG { x 1 , x 2 } ∈ E H \left\{x_1, x_2\right\} \in \mathcal{E}_H {x1,x2}EH,若 { { χ G ( w 1 ) , χ G ( w 2 ) } } = { { χ H ( x 1 ) , χ H ( x 2 ) } } \left\{\left\{\chi_G\left(w_1\right), \chi_G\left(w_2\right)\right\}\right\}= \left\{\left\{\chi_H\left(x_1\right), \chi_H\left(x_2\right)\right\}\right\} {{χG(w1),χG(w2)}}={{χH(x1),χH(x2)}},则 { w 1 , w 2 } \left\{w_1, w_2\right\} {w1,w2} 是cut edge当前仅当 { x 1 , x 2 } \left\{x_1, x_2\right\} {x1,x2}是cut edge。
  • { { χ G ( w ) : w ∈ V G } } = { { χ H ( w ) : w ∈ V H } } \left\{\left\{\chi_G(w): w \in \mathcal{V}_G\right\}\right\}=\left\{\left\{\chi_H(w): w \in \mathcal{V}_H\right\}\right\} {{χG(w):wVG}}={{χH(w):wVH}},则 BCETree ⁡ ( G ) ≃ BCETree ⁡ ( H ) \operatorname{BCETree}(G) \simeq \operatorname{BCETree}(H) BCETree(G)BCETree(H)

该定理将SPD、biconnectivity和WL Test结合到一个统一的结论中。

RD-WL for vertex-biconnectivity

作者选择Resistance Distance (RD)作为距离度量(用 dis G R \text{dis}^R_G disGR表示)。

dis ⁡ G R ( u , v ) \operatorname{dis}_G^{\mathrm{R}}(u, v) disGR(u,v)的值被定义为节点 u u u和节点 v v v之间的有效电阻,将 G G G视为电网,其中每条边对应1个1欧姆的电阻。RD有很多优雅的属性:

  • RD是一个有效的度量(非负的,半定的、对称的并且满足三角不等式)
  • 0 ≤ dis ⁡ G R ( u , v ) ≤ n − 1 0 \leq \operatorname{dis}_G^{\mathrm{R}}(u, v) \leq n-1 0disGR(u,v)n1,且若 G G G是tree,则 dis ⁡ G R ( u , v ) = dis ⁡ G ( u , v ) \operatorname{dis}_G^{\mathrm{R}}(u, v)=\operatorname{dis}_G(u, v) disGR(u,v)=disG(u,v)

作者证明RD与图拉普拉斯高度相关且计算效率高。

定理:令 G = ( V G , E G ) G=\left(\mathcal{V}_G, \mathcal{E}_G\right) G=(VG,EG) H = ( V H , E H ) H=\left(\mathcal{V}_H, \mathcal{E}_H\right) H=(VH,EH)表示两个图, χ G \chi_G χG χ H \chi_H χH分别表示对应的RD-WL颜色映射,则如下成立:

  • 对任意两个节点 w ∈ V G w \in \mathcal{V}_G wVG x ∈ V H x \in \mathcal{V}_H xVH,若 χ G ( w ) = χ H ( x ) \chi_G(w)=\chi_H(x) χG(w)=χH(x),则 w w w是一个cut vertex当且仅当 x x x是一个cut vertex。
  • { { χ G ( w ) : w ∈ V G } } = { { χ H ( w ) : w ∈ V H } } \left\{\left\{\chi_G(w): w \in \mathcal{V}_G\right\}\right\}=\left\{\left\{\chi_H(w): w \in \mathcal{V}_H\right\}\right\} {{χG(w):wVG}}={{χH(w):wVH}},则 BCVTree ⁡ ( G ) ≃ BCVTree ⁡ ( H ) \operatorname{BCVTree}(G) \simeq \operatorname{BCVTree}(H) BCVTree(G)BCVTree(H)

第4节的两个定理表明,所有的biconnectivity问题都可以在作者提出的GD-WL框架内解决。

当同时使用SPD和RD,GD-WL对vertex-biconnectivity和edge-biconnectivity都有效。

Practical Implementation

作者指出,GD-WL可以通过将距离信息注入到Multi-head Attention中,使用类似Transformer的架构轻松实现,其注意力称可以写为:
Y h = [ ϕ 1 h ( D ) ⊙ softmax ⁡ ( X W Q h ( X W K h ) ⊤ + ϕ 2 h ( D ) ) ] X W V h \mathbf{Y}^h=\left[\phi_1^h(\mathbf{D}) \odot \operatorname{softmax}\left(\mathbf{X} \mathbf{W}_Q^h\left(\mathbf{X} \mathbf{W}_K^h\right)^{\top}+\phi_2^h(\mathbf{D})\right)\right] \mathbf{X} \mathbf{W}_V^h Yh=[ϕ1h(D)softmax(XWQh(XWKh)+ϕ2h(D))]XWVh
其中 X ∈ R n × d \mathbf{X} \in \mathbb{R}^{n \times d} XRn×d 表示上一层的输入节点特征, D ∈ R n × n \mathbf{D} \in \mathbb{R}^{n \times n} DRn×n为距离矩阵,其中 D u v = d G ( u , v ) D_{u v}=d_G(u, v) Duv=dG(u,v) W Q h , W K h , W V h ∈ R d × d H \mathbf{W}_Q^h, \mathbf{W}_K^h, \mathbf{W}_V^h \in \mathbb{R}^{d \times d_H} WQh,WKh,WVhRd×dH都是第 h h h个head中的可学习的参数矩阵。 ϕ 1 h \phi_1^h ϕ1h ϕ 2 h \phi_2^h ϕ2h 是应用在 D \mathbf{D} D上的逐元素函数(可能是参数化的), ⊙ \odot 表示逐元素乘法。各个注意力图的结果 Y h ∈ R n × d H \mathbf{Y}^h \in \mathbb{R}^{n \times d_H} YhRn×dH 组合起来用来获取最终的输出 Y = ∑ h Y h W O h \mathbf{Y}=\sum_h \mathbf{Y}^h \mathbf{W}_O^h Y=hYhWOh,其中 W O h ∈ R d H × d \mathbf{W}_O^h \in \mathbb{R}^{d_H \times d} WOhRdH×d。作者将该体系结构称之为Graphormer-GD

Graphormer-GD在区分非同构图方面最多与GD-WL一样强大。而且,当选择适当的函数 ϕ 1 h \phi_1^h ϕ1h ϕ 2 h \phi_2^h ϕ2h ,并且使用足够多的头部和层数时,Graphormer-GD的性能与GD-WL相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/882688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java并发编程(七)实践[生产者-消费者]

生产者-消费者 概述 生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两个线程在多线程开发中,如果生产者(生产数据的线程)处理速度很快,而消费者(消费数据的线程)处理速度很慢,那么生产者就必须…

CMake生成的VS项目之后运行弹出错误框:无法启动...\Debug\~.exe,找不到指定的文件夹

问题: CMake生成的VS项目之后运行弹出错误框:无法启动…\Debug~.exe,找不到指定的文件夹 首先确实Debug文件夹中没有.exe文件 问题的根本是项目缺东西,有问题,当所有问题解决了,也就不会出现这个问题的&am…

【Mariadb高可用MHA】

目录 一、概述 1.概念 2.组成 3.特点 4.工作原理 二、案例介绍 1.192.168.42.3 2.192.168.42.4 3.192.168.42.5 4.192.168.42.6 三、实际构建MHA 1.ssh免密登录 1.1 所有节点配置hosts 1.2 192.168.42.3 1.3 192.168.42.4 1.4 192.168.42.5 1.5 192.168.42.6 …

02-C++数据类型-高级

数据类型-高级 4、复合类型 4.4、结构简介 struct inflatable {char name[20];float vol;double price; };inflatable vincent; //C struct inflatable goose; //C例子 // structur.cpp -- a simple structure #include <iostream> struct inflatable // structu…

【数据库系统】--【2】DBMS架构

DBMS架构 01DBMS架构概述02 DBMS的物理架构03 DBMS的运行和数据架构DBMS的运行架构DBMS的数据架构PostgreSQL的体系结构RMDB的运行架构 04DBMS的逻辑和开发架构DBMS的层次结构DBMS的开发架构DBMS的代码架构 05小结 01DBMS架构概述 02 DBMS的物理架构 数据库系统的体系结构 数据…

(二)结构型模式:5、装饰器模式(Decorator Pattern)(C++实例)

目录 1、装饰器模式&#xff08;Decorator Pattern&#xff09;含义 2、装饰器模式的UML图学习 3、装饰器模式的应用场景 4、装饰器模式的优缺点 5、C实现装饰器模式的简单实例 1、装饰器模式&#xff08;Decorator Pattern&#xff09;含义 装饰模式&#xff08;Decorato…

学习 Iterator 迭代器

今天看到一个面试题&#xff0c; 让下面解构赋值成立。 let [a,b] {a:1,b:2} 如果我们直接在浏览器输出这行代码&#xff0c;会直接报错&#xff0c;说是 {a:1,b:2} 不能迭代。 看了es6文档后&#xff0c;具有迭代器的就一下几种类型&#xff0c;没有Object类型&#xff0c;…

探索Java中的静态变量与实例变量:存储区域、生命周期以及内存分配方式的区别

文章目录 静态变量实例变量不可变对象静态变量和实例变量有什么区别&#xff1f;静态变量实例变量 Object 类都有哪些公共方法&#xff1f;Java 创建对象有哪几种方式&#xff1f;ab 与 a.equals(b) 有什么区别&#xff1f;总结 &#x1f389;欢迎来到Java面试技巧专栏~探索Jav…

Nacos详解(springcloud+nacos实战)

Nacos详解 Nacos1.介绍2.Nacos专业术语2.1 服务 (Service)2.2 服务注册中心 (Service Registry)2.3服务提供方 (Service Provider)2.4服务消费方 (Service Consumer)2.5版本依赖关系 Nacos 注册中心1. 启动NacosServer2 使用 Nacos 做注册中心2.1 nacos-client-b2.2 nacos-clie…

部门用户权限应用的设计和创建(进行中)

数据库表设计 代码实现之前首先是表设计&#xff0c; 六个基本步骤 1.需求分析 (分析用户需求,包括数据、功能和性能需求&#xff09; 2.概念结构设计(主要采用 E-R图) 3.逻辑结构设计 (将ER图转换成表,实现从E-R模型到关系模型转换&#xff09; 4.数据库物理设计 (为设计的…

深度学习的“前世今生”

1、“感知机”的诞生 20世纪50年代&#xff0c;人工智能派生出了这样两个学派&#xff0c;分别是“符号学派”及“连接学派”。前者的领军学者有Marvin Minsky及John McCarthy&#xff0c;后者则是由Frank Rosenblatt所领导。 符号学派的人相信对机器从头编程&#xff0c;一个…

Vue-5.编译器idea

关闭 IDEA 自动更新 IDEA无法搜索插件 填写idea下载插件的官方地址点击ok测试成功则ok https://plugins.jetbrains.com/idea 全局内存配置&#xff08;重启后生效&#xff09; 部署 Alibaba Cloud toolkit&#xff08;部署代码的利器&#xff09; Git&#xff08;需要安装gi…

人工智能原理(4)

目录 一、确定性推理 1、推理方式 2、控制策略 二、推理的逻辑基础 1、永真和可满足性 2、等价性和永真蕴含 3、置换与合一 三、自然演绎推理 四、归结演绎推理 1、子句型 2、鲁滨逊归结原理 3、归结策略 一、确定性推理 推理&#xff1a;就是按照某种策略从已有事…

微机原理与接口技术 学习笔记(二) 存储器

文章目录 一&#xff0c;存储器1.1 概述1.1.1 半导体存储器的分类按制造工艺&#xff1a; 易失性或挥发性存储器 / 不易失性或不挥发性存储器按制造工艺&#xff1a; 1.1.2 半导体存储器的性能指标1.1.3 半导体存储器的一般结构及组成 1.2 随机存取存储器 RAM1.2.1 静态RAM1.2.…

操作符和表达式求值

目录 1.运算符的优先级和结合性 1.1运算符的优先级 1.2结合性 2.操作符的使用最终带来的是一个表达式的值 2.1.隐式类型转换&#xff08;整型提升&#xff09; 2.1.1整形提升的例子 2.2算术转换 1.运算符的优先级和结合性 运算符是编程语言中的基本元素之一&#xff0c;主…

临床试验三原则-对照、重复、随机

临床试验必须遵循三个基本原则&#xff1a;对照、重复、随机。 一、对照原则和对照的设置 核心观点&#xff1a;有比较才有鉴别。 对照组和试验组同质可比。 三臂试验 安慰剂&#xff1a;试验组&#xff1a;阳性对照组1&#xff1a;n&#xff1a;m&#xff08;n≥m&#xff…

论文略读:城市道路场景下车辆编队运动规划与控制算法研究

1. 一些观点&#xff1a; &#xff08;1&#xff09;我曾经认为不能复现的论文都是垃圾。我现在看到能够量产的论文之后发现&#xff0c;论文的复现实属难得&#xff0c;即使给你代码&#xff0c;反复钻研&#xff0c;一个月之久才敢说略微看懂&#xff0c;所以论文的复现实在是…

使用 `tailwindcss-patch@2` 来提取你的类名吧

使用 tailwindcss-patch2 来提取你的类名吧 使用 tailwindcss-patch2 来提取你的类名吧 安装使用方式 命令行 Cli 开始提取吧 Nodejs API 的方式来使用 配置 初始化 What’s next? tailwindcss-patch 是一个 tailwindcss 生态的扩展项目。也是 tailwindcss-mangle 项目重要…

高等数学教材重难点题型总结(二)导数与微分

本章重点题目较少&#xff0c;除了*标题页没什么特别难的&#xff0c;本帖出于总结性的角度考虑并未囊概全部的*标&#xff0c;最后会出一期*标题的全部内容整理&#xff0c;在攻克重难点的基础上更上一层楼。 1.根据定义求某点处的导数值 2.通过定义证明导数 3.左右导数的相关…

QT使用QML实现地图绘制虚线

QML提供了MapPolyline用于在地图上绘制线段&#xff0c;该线段是实线&#xff0c;因此我使用Canvas自定义绘制的方式在地图上绘制线段&#xff0c;如图&#xff1a; 鼠标在地图上点击后&#xff0c;在点击位置添加图标 &#xff0c;当有多个图标被添加到地图上后&#xff0c;计…