The theory of NP-Completeness 1
CHUYÊN ĐỀ: LÝ THUYẾT ĐỘ PHỨC TẠP
THUẬT TOÁN
LÝ THUYẾT NP - ĐẦY ĐỦ
(THE THEORY OF NP - COMPLETENESS)
Giáo viên : Thầy Vũ Đình Hoà
The theory of NP-Completeness 2
NỘI DUNG
1. Bài toán quyết định
2. Ngôn ngữ và lược đồ mã hóa
3. Máy Turing tất định và lớp P
4. Tính toán không tất định và lớp NP
5. Mối quan hệ giữa lớp P và lớp NP
6. Phép dẫn thời gian đa thức và lớp NPC
7. Thuyết Cook
The theory of NP-Completeness 3
1. BÀI TOÁN QUYẾT ĐỊNH
Bài toán quyết định (Decision Problem - DP) là bài toán
chỉ có câu trả lời là có hoặc không (hay còn gọi là trả lời
nhị phân).
Mỗi thể hiện của bài toán nghĩa là mỗi trường hợp cá biệt
của bài toán có một trả lời.
Một bài toán quyết định ∏ đơn giản bao gồm một tập
hợp D
∏
các thể hiện và tập con Y
∏
⊆ D
∏
là các thể hiện
đúng
The theory of NP-Completeness 4
1. BÀI TOÁN QUYẾT ĐỊNH
Một bài toán quyết định phát biểu dưới dạng:
Instance: …
Question:…
Ví dụ 1: bài toán sự đẳng cấu của đồ thị con
Instance: Cho 2 đồ thị G
1
= (V
1
, E
1
) và G
2
= (V
2
, E
2
)
Question: đồ thị G
1
có chứa một đồ thị con G
1
’ mà G
1
’
đẳng cấu với đồ thị G
2
hay không?
The theory of NP-Completeness 5
Giải thích về đồ thị đẳng cấu:
G
1
’ đẳng cấu với G
2
nếu như có |V
1
’| = |V
2
|, |E
1
’| = |E
2
| và
ở đó tồn tại một song ánh f : V
2
V
1
’ sao cho {u,v} ∈
E
2
khi và chỉ khi {f(u), f(v)} ∈ E
1
’).
1. BÀI TOÁN QUYẾT ĐỊNH
The theory of NP-Completeness 6
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 7
Một bài toán quyết định có thể được chuyển hoá từ một
bài toán tối ưu.
Ví dụ: Bài toán tối ưu là “tìm một đường đi có độ dài nhỏ
nhất trong số tất cả các đường đi nối 2 đỉnh đồ thị” ↔
BTQĐ : thêm vào một tham số B và hỏi xem có đường đi
nào có độ dài L mà L ≤ B hay không?
Với điều kiện là hàm chi phí phải tương đối dễ đánh giá,
bài toán quyết định có thể không khó khăn hơn bài toán
tối ưu tương ứng
1. BÀI TOÁN QUYẾT ĐỊNH
The theory of NP-Completeness 8
Nếu tìm thấy một đường đi có độ dài nhỏ nhất cho bài
toán TS theo thời gian đa thức, cũng có thể giải quyết bài
toán quyết định được kết hợp theo thời gian đa thức.
Lý thuyết NP đầy đủ giới hạn là chỉ chú ý tới các bài toán
quyết định nhưng cũng có thể mở rộng sự liên quan của
thuyết NP đầy đủ tới các bài toán tối ưu.
Nguyên nhân của sự giới hạn này là các DPs có một bản
sao rất tự nhiên và nó được gọi là ngôn ngữ.
1. BÀI TOÁN QUYẾT ĐỊNH
The theory of NP-Completeness 9
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
Định nghĩa ngôn ngữ:
Với bất kì một tập hữu hạn ∑ các kí hiệu, chúng ta có
thể biểu diễn ∑* là tập hợp tất cả các xâu hữu hạn các kí
hiệu lấy từ tập ∑.
Nếu L là một tập con của ∑*, chúng ta nói rằng L là
một ngôn ngôn ngữ trên tập các chữ cái của ∑.
The theory of NP-Completeness 10
Ví dụ:
Nếu ∑ = {0, 1}, khi đó I* = {ε, 0, 1, 01, 10, 11, 000, 001,… }
Khi đó {01,001,111,1101010} là một ngôn ngữ trên tập {0,1}
Sự tương ứng giữa bài toán quyết định và ngôn ngữ được dẫn
đến bởi các lược đồ mã hoá.
Một lược đồ mã hoá e cho bài toán ∏ cung cấp một cách thức
miêu tả mỗi sự kiện của ∏ bằng một xâu thích hợp các ký
hiệu trên tập chữ cái cố định ∑.
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
The theory of NP-Completeness 11
Bài toán ∏ và lược đồ mã hoá e cho ∏ chia ∑* thành 3 lớp:
1. Những xâu không mã hoá các biểu hiện của ∏.
2. Những xâu mã hoá các biểu hiện của ∏ mà trên đó câu trả
lời là No.
3. Những xâu mã hoá các biểu hiện của ∏ mà trên đó câu trả
lời là Yes.
Ngôn ngữ: L[∏, e] = {x ∈ ∑* với ∑ được sử dụng bởi e, và x
mã hóa một thể hiện I ∈ Y
π
bằng e}
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
The theory of NP-Completeness 12
Một lược đồ mã hoá hợp lý phải đảm bảo 2 tính năng là :
“tính ngắn gọn” và có “khả năng giải mã”.
“Tính ngắn gọn” là các trường hợp của bài toán nên
được mô tả với sự khúc chiết một cách tự nhiên.
“Khả năng giải mã” là đưa ra bất kì một thành phần cụ
thể nào của một trường hợp chung, thì lược đồ có khả
năng chỉ rõ một thuật toán có thời gian đa thức.
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
The theory of NP-Completeness 13
Định nghĩa một lược đồ mã hoá chuẩn:
Lược đồ mã hoá chuẩn sẽ ánh xạ các thể hiện sang các
xâu có cấu trúc trên tâp chữ cái ψ = {0, 1, -, [,], (, ), …}.
Định nghĩa xâu cấu trúc một cách đệ quy như sau:
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
The theory of NP-Completeness 14
Biểu diễn nhị phân của một số nguyên k (gồm các chữ
số 0 và 1), (đằng trước là dấu - nếu k là số âm) là một
xâu có cấu trúc biểu diễn số nguyên k.
Nếu x là một xâu có cấu trúc biểu diễn số nguyên k, khi
đó [x] là một xâu có cấu trúc có thể được sử dụng như
một “tên” (name) .
Nếu x
1
, x
2
, , x
m
là các xâu có cấu trúc biểu diễn các đối
tượng X
1
,X
2
, …, X
m
, khi đó (x
1
, …, x
m
) là một xâu có
cấu trúc biểu diễn chuỗi (X
1
,…,X
m
)
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
The theory of NP-Completeness 15
Các biểu diễn cho 4 kiểu đối tượng như sau:
Một tập các đối tượng được biểu diễn bởi thứ tự các phần
tử của nó như một chuỗi <X
1
, …, X
m
> và xem như là xâu
có cấu trúc tương ứng với chuỗi đó.
Một đồ thị với tập đỉnh là V và tập cạnh là E được biểu
diễn bởi một xâu có cấu trúc (x, y), ở đó x là một xâu có
cấu trúc biểu diễn tập V và y là xâu có cấu trúc biểu diễn
tập E (các phần tử của E …)
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
The theory of NP-Completeness 16
Một hàm hữu hạn f : {U
1
, U
2
,…, U
m
} → W được biểu
diễn bởi một xâu có cấu trúc {(x
1
, y
1
), …, (x
m
, y
m
)} ở đó
x
i
là xâu có cấu trúc biểu diễn U
i
và y
i
là xâu có cấu trúc
biểu diễn f(U
i
) ∈ W, 1 ≤ i ≤ m.
Một số hữu tỉ q được biểu diễn bởi một xâu có cấu trúc
(x, y) ở đó x là xâu có cấu trúc biểu diễn một số nguyên
a, y là xâu biểu diễn một số nguyên b và ở đó a / b = q,
và ước chung lớn nhất của a và b là 1.
2. NGÔN NGỮ VÀ LƯỢC ĐỒ MÃ HÓA
The theory of NP-Completeness 17
3.1. Miêu tả máy Turing tất định (DTM)
Máy Turing tất định gồm có:
1. Con trỏ điều khiển trạng thái
2. Một đầu đọc ghi
3. Một băng vô hạn nằm ngang với các ô vuông. Dưới
các ô vuông có đánh các nhãn là:… -3, -2, -1, 0, 1, 2, 3…
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P
The theory of NP-Completeness 18
- 3 - 2 - 1 0 1 2 3 4
Bộ điều khiển
trạng thái
hữu hạn
Đầu đọc ghi
Băng vô hạn
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P
3.1. Miêu tả máy Turing tất định
The theory of NP-Completeness 19
3.1. Miêu tả máy Turing tất định
Một chương trình cho một DTM gồm các thông tin:
Một tập hợp T những kí hiệu, bao gồm một tập con ∑ ⊂ T
và một kí tự trắng b ∈ T \ ∑.
Một tập hợp Q các trạng thái, bao gồm trạng thái bắt đầu q
o
và hai trạng thái kết thúc là q
Y
và q
N
.
Một hàm chuyển trạng thái
ઠ: (Q - {q
Y
, q
N
}) * T → Q * T * {-1, +1,0}
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P
The theory of NP-Completeness 20
3.1. Miêu tả máy Turing tất định
Hàm chuyển trạng thái: δ cho phép với mỗi trạng thái của
máy và một kí kiệu đọc được từ ô trống đối diện, ta xác
định được:
Trạng thái tiếp theo.
Kí hiệu sẽ được viết lên băng đè lên kí hiệu vừa đọc
Hướng dịch chuyển của đầu đọc
2. MÁY TURING TẤT ĐỊNH VÀ LỚP P
The theory of NP-Completeness 21
3.1. Miêu tả máy Turing tất định
Quá trình thực hiện của DTM
1. Xâu x được đặt lên băng, mỗi kí tự được đặt vào mỗi ô.
Tất cả các ô còn lại đều chứa kí tự trắng. Chương trình bắt
đầu với trạng thái ban đầu là q
0
, với đầu đọc ở ô chứa kí tự
đầu tiên của xâu
2. Các bước tính toán: …
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P
The theory of NP-Completeness 22
2.1. Miêu tả máy Turing tất định
Quá trình thực hiện của DTM
2. Các bước tính toán: …
- Đọc kí tự đối diện với đầu đọc
- Thay kí hiệu đó bằng kí hiệu tính từ hàm δ
- Dời đầu đọc theo hướng của hàm dịch chuyển
- Đổi trạng thái hiện tại thành trạng thái của hàm dịch
chuyển.
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P
The theory of NP-Completeness 23
3.1. Miêu tả máy Turing tất định
Quá trình thực hiện của DTM
Xâu x được thừa nhận khi quá trình thực hiện đạt đến trạng
thái thừa nhận.
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P
The theory of NP-Completeness 24
3.2. Ví dụ
Cho các tập hợp sau:
T = {0, 1, b}, ∑ = {0, 1}
Q = {q
0
, q
1
, q
2
, q
3
, q
Y
, q
N
}
Cho xâu vào:
x = “10100”
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P
The theory of NP-Completeness 25
Hàm trạng thái cho trong bảng:
3. MÁY TURING TẤT ĐỊNH VÀ LỚP P