Skip to content

Commit 6090570

Browse files
committed
docs: use macros
1 parent cc729f2 commit 6090570

1 file changed

Lines changed: 32 additions & 25 deletions

File tree

docs/cs/tcs/lec11.md

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22
title: Lecture 11
33
---
44

5+
$\newcommand{\NN}{\mathbb{N}}$
6+
$\newcommand{\rmSIZE}{\mathrm{SIZE}}$
7+
$\newcommand{\rmTIME}{\mathrm{TIME}}$
8+
$\newcommand{\rmRAM}{\mathrm{RAM}}$
9+
$\newcommand{\rmTM}{\mathrm{TM}}$
10+
$\newcommand{\rmHALT}{\mathrm{HALT}}$
11+
512
从本次课开始,我们主要讨论可计算函数。
613

714
---
815

9-
**运行时间**:Let $T: \mathbb{N} \to \mathbb{N}$, we say a TM $M$ has a running time of $T(n)$ if for every sufficiently large $n$ and every **input of length $n$**, $M$ halts within $T(n)$ steps. 类似可定义 NAND-RAM 程序的运行时间。
16+
**运行时间**:Let $T: \NN \to \NN$, we say a TM $M$ has a running time of $T(n)$ if for every sufficiently large $n$ and every **input of length $n$**, $M$ halts within $T(n)$ steps. 类似可定义 NAND-RAM 程序的运行时间。
1017

1118
::fold{title="假设" always expand}
1219
通常假设:
@@ -18,29 +25,29 @@ title: Lecture 11
1825
这样的 $T(n)$ 称为 **nice function**。大多数常见函数都满足这些假设。
1926
::
2027

21-
**$\mathrm{TIME}_\mathrm{TM}(T(n))$** $=\{$boolean function $F\mid F$ is computable by some TM with $T(n)$ running time$\}$,即运行时间在 $T(n)$ 之内的所有布尔函数的集合。e.g. $\mathrm{TIME}_\mathrm{TM}(10\cdot n^3) \subsetneq \mathrm{TIME}_\mathrm{TM}(2^n)$。类似可定义 $\mathrm{TIME}_\mathrm{RAM}(T(n))$。
28+
**$\rmTIME_\rmTM(T(n))$** $=\{$boolean function $F\mid F$ is computable by some TM with $T(n)$ running time$\}$,即运行时间在 $T(n)$ 之内的所有布尔函数的集合。e.g. $\rmTIME_\rmTM(10\cdot n^3) \subsetneq \rmTIME_\rmTM(2^n)$。类似可定义 $\rmTIME_\rmRAM(T(n))$。
2229

23-
**$\mathcal{P}=\bigcup_{k\in \mathbb{N}} \mathrm{TIME}_\mathrm{TM}(n^k)$**,所有在多项式步内计算的布尔函数的集合。
30+
**$\mathcal{P}=\bigcup_{k\in \NN} \rmTIME_\rmTM(n^k)$**,所有在多项式步内计算的布尔函数的集合。
2431

25-
**$\mathcal{EXP}=\bigcup_{k\in \mathbb{N}} \mathrm{TIME}_\mathrm{TM}\left(2^{n^k}\right)$**,所有在指数步内计算的布尔函数的集合。
32+
**$\mathcal{EXP}=\bigcup_{k\in \NN} \rmTIME_\rmTM\left(2^{n^k}\right)$**,所有在指数步内计算的布尔函数的集合。
2633

2734
**$\mathcal{P} \subsetneq \mathcal{EXP}$**,后面会证明。
2835

2936
::fold{title="**定理**:TM 和 NAND-RAM 运行时间等价" success always expand}
30-
$\mathrm{TIME}_\mathrm{TM}(T(n)) \subseteq \mathrm{TIME}_\mathrm{RAM}(10\cdot T(n))) \subseteq \mathrm{TIME}_\mathrm{TM}(T(n)^4)$。
37+
$\rmTIME_\rmTM(T(n)) \subseteq \rmTIME_\rmRAM(10\cdot T(n))) \subseteq \rmTIME_\rmTM(T(n)^4)$。
3138
::
3239

