机器学习-数学基础2:字母表,二叉树

本贴是对闵老师的博客的理解

一.字母表

1.1字母表

常见的字母表包括:
Σ = { 0 , 1 } \Sigma= \{0, 1\} Σ={0,1}
Σ = { a , … , z } \Sigma = \{\mathrm{a}, \dots, \mathrm{z}\} Σ={a,,z}

我们需要的字母表:
Σ = { l , r } \Sigma = \{\mathrm{l},\mathrm{r}\} Σ={l,r}

1.2正闭包

The positive closure of alphabet is given by Σ + = Σ 1 ∪ Σ 2 ∪ . . . \Sigma^+ = \Sigma^1 \cup \Sigma^2 \cup ... Σ+=Σ1Σ2...

Σ 1 = { l , r } \Sigma^1=\{\mathrm{l},\mathrm{r}\} Σ1={l,r}
Σ 2 = { l l , l r , r r , r l } \Sigma^2=\{\mathrm{ll},\mathrm{lr},\mathrm{rr},\mathrm{rl}\} Σ2={ll,lr,rr,rl}
… \dots
Σ + = { l , r , l l , l r , r l , r r , l l l , …   } \Sigma^+ = \{\mathrm{l}, \mathrm{r}, \mathrm{ll}, \mathrm{lr}, \mathrm{rl}, \mathrm{rr}, \mathrm{lll}, \dots \} Σ+={l,r,ll,lr,rl,rr,lll,}

1.3克林闭包

空串 ε \varepsilon ε (varepsilon)
The Cling closure of alphabet Σ ∗ = Σ 0 ∪ Σ + = { ε } ∪ Σ + \Sigma^* = \Sigma^0 \cup \Sigma^+ = \{\varepsilon\} \cup \Sigma^+ Σ=Σ0Σ+={ε}Σ+
字母表克林闭包的元素, 就称为字符串

1.4跳转函数

为了描述在某个状态接受字符串的跳转, 可定义跳转函数为:
Let S \bm{S} S denote the set of states. The positive state transition function is given by f : S × Σ + → S f: \bm{S} \times \Sigma^+ \to \bm{S} f:S×Σ+S , where ∀ s ∈ S \forall s \in \bm{S} sS and a 1 a 2 … a k ∈ Σ + a_1 a_2 \dots a_k \in \Sigma^+ a1a2akΣ+,
f ( s , a 1 a 2 … a k ) = f ( f ( s , a 1 ) , a 2 a 3 … a k ) f(s, a_1 a_2 \dots a_k) = f(f(s, a_1), a_2 a_3 \dots a_k) f(s,a1a2ak)=f(f(s,a1),a2a3ak)

二.二叉树

2.1初始版本

Let Σ = { l , r } \Sigma = \{\mathrm{l}, \mathrm{r}\} Σ={l,r}be the alphbet and ϕ \phi ϕ be a null node. A binary tree is a triple T = ( V , r , c ) T = (\bm{V}, r, c) T=(V,r,c), where V = { v 1 , … , v n } \bm{V} = \{v_1, \dots, v_n\} V={v1,,vn} is the set of nodes, r ∈ V r \in \bm{V} rV is the root, and c : V ∪ { ϕ } × Σ + → V ∪ { ϕ } c: \bm{V} \cup \{\phi\} \times \Sigma^+ \to \bm{V} \cup \{\phi\} c:V{ϕ}×Σ+V{ϕ} satisfying
a) c ( ϕ , l ) = c ( ϕ , r ) = ϕ c(\phi, \mathrm{l}) = c(\phi, \mathrm{r}) = \phi c(ϕ,l)=c(ϕ,r)=ϕ;
b) ∀ v ∈ V ∖ { r } \forall v \in \bm{V} \setminus \{r\} vV{r}, ∃ 1 \exists1 1 s ∈ Σ + s \in \Sigma^+ sΣ+ st. ( r , s ) = v (\mathrm{r},\mathrm{s})=v (r,s)=v;
c) ∀ v ∈ V \forall v \in \bm{V} vV, a ∈ Σ a \in \Sigma aΣ , c ( v , a ) ≠ r c(\mathrm{v},\mathrm{a}) \neq r c(v,a)=r

