自选题的搜索解法 假掉的上界三

这篇文章仅作备份,其内容没有阅读价值。

上界三

这一小节中,我们仍然沿用上一小节所定义的树 \(T\) ,并依然考虑对 \(T\) 中深度为 1 的结点进行划分。为了与 \(T\) 区分,原先的(以 \(R\) 为根的)树记作 \(S\)

在前一篇中,我们给出了从树 \(S\) 还原递归栈的方法,即将根 \(R\) 的所有儿子划分成长为 1 或 2 的段。容易发现,要想让还原出来的递归栈合法,分出来的任何一个长为 1 的段都得是单个的叶子结点。下面将利用这一点来得到 \(F_dC_{K,d}\) 的上界。

考察对 \(R\) 的儿子进行划分所得的结果。对于分出的每一个长为 2 的段,我们将其与紧随其后的所有长为 1 的段“捆绑”,并把捆起来的这些段合称为一个“簇”。不妨假设最开头的一段长为 2 (若忽略多项式因子则该假设不会影响答案),则易见所有的段都会被捆到某个簇里。

对于一个簇:

  • 其中至少包括了 \(R\) 的 2 个儿子(因为有一个长为 2 的段),最多可包括任意多个(因为可以有任意多个长为 1 的段)。
  • 其中至少包括了 \(T\) 中的 0 个深度为 1 的结点,最多可包括任意多个。若这个簇包含 \(T\) 中的 \(a\) 个深度为 1 的结点,则这 \(a\) 个结点一定都属于该簇中那个长为 2 的段,且在该段内部有 \(\left[x^a\right]\left(1-x\right)^{-2}=a+1\) 种分配方案。
  • 综合上述两点可知,这个簇中包含 \(T\)\(a\) 个深度为 1 的结点和 \(R\)\(b\) 个儿子,该情况的方案数是 \(\left[x^ay^b\right]\frac 1{\left(1-x\right)^2}\cdot \frac {y^2}{1-y}\)

\(R\) 共有 \(d\) 个儿子,设簇的总个数为 \(j\) ,又因为 \(T\) 中至多有 \(K-d\) 个深度为 1 的结点,所以此时总的划分方案数(包括对 \(R\) 的儿子的划分 和 对 \(T\) 中深度为 1 的点的划分)为 \(\left[x^{K-d}y^{d}\right](1-x)^{-2j}\cdot y^{2j}(1-y)^{-j}={K-d+2j-1\choose K-d}{(d-2j)+j-1\choose d-2j}\)

