优化版本的决策问题


26

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

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

xXX X ˚F X ķf(x)=min{f(x)xX}xXf(x)k

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


6
该位等于零吗?
JeffE 2012年

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

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

Answers:


28

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


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

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

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

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

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

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

现在第一观察是,。证明并不困难,在此省略。PONPOPDNP

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

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

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

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

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

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

,然后P d Ť P Ë Ť P ÒPONPOPDTPETPO

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

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

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

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

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

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

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

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

PDTPETPO.
POTPEPONPOPOTPE第二和第三牛逼,因为决定和评估版本等价的保持较早校对。第三Ť从的NP-completness如下 P d和两个事实前面提到的,即 P öÑ P öP dÑ P P
POTPETPDTPDTPE.
TTPDPONPOPDNPPmPOPTPO

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

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

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

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

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


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

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

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

@Tim因此,是未知的子例程。将从归约法派生的A假设算法称为oracle B是复杂性理论中的一种习惯。将B的未知子例程称为oracle表示,我们无法希望为B找到有效的算法,就像我们无法希望获得B的oracle一样。这种选择有些不幸,因为它暗示着一种神奇的能力。甲骨文的成本应该是| x | 因为子例程至少必须读取输入xBABBBB|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 ,使得uv之间存在一条比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 大号} xbabbL

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


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


2
正确的决策问题是存在 ST 一个b &Element; 小号ba,bS
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.