Skip to content

Commit c779908

Browse files
docs: init(rebirth)
0 parents  commit c779908

179 files changed

Lines changed: 18509 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: ci
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- main
7+
permissions:
8+
contents: write
9+
jobs:
10+
deploy:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v3
14+
- uses: actions/setup-python@v4
15+
with:
16+
python-version: 3.x
17+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
18+
- run: sudo apt-get update
19+
- run: sudo apt-get install texlive-xetex
20+
- uses: actions/cache@v3
21+
with:
22+
key: mkdocs-material-${{ env.cache_id }}
23+
path: .cache
24+
restore-keys: |
25+
mkdocs-material-
26+
- run: pip install mkdocs-material
27+
- run: pip install mkdocs-heti-plugin
28+
- run: git clone https://github.com/TonyCrane/mkdocs-toolchain.git
29+
- run: pip install -e mkdocs-toolchain/mkdocs-tikzautomata-plugin
30+
- run: mkdir cache
31+
- run: mkdocs gh-deploy --force
32+
- name: Delete workflow runs for current repo
33+
uses: Mattraks/delete-workflow-runs@v2
34+
with:
35+
token: ${{ secrets.WORK_TOKEN }}
36+
repository: ${{ github.repository }}
37+
retain_days: 7
38+
keep_minimum_runs: 6
39+
40+
- name: Delete workflow runs for remote repo
41+
uses: Mattraks/delete-workflow-runs@v2
42+
with:
43+
token: ${{ secrets.GITHUB_TOKEN }}
44+
repository: 'Owner/repository'
45+
retain_days: 7
46+
keep_minimum_runs: 6

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.DS_Store
2+
.vscode
3+
site/
4+
todo/
5+
cache/
6+
tools/

LICENSE