这是一个三元组。
b)代表从根节点到任意节点的路径仅存在唯一的路径
c) 代表根节点没有父节点

注:由b) 和 c)我们推出了一个性质 V \bm V V中节点没有环
在这里插入图片描述

2.2打磨版本

2.2.1定义

Let Σ = { l , r } \Sigma = \{\mathrm{l}, \mathrm{r}\} Σ={l,r}be the alphbet and ϕ \phi ϕ be a null node. A binary tree is a triple T = ( V , r , c ) T = (\bm{V}, r, c) T=(V,r,c), where V = { v 1 , … , v n } \bm{V} = \{v_1, \dots, v_n\} V={v1,,vn} is the set of nodes, r ∈ V r \in \bm{V} rV is the root, and c : V ∪ { ϕ } × Σ ∗ → V ∪ { ϕ } c: \bm{V} \cup \{\phi\} \times \Sigma^* \to \bm{V} \cup \{\phi\} c:V{ϕ}×ΣV{ϕ} satisfying
∀ v ∈ V \forall v \in \bm{V} vV, ∃ 1 \exists1 1 s ∈ Σ ∗ s \in \Sigma^* sΣ st. ( r , s ) = v (\mathrm{r},\mathrm{s})=v (r,s)=v;

a)和c)都是冗余的,但是只保留b),会出现一种特殊情况
在这里插入图片描述
所以我们引入了空串, Σ ∗ = Σ 0 ∪ Σ + = { ε } ∪ Σ + \Sigma^* = \Sigma^0 \cup \Sigma^+ = \{\varepsilon\} \cup \Sigma^+ Σ=Σ0Σ+={ε}Σ+
c ( r , ε ) = r c(r, \varepsilon) = r c(r,ε)=r. 即从 r r r 读入空串到自己

2.2.2性质

①: 二叉树的任何节点 (空节点除外) 不会有到自己的环.

Property 1. ∀ v ∈ V \forall v \in \bm{V} vV, ! ∃ s ∈ Σ + ! \exists s \in \Sigma^+ !sΣ+,st. c ( v , s ) = v c(v, s) = v c(v,s)=v.
Proof. Suppose that ∃ v i ∈ V \exists v_i \in \bm{V} viV and s ′ ∈ Σ + s' \in \Sigma^+ sΣ+,st. c ( v i , s ′ ) = v i c(v_i, s') = v_i c(vi,s)=vi
According to Definition 17, ∃ s 1 ∈ Σ ∗ \exists s_1 \in \Sigma^* s1Σ st. c ( r , s 1 ) = v i c(r, s_1) = v_i c(r,s1)=vi.
Consequentyly c ( r , s 1 s ′ ) = c ( c ( r , s 1 ) , s ′ ) = c ( v i , s ′ ) = v i c ( r , s_1 s ′ ) = c ( c ( r , s_1 ) , s ′ ) = c ( v i , s ′ ) = v i c(r,s1s)=c(c(r,s1),s)=c(vi,s)=vi , and s s s takes at least two values ( s 1 (s1 (s1 and s 1 s ′ ) s1s′) s1s), making it not unique.
This contradition shows that the assumption does not hold.
The proof is finished.
在这里插入图片描述

②:空节点的左右孩子都是自己

