-
29-09-2020 - |
题
修复一些有限图 $ g=(v,e)$ ,以及一些顶点 $ x $ 。
假设我生成 $ g $ 的大小 $ n $ ,包含 $ x $ ,如下所示:
-
$ 0
i。让 $ b_n $ 是 $ t_ {n-1} $ 之外 $ t_ {n-1} $ 。
II。 form $ t_n $ by
- 样本a对 $(x_n,y_n)\中的e(g)\ cap \ left(v(t_ {n-1})\ times b_n \ light)$ < / span>,具有概率 $ q_n(x_n,y_n | t_ {n-1})$ ,
- add $ y_n $ 到 $ v(t_ {n-1})$ ,并添加 $(x_n,y_n)$ 到 $ e(t_ {n-1})$ 。
-
return $ t_n $ 。
-
天真,总和具有指数级 - 许多术语,这排除了试图直接评估总和。
另一方面,这个问题也是高度结构的(树,递归等),这可能表明某种动态编程方法是可行的。我不确定如何接近这个。
-
相关,我知道如何计算 $ p(t_n | t_0={x \})$ 的非偏见,非负估计器通过使用顺序蒙特卡罗/颗粒滤波的技术具有合理的方差性质。这表明问题至少可以在合理的时间内近似近似。
也假设 $ q_n(x_n,y_n | t_ {n-1})$ 可以轻松地计算所有 $(t_ {n-1},x_n,y_n)$ 。我对有效的和完全计算生成树的边际概率 $ t_n $ ,因为我开始在上$ t_0={x \} $ ,即
$$ p(t_n | t_0={x \})=sum_ {x_ {1:n},y_ {1:n}} \ prod_ {n= 1} ^ n q_n(x_n,y_n | t_ {n-1})。$$
我的问题本质上是我应该期望能够找到它的有效(即多项式)算法,如果是,它可能是什么。
一些想法:
解决方案
no。如果 $ q(x_n,y_n | t_ {n-1})$ 是任意的 - 可以有一个任意依赖于 $ t_ {n-1} $ - 那么这需要指数时间。
考虑一条树 $ t_n $ ,具有单个根节点, $ n-1 $ 叶子,以及从根到每个叶子的边缘。有 $ 2 ^ n $ $ t_n $ ,尤其存在 $ 2 ^ n $ $ t_n $ 的可能值,可以在表达式
中出现$$ \ sum_ {x,y} \ prod_ {n= 1} ^ n q_n(x_n,y_n | t_ {n-1})。$$
人可以使用简单的对手论证来证明评估此表达需要指数时间。假设我们评估 $ q_n(x_n,x_n | t_ {n-1})$ 通过查询hysacle $ x_n ,y_n,t_ {n-1} $ 。假设有一个树 $ t $ 从未查询过的Oracle作为任何 $ t_ {n-1} $ 。选择所有 $ q_n(\ cdots)$ 值,以严格为正。然后,由于 $ Q_N(X_N,Y_N | T)$ 在执行期间没有查询,我们可以在观察算法的输出后选择它;但通过改变它,我们可以选择使算法的输出错误的值(特别是,表达式的值取决于 $ q_n(x_n,y_n | t)$ 但算法的输出不依赖于 $ q_n(x_n,y_n | t)$ ,因此算法的输出无法纠正)。我们已经证明,要生成正确的输出,任何正确的算法都必须查询所有 $ 2 ^ $ 可能的子树的 $ t_n $ 。它至少需要 $ o(1)$ 时间来查询Oracle。
总之,该论点证明了任何用于计算此表达式的正确算法必须采用<跨度类=“math-container”> $ \ oomega(2 ^ n)$ 时间。
我不知道它是否可以始终在 $ o(2 ^ n)$ 时间中,或者是否可能是 $ O(n!)$ 时间可能需要。