于是我们得到:(下文中用 \(i\) 来表示 \(K-d\)

\[\begin{align} F_{d}C_{K,d} &\leq C_i\sum\limits_{j=1}^{\lfloor d/2\rfloor} {i+2j-1\choose i}{(d-2j)+j-1\choose d-2j} \notag\\ &= O\left(C_i\sum\limits_{j=1}^{\lfloor d/2\rfloor} {i+2j-1\choose i}{d-j-1\choose j-1}\right) \notag\\ &= O\left(\mathrm{poly}(K)\cdot 4^i\sum\limits_{j=1}^{d/2} {i+2j\choose i}{d-j\choose j}\right) \notag\\ \end{align} \]

由于我们不关注多项式因子,所以在最后一步中,我们省去了组合数上/下指标中的常数项,还有求和范围上的取整号(易证这些东西都至多只会影响多项式因子)。之后我们也默认会做类似的省略。

引理3:对正整数 \(a\leq b\) ,有 \(\prod_{i=a}^b i\leq \left(\frac{a+b}2\right)^{b-a+1}\)

  • 证明:两边同时开 \(b-a+1\) 次根,转化为 \(\sqrt[b-a+1]{\prod_{i=a}^b i} \leq \frac{\sum_{i=a}^b i}{b-a+1}\) ,然后由均值不等式显然。

由引理3可得:

\[\begin{align} &\phantom{\ =}\sum\limits_{j=1}^{d/2} {i+2j\choose i}{d-j\choose j} \notag\\ &=\frac 1{i!}\sum\limits_{j=1}^{d/2} \frac{(i+2j)^{\underline{i}}(d-j)^{\underline{j}}}{j!} \notag\\ &=O\left(\mathrm{poly}(K)\frac 1{i!}\sum\limits_{j=1}^{d/2} \frac{\left(\frac i2+2j\right)^i\left(d-\frac 32j\right)^j}{j!} \right) \notag \end{align} \]

对于 \(\frac{\left(\frac i2+2j\right)^i\left(d-\frac 32j\right)^j}{j!}\) ,我们将其拆解为两个因式 \(A(i,j)=\frac{\left(\frac i2+2j\right)^i}{j!}\)\(B(d,j)=\left(d-\frac 32j\right)^j\)

此时如果直接用 \(\frac 1{i!}\left(\sum_j A(i,j)\right)\left(\sum_j B(d,j)\right)\) 来作为上界,会发现这个界还不如上界二来得紧。

  • 其实如果不使用引理3,而是直接用组合数形式的 \(A,B\) 的话,那么 \(\frac 1{i!}\left(\sum_j A(i,j)\right)\left(\sum_j B(d,j)\right)\) 这个上界是和上界二完全等价的。

但事实上,当 \(j\) 变化的时候,\(A(i,j)\) 的最大值和 \(B(d,j)\) 的最大值是错位的。于是我们可以故技重施,利用这一错位来改进上界。

具体地说,我们将找到 \(j_0=\arg\max_j A(i,j)\cdot B(d,j)\) ,并用 \(A(i,j_0)\cdot B(d,j_0)\) 来作为(忽略多项式因子后的)上界。

定位 \(A(i,j)\cdot B(d,j)\) 的最大值

引理4:\(n!=\Theta\big(\mathrm{poly}(n)\cdot \exp(n\log n-n)\big)\) 。证明:

  • 两边取自然对数,转化为证明 \(\sum_{i=2}^n \log i=O(\log n)+n\log n-n\)
  • 注意到 \(\int_{i-1}^i \log x\,\mathrm{d}x\leq \log i\leq \int_i^{i+1} \log x\,\mathrm{d}x\)
  • 进而 \(\int_1^n \log x\,\mathrm{d}x \leq \sum_{i=2}^n \log i \leq \int_2^{n+1} \log x\,\mathrm{d}x\)
  • \(\left(n\log n-n\right)+1\leq \sum_{i=2}^n \log i \leq \big((n+1)\log(n+1)-(n+1)\big)-(2\log 2-2)\)

因此,以下我们将用 \(\exp(n\log n-n)\) 来代替阶乘 \(n!\)

\(\log(A(i,j)\cdot B(d,j))\) 关于 \(j\) 求导:

\[\begin{align} \frac{\mathrm{d}\log(A(i,j)\cdot B(d,j))}{\mathrm{d}j} &=\frac{\mathrm{d}\left(i\log\left(\frac i2+2j\right)+j\log\left(d-\frac32j\right)-j\log j+j\right)}{\mathrm{d}j} \notag\\ &=\frac{2i}{\frac i2+2j} + \log\left(d-\frac 32j\right) - \frac 32\cdot \frac j{d-\frac 32j} - \log j \notag\\ &=\frac{2i}{\frac i2+2j} - \log\left(\frac j{d-\frac32j}\right) - \frac 32\cdot\frac j{d-\frac32j} \notag \end{align} \]

\(-\log(x)-\frac 32x\) 是关于 \(x\) 的单调递减函数, \(\frac j{d-\frac32j}\) 是关于 \(d\) 的单调递增函数,所以 \(-\log\left(\frac j{d-\frac32j}\right) - \frac 32\cdot\frac j{d-\frac32j}\) 是关于 \(d\) 的单调递减函数。

\(\alpha=0.28\) ,则当 \(j=\alpha d\) 时,计算可得

\[-\log\left(\frac j{d-\frac32j}\right) - \frac 32\cdot\frac j{d-\frac32j}\approx 0.003 \]

于是,对任意的 \(j_1\leq \alpha d\) ,必有

\[-\log\left(\frac {j_1}{d-\frac32j_1}\right) - \frac 32\cdot\frac {j_1}{d-\frac32j_1}>0 \]

进而

\[\left.\frac{\mathrm{d}\log(A(i,j)\cdot B(d,j))}{\mathrm{d}j}\right|_{j=j_1}>0 \]

既然在 \(j\leq \alpha d\) 时上述导数都为正,那么显然有 \(j_0>\alpha d\)

计算 \(A(i,j_0)\) 的上界

\(\log A(i,j)\) 关于 \(j\) 求导:

\[\begin{align} \frac{\mathrm{d}\log A(i,j)}{\mathrm{d}j} &=\frac{\mathrm{d}\left(i\log\left(\frac i2+2j\right)-j\log j+j\right)}{\mathrm{d}j} \notag\\ &=\frac{2i}{\frac i2+2j} - \log j \notag \end{align} \]

注意到 \(\frac{2i}{\frac i2+2j}\leq 4\) ,故对于 \(j_1>e^4\) ,必有

\[\left.\frac{\mathrm{d}\log A(i,j)}{\mathrm{d}j}\right|_{j=j_1}<0 \]

所以只要 \(\alpha d>e^4\) ,我们便可断定

\[\arg\max_{j\in\left[\alpha d,\frac 12\right]} A\left(i,j\right) = \alpha d \]

换句话说,只要 \(d>O(1)\) ,就必有 \(A\left(i,j_0\right)\leq A\left(i,\alpha d\right)\)

计算 \(B(d,j_0)\) 的上界

\(\log B(d,j)\) 关于 \(j\) 求导:

\[\begin{align} \frac{\mathrm{d}\log B(d,j)}{\mathrm{d}j} &=\frac{\mathrm{d}\left( j\log\left(d-\frac32j\right) \right)}{\mathrm{d}j} \notag\\ &=\log\left(d-\frac 32j\right) - \frac 32\cdot \frac j{d-\frac 32j} \notag \end{align} \]

注意到 \(d-\frac 32j\geq \frac d4\) ,进而

\[\log\left(d-\frac 32j\right) \geq \log \frac d4 \\ \frac 32\cdot \frac j{d-\frac 32j} < \frac 32 \cdot \frac d{d-\frac 32j} \leq \frac 32 \cdot 4 = 6 \]

所以只要 \(\frac d4 > e^6\)\(\frac{\mathrm{d}\log B(d,j)}{\mathrm{d}j}\) 就一定恒为正。

换句话说,只要 \(d > O(1)\) ,就必有 \(B\left(d,j_0\right)\leq B\left(d,\frac d2\right)\)

计算整体的上界

综上所述,只要 \(d>O(1)\) ,就必有

\[\begin{align} \frac 1{i!}\sum_j A(i,j)B(d,j) &=O\left(\mathrm{poly}(K)\cdot \frac 1{i!}A\left(i,j_0\right)B\left(d,j_0\right)\right) \notag\\ &=O\left(\mathrm{poly}(K)\cdot \frac 1{i!}A\left(i,\alpha d\right)B\left(d,\frac d2\right)\right) \notag\\ &=O\left(\mathrm{poly}(K)\cdot \frac 1{i!}\cdot\frac{\left(\frac i2+2\alpha d\right)^i}{\left(\alpha d\right)!}\cdot\left(\frac 14d\right)^{d/2}\right) \end{align} \]

你可能会问:既然在这个上界里都用了大 \(O\) 符号了,为何还要特地指明“ \(d>O(1)\) ”?大 \(O\) 符号不是假设变量都趋于无穷的吗?

这是因为,这里的大 \(O\) 是关于变量 \(K=i+d\) 而言的,它只会假设 \(K\) 趋于无穷。虽然 \(K=i+d\) 趋于无穷,但可能是 \(i\) 很大而 \(d\) 很小。

下面我们用 \(T\) 来表示 \(d\) 的阈值。即,当 \(d\) 大于常数 \(T\) 时,上述上界成立。

将上述上界代入原和式:

\[\sum_{i=0}^{K-1} F_{K-i}C_{K,K-i} =O\left( \mathrm{poly}(K)\cdot\left(\sum_{i\in [\frac K2,K-T)}\frac {4^i}{i!}\cdot\frac{\left(\frac i2+2\alpha \left(K-i\right)\right)^i}{\left(\alpha \left(K-i\right)\right)!}\cdot\left(\frac 14\left(K-i\right)\right)^{\left(K-i\right)/2}\\+\sum_{i\in [0,\frac K2)\cup[K-T,K)} C_i{K-1 \choose i}F_{K-i} \right)\right) \]

等号右边的和式被分为了三部分:\(i\in[\frac K2,K-T)\)\(i\in[K-T,K)\)\(i\in[0,\frac K2)\) 。对于前者我们使用了式 \((1)\) ,对于后两者我们使用了上界二。

之所以划分出 \(i\in[K-T,K)\) ,是因为在这个区间上有 \(d\leq T\) ,故无法使用 \((1)\) ;之所以划分出 \(i\in[0,\frac K2)\) ,是因为在这个区间上求出式 \((1)\) 的最大值比较困难。

先来看 \(i\in[K-T,K)\) 的部分。

\[\begin{align} \sum_{i=K-T}^{K-1} C_i{K-1 \choose i}F_{K-i} &=O\left(\mathrm{poly}(K)\cdot \sum_{i=K-T}^{K-1} 4^i{K-1\choose K-i}\varphi^{K-i} \right) \notag\\ &=O\left(\mathrm{poly}(K)\cdot 4^K \sum_{i=K-T}^{K-1} {K-1\choose T}\varphi^{T} \right) \notag\\ &=O\left(\mathrm{poly}(K)\cdot 4^K\right) \notag \end{align} \]

再看 \(i\in[0,\frac K2)\) 的部分。

\[\begin{align} \sum_{i=0}^{\frac K2} C_i{K-1 \choose i}F_{K-i} &= O\left(\mathrm{poly}(K)\cdot \sum_{i=0}^{\frac K2} 4^i2^{K-1}\varphi^{K-i} \right) \notag\\ &= O\left(\mathrm{poly}(K)\cdot \varphi^K2^K\sum_{i=0}^{\frac K2} \left(\frac 4\varphi\right)^i \right) \notag\\ &= O\left(\mathrm{poly}(K)\cdot \varphi^K2^K\left(\frac 4\varphi\right)^{K/2} \right) \notag\\ &= O\left(\mathrm{poly}(K)\cdot {5.09}^K\right) \notag \end{align} \]

最后考察 \(i\in[\frac K2,K-T)\) 的部分。和之前一样,我们用和式中最大的项来作为所有项的总和的渐进上界。

将求和对象取对数之后,关于求和指标求导:

\[\begin{align} &\phantom{\ =}\frac{\mathrm{d}\log\left(\frac {4^i}{i!}\cdot\frac{\left(\frac i2+2\alpha \left(K-i\right)\right)^i}{\left(\alpha \left(K-i\right)\right)!}\cdot\left(\frac 14\left(K-i\right)\right)^{\left(K-i\right)/2}\right)}{\mathrm{d}i} \notag\\ &=\frac{\mathrm{d}\left( i \log 4 - \int_1^i \log(x)\mathrm{d}x +i\log\left(\frac i2+2\alpha(K-i)\right)-\int_1^{\alpha(K-i)} \log(x)\mathrm{d}x+\frac{K-i}2\log\frac{K-i}4\right)}{\mathrm{d}i} \notag\\ &=\log 4-\log i+\log\left(\frac i2+2\alpha(K-i)\right)+\left(\frac 12-2\alpha\right)\frac{i}{\frac i2+2\alpha(K-i)} \notag\\ &\phantom{\ =}+\alpha\log\left(\alpha(K-i)\right)-\frac 12\log\frac{K-i}4-\frac12 \notag\\ &=\log 4-\log i+\log\left(\frac i2+2\alpha(K-i)\right)+\left(\frac 12-2\alpha\right)\frac{i}{\frac i2+2\alpha(K-i)} \notag\\ &\phantom{\ =}+\alpha\log\alpha+\alpha\log(K-i)+\frac 12\log 4-\frac 12\log(K-i)-\frac12 \notag\\ &=\left(\log 4 + \alpha\log\alpha + \frac 12\log 4 - \frac12\right) -\log\frac i{\frac i2+2\alpha(K-i)} - \left(2\alpha - \frac 12\right)\frac{i}{\frac i2+2\alpha(K-i)} \notag\\ &\phantom{\ =} -\left(\frac 12 - \alpha\right)\log(K-i) \notag\\ \end{align} \]

【未完】

posted @ 2021-05-20 11:07  TianyiQ  阅读(89)  评论(0编辑  收藏  举报