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.. Lớp bài
Trang 1Chươ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
Trang 2I 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
bài toán NP_đầy đủ
Trang 3I 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
Trang 41.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à PNP 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
Trang 5II 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 và 2. Ta biết rằng
2 2
1 1
2
1
N Y
N Y
Trang 62.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
2 1
2 1
) (
) (
N N
Y Y
Trang 7The 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
Trang 8The theory of NP-Completeness 8
)
1 BÀI TOÁN QUYẾT ĐỊNH
) ( )
2 ( )
1 ( ,C , ,C m
B C
C d C
C
m i
(
1
) 1 ( )
Trang 9The theory of NP-Completeness 9
Trang 103- 10
Proof of Hamiltonian TSPTSP
2
1
Trang 112.2 Bài toán NP_Comlete (NPC)
Chúng ta nói L là bài toán thuộc NPC nếu khẳng định sau là đúng
1) L NPNP2) NP L’ NP, NPcó phép dẫn với thời gian đa
thức từ L’ về L
Trang 122.2 Bài toán NP_Comlete (NPC)
Trang 132.2 Bài toán NP_Comlete (NPC)
Trang 143.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à:
Trang 153.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.
Trang 163.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 ?”.
Trang 17 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.
bước sau:
3.3 Một số bài toán NPC
Trang 18 Đâ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.
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
Trang 19* Bài toán SAT
như sau:
Instance: Cho trước n biến logic {x1 , 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 = {x1 v x 2, x 1 v x 2 v ¬x4, 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 cC có giá trị đúng?
C = {¬ x 1 , ¬ x 2, x 1 v x 2 v ¬ x4, x 4 }.
3.3 Một số bài toán NPC
Trang 20* Bài toán 3SAT
như sau:
Instance: Cho trước n biến logic {x1 , x 2, …… , x n } là tập
hợp C các tuyển gồm 3 tục biến, ví dụ C = {x1 v x 2 v x 3 ,
x 1 v x 2 v ¬x4}.
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 cC có ít nhất một gia trị đúng?
Bài toán 3SAT là NPC
3.3 Một số bài toán NPC
Trang 21 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
Trang 22Bài toán SATISFIBILITY ( SAT)
Instance: Một tập hợp biến U và một bộ C thuộc mệnh đề
Trang 23 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ỡ ≤ NPk?
Bài toán Clique
NPQuestion: 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
Trang 242.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
Trang 252.2 Bài toán NP_Comlete (NPC)