多重图:含有重边的图
d + ( v ) d^+(v) d+(v):出度
支撑子图: G ′ G' G′是 G G G的子图,且满足 V ′ = V V'=V V′=V
导出子图: G ′ G' G′是 G G G的子图, E ′ E' E′包含 G G G在 V ′ V' V′中所有的边
G 1 ⊕ G 2 = ( V 1 ∪ V 2 , E 1 ⊕ E 2 ) G_1\oplus G_2=(V_1\cup V_2,E_1\oplus E_2) G1⊕G2=(V1∪V2,E1⊕E2)
G G G的补图 G ‾ \overline{G} G: K n − G K_n-G Kn−G
点v的直接后继集: Γ + ( v ) = { u ∣ ( v , u ) ∈ E } \Gamma^+(v)=\{u|(v,u)\in E\} Γ+(v)={u∣(v,u)∈E}
图同构的必要条件: ∣ V 1 ∣ = ∣ V 2 ∣ ∣ E 1 ∣ = ∣ E 2 ∣ |V_1|=|V_2|\;|E_1|=|E_2| ∣V1∣=∣V2∣∣E1∣=∣E2∣ 结点度的非增序列相同 存在同构的导出子图
1.邻接矩阵
2.权矩阵
3.关联矩阵
有向图:
b i j = { 1 e j = ( v i , v k ) ∈ E − 1 e j = ( v k , v i ) ∈ E 0 d e f a u l t b_{ij}=\left\{\begin{matrix} 1 & e_j=(v_i,v_k)\in E\\ -1 & e_j=(v_k,v_i)\in E\\ 0 & default \end{matrix}\right. bij=⎩⎨⎧1−10ej=(vi,vk)∈Eej=(vk,vi)∈Edefault
无向图:
b i j = { 1 e j = ( v i , v k ) o r ( v k , v i ) ∈ E 0 d e f a u l t b_{ij}=\left\{\begin{matrix} 1 & e_j=(v_i,v_k)\;or\;(v_k,v_i)\in E\\ 0 & default \end{matrix}\right. bij={10ej=(vi,vk)or(vk,vi)∈Edefault
4.边列表
5.正向表:使用以下方法表示E={(1,2),(1,3),(1,4),(4,2),(4,4),(6,4)}
[ v 1 v 2 v 3 v 4 v e n d 1 4 6 7 7 2 3 4 2 4 4 ] \begin{bmatrix} v_1 & v_2 & v_3 & v_4 & v_{end} & \\ 1 & 4 & 6 & 7 & 7 & \\ 2 & 3 & 4 & 2 & 4 & 4 \end{bmatrix} ⎣⎡v112v243v364v472vend744⎦⎤
6.逆向表
7.邻接表:使用链表存储一个节点的直接后继集
简单有向道路/回路:边不重复
初级有向道路/回路:点不重复
有向图的连通性:先转换为无向图,然后判断连通性
Warshall算法
P=A;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
P[j][k]=P[j][k]|(P[j][i]&P[i][k]);
无向连通图 G G G存在欧拉回路的充要条件是 G G G中结点的度都是偶数
充分性证明:每次构造出一条回路,并删去回路上的边,将构造出的回路取并集
有向连通图 G G G中各结点正负度相同,则存在有向欧拉回路
设 G G G中有k个度为奇数的点,则 E E E可以划分为 k 2 \frac{k}{2} 2k条简单道路
定理:对于简单图 G G G中任意两点 v i , v j v_i,v_j vi,vj,有 d ( v i ) + d ( v j ) ≥ n − 1 d(v_i)+d(v_j)\geq n-1 d(vi)+d(vj)≥n−1则 G G G中存在哈密顿道路
证明:
(1) G G G是连通图:若存在两个连通支,每个连通支中取一点,考虑度数和,矛盾
(2) G G G存在Hamilton道路
设 ( v i 1 . . . v i l ) (v_{i1}...v_{il}) (vi1...vil)是一条极长的初级道路,则 v i 1 v_{i1} vi1与 v i l v_{il} vil所有邻点都在道路上,若 l < n l
推论:对于简单图 G G G中任意两点 v i , v j v_i,v_j vi,vj,有 d ( v i ) + d ( v j ) ≥ n d(v_i)+d(v_j)\geq n d(vi)+d(vj)≥n则 G G G中存在哈密顿回路
证明:由定理, G G G有H道路,设端点为 v 1 , v n v_1,v_n v1,vn,若 G G G不存在 H H H回路,一定有 d ( v 1 ) + d ( v n ) ≤ n − 1 d(v_1)+d(v_n)\leq n-1 d(v1)+d(vn)≤n−1
引理: G G G是简单图, v i , v j v_i,v_j vi,vj是不相邻的节点,且满足 d ( v i ) + d ( v j ) ≥ n d(v_i)+d(v_j)\geq n d(vi)+d(vj)≥n,则 G G G存在H回路的充要条件是 G + ( v i , v j ) G+(v_i,v_j) G+(vi,vj)有H回路
证明:假设不存在,则 G + ( v i , v j ) G+(v_i,v_j) G+(vi,vj)的H回路一定过 ( v i , v j ) (v_i,v_j) (vi,vj),删去后存在H道路,又有 d ( v i ) + d ( v j ) < n d(v_i)+d(v_j)
闭合图 C ( G ) C(G) C(G):简单图 G G G中不相邻的点 v i , v j v_i,v_j vi,vj,若 d ( v i ) + d ( v j ) ≥ n d(v_i)+d(v_j)\geq n d(vi)+d(vj)≥n,令 G ′ = G + ( v i , v j ) G'=G+(v_i,v_j) G′=G+(vi,vj),直到不可做为止,闭合图唯一
定理:简单图 G G G存在H回路的充要条件是 C ( G ) C(G) C(G)存在H回路
寻找权值最小的H回路
分支定界法
1.对边权值排序,在边权序列中选择n条边,判断是否构成H回路
2.删除当前待选边集中的最长边,加入后面第一条待选边,剪支
3.回溯
便宜算法(近似算法)
开始时,T是结点1的自环
每次选择不在环上与环最近的一个点,拆分掉相邻的两条边中较短的一条,将该点和与环相连的边加入到环上
重复直到包含所有节点
设旅行商问题最佳解释 O n O_n On,便宜算法的解是 T n T_n Tn,则 T n O n < 2 \frac{T_n}{O_n}<2 OnTn<2
//dfs_spfa
bool dfs_spfa(int x)
{
vis[x]=1;
for(int t=head[x];t;t=data[t].ne)
{
int y=data[t].b;
if(dis[y]>dis[x]+data[t].c)
{
dis[y]=dis[x]+data[t].c;
if(vis[y]||dfs_spfa(y))
{
vis[x]=0;
return 1;//存在负权圈
}
}
}
vis[x]=0;
return 0;
}
void bfs_spfa()
{
queueq;
memset(dis,0x7fffffff,sizeof dis);
memset(inq,0,sizeof inq);
q.push_back(S);dis[S]=0;inq[S]=1;
while(!q.empty())
{
int x=q.front();q.pop();inq[x]=0;
for(int t=head[x];t;t=data[t].ne){
int y=data[t].b;
if(dis[x]+data[t].c
在负权边较少的情况下,忽略负权边跑dijkstra,通过dijkstra算法给出跑Bellman-Ford算法的结点序
PT图:结点表示工序,边表示依赖关系,边 e i j e_{ij} eij的权 w i j w_{ij} wij表示工序i的时长
设 v 1 . . . v n v_1...v_n v1...vn是拓扑排序后的点的顺序,不妨设 v 1 v_1 v1是唯一入度为0的点, v n v_n vn是唯一出度为0的点
最早启动时间: v 1 v_1 v1到 v i v_i vi的最长路
最晚启动时间:工程所用时间 - v i v_i vi到 v n v_n vn的最长路
PERT图:有向边表示工序,权值表示所需时间,若工序 e i e_i ei完成 e j e_j ej才开始,令 v k v_k vk是 e i e_i ei的终点, e j e_j ej的起点
最早启动时间: v 1 v_1 v1到 v i v_i vi的最长路
最晚启动时间:工程所用时间- v j v_j vj到 v n v_n vn的最长路- w ( i , j ) w(i,j) w(i,j)
正权连通图G中,求从某个节点出发经过每条边至少一次最后返回出发点的最短回路
定理:L是无向连通图G最佳邮路的充要条件是
1.G的每条边至多重复一次
2.G的任意一个回路上,重复边长度之和不超过该回路长度的一半
无向图中邮路问题:
找出所有度数为奇数的点,求出两两之间的最短路,然后求出最小权匹配
给定图 G G G的一棵树 T T T,称 G − T G-T G−T为余树,记作 T ‾ \overline T T
基本关联矩阵:有向图连通 G = ( V , E ) G=(V,E) G=(V,E)的关联矩阵 B B B中划去任意节点 v k v_k vk所对应的行,得到的 ( n − 1 ) × m (n-1)\times m (n−1)×m的矩阵 B k B_k Bk称为 G G G的一个基本关联矩阵
定理:设 B B B是有向连通图 G G G的关联矩阵,则 r a n k B = n − 1 rank \; B=n-1 rankB=n−1
证明:只需证 r a n k B ≥ n − 1 rank \;B\geq n-1 rankB≥n−1,设B中最少的线性相关的行数为l,不妨设为第 i 1 . . . i l i_1...i_l i1...il行,则有 k 1 r i 1 + k 2 r i 2 + . . . k l r i l = 0 k_1r_{i_1}+k_2r_{i_2}+...k_lr_{i_l}=0 k1ri1+k2ri2+...klril=0,其中 k i ≠ 0 k_i \not =0 ki=0,在矩阵B中,每列有两个非零元,则这 l l l个向量 r i 1 . . . r i l r_{i_1}...r_{i_l} ri1...ril中每行至多两个非零元,若存在一行只有一个非零元,则矛盾,现在将B中行行交换,列列交换,则使这 l l l行交换到前 l l l行,则将每列都有的两个非零元交换到前 r r r列,则矩阵B变为
B ′ = [ P l × r 0 0 Q ( n − l ) × ( m − r ) ] B'=\begin{bmatrix} P_{l\times r} & 0\\ 0 & Q_{(n-l)\times(m-r)} \end{bmatrix} B′=[Pl×r00Q(n−l)×(m−r)]
若 n ≠ l n\not= l n=l,则图G为非连通图,矛盾
推论: n n n个节点树 T T T的基本关联矩阵的秩是 n − 1 n-1 n−1
定理:设 B k B_k Bk是连通图 G G G的基本关联矩阵, C C C是 G G G中的一个回路,则 G G G中各边所对应 B k B_k Bk的各列线性相关
定理:令 B k B_k Bk是有向连通图 G G G的基本关联矩阵,那么 B k B_k Bk的任意 n − 1 n-1 n−1阶子阵行列式非零的充要条件是其各列所对应的边构成 G G G的一棵支撑树
定理:设 B 0 B_0 B0是有向图 G G G关联矩阵 B B B的任意一个 k k k阶子方阵,则 d e t ( B 0 ) = 0 / 1 / − 1 det(B_0)=0/1/-1 det(B0)=0/1/−1
Binet-Cauchy Theory:已知矩阵 A = ( a i j ) m × n A=(a_{ij})_{m\times n} A=(aij)m×n B = ( b i j ) n × m B=(b_{ij})_{n\times m} B=(bij)n×m 满足 m ≤ n m\leq n m≤n 则 ∣ A B ∣ = ∑ i ∣ A i ∣ ∣ B i ∣ |AB|=\sum_{i}|A_{i}||B_{i}| ∣AB∣=∑i∣Ai∣∣Bi∣ ,其中 A i B i A_i\;B_i AiBi都是m阶行列式, A i A_i Ai是从 A A A中取不同的 m m m列所成的行列式, B i B_i Bi同理
定理:设 B k B_k Bk是有向连通图 G = ( V , E ) G=(V,E) G=(V,E)某一基本关联矩阵,则 G G G的不同树的数目是 d e t ( B k B k T ) det(B_kB_k^T) det(BkBkT)
无向图生成树计数:对每边任给一方向即可
基尔霍夫定理:设无向图的Laplace矩阵(度矩阵-邻接矩阵)是Q,则 Q ∗ Q^* Q∗(Q中去掉任一第i行第i列)的行列式的值即为生出树个数
有根树的计数:
任何以 v 0 v_0 v0为根的有根树的基本关联矩阵 B 0 B_0 B0中一定是每行每列都只有一个-1元素
经过点和边的重编号,可以将 B 0 B_0 B0化为上三角矩阵,且对角线上都是-1
将 B 0 B_0 B0中元素1变为0,行列式的值不变,若T不是根树,则行列式的值为0,因此有定理:有向连通图 G G G中以 v k v_k vk为根的根树数目是 d e t ( B → k B k T ) det(\overrightarrow B_k B_k^T) det(BkBkT),其中 B → k \overrightarrow B_k Bk为 B k B_k Bk中所有1元素变为0
回路个数:最多为 2 m − n + 1 − 1 2^{m-n+1}-1 2m−n+1−1个不同的初级回路
给定回路C的参考方向,与回路参考方向相同的边称作正向边,否则称作反向边
完全回路矩阵:C
C i j = { 1 e j ∈ C i 且 为 正 向 边 − 1 e j ∈ C i 且 为 反 向 边 0 d e f a u l t C_{ij}=\left\{\begin{matrix} 1 & e_j\in C_i 且为正向边\\ -1 & e_j\in C_i且为反向边\\ 0 & default \end{matrix}\right. Cij=⎩⎨⎧1−10ej∈Ci且为正向边ej∈Ci且为反向边default
基本回路矩阵: C f ( m − n + 1 ) ∗ m C_{f(m-n+1)*m} Cf(m−n+1)∗m
考虑每条余数边与支撑树上的若干条边构成唯一回路,参考方向为余数边的方向
易知, r a n k C f = m − n + 1 rank \;\;C_f =m-n+1 rankCf=m−n+1
将余数边放在前面,且次序与它所构成的回路一致,则可以写成
C f = [ I C f 12 ] C_f=\begin{bmatrix} I & C_{f12} \end{bmatrix} Cf=[ICf12]
定理:设有向连通图 G G G的关联矩阵 B B B与完全回路矩阵 C e C_e Ce的边次序一致时,恒有 B C e T = 0 BC_e^T=0 BCeT=0
定理:完全回路矩阵 C e C_e Ce的秩是m-n+1
证明:易知 r a n d C e ≥ m − n + 1 rand\;C_e\geq m-n+1 randCe≥m−n+1,由Sylvester定理, r a n d B + r a n d C e ≤ m rand\;B+rand\;C_e\leq m randB+randCe≤m ,得证
定义:由连通图G中m-n+1个互相独立的回路组成的矩阵,称为G的回路矩阵,记为C
性质: C = P C f C=PC_f C=PCf其中P为可逆矩阵
定理:连通图G的回路矩阵C任一m-n+1阶子阵行列式非零,当且仅当这些列对应了一棵余树
定理:若有向连通图 G = ( V , E ) G=(V,E) G=(V,E)的基本关联矩阵 B k B_k Bk与基本回路矩阵 C f C_f Cf的边顺序一致,设 C f = ( I , C f 12 ) C_f=(I,C_{f12}) Cf=(I,Cf12), B k = ( B 11 , B 12 ) B_k=(B_{11},B_{12}) Bk=(B11,B12),则有 C f 12 = − B 11 T B 12 T ( − 1 ) C_{f12}=-B_{11}^T{B_{12}^T}^{(-1)} Cf12=−B11TB12T(−1)
定义:设S是有向图G=(V,E)的边子集,若同时满足:G’=(V,E-S)比G的连通支数多1,对任意 S ′ ⊂ S S'\subset S S′⊂S,G与G’’=(V,E-S’)的连通支数相同,则称S是G的一个割集
完全割集矩阵: S e S_e Se
S i j = { 1 e j ∈ S i 且 方 向 一 致 − 1 e j ∈ S i 且 方 向 相 反 0 d e f a u l t S_{ij}=\left\{\begin{matrix} 1 & e_j\in S_i 且方向一致\\ -1 & e_j\in S_i且方向相反\\ 0 & default \end{matrix}\right. Sij=⎩⎨⎧1−10ej∈Si且方向一致ej∈Si且方向相反default
基本割集矩阵: S f S_f Sf
考虑每条树边与若干余树边构成的的割集
易知, r a n d S f = n − 1 rand\;S_f=n-1 randSf=n−1
将余数边对应的列放在前,树边对应的列放在后且与割集顺序一致
S f = [ S f 11 I ] S_f=\begin{bmatrix} S_{f11} & I \end{bmatrix} Sf=[Sf11I]
定理:设有向连通图 G G G的完全割集矩阵 S e S_e Se与完全回路矩阵 C e C_e Ce的边次序一致时,恒有 S e C e T = 0 S_eC_e^T=0 SeCeT=0
定理:完全割集矩阵 S e S_e Se的秩是n-1
定理:割集矩阵S的任一n-1阶子阵行列式非零,当且仅当这些列对应G的某棵树
定理:若有向连通图 G = ( V , E ) G=(V,E) G=(V,E)的基本割集矩阵 S f S_f Sf与基本回路矩阵 C f C_f Cf的边顺序一致,设 C f = ( I , C f 12 ) C_f=(I,C_{f12}) Cf=(I,Cf12), S f = ( S f 11 , I ) S_f=(S_{f11},I) Sf=(Sf11,I),则有 S f 11 = − C f 12 T S_{f11}=-C_{f12}^T Sf11=−Cf12T
平面图:若能把图G画在一个平面上,使任何两条边不相交,则称G为可平面图
域:设G是一个平面图,由它的若干边所构成的一个区域,区域内不含任何结点及边
域的相邻:两个域之间存在公共边界
欧拉公式: V + F = E + 2 V+F=E+2 V+F=E+2
对于拥有k个连通支的情况,有 V − E + F = k + 1 V-E+F=k+1 V−E+F=k+1
定理:设平面图没有割边,且每个域的边界数至少为 t t t,则 m ≤ t ( n − 2 ) t − 2 m\leq \frac{t(n-2)}{t-2} m≤t−2t(n−2)
极大平面图:在任意两点之间加一条边一定会破坏图的平面性
极大平面图的性质:连通,不存在割边,每个域的边界数为3
定理: m = 3 n − 6 d = 2 n − 4 m=3n-6 \;\; d=2n-4 m=3n−6d=2n−4
推论:简单平面图 m ≤ 3 n − 6 d ≤ 2 n − 4 m\leq 3n-6\;\;d\leq 2n-4 m≤3n−6d≤2n−4
非平面图:
点数最少非平面图 K 5 K_5 K5
边数最少的非平面图 K 3 , 3 K_{3,3} K3,3
证明:图中没有 K 3 K_3 K3子图,则 m ≤ 2 n − 4 m\leq 2n-4 m≤2n−4
设 K 5 K_5 K5为 K ( 1 ) K^{(1)} K(1)图, K 3 , 3 K_{3,3} K3,3为 K ( 2 ) K^{(2)} K(2)图,在 K ( 1 ) K^{(1)} K(1)型图与 K ( 2 ) K^{(2)} K(2)型图的边上加一些点,称为 K K K型图
Kuratowski定理:图可平面化 ⇔ \Leftrightarrow ⇔图不存在K型子图
对图G的每个连通支分别预处理和检测
预处理:删除割点,化为多个双联通分量,移去自环,用边代替度为2的点,移去重边
简单判断: n < 5 n<5 n<5 m < 9 m<9 m<9 m > 3 n − 6 m>3n-6 m>3n−6
注意一条边在域中时对偶图中有自环
性质:对平面图G,对偶图G*存在且唯一
性质:对偶图G*一定是连通图
性质:平面连通图的对偶图的对偶图是原图
注意:对偶图的对偶图不一定为原图,且对偶两次后点数边数可能发生变化(孤立点)
性质:设C是平面图G的初级回路,则对偶后为一割集
性质:G有对偶图当且仅当G可平面
四色猜想:在平面图上对域使用四种颜色进行着色,存在一种着色方案使得无相邻两个域使用同种颜色着色
定理:任意简单平面图都可以进行节点五着色
证明:数学归纳法,平面图一定存在一个节点度数<6
定理:若存在哈密顿回路,则四色问题成立
3-正则平面图:每个节点的度都是3
定理:若任何一个3-正则平面图的域可四着色,则任意平面图的域也可以四着色
任意平面图$\Rightarrow$3-正则平面图:将度数大于3的节点变成环,然后将每条边与环上点相连
G的点着色数:给定图G,满足相邻节点颜色不同的最少色数,记作 γ ( G ) \gamma(G) γ(G)
G的边着色数:给定图G,满足相邻边颜色不同的最少色数,记作 β ( G ) \beta(G) β(G)
易知,将边用点代替并在相邻边对应的点之间连边, β ( G ) \beta(G) β(G)可以转换为 γ ( G ′ ) \gamma(G') γ(G′)
定理:非空图 G G G, γ ( G ) = 2 \gamma(G)=2 γ(G)=2当且仅当G没有奇回路
定理:平面连通图域可二着色当且仅当连通图G有欧拉回路
定理:对于任意一个图G, γ ( G ) ≤ d 0 + 1 \gamma(G)\leq d_0+1 γ(G)≤d0+1, d 0 = max d ( v i ) d_0=\max d(v_i) d0=maxd(vi)
定理:M是G的最大匹配当且仅当G中不存在关于M的可增广道路
Hungary算法:
输入为二分图 G=(X,Y,E);
结点标记
0:表示尚未搜索
1:表示饱和点
2:表示无法扩大匹配的点(仅对X中的结点)
1.任给初始匹配M,给饱和点“1”标记
2.判断X各结点是否都已有非零标记
是, M是最大匹配,结束
否,找一个“0”标记点x0∈X, 开始本次搜索
令U←{x0},为本次搜索的X结点集
令V←Φ,为本次已检查过的Y结点集
3.判断集合U的邻接点集Γ(U)=V?
是,x0无扩大匹配,标x0为“2”,转2
否,在Γ(U)-V中找一点yi,判断yi是否标记“1”(即饱和点)
饱和点:存在xi使得边(xi,yi)∈M,令U←U+{xi},V←V+{yi},转3
非饱和点:存在从x0到yj的可增广路P,令M←M xor P,给x0,yi标记1,转2
bool path(int x)
{
for(int t=head[x];t;t=da[t].ne)
{
int y=da[t].b;
if(!flag[y])
{
flag[y]=1;
if(!closed[y]||path(closed[y]))
{closed[y]=x;return true;}
}
}
return false;
}
int hungery()
{
memset(closed,0,sizeof closed);
int ans=0;
for(int i=1;i<=n;i++)
{
memset(flag,0,sizeof(flag));
if(path(i))ans++;
}
return ans;
}
Hall定理:在二分图G=(X,Y,E)中,X到Y存在完全匹配的充要条件是对于X的任意子集A,恒有|Γ(A)|≥|A|
推论:若二分图G=(X,Y,E)的每个结点xi∈X,都有d(xi)≥k,每个结点yj∈Y,都有d(yj)≤k,则X到Y存在完全匹配
定理:在二分图中, X X X到 Y Y Y的最大匹配数是 ∣ X ∣ − δ ( G ) |X|-\delta(G) ∣X∣−δ(G),其中 δ ( G ) = max A ⊆ X ∣ A ∣ − ∣ Γ ( A ) ∣ \delta(G)=\max_{A\subseteq X}|A|-|\Gamma(A)| δ(G)=maxA⊆X∣A∣−∣Γ(A)∣
将二分图中边用邻接矩阵表示,记作A
覆盖:适当地选取A的某些行和列,使这些行和列能盖住A的全部非零元,称为A的覆盖
最小覆盖:如果选取最少的行与列就能覆盖A的全部非零元,则称这样的覆盖为最小覆盖
定理:二分图的最大匹配数,与其邻接矩阵的最小覆盖数s相等
最佳匹配:如果边权是非负实数,而且存在多个完全匹配,那么其中权和最大或最小的完全匹配就叫最佳匹配
最大权匹配算法:已知利润矩阵C
1.在C的每行中选一最大值作为本行的界值l(xi),每列的界值l(yj)=0,构造矩阵B=(bij)n×n,其中bij=l(xi)+l(yj)-cij
2.在B中对0元素进行最小覆盖,覆盖数为r
若r=n,转4
在未覆盖的元素中选最小非零元δ
若xi行,yj列均已覆盖,则bij←bij+δ
若xi行,yj列均未覆盖,则bij←bij-δ
3.修改界值
若xi行没覆盖,则l(xi)←l(xi)-δ
若yj列已覆盖,则l(yj)←l(yj)+δ
删除覆盖标记,转2
4.sum(l(xi)+l(yj))即为最大权,结束
Edmonds-Karp算法 O(nm^2)
给S标号(-1,inf)
按先标号先检查的顺序,选择标号最早但尚未检查过的节点u,若所有节点都检查过,转line 6否则对u所有未标邻点v,若能通过正向边或反向边标号,则标号
若T得到标号,反向增广,否则转line 3
重新开始标号,转line 2
结束
定理: 设G是至少有3个结点的连通图,则下述性质等价
·G是一个块(无割点)
·G的任何两结点属于某一初级回路
·G的任何一个结点和任何一条边同属于某一初级回路
·G的任何两条边属于某一初级回路
·给定两个结点u,v和一条边e,存在一条包含e的初级道路 P u v P_{uv} Puv
·对G的任意三个不同结点(及其顺序),存在一条包含它们的初级道路
·对G的任意三个不同结点(及其顺序),存在一条只包含其中两点而不含第三点
定义:连通图G在移去若干结点之后至少分为两个连通子图或剩下一个孤立结点,则这些结点的集合称为G的一个点断集或断集,记为A,称 κ ( G ) = min ∣ A ∣ \kappa(G)=\min|A| κ(G)=min∣A∣为断量
定义:如果连通图G移去若干条边之后变为非连通的,则这些边的集合称为G的一个边断集,记为B,并称 λ ( G ) = min ∣ B ∣ \lambda(G)=\min{|B|} λ(G)=min∣B∣为边断量
定理:连通图G中,有 κ ( G ) ≤ λ ( G ) ≤ δ ( G ) \kappa(G)\leq\lambda(G)\leq\delta(G) κ(G)≤λ(G)≤δ(G),其中 δ ( G ) \delta(G) δ(G)是节点的最小度
定义:G是连通图,任给定 k ≥ 1 k\geq 1 k≥1,当 κ ( G ) ≥ k \kappa(G)\geq k κ(G)≥k时,称G是k连通图(最少要去掉k个点才能不连通),类似地, λ ( G ) ≥ k λ(G) ≥k λ(G)≥k时,称为k边连通图
定理:简单图G中有 κ ( G ) ≤ ⌈ 2 m n ⌉ \kappa(G)\leq \left\lceil\frac{2m}{n}\right\rceil κ(G)≤⌈n2m⌉
对于一个k连通简单图,如果令f(k,n)表示其边数目m,不等式 f ( k , n ) ≥ ⌈ k n 2 ⌉ f(k,n)≥\left\lceil\frac{kn}{2}\right\rceil f(k,n)≥⌈2kn⌉
取等条件:哈拉里构造方法,设节点为 v 0 . . . v n − 1 v_0...v_n-1 v0...vn−1
·k=2r,若 i − j ≤ r ( m o d n ) i-j\leq r(mod \;\;n) i−j≤r(modn),则 ( v i , v j ) ∈ E (v_i,v_j)\in E (vi,vj)∈E
·k=2r+1且n=2l,若 i − j ≤ r ( m o d n ) i-j\leq r(mod\;\;n) i−j≤r(modn),则 ( v i , v j ) ∈ E (v_i,v_j)\in E (vi,vj)∈E,若 i − j = l ( m o d n ) i-j=l(mod\;\;n) i−j=l(modn),则 ( v i , v j ) ∈ E (v_i,v_j)\in E (vi,vj)∈E
·k=2r+1且n=2l+1,若 i − j ≤ r ( m o d n ) i-j\leq r(mod\;\;n) i−j≤r(modn),则 ( v i , v j ) ∈ E (v_i,v_j)\in E (vi,vj)∈E,若 i − j = l + 1 ( m o d n ) i-j=l+1(mod\;\;n) i−j=l+1(modn),则 ( v i , v j ) ∈ E (v_i,v_j)\in E (vi,vj)∈E,对剩余的点 v t v_t vt,令 v t v_t vt与满足 t − j = l ( m o d n ) t-j=l(mod\;\;n) t−j=l(modn)的某点 v j v_j vj相邻
##代数结构
设 R R R为等价关系,则 a ‾ = { x ∈ A ∣ x R a } \overline{a}=\{x\in A|x R a\} a={x∈A∣xRa}
商集: A / R = A ‾ = { a ‾ ∣ a ∈ A } A/R=\overline{A}=\{ \overline{a}|a\in A\} A/R=A={a∣a∈A},其中 a ‾ \overline{a} a表示a所在的等价类
定理:设f是 A → B A\rightarrow B A→B的一个满射,则f可以确定A的一个等价关系
定理:设f是 A → B A\rightarrow B A→B的满射,则存在唯一的一个双射 f ∗ : A / R → B f^*:A/R\rightarrow B f∗:A/R→B,使得 f = f ∗ γ f=f^*\gamma f=f∗γ,其中 R R R是由f确定的等价关系, γ \gamma γ是 A → A / R A\rightarrow A/R A→A/R的自然映射
定义:集合A和运算 f 1 , f 2 , … f s f_1 ,f_2 ,…f_s f1,f2,…fs所组成的系统,称为一个代数系统(或一个代数结构),简称为一个代数,用记号 ( A , f 1 , f 2 , … , f s ) (A,f_1 ,f_2 ,…,f_s ) (A,f1,f2,…,fs)表示,当A是有限集合时,也称该系统是有限代数系统
定义:在代数系统 ( X , ⋅ ) (X,·) (X,⋅)中,如果对所有的 x i , x j ∈ X x_i ,x_j \in X xi,xj∈X,有 x i ⋅ x j = x j ⋅ x i x_i·x_j =x_j ·x_i xi⋅xj=xj⋅xi成立,则称代数系统 ( X , ⋅ ) (X,·) (X,⋅)对于二元运算·适合交换律
定义:如果对任意 x i , x j , x k ∈ X x_i ,x_j ,x_k \in X xi,xj,xk∈X, ( x i ⋅ x j ) ⋅ x k = x i ⋅ ( x j ⋅ x k ) (x_i ·x_j )·x_k =x_i ·(x_j ·x_k ) (xi⋅xj)⋅xk=xi⋅(xj⋅xk)成立,则称代数系统 ( X , ⋅ ) (X,·) (X,⋅)对于二元运算·适合结合律
如果 ( X , ⋅ ) (X,·) (X,⋅)对于·适合结合律,那么也一定适合多个元素的广义结合律,可以在表达式中省略括号,并定义x的n次幂 ( n ≥ 1 ) (n\geq 1) (n≥1)
定义:给定一个代数系统 V = ( X , ⋅ ) V=(X,·) V=(X,⋅),如果存在一个元素 e L e_L eL(或者 e R e_R eR)属于X,使得对于任意元素 x ∈ X x \in X x∈X,有 e L ⋅ x = x e_L ·x=x eL⋅x=x(或 x ⋅ e R = x x·e_R =x x⋅eR=x),称 e L e_L eL(或 e R e_R eR)是X上关于运算·的一个左(或右)单位元,若e既是左单位元又是右单位元,则称之为单位元
定理:若代数系统 V = ( X , ⋅ ) V=(X,·) V=(X,⋅)有左单位元 e L e_L eL,又有右单位元 e R e_R eR,则 e = e L = e R e=e_L =e_R e=eL=eR是X唯一单位元
定义:设 V = ( X , ⋅ ) V=(X,·) V=(X,⋅)是有单位元e的代数系统,对于 x ∈ X x \in X x∈X,若存在一个元素 x ′ x' x′,使得 x ′ ⋅ x = e x'·x=e x′⋅x=e,则称x是左可逆的,并称 x ′ x' x′是x的一个左逆元,若存在 x ′ ′ ∈ X x'' \in X x′′∈X,使得 x ⋅ x ′ ′ = e x·x''=e x⋅x′′=e,则称x是右可逆的,并称 x ′ ′ x'' x′′是x的一个右逆元,若x既是左可逆又是右可逆的,则说x是可逆元
定理:设代数系统 V = ( X , ⋅ ) V=(X,·) V=(X,⋅)具有单位元e,且适合结合律,对于 x ∈ X x\in X x∈X,x有左逆元 x ′ x' x′,又有右逆元 x ′ ′ x'' x′′,则x有唯一的逆元 x − 1 = x ′ = x ′ ′ x^{-1} =x'=x'' x−1=x′=x′′,并且 ( x − 1 ) − 1 = x (x^{-1} )^{-1} =x (x−1)−1=x
定义: 设 V 1 = ( X , o 1 , o 2 , … , o r ) V_1 =(X,o_1 ,o_2 ,…,o_r ) V1=(X,o1,o2,…,or)和 V 2 = ( X , o 1 ′ , o 2 ′ , … , o r ′ ) V_2 =(X,o_1' ,o_2' ,…,o_r' ) V2=(X,o1′,o2′,…,or′)是两个代数系统, o i o_i oi和 o i ′ o_i' oi′都是 k i k_i ki元运算, k i k_i ki是正整数, i = 1 , 2 , … , r i=1,2,…,r i=1,2,…,r,则说代数系统 V 1 V_1 V1和 V 2 V_2 V2是同类型的
定义:设 ( X , ⋅ ) (X,·) (X,⋅)和 ( Y , ∗ ) (Y,*) (Y,∗)是两个同类型的代数系统, f : X → Y f:X→Y f:X→Y是一个双射。如果对任意元a,b属于X,恒有 f ( a ⋅ b ) = f ( a ) ∗ f ( b ) f(a·b)=f(a)*f(b) f(a⋅b)=f(a)∗f(b)则称f是 ( X , ⋅ ) (X,·) (X,⋅)到 ( Y , ∗ ) (Y,*) (Y,∗)的一个同构映射,并称 ( X , ⋅ ) (X,·) (X,⋅)与 ( Y , ∗ ) (Y,*) (Y,∗)同构,用 X ≌ Y X≌Y X≌Y表示
定义:若以上的f是一般映射,则称f是 ( X , ⋅ ) (X,·) (X,⋅)到 ( Y , ∗ ) (Y,*) (Y,∗)的一个同态映射, f ( X ) ⊆ Y f(X)\subseteq Y f(X)⊆Y
定义: 设 ( S , ⋅ ) (S,·) (S,⋅)是一个代数系统,R是S的一个非空子集,如果R在运算·下是封闭的,则称(R,·) 是 ( S , ⋅ ) (S,·) (S,⋅)的一个子代数系统或子代数
定理:设映射 f : X → Y f:X→Y f:X→Y是从代数系统 ( X , ⋅ ) (X,·) (X,⋅)到 ( Y , ∗ ) (Y,*) (Y,∗)的一个同态映射,则 ( f ( X ) , ∗ ) (f(X),*) (f(X),∗)是 ( Y , ∗ ) (Y,*) (Y,∗)的一个子代数,并称 ( f ( X ) , ∗ ) (f(X),*) (f(X),∗)是在f作用下 ( X , ⋅ ) (X,·) (X,⋅)的同态象
定义:设 f : X → Y f:X→Y f:X→Y是从代数系统 ( X , ⋅ ) (X,·) (X,⋅)到 ( Y , ∗ ) (Y,*) (Y,∗)的一个同态,如果f是单射,称f是单一同态,f是满射,称f是满同态,用X~Y表示,并称Y是X的一个同态象,当然如果f是双射,它就是同构
定理:给定代数系统 ( X , ⋅ ) (X,·) (X,⋅)和 ( Y , ∗ ) (Y,*) (Y,∗),其中·和*都是二元运算。设 f : X → Y f:X→Y f:X→Y是从代数系统 ( X , ⋅ ) (X,·) (X,⋅)到 ( Y , ∗ ) (Y,*) (Y,∗)的满同态,则如果·是可交换的或可结合的运算,则*也是可交换的或可结合的运算;若 ( X , ⋅ ) (X,·) (X,⋅)中的运算·具有单位元e,则 ( Y , ∗ ) (Y,*) (Y,∗)中运算*具有单位元f(e),对运算·,如果每一个元素 x ∈ X x \in X x∈X都有逆元 x − 1 x^{-1} x−1,则对运算*,每一个元素 f ( x ) ∈ Y f(x) \in Y f(x)∈Y都有逆元 f ( x − 1 ) f(x^{-1} ) f(x−1)
定义:代数系统 ( X , ⋅ ) (X,·) (X,⋅)上的同态映射 f : X → X f:X\rightarrow X f:X→X称为自同态,若f是同构映射,则称之为自同构
半群:满足结合律的代数系统
含幺半群(幺群):存在单位元的半群
交换幺群:满足交换律的幺群
循环幺群:设 ( M , ⋅ , e ) (M , · , e) (M,⋅,e)是一个幺群,若存在一个元素 g ∈ M g ∈ M g∈M,使得对任意 a ∈ M a ∈M a∈M,a都可以写成g的方幂形式,即 a = g m a=g^m a=gm(m是非负数),则称 ( M , ⋅ , e ) (M , · , e) (M,⋅,e)是一个循环幺群,g为生成元
定理:循环幺群是可交换幺群
子半群:设 ( S , ⋅ ) (S, ·) (S,⋅)是一个半群, T ⊆ S T ⊆ S T⊆S,在运算 · 的作用下如果T是封闭的,则称 ( T , ⋅ ) (T, ·) (T,⋅)是 ( S , ⋅ ) (S, ·) (S,⋅)的子半群
子幺群:设 ( M , ⋅ , e ) (M , · , e) (M,⋅,e)是一个幺群, T ⊆ M T ⊆ M T⊆M,在运算 · 的作用下,如果T是封闭的,且 e ∈ T e ∈ T e∈T,那么 ( T , ⋅ , e ) (T, · , e) (T,⋅,e)是 ( M , ⋅ , e ) (M , · , e) (M,⋅,e)的子幺群
群:设G是非空集合,· 是G上的二元运算,若代数系统 ( G , ⋅ ) (G, ·) (G,⋅)满足适合结合律,存在单位元,G中的元素都是可逆元,则称代数系统(G, ·)是一个群。
Abel群:若群G的二元运算 · 满足交换律,则称G是交换群,或者阿贝尔(Abel)群
定义:规定集合G的基数为群 ( G , ⋅ ) (G, ·) (G,⋅)的阶,当阶为某一整数时,该群为有限群;否则为无限群
Klein四元群:满足 x = x − 1 x=x^{-1} x=x−1
定理:如果幺群M中只有一部分元素可逆,那么M中所有可逆元素构成的子集G是一个群
定理:设半群 ( G , ⋅ ) (G, ·) (G,⋅)有一个左单位元(右单位元)e,且对每一个元 a ∈ G a ∈ G a∈G,都有左逆元(右逆元) a − 1 ∈ G a^{ -1} ∈ G a−1∈G,则G是群
定理:设 ( G , ⋅ ) (G, ·) (G,⋅)是半群,如果对G中任意两个元素 a , b a,b a,b, 从半群到方程 a x = b ax=b ax=b和 y a = b ya=b ya=b在G中有解,则G是一个群
定义:设a是G中的一个元素,若有正整数k存在,使 a k = e a^k = e ak=e,则满足 a k = e a^k = e ak=e的最小正整数k称为元素a的阶(或周期),记为 O < a > O O<a>,并称a是有限阶元素
定理:设a是G中一个r阶元素,k是正整数,则 a k = e a^k =e ak=e,当且仅当 r ∣ k r|k r∣k, O < a > = O < a − 1 > O=O O<a>=O<a−1>, r < = ∣ G ∣ r<=|G| r<=∣G∣
定理:H是群G的非空子集,则H是G的子群的充要条件:
定理:G的非空子集H是G的子群的充要条件是:对于任意的 a , b ∈ H a , b ∈ H a,b∈H,都有 a b − 1 ∈ H ab^{ -1} ∈ H ab−1∈H
循环群:若群G中存在一个元素a,使得G中的任一元素g,都可以表示成a的幂的形式,即 G = a k ∣ k ∈ Z G = { a_k | k ∈ Z } G=ak∣k∈Z,则称G是循环群,记作 < a > <a>,a称为G的生成元
定理:设 G = < a > G = G=<a>是循环群,循环群的子群H
定理:设G是n阶循环群,则对于n的每一个正因子d,G有且只有一个d阶子群
定理:设G是循环群 < a > <a>,a为生成元,若$O = ∞ , 则 G 与 ,则G与 ,则G与(Z,+) 同 构 ; 若 同构;若 同构;若O = n , 则 G 与 ,则G与 ,则G与(Z_n ,+)$同构
定理:设G是一个群, ( G ′ , ⋅ ) (G',·) (G′,⋅)是一个代数系统,若存在G到G’的双射f,且保持运算,即对任意的$a,b ∈ G , 有 ,有 ,有f(ab) =f(a)·f(b)$,则G’也是一个群
置换:当|A|=n时,A中的一个一一变换,也称为n元置换
置换群:由置换构成的群
S n S_n Sn:n!个n元置换的集合
n次对称群: S n S_n Sn对于置换乘法构成群,称为n次对称群
n元置换群:n次对称群的子群
轮换:置换 σ \sigma σ满足 σ ( i 1 ) = i 2 \sigma(i_1)=i_2 σ(i1)=i2, σ ( i 2 ) = i 3 \sigma(i_2)=i_3 σ(i2)=i3,…,称 ( i 1 i 2 . . . i l ) (i_1i_2...i_l) (i1i2...il)是一个长度为l的轮换
定义:设 α \alpha α β \beta β是 S n S_n Sn中的两个轮换,若 α , β \alpha,\beta α,β中的元素都不同,则称 α \alpha α与 β \beta β不相交
定理:不相交的轮换乘法满足交换律
定理:设 α = ( i 1 . . . i n 1 ) ( j 1 . . . j n 2 ) . . . ( k 1 . . . k n r ) \alpha=(i_1...i_{n_1})(j_1...j_{n_2})...(k_1...k_{n_r}) α=(i1...in1)(j1...jn2)...(k1...knr),则 α \alpha α的阶是 n 1 . . . n r n_1...n_r n1...nr的最小公倍数
定理:任何置换可以表示为不相交轮换的乘积
定理:任何一个长度为l轮换可以表示为l-1个对换的乘积
例如: ( i 1 i 2 . . . i l ) = ( i 1 i l ) . . . ( i 1 i 2 ) (i_1\;i_2\;...i_l)=(i_1\;i_l)...(i_1\;i_2) (i1i2...il)=(i1il)...(i1i2)
定理:不管用什么方法把置换表示成对换之积,所得对换个数奇偶性相同
如果对换数为奇数,则为奇置换,否则为偶置换, N ( σ 1 σ 2 ) = N ( σ 1 ) + N ( σ 2 ) N(\sigma_1\sigma_2)=N(\sigma_1)+N(\sigma_2) N(σ1σ2)=N(σ1)+N(σ2)
定理:n次对称群 S n S_n Sn中所有偶置换的集合,对 S n S_n Sn中置换乘法构成子群,记作 A n A_n An,称为交错群,若 n ≥ 2 n\geq 2 n≥2,则 ∣ A n ∣ = n ! 2 |A_n|=\frac{n!}{2} ∣An∣=2n!
Cayley定理:任何群G与一个变换群同构
构造变换群:任取 a ∈ G a\in G a∈G,定义 G G G上的变换 f a : x → a x x ∈ G f_a:x\rightarrow ax\;\;x\in G fa:x→axx∈G
左陪集:设H是群G的一个子群,对任意的 a ∈ G a\in G a∈G,集合 a H = { a h ∣ h ∈ H } aH=\{ah|h\in H\} aH={ah∣h∈H}是左陪集
定理: ∣ a H ∣ = ∣ H ∣ |aH|=|H| ∣aH∣=∣H∣, a ∈ H ⇔ a H = H a\in H\Leftrightarrow aH=H a∈H⇔aH=H, ∀ x ∈ a H ⇒ x H = a H \forall x\in aH\Rightarrow xH=aH ∀x∈aH⇒xH=aH, a H ≠ b H ⇒ a H ∩ b H = ∅ aH\not= bH\Rightarrow aH\cap bH=\varnothing aH=bH⇒aH∩bH=∅, a H = b H ⇒ a − 1 b ∈ H ∧ b − 1 a ∈ H aH=bH\Rightarrow a^{-1}b\in H \wedge b^{-1}a\in H aH=bH⇒a−1b∈H∧b−1a∈H
定理:设G是有限群,H是G的子群,则存在正整数k,满足 G = a 1 H ∪ a 2 H ∪ . . . a k H G=a_1H\cup a_2H\cup...a_k H G=a1H∪a2H∪...akH,其中 a i H ∩ a j H = ∅ a_iH\cap a_j H=\varnothing aiH∩ajH=∅
定义:群G关于子群H的左(右)陪集的个数,称为H在G中的指数,记作 [ G : H ] [G:H] [G:H]
Lagrange定理:群G的阶=子群H的指数*H的阶
推论:设A,B是群G的两个有限子群,则 ∣ A B ∣ = ∣ A ∣ ∣ B ∣ ∣ A ∩ B ∣ |AB|=\frac{|A||B|}{|A\cap B|} ∣AB∣=∣A∩B∣∣A∣∣B∣
正规子群:设H是G的一个子群,若 ∀ a ∈ G \forall a \in G ∀a∈G,都有 a H = H a aH=Ha aH=Ha,则称H是G的一个正规子群,用符号 H △ G H\triangle G H△G表示
定义:设H是G的一个正规子群,G/H表示H所有陪集构成的集合,称G/H为G关于H的商群