优化版本的决策问题


26

已知每个优化/搜索问题都有一个等效的决策问题。例如最短路径问题

  • 优化/搜索版本: 给定一个未加权无向图G=(V,E)和两个顶点v,u∈V,找到之间的最短路径v和。u
  • 决策版本: 给定无向非加权图,两个顶点和一个非负整数,在和之间的是否存在一条路径,该路径的长度最大为?v ,Ü ∈ V ķ ģ ù v ķG=(V,E)v,u∈VkGuvk

x∗∈XX ∈ X ˚F (X )≤ ķf(x∗)=min{f(x)∣x∈X}x∈Xf(x)≤k

但是反过来也是如此,也就是说,每个决策问题都有一个等效的优化问题吗?如果不是,那么没有等效优化问题的决策问题的例子是什么?


6
该位等于零吗?
— JeffE 2012年

5
您必须更详细地解释“等效”,例如,您是说一个可以在多项式时间(或对数空间)中将另一个用作oracle / blackbox来求解吗?您是否只关心内部的所有问题?NP
— 卡夫

1
根据您的观点,该问题是微不足道的(采用不带“ ”的任何决策问题)或不回答(如何证明“没有等效的选择问题”?)。k
— 拉斐尔

Answers:


28

正如评论中已经提到的那样,它通常取决于定义。我试图回答这个问题需要很多定义,因此这将是我无法给出简明答案的另一个例子。


定义:一个优化问题是一个元组与(X,F,Z,⊙)

  • 一组适当编码的(字符串)实例或输入。X
  • 是每个实例映射函数 X ∈ X到一组 ˚F (X )的可行解的 X。Fx∈XF(x)x
  • 是目标函数每对映射(X ,ÿ ),其中 X ∈ X和 ÿ ∈ ˚F (X ),为实数 Ž (X ,ÿ )称为值的 ÿ。Z(x,y)x∈Xy∈F(x)Z(x,y)y
  • 是优化方向,最小值或最大值。⊙minmax

