• 沒有找到結果。

Decision problem v.s. 

N/A
N/A
Protected

Academic year: 2022

Share "Decision problem v.s. "

Copied!
37
0
0

加載中.... (立即查看全文)

全文

(1)

2011/5/6

(2)
(3)

optimization problem

Decision problem: 輸出是yes/no (1/0) (可不可以 找到答案)

Optimization problem: 輸出是最好的解 (可以的 答案中找出最好的那個)

例子: Shortest path v.s. Path

NP‐Complete只適用於decision problems

(4)

Decision problem v.s. 

optimization problem

怎麼將optimization problem轉換成decision  problem呢?

對要optimize的值設定一個bound

將Shortest path轉換成decision problem:

給定graph G, vertices u & v, integer k, 有沒有從u 到v的路徑使用少於k個edge?

(5)
(6)

用Reduction證明”一樣難”

假設以下兩樣存在

則B也沒有polynomial‐time algorithm可以解

使用反證法,假設有

A: no polynomial‐time algorithm exist Polynomial‐time reduction algorithm:

instances of A  instances of B

B: polynomial‐time algorithm Polynomial‐time reduction algorithm:

instances of A  instances of B

A: polynomial‐time algorithm

矛盾. 所以B也沒有.

(7)

易解”?

Θ 雖然是polynomial time, 但實務上這麼高次 的多項式並不常見

通常如果找到一個polynomial‐time algorithm, 比較 快的方法很快也會被找到

通常使用不同的computation model(之後自動機會 教到, 現在可以想像是單CPU v.s. 多CPU的機器), 某 model可用polynomial‐time解的問題在另外一個 model也可用polynomial‐time解

Polynomials are closed under addition, multiplication,  and composition.

(8)

Abstract problem

I: instances of 

problem S: solutions

Q: Abstract problem (binary relation)

Decision problem:

S={0,1}

Example: PATH

, , , 1

0

if a shortest path  from u to v has at  most k edges

otherwise

(9)

Encoding

A set S of abstract  objects

The set of binary  strings

encoding:

mapping Polygons, numbers, 

graphs, functions,  ordered pairs,  programs, …

(10)

Some more definitions

Concrete problem: 一個problem的instance是 binary string的set, 則稱為concrete problem.

An algorithm solves a concrete problem in O(T(n)): 

一個problem的instance長度為n (i的長度, 即為 binary string長度), 而此algorithm可在O(T(n))時 間產生解

A concrete problem is polynomial‐time solvable: 

有一個 的algorithm可以解此

problem

(11)

P的正式定義

The complexity class P:

The set of concrete decision problems 

that are polynomial‐time solvable

(12)

Abstract problem轉換成 encoding problem

I: instances of  problem

S: solutions Q: Abstract problem

(binary relation)

Decision problem:

S={0,1}

e(I): {0,1}*

: → 0,1

e(Q): Concrete problem

(13)

Encoding和花的時間有關嗎?

有!

極端的例子: unary

input: integer k, running time: Θ

假設encoding是unary: 11111…1111

則在這樣的case下

input length: n running time: Θ

可是如果以正常的binary encoding表示

input lennth: n log 1running time: Θ 2

Encoding決定是Θ or Θ 2 !!

k個

(14)

Encoding和花的時間有關嗎?

然而如果我們不考慮這麼極端的例子(unary), 大部 分的encoding都不會影響到一個問題是否可以在 polynomial time解決.

例: 使用三進位數和二進位數是沒有差別的, 因為我 們可以在polynomial time裡面將三進位數轉換成二 進位數.

f: {0,1}*{0,1}*

input output

如果f花polynomial time可以把任何input轉成 output, 則稱為polynomial‐time computable

(15)

Polynomially related

I: instances of  problem

: 0,1

: → 0,1 : → 0,1

: 0,1

如果有 和 是polynomial‐time computable, 則 和 為

polynomially related.

(16)

I: instances of 

problem S: solutions

Q: Abstract problem

(binary relation) Decision problem:

S={0,1}

: 0,1 : → 0,1

: Concrete problem : → 0,1

