Tải bản đầy đủ (.ppt) (25 trang)

Chương 3: Chứng minh các kết quả của bài toán NP_đầy đủ pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (651 KB, 25 trang )

Chương 3: Chứng minh các kết quả
của bài toán NP_đầy đủ
Giảng viên : PSG.TSKH.Vũ Đình Hòa
I. Các khái niệm
1.1. Lớp bài toán P (polynomial time)
1.2. Lớp bài toán NP(Nondeterministic
polynomial time)
1.3. Quan hệ giữa lớp P và lớp NP
II. Các bài toán NP_Complete
2.1. Phép dẫn với thời gian đa thức
2.2. Bài toán NP_Complete (NPC)
2.3. Một số bài toán NPC
Chương 3: Chứng minh các kết quả của
bài toán NP_đầy đủ
I. Các khái niệm
1.1. Lớp bài toán P (polynomial time)
Lớp P là lớp bài toán quyết định giải được trong thời gian
đa thức trên máy Turing tất định, hay lớp những bài toán
dễ (có lời giải chấp nhận được).
1.2. Lớp bài toán NP
Là lớp bt quyết định giải được trong thời gian đa thức
trên máy Turing không tất định
1.3. Quan hệ giữa lớp P và lớp NP

Ta có thể thấy một cách trực quan là P

NP. Nhưng
chúng ta vẫn chưa biết P=NP hay không, nhưng hầu hết
các nhà nghiên cứu tin rằng P≠NP là sự tồn tại của của
lớp bt NPC


Dù chúng ta chưa biết chắc chắn liệu P≠NP song việc
chỉ ra được một bài toán là NPC chứng tỏ 1 sự thật là bt
đó không thể giải được về phương diện tính toán với
thuật toán chính xác, tốt hơn hết là lời giải theo thuật
toán gần đúng.

Việc xem xét quan hệ giữa P và NP dẫn đến chúng ta đi
đến nghiên cứu lớp NPC
II. Các bài toán NP_Comlete (NPC)
2.1. Phép dẫn với thời gian đa thức
Cho hai bài toán

1


2.
Ta biết rằng
22
11
2
1
NY
NY
πππ
πππ
∪=
∪=
2.1. Phép dẫn với thời gian đa thức
Một phép biến đổi f mỗi dữ kiện


1
thành dữ kiện

2

và thỏa mãn 2 điều kiện sau được gọi là phép dẫn thời
gian đa thức :
1. f được thực hiện trong thời gian đa thức
2.
Định Nghĩa: Một bt quyết định

1
dẫn về bt quyết định

2
trong thời gian đa thức nếu tồn tại một phép dẫn đa
thức từ bt

1
về bt

2
. Ký hiệu:

1



2
21

21
)(
)(
NN
YY
f
f
ππ
ππ


The theory of NP-Completeness 7

Ví dụ 1: Chu trình Hamilton

Instance: Đồ thị G vô hướng.

Question: tồn tại hay không một chu trình đi
qua tất cả đỉnh của đồ thị ?
1. Ví dụ phép dẫn thời gian đa thức
The theory of NP-Completeness 8

Ví dụ 2: Traveling Salesman

Instance: Tập hữu hạn các thành phố: C = {c
1
,
c
2
,…c

m
}, khoảng cách giữa hai thành phố c
i
, c
j

là d(c
i
, c
j
) ∈ Z
+
, một số B ∈ Z
+
.

Question: tồn tại hay không một đường đi nào
qua tất cả các thành phố trong C mà có tổng độ
dài không lớn hơn B? (Tồn tại một sắp thứ tự
sao cho
)
1. BÀI TOÁN QUYẾT ĐỊNH
)()2()1(
, ,,
m
CCC
πππ
BCCdCCd
m
m

i
ii
≤+


=
+
),()),((
)1()(
1
1
)1()(
ππππ
The theory of NP-Completeness 9

Phép dẫn f biến mỗi đồ thị G thành một đồ thị đầy đủ có
trọng số bằng cách thêm các cạnh mới nối các cặp đỉnh
của G và gán trọng số các cạnh cũ là 1, các cạnh mới
thêm vào là 2 và chọn B = n là số đỉnh của đồ thị G.
1. Phép dẫn thời gian đa thức
3- 10
Proof of Hamiltonian ∝ TSP
2.2. Bài toán NP_Comlete (NPC)

Định Nghĩa:
Chúng ta nói L là bài toán thuộc NPC nếu khẳng
định sau là đúng
1) L

NP

2)