定义:一种最佳解决方案的实例的的一个优化问题P Ô是一个可行的解决方案Ý ∈ ˚F (X )为其Ž (X ,ÿ )= ⊙ { Ž (X ,ÿ ')| ý ' ∈ ˚F (x )}。最佳解的值用O p t (x )表示x∈XPOy∈F(x)Z(x,y)=⊙{Z(x,y′)∣y′∈F(x)}Opt(x)并称为最佳。

定义:该评价问题,记为,对应于优化问题P ø如下:给定一个实例X ∈ X,计算ö p 吨(X )如果X具有的最佳解决方案和输出“没有最优解”否则。PEPOx∈XOpt(x)x

请注意,这只是要求最优解决方案的价值,而不是整个解决方案本身及其所有细节。

定义:在决策问题,记为对应于优化问题P ø如下:给定一对(X ,ķ ),其中X ∈ X和ķ ∈ Q,决定是否X具有可行解ý使得Ž (X ,ÿ )≤ ķ如果⊙ = 分钟,并且使得ž (X ,ÿ )PDPO(x,k)x∈Xk∈QxyZ(x,y)≤k⊙=min如果 ⊙ = 最大值。Z(x,y)≥k⊙=max

现在第一观察是,。证明并不困难,在此省略。PO∈NPO⇒PD∈NP

现在直观地讲,对应于P O的和P D并不比P O本身困难。为了正式表达这种感觉(从而定义等效含义),我们将使用归约法。PEPDPOPO

回想一下,一个语言是多项式时间可还原成另一种语言大号2,如果有一个函数˚F,在多项式时间可计算,使得对于所有单词X,X ∈ 大号1个 ⇔ ˚F (X )∈ 大号2。这种还原性被称为卡普或许多到一个还原性,并且如果大号1 还原为大号2通过写以这种方式,我们表示这个大号1 ≤ 米大号2L1L2fxx∈L1⇔f(x)∈L2L1L2L1≤mL2。这是NP完全性定义的中心概念。

不幸的是,语言之间存在多对一的缩减,并且不清楚如何在优化问题的上下文中使用它们。因此,我们需要考虑另一种可还原性,图灵可还原性。首先我们需要这个:

定义:问题P的一个预言子是一个(假设的)子例程,可以在恒定时间内解决P的实例。PP

定义:一个问题是多项式时间图灵还原的一个问题P 2,写入P 1 ≤ Ť P 2,如果实例P 1可在多项式时间由算法与访问解决于Oracle P 2。P1P2P1≤TP2P1P2

非正式地,正如,关系P 1 ≤ Ť P 2所表示,即P 1不大于更难P 2。还很容易看出,如果P 2可以在多项式时间内求解,那么P 1也可以。再次≤ Ť是一个传递关系。以下事实显而易见:≤mP1≤TP2P1P2P2P1≤T

让,然后P d ≤ Ť P Ë ≤ Ť P Ò。PO∈NPOPD≤TPE≤TPO

因为给出了完整的解决方案,所以计算其值并确定其是否满足边界很简单。k

定义:如果两个问题和P 2二者关系P 1 ≤ 牛逼P 2,P 2 ≤ P 1所保持,我们写P 1 ≡ 牛逼P 2 ; 我们的等值概念。P1P2P1≤TP2P2≤P1P1≡TP2

我们现在准备证明给出了相应的优化问题PD≡TPE和 ž是整数值。我们必须表明, P Ë ≤ 牛逼P d成立。我们可以确定 ⊙ { ž (X ,Ÿ )| Ÿ ∈ ˚F (X )}用二进制搜索usign为ORCALE P d。N的定义PO∈NPOZPE≤TPD⊙{Z(x,y)∣y∈F(x)}PDNPO确保为一些多项式q,所以在二进制搜索步骤的数目是多项式 | x | 。◻|Z(x,y)|≤2q(|x|)q|x|◻

对于优化问题与P E的关系不太清楚。在许多具体情况,可以直接表明P d ≡ 牛逼P Ë ≡ 牛逼P Ø。为了证明这一点通常在此处给出的框架内成立,我们需要一个附加的假设。POPEPD≡TPE≡TPO

首先,我们需要扩展从对语言对相应的决策问题。那么很容易看出≤ 牛逼是不是更宽泛≤ 米。≤m≤T≤m

令和P '为决策问题;然后P ≤ 米P ' ⇒ P ≤ Ť P '。之所以成立,是因为可以将多对一归约解释为以非常有限的方式使用oracle:oracle在最后被调用一次,并且其结果也作为总结果返回。◻PP′P≤mP′⇒P≤TP′◻

现在我们可以开始结局了:

让和假设ž是整数值和P d是一个NP完全,然后P d ≡ Ť P Ë ≡ Ť P Ò。与以前的意见,但它仍然显示P Ø ≤ 牛逼P ê。要做到这一点,我们将表现出一个问题P ' Ô ∈ ñ P Ø使得P Ø ≤ 牛逼P ' ē。那我们有PO∈NPOZPD

PD≡TPE≡TPO.
PO≤TPEPO′∈NPOPO≤TPE′第二和第三 ≤ 牛逼,因为决定和评估版本等价的保持较早校对。第三 ≤ Ť从的NP-completness如下 P d和两个事实前面提到的,即 P ö ∈ Ñ P ö ⇒ P d ∈ Ñ P和 P ≤ 米
PO≤TPE′≤TPD′≤TPD≤TPE.
≤T≤TPDPO∈NPO⇒PD∈NP。P≤mPO′⇒P≤TPO′

现在详细说明:假设的可行解是使用配有总阶的字母Σ编码的。令w 0,w 1,…为来自∑ ∗的单词,它们在具有相同长度的单词块内按不减长度的顺序和字典顺序排列。(因此瓦特0是空字)。对于所有ý &Element; &Sigma; *让σ (Ý )表示唯一整数我使得ý = 瓦特我。两者σPOΣw0,w1,…Σ∗w0y∈Σ∗σ(y)iy=wiσ和能够在多项式时间内计算的。让q是多项式使得对于所有X ∈ X和所有ÿ ∈ ˚F (X ),我们有σ (Ý )< 2 q (| X |)。σ−1qx∈Xy∈F(x)σ(y)<2q(|x|)

现在的问题是相同的P ø除了一个修改目标函数ž '。对于X ∈ X和ÿ ∈ ˚F (X )PO′POZ′x∈Xy∈F(x),我们采取。 Z ′Z′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)Z′在多项式时间内从而可计算。PO′∈NPO

为了表明 我们观察到 X是可行的 P Ø当且仅当它是可行的 P ' ē。我们可以假设是这种情况,因为相反的情况很难处理。PO≤TPE′xPOPE′

的substituion 为Ž是在这个意义上的单调,对于所有ÿ 1,ÿ 2 ∈ ˚F (X ),如果Ž (X ,ÿ 1Z′Zy1,y2∈F(x)然后 ž '(X ,ÿ 1)< Z '(x ,y 2)。这意味着对于 x的每个最优解Z(x,y1)<Z(x,y2)Z′(x,y1)<Z′(x,y2)x在是最佳的解决方案X在P Ö。因此,我们的任务降低到最优解的计算Ÿ的X在P ' Ò。PO′xPOyxPO′

查询为Oracle 我们可以得到的值Z ^ '(X ,Y ^ )= 2 q (| X |) ⋅ ž (XPE′。将该模的余数乘以 2 q (| x |)即可得出 σ (y ),可以从该值以多项式时间计算 y。Z′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)2q(|x|)σ(y)y


“问题P的预言程序是一个(假设的)子例程,可以在恒定时间内解决P的实例。” 甲骨文必须只花固定的时间吗?
— 蒂姆(Tim)

@Tim当然有书,我在另一个答案
— uli 2012年

@Tim关于oracle的:如果已经发现/设想的降低两个问题之间甲和乙已减少找到一种有效的算法的问题甲寻找一种有效的算法乙。或者换句话说,减少告诉你,为了解决一个你可以使用乙。就像在A的算法中使用B的子例程。但是问题A和BA≤TBABABABBAAB通常是我们不知道有效解决方案的问题。而且在图灵可简化性的情况下,我们甚至在根本无法确定所涉及问题的情况下使用它。
— uli 2012年

@Tim因此,是未知的子例程。将从归约法派生的A假设算法称为oracle B是复杂性理论中的一种习惯。将B的未知子例程称为oracle表示,我们无法希望为B找到有效的算法,就像我们无法希望获得B的oracle一样。这种选择有些不幸,因为它暗示着一种神奇的能力。甲骨文的成本应该是| x | 因为子例程至少必须读取输入x。BABBBB|x|x
— uli 2012年

3
一个很好的答案。我唯一要添加的内容(现在通过另一个问题来讨论)是“优化方向”是不必要的复杂性,具体而言,我们始终可以假设目标函数应当最大化。如果目的是尽量减少,那么我们就可以定义一个新的目标函数ž ' = - ž和重写所有的最小化ž为最大化ž “。ZZ′=−ZZZ′
— 史蒂文·斯塔德尼基

5

正如评论所说,答案取决于确切的定义。让我以非常基本(甚至是天真)的方式来解释这个问题。

让是有一定的关系,那就是小号⊆ { (一,b )| 一,b &Element; &Sigma; * }。SS⊆{(a,b)∣a,b∈Σ∗}

现在我们为S定义一个搜索问题:S

鉴于,找到一个b,使得(一,b )∈ 小号。ab(a,b)∈S

和决定问题的:S

鉴于的答案是否(一,b )∈ 小号。(a,b)(a,b)∈S

(例如,在问题给出的示例中,将保存所有对(u ,v ,k ) ,使得u和v之间存在一条比k短的路径。)S(u,v,k)uvk

请注意,这两个问题已得到明确定义。 对于这个定义,我们可以问两个问题对于任何是否“等效” 。在“等效”中,我的意思是,如果其中一个是可计算的(即,存在一种可以解决该问题的算法),则另一个也可以计算。通常,它们不是。S

主张1:决策暗示搜索。

证明:以为解决S的决策问题的算法。给定一个输入一个,我们可以运行d 小号(一,X )对于任何X &Element; &Sigma; *,一前一后,或并联连接。如果存在b,使得(一,b )∈ 小号,我们最终会找到它。如果不是,算法可能不会停止†。DSSaDS(a,x)x∈Σ∗b(a,b)∈S†

权利要求2:搜寻并不能意味着决策。

原因是搜索算法返回的可能不同于我们所需的b。也就是说,对于每个a,都有一些b很容易找到,而其他b '则不是。例如,让大号是一些不可判定语言,然后定义 小号= { (X ,0 )| X ∈ &Sigma; * } ∪ { (X ,1 )| X ∈ 大号} 。 每xbabb′L

S={(x,0)∣x∈Σ∗}∪{(x,1)∣x∈L}.
x搜索算法可以返回。但是,没有决策算法可以回答是否正确(X ,1 )∈ 小号,对于所有的对(X ,1 )。如果可能的话,它将决定一个无法确定的问题,这是不可能的。0(x,1)∈S(x,1)


这取决于小号。例如,如果 S是有界的,则可能存在确实停止的算法。†SS


2
正确的决策问题是存在 ST ⟨ 一个,b ⟩ &Element; 小号。b⟨a,b⟩∈S
— Kaveh

如果将决策定义为存在,则搜索隐含决策。b
— Ran G.

1
从较弱的意义上讲,即可计算性而不是复杂性是一个更为棘手的问题。
— 卡韦
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.