Questions tagged «dynamic-programming»

1
动态编程永不比贪婪弱吗?
在电路复杂度方面,我们将各种电路模型的电源分开。 在证明复杂性方面,我们将各种证明系统的能力进行了分隔。 但是在算法上,我们在算法范式的能力之间仍然只有很少的分离。 我下面的问题旨在用两个范式解决后一个问题:贪婪和动态编程。 我们有一套基础要素,并声明了一些子集家族是可行的解决方案。我们假设这个家庭是向下封闭的:可行解的子集是可行的。给定非负权重给地面要素,问题在于计算可行解的最大总权重。 贪心算法从一个空的部分解开始,并且在每个步骤中,如果可能,即如果扩展解仍然可行,则添加一个尚未处理的最大权重元素。著名的Rado-Edmonds定理指出,如果可行解家族是拟阵,该算法将为所有输入加权找到最佳解。 粗略地说,如果DP算法仅使用Max和Sum(或Min and Sum)运算,则它很简单。更具体地说(如约书亚所建议),通过一个简单的DP算法,我将表示一个具有fanin-2 Max和Sum门的(max,+)电路。输入是变量,变量的第iii个对应于赋予第i一世i个元素的权重。这样的电路可以通过仅计算可行解决方案的最大总重量来解决任何此类问题。但是,如果我们有成倍的此类解决方案(几乎总是如此),这可能是一个巨大的过高。 问题1: 是否有拟阵,在其上任何简单的DP算法都需要超多项式运算才能解决相应的最大化问题? 评论(2015年12月24日添加):已经回答了这个问题(请参阅下文):即使在绝大多数国家中也存在这样的拟阵。 下一个问题要求将Greedy和简单DP分开以解决近似问题。在最大权重匹配问题中,可行解的族由完整的二分n × nñ×ñn\times n图中的所有匹配组成。对于给定的边缘权重分配,目标是计算匹配的最大权重(由于权重非负,因此这将始终是完美匹配)。 简单的贪心算法可以在因子2内近似此问题:只是始终取最大重量尚未出现的不相交边缘。所获得的重量将至少是最佳重量的一半。 问题2: 简单的DP算法是否可以仅使用多项式的Max和Sum运算来近似2因子内的Max-Weight匹配问题? 当然,输出倍于边缘的最大权重的平凡DP算法可以在系数n内近似该问题。但是我们想要一个更小的因素。我猜想即使是因子n / log n也无法实现,但是,再次:如何证明这一点? ññnññnn /日志ññ/日志⁡ñn/\log n 相关:最大重量匹配的一个表亲是分配问题:找到完美匹配的最小权重。仅使用运算即可通过线性编程(所谓的匈牙利算法)解决(甚至完全解决)此问题。但较低的Razborov对单调布尔电路的计算永久功能的大小必然意味着(不太直接),任何(分钟,+)电路的任何(!)有限因子必须使用内逼近这个问题ñ Ω (日志ñ )业务。因此,为了最小化O(n3)O(n3)O(n^3)nΩ(logn)nΩ(log⁡n)n^{\Omega(\log n)}问题,简单的DP算法可能比线性编程要弱得多。我上面的问题旨在表明,这种DP算法可能比Greedy还要弱。 有人看到有人正在考虑类似的问题吗? 已添加(2015年12月24日):问题2旨在显示一个特定的最大化问题(最大权重匹配问题)可以通过贪婪算法以来近似,而不能用一个简单的多边形来近似具有相同因子r的 DP 。同时,我获得了贪婪和简单DP之间的较弱分离:对于每个r = o (n / log n ),都有一个显式的最大化问题,可以通过贪婪算法以因子r近似,但是没有多尺寸的简单DP算法可以用更小的近似值r = 2[R=2r=2[R[Rrr = o (n /对数n )[R=Ø(ñ/日志⁡ñ)r=o(n/\log …

1
基本对称多项式的单调算术电路复杂度?
第kkk个基本对称多项式Snk(x1,…,xn)Skn(x1,…,xn)S_k^n(x_1,\ldots,x_n)是所有 k个不同变量的乘积。我对该多项式的单调算术(+,×)电路复杂度感兴趣。一个简单的动态编程算法(以及下面的图1)给出了一个具有O(kn)门的(+,×)电路。(nk)(nk)\binom{n}{k}kkk(+,×)(+,×)(+,\times)(+,×)(+,×)(+,\times)O(kn)O(kn)O(kn) 问题: 是否 知道的下限? Ω(kn)Ω(kn)\Omega(kn) 甲电路是歪斜如果每个产品门的两个输入端的至少一个是可变的。这种电路实际上与开关和整流网络相同(有向无环图,其中的某些边缘用变量标记;每个st路径给出其标记的乘积,输出是所有st路径的总和)。早在40年前,马尔可夫就证明了一个令人吃惊的严格结果:S n k的最小单调算术偏斜电路恰好具有k (n - k + 1 )个乘积门。的上界如下从图1: (+,×)(+,×)(+,\times)SnkSknS_k^n k(n−k+1)k(n−k+1)k(n-k+1) 但是我没有看到任何尝试证明非偏斜电路的下限。这仅仅是我们的“自大”,还是一路上观察到一些固有的困难? PS我知道门对同时计算所有S n 1,… ,S n n是必要的。这是从对0-1输入进行排序的单调布尔电路的大小的下限开始的;请参阅Ingo Wegener的书的第158页。所述AKS排序网络也意味着ø (Ñ 登录Ñ )门在此(布尔值)的情况下就足够了。实际上,鲍尔(Baur)和斯特拉森(Strassen)已经证明了紧约束Θ (n log nΩ(nlogn)Ω(nlog⁡n)\Omega(n\log n)Sn1,…,SnnS1n,…,SnnS_1^n,\ldots,S_n^nO(nlogn)O(nlog⁡n)O(n\log n)Θ(nlogn)Θ(nlog⁡n)\Theta(n\log n)S n n / 2的非单调算术电路的大小。但是单调算术电路呢?Snn/2Sn/2nS_{n/2}^n

4
函数的eta等效性是否可以与Haskell的seq操作兼容?
引理:假设等式我们有(\x -> ⊥) = ⊥ :: A -> B。 证明:⊥ = (\x -> ⊥ x)通过η等价,并(\x -> ⊥ x) = (\x -> ⊥)通过λ下的减少。 Haskell 2010报告第6.2节seq通过两个方程式指定了该函数: 序列:: a-> b-> b seq⊥b =⊥ seq ab = b,如果a≠⊥ 然后声明“因此,⊥与\ x-> not不同,因为seq可用于区分它们。” 我的问题是,这真的是定义的结果seq吗? 隐含的说法似乎是seq将不可计算如果seq (\x -> ⊥) b = ⊥。但是我还不能证明这样的seq说法是没有争议的。在我看来,seq这既是单调的,又是连续的,这使它处于可计算的领域。 诸如seq之类的算法可能会通过枚举以starting开头的域来尝试搜索某些x位置f x ≠ ⊥而工作f。尽管这样的实现,即使有可能,一旦我们想要使seq多态成为现实,也会变得非常麻烦。 是否有证据证明不存在可计算seq的是标识(\x …

1
回文覆盖线
如果给定字符串,一个回文盖是一个序列p 1个p 2 ⋯ p 米字的p 我使得p 1 p 2 ⋯ p 米 = 瓦特和,使得每个p 我是回文。w=σ1σ2…σnw=σ1σ2…σnw=\sigma_1\sigma_2\ldots\sigma_np1p2⋯pmp1p2⋯pmp_1p_2\cdots p_mpipip_ip1p2⋯pm=wp1p2⋯pm=wp_1p_2\cdots p_m = wpipip_i 找到最小的回文覆盖面有多难?(这似乎可以通过动态编程来实现,但是我不确定它是否有效)。 如果将输入作为每个回文长度的界,问题是否会变得更加棘手?bbb 考虑简单的贪心算法,该算法始终采用从当前位置开始的最长回文。例如,如果,则它将输出(121 )⋅ (33 )⋅ (1 )⋅ (2 ),而最佳覆盖率是(1 )⋅ (213312 )。w=1213312w=1213312w=1213312(121)⋅(33)⋅(1)⋅(2)(121)⋅(33)⋅(1)⋅(2)(121)\cdot(33)\cdot(1)\cdot(2)(1)⋅(213312)(1)⋅(213312)(1)\cdot(213312) 贪心算法是否为问题提供2近似值?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.