Lines changed: 395 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Jianjun Zhou's Notebook
2+
3+
Notebook made with material for mkdocs, mainly completed during the undergraduate period.
4+
5+
[Online Documantation](https://ZhouTimeMachine.github.io/note)
6+
7+
## Acknowledgement
8+
9+
- [TonyCrane](https://github.com/TonyCrane)
10+
11+
Style modified from [TonyCrane's Notebook](https://github.com/TonyCrane/note).

docs/courses/ads-final-review.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# ADS Final Review
2+
3+
!!! info "My review note before final exam of ZJU *Advanced Data Structure and Algorithm*, 2022 Spring & Summer."
4+
5+
## Basics
6+
7+
- binary tree
8+
- perfect:完美二叉树,每一层都被完全填充<!--more-->
9+
- complete:完全二叉树,除最后一层外都是完全填充,最后一层左对齐
10+
- full:完满二叉树,每个结点要么两个子结点,要么没有子结点
11+
- <div style="text-align:center;">
12+
<img src="../imgs/ads/ads_review_binary_tree.png" alt="ads_review_binary_tree" style="zoom:67%;" />
13+
</div>
14+
15+
## Ch2. 红黑树、B+树
16+
17+
- $h\leq 2\log(N+1)$
18+
- $sizeof(x) \geq 2^{bh(x)}-1$ (全黑取等)
19+
- $bh(x)\geq\frac 12h(x)$
20+
- 红黑插入:必插红,处理双红
21+
- case 1:父叔同红,父祖换色祖上传。
22+
- case 2:叔黑子内,父子旋转使子外。
23+
- case 3:叔黑子外。父祖换色父旋升。
24+
- 红黑删除:
25+
- 删红小事。0/1度的红毫无威胁。2度红,若拿来替换的是黑,则需要让该黑变成双黑结点,然后类似删黑操作即可。主要处理删黑,删黑则先使其为双黑。
26+
- 兄红转兄黑。父兄换色兄旋升。(case 1)
27+
- 兄黑远黑近侄红,侄兄换色侄旋升。(case 3)
28+
- 兄黑远红化其黑,父兄换色兄旋升。(case 4)
29+
- 兄侄全黑则兄红,黑父不当则上传。(case 2)
30+
- B+:根2到M,非根$\lceil M/2\rceil$到M。
31+
- <div style="text-align:center;">
32+
<img src="../imgs/ads/ads_review_RBTree_complexity.png" alt="ads_review_RBTree_complexity" style="zoom:67%;" />
33+
</div>
34+
35+
## Ch4. 左倾堆和斜堆
36+
37+
<div style="text-align:center;">
38+
<img src="../imgs/ads/heaps.png" alt="heaps" />
39+
</div>
40+
41+
- 左倾堆针对二叉堆的merge进行了改进。斜堆不需要维护npl,但是make-heap代价较大。二项堆看似没有改进,其实是斐波那契堆的铺垫,斐波那契堆成功将插入、merge都变成了o(1)。
42+
43+
- Npl(NULL) = -1
44+
- 左倾堆右路径上有r个结点,则总结点数至少为$2^r-1$
45+
- 斜堆轻结点类似左倾堆,也受$\log N$控制
46+
47+
## Ch5. 二项堆
48+
49+
- 二项堆插入的均摊时间是O(1)
50+
- 二项堆可以通过n次插入实现均摊的线性时间
51+
52+
## Ch7. 分治算法
53+
54+
- 基本主定理
55+
- 比较$f(N)$与$N^{\log_ba}$,取较大的量级。同量级,则$O(N^{\log_ba}\log N)$
56+
- <div style="text-align:center;">
57+
<img src="../imgs/ads/ads_review_master_theorem.png" alt="ads_review_master_theorem" style="zoom:67%;" />
58+
</div>
59+
- 针对有log的N量级相同情况,有
60+
- <div style="text-align:center;">
61+
<img src="../imgs/ads/ads_review_master_theorem_log.png" alt="ads_review_master_theorem_log" style="zoom:67%;" />
62+
</div>
63+
- 需要关注的只是中间情况。
64+
65+
## Ch11. 近似算法
66+
67+
- **polynomial-time approximation scheme (PTAS)**: 对($1+\varepsilon$)-approximation算法,固定的$\varepsilon$情况下,时间复杂度是$N$的多项式级别
68+
- FPTAS(F:fully):既是$N$又是$1/\varepsilon$的多项式级别
69+
- Bin Packing
70+
- Next Fit: 2
71+
- First Fit, Best Fit: 1.7
72+
- Online algorithm: 至少5/3
73+
- offline - first fit decreasing: 11/9
74+
- **The Knapsack Problem**
75+
- greedy 策略是2-近似的
76+
- DP结果为$O(n^2p_{max})$:NP
77+
78+
## Ch12. 局部搜索
79+
80+
- Big-improvement-flip
81+
- 大于$\frac {2\varepsilon}{|V|}W(A, B)$才翻转
82+
- $(2+\varepsilon)$-approximation
83+
- $O(n/\varepsilon\log W)$
84+
- k-flip: 增大搜索邻域 - K-L启发式
85+
86+
## Ch13. 随机化算法
87+
88+
- Hiring problem
89+
- Naive: O($NC_h+NC_i$)
90+
- 随机化:$O(C_h\ln N+NC_i)$
91+
- online: $k=\max\{\lceil\frac{N}{e}\rceil, \lfloor \frac Ne\rfloor\}$
92+
- hire only once, 最优概率为$k/N\ln(N/k)$到$k/N\ln(N-1/k-1)$
93+
94+
## Ch14. 并行算法
95+
96+
- n数之和
97+
- $T(n)=\log n+2, W(n)=2n$
98+
- 前缀和
99+
- $T(n)=O(\log n), W(n)=O(n)$
100+
- merge
101+
- $T(n)=O(\log n), W(n)=O(n)$
102+
- Maximum Finding
103+
- 大功率跑车$T(n)=1, W(n)=O(n^2)$
104+
- 双对数基本:$T(n)=O(\log\log n), W(n)=O(n\log\log n)$
105+
- $T(n)\leq T(\sqrt n)+c_1, W(n)\leq \sqrt nW(\sqrt n)+c_2n$
106+
- 双对数顶层改进:顶层分为$\log\log n$份
107+
- $T(n)=O(h+\log\log(n/h))=O(\log\log n)$
108+
- $W(n)=O(h\times(n/h)+(n/h)\log \log (n/h))=O(n)$
109+
- 随机取样:$T(n)=O(1), W(n)=O(n)$,失败概率$O(1/n^c)$
110+
- $n^{1/8}$中随机取样。$T=O(1), W=O(n^{7/8})$
111+
- 每个$n^{1/8}$块取最大值。$T=O(1),W=O(n^{3/4}\times n^{2\times 1/8})=O(n)$
112+
- 每个$n^{1/4}$块取最大值。$T=O(1),W=O(n^{1/2}\times n^{2\times 1/4})=O(n)$
113+
- 取最大值。$T=O(1),W=O(n^{2\times 1/2})=O(n)$
114+
115+
## Ch15. 外排序
116+
117+
- k-way merge need 2k tapes, number of passes =
118+
119+
- $$
120+
1+\lceil \log_k(N/M)\rceil
121+
$$
122+
123+
- buffer:2kinput, 2output
124+
125+
- huffman tree
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# High-Dimensional Probability
2+
3+
!!! info "Note taken on PKU *High-Dimensional Probability*, 2024 Fall, [Link](https://www.math.pku.edu.cn/teachers/zhzhang/hdp.html)"
4+
5+
- [Lecture 1](lec1.md), introduction
6+
- ...

docs/courses/high-dim-prob/lec1.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Introduction
2+
3+
!!! info "Lecture 1, 2024.9.10, [Link](https://www.math.pku.edu.cn/teachers/zhzhang/videos/09-10.mp4)"
4+
5+
## Overview
6+
7+
<div style="text-align:center;">
8+
<img src="../../imgs/prob/high-dim/overview.drawio.png" alt="overview" style="margin: 0 auto; zoom: 80%;"/>
9+
</div>
10+
11+
在高维中,需要刻画两个重要问题:
12+
13+
- 维数灾难 (Curse of Dimensionality)
14+
- 高维特性 (Surprises in High Space)
15+
16+
用来分析的两种常用工具:
17+
18+
- 期望 (Expectation)
19+
- 以高概率存在 (with high probability)
20+
21+
研究对象:向量 -> 矩阵 -> 函数
22+
23+
数据假设:独立同分布 (i.i.d.) -> 鞅差 (Martingale Difference) -> 马尔科夫链 (Markov Chain)
24+
25+
教材:*High-Dimensional Probability* by Roman Vershynin
26+
27+
推荐资料:
28+
29+
- 统计方面:*High-Dimensional Statistics* by Martin Wainwright
30+
- 理论计算机:*The Probabilitic Method* by Alon and Spencer
31+
- 更有趣味,偏向算法设计:*Probability and Computing* by Mitzenmacher and Upfal
32+
33+
比较 $f(n)$ 和 $g(n)$:
34+
35+
- $f(n) = O(g(n))$:$\exists\; c > 0$, $f(n) \leqslant c g(n)$ ($n$ 足够大)
36+
- $f(n) = \Omega(g(n))$:$\exists\; c > 0$, $f(n) \geqslant c g(n)$ ($n$ 足够大)
37+
- $f(n) = \Theta(g(n))$:$\exists\; c_1, c_2 > 0$, $c_1 g(n) \leqslant f(n) \leqslant c_2 g(n)$ ($n$ 足够大)
38+
> 即 $f(n) = O(g(n))$ 且 $f(n) = \Omega(g(n))$
39+
- $f(n) = o(g(n))$:$f(n) / g(n) \to 0$ ($n \to \infty$)
40+
- $f(n) \sim g(n)$:$f(n) / g(n) \to 1$ ($n \to \infty$)
41+
42+
!!! example "Example 1"
43+
先声明以下基本定义与定理:对于 $z_1, z_2, \ldots, z_n \in \mathbb{R}$
44+
45+
- 凸组合 (convex combination):$\sum_{i=1}^n \lambda_i z_i$, $\lambda_i\geqslant 0$, $\sum_{i=1}^n \lambda_i=1$
46+
- 凸包 (convex hull):$T\subseteq \mathbb{R}^n$, $\mathrm{conv}(T):=\{\text{convex combinations of }z_1, \cdots, z_m\in T, \forall m\in \mathbb{N}\}$
47+
- Caratheodory's Theorm: 对于 $T\subseteq \mathbb{R}^n$,任意 $\mathrm{conv}(T)$ 中的点,都可以被表示为 $n+1$ 个 $T$ 中的点的凸组合
48+
49+
尝试证明如下定理:
50+
51+
!!! abstract "Theorem"
52+
考虑 $T\subseteq \mathbb{R}^n$,令 $T$ 的直径和每个点都被 1 bound,即:
53+
54+
- 直径 (diameter) $\mathrm{diam}(T)=\sup\limits_{x, y\in T} \|x-y\|_2\leqslant 1$
55+
- $\|x\|_2\leqslant 1$,$\forall x\in T$
56+
57+
则 $\forall x\in \mathrm{conv}(T)$,$\forall k\in \mathbb{N}^+$, 我们能够找到 $x_1, \cdots, x_k\in T$ s.t.
58+
59+
$$
60+
\left\| x - \frac{1}{k}\sum_{i=1}^k x_i \right\|_2 \leqslant \frac{1}{\sqrt{k}}
61+
$$
62+
63+
> 使用 $k$ 个点估计 $x$ 的误差不受空间维度 $n$ 影响,仅与 $k$ 有关
64+
65+
证明思路:考虑 $k$ 个随机点 $Z_1, \cdots, Z_k\in T$,通过对这个随机变量的构造,使其满足 $\mathbb{E}\|x - 1/k \sum Z_i\|_2^2 \leqslant 1/k$,则说明存在 $Z_1, \cdots, Z_k$ 的某组采样值 $x_1, \cdots, x_k$ 满足定理要求
66+
67+
??? general "Proof"
68+
根据 Caretheodory's Theorm,$\forall x\in \mathrm{conv}(T)$,$\exists y_1, \cdots, Y_{n+1}\in T$,$\lambda_1, \cdots, \lambda_{n+1}\geqslant 0$,$\sum_{i=1}^{n+1}\lambda_i=1$,s.t.
69+
70+
$$
71+
x = \sum_{i=1}^{n+1}\lambda_i y_i
72+
$$
73+
74+
构造随机变量 $Z$,其概率分布 $P$ 满足 $P(Z=y_i)=\lambda_i$,则
75+
76+
$$
77+
\mathbb{E}Z = \sum_{i=1}^{n+1}\lambda_i y_i
78+
$$
79+
80+
考虑 $k$ 个与 $Z$ 独立同分布的随机变量 $Z_1, \cdots, Z_k$,则
81+
82+
$$
83+
\begin{aligned}
84+
\mathbb{E}\left\| x - \frac{1}{k}\sum_{i=1}^k Z_i \right\|_2^2
85+
&= \mathbb{E}\left\| \frac{1}{k} \sum_{i=1}^{k} (x - Z_i) \right\|_2^2 \\
86+
&= \frac{1}{k^2}\mathbb{E}\left\| \sum_{i=1}^{k} (\mathbb{E}Z_i - Z_i) \right\|_2^2 \\
87+
&= \frac{1}{k^2}\sum_{i=1}^{k} \mathbb{E}\left\| Z_i - \mathbb{E}Z_i \right\|_2^2 - \frac{2}{k^2}\sum_{1\leqslant i < j \leqslant n} \underbrace{\mathbb{E}(Z_i - \mathbb{E}Z_i )^{\top} (Z_j - \mathbb{E}Z_j )}_{\mathrm{Cov}(Z_i, Z_j)} \\
88+
&= \frac{1}{k^2}\sum_{i=1}^{k} \mathbb{E}\left\| Z_i - \mathbb{E}Z_i \right\|_2^2 \\
89+
\end{aligned}
90+
$$
91+
92+
注意由于 $Z_i, Z_j$ 相互独立,$\mathrm{Cov}(Z_i, Z_j)=0$。而
93+
94+
$$
95+
\mathbb{E}\left\| Z_i - \mathbb{E}Z_i \right\|_2^2
96+
= \mathbb{E}\|Z\|_2^2 - \|\mathbb{E}Z\|_2^2
97+
\leqslant \mathbb{E}\|Z\|_2^2
98+
= \sum_{j=1}^{n+1}\lambda_j \|y_j\|_2^2
99+
\leqslant \sum_{j=1}^{n+1}\lambda_j
100+
= 1
101+
$$
102+
103+
因此就有
104+
105+
$$
106+
\mathbb{E}\left\| x - \frac{1}{k}\sum_{i=1}^k Z_i \right\|_2^2
107+
\leqslant \frac{1}{k^2} \cdot k
108+
= \frac{1}{k}
109+
\Rightarrow
110+
\exists\: x_1, \cdots, x_k\in T, \text{s.t.} \left\| x - \frac{1}{k}\sum_{i=1}^k x_i \right\|_2 \leqslant \frac{1}{\sqrt{k}}
111+
$$
112+
113+
!!! question "作业"
114+
对于 $x_1, \cdots, x_n\in \mathbb{R}^n$, $\|x_i\|_2\leqslant 1$, 考虑任意 $p_1, \cdots, p_n\in [0, 1]$, $w=p_1x_1 + \cdots + p_nx_n$
115+
116+
> 注意,$\sum p_i$ 不一定为 1 了
117+
118+
(1) 求证存在 $\epsilon_1, \cdots, \epsilon_n\in \{0, 1\}$ 使得 $v=\epsilon_1x_1 + \cdots \epsilon_nx_n$ 满足
119+
120+
$$
121+
\|w-v\|_2 \leqslant \frac{\sqrt{n}}{2}
122+
$$
123+
124+
(2) 找到一个复杂度为 $O(n^2)$ (或更低)的确定性算法解出可行的 $\epsilon_1, \cdots, \epsilon_n$
125+
126+
127+
Timestamp: 0:00:00-1:03:47
128+
129+
!!! warning "本页面还在建设中"
13 KB
Loading
60.8 KB
Loading
38.3 KB
Loading

0 commit comments

Comments
 (0)