33-
有了上面的定理,可以用 $\mathrm{TIME}_\mathrm{RAM}$ 来定义 $\mathcal{P}$ 和 $\mathcal{EXP}$:$\mathcal{P} = \bigcup_{k\in \mathbb{N}} \mathrm{TIME}_\mathrm{RAM}(n^k)$,$\mathcal{EXP} = \bigcup_{k\in \mathbb{N}} \mathrm{TIME}_\mathrm{RAM}\left(2^{n^k}\right)$。可见 $\mathcal{P}$ 和 $\mathcal{EXP}$ 与计算模型无关。
40+
有了上面的定理,可以用 $\rmTIME_\rmRAM$ 来定义 $\mathcal{P}$ 和 $\mathcal{EXP}$:$\mathcal{P} = \bigcup_{k\in \NN} \rmTIME_\rmRAM(n^k)$,$\mathcal{EXP} = \bigcup_{k\in \NN} \rmTIME_\rmRAM\left(2^{n^k}\right)$。可见 $\mathcal{P}$ 和 $\mathcal{EXP}$ 与计算模型无关。
3441

3542
回顾:Universal TM $U(M, x) = M(x)$,对应的 NAND-RAM 程序 $U(P, x) = P(x)$。
3643

3744
可以证明,**若 $P(x)$ 在 $T(|x|)$ 步内计算,则 $U(P, x)$ 可在 $a|P|^b\cdot T(|x|)$ 步内计算**,其中 $a,b$ 是常数。(证明略)
3845

3946
::fold{title="**Time Hierarchy Theorem**" success always expand}
40-
对任意 nice function $T: \mathbb{N} \to \mathbb{N}$,存在布尔函数 $F$,使得
47+
对任意 nice function $T: \NN \to \NN$,存在布尔函数 $F$,使得
4148

4249
$$
43-
F \in \mathrm{TIME}_\mathrm{RAM}(T(n)\log n)\setminus\mathrm{TIME}_\mathrm{RAM}(T(n))
50+
F \in \rmTIME_\rmRAM(T(n)\log n)\setminus\rmTIME_\rmRAM(T(n))
4451
$$
4552

4653
也就是说**如果允许多花 $\log n$ 的时间,就能计算出更多的函数**
@@ -49,7 +56,7 @@ $$
4956
固定任意 nice function $T(n)$,定义:
5057

5158
$$
52-
\mathrm{HALT}_T(P, x) =
59+
\rmHALT_T(P, x) =
5360
\begin{cases}
5461
1, & \text{if } |P|\leq\log\log|x|\\
5562
&\text{and }P \text{ halts on } x \text{ in } \leq 100T(|P|+|x|) \text{ steps}\\
@@ -61,16 +68,16 @@ $$
6168

6269
下面我们证明:
6370

64-
1. $\mathrm{HALT}_T \in \mathrm{TIME}_\mathrm{RAM}(T(n)\log n)$;
65-
2. $\mathrm{HALT}_T \notin \mathrm{TIME}_\mathrm{RAM}(T(n))$。
71+
1. $\rmHALT_T \in \rmTIME_\rmRAM(T(n)\log n)$;
72+
2. $\rmHALT_T \notin \rmTIME_\rmRAM(T(n))$。
6673

6774
:v{-1.6em}
6875

6976
---
7077

7178
:v{-1.6em}
7279

73-
**证明 $\mathrm{HALT}_T \in \mathrm{TIME}_\mathrm{RAM}(T(n)\log n)$**
80+
**证明 $\rmHALT_T \in \rmTIME_\rmRAM(T(n)\log n)$**
7481