: Concrete problem

polynomially related

if:

Then:  ∈ if and only if 

(17)

因為是對稱的, 所以只需要證明一個方向.

假設 可以在 時間內解決(for some  constant k)

假設對每個problem instance i,  轉換成 需花 (for some constant c), 

則解決 (input為 ) 先花 轉換成

再解決 (input為 ), 花

c, k都是constant, 因此為polynomial time

只要encoding都是”合理的” (“簡要的”)表示方式, 一個問題的複雜度 (能否在polynomial time裡面解掉)不會被encoding影響.

(18)

A Formal‐language Framework

An alphabet Σ: a finite set of symbols

A language  over Σ: 使用Σ裡面的symbol組合而 成的字串 (不一定包含全部可能的字串)

Ex: Σ 0,1 ,  (over Σ)= 10,11,101,111, …

empty string: ϵ

empty language: ∅

Σ: the language with all strings over Σ

(19)

Operations on languages:

Union, intersection

Complement:  Σ

Concatenation of  : 

: ∈ ∈

Closure or Kleene Star: 

⋃ ⋃ ⋃ ⋃…

:concatenation 自己k次

(20)

應用formal language framework…

Decision problem Q的set of instances為Σ

Σ 0,1

Q的主要特性可以想成是會產生答案為1(yes)的這些

instances

因此可以把Q重新定義為一個language over Σ 0,1 , 

而 ∈ Σ: 1

例子: PATH= , , , : , is an undirected  graph,  , ∈ , 0 is an integer, and 從u到v在G裡面 有一條路徑含有最多k條edge

(21)

input x, A outputs 1

An algorithm A rejects a string  ∈ 0,1 if, given  input x, A outputs 0

The language accepted by an algorithm A is the set  of strings  ∈ 0,1 : 1

注意: L is accepted by A, 不一定表示 ∉ 會被A  reject! (ex. 無窮迴圈)

A language is decided by an algorithm A if every  binary string in L is accepted by A and every binary  string not in L is rejected by A

A language is accepted in polynomial time if it is  accepted by A and if A accepts x in time  for a  constant k and any length‐n string  ∈ .

(22)

: PATH

The language PATH can be accepted in polynomial  time. 這句話什麼意思?

如果 , , , 可以找到解 (從u到v在G裡面有一條 路徑含有最多k條edge), 則可以在polynomial time裡 面說”有 (1, yes)”!

可以嗎? 可以! 用BFS找出最短路徑, 然後看有沒有比 k大 (只需polynomial time)

假設我們設計這個algorithm發現比k大的話就無窮 迴圈, 這樣的話就沒有 decided in polynomial time.

(23)

定義complexity class P

Complexity class: a set of languages, 是不是在其 中由algorithm的complexity measure決定(ex. 

running time), 而此algorithm是決定一個string x 是否屬於L. 

使用這個方式, 我們可以重新定義P這個

complexity class:

⊆ 0,1 :

there exists an algorithm A that decides L in polynomial time

(24)

: is accepted by a polynomial time algorithm .

Proof:

The class of languages decided by polynomial‐

time algorithms是the class of languages 

accepted by polynomial‐time algorithms的subset. 

所以我們只需要證如果L is accepted by a 

polynomial‐time algorithm, 它也可以decided by  a polynomial‐time algorithm.

假設L是被某polynomial‐time algorithm A accept.

我們要利用A做成一個algorithm A’可以decides  L.

(25)

for a constant c

對任何input x, A’ 利用A, 先執行 個steps. 如 果這時候A accept x了, A’就accept x. 如果A還沒 accept x, A’就reject x. 

A’使用A的overhead不會超過一個polynomial  factor, 所以A’是一個可以decide L的polynomial  time algorithm.

(26)

Algorithms that  accepts/rejects/decides L

告訴你某個instance是不 是有解(在L裡面)

Algorithms that verify  L with a certificate

給你一個certificate (可能 是答案), 可以讓你檢查某 個instance是不是有解(在 L裡面)

給 , , , 和一條path p, 我們可以檢查path是 不是真的是在G中uv的path, 且長度是不是不 超過k. 此p是一個certificate, 用來幫助algorithm 看此instance是不是屬於PATH.

對PATH來說其實沒有太大差別, 因為本來就可以在polynomial time  decide PATH. 但是對於其他問題可能有差別!

(27)

G=(V,E) is a simple cycle that contains each vertex  in V.

Not all graph is Hamiltonian (找不到Hamiltonian  cycle)

HAM‐CYCLE={ : G is a Hamiltonian graph}

(28)

Hamiltonian cycles

暴力法?

假設使用adjacency matrix, n= 是G的

encoding的長度 (也就是 ,m是G中vertex數)

檢查所有的vertex permutation需要Ω !

Ω ! Ω 2 , not  for any constant k.

目前還找不到polynomial time algorithm to  decide/accept HAM‐CYCLE

(29)

Verify會簡單一點嗎?

會!

假設告訴你某一個graph G是Hamiltonian, 然後 告訴你一個vertex的序列(certificate)可以組成 Hamiltonian cycle.

則我們可以在polynomial time裡面檢查:

這個vertex序列是不是真的是G裡面的vertex的 permutation

vertex序列的相鄰vertices之間是不是在G中有那 個edge

(30)

Verification Algorithm

Verification Algorithm: Algorithm A with two arguments:

Ordinary input string x

Binary string y (certificate)

A verifies an input string x if there exists a certificate y such  that A(x,y)=1.

The language verified by a verification algorithm A is

∈ 0,1 : there exists ∈ 0,1 such that , 1

如果x在L裡面, 則一定找得到y.

如果x不在L裡面, 則一定找不到y.

(31)

The complexity class NP

Complexity class NP: the class of languages that 

can be verified by a polynomial‐time algorithm.

A language L belongs to NP if and only if there  exist a two‐input polynomial‐time algorithm A  and a constant c such that

L= ∈ 0,1 : there exists a certificate with such that , 1 .

Then algorithm A verifies L in polynomial time.

(32)

What is in NP?

HAM‐CYCLE∈NP

if L ∈ , then L ∈ . Why?

可以做出一個algorithm是完全不甩certificate的,  就可以模擬出verification algorithm的效果

意思就是說 ⊆ .

但P=NP or not? (尚未得知)

(33)

Complexity class co‐NP

class NP is closed under complement? (尚未得知)

意思就是說 ∈ 的話,  ∈ 否?

co‐NP: all languages that satisfies  ∈

(34)

NP‐Complete languages

“The hardest languages in NP”

If NP‐P is nonempty, then these in NP‐Complete  are in NP‐P (such as HAM‐CYCLE)

Reducibility  解一個破全部, 一箭千雕

(35)

Reducibility

如果Q可以reduce成Q’, 則表示任何一個Q的 instance都可以”換句話說”變成Q’的一個

instance

一元一次方程式: ax+b=0可以視為一元二次方程

式的特例: 0 0, 解出來可以得到對

應的一元一次方程式解.

如果一個問題Q可以reduce成另外一個問題Q’,  則Q不會比Q’難解. 

(36)

Reduction

is polynomial‐time reducible to  , (寫成 ) if there exists a polynomial‐time 

computable function f: 0,1 → 0,1 such that  for all  ∈ 0,1 ,  ∈ if and only if  ∈ .

f: reduction function

用來計算f 的polynomial‐time algorithm F: 

reduction algorithm

(37)

參考文獻

相關文件

• The approximate and introduces a false positive if a negative example makes either CC(X ) or CC(Y) return false but makes the approximate and return true.. • The approximate

4 上午 9 時起至 100.1.11 下午 5 時止。. *請使用 IE 5.0

1900–1935.” In Leila Haaparanta (Ed.), The Development of Modern Logic, Oxford: Oxford University Press, 2004...

The best way to picture a vector field is to draw the arrow representing the vector F(x, y) starting at the point (x, y).. Of course, it’s impossible to do this for all points (x,

[r]

[r]

If x or F is a vector, then the condition number is defined in a similar way using norms and it measures the maximum relative change, which is attained for some, but not all

[r]