Property 1. c ( ϕ , l ) = c ( ϕ , r ) = ϕ c(\phi, \mathrm{l}) = c(\phi, \mathrm{r}) = \phi c(ϕ,l)=c(ϕ,r)=ϕ.
Proof. s = a 1 a 2 … a n + 1 ∈ Σ ∗ s = a_1 a_2 \dots a_{n+1} \in \Sigma^* s=a1a2an+1Σ , we consider c ( r , s ) c(r, s) c(r,s). Let the path corresponding to the calculation of c ( r , s ) c(r, s) c(r,s) be v 0 ′ v 1 ′ … v n + 1 ′ v_0' v_1' \dots v_{n+1}' v0v1vn+1 where v 0 ′ = r v_0' = r v0=r. Since ∣ V ∪ { ϕ } ∣ = n + 1 |\bm{V} \cup \{\phi\}| = n + 1 V{ϕ}=n+1, according to the Pigeon Cage Principle (鸽笼原理), there must ∃ 0 ≤ i < j ≤ n + 1 \exists0 \leq i < j \leq n + 1 0i<jn+1 st. v i ′ = v j ′ v_i' = v_j' vi=vj . In other words, v i ′ … v j ′ v_i' \dots v_j' vivj is a loop.
Now assume that ∃ i < k < j \exists i < k < j i<k<j st. v k ′ ∈ V v_k' \in \bm{V} vkV. We have c ( r , a 1 a 2 … a k ) = v k ′ c(r, a_1 a_2 \dots a_k) = v_k' c(r,a1a2ak)=vk , and c ( r , a 1 a 2 … a j a i + 1 a i + 2 … a k ) = v k ′ c(r, a_1 a_2 \dots a_j a_{i+1} a_{i + 2} \dots a_k) = v_k' c(r,a1a2ajai+1ai+2ak)=vk , making the path from r r r to v k ′ v_k' vk not unique.
Hence the assumption does not hold, and v i ′ = v i + 1 ′ = ⋯ = v j ′ = ϕ v_i' = v_{i + 1}' = \dots = v_j' = \phi vi=vi+1==vj=ϕ.
In other words, any character takes ϕ \phi ϕ to itself.
This completes the proof.
说明:
a) 鸽笼原理: n + 1 n + 1 n+1只鸽子飞进 n n n个鸽笼, 至少有两个鸽子在同一个笼子里. 这是组合数学中重要的定理.
b) 这里用到了有穷状态自动机 (Finite state automata) 的知识. 从任一节点 (状态), 读入一个字符, 到达下一个节点. 这里的 ϕ \phi ϕ被称为 陷井状态.

1)开始在一个节点,读入n+1个字符,就会经过n+2个节点。有效集合加上{ ϕ \phi ϕ}一共n+1个节点。由鸽笼原理。得知肯定由两个节点相同。两个节点相同由性质1可知 二叉树的任何节点 (空节点除外) 不会有到自己的环,所以这两个相同的点肯定是 ϕ \phi ϕ.
2)接着我们探讨 v i , v j v_i,v_j vi,vj是否存在有效节点。我们假设在i,j中存在有效节点k。由于 v k ′ v_k' vk属于有效节点,再由b)可知 c ( r , a 1 a 2 … a k ) = v k ′ c(r, a_1 a_2 \dots a_k) = v_k' c(r,a1a2ak)=vk c ( r , a 1 a 2 … a j a j + 1 a j + 2 … a k ) = v k ′ c(r, a_1 a_2 \dots a_j a_{j+1} a_{j + 2} \dots a_k) = v_k' c(r,a1a2ajaj+1aj+2ak)=vk = c ( r , a 1 a 2 … a i a i + 1 a i + 2 … a k ) = v k ′ c(r, a_1 a_2 \dots a_i a_{i+1} a_{i + 2} \dots a_k) = v_k' c(r,a1a2aiai+1ai+2ak)=vk,这就导致路径不唯一与定义相矛盾。为了防止不冲突,我们只有当读取到 a i a_i ai或者 a j a_j aj时是 ϕ \phi ϕ,后面 a i + 1 … a_{i+1}\dots ai+1或者 a j + 1 … a_{j+1}\dots aj+1都是 ϕ \phi ϕ节点是才可以。即 v i ′ = v i + 1 ′ = ⋯ = v j ′ = ϕ v_i' = v_{i + 1}' = \dots = v_j' = \phi vi=vi+1==vj=ϕ.证明了空节点自成一个环路

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值