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

图论与网络优化2

CSDN 有字数限制,因此笔记分别发布,目前:

  1. 【笔记1】概念与计算、树及其算法
  2. 【笔记2】容量网络模型

4 最大流及其算法

4.1 容量网络模型

4.1.1 容量网络

容量网络:如果一个加权有向网络 D D D 满足如下三个条件:①存在唯一一个入度为 0 0 0 的顶点,称为源;②存在唯一一个出度为 0 0 0 的顶点,称为汇;③每条弧 ( v i , v j ) (v_i,v_j) (vi,vj) 赋权 c i j c_{ij} cij 是一个非负数,称为弧 ( v i , v j ) (v_i,v_j) (vi,vj) 的容量,则把这个加权有向网络 D D D 称为容量网络。


4.1.2 流

:设 D D D 是一个容量网络,令 c i j c_{ij} cij 表示弧 ( v i , v j ) (v_i,v_j) (vi,vj) 的容量。设 f f f 是定义在 D D D 的弧集上的一个函数,它赋予每条弧 ( v i , v j ) (v_i,v_j) (vi,vj) 一个非负实数 f i j f_{ij} fij,若 f f f 满足:① f i j ≤ c i j f_{ij} \leq c_{ij} fijcij;② ∀ v j ∈ V ( D ) \forall v_j \in V(D) vjV(D) \ { v s , v t } \{v_s,v_t\} {vs,vt} ∑ ( v i , v j ) ∈ E ( D ) f i j = ∑ ( v j , v i ) ∈ E ( D ) f j i \sum_{(v_i,v_j)\in E(D)} f_{ij} = \sum_{(v_j,v_i)\in E(D)} f_{ji} (vi,vj)E(D)fij=(vj,vi)E(D)fji,则称 f f f 为容量网络 D D D 的一个流,称 f i j f_{ij} fij 为弧 ( v i , v j ) (v_i,v_j) (vi,vj) 上的流量。
(非)饱和弧:弧上的流量(未)达到弧的容量。


4.1.3 流值

定理:设 f f f 是容量网络 D D D 的一个流,其中源为 v s v_s vs,汇为 v t v_t vt,由源的流出量等于汇的流入量,即 ∑ ( v s , v j ) ∈ E ( D ) f s i = ∑ ( v i , v t ) ∈ E ( D ) f i t \sum_{(v_s,v_j)\in E(D)}f_{si}=\sum_{(v_i,v_t)\in E(D)}f_{it} (vs,vj)E(D)fsi=(vi,vt)E(D)fit
证明:注意到每条弧上的流量,既是其头顶点的流入量,也是其尾顶点的流出量,因此所有弧上的流量之和、所有顶顶啊的流入量之和、所有顶点的流出量之和,这三者相等。
流值:设 f f f 是容量网络 D D D 的一个流,其源为 v s v_s vs,汇为 v t v_t vt,称源的流出量为流 f f f 的流值,记作 v a l ( f ) val(f) val(f)


4.1.4 最大流

最大流:设 D D D 是一个容量网络,若 f f f D D D 上流值最大的流,则把 f f f 称为 D D D 的最大流。
:设 D D D 是一个容量网络,源为 v s v_s vs,汇为 v t v_t vt。设顶点子集 S ⊂ V ( D ) , S ‾ = V ( D ) S \subset V(D),\overline{S}=V(D) SV(D),S=V(D) \ S S S,且 v s ∈ S , v t ∈ S ‾ v_s\in S, v_t \in \overline{S} vsS,vtS,则称弧集 { ( v i , v j ) ∈ E ( D ) ∣ v i ∈ S , v j ∈ S ‾ } \{(v_i,v_j)\in E(D)|v_i \in S, v_j \in \overline{S}\} {(vi,vj)E(D)viS,vjS} 为容量网络 D D D 的截,记作 ( S , S ‾ ) (S,\overline{S}) (S,S)
截的容量 ∑ ( v i , v j ) ∈ ( S , S ‾ ) c i j \sum_{(v_i,v_j)\in(S,\overline{S})}c_{ij} (vi,vj)(S,S)cij,记作 c ( S , S ‾ ) c_(S,\overline{S}) c(S,S)
最小截:容量达最小的截为最小截。
定理:设 D D D 是一个容量网络,源为 v s v_s vs,汇为 v t v_t vt。设 f f f 是容量网络 D D D 的一个流, ( S , S ‾ ) (S,\overline{S}) (S,S) D D D 的一个截,则有 v a l ( f ) ≤ c ( S , S ‾ ) val(f) \leq c(S,\overline{S}) val(f)c(S,S)
证明:…
流值与截容量相等当且仅当每条弧都是饱和弧且无逆流的时候。
若容量网络的一个流 f f f 的流值等于某个截 ( S , S ‾ ) (S,\overline{S}) (S,S)的容量,即 c ( S , S ‾ ) = v a l ( f ) c(S,\overline{S})=val(f) c(S,S)=val(f),则 f f f 为最大流, ( S , S ‾ ) (S,\overline{S}) (S,S) 为最小截。