7582
```
7683
1| if |P| > loglog|x|:
@@ -97,13 +104,13 @@ O(|P|^b\cdot T_0) &\leq O\left((\log\log(|P|+|x|))^b \cdot T(|P|+|x|)\right) \\
97104
\end{aligned}
98105
$$
99106

100-
即 $\mathrm{HALT}_T \in \mathrm{TIME}_\mathrm{RAM}(T(n)\log n)$。
107+
即 $\rmHALT_T \in \rmTIME_\rmRAM(T(n)\log n)$。
101108

102-
**证明 $\mathrm{HALT}_T \notin \mathrm{TIME}_\mathrm{RAM}(T(n))$**
109+
**证明 $\rmHALT_T \notin \rmTIME_\rmRAM(T(n))$**
103110

104-
思路:证明所有在 $T(n)$ 步内计算的程序 $P$,都不能计算 $\mathrm{HALT}_T$。
111+
思路:证明所有在 $T(n)$ 步内计算的程序 $P$,都不能计算 $\rmHALT_T$。
105112

106-
假设 $\mathrm{HALT}_T \in \mathrm{TIME}_\mathrm{RAM}(T(n))$,定义:
113+
假设 $\rmHALT_T \in \rmTIME_\rmRAM(T(n))$,定义:
107114

108115
$$
109116
Q^*(z)=Q^*(P1^m)=
@@ -138,7 +145,7 @@ on input z:
138145
- 如果 loop 分支成立,即 $Q^*(Q^*1^m)$ 不停机,但该分支的条件是 $Q^*$ 在同样的输入下停机,因此不可能进入该分支;
139146
- 如果 halt 分支成立,则 $Q^*(Q^*1^m)$ 在 $2T(2|P|+m) < 100T(2|P|+m)$ 步内停机,且 $|P| < 0.1\log\log m$,满足 loop 分支的条件,应该不停机,矛盾。
140147

141-
因此,两个分支都不可能,故 $\mathrm{HALT}_T \notin \mathrm{TIME}_\mathrm{RAM}(T(n))$。
148+
因此,两个分支都不可能,故 $\rmHALT_T \notin \rmTIME_\rmRAM(T(n))$。
142149
:::
143150
::
144151

@@ -148,19 +155,19 @@ on input z:
148155

149156
**$F_{\uparrow n}$**:给定 $F:\{0,1\}^* \to \{0,1\}$,定义 $F_{\uparrow n}:\{0,1\}^n \to \{0,1\}$,其中对任意 $x \in \{0,1\}^n$,都有 $F_{\uparrow n}(x) = F(x)$。即把 $F$ 限制在长度为 $n$ 的输入上。
150157

151-
**$F_{\uparrow n}\in\mathrm{SIZE}_n(T(n))$ if it needs at most $T(n)$ gates.**(NAND-CIRC 电路)
158+
**$F_{\uparrow n}\in\rmSIZE_n(T(n))$ if it needs at most $T(n)$ gates.**(NAND-CIRC 电路)
152159

153-
**$F \in \mathrm{SIZE}(T(n))$ if for every $n$, $F_{\uparrow n} \in \mathrm{SIZE}_n(T(n))$**。即对于任意输入长度 $n$,$F$ 在该长度下都能被大小为 $T(n)$ 的电路计算出来。
160+
**$F \in \rmSIZE(T(n))$ if for every $n$, $F_{\uparrow n} \in \rmSIZE_n(T(n))$**。即对于任意输入长度 $n$,$F$ 在该长度下都能被大小为 $T(n)$ 的电路计算出来。
154161

155-
::fold{title="$\mathrm{SIZE}$ 和 $\mathrm{TIME}$ 比较" always expand}
156-
$F\in\mathrm{SIZE}(T(n))\Longleftrightarrow\forall n, \exists$ NAND-CIRC $P, \forall x\in \{0,1\}^n, F(x)$ can be computed by $P$ in $T(n)$ lines.
162+
::fold{title="$\rmSIZE$ 和 $\rmTIME$ 比较" always expand}
163+
$F\in\rmSIZE(T(n))\Longleftrightarrow\forall n, \exists$ NAND-CIRC $P, \forall x\in \{0,1\}^n, F(x)$ can be computed by $P$ in $T(n)$ lines.
157164

158-
$F\in\mathrm{TIME}(T(n))\Longleftrightarrow\exists$ NAND-TM $P, \forall n, \forall x\in \{0,1\}^n, F(x)$ can be computed by $P$ in $T(n)$ steps.
165+
$F\in\rmTIME(T(n))\Longleftrightarrow\exists$ NAND-TM $P, \forall n, \forall x\in \{0,1\}^n, F(x)$ can be computed by $P$ in $T(n)$ steps.
159166

160-
两者只有前面两个量词顺序不同。直觉上,$\mathrm{TIME}$ 要求对所有 $n$ 找到一个通用的 $P$,而 $\mathrm{SIZE}$ 只需要对每个 $n$ 找到一个对应的 $P$ 即可,因此 $\mathrm{TIME}$ 应该要求更高。
167+
两者只有前面两个量词顺序不同。直觉上,$\rmTIME$ 要求对所有 $n$ 找到一个通用的 $P$,而 $\rmSIZE$ 只需要对每个 $n$ 找到一个对应的 $P$ 即可,因此 $\rmTIME$ 应该要求更高。
161168
::
162169

163-
::fold{title="**定理**:$\mathrm{TIME}$ 和 $\mathrm{SIZE}$ 的关系" success always expand}
164-
$\forall$ nice function $T(n)$,都有 **$\mathrm{TIME}(T(n)) \subseteq \mathrm{SIZE}(T(n)^3)$**
170+
::fold{title="**定理**:$\rmTIME$ 和 $\rmSIZE$ 的关系" success always expand}
171+
$\forall$ nice function $T(n)$,都有 **$\rmTIME(T(n)) \subseteq \rmSIZE(T(n)^3)$**
165172

166173
::

0 commit comments

Comments
 (0)