• 沒有找到結果。

Completeness NP-

N/A
N/A
Protected

Academic year: 2022

Share "Completeness NP-"

Copied!
20
0
0

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

全文

(1)

Completeness

Jennya 2013/10/31

(2)

為什麼Polynomial time就是

”容易解”, ”可解的”?

(1)

Θ(𝑛100)雖然是polynomial time, 但實務上這麼高次的多項式並 不常見 通常如果找到一個polynomial-time algorithm, 比較快的方法很 快也會被找到

(2)

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

(3)

Polynomials are closed under addition, multiplication, and composition.

(3)

Abstract problem

I

problem instances

S

problem solutions Q: Abstract problem

(binary relation) Example: PATH

𝑖 = 𝐺, 𝑢, 𝑣, 𝑘

𝑃𝐴𝑇𝐻 𝑖 = 1 if a shortest path from u to v has at most k edges 𝑃𝐴𝑇𝐻 𝑖 = 0 otherwise

Decision problem:

S={0,1}

(4)

Encoding

A set S of abstract objects

The set of binary strings

encoding:

mapping Polygons, numbers,

graphs, functions, ordered pairs, programs, …

(5)

Abstract problem轉換成 concrete problem

We can use encodings to map abstract problems to concrete problems

Instance set I solution set S

{0,1}

Q

Abstract problem Abstract Decision Problem Q

𝑒: 𝐼 → 0,1

e(I): {0,1}* solution set S

{0,1}

e(Q)

Concrete problem Concrete Decision Problem e(Q)

(6)

Concrete problem:

instance set = the set of binary strings

「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

Concrete problem

(7)

P的正式定義

The complexity class P:

The set of concrete decision problems

that are polynomial-time solvable

(8)

Encoding和花的時間有關嗎?

有! 極端的例子: unary

input: integer k

running time: Θ 𝑘

Unary encoding: 11111…1111 input length n

 running time: Θ(𝑘) = Θ(𝑛)

binary encoding:

input length n = log 𝑘 + 1

running time:Θ(𝑘) = Θ(2𝑛)

Encoding決定是Θ(𝑛) or Θ(2𝑛)!!

k個

(9)

Encoding和花的時間有關嗎?

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

例: 使用三進位數和二進位數是沒有差別的, 因為

我們可以在polynomial time裡面將三進位數轉換 成二進位數.

(10)

polynomial-time computable function

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

input output

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

(11)

Polynomially related

I: instances of problem

𝑒1: 0,1

𝑒1: 𝐼 → 0,1 𝑒2: 𝐼 → 0,1

𝑒2: 0,1 𝑓12 𝑒1 𝑖 = 𝑒2(𝑖)

𝑓21 𝑒2 𝑖 = 𝑒1(𝑖)

如果有𝑓12和𝑓21是polynomial-time computable, 則𝑒1和𝑒2polynomially related.

(12)

I: instances of

problem S: solutions

Q: Abstract problem

(binary relation) Decision problem:

S={0,1}

𝑒1: 0,1 𝑒1: 𝐼 → 0,1

𝑒1(𝑄): Concrete problem 𝑒2: 0,1

𝑒2: 𝐼 → 0,1

𝑒2(𝑄): Concrete problem

polynomially related

if:

Then: 𝑒1(𝑄) ∈ 𝑃 if and only if 𝑒2(𝑄) ∈ 𝑃

(13)

Proof:

假設𝑒1(𝑄)可以在𝑂(𝑛𝑘)時間內解決(for some constant k)

假設 對每個problem instance i, 𝑒2(𝑖)轉換成𝑒1(𝑖)需花 𝑂(𝑛𝑐)(for some constant c), 𝑛 = 𝑒2 𝑖

則解決𝑒2 𝑄 (input為𝑒2(𝑖)) 先花𝑂(𝑛𝑐)轉換成𝑒1(𝑖)

𝑒1 𝑖 = 𝑂(𝑛𝑐)

再解決𝑒1(𝑄) (input為𝑒1(𝑖)), 花𝑂 𝑒1 𝑖 𝑘 = 𝑂 𝑛𝑐𝑘

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

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

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

(14)

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 Σ

(15)

Operations on languages

Union

Intersection

Complement: 𝐿 = Σ − 𝐿

Concatenation of 𝐿1𝐿2:

𝐿 = 𝑥1𝑥2: 𝑥1 ∈ 𝐿1 𝑎𝑛𝑑 𝑥2 ∈ 𝐿2

Closure (Kleene Star):

𝐿 = 𝜖 ⋃𝐿 ⋃𝐿2 ⋃𝐿3⋃…

𝐿𝑘:concatenation 自己k次

(16)

應用formal language framework…

We can view

「a decision problem Q 」as

「a language L over Σ = 0,1 」

=> 𝐿 = {𝑥 ∈ Σ: 𝑄 𝑥 = 1}

Q的instance set為Σ

Q = 能夠產生答案為1(yes)的這些instances

i.e. PATH problem的language:

(17)

Accepts and Rejects

An algorithm A accepts a string 𝑥 ∈ 0,1 if, given input x, the algorithm’s output A(x) = 1

An algorithm A rejects a string 𝑥 ∈ 0,1 if, given input x, the algorithm’s output A(x) = 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 𝑥 ∈ 𝐿.

(18)

使用formal-language framework 定義complexity class P

可以用「a set of languages」定義 「complexity class」

如何決定是不是在這個class(set)中:

由「決定一個string x是否屬於L」的 algorithm的 running time而定

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

𝑃 = {𝐿 ⊆ 0,1 :

there exists an algorithm A that decides L in polynomial time}

(19)

Theorem:

𝑃 = {𝐿: 𝐿 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.

𝑃 = {𝐿 ⊆ 0,1 :

there exists an algorithm A that 𝐝𝐞𝐜𝐢𝐝𝐞𝐬 L in polynomial time}

𝑃 = {𝐿 ⊆ 0,1 :

there exists an algorithm A that 𝐚𝐜𝐜𝐩𝐞𝐭𝐬 L in polynomial time}

(20)

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

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

因為A accepts L in 𝑂(𝑛𝑘) for some constant k, 所 以我們也可以說 A accepts L 最多花𝑐𝑛𝑘個steps 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.

參考文獻

相關文件

The research proposes a data oriented approach for choosing the type of clustering algorithms and a new cluster validity index for choosing their input parameters.. The

This paper presents (i) a review of item selection algorithms from Robbins–Monro to Fred Lord; (ii) the establishment of a large sample foundation for Fred Lord’s maximum

In this paper, we extended the entropy-like proximal algo- rithm proposed by Eggermont [12] for convex programming subject to nonnegative constraints and proposed a class of

The purpose of this talk is to analyze new hybrid proximal point algorithms and solve the constrained minimization problem involving a convex functional in a uni- formly convex

 The class of languages decided by polynomi al-time algorithms 是 the class of languages accepted by polynomial-time algorithms 的 su bset.. G=(V,E) is a simple cycle that contains

Programming languages can be used to create programs that control the behavior of a. machine and/or to express algorithms precisely.” -

Data larger than memory but smaller than disk Design algorithms so that disk access is less frequent An example (Yu et al., 2010): a decomposition method to load a block at a time

These interior point algorithms typically penalize the nonneg- ativity constraints by a logarithmic function and use Newton’s method to solve the penalized problem, with the