已知每个优化/搜索问题都有一个等效的决策问题。例如最短路径问题
- 优化/搜索版本: 给定一个未加权无向图和两个顶点,找到之间的最短路径和。
- 决策版本: 给定无向非加权图,两个顶点和一个非负整数,在和之间的是否存在一条路径,该路径的长度最大为?v ,Ü ∈ V ķ ģ ù v ķ
X ∈ X ˚F (X )≤ ķ
但是反过来也是如此,也就是说,每个决策问题都有一个等效的优化问题吗?如果不是,那么没有等效优化问题的决策问题的例子是什么?
已知每个优化/搜索问题都有一个等效的决策问题。例如最短路径问题
- 优化/搜索版本: 给定一个未加权无向图和两个顶点,找到之间的最短路径和。
- 决策版本: 给定无向非加权图,两个顶点和一个非负整数,在和之间的是否存在一条路径,该路径的长度最大为?v ,Ü ∈ V ķ ģ ù v ķ
X ∈ X ˚F (X )≤ ķ
但是反过来也是如此,也就是说,每个决策问题都有一个等效的优化问题吗?如果不是,那么没有等效优化问题的决策问题的例子是什么?
Answers:
正如评论中已经提到的那样,它通常取决于定义。我试图回答这个问题需要很多定义,因此这将是我无法给出简明答案的另一个例子。
定义:一个优化问题是一个元组与
定义:一种最佳解决方案的实例的的一个优化问题P Ô是一个可行的解决方案Ý ∈ ˚F (X )为其Ž (X ,ÿ )= ⊙ { Ž (X ,ÿ ')| ý ' ∈ ˚F (x )}。最佳解的值用O p t (x )表示并称为最佳。
定义:该评价问题,记为,对应于优化问题P ø如下:给定一个实例X ∈ X,计算ö p 吨(X )如果X具有的最佳解决方案和输出“没有最优解”否则。
请注意,这只是要求最优解决方案的价值,而不是整个解决方案本身及其所有细节。
定义:在决策问题,记为对应于优化问题P ø如下:给定一对(X ,ķ ),其中X ∈ X和ķ ∈ Q,决定是否X具有可行解ý使得Ž (X ,ÿ )≤ ķ如果⊙ = 分钟,并且使得ž (X ,ÿ )如果 ⊙ = 最大值。
现在第一观察是,。证明并不困难,在此省略。
现在直观地讲,对应于P O的和P D并不比P O本身困难。为了正式表达这种感觉(从而定义等效含义),我们将使用归约法。
回想一下,一个语言是多项式时间可还原成另一种语言大号2,如果有一个函数˚F,在多项式时间可计算,使得对于所有单词X,X ∈ 大号1个 ⇔ ˚F (X )∈ 大号2。这种还原性被称为卡普或许多到一个还原性,并且如果大号1 还原为大号2通过写以这种方式,我们表示这个大号1 ≤ 米大号2。这是NP完全性定义的中心概念。
不幸的是,语言之间存在多对一的缩减,并且不清楚如何在优化问题的上下文中使用它们。因此,我们需要考虑另一种可还原性,图灵可还原性。首先我们需要这个:
定义:问题P的一个预言子是一个(假设的)子例程,可以在恒定时间内解决P的实例。
定义:一个问题是多项式时间图灵还原的一个问题P 2,写入P 1 ≤ Ť P 2,如果实例P 1可在多项式时间由算法与访问解决于Oracle P 2。
非正式地,正如,关系P 1 ≤ Ť P 2所表示,即P 1不大于更难P 2。还很容易看出,如果P 2可以在多项式时间内求解,那么P 1也可以。再次≤ Ť是一个传递关系。以下事实显而易见:
让,然后P d ≤ Ť P Ë ≤ Ť P Ò。
因为给出了完整的解决方案,所以计算其值并确定其是否满足边界很简单。
定义:如果两个问题和P 2二者关系P 1 ≤ 牛逼P 2,P 2 ≤ P 1所保持,我们写P 1 ≡ 牛逼P 2 ; 我们的等值概念。
我们现在准备证明给出了相应的优化问题和 ž是整数值。我们必须表明, P Ë ≤ 牛逼P d成立。我们可以确定 ⊙ { ž (X ,Ÿ )| Ÿ ∈ ˚F (X )}用二进制搜索usign为ORCALE P d。N的定义确保为一些多项式q,所以在二进制搜索步骤的数目是多项式 | x | 。◻
对于优化问题与P E的关系不太清楚。在许多具体情况,可以直接表明P d ≡ 牛逼P Ë ≡ 牛逼P Ø。为了证明这一点通常在此处给出的框架内成立,我们需要一个附加的假设。
首先,我们需要扩展从对语言对相应的决策问题。那么很容易看出≤ 牛逼是不是更宽泛≤ 米。
令和P '为决策问题;然后P ≤ 米P ' ⇒ P ≤ Ť P '。之所以成立,是因为可以将多对一归约解释为以非常有限的方式使用oracle:oracle在最后被调用一次,并且其结果也作为总结果返回。◻
现在我们可以开始结局了:
让和假设ž是整数值和P d是一个NP完全,然后P d ≡ Ť P Ë ≡ Ť P Ò。与以前的意见,但它仍然显示P Ø ≤ 牛逼P ê。要做到这一点,我们将表现出一个问题P ' Ô ∈ ñ P Ø使得P Ø ≤ 牛逼P ' ē。那我们有
现在详细说明:假设的可行解是使用配有总阶的字母Σ编码的。令w 0,w 1,…为来自∑ ∗的单词,它们在具有相同长度的单词块内按不减长度的顺序和字典顺序排列。(因此瓦特0是空字)。对于所有ý &Element; &Sigma; *让σ (Ý )表示唯一整数我使得ý = 瓦特我。两者σ和能够在多项式时间内计算的。让q是多项式使得对于所有X ∈ X和所有ÿ ∈ ˚F (X ),我们有σ (Ý )< 2 q (| X |)。
现在的问题是相同的P ø除了一个修改目标函数ž '。对于X ∈ X和ÿ ∈ ˚F (X ),我们采取。 Z ′在多项式时间内从而可计算。
为了表明 我们观察到 X是可行的 P Ø当且仅当它是可行的 P ' ē。我们可以假设是这种情况,因为相反的情况很难处理。
的substituion 为Ž是在这个意义上的单调,对于所有ÿ 1,ÿ 2 ∈ ˚F (X ),如果Ž (X ,ÿ 1然后 ž '(X ,ÿ 1)< Z '(x ,y 2)。这意味着对于 x的每个最优解在是最佳的解决方案X在P Ö。因此,我们的任务降低到最优解的计算Ÿ的X在P ' Ò。
查询为Oracle 我们可以得到的值Z ^ '(X ,Y ^ )= 2 q (| X |) ⋅ ž (X。将该模的余数乘以 2 q (| x |)即可得出 σ (y ),可以从该值以多项式时间计算 y。
正如评论所说,答案取决于确切的定义。让我以非常基本(甚至是天真)的方式来解释这个问题。
让是有一定的关系,那就是小号⊆ { (一,b )| 一,b &Element; &Sigma; * }。
现在我们为S定义一个搜索问题:
鉴于,找到一个b,使得(一,b )∈ 小号。
和决定问题的:
鉴于的答案是否(一,b )∈ 小号。
(例如,在问题给出的示例中,将保存所有对(u ,v ,k ) ,使得u和v之间存在一条比k短的路径。)
请注意,这两个问题已得到明确定义。 对于这个定义,我们可以问两个问题对于任何是否“等效” 。在“等效”中,我的意思是,如果其中一个是可计算的(即,存在一种可以解决该问题的算法),则另一个也可以计算。通常,它们不是。
主张1:决策暗示搜索。
证明:以为解决S的决策问题的算法。给定一个输入一个,我们可以运行d 小号(一,X )对于任何X &Element; &Sigma; *,一前一后,或并联连接。如果存在b,使得(一,b )∈ 小号,我们最终会找到它。如果不是,算法可能不会停止†。
权利要求2:搜寻并不能意味着决策。
原因是搜索算法返回的可能不同于我们所需的b。也就是说,对于每个a,都有一些b很容易找到,而其他b '则不是。例如,让大号是一些不可判定语言,然后定义 小号= { (X ,0 )| X ∈ &Sigma; * } ∪ { (X ,1 )| X ∈ 大号} 。 每x
这取决于小号。例如,如果 S是有界的,则可能存在确实停止的算法。