4.2 最大流算法

4.2.1 可增路

可增路:设 P P P 是一条 ( v s , v j ) (v_s,v_j) (vs,vj) 路,如果①对 P P P 中每条正向弧 ( v i , v j ) , f i j < c i j (v_i,v_j),f_{ij} < c_{ij} (vi,vj),fij<cij;②对 P P P 中每条反向弧 ( v i , v j ) , f i j > 0 (v_i,v_j),f_{ij} > 0 (vi,vj),fij>0,则称 ( v s , v j ) (v_s,v_j) (vs,vj) f f f 非饱和路;否则为饱和路。从源到汇的 f f f 非饱和路,称为 f f f 可增路。


4.2.2 最大流算法

定理:设容量网络 D D D 的源为 v s v_s vs,汇为 v t v_t vt f f f D D D 的一个流,则 f f f 为最大流当且仅当 D D D 中不存在 f f f 可增路。
证明:只需证明充分性。只需证明存在截 ( S , S ‾ ) (S,\overline{S}) (S,S) 满足: ( S , S ‾ ) (S,\overline{S}) (S,S) 中的每条弧都是饱和弧, ( S ‾ , S ) (\overline{S}, S) (S,S) 中的每条弧都是零弧。
将顶点分类,令 S = { v s } ∪ { v j ∣ 存在一条 f 非饱和路 ( v s , v j ) } S=\{v_s\} \cup \{v_j|存在一条 f 非饱和路 (v_s,v_j)\} S={vs}{vj存在一条f非饱和路(vs,vj)},故有 v t ∈ S ‾ v_t \in \overline{S} vtS
S S S S ‾ \overline S S 之间假设 f i j < c i j f_{ij} < c_{ij} fij<cij,易见 P + ( v i , v j ) P+(v_i,v_j) P+(vi,vj) 亦为 f f f 非饱和路,与 v j ∈ S ‾ v_j \in \overline{S} vjS 矛盾。同理可以证明 f i j = 0 f_{ij}=0 fij=0
标号法能求解可增路


4.2.3 最大流最小截定理

最大流算法结束时,最大流流值等于最小截容量。
定理:在任何容量网络 D D D 中,最大流的流值等于最小截的容量。
证明:(大致思路)设 S S S 为能用标号法能够获得标号的顶点集合,则 ( S , S ‾ ) (S,\overline{S}) (S,S) 之间的弧的值必定为 0 0 0


4.3 最小费用最大流

4.3.1 问题描述

f f f 的费用:设容量网络 D D D 的源为 v s v_s vs,汇为 v t v_t vt c i j c_{ij} cij b i j b_{ij} bij 分别表示弧 ( v i , v j ) (v_i,v_j) (vi,vj) 上的容量和单位流量费用,设 f f f G G G 的流,则称 b ( f ) = ∑ ( v i , v j ) ∈ E ( D ) f i j b i j b(f)=\sum_{(v_i,v_j)\in E(D)}f_{ij}b_{ij} b(f)=(vi,vj)E(D)fijbij 为流 f f f 的费用。在容量网络 D D D 的所有最大流中寻找费用最小的流,这样的流称为最小费用最大流。


4.3.2 F增广圈

增广圈:设 Q Q Q 是一个具有指定正向的圈, Q + Q^+ Q+ 为圈 Q Q Q 上正向弧的集合, Q − Q^- Q 为圈 Q Q Q 上反向弧的集合。

  1. δ i j = c i j − f i j , ( v i , v j ) ∈ Q + \delta_{ij}=c_{ij}-f_{ij},(v_i,v_j) \in Q^+ δij=cijfij(vi,vj)Q+
  2. δ i j = f i j , ( v i , v j ) ∈ Q − \delta_{ij}=f_{ij},(v_i,v_j) \in Q^- δij=fij(vi,vj)Q

δ ( Q ) = m i n { δ i j ∣ ( v i , v j ) ∈ E ( Q ) } \delta(Q)=min\{\delta_{ij}|(v_i,v_j) \in E(Q)\} δ(Q)=min{δij(vi,vj)E(Q)}
δ ( Q ) > 0 \delta(Q)>0 δ(Q)>0,则称 δ ( Q ) \delta(Q) δ(Q) 为允许修改流量,称圈 Q Q Q 为容量网络 D D D 上关于流 f f f增广圈
对于 f f f 增广圈 Q Q Q,我们可以定义 f ′ f' f

  1. f i j ′ = f i j + δ ( Q ) , ( v i , v j ) ∈ Q + f_{ij}^{'}=f_{ij} + \delta(Q),(v_i,v_j)\in Q^+ fij=fij+δ(Q)(vi,vj)Q+
  2. f i j ′ = f i j − δ ( Q ) , ( v i , v j ) ∈ Q − f_{ij}^{'}=f_{ij} - \delta(Q),(v_i,v_j)\in Q^- fij=fijδ(Q)(vi,vj)Q
  3. f i j , ( v i , v j ) ∉ E ( Q ) f_{ij},(v_i,v_j) \notin E(Q) fij(vi,vj)/E(Q)

这样 f ′ f' f 仍是 D D D 的流并且 v a l ( f ′ ) = v a l ( f ) val(f')=val(f) val(f)=val(f),称 f ′ f' f 为基于 f f f 增广圈 Q Q Q 的修正流。

负圈:设有容量网络 D D D f f f 是一个流, f i j , c i j , b i j f_{ij},c_{ij},b_{ij} fij,cij,bij 分别为弧 ( v i , v j ) (v_i,v_j) (vi,vj) 上的流量、容量和单位费用,设 Q Q Q 是关于流 f f f 的增广圈。称 b ( Q , f ) = ∑ ( v i , v j ) ∈ Q + b i j − ∑ ( v i , v j ) ∈ Q − b i j b(Q,f)=\sum_{(v_i,v_j)\in Q^+}b_{ij}-\sum_{(v_i,v_j)\in Q^-}b_{ij} b(Q,f)=(vi,vj)Q+bij(vi,vj)Qbij 为增广圈的费用,若小于 0 0 0,则称 Q Q Q 为负圈。负圈与流量、容量、费用、圈的指定方向有关。


4.3.3 Klein 算法

算法:

  1. 求容量网络 D D D 的一个最大流。
  2. 寻找网络中的负圈。若没有负圈,算法结束;若找到一个负圈,转step 3
  3. 修改负圈 Q Q Q 上各弧的流量,得到修正流。在新修正流的基础上,转step 2,继续寻找负圈。

定理:设有容量网络 D D D f f f 是一个流, f i j , c i j , b i j f_{ij},c_{ij},b_{ij} fij,cij,bij 分别为弧 ( v i , v j ) (v_i,v_j) (vi,vj) 上的流量、容量和单位费用,则 f f f 是最小费用最大流当且仅当任何 f f f 增广圈 Q Q Q 的费用 b ( Q , f ) ≥ 0 b(Q,f)\geq0 b(Q,f)0,即无负圈


5 遍历性及其算法

5.1 Euler图和有向Euler图

5.1.1 定义

Euler图:如果图 G G G 中存在包含所有边的闭迹 W W W,则称 G G G E u l e r Euler Euler 图, W W W 称为 G G G E u l e r Euler Euler 闭迹。
半Euler图:如果图 G G G 中存在包含所有边的迹 P P P,则称 G G G 半 E u l e r 半Euler Euler 图, P P P 称为 G G G E u l e r Euler Euler 迹。
定理:设 G G G 为非空连通图,则下面三个命题等价:

  1. G G G E u l e r Euler Euler 图;
  2. G G G 中不含奇点;
  3. G G G 可以表示为若干个没有公共边的圈的并。

证明:

  1. 1->2:设 G G G 是连通的 E u l e r Euler Euler 图, W W W G G G E u l e r Euler Euler 闭迹,则 ∀ v ∈ V ( G ) , v \forall v \in V(G),v vV(G)v 必定在 W W W 中出现,当 v v v 作为内部点,每出现一次,必定与 G G G 中两条边关联;当 v v v 作为 W W W 的起点,则 v v v 也是重点,从而它必与两条边关联,因此 G G G 的每个顶点都是偶点。
  2. 2->3:设 G G G 是非空连通图且不含奇点,则 G G G 不是树,从而 G G G 中含有圈,不断取出圈来得到新图再取圈,因此可以从第二个命题演变成第三个命题。
  3. 3->1:由 E u l e r Euler Euler 图的定义,结论显然。

有向Euler图:若有向图 D D D 中存在包含所有弧的有向闭迹,则称 D D D 为有向 E u l e r Euler Euler 图,这样的有向闭迹,称为 D D D 的有向 E u l e r Euler Euler 闭迹。
有向半Euler图:若有向图 D D D 中存在包含所有弧的有向迹,则称 D D D 为有向 E u l e r Euler Euler 图,这样的有向迹,称为 D D D 的有向 E u l e r Euler Euler 迹。
定理:设 G G G 为非空连通有向图,则下面三个命题等价:

  1. D D D 是有向 E u l e r Euler Euler 图;
  2. ∀ v ∈ V ( D ) \forall v \in V(D) vV(D),有 d + ( v ) = d − ( v ) d^+(v)=d^-(v) d+(v)=d(v)
  3. G G G 可以表示为弧不交的回路的并。

5.1.2 Fleury 算法

算法思想:从任意顶点出发,除非别无选择,否则总是选择一条不是割边的且没走过的边,直到获得 E u l e r Euler Euler 闭迹为止。
定理:设 G G G E u l e r Euler Euler 图, W = v 0 e 1 v 1 . . . e n v n W=v_0e_1v_1...e_nv_n W=v0e1v1...envn F l e u r y Fleury Fleury 算法结束时得到的迹,则 W W W 一定是图 G G G E u l e r Euler Euler 闭迹。
证明:…


5.1.3 编码盘设计

例题:16个二进制数应该如何排列,使得圆盘沿顺时针旋转一部分,恰好组成 0000 0000 0000 1111 1111 1111 16 16 16 组四位二进制输出,同时旋转一周又返回到 0000 0000 0000 状态?
答案:定义一个有 8 8 8 个顶点的有向图 D D D,其中顶点用 3 3 3 0 − 1 0-1 01 序列 x 1 x 2 x 3 x_1x_2x_3 x1x2x3 标记,且顶点 x 1 x 2 x 3 x_1x_2x_3 x1x2x3 与顶点 x 2 x 3 0 , x 2 x 3 1 x_2x_30,x_2x_31 x2x30,x2x31 以出弧的形式相连,这样得到的有向图 D D D 中,每个顶点的入度和出度相等,都等于 2 2 2。然后从 000 000 000 出发,可以得到一个有向 E u l e r Euler Euler 闭迹为 …。注意起终点重复,所以序列取末尾数字,得…
该问题可以扩展,得到的有向图为德布鲁英图 B ( 2 , n ) B(2,n) B(2,n)。每个顶点最后一位数字构成序列为 德布鲁英序列。
编码示意图


5.2 中国邮递员问题

5.2.1 问题描述

管梅谷教授提出并研究了中国邮递员问题。
问题内容:在加权连通图 G G G 中,寻找一条经过每条边至少一次且权和最小的闭迹,即 G G G 的最优环游。
思考角度:对于重复走的边,可以看作为两点之间的重边(即重复走的边视为 k k k 重边)。


5.2.2 奇偶点图上作业法

最优环游的奇偶点图上作业法:

  1. 把图 G G G 所有奇点配成对,将每对奇点之间的一条链的每条边改为二重边,得到一个新图 G 1 G_1 G1,图中没有奇点
  2. 在图 G 1 G_1 G1 中,若顶点之间有 k ( k ≥ 3 ) k(k\geq3) k(k3) 重边,则去掉其中偶数条,只保留 1 / 2 1/2 1/2 条边,得到图 G 2 G_2 G2
  3. 检查 G 2 G_2 G2 中的每一个圈 C C C,若重复边的权和超过此圈权和的一半,则重边变为单边,单边变为二重边,重复这一过程,直到所有圈上重边的权和都不超过圈权和一半,得到 G 3 G_3 G3
  4. F l e u r y Fleury Fleury 算法求 G 3 G_3 G3 E u l e r Euler Euler 闭迹,得到图 G G G 的最优环游

定理:设 G G G 是加权连通图,则奇偶点图上作业法得到的闭途径是最优环游。
证明:…
例题:
例题

答案:图 G G G 中有 6 6 6 个奇点 v 2 , v 3 , v 5 , v 8 , v 10 , v 11 v_2,v_3,v_5,v_8,v_{10},v_{11} v2,v3,v5,v8,v10,v11,将它们搭配成三对,因此添加 v 2 v 3 v 4 v 5 , v 3 v 2 v 1 v 8 , v 10 v 11 v_2v_3v_4v_5,v_3v_2v_1v_8,v_{10}v_{11} v2v3v4v5v3v2v1v8v10v11。注意 v 2 v 3 v_2v_3 v2v3 间有两条新添加的边,删去得到新图。
图2
v 1 v 2 v 7 v 8 v 1 , v 3 v 4 v 5 v 6 v 3 v_1v_2v_7v_8v_1,v_3v_4v_5v_6v_3 v1v2v7v8v1v3v4v5v6v3 中非最优添边,因此重边变单边,单边变重边,再次得到新图:
图3
再检查圈 v 2 v 3 v 6 v 11 v 10 v 7 v 2 v_2v_3v_6v_{11}v_{10}v_7v_2 v2v3v6v11v10v7v2,也非最优,执行单重边置反,得到新图。
图4
检查通过,执行 F l e u r y Fleury Fleury 算法,得到最优环游为:
v 1 v 2 v 3 v 2 v 7 v 8 v 7 v 6 v 5 v 6 v 11 v 12 v 5 v 4 v 3 v 6 v 11 v 10 v 7 v 10 v 9 v 8 v 1 v_1v_2v_3v_2v_7v_8v_7v_6v_5v_6v_{11}v_{12}v_5v_4v_3v_6v_{11}v_{10}v_7v_{10}v_9v_8v_1 v1v2v3v2v7v8v7v6v5v6v11v12v5v4v3v6v11v10v7v10v9v8v1,环游总长度 109 109 109

相关文章:

图论与网络优化2

CSDN 有字数限制&#xff0c;因此笔记分别发布&#xff0c;目前&#xff1a; 【笔记1】概念与计算、树及其算法【笔记2】容量网络模型 4 最大流及其算法 4.1 容量网络模型 4.1.1 容量网络 容量网络&#xff1a;如果一个加权有向网络 D D D 满足如下三个条件&#xff1a;①…...

ES Kibana windows 安装

ES & Kibana windows 安装 声明&#xff1a; 本文没有实际操作过&#xff0c;只记录。具体操作请参考 ES & Kibana 安装 该文章 JDK1.8&#xff0c;最低要求&#xff01;ElasticSearch客户端&#xff0c;界面工具&#xff01; Java开发&#xff0c;ElasticSearch的版…...

分布式事务seata的使用

分布式事务介绍 在微服务架构中&#xff0c;完成某一个业务功能可能需要横跨多个服务&#xff0c;操作多个数据库。这就涉及到到了分布式事务&#xff0c;需要操作的资源位于多个资源服务器上&#xff0c;而应用需要保证对于多个资源服务器的数据操作&#xff0c;要么全部成功&…...

使用宝塔面板安装mysql

1.第一步 在官网https://www.bt.cn/new/download.html下载页面直接在服务器控制面板复制这里的代码下载即可 2.第二步 下载好后按照服务器面版上有个公网地址&#xff0c;含有用户名和密码&#xff0c;保存好&#xff0c;然后通过公网地址打开一个网页&#xff0c;绑定自己注册…...

Flink 支持三种时间语义

在 Apache Flink 中&#xff0c;时间在流处理中是一个重要的概念&#xff0c;而时间语义则用于定义事件发生的时间。Flink 支持三种时间语义&#xff0c;分别是&#xff1a; Processing Time&#xff08;处理时间&#xff09;&#xff1a; 以机器的系统时间为基准&#xff0c;…...

【大话Presto 】- 核心概念

文章目录 前言Operator Model And Iterator Model系统组成Connector数据模型查询执行模型StatementStageTaskSplitDriverOperatorExchangePipeLine 总结 前言 Presto&#xff08;PrestoDB&#xff09;是一个FaceBook开源的分布式MPP SQL引擎&#xff0c;旨在处理大规模数据的查…...

阎良区公益创投之“小飞机大梦想” 航模DIY主题活动

创造是人类探索迈出的第一步&#xff0c;科学是开启奇妙世界的金钥匙。为进一步提升“未来星”对科技知识的兴趣&#xff0c;培养他们的科学创新精神&#xff0c;11月16日&#xff0c;阎良区社会组织公益创投——“未来星”助力乡村留守儿童成长计划项目在阎良区聚宝小学开展“…...

springBoot集成websocket实时消息推送

springBoot集成websocket实时消息推送 WebSocket是一种在Web应用程序中实现双向通信的协议。它允许在客户端和服务器之间建立持久性的连接&#xff0c;并支持双向数据传输&#xff0c;实现了实时、低延迟的通信。 &#x1f4cd;常见的消息推送方法 WebSocket&#xff1a;通过使…...

web:[BUUCTF 2018]Online Tool

题目 打开页面显示如下&#xff0c;进行代码审计 上述代码主要功能是接收‘host’参数&#xff0c;后使用nmap扫描主机端口 首先检查是否存在HTTP_X_FORWARDED_FOR头&#xff0c;若存在&#xff0c;将值赋值给EMOTE_ADDR,是为了跟踪用户真实的IP地址 后用检查get‘host’是否…...

决策树的Boosting策略是什么

在决策树的Boosting策略中&#xff0c;最常见的算法是梯度提升决策树&#xff08;Gradient Boosting Decision Trees&#xff0c;简称GBDT&#xff09;。GBDT是一种集成学习方法&#xff0c;通过串行训练多个决策树&#xff0c;并根据前一个树的预测结果来调整下一个树的训练目…...

SQL Server中substring的用法

SQL Server中substring的用法 SQL中的substring函数是用来截取一个栏位资料中的其中一部分。 例如&#xff0c;我们需要将字符串’abdcsef’中的‘abd’给提取出来&#xff0c;则可用substring 来实现&#xff1a; select substring(abdcsef,1,3)结果为 abd括号中数字’1’表…...

vscode设置latex

vscode配置latex 1.安装vscode,并添加环境变量路径 2.安装latex,bin文件夹添加到环境变量路径 3.vscode安装插件 4.vscode->文件->首选项->显示配置内容->setting.json文件&#xff0c;查看其位置目录&#xff0c;通过我的电脑找到此文件&#xff08;不要使用v…...

Django模板层

模板之变量 所有的数据类型都可以在模板中使用 render(request, index.html, context{}) render(request, index.html, contextlocals()) """在模板中使用变量的时候&#xff0c;用的是字典的key值&#xff0c;key值value值一般保持一致"""详细…...

TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt

一、换内存&#xff0c;拆闪存&#xff1a; 1、先原机开机试试是否功能正常&#xff1b; 2、拆机&#xff0c;比较难拆&#xff0c;容易坏外壳&#xff1b; 3、找到内存和闪存&#xff0c;用胶带把边上的小元件&#xff0c;电阻都贴好&#xff1b; 4、加助焊油&#xff0c;用风…...

websocket详解

一、什么是Websocket WebSocket 是一种在单个 TCP 连接上进行 全双工 通信的协议&#xff0c;它可以让客户端和服务器之间进行实时的双向通信。 WebSocket 使用一个长连接&#xff0c;在客户端和服务器之间保持持久的连接&#xff0c;从而可以实时地发送和接收数据。 在 Web…...

可以免费使用的设计素材网站分享

UI设计师最怕什么&#xff1f; 没有创意&#xff0c;没有灵感&#xff0c;没有思路&#xff01; 在哪里可以得到idea&#xff1f;别担心&#xff0c;往下看&#xff01; 你知道网络有多大&#xff0c;你想要什么吗&#xff1f;今天&#xff0c;我想和大家分享一些宝藏网页设…...

workman使用手册1.0

workman官网地址&#xff1a;高性能PHP应用容器 workerman 1&#xff1a;把workman项目放到linux服务器后&#xff0c;需要启动你的php文件&#xff0c;才可以使用 定位到项目根目录&#xff1a;例&#xff1a;cd /mnt/workman 启动代码&#xff1a;php outin.php start -d 停…...

Cesium深入浅出之自定义材质

引子 做为一名技术宅却没有能拿得出手的技术无疑是最可悲的事情。三年前&#xff0c;当我第一次接触Cesium的时候就被它强大和炫丽所折服&#xff0c;最关键的是它还是开源的。以前我一直是机械地敲着业务代码&#xff0c;好像计算机程序就只能干这点事情一样&#xff0c;而 C…...

Appium移动自动化测试--安装Appium

Appium 自动化测试是很早之前就想学习和研究的技术了&#xff0c;可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流&#xff0c;如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的&#xff1a;编程语…...

前端学习笔记--ES6

修正 ES6是ECMA为JavaScript制定的第6个标准版本&#xff0c;相关历史可查看此章节《ES6-ECMAScript6简介》。 标准委员会最终决定&#xff0c;标准在每年6月正式发布并作为当年的正式版本&#xff0c;接下来的时间里就在此版本的基础上进行改动&#xff0c;直到下一年6月草案…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...