L’

NP, có phép dẫn với thời gian đa
thức từ L’ về L
2.2 Bài toán NP_Comlete (NPC)

Sau đây là các định lý NPC, nó cũng là điểm then
chốt của việc quyết định P thực tế có bằng NP hay
không?
* Đ/L1:
Ta có một phép dẫn với thời gian đa thức từ bt

1

về bt

2
, ( ký hiệu

1



2
)
- Nếu bt

1


NPC, bt

2

NP =>

2

NPC
- Nếu bt

2

P => bt

1

P
2.2. Bài toán NP_Comlete (NPC)
* Đ/L2:
- Nếu có một bài toán NPC bất kỳ giải được trong thời gian
đa thức thì P=NP.
- Ngược lại, nếu một bt bài toán NP bất kỳ không giải được
trong thời gian đa thức thì tất cả các bài toán NPC đều
không giải được trong thời gian đa thức
3.3. Một số bài toán NPC

Bằng việc sử dụng kỹ thuật dẫn bt1 về bt2 (đã có thuật
toán giải quyết) với 1 phép dẫn thích hợp giúp chúng ta

có thể biến mỗi dữ kiện của bt1 thành dữ kiện tương
ứng của bt2, nhờ đó mà có thể chuyển thuật toán giải
quyết bt2 thành thuật toán tương đương để giải quyết
bt1.

Trong một bài báo của Stephen Cook, giới thiệu năm
1971 đã nêu nên một số vấn đề quan trọng như những
nền tảng cho việc nghiên cứu về các bài toán NPC, đó
là:
3.3. Một số bài toán NPC

Một là, S.Cook đã nhấn mạnh sự cần thiết của “phép dãn với thời
gian đa thức”, đó là những bt mà đối với nó sự chuyển dẫn về yêu
cầu có thể được xử lý bởi một thuật toán thời gian đa thức. Nếu
chúng ta có một phép dãn với thời gian đa thức từ bt1 sang bt2, thì
với bất kỳ một thuật toán thời gian đa thức nào cho bt2 đều có thể
chuyển thành thuật toán thời gian đa thức tương đương cho bt1.

Hai là, S.Cook tập chung sự chú ý vào lớp NP của những bt quyết
định mà có thể giải quyết với thời gian đa thức bằng một máy
Turing không tất định, bởi vì hầu hết những bài toán khó khăn
trong thực tiễn khi được phát biểu dưới dạng bt quyết định thì đều
thuộc vào lớp NP.
3.3. Một số bài toán NPC

Ba là, S.Cook ông đã chứng minh được rằng một bt cụ thể
trong NP đó là bt tính thoả được “satisfiability-SAT” có tính
chất quan trọng là mọi bt thuộc lớp NP đều có thể dẫn về bt
SAT trong thời gian đa thức. Tức là nếu bt SAT có thể được
giải quyết bằng một thuật toán thời gian đa thức thì mọi bt

trong NP cũng có thể được giải quyết như vậy. Như vậy bt SAT
là vấn đề khó nhất (hardest) trong NP

Cuối cùng, S.Cook cho rằng, đó là sự tồn tại các bt khác trong
NP có thể với bt SAT cũng là bt khó giải nhất. Ông ta minh
chứng điều này bằng trường hợp đối với bt “liệu có một đồ thị
G có chứa một đồ thị con hoàn chỉnh với k đỉnh không ?”.

Sau khi đã biết SAT là bt NPC chúng ta sẽ trình bày một
khuôn mẫu cho một quá trình dẫn một bt NPC thành
chứng minh bài toán khác cũng là NPC.

Chứng minh bài toán



NPC: chúng ta thực hiện 4
bước sau:
1) Chứng minh bt



NP.
2) Lựa chọn bt



NPC.
3) Xây dựng hàm biến đổi f từ


’ sang

4) Chứng minh rằng f là một biến đổi đa thức.
3.3. Một số bài toán NPC

Đây là con đường mới để chứng minh một số bt là NPC,
chẳng hạn như bt người du lịch hay chu trình Hamilton. Về
nguyên tắc chúng ta thực hiện điều đó bằng cách tìm các
phép dẫn với thời gian đa thức từ bt SAT về mỗi bài toán
cần chứng minh.

Tuy nhiên một bt trung gian quan trọng có tên 3SAT là
dạng rút gọn của bt SAT, bt 3SAT dễ dẫn về các bt cần
chứng minh hơn nhiều so với bt SAT

3.3. Một số bài toán NPC
* Bài toán SAT

Bài toán SAT được phát biểu dưới dạng bt quyết định như
sau:
Instance: Cho trước n biến logic {x
1
, x
2, …… ,
x
n
} là tập hợp C
các bộ biến hoặc phủ định của biến, gọi là tục biến, ví dụ C
= {x
1

v x
2,
x
1
v x
2
v ¬x
4
, x
5
}.
Question: Tồn tại hay không một phép gán giá trị cho các
biến sao cho mỗi c

C có giá trị đúng?
C = {¬ x
1
, ¬ x
2,
x
1
v x
2
v ¬

x
4
, x
4
}.


Định lý: Bài toán SAT là NPC
3.3. Một số bài toán NPC
* Bài toán 3SAT

Bài toán 3SAT được phát biểu dưới dạng bt quyết định như
sau:
Instance: Cho trước n biến logic {x
1
, x
2, …… ,
x
n
} là tập hợp C
các tuyển gồm 3 tục biến, ví dụ C = {x
1
v x
2
v x
3
, x
1
v x
2
v
¬x
4
}.
Question: Tồn tại hay không một phép gán giá trị cho các
biến sao cho mỗi c


C có ít nhất một gia trị đúng?

Định lý:
Bài toán 3SAT là NPC
3.3. Một số bài toán NPC

Tiếp theo phần này trình bày nhiều bt NPC có liên quan đến lý thuyết đồ thị.
Những bt này trong số những bài toán đồ thị được sử dụng thường xuyên
cho lời giải của những bt rất quan trọng trong ứng dụng thực tế.
Sơ đồ chứng minh một số bài toán NPC

Theo sơ đồ thì biến đổi đầu tiên là bt SAT vì nó là bt NPC đầu tiên được biết.
Sơ đồ trên chỉ dẫn cho chúng ta biết phải chọn bt nào để chứng minh cho bt
yêu cầu là NPC
3.3. Một số bài toán NPC
Bài toán SATISFIBILITY (SAT)
Instance: Một tập hợp biến U và một bộ C thuộc mệnh đề
trên U.
Question: Có tồn tại một yêu cầu đúng thỏa mãn đối với C.
Ví dụ: U={u1, u2} và C={{u1, ũ2}, {ũ1, ũ2}} cung cấp một
trường hợp thuộc SAT với câu trả lời là "True".
Ví dụ, U={u1, u2} và C={{u1, ũ2}, {ũ1, u2} đưa ra một
trường hợp thuộc SAT cho câu trả lời "Yes". Một đánh giá
thỏa mãn được đưa ra với t(u1)=t(u2)=T. Hơn nữa, thay thế
C bằng C'={{u1, u2, {u1, ũ2}, {ũ1}} là một ví dụ cho trường
hợp câu trả lời là "No"; C' là không thỏa mãn.

Bài toán vỏ phủ định (Vertex Cover)
Instance: Cho đồ thị G=(V,E) và một số nguyên dương k≤|V|

Question: Tồn tại hay không một vỏ phủ định có kích cỡ ≤ k?

Bài toán Clique
Instance: Cho đồ thị G=(V,E) và một số nguyên dương k≤|V|
Question: Tồn tại hay không trong G một đồ thị con đầy đủ với ít
nhất k đỉnh?

3. Một số bài toán NPC
2.2. Bài toán NP_Comlete (NPC)
* Đ/L2:
- Nếu có một bài toán NPC bất kỳ giải được trong thời
gian đa thức thì P=NP.
- Ngược lại, nếu một bt bài toán NP bất kỳ không giải
được trong thời gian đa thức thì tất cả các bài toán
NPC đều không giải được trong thời gian đa thức.
Chứng minh:
+ Giả sử L

NPC và L

P, bất kỳ L’

NP => có một phép
dẫn L’

L với thời gian đa thức.
+ Mặt khác theo tính chất

1




2


2

P
thì

1

P, do đó ta có L’

P -> đpcm P=NP
2.2 Bài toán NP_Comlete (NPC)
* Đ/L1:
Ta có một phép dẫn với thời gian đa thức từ bt

1
về bt

2
,
( ký hiệu

1




2
)
- Nếu bt

1

NPC, bt

2

NP =>

2

NPC
- Nếu bt

2

P => bt